【计算机组成原理】:期末复习(第一章)

365 阅读9分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第31天,点击查看活动详情

1.计算机系统概论

今天的文章内容是《计算机组成原理》的课后习题。

1.1

  • 问:什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要?
  • 答:
  • 计算机系统:计算机硬件、软件和数据通信设备的物理或逻辑的综合体。
  • 计算机硬件:计算机的物理实体。
  • 计算机软件:计算机运行所需的程序及相关资料。
  • 硬件和软件在计算机系统中相互依存,缺一不可,因此二者同样重要。

1.2

  • 问:如何理解计算机系统的层次结构?
  • 答:
  • 计算机系统可以按照功能划分为6个层次结构,
  • 应用语言机器、高级语言机器、汇编语言机器、操作系统机器、实际机器和微程序机器。
  • 实际机器M1M_1向上延伸构成了各级虚拟机器;
  • 机器M1M_1内部也可向下延伸而形成下一级的微程序机器M0M_0
  • 硬件研究的主要对象归结为传统机器M1M_1和微程序机器M0M_0
  • 软件研究对象主要是操作系统及以上的各级虚拟机。

1.3

  • 问:说明高级语言、汇编语言和机器语言的差别及其联系。
  • 答:
  • 机器语言是计算机硬件可以直接识别的二进制语言
  • 汇编语言是机器语言的符号表示,用符号表示指令或数据所在存储单元的地址;
  • 高级语言是面向过程或对象的语言,对问题的描述十分接近人们的习惯,并且还具有较强的通用性。
  • 高级语言编写的程序处于最高层,必须翻译成汇编语言,再由汇编程序汇编成机器语言后才能被执行。

1.4

  • 问:如何理解计算机体系结构和计算机组成?
  • 答:
  • 计算机体系结构指的是可以被程序员看到的计算机系统的属性,即概念性结构与功能特性。比如指令、寻址技术和IO机理等;
  • 计算机组成是计算机体系结构的逻辑实现,对程序员是透明的,其任务就是当计算机体系结构确定好后,研究各组成部分的内部构造和相互联系,以实现机器指令集的各种功能和特性。

1.5

  • 问:冯·诺依曼计算机的特点是什么?
  • 答:
  • 1. 计算机由运算器、控制器、存储器、输入设备和输出设备五大部分组成;
  • 2. 指令和数据以同等地位存放在存储器中,并可按地址访问;
  • 3. 指令和数据均用二进制数据表示;
  • 4. 指令由操作码和地址码两部分组成,操作码用于表示操作的性质,地址码用于表示操作数在存储器中的位置;
  • 5. 指令在存储器中按顺序存放,通常自动顺序取出执行;
  • 6. 机器以运算器为中心。

1.6

  • 问:画出计算机硬件组成框图,说明各部件的作用以及计算机硬件的主要指标。
  • 答:
  • 计算机硬件组成框图如下所示;其中:
  • 运算器用于完成算术运算以及逻辑运算,并将结果暂存在运算器中;
  • 存储器用于存放数据和程序;
  • 控制器用来控制、指挥程序和数据的输入、运行以及处理计算结果;
  • 输入设备将人们熟悉的信息形式转换为计算机可以识别的形式;
  • 输出设备就是将机器运算的结果转换为人们熟悉的信息形式;
  • 计算机硬件的主要指标有三种,分别是机器字长、存储容量和运算速度。

image.png

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位,在指令字长、存储字长和机器字长相等的条件下,指出图中各寄存器的位数。
  • 答:
  • ①存数指令的信息流程
  • 取指令:PCMARMMDRIR
  • 分析指令:Ad(IR)MAR
  • 执行指令:ACCMDRM
  • ②加法指令的信息流程
  • 取指令:PCMARMMDRIR
  • 分析指令:Op(IR)CU
  • 执行指令:Ad(IR)MARMMDRX, 同时XALUACCMDR
  • 主存容量为256×32位,

主机框图.png

1.10

题目如下:

题目1.10.png

答:

操作码与操作性质的对应表如下所示:

操作码操作性质
000111除法:将 ACC 中的数与指令地址码指示的存储单元中的数相除,结果存于ACC
001000减法:ACC中的数与指令地址码指示的存储单元中的数相减,结果存于ACC
001001取绝对值:ACC中的数取绝对值,结果存于ACC
001010比较:ACC中的数与0做比较,小于则继续执行下一条指令,大于则跳转到地址码指示的存储单元上的指令

计算x\sqrt{x}的程序清单如下所示

主存地址操作码地址码注释
000000117取数yn+1y_{n+1}ACC
100001016存数,将yn+1y_{n+1}存于yny_n单元中
200000113取数xxACC
300011116yny_nxyn\frac {x}{y_n}存于ACC中
400010016yny_n得到yn+xyny_n+\frac {x}{y_n}存于yn+1y_{n+1}单元中
500011115除以2,得yn+xyn2\frac {y_n+\frac {x}{y_n}}{2}存于ACC中
600001017存数,将yn+xyn2\frac {y_n+\frac {x}{y_n}}{2}存于yn+1y_{n+1}单元中
700100016yny_nyn+1yny_{n+1}-y_{n}存于ACC中
8001001-yn+1yn\lvert y_{n+1}-y_{n}\rvert存于ACC中
900100014yn+1ynε\lvert y_{n+1}-y_{n}\rvert-ε存于ACC中
100010100比较
1100010117打印
12000110-停机
13xx
14εε
1522
16yny_n
17yn+1y_{n+1}

1.11

  • 问:指令和数据都存于存储器中,计算机如何区分它们?
  • 答: 计算机主要通过不同的时间段来区分指令和数据;
  • 即:取指周期(或取指微程序)取出的既为指令执行周期(或相应微程序)取出的既为数据
  • 另外也可以通过地址来源区分指令与数据;
  • 即从PC指出的存储单元取出的是指令,由指令地址码部分提供操作数地址。

1.12

  • 问:什么是指令?什么是程序?
  • 答:
  • 指令:指令是机器完成某种操作的命令,指令通常包括操作码和地址码两部分;
  • 程序:程序是一系列指令的有序集合,程序用于解决某一特定问题。

写在最后

文章.png

好了,今天的笔记就到这里,欢迎大家到评论区一起讨论。