携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第31天,点击查看活动详情
1.计算机系统概论
今天的文章内容是《计算机组成原理》的课后习题。
1.1
- 问:什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要?
- 答:
- 计算机系统:计算机硬件、软件和数据通信设备的物理或逻辑的综合体。
- 计算机硬件:计算机的物理实体。
- 计算机软件:计算机运行所需的程序及相关资料。
- 硬件和软件在计算机系统中相互依存,缺一不可,因此二者同样重要。
1.2
- 问:如何理解计算机系统的层次结构?
- 答:
- 计算机系统可以按照功能划分为6个层次结构,
- 即应用语言机器、高级语言机器、汇编语言机器、操作系统机器、实际机器和微程序机器。
- 实际机器向上延伸构成了各级虚拟机器;
- 机器内部也可向下延伸而形成下一级的微程序机器;
- 硬件研究的主要对象归结为传统机器和微程序机器;
- 软件研究对象主要是操作系统及以上的各级虚拟机。
1.3
- 问:说明高级语言、汇编语言和机器语言的差别及其联系。
- 答:
- 机器语言是计算机硬件可以直接识别的二进制语言;
- 汇编语言是机器语言的符号表示,用符号表示指令或数据所在存储单元的地址;
- 高级语言是面向过程或对象的语言,对问题的描述十分接近人们的习惯,并且还具有较强的通用性。
- 高级语言编写的程序处于最高层,必须翻译成汇编语言,再由汇编程序汇编成机器语言后才能被执行。
1.4
- 问:如何理解计算机体系结构和计算机组成?
- 答:
- 计算机体系结构指的是可以被程序员看到的计算机系统的属性,即概念性结构与功能特性。比如指令、寻址技术和IO机理等;
- 计算机组成是计算机体系结构的逻辑实现,对程序员是透明的,其任务就是当计算机体系结构确定好后,研究各组成部分的内部构造和相互联系,以实现机器指令集的各种功能和特性。
1.5
- 问:冯·诺依曼计算机的特点是什么?
- 答:
- 1. 计算机由运算器、控制器、存储器、输入设备和输出设备五大部分组成;
- 2. 指令和数据以同等地位存放在存储器中,并可按地址访问;
- 3. 指令和数据均用二进制数据表示;
- 4. 指令由操作码和地址码两部分组成,操作码用于表示操作的性质,地址码用于表示操作数在存储器中的位置;
- 5. 指令在存储器中按顺序存放,通常自动顺序取出执行;
- 6. 机器以运算器为中心。
1.6
- 问:画出计算机硬件组成框图,说明各部件的作用以及计算机硬件的主要指标。
- 答:
- 计算机硬件组成框图如下所示;其中:
- 运算器用于完成算术运算以及逻辑运算,并将结果暂存在运算器中;
- 存储器用于存放数据和程序;
- 控制器用来控制、指挥程序和数据的输入、运行以及处理计算结果;
- 输入设备将人们熟悉的信息形式转换为计算机可以识别的形式;
- 输出设备就是将机器运算的结果转换为人们熟悉的信息形式;
- 计算机硬件的主要指标有三种,分别是机器字长、存储容量和运算速度。
1.7
- 问:解释概念:主机、CPU、主存、存储单元、存储元件、存储基元、存储元、存储字、存储字长、存储容量、机器字长、指令字长。
- 答:
- 主机:计算机硬件的主体部分,主要由CPU和主存储器组成;
- CPU:中央处理器,是计算机硬件的核心部件,由运算器和控制器组成;
- 主存:计算机中存放正在运行的程序或数据的存储器,由存储体、各种逻辑部件和控制电路组成;
- 存储单元:可以存放一个机器字并具有特定存储地址的存储单位;
- 存储元件或存储基元或存储元:存储元件就是存储一位二进制数的物理元件,是存储器中最小的存储单位,也叫作存储基元或存储元,其无法单独存取;
- 存储字:一个存储单元可以存储一串二进制代码,我们称这串代码为存储字;
- 存储字长:存储单元存储的二进制代码的位数称为存储字长;
- 存储容量:存储器中可存放二进制代码的总量;
- 机器字长:指的是CPU一次能处理的二进制数据的位数;
- 指令字长:指一条指令的二进制代码的位数。
1.8
- 问:解释英文代号:CPU、PC、IR、CU、ALU、ACC、MQ、X、MAR、MDR、I/O、MIPS、CPI、FLOPS。
- 答:
- CPU:中央处理器(
Central Processing Unit,简称CPU),是计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元; - PC:程序计数器(
Program Counter,简称PC),用于存放当前欲执行指令的地址,可自动形成下一条指令的地址; - IR:指令寄存器(
Instruction Register,简称IR),用于存放当前正在执行的指令; - CU:控制单元(
Control Unit,简称CU),是控制器的核心部件,用于产生微程序命令序列; - ALU:算术逻辑运算单元(
Arithmetic Logic Unit,简称ALU),运算器的核心部件,用于算术运算和逻辑运算; - ACC:累加器(
Accumulator,简称ACC),是运算器中既能存放运算前的操作数,又能存放运算结果的寄存器; - MQ:乘商寄存器(
Multipler-Quotient Register,简称MQ)是乘法运算时存放乘数,除法运算时存放商的寄存器; - X:这个字母没有专指的缩写含义,但在这里可表示操作数寄存器,即运算器中的工作寄存器之一,用于存放操作数;
- MAR:存储器地址寄存器(
Memory Address Register,简称MAR),用于存放欲访问的存储单元的地址; - MDR:存储器数据缓冲寄存器(
Memory Data Register,简称MDR),用于存放从某单元读出的数据或要写入某单元的数据。 - I/O:输入/输出设备(
Input/Output equipment),输入输出设备的总称,用于计算机内部和外界信息的转换和传送; - MIPS:运算速度的计量单位(
Million Instruction Per Second,简称MIPS),即每秒执行百万条指令数; - CPI:运算速度的计量单位(
Cycle Per Instruction,简称CPI),即执行一条指令所需的时钟周期; - FLOPS:运算速度的计量单位(
Floating Point Operation Per Second,简称FLOPS),即浮点运算次数每秒。
1.9
- 问:画出主机框图,分别以存数指令“STA M”和加法指令“ADD M”(M为主存地址)为例,在图中按序标出完成该指令(包括取值指令)的信息流程。假设主存容量为256M×32位,在指令字长、存储字长和机器字长相等的条件下,指出图中各寄存器的位数。
- 答:
- ①存数指令的信息流程
- 取指令:
PC→MAR→M→MDR→IR - 分析指令:
Ad(IR)→MAR - 执行指令:
ACC→MDR→M - ②加法指令的信息流程
- 取指令:
PC→MAR→M→MDR→IR - 分析指令:
Op(IR)→CU - 执行指令:
Ad(IR)→MAR→M→MDR→X, 同时X→ALU→ACC→MDR - 主存容量为256×32位,
1.10
题目如下:
答:
操作码与操作性质的对应表如下所示:
| 操作码 | 操作性质 |
|---|---|
| 000111 | 除法:将 ACC 中的数与指令地址码指示的存储单元中的数相除,结果存于ACC中 |
| 001000 | 减法:将ACC中的数与指令地址码指示的存储单元中的数相减,结果存于ACC中 |
| 001001 | 取绝对值:将ACC中的数取绝对值,结果存于ACC中 |
| 001010 | 比较:将ACC中的数与0做比较,小于则继续执行下一条指令,大于则跳转到地址码指示的存储单元上的指令 |
计算的程序清单如下所示:
| 主存地址 | 操作码 | 地址码 | 注释 |
|---|---|---|---|
| 0 | 000001 | 17 | 取数到ACC中 |
| 1 | 000010 | 16 | 存数,将存于单元中 |
| 2 | 000001 | 13 | 取数到ACC |
| 3 | 000111 | 16 | 除得存于ACC中 |
| 4 | 000100 | 16 | 加得到存于单元中 |
| 5 | 000111 | 15 | 除以2,得存于ACC中 |
| 6 | 000010 | 17 | 存数,将存于单元中 |
| 7 | 001000 | 16 | 减得存于ACC中 |
| 8 | 001001 | - | 将存于ACC中 |
| 9 | 001000 | 14 | 将 存于ACC中 |
| 10 | 001010 | 0 | 比较 |
| 11 | 000101 | 17 | 打印 |
| 12 | 000110 | - | 停机 |
| 13 | |||
| 14 | |||
| 15 | |||
| 16 | |||
| 17 |
1.11
- 问:指令和数据都存于存储器中,计算机如何区分它们?
- 答: 计算机主要通过不同的时间段来区分指令和数据;
- 即:取指周期(或取指微程序)取出的既为指令,执行周期(或相应微程序)取出的既为数据。
- 另外也可以通过地址来源区分指令与数据;
- 即从PC指出的存储单元取出的是指令,由指令地址码部分提供操作数地址。
1.12
- 问:什么是指令?什么是程序?
- 答:
- 指令:指令是机器完成某种操作的命令,指令通常包括操作码和地址码两部分;
- 程序:程序是一系列指令的有序集合,程序用于解决某一特定问题。
写在最后
好了,今天的笔记就到这里,欢迎大家到评论区一起讨论。