计算机组成原理课后习题解答 联系客服

发布时间 : 星期六 文章计算机组成原理课后习题解答更新完毕开始阅读8d5339cb970590c69ec3d5bbfd0a79563c1ed4a4

《计算机组成原理》习题解答

第1章

1.解释概念或术语:实际机器、虚拟机器,机器指令、机器指令格式,主机、CPU、主存、I/O、PC、IR、ALU、CU、AC、MAR、MDR,机器字长、存储字长、指令字长、CPI、TC、主频、响应时间、吞吐量、MIPS、MFLOPS。

答:略 2.如何理解计算机系统的层次结构?说明高级语言、汇编语言及机器语言的差别与联系。 答:(1)计算机系统是由软件和硬件结合而成的整体。为了提高计算机系统的好用性,程序设计语言的描述问题能力越来越强,各种程序设计语言大体上是一种层次结构,即高等级编程语言指令包含低等级编程语言指令的全部功能。

对于使用不同层次编程语言的程序员来说,他们所看到的同一计算机系统的属性是不同的,这些属性反映了同一计算机系统的不同层次的特征,即同一计算机系统可划分成多个层次结构,不同层次的结构反映的计算机系统的特征不同而已。

(2)机器语言是能够被计算机硬件直接识别和执行的程序设计语言,机器语言是一种面向硬件的、数字式程序设计语言;汇编语言和高级语言均用符号表示机器语言指令,指令很容易阅读和编写、但不能被硬件直接识别和执行,它们均是一种面向软件的、符号式程序设计语言;相对于汇编语言而言,高级语言描述问题的能力更强;高级语言和汇编语言程序必须翻译成机器语言程序后,才能在计算机硬件上执行。

3.计算机系统结构、计算机组成的定义各是什么?两者之间有何关系? 答:计算机系统结构是指机器语言程序员或编译程序编写者所看到的计算机系统的属性,包括概念性结构和功能特性两个方面。主要研究计算机系统软硬件交界面的定义及其上下的功能分配。

计算机组成是指计算机硬件设计人员所看到的计算机系统的属性。主要研究如何合理地逻辑实现硬件的功能。

计算机组成是计算机系统结构的逻辑实现。 4.冯·诺依曼模型的存储程序原理包含哪些内容、对计算机硬件和软件有哪些要求?冯·诺依曼模型计算机的特点有哪些?

答:存储程序原理是指程序和数据预先存放在存储器中,机器工作时自动按程序的逻辑顺序从存储器中逐条取出指令并执行。

存储程序原理要求存储器是由定长单元组成的、按地址访问的、一维线性空间结构的存储部件;要求软件指令支持用地址码表示操作数在存储器中的地址,指令长度为存储单元长度的倍数,编程语言中必须有转移型指令,以实现程序存储顺序到程序逻辑顺序的转变。

冯·诺依曼模型计算机的特点可归纳为如下几点:

?计算机由运算器、控制器、存储器、输入设备和输出设备组成; ?存储器是由定长单元组成的、按地址访问的、一维线性空间结构; ?程序由指令组成,指令和数据以等同地位存放在存储器中;

?机器工作时自动按程序的逻辑顺序从存储器中逐条取出指令并执行; ?指令由操作码和地址码组成,操作码用于表示操作的性质,地址码用于表示操作数在存储器中的地址;

1

?指令和数据均采用二进制方式表示,运算亦采用二进制方式;

?机器以运算器为中心,输入/输出设备与存储器间的数据传送都经过运算器。 5.现代计算机均采用冯·诺依曼模型、但进行了改进,画出现代计算机硬件组成及结构图,并说明各部件的作用。

答:现代计算机结构大多在冯·诺依曼模型基础上进行了改进,以进一步提高系统的性能。改进主要包括以存储器为中心、多种存储器共存、采用总线互连三个方面。基本的硬件组成及结构图如下:

CPU 系统总线 I/O接口 I/O设备 …… I/O接口 I/O设备 磁盘接口 磁盘 主存 CPU由运算器和控制器组成,运算器负责实现数据加工,实现算术逻辑运算;控制器负责指挥和控制各部件协调地工作,实现程序执行过程。

存储器由主存和辅存(如磁盘)组成,负责实现信息存储。主存由小容量、快速元器件组成,存放近期常用程序和数据;辅存由大容量、低价格元器件组成,存放所有的程序和数据;主存可被CPU直接访问,这样在提高访存速度的同时,可降低存储器总成本。

I/O设备负责实现信息的输入和输出,以及信息的格式变换。

通过总线实现部件互连的好处是可以实现CPU的操作标准化,而操作标准化的具体实现部件是I/O接口,它负责缓冲和中转相关操作。

6.若某计算机的机器指令格式如表1.2所示,请写出求s=a+b+c的机器语言程序,其中a、b、c存放在起始地址为0000100000的连续3个主存单元中,而s则要求存放到地址为0000001000的主存单元中。

解:假设程序第一条指令存放在第1000000000号存储单元中,则程序清单如下:

主存单元地址 (二进制) ? 0000001000 ? 0000100000 0000100001 0000100010 ? 1000000000 1000000001 1000000010 1000000011 1000000100 000001 000011 000011 000010 000100 指令(二进制) 操作码 ? s ? a b c ? 0000100000 0000100001 0000100010 0000001000 ********** 地址码 结果数据s 原始数据a 原始数据b 原始数据c 取数a到累加器AC中 (AC)+b,结果存于AC中 (AC)+c,结果存于AC中 将AC中内容存到s所在主存单元中 停机,地址码空闲(值可任意) 注释 7.画出基于累加器CPU的主机框图,说明题6的机器语言程序的执行过程(尽可能详细)。简述执行过程与冯·诺依曼模型的存储程序原理的关系。

