计算机组成原理课后习题解答Word文件下载.docx
《计算机组成原理课后习题解答Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算机组成原理课后习题解答Word文件下载.docx(85页珍藏版)》请在冰豆网上搜索。
⑹指令和数据均采用二进制方式表示,运算亦采用二进制方式;
⑺机器以运算器为中心,输入/输出设备与存储器间的数据传送都经过运算器。
5.现代计算机均采用冯·
诺依曼模型、但进行了改进,画出现代计算机硬件组成及结构图,并说明各部件的作用。
现代计算机结构大多在冯·
诺依曼模型基础上进行了改进,以进一步提高系统的性能。
改进主要包括以存储器为中心、多种存储器共存、采用总线互连三个方面。
基本的硬件组成及结构图如下:
CPU由运算器和控制器组成,运算器负责实现数据加工,实现算术逻辑运算;
控制器负责指挥和控制各部件协调地工作,实现程序执行过程。
存储器由主存和辅存(如磁盘)组成,负责实现信息存储。
主存由小容量、快速元器件组成,存放近期常用程序和数据;
辅存由大容量、低价格元器件组成,存放所有的程序和数据;
主存可被CPU直接访问,这样在提高访存速度的同时,可降低存储器总成本。
I/O设备负责实现信息的输入和输出,以及信息的格式变换。
通过总线实现部件互连的好处是可以实现CPU的操作标准化,而操作标准化的具体实现部件是I/O接口,它负责缓冲和中转相关操作。
6.若某计算机的机器指令格式如表1.2所示,请写出求s=a+b+c的机器语言程序,其中a、b、c存放在起始地址为0000100000的连续3个主存单元中,而s则要求存放到地址为0000001000的主存单元中。
解:
假设程序第一条指令存放在第1000000000号存储单元中,则程序清单如下:
主存单元地址
(二进制)
指令(二进制)
注释
操作码
地址码
…
0000001000
s
结果数据s
0000100000
a
原始数据a
0000100001
b
原始数据b
0000100010
c
原始数据c
1000000000
000001
取数a到累加器AC中
1000000001
000011
(AC)+b,结果存于AC中
1000000010
(AC)+c,结果存于AC中
1000000011
000010
将AC中内容存到s所在主存单元中
1000000100
000100
**********
停机,地址码空闲(值可任意)
7.画出基于累加器CPU的主机框图,说明题6的机器语言程序的执行过程(尽可能详细)。
简述执行过程与冯·
诺依曼模型的存储程序原理的关系。
基于累加器CPU的的主机框图如下:
假设s=a+b+c程序已被调入主存、首指令地址已写入到PC中,即(PC)=1000000000。
程序运行启动后,计算机硬件自动地、逐条地、按(PC)为指令地址实现取指令、分析指令、执行指令的对应操作,直到执行到停机指令为止。
假设IR中操作码记为OP(IR)、地址码记为AD(IR),则s=a+b+c程序执行过程的具体操作如下:
(1)PC→MAR、MAR→ABus、Read→CBus;
MAR=PC=1000000000,取指令开始
(2)WMFC,(PC)+1→PC;
PC=1000000001(下条指令地址)
(3)MDR→IR;
IR=0000010000100000,取指令完成
ID对OP(IR)译码;
CU得知当前为取数指令
(4)AD(IR)→MAR、MAR→ABus、Read→Cbus;
MAR=0000100000,执行指令开始
(5)WMFC
(6)MDR→AC;
AC=MDR=a,执行指令完成
(7)PC→MAR、MAR→ABus、Read→CBus;
MAR=PC=1000000001,取指令开始
(8)WMFC,(PC)+1→PC;
PC=1000000010(下条指令地址)
(9)MDR→IR;
IR=0000110000100001,取指令完成
CU得知当前为加法指令
(10)AD(IR)→MAR、MAR→ABus、Read→CBus;
MAR=0000100001,执行指令开始
(11)WMFC
(12)(MDR)+(AC)→AC;
AC=a+b,执行指令完成
(13)PC→MAR、MAR→ABus、Read→CBus;
MAR=PC=1000000010,取指令开始
(14)WMFC,(PC)+1→PC;
PC=1000000011(下条指令地址)
(15)MDR→IR;
IR=0000110000100010,取指令完成
(16)AD(IR)→MAR、MAR→ABus、Read→CBus;
MAR=0000100010,执行指令开始
(17)WMFC
(18)(MDR)+(AC)→AC;
AC=a+b+c,执行指令完成
(19)PC→MAR、MAR→ABus、Read→CBus;
MAR=PC=1000000011,取指令开始
(20)WMFC,(PC)+1→PC;
PC=1000000100(下条指令地址)
(21)MDR→IR;
IR=0000100000001000,取指令完成
ID对OP(IR)译码;
CU得知当前为存数指令
(22)AD(IR)→MAR、MAR→ABus、Write→Cbus;
(23)AC→MDR、MDR→DBus、WMFC;
MDR=AC=a+b+c,执行指令完成
(24)PC→MAR、MAR→ABus、Read→Cbus;
MAR=PC=1000000100,取指令开始
(25)WMFC,(PC)+1→PC;
PC=1000000101(下条指令地址)
(26)MDR→IR;
IR=000100**********,取指令完成
ID对OP(IR)译码;
CU得知当前为停机指令
(27)机器自动停机;
执行停机指令完成
从程序执行过程可以看出:
由于指令存放在存储器中,故指令执行过程分为取指令(含分析指令)、执行指令两个阶段;
由于存储器同时只接收一个访问操作,故程序执行过程是循环的指令执行过程,循环变量为PC中的指令地址;
只要按照程序逻辑顺序改变(PC),可以实现按程序逻辑顺序执行程序的目标。
8.指令和数据均存放在存储器中,计算机如何区分它们?
由于存储器访问只使用地址和命令(Read/Write)信号,而指令和数据均以二进制编码形成存放在存储器中,因此,从存储器取得的信息本身是无法区分是指令还是数据的。
计算机只能通过信息的用途来区分,即取指令时取得的是指令,指令执行时取操作数或写结果对应的信息是数据。
即计算机通过程序执行过程或指令执行过程的不同阶段来区分。
9.在某CPU主频为400MHz的计算机上执行程序A,程序A中指令类型、执行数量及平均时钟周期数如下表所示。
指令类型
指令执行数量
平均时钟周期数(/指令)
整数
45000
1
数据传送
75000
2
浮点数
8000
4
条件转移
1500
求该计算机执行程序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×
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传输带宽,常用的方法有采用多种存储器构成层次结构存储系统、采用多级总线互连、采用并行结构存储器等。
对缓解指令串行执行瓶颈而言,主要目标是尽可能实现并行处理,常用的方法有采用流水线技术、数据流技术、超标量技术、超线程技术、多核技术等。
第2章
1.解释概念或术语:
进制、机器数、原码、补码、移码、变形补码、BCD码、交换码、内码、奇校验、CRC、上溢、下溢、左规、对阶、溢出标志、进位标志、部分积、Booth算法、交替加减法除法、警戒位、全加器、并行加法器、行波进位、先行进位。
2.完成下列不同进制数之间的转换
(1)(347.625)10=()2=()8=()16
(2)(9C.E)16=()2=()8=()10
(3)(11010011)2=()10=()8421BCD
(1)(347.625)10=(101011011.101)2=(533.5)8=(15B.A)16
(2)(9C.E)16=(10011100.1110)2=(234.7)8=(156.875)10
(3)(11010011)2=(211)10=(001000010001)8421BCD
3.对下列十进制数,分别写出机器数长度为8位(含1位符号位)时的原码及补码。
(1)+23/128
(2)-35/64(3)43(4)-72
(5)+7/32(6)-9/16(7)+91(8)-33
(1)[+23/128]原=0.0010111,[+23/128]补=0.0010111;
(2)[-35/64]原=1.1000110,[-35/64]补=1.0111010;
(3)[43]原=00101011,[43]补=00101011;
(4)[-72]原=11001000,[-72]补=10111000;
(5)[+7/32]原=0.0011100,[+7/32]补=0.0011100;
(6)[-9/16]原=1.1001000,[-9/16]补=1.0111000;
(7)[+91]原=01011011,[+91]补=01011011;
(8)[-33]原=10100001,[-33]补=11011111。
4.对下列机器数(含1位符号位),若为原码时求补码及真值,若为补码或反码时求原码及真值。
(1)[X]原=100011
(2)[X]补=0.00011(3)[X]反=1.01010
(4)[X]原=1.10011(5)[X]补=101001(6)[X]反=101011
(1)[X]补=111101,X=-00011=-3;
(2)[X]原=0.00011,X=+0.00011=+3/32;
(3)[X]原=1.10101,X=-0.10101=-21/32;
(4)[X]补=1.01101,X=-0.10011=-19/32;
(5)[X]原=110111,X=-10111=-23/32;
(6)[X]原=110100,X=-10100=-20/32。
5.
(1)若[X]补=1.01001,求[-X]补及X;
(2)若[-X]补=101001,求[X]补及X。
(1)[-X]补=0.10111,X=-0.10111=-23/32;
(2)[X]补=010111,X=+10111=+23。
6.
(1)若X=+23及-42,分别求8位长度的[X]移;
(2)若[X]移=1100101及0011101,分别求X。
(1)[+23]移=10010111,[-42]移=01010110;
(2)[X]移=1100101时的X=+100101=+37,
[X]移=0011101时的X=-100011=-35。
7.若[X]补=0.x-1x-2x-3x-4x-5,[Y]补=1y4y3y2y1y0,求下列几种情况时,x-i或yi的取值。
(1)X>1/4
(2)1/8≥X>1/16(3)Y<-16(4)-32<Y≤-8
(1)[1/4]补=0.01000,
故[(x-1=0)∧(x-3=1∨x-4=1∨x-5=1)]∨(x-1=1)时X>1/4;
(2)[1/8]补=0.00100,[1/16]补=0.00010,
故(x-1=0∧x-2=0)∧[(x-3=1∧x-4=0∧x-5=0)∨(x-3=0∧x-4=1∧x-5=1)]时1/8≥X>1/16;
(3)[-16]补=110000,故y4=0时Y<-16;
(4)[-8]补=111000,[-32]补=100000,故(y4=1∧y3=1∧y2=0∧y1=0∧y0=0)∨(y4
y3=1)∨[y4=0∧y3=0∧(y2=1∨y1=1∨y0=1)]时-32<Y≤-8。
8.冗余校验的基本原理是什么?
数据发送时,除发送数据信息外,还冗余发送按某种规律形成的校验信息;
数据接收时,用所接收数据信息形成新的校验信息,与所接收的校验信息比较,以此判断是否发生了错误,出错时报告出错或自动校正错误。
9.若采用奇校验,下述两个数据的校验位的值是多少?
(1)0101001
(2)0011011
(1)数据0101001的奇校验位值为0
1=0;
(2)数据0011011的奇校验位值为0
1=1。
10.若下列奇偶校验码中只有一个有错误,请问采用的是奇/偶校验?
为什么?
(1)10001101
(2)01101101(3)10101001
上述奇偶校验码采用的是偶校验编码方式。
由于三个奇偶校验码中分别有偶数、奇数、偶数个“1”,而只有一个校验码有错误,
故第2个奇偶校验码(01101101)有错误;
又由于第2个奇偶校验码有奇数个“1”,故校验码采用的是偶校验编码方式。
11.设有8位数据信息01101101,请写出求其海明校验码的过程。
本题中数据位数n=8,数据信息m8…m1=01101101,设检验信息位数为k位,
(1)先求得校验信息位数k,根据2k-1≥8+k的要求,可得k=4位;
(2)列出n+k=8+4=12位校验码中的信息排列:
m8m7m6m5p4m4m3m2p3m1p2p1。
(3)设各校验组采用偶校验编码方式,各校验组校验位的值为:
p4=m8
m7
m6
m5=0
0=0,
p3=m8
m4
m3
m2=0
p2=m7
m1=1
1=1,
p1=m7
m5
m2
1=1;
(4)海明偶校验码为:
011001100111。
12.若机器数表示时字长为8位,写出下列情况时它能够表示的数的范围(十进制)。
(1)无符号整数;
(2)原码编码的定点整数;
(3)补码编码的定点整数;
(4)原码编码的定点小数;
(5)补码编码的定点小数。
(1)无符号整数的表示范围是00000000~11111111,即0~255;
(2)原码定点整数的表示范围是-1111111~+1111111,即-127~+127;
(3)补码定点整数的表示范围是-(1111111+1)~+1111111,即-128~+127;
(4)原码定点小数的表示范围是-0.1111111~+0.1111111,即-127/128~+127/128;
(5)补码定点小数的表示范围是-1.0000000~+0.1111111,即-128/128~+127/128。
13.对两个8位字长的定点数9BH及FFH,分别写出它们采用原码编码、补码编码及移码编码时的十进制整数的真值,并写出它们表示为无符号数时的十进制真值。
机器码9BHFFH
原码编码的真值(整数)-27-127
补码编码的真值(整数)-101-1
移码编码的真值(整数)+27+127
无符号编码的真值(整数)155255
14.若浮点数表示格式(从高位到低位)为:
阶码6位(含1位阶符)、尾数10位(含1位数符),请写出51/128、-27/1024、7.375、-86.5所对应的机器数。
(1)阶码和尾数均为原码;
(2)阶码和尾数均为补码;
(3)阶码为移码、尾数为补码。
(1)阶码和尾数均为原码时,
[51/128]浮=[0.0110011]浮=1000010110011000或0000000011001100或…,
[-27/1024]浮=[-0.0000011011]浮=1001011110110000或1000011000011011或…,
[7.375]浮=[111.011]浮=0000110111011000或0001100000111011或…,
[-86.5]浮=[-1010110.1]浮=0001111101011010或0010001010101101或…;
(2)阶码和尾数均为补码时,
[51/128]浮=1111110110011000或0000000011001100或…,
[-27/1024]浮=1110111001010000或1111111111100101或…,
[7.375]浮=0000110111011000或0001100000111011或…,
[-86.5]浮=0001111010100110或0010001101010011或…;
(3)阶码为移码、尾数为补码时,
[51/128]浮=0111110110011000或1000000011001100或…,
[-27/1024]浮=0110111001010000或0111111111100101或…,
[7.375]浮=1000110111011000或1001100000111011或…,
[-86.5]浮=1001111010100110或1010001101010011或…。
15.若浮点数表示格式采用6位阶码(含1位阶符)、10位尾数(含1位数符),阶码和尾数均采用补码编码。
(1)写出浮点数能表示的正数及负数的范围;
(2)写出规格化浮点数能表示的正数及负数的范围。
(1)浮点数正数区的范围为:
+2-9×
2-32~+(1-2-9)×
2+31,
浮点数负数区的范围为:
-1×
2+31~-2-9×
2-32;
(2)规格化浮点数正数区的范围为:
+2-1×
规格化浮点数负数区的范围为:
2+31~-(2-1+2-9)×
2-32。
16.若浮点数表示格式为:
6位阶码(含1位阶符)、10位尾数(含1位数符)。
分别写出阶码和尾数均为原码及均为补码时,下列数值为规格化数时的机器码。
(1)+51/128
(2)-51/128(3)-1/64
(1)阶码和尾数均为原码时,规格化数的机器码为1000010110011000,
阶码和尾数均为补码时,规格化数的机器码为1111110110011000;
(2)阶码和尾数均为原码时,规格化数的机器码为1000011110011000,
阶码和尾数均为补码时,规格化数的机器码为1111111001101000;
(3)阶码和尾数均为原码时,规格化数的机器码为1001011100000000,
阶码和尾数均为补码时,规格化数的机器码为1110101000000000。
17.若机器中单精度浮点数采用IEEE754标准表示。
(1)对机器码为(99D00000)16及(59800000)16的浮点数,请写出它们的真值;
(2)请写出-51/128的机器码。
(1)由于机器码(99D00000)16=10011001110100000000000000000000B,
故浮点数的符号码S=1、阶码E=00110011、尾数码M=10100000000000000000000,
因1<E<255,故机器码表示的为规格化浮点数,
(99D00000)16的真值N=(-1)1×
251-127×
1.10100000000000000000000=-0.1101×
2-76;
由于机器码(59800000)16=01011001100000000000000000000000B,
故浮点数的符号码S=0、阶码E=10110