计算机组成原理课后习题解答第三章:系统总线11题:CPU→I/OI/O→CPUCPUI/O……………..……………..D7D0D7D0P66页12题:在数据总线上接有A、B、C、D寄存器,画出满足下列要求的电路框图:ABC三态门DBUSTmTm(1)在同一时间实现D→A,D→B,D→C寄存器间传送(2)要求:T0时刻完成D→总线;T1时刻完成总线→A;T2时刻完成A→总线;T3时刻完成总线→BA接收门1T2+T3接收门2BT3三态门1D三态门2T1T0+T1BUSCPT0T1T2T3补充作业:1.假设总线的时钟频率为33MHz,且一个总线时钟周期为一个总线传输周期。若在一个总线传输周期可并行传送4个字节数据,求该总线带宽,并分析哪些因素影响总线的带宽。解:总线带宽是指单位时间内总线上可传输的数据位数(字节/秒)。总线带宽=4B/T=4B×f=4B×33×106Hz=132MBps影响总线带宽的因素:总线宽度、传输距离、总线发送和接收电路的工作频率的限制以及数据传输形式等。2.在一个16位的总线系统中,若时钟频率为100MHz,总线传输周期为5个时钟周期,每一个总线传输周期可传送1个字,试计算总线的数据传输率。解:时钟频率为100MHz,所以:1个时钟周期为1/f=1/100=0.01µs5个时钟周期为0.05µs总线的数据传输率=16b/(T×5)=16b/(1/f×5)=16b/(1/100×5)=320×106bps第四章存储器21题:(教材P146页)解:(1)根据题意:每字块有8个字,每个字32位故主存地址字段中字块内地址字段为5位(25=32),字块大小为8×32b=32B=25B所以16KB的CACHE共有214B/25B=29块,即C=9。根据四路组相联映象2r=4得r=2故q=c-r=9-2=7主存容量为4MB=222B,主存地址字段中主存字块标记位数为22-7-5=10位。主存地址字段各段格式为:主存字块标记(12位)组地址(7位)字块内地址(5位)(2)CACHE开始空,CPU访问0单元时肯定不命中,会读取内存,并将内存所在块(0-7号单元)调入CACHE,CPU以后访问1-7号单元会命中,而访问8号单元又不命中,再替换….,所以,CPU在访问0-99号单元时会不命中8,16,……96共13个单元。故命中率=(100×8-13)/(100×8)×100%=98.375%(3)设主存存取周期为6t,CACHE存取周期为t,没有CACHE的访问时间为6t×800,有CACHE的访问时间为t(800-13)+6t×13则速度提高倍数=(6t×800)/(t(800-13)+6t×13)=4.5教材P146页26题解:(1)硬盘由6片磁盘组成,每片2个记录面,由于上下2个面不用,所以共有10个记录面可以用。(2)柱面数也就是每张磁盘磁道数=盘半径/道密度盘半径=外半径-内半径=33/2-11/2=5.5cm=55mm柱面数=盘半径/道密度=5.5×40=220面(3)硬盘总容量=面容量×记录面数=(道容量×道数)×记录面数=((内道周长×内层密度)×道数)×记录面数=(((2×3.14×22/2)×400)×220)×10=60790400位(4)数据传输率=转速×道容量=40×(2×3.14×22/2)×400)=40×27632=1105280位教材P146页27题解(1)磁盘总容量=道容量×道数×记录面数=12288×275×4=13516800字节(2)最高位密度(最小磁道位密度)=道容量/(2×3.14×最小磁道直径)=12288字节/(2×3.14×230mm)=17字节/mm最低位密度(最大磁道位密度)=道容量/(2×3.14×最大磁道直径)=12288字节/(2×3.14×(最小磁道直径+磁盘半径×2))=12288字节/(2×3.14×(230mm+磁道数/道密度×2))=12288字节/(2×3.14×(230mm+275/5×2))=11.7字节/mm(3)数据传输率=转速×道容量=(3000/60)×12288字节=614.4字节/秒=614.4B/S(4)因为平均等待时间为磁盘转一圈时间的一半,所以:平均等待时间=(1/转速)/2=(60/3000)/2=10ms补充作业:1.一个1K×4位的DRAM芯片,若其内部结构排列成64×64形式,且存取周期为0.1µs.(1)若采用分散刷新和集中刷新相结合的方式,刷新信号周期应该取多少?(2)若采用集中刷新,则对存储器芯片刷新一遍需多少时间?死亡时间率是多少?解:(1)采用分散刷新和集中刷新相结合的方式,对排列成64×64形式的DRAM芯片,需在2ms内将64行各刷新一遍,故刷新信号的时间间隔为2ms/64=31.25µs,故取刷新周期31µs(2)采用集中刷新对排列成64×64形式的DRAM芯片,需在2ms内集中64个存取周期刷新64行。因为存取周期为0.1µs,故对存储器芯片刷新一遍需64×0.1µs=6.4µs,死亡时间率=(64/20000)×100%=0.32%。第6章•例1:设浮点数字长为32位,欲表示±6×104的十进数,在保证最大精度条件下,除阶符、数符各取1位外,阶码和尾数各取几位?按这样分配,该浮点数溢出的条件是什么?解:因为216=65536,故欲表示±6×104的十进数需要16位二进制数;而(16)10=(10000)2,故除阶符外,阶码至少取5位,为保证数的最大精度,则阶码取5+1=6位,而尾数取32-6=26位,其中尾符占1位。按照此分配,当阶码大于+31时,浮点数溢出,需中断处理。溢出判断设机器数为补码,尾数为规格化形式,并假设阶符取2位,阶码取7位,数符取2位,尾数取n位,则该补码在数轴上的表示为上溢下溢上溢对应负浮点数对应正浮点数00,1111111;11.000…00,1111111;00.111…11,0000000;11.0111…11,0000000;00.1000…2127×(–1)–2-128×(2-1+2-n)2-128×2-12127×(1–2-n)最小负数最大负数最小正数最大正数0阶码01,××···×阶码01,××···×阶码10,××···×按机器零处理6.4例2:什么是机器零?浮点数采用什么机器数形式时,可用全“0”表示机器零?•解:浮点数机器0条件:•⑴当一个浮点数的尾数为0时,不论阶码为何值,机器都把该浮点数当机器0处理;•⑵当一个浮点数的阶码≤它所能表示的最小数时,不论尾数阶码为何值,机器都把该浮点数当机器0处理。•当浮点数的阶码用移码表示,则最小的阶码(移码)全为0,而浮点数的尾数用补码表示,则当其为全0时即表示尾数的真值为0。•综合以上情况,此时机器0可用全0表示。当浮点数尾数为0时,不论其阶码为何值按机器零处理机器零当浮点数阶码等于或小于它所表示的最小数时,不论尾数为何值,按机器零处理如m=4n=10当阶码用移码,尾数用补码表示时,机器零为0,0000;0.000……1,0000;×.×××……×,××××;0.000……有利于机器中“判0”电路的实现当阶码和尾数都用补码表示时,机器零为6.2(阶码=16)例3.写出对应±0的各种机器数(机器字长8位)•小数•[+0]原=0.0000000[-0]原=1.0000000•[+0]补=0.0000000[-0]补=0.0000000•[+0]反=0.0000000[-0]反=1.1111111•整数•[+0]原=0,0000000[-0]原=1,0000000•[+0]补=0,0000000[-0]补=0,0000000•[+0]反=0,0000000[-0]反=1,1111111•[+0]移=1,0000000[-0]移=1,0000000例4:设机器字长为16位,写出下列各种情况下它能表示的数的范围(十进制数,定点数采用1位符号位)•⑴无符号数;•⑵原码表示的定点小数;•⑶补码表示的定点小数;•⑷原码表示的定点整数;•⑸补码表示的定点整数;•⑹假设浮点数阶码5位(含1位符号位)尾数11位(含1位符号位)分别写出其对应的正数和负数范围;•⑺浮点数格式同上,机器数用原码规格化形式,分别写出其对应的正数和负数范围;•⑻浮点数格式同上,机器数用补码规格化形式,分别写出其对应的正数和负数范围。解答:⑴0—655350000H---FFFFH⑵-32767/32768—+32767/32768⑶-1┉+32767/32768⑷-32767┉+32767FFFFH---7FFFH⑸-32768┉+327678000H---7FFFH⑹浮点数(负数)-215×(1-2-10)┉-2-15×2-10浮点数(正数)2-15×2-10┉215×(1-2-10)⑺正数(原码)215×2-1┉215×(1-2-10)1,1111;0.1000000000---0,1111;0.1111111111负数(原码)-215×(1-2-10)┉-2-15×2-10,1111;1.1111111111---1,1111;1.1000000000⑻规格化正数(补码)2-16×2-1┉215×(1-2-10)1,0000;0.1000000000---0,1111;0.1111111111规格化负数(补码)-215┉-2-16×(2-1+2-10)0,1111;1.0000000000---1,0000;1,0111111111举例最大正数=215×(1–2–10)2+1111×0.111111111110个1最小正数最大负数最小负数=2–15×2–1=–215×(1–2–10)=2–16=–2–15×2–1=–2–162-1111×0.10000000009个02-1111×(–0.1000000000)9个02+1111×(–0.1111111111)10个116位浮点数(设m=4,n=10)尾数规格化后的浮点数表示范围例5.浮点数格式为阶码3位(包含1位符号位)尾数5位(包含1位符号位).阶码和尾数均用补码表示.要求:(1)将3.25,-1.75表示成规格化的浮点数⑵求出该格式浮点数所表示的最大正数、最小正数、最大负数、最小负数。•解:(1)3.25=11.01B=0.1101B×22[E]补=010[S]补=0.1101规格化为01001101•-1.75=-1.11B=-0.1110B×21[E]补=001[S]补=1.0010•规格化为00110010(2)最大正数01101111=2011×0.1111=111.1=7.5最小正数1000000001=2100×0.0001=0.0000001=28最大负数10011111=2100×1.1111=-28最小负数01110000=2011×1.0000=-8例6:将下列数由小到大排序16,1010.11B,25.3Q,[X1]补=10001101,1CH,[X2]反=01001101,0110.1001BCD,[X3]原=10101011,[-X4]补=10111111,-[X5]=10100101•答案:由小到大排序•X3,0110.1001BCD,1010.11B,16,1CH,25.3Q,X4,X2,X5,X1例7:已知X=23,Y=-106,试用补码完成下列运算:(1)X+Y,X-Y(2)2[X]补,1/2[X]补,8[X]补(3)2[Y]补,1/2[Y]补,1/4[Y]补•解:(1)X=23=10111BY=-106=-1101010B[X]补=00010111[Y]补=10010110[-Y]补==01101010[X+Y]补=[X]补+[Y]补=00010111+10010110=10101101,[X+Y]原=11010011X+Y=-(1010011B)=-83[X-Y]补=[X]补+[-Y]补=00010111+01101010=10000001,溢出,即X-Y溢出(2)[X]补=000101112[X]补=001011104[X]补=010111008[X]补