答:基于累加器CPU的的主机框图如下:

2

运算器 ALU AC 控制器 时序部件 控制信号形成部件 ID IR 主存储器 … +“1” PC 地址译码器 存储 阵列 … I/O电路 I/O 设备 …… MDR MAR CPU Addr Data I/O接口 系统总线 Cmd

假设s=a+b+c程序已被调入主存、首指令地址已写入到PC中,即(PC)=1000000000。

程序运行启动后,计算机硬件自动地、逐条地、按(PC)为指令地址实现取指令、分析指令、执行指令的对应操作,直到执行到停机指令为止。假设IR中操作码记为OP(IR)、地址码记为AD(IR),则s=a+b+c程序执行过程的具体操作如下:

(1)PC→MAR、MAR→ABus、Read→CBus (2)WMFC,(PC)+1→PC (3)MDR→IR

ID对OP(IR)译码 (5)WMFC (6)MDR→AC

;AC=MDR=a,执行指令完成

;MAR=PC=1000000001,取指令开始 ;PC=1000000010(下条指令地址) ;IR=000011 0000100001,取指令完成 ;CU得知当前为加法指令

(7)PC→MAR、MAR→ABus、Read→CBus (8)WMFC,(PC)+1→PC (9)MDR→IR

ID对OP(IR)译码 (11)WMFC

(12)(MDR)+(AC)→AC (14)WMFC,(PC)+1→PC (15)MDR→IR

ID对OP(IR)译码 (17)WMFC

(18)(MDR)+(AC)→AC (20)WMFC,(PC)+1→PC (21)MDR→IR

;AC=a+b+c,执行指令完成 ;MAR=PC=1000000011,取指令开始 ;PC=1000000100(下条指令地址) ;IR=000010 0000001000,取指令完成 ;CU得知当前为存数指令

;MDR=AC=a+b+c,执行指令完成 ;MAR=PC=1000000100,取指令开始 ;PC=1000000101(下条指令地址) ;IR=000100 **********,取指令完成 ;CU得知当前为停机指令 ;执行停机指令完成

(19)PC→MAR、MAR→ABus、Read→CBus

;AC=a+b,执行指令完成

;MAR=PC=1000000010,取指令开始 ;PC=1000000011(下条指令地址) ;IR=000011 0000100010,取指令完成 ;CU得知当前为加法指令

(13)PC→MAR、MAR→ABus、Read→CBus

;MAR=PC=1000000000,取指令开始 ;PC=1000000001(下条指令地址) ;IR=000001 0000100000,取指令完成 ;CU得知当前为取数指令

;MAR=0000100000,执行指令开始

(4)AD(IR)→MAR、MAR→ABus、Read→Cbus

(10)AD(IR)→MAR、MAR→ABus、Read→CBus ;MAR=0000100001,执行指令开始

(16)AD(IR)→MAR、MAR→ABus、Read→CBus ;MAR=0000100010,执行指令开始

ID对OP(IR)译码 (23)AC→MDR、MDR→DBus、WMFC (25)WMFC,(PC)+1→PC (26)MDR→IR

ID对OP(IR)译码 (27)机器自动停机

(22)AD(IR)→MAR、MAR→ABus、Write→Cbus ;MAR=0000100000,执行指令开始 (24)PC→MAR、MAR→ABus、Read→Cbus

从程序执行过程可以看出:由于指令存放在存储器中,故指令执行过程分为取指令(含分析指令)、执行指令两个阶段;由于存储器同时只接收一个访问操作,故程序执行过程是

3

循环的指令执行过程,循环变量为PC中的指令地址;只要按照程序逻辑顺序改变(PC),可以实现按程序逻辑顺序执行程序的目标。

8.指令和数据均存放在存储器中,计算机如何区分它们?

答:由于存储器访问只使用地址和命令(Read/Write)信号,而指令和数据均以二进制编码形成存放在存储器中,因此,从存储器取得的信息本身是无法区分是指令还是数据的。

计算机只能通过信息的用途来区分,即取指令时取得的是指令,指令执行时取操作数或写结果对应的信息是数据。即计算机通过程序执行过程或指令执行过程的不同阶段来区分。 9.在某CPU主频为400MHz的计算机上执行程序A,程序A中指令类型、执行数量及平均时钟周期数如下表所示。

指令类型 整数 数据传送 浮点数 条件转移 指令执行数量 45000 75000 8000 1500 平均时钟周期数(/指令) 1 2 4 2 求该计算机执行程序A时的程序执行时间、平均CPI及MIPS。 解:CPU时钟周期TC=1/f=1/(400×106)=2.5ns 程序执行时间TCPU=[45000×1+75000×2+8000×4+1500×2]×2.5=0.575ms。 平均CPI=(45000×1+75000×2+8000×4+1500×2)

÷( 45000+75000+8000+1500)

=1.776(时钟周期/指令)

MIPS=( 45000+75000+8000+1500)/ (0.575×10-3×106)=225.2百万条/秒

10.冯·诺依曼模型计算机的性能瓶颈有哪些?简述缓解性能瓶颈严重性的方法。 答:冯·诺依曼模型计算机的性能瓶颈有CPU-MEM瓶颈、指令串行执行瓶颈两个。 对缓解CPU-MEM瓶颈而言,主要目标是减少MEM访问延迟、提高MEM传输带宽,常用的方法有采用多种存储器构成层次结构存储系统、采用多级总线互连、采用并行结构存储器等。

对缓解指令串行执行瓶颈而言,主要目标是尽可能实现并行处理,常用的方法有采用流水线技术、数据流技术、超标量技术、超线程技术、多核技术等。

4