《唐朔飞 计算机组成原理习题答案.pptx》由会员分享,可在线阅读,更多相关《唐朔飞 计算机组成原理习题答案.pptx(42页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、15.15.设CPUCPU共有1616根地址线,8 8根数据线,并用(低电平有效)作访存控制信号,作读写命令信号(高电平为读,低电平为写)。现有下列存储芯片:ROMROM(2K82K8位,4K44K4位,8K88K8位),RAMRAM(1K41K4位,2K82K8位,4K84K8位),及7413874138译码器和其他门电路(门电路自定)。试从上述规格中选用合适芯片,画出CPUCPU和存储芯片的连接图。要求:(1 1)最小4K4K地址为系统程序区,409616383409616383地址范围为用户程序区。(2 2)指出选用的存储芯片类型及数量。(3 3)详细画出片选逻辑。第1页/共42页解:(
2、1 1)地址空间分配图:系统程序区(ROMROM共4KB4KB):0000H-0FFFH0000H-0FFFH 用户程序区(RAMRAM共12KB12KB):1000H-3FFFH1000H-3FFFH (2 2)选片:ROMROM:选择4K44K4位芯片2 2片,位并联 RAMRAM:选择4K84K8位芯片3 3片,字串联 (RAM1(RAM1地址范围为:1000H-1FFFH,RAM2:1000H-1FFFH,RAM2地址范围为2000H-2FFFH,RAM32000H-2FFFH,RAM3地址范围为:3000H-3FFFH):3000H-3FFFH)(3 3)各芯片二进制地址分配如下:A
3、15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0ROM1,200000000000000000000011111111111RAM100010000000000000001111111111111RAM200100000000000000010111111111111RAM300110000000000000011111111111111第2页/共42页CPUCPU和存储器连接逻辑图及片选逻辑如下图所示:第3页/共42页 20.20.欲传送的二进制代码为10011011001101,用奇校验来确定其对应的汉明码,若在第6 6位出错,说明纠错过程。解:欲传送的二进制代码
4、为10011011001101,有效信息位数为n=7n=7位,则汉明校验的校验位为k k位,则:2 2k k=n+k+1=n+k+1,k=4k=4,进行奇校验设校验位为C1C2C3C4C1C2C3C4,汉明码为C1C2B7C3B6B5B4C4B3B2B1C1C2B7C3B6B5B4C4B3B2B1,C1=1B7B6B4B3B1=110111=1C1=1B7B6B4B3B1=110111=1C2=1B7B5B4B2B1=110101=0C2=1B7B5B4B2B1=110101=0C3=1B6B5B4=1001=0C3=1B6B5B4=1001=0C4=1B3B2B1=1101=1C4=1B3B
5、2B1=1101=1 故传送的汉明码为1010001110110100011101,若第6 6位(B5)(B5)出错,即接收的码字为1010011110110100111101,则第4页/共42页P1=1C1B7B6B4B3B1=11P1=1C1B7B6B4B3B1=1110111=010111=0P2=1C2B7B5B4B2B1=10P2=1C2B7B5B4B2B1=1011101=111101=1P3=1C3B6B5B4=10011=1P3=1C3B6B5B4=10011=1P4=1C4B3B2B1=11101=0P4=1C4B3B2B1=11101=0P4P3P2P1=0110P4P3P
6、2P1=0110说明第6 6位出错,对第6 6位取反即完成纠错。第5页/共42页 28.28.设主存容量为256K256K字,CacheCache容量为2K2K字,块长为4 4。(1 1)设计CacheCache地址格式,CacheCache中可装入多少块数据?(2 2)在直接映射方式下,设计主存地址格式。(3 3)在四路组相联映射方式下,设计主存地址格式。(4 4)在全相联映射方式下,设计主存地址格式。(5 5)若存储字长为3232位,存储器按字节寻址,写出上述三种映射方式下主存的地址格式。解:(1 1)CacheCache容量为2K2K字,块长为4 4,CacheCache共有2K/4=2
7、2K/4=21111/2/22 2=2=29 9=512=512块,CacheCache字地址9 9位,字块内地址为2 2位,因此,CacheCache地址格式设计如下:Cache字块地址(字块地址(9位)位)字块内地址(字块内地址(2位)位)第6页/共42页 (2 2)主存容量为256K256K字=2=21818字,主存地址共1818位,共分256K/4=2256K/4=21616块,主存字块标记为18-9-2=718-9-2=7位。直接映射方式下主存地址格式如下:主存字块标记(主存字块标记(7位)位)Cache字块地址(字块地址(9位)位)字块内地址(字块内地址(2位)位)主存字块标记(主
8、存字块标记(9位)位)组地址(组地址(7位)位)字块内地址(字块内地址(2位)位)(3 3)根据四路组相联的条件,一组内共有4 4块,得CacheCache共分为512/4=128=2512/4=128=27 7组,主存字块标记为18-7-2=918-7-2=9位,主存地址格式设计如下:(4 4)在全相联映射方式下,主存字块标记为18-2=1618-2=16位,其地址格式如下:主存字块标记(主存字块标记(16位)位)字块内地址(字块内地址(2位)位)第7页/共42页 (5 5)若存储字长为3232位,存储器按字节寻址,则主存容量为256K*32/4=2256K*32/4=22121B B,Ca
9、cheCache容量为2K*32/4=22K*32/4=21414B B,块长为4*32/4=32B=24*32/4=32B=25 5B B,字块内地址为5 5位,在直接映射方式下,主存字块标记为21-9-5=721-9-5=7位,主存地址格式为:主存字块标记(主存字块标记(7位)位)Cache字块地址(字块地址(9位)位)字块内地址(字块内地址(5位)位)主存字块标记(主存字块标记(9位)位)组地址(组地址(7位)位)字块内地址(字块内地址(5位)位)主存字块标记(主存字块标记(16位)位)字块内地址(字块内地址(5位)位)在四路组相联映射方式下,主存字块标记为21-7-21-7-5=95=
10、9位,主存地址格式为:在全相联映射方式下,主存字块标记为21-5=1621-5=16位,主存地址格式为:第8页/共42页 32.32.设某机主存容量为4MB4MB,CacheCache容量为16KB16KB,每字块有8 8个字,每字3232位,设计一个四路组相联映射(即CacheCache每组内共有4 4个字块)的CacheCache组织。(1 1)画出主存地址字段中各段的位数。(2 2)设CacheCache的初态为空,CPUCPU依次从主存第0 0,1 1,2 2,8989号单元读出9090个字(主存一次读出一个字),并重复按此次序读8 8次,问命中率是多少?(3 3)若CacheCach
11、e的速度是主存的6 6倍,试问有CacheCache和无CacheCache相比,速度约提高多少倍?第9页/共42页 解:(1 1)根据每字块有8 8个字,每字3232位(4 4字节),得出主存地址字段中字块内地址为3+2=53+2=5位。根据CacheCache容量为16KB=216KB=21414B B,字块大小为8*32/8=32=28*32/8=32=25 5B B,得CacheCache地址共1414位,CacheCache共有2 214-514-5=2=29 9块。根据四路组相联映射,CacheCache共分为2 29 9/2/22 2=2=27 7组。根据主存容量为4MB=24M
12、B=22222B B,得主存地址共2222位,主存字块标记为22-7-5=1022-7-5=10位,故主存地址格式为:主存字块标记(主存字块标记(10位)位)组地址(组地址(7位)位)字块内地址(字块内地址(5位)位)第10页/共42页 (2 2)由于每个字块中有8 8个字,而且初态为空,因此CPUCPU读第0 0号单元时,未命中,必须访问主存,同时将该字所在的主存块调入CacheCache第0 0组中的任一块内,接着CPUCPU读第1717号单元时均命中。同理,CPUCPU读第8 8,1616,8888号时均未命中。可见,CPUCPU在连续读9090个字中共有1212次未命中,而后8 8次循
13、环读9090个字全部命中,命中率为:第11页/共42页 (3 3)设CacheCache的周期为t t,则主存周期为6t6t,没有CacheCache的访问时间为6t*90*86t*90*8,有CacheCache的访问时间为t t(90*8-1290*8-12)+6t*12+6t*12,则有CacheCache和无CacheCache相比,速度提高的倍数为:第12页/共42页38.磁盘组有6片磁盘,最外两侧盘面可以记录,存储区域内径22cm,外径33cm,道密度为40道/cm,内层密度为400位/cm,转速3600转/分,问:(1)共有多少存储面可用?(2)共有多少柱面?(3)盘组总存储容量
14、是多少?(4)数据传输率是多少?解:(1)共有:62=12个存储面可用。(2)有效存储区域=(33-22)/2=5.5cm(3)内层道周长=22=69.08cm道容量=400位/cm69.08cm=3454B面容量=3454B220道=759,880B盘组总容量=759,880B12面=9,118,560B柱面数=40道/cm5.5=220道第13页/共42页(4)转速=3600转/60秒=60转/秒数据传输率=3454B60转/秒=207,240B/S第14页/共42页 4.42 4.42 有一个(7(7,4)4)码,生成多项式x x3 3+x+1+x+1,写出代码10011001的循环冗余
15、校验码 解:代码为:由(7(7,4)4)得:生成多项式为:将代码左移3 3位后再被生成多项式模2 2处,即:故CRCCRC码为:第15页/共42页第5 5章 输入输出系统 32.设磁盘存储器转速为3000转/分,分8个扇区,每扇区存储1K字节,主存与磁盘存储器数据传送的宽度为16位(即每次传送16位)。假设一条指令最长执行时间是25 s,是否可采用一条指令执行结束时响应DMA请求的方案,为什么?若不行,应采取什么方案?29 29 结合DMADMA接口电路说明工作过程。看书解:先算出磁盘传送速度,然后和指令执行速度进行比较得出结论。道容量=1K88位=8KB=4K字数传率=4K字3000转/分=
16、4K字50转/秒=200K字/秒第16页/共42页 一个字的传送时间=1/200K=1/200K秒 5 5 s s (注:在此1K=10241K=1024,来自数据块单位缩写。)因为5 5 s25s25 s s,所以不能采用一条指令执行结束响应DMADMA请求的方案,应采取每个CPUCPU机器周期末查询及响应DMADMA请求的方案(通常安排CPUCPU机器周期=MM=MM存取周期)。第17页/共42页第6 6章 计算机的运算方法 9.9.当十六进制数9B9B和FFFF分别表示为原码、补码、反码、移码和无符号数时,所对应的十进制数各为多少(设机器数采用一位符号位)?解:真值和机器数的对应关系如下
17、:9BH原码补码反码移码无符号数对应十进制数-27-101-100+27155FFH原码补码反码移码无符号数对应十进制数-128-1-0+128256第18页/共42页12.12.设浮点数格式为:阶码5 5位(含1 1位阶符),尾数1111位(含1 1位数符)。写出51/12851/128、-27/1024-27/1024、7.3757.375、-86.586.5所对应的机器数。要求如下:(1 1)阶码和尾数均为原码。(2 2)阶码和尾数均为补码。(3 3)阶码为移码,尾数为补码。解:据题意画出该浮点数的格式 阶符阶符1位位阶码阶码4位位数符数符1位位尾数尾数10位位 将十进制数转换为二进制:
18、x1=51/128=0.0110011B=2x1=51/128=0.0110011B=2-1-1*0.110 011B*0.110 011Bx2=-2x2=-27 7/1024=-0.0000011011B=2/1024=-0.0000011011B=2-5-5*(-0.11011B*(-0.11011B)x3=7.375=111.011B=2x3=7.375=111.011B=23 3*0.111011B*0.111011Bx4=-86.5=-1010110.1B=2x4=-86.5=-1010110.1B=27 7*(-0.10101101B)*(-0.10101101B)第19页/共42
19、页则以上各数的浮点规格化数为:(1 1)x1x1浮=1=1,00010001;0.110 011 000 00.110 011 000 0 x2 x2浮=1=1,01010101;1.110 110 000 01.110 110 000 0 x3 x3浮=0=0,00110011;0.111 011 000 00.111 011 000 0 x4 x4浮=0=0,01110111;1.101 011 010 01.101 011 010 0(2 2)x1x1浮=1=1,11111111;0.110 011 000 00.110 011 000 0 x2 x2浮=1=1,10111011;1.0
20、01 010 000 01.001 010 000 0 x3 x3浮=0=0,00110011;0.111 011 000 00.111 011 000 0 x4 x4浮=0=0,01110111;1.010 100 110 01.010 100 110 0(3 3)x1x1浮=0=0,11111111;0.110 011 000 00.110 011 000 0 x2 x2浮=0=0,10111011;1.001 010 000 0 1.001 010 000 0 x3 x3浮=1=1,00110011;0.111 011 000 00.111 011 000 0 x4 x4浮=1=1,01
21、110111;1.010 100 110 01.010 100 110 0第20页/共42页1616设机器数字长为1616位,写出下列各种情况下它能表示的数的范围。设机器数采用一位符号位,答案均用十进制表示。(1 1)无符号数;(2 2)原码表示的定点小数。(3 3)补码表示的定点小数。(4 4)补码表示的定点整数。(5 5)原码表示的定点整数。(6 6)浮点数的格式为:阶码6 6位(含1 1位阶符),尾数1010位(含1 1位数符)。分别写出其正数和负数的表示范围。(7 7)浮点数格式同(6 6),机器数采用补码规格化形式,分别写出其对应的正数和负数的真值范围。第21页/共42页解:(1)无
22、符号整数:0216-1,即:065535;无符号小数:01-2-16,即:00.99998;(2)原码定点小数:-1+2-151-2-15,即:-0.999970.99997(3)补码定点小数:-11-2-15,即:-10.99997(4)补码定点整数:-215215-1,即:-3276832767(5)原码定点整数:-215+1215-1,即:-3276732767(6)据题意画出该浮点数格式,当阶码和尾数均采用原码,非规格化数表示时:第22页/共42页最大负数=1,11111;1.000000001,即-2-9 2-31最小负数=0,11111;1.111111111,即-(1-2-9)2
23、31则负数表示范围为:-(1-2-9)231-2-9 2-31最大正数=0,11111;0.111111111,即(1-2-9)231最小正数=1,11111;0.000000001,即2-9 2-31则正数表示范围为:2-9 2-31(1-2-9)231(7)当机器数采用补码规格化形式时,若不考虑隐藏位,则最大负数=1,00000;1.011111111,即-2-1 2-32最小负数=0,11111;1.000000000,即-1 231则负数表示范围为:-1 231-2-1 2-32最大正数=0,11111;0.111111111,即(1-2-9)231最小正数=1,00000;0.100
24、000000,即2-1 2-32则正数表示范围为:2-1 2-32(1-2-9)231第23页/共42页20.用原码一位乘、两位乘和补码一位乘(Booth算法)、两位乘计算xy。(1)x=0.110111,y=-0.101110;(2)x=-0.010111,y=-0.010101;(3)x=19,y=35;(4)x=0.11011,y=-0.11101。解:先将数据转换成所需的机器数,然后计算,最后结果转换成真值。(1)x原=0.110111,y原=1.101110,x*=0.110111,y*=0.101110原码一位乘:第24页/共42页部分积部分积乘数乘数y*说明说明0.000000+
25、0.000000101110部分积初值为部分积初值为0,乘数为,乘数为0加加00.0000000.000000+0.110111010111右移一位右移一位乘数为乘数为1,加上,加上x*0.1101110.011011+0.110111101011右移一位右移一位乘数为乘数为1,加上,加上x*1.0100100.101001+0.110111010101右移一位右移一位乘数为乘数为1,加上,加上x*1.1000000.110000+0.000000001010右移一位右移一位乘数为乘数为0,加上,加上00.1100000.011000+0.110111000101右移一位右移一位乘数为乘数为1
26、,加上,加上x*1.0011110.100111100010右移一位右移一位即x*y*=0.100 111 100 010 x*y*=0.100 111 100 010,z0=x0z0=x0 y0=0 y0=0 1=11=1,xyxy原=1.100 111 100 010=1.100 111 100 010,xy=-0.100 111 100 010 xy=-0.100 111 100 010第25页/共42页补码一位乘:x补=0.110111,-x补=1.001001,y补=1.010010部分积部分积乘数乘数Yn+1说明说明00.00000000.000000+11.00100110100
27、10010100100Ynyn+1=00,部分积右移,部分积右移1位位Ynyn+1=10,部分积加,部分积加-x补补11.001001右移右移1位位11.100100+00.11011110101001Ynyn+1=01,部分积加,部分积加x补补00.011011右移右移1位位00.00110100.000110+11.0010011101010111010100Ynyn+1=00,部分积右移,部分积右移1位位Ynyn+1=10,部分积加,部分积加-x补补11.001111右移右移1位位11.100111+00.11011111110101Ynyn+1=01,部分积加,部分积加x补补00.01
28、111000.001111+11.00100101111010右移右移1位位Ynyn+1=10,部分积加,部分积加-x补补11.011000011110即 xyxy补=1.011 000 011 110=1.011 000 011 110,xy=-0.100 111 100 010 xy=-0.100 111 100 010第26页/共42页第7章指令系统15一相对寻址的转移指令占3个字节,第一字节是操作码,第二、三字节为相对位移量,而且数据在存储器中采用以高字节地址为字地址的存放方式。假设PC当前值为4000H。试问当结果为0,执行“JZ*+35”和JZ*-17”指令时,该指令的第二、第三字
29、节的机器代码各为多少?解:当结果为0,执行“JZ*+35”时,指令的相对位移量为35(D)=23H,该该指令的第二字节的机器代码为00H,第三字节的机器代码为23H当结果为0,执行“JZ*-17”时,指令的相对位移量为-17(D)=EFH(补码),该该指令的第二字节的机器代码为FFH,第三字节的机器代码为EFH第27页/共42页16.某机主存容量为4M 16位,且存储字长等于指令字长,若该机指令系统可完成108种操作,操作码位数固定,且具有直接、间接、变址、基址、相对、立即等六种寻址方式,试回答:(1)画出一地址指令格式并指出各字段的作用;(2)该指令直接寻址的最大范围;(3)一次间址和多次间
30、址的寻址范围;(4)立即数的范围(十进制表示);(5)相对寻址的位移量(十进制表示);(6)上述六种寻址方式的指令哪一种执行时间最短?哪一种最长?为什么?哪一种便于程序浮动?哪一种最适合处理数组问题?(7)如何修改指令格式,使指令的寻址范围可扩大到4M?(8)为使一条转移指令能转移到主存的任一位置,可采取什么措施?简要说明之。第28页/共42页解:(1)单字长一地址指令格式:OP(7位)M(3位)A(6位)OP为操作码字段,共7位,可反映108种操作;M为寻址方式字段,共3位,可反映6种寻址操作;A为地址码字段,共16-7-3=6位。(2)直接寻址的最大范围为26=64。(3)由于存储字长为1
31、6位,故一次间址的寻址范围为216;若多次间址,需用存储字的最高位来区别是否继续间接寻址,故寻址范围为215。(4)立即数的范围为-3231(有符号数),或063(无符号数)。(5)相对寻址的位移量为-3231。第29页/共42页(6)上述六种寻址方式中,因立即数由指令直接给出,故立即寻址的指令执行时间最短。间接寻址在指令的执行阶段要多次访存(一次间接寻址要两次访存,多次间接寻址要多次访存),故执行时间最长。变址寻址由于变址寄存器的内容由用户给定,而且在程序的执行过程中允许用户修改,而其形式地址始终不变,故变址寻址的指令便于用户编制处理数组问题的程序。相对寻址操作数的有效地址只与当前指令地址相
32、差一定的位移量,与直接寻址相比,更有利于程序浮动。第30页/共42页(7)方案一:为使指令寻址范围可扩大到4M,需要有效地址22位,此时可将单字长一地址指令的格式改为双字长,如下图示:OP(7位)位)MOD(3位)位)A(高(高6位)位)A(低(低16位)位)方案二:如果仍采用单字长指令(16位)格式,为使指令寻址范围扩大到4M,可通过段寻址方案实现。安排如下:硬件设段寄存器DS(16位),用来存放段地址。在完成指令寻址方式所规定的寻址操作后,得有效地址EA(6位),再由硬件自动完成段寻址,最后得22位物理地址。即:物理地址=(DS)26+EA注:段寻址方式由硬件隐含实现。在编程指定的寻址过程
33、完成、EA产生之后由硬件自动完成,对用户是透明的。第31页/共42页方案三:在采用单字长指令(16位)格式时,还可通过页面寻址方案使指令寻址范围扩大到4M。安排如下:硬件设页面寄存器PR(16位),用来存放页面地址。指令寻址方式中增设页面寻址。当需要使指令寻址范围扩大到4M时,编程选择页面寻址方式,则:EA=(PR)A(有效地址=页面地址“拼接”6位形式地址),这样得到22位有效地址。第32页/共42页(8)为使一条转移指令能转移到主存的任一位置,寻址范围须达到4M,除了采用(7)方案一中的双字长一地址指令的格式外,还可配置22位的基址寄存器或22位的变址寄存器,使EA=(BR)+A(BR为2
34、2位的基址寄存器)或EA=(IX)+A(IX为22位的变址寄存器),便可访问4M存储空间。还可以通过16位的基址寄存器左移6位再和形式地址A相加,也可达到同样的效果。总之,不论采取何种方式,最终得到的实际地址应是22位。第33页/共42页第8章CPU的结构和功能12在5个功能段的指令流水线中,假设每段的执行时间分别是10ns、8ns、10ns、10ns和7ns。对于完成12条指令的流水线而言,其加速比为多少?该流水线的实际吞吐率为多少?解:由题意可知,各段执行时间最多为20ns,即:加速比:实际吞吐率:第34页/共42页26.设某机配有A、B、C三台设备,其优先顺序按ABC降序排列,为改变中断
35、处理次序,它们的中断屏蔽字设置如下:设备设备屏蔽字屏蔽字A111B010C011请按下图所示时间轴给出的设备请求中断的时刻,画出CPU执行程序的轨迹。设A、B、C中断服务程序的执行时间均为20 s。第35页/共42页解:A、B、C设备的响应优先级为A最高、B次之、C最低,处理优先级为A最高、C次之、B最低。CPU执行程序的轨迹图如下:第36页/共42页15.设控制存储器的容量为51248位,微程序可在整个控存空间实现转移,而控制微程序转移的条件共有4个(采用直接控制),微指令格式如下:第10章控制单元的设计解:因为控制存储器共有512*48=29*48所以,下址字段应有9位,微指令字长48位又
36、因为控制微程序转移的条件有4个,4+1=23所以判断测试字段占3位因此控制字段位数为:48-9-3=36微指令格式为:4813121091控制字段测试字段下址字段第37页/共42页19.假设机器的主要部件有程序计数器PC,指令寄存器IR,通用寄存器R0、R1、R2、R3,暂存器C、D,ALU,移位器,存储器地址寄存器MAR,存储器数据寄存器MDR及存储矩阵M。(1)要求采用单总线结构画出包含上述部件的硬件框图,并注明数据流动方向。(2)画出“ADD(R1),(R2)”指令在取指阶段和执行阶段的信息流程图。R1寄存器存放源操作数地址,R2寄存器存放目的操作数的地址。(3)写出对应该流程图所需的全
37、部微操作命令。第38页/共42页解:(1)各功能部件联结成如图所示数据通路:(2)“ADD(R1),(R2)”指令是SS型指令,源操作数的地址在R1,操作数在主存,所以是R1间接寻址。目的操作数也在主存,由R2间接寻址。指令周期流程图如下:第39页/共42页 取源操作数取目的操作数 取出当前指令,(PC)+1为取下条指令做好准备两操作数相加写回主存中原来目的操作数的位置送当前指令地址到MAR(设当前指令地址已在PC中)(PC)MARMMDRIR (PC)+1(R1)MAR MMDRC (R2)MAR MMDRD (C)+(D)MDR MDRM 译码第40页/共42页(3)对应了流程图所需的全部微操作命令为:(PC)MARMMDRIR (PC)+1(R1)MAR MMDRC (R2)MAR MMDRD (C)+(D)MDR MDRM 译码(PC)MAR,1RMMDR,(PC)+1PCMDRIROP(IR)ID(R1)MAR,1RMMDR,MDRC(R2)MAR,1RMMDR,MDRD(C)+(D)移位器,移位器 MDR,MDRBus,(R2)MAR,1W第41页/共42页谢谢您的观看!第42页/共42页
限制150内