计算机组成原理课后答案(唐朔飞第3版)
第一章 计算机系统概论
1. 什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要?
教材 P3
计算机系统:由计算机硬件系统和软件系统组成的综合体。
计算机硬件:指计算机中的电子线路和物理装置。
计算机软件:计算机运行所需的程序及相关资料。
硬件和软件在计算机系统中相互依存,缺一不可,因此同样重要。
2. 如何理解计算机的系统层次结构?
计算机系统的层次结构,是由
硬件
和
软件
两大部分所构成,按功细分为7个层次。
第零层:
硬件逻辑层,可以直接完成每一条微指令的功能,这一层是计算机的计算内核,是实现计算机各种基本操作的实体。由门,
触发器
等逻辑电路组成。
第一层:
微代码层,这级的
机器语言
是微
指令集
,程序员用
微指令
编写的微程序,一般是直接由硬件执行的。常用微程序设计技术。
第二层:
指令集架构层,这级的
机器语言
是该机的
指令集
,程序员用
机器指令
编写的程序可以由
微程序
进行解释。
第三层:
操作系统,它提供了
机器语言
级所没有的,但在汇编语言和高级语言的实现中所需要的某些基本操作。它由机器指令和广义指令组成,机器指令由微程序直接解释,广义指令由操作系统来定义和解释。
第四层:
汇编语言,这级的
机器语言
是汇编语言,完成汇编语言翻译的程序叫做
汇编程序
。
第五层:
高级语言,这级的
机器语言
就是各种高级语言,如C++、Java等,通常用编译程序来完成高级语言翻译的工作。
第六层:
应用程序,这一级是为了使计算机满足某种用途而专门设计的,因此这一级语言就是各种
面向问题
的应用语言。
其中指令集架构层为
软硬件的分界线
;值得我们注意的是不同用户处于不同层次,不同层次具有不同的属性,使用不同工具,且不同层次的代码效率也不同,越往高层代码效率越低。
3.说明高级语言、汇编语言和机器语言的差别及其联系。
1. 机器语言
计算机执行的二进制命令,都是0和1表示的
本质上是由“0”和“1”组成的二进制数。计算机发明之初,人们只能计算机的语言去命令计算机干这干那。向计算机每发出一条指令,就要写出一串串由“0”和“1”组成的指令序列。
因此,使用机器语言是十分痛苦的,特别是在程序有错需要修改时,更是如此。而且,由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,需要进行大量重复繁琐的工作。
但在当时,由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。机器语言,是第一代计算机语言。
- 机器语言的优点:直接执行,速度快,资源占用少
- 机器语言的缺点:难读、难编、难记、可移植性差和易出错
2. 汇编语言
用助记符代替机器指令的操作码(如:ADD表示加法)
为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串。比如,用“ADD”代表加法。这样我们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。
3. 高级语言
更简单,符合人们的习惯,也更容易理解和修改。高级语言经过编译器编译之后可以得到目标程序。(如:C++、JAVA)
从最初与计算机交流的痛苦经历中,人们意识到,应该设计一种这样的语言,这种语言接近于数学语言或人的自然语言,同时又不依赖于计算机硬件,编出的程序能在所有机器上通用。经过努力,1954年,第一个完全脱离机器硬件的高级语言—FORTRAN问世了,40多年来,共有几百种高级语言出现,有重要意义的有几十种。其中就包括C++、java等。
-
机器语言、汇编语言、高级语言的区别:
依次接近人类自然语言的表达方式、代码效率依次变低、语言越来越高级
-
机器语言、汇编语言、高级语言的联系:
高级语言要通过编译程序翻译成汇编代码,汇编语言要通过汇编得到机器语言,计算机才能执行。
4.如何理解计算机组成和计算机体系结构?
-
计算机组成
:指的是系统结构的逻辑实现,包括机器机内的数据流和控制流的组成及逻辑设计等,主要分为五个部分; -
计算机体系结构
:是程序员所看到的计算机的属性,即概念性结构与功能特性。
对计算机组成和计算机体系结构的理解:
4.1 计算机组成
计算机组成指的是系统结构的逻辑实现,包括机器机内的数据流和控制流的组成及逻辑设计等。主要分为五个部分:控制器,运算器,存储器,输入设备,输出设备。计算机体系结构(ComputerArchitecture)是程序员所看到的计算机的属性,即概念性结构与功能特性。按照计算机系统的多级层次结构,不同级程序员所看到的计算机具有不同的属性。
一般来说,低级机器的属性对于高层机器程序员基本是透明的,通常所说的计算机体系结构主要指机器语言级机器的系统结构。经典的关于”计算机体系结构”的定义是1964年C.M.Amdahl在介绍IBM360系统时提出的,其具体描述为”计算机体系结构是程序员所看到的计算机的属性,即概念性结构与功能特性” 。
4.2 计算机体系结构
计算机体系结构是指那些对程序员可见的系统属性,还包括设计思想与体系结构。计算机组成的任务是在指令集系统结构确定分配给硬件系统的功能和概念结构之后,研究各组成部分的内部构造和相互联系,以实现机器指令集的各种功能和特性。这种联系包括各功能部件的内部和相互作用。
4.3 两者区别:
4.3.1 作用不同
- 计算机组成指的是系统结构的逻辑实现,包括机器机内的数据流和控制流的组成及逻辑设计等。主要分为五个部分:控制器,运算器,存储器,输入设备,输出设备。
- 计算机体系结构是指根据属性和功能不同而划分的计算机理论组成部分及计算机基本工作原理、理论的总称。其中计算机理论组成部分并不单与某一个实际硬件相挂钩,如存储部分就包括寄存器、内存、硬盘等。
4.3.2 组成不同
- 计算机组成的任务是在指令集系统结构确定分配给硬件系统的功能和概念结构之后,研究各组成部分的内部构造和相互联系,以实现机器指令集的各种功能和特性。这种联系包括各功能部件的内部和相互作用。
- 计算机体系结构是程序员所看到的计算机的属性,即计算机的逻辑结构和功能特征,包括其各个硬部件和软部件之间的相互关系。
4.3.3、功能不同
- 计算机组成要解决的问题是在所希望达到的性能和价格下,怎样最佳,最合理地把各个数倍和部件组成成计算机,已实现所确定的ISA。
- 计算机体系结构主要研究软件、硬件功能分配和对软件、硬件界面的确定。20世纪70年代以来,在计算机软件方面有了显著的进展。
5. 冯•诺依曼计算机的特点是什么?
冯•诺依曼计算机的特点是:教材 P8
- 计算机由运算器、控制器、存储器、输入设备、输出设备五大部件组成;
- 指令和数据以同同等地位存放于存储器内,并可以按地址访问;
- 指令和数据均用二进制表示;
-
指令由操作码、地址码两大部分组成,操作码用来表示操作的性质,地址码用来表示操
作数在存储器中的位置;
指令在存储器中顺序存放,通常自动顺序取出执行;
机器以运算器为中心(原始冯•诺依曼机)。
7. 解释下列概念:
主机、CPU、主存、存储单元、存储元件、存储基元、存储元、存储字、存储字长、存储容量、
机器字长、指令字长。
教材 P9-10
-
主机
:是计算机硬件的主体部分,由 CPU 和主存储器 MM 合成为主机。 -
CPU
:中央处理器,是计算机硬件的核心部件,由运算器和控制器组成;(早期的运算器和
控制器不在同一芯片上,现在的 CPU 内除含有运算器和控制器外还集成了 CACHE)。 -
主存
:计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,可随机存取:由存储体、各种逻辑部件及控制电路组成。 -
存储单元
:可存放一个机器字并具有特定存储地址的存储单位。 -
存储元件
:存储一位二进制信息的物理元件,是存储器中最小的存储单位,又叫存储基元
或存储元,不能单独存取。 -
存储字
:一个存储单元所存二进制代码的逻辑单位。 -
存储字长
:一个存储单元所存二进制代码的位数。 -
存储容量
:存储器中可存二进制代码的总量;(通常主、辅存容量分开描述)。 -
机器字长
:指 CPU 一次能处理的二进制数据的位数,通常与 CPU 的寄存器位数有关。 -
指令字长
:一条指令的二进制代码位数。
8. 解释下列英文缩写的中文含义:
CPU、PC、IR、CU、ALU、ACC、MQ、X、MAR、MDR、I/O、MIPS、CPI、FLOPS
全面的回答应分英文全称、中文名、功能三部分。
-
CPU
:Central Processing Unit,中央处理机(器),是计算机硬件的核心部件,主要由运算器和控制器组成。 -
PC
:Program Counter,程序计数器,其功能是存放当前欲执行指令的地址,并可自动计数
形成下一条指令地址。 -
IR
:Instruction Register,指令寄存器,其功能是存放当前正在执行的指令。 -
CU
:Control Unit,控制单元(部件),为控制器的核心部件,其功能是产生微操作命令序
列。 -
ALU
:Arithmetic Logic Unit,算术逻辑运算单元,为运算器的核心部件,其功能是进行
算术、逻辑运算。 -
ACC
:Accumulator,累加器,是运算器中既能存放运算前的操作数,又能存放运算结果的
寄存器。 -
MQ
:Multiplier-Quotient Register,乘商寄存器,乘法运算时存放乘数、除法时存放商
的寄存器。 -
X
:此字母没有专指的缩写含义,可以用作任一部件名,在此表示操作数寄存器,即运算器
中工作寄存器之一,用来存放操作数; -
MAR
:Memory Address Register,存储器地址寄存器,在主存中用来存放欲访问的存储单
元的地址。 -
MDR
:Memory Data Register,存储器数据缓冲寄存器,在主存中用来存放从某单元读出、
或要写入某存储单元的数据。 -
I/O
:Input/Output equipment,输入/输出设备,为输入设备和输出设备的总称,用于计
算机内部和外界信息的转换与传送。 -
MIPS
:Million Instruction Per Second,每秒执行百万条指令数,为计算机运算速度指
标的一种计量单位。
9. 画出主机框图,分别以存数指令“STA M”和加法指令“ADD M”(M 均为主存地址)为例,在图中按序标出完成该指令(包括取指令阶段)的信息流程(如→①)。假设主存容量为 256M*32位,在指令字长、存储字长、机器字长相等的条件下,指出图中各寄存器的位数。
主机框图
教材P13 图 1.11
所示。
(1)STA M 指令:PC→MAR,MAR→MM,MM→MDR,MDR→IR,
OP(IR) →CU,Ad(IR) →MAR,ACC→MDR,MAR→MM,WR
(2)ADD M 指令:PC→MAR,MAR→MM,MM→MDR,MDR→IR,
OP(IR) →CU,Ad(IR) →MAR,RD,MM→MDR,MDR→X,ADD,ALU→ACC,
ACC→MDR,WR
假设主存容量 256M*32 位,在指令字长、存储字长、机器字长相等的条件下,ACC、X、IR、
MDR 寄存器均为 32 位,PC 和 MAR 寄存器均为 28 位。
10. 指令和数据都存于存储器中,计算机如何区分它们?
计算机区分指令和数据有以下 2 种方法:
- 通过不同的时间段来区分指令和数据,即在取指令阶段(或取指微程序)取出的为指令,在执行指令阶段(或相应微程序)取出的即为数据。
-
通过地址来源区分,由 PC 提供存储单元地址的取出的是指令,由指令地址码部分提供
存储单元地址的取出的是操作数。
11. 什么是指令?什么是程序?
1、计算机指令就是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令,执行程序的过程就是计算机的工作过程。
2、通常一条指令包括两方面的内容:操作码和操作数,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址。
3、计算机程序是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具。
指令:
指令是指计算机执行某种操作的命令,它由一串二进制数码组成。计算机执行了一指令序列,便可完成预定的任务,这一指令序列就称为程序;
程序:
程序是计算机所以指令的集合,称为该计算机的指令系统;
指令的执行过程分为四步:
1、取指令;2、分析指令;3、执行指令;4、完成上述操作后,指令计数器加1,为执行下一条指令做准备。