第3章习题答案 计算机组成原理课后答案(清华大学出版社 袁春风主编)
计算机组成原理—习题解答(第三章)
http://corg.xjtu.edu.cn
Copyright ©2012 Computer Organization Group. All rights reserved.
第三章 3.3
(3) a、字编址的机器结构简单,操作简便。字编址主要应用于早 期的计算机中,当时的机器字长比较短,采用字编址并不感到不 方便。 b、字编址方式的主要缺点是数据较短时操作很不方便,尤其在 非数值应用领域,信息的基本寻位是字节,而字编址方式无法支 持字节操作。随着计算机规模的发展壮大,机器字长越来越长, 字编址的不灵活性越来越突出,因此当前的计算机基本上都不再 采用字编址方式而使用字节编址。 c、字节编址既能够支持字节操作,也能够支持字操作,同时兼有 字节寻址和字寻址双重功能,灵活性很好。字节编址的存储器空 间利用率高。 d、字节编址主要缺点是既有字节地址又有字地址,比较复杂;同 样的地址总线位数下,可寻址的最大空间比字寻址空间小。
题解: 1ms(1000us)内必须刷新64次,每次刷新时间为1/4us ,则1ms内16us用于刷新,比例为1.6%。 或者, 1ms中包含的存取周期数为:1ms/250ns=4000个
http://corg.xjtu.edu.cn
Copyright ©2012 Computer Organization Group. All rights reserved.
计算机组成与系统结构课后答案免费版全(清华大学出版社 袁春风主编)
计算机组成与系统结构课后答案免费版全(清华大学出版社袁春
风主编)
计算机组成与系统结构课后答案免费版全(清华大学出版社-袁春风主编)
第一章练习答案
5.若有两个基准测试程序p1和p2在机器m1和m2上运行,假定m1和m2的价格分别是5000元和8000元,下表给出了p1和p2在m1和m2上所花的时间和指令条数。程序p1p2m1指令条数200×106300×103执行时间(ms)100003指令条数150×106420×103m2执行时间(ms)50006请回答下列问题:(1)对于p1,哪台机器的速度快?快多少?对于p2呢?(2)在m1上执行p1和p2的速度分别是多少mips?在m2上的执行速度又各是多少?从执行速度
让我们看看,对于P2,哪台机器速度快?多快?(3)假设M1和M2的时钟频率分别为800 MHz和1.2 GHz,则P1在M1和M2上执行时的平均时钟周期
期数cpi各是多少?(4)如果某个用户需要大量使用程序p1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,
当用户需要购买大量机器时,他应该选择M1还是M2?为什么?(注意:在性价比方面)(5)如果另一个用户也需要购买大量机器,但用户同样使用P1和P2,那么主要的问题是响应时间
间,那么,应该选择m1还是m2?为什么?
参考答案:
(1)对于p1,m2比m1快一倍;对于p2,m1比m2快一倍。
(2)对于M1,P1的速度为200m/10=20mips;P2为300K/0.003=100mips。
对于m2,p1的速度为:150m/5=30mips;p2为420k/0.006=70mips。
计算机组成原理 [袁春风]chap3_1
南京大学计算机系 多媒体技术研究所 袁春风
8位全先行进位加法器
A7 A0 B7 B0 3ty 进位生成/传递部件 P7 P1 P0 G7 G1 G0
8位 CLA部件 C8 P7 C7 求和部件 S7 S1 3+2+3=8ty 进位C8的延迟
17
C0 P1 C1 P0 C0
2ty
3ty S0 3+2=5ty
和的总延迟
南京大学计算机系 多媒体技术研究所 袁春风
局部先行进位加法器
所有和数产生的延迟为
5+2+2+5=14ty
18
南京大学计算机系 多媒体技术研究所 袁春风
多级先行进位加法器
(3) 多级先行进位加法器
– 单级(局部)先行进位加法器的进位生成方式 “组内并行 组间串行” – 所以 单级先行进位加法器虽然比行波加法器延迟时间短 但高位组进位依赖低位组进位 故仍有较长的时间延迟 – 通过引入组进位生成/传递函数来实现“组内并行 组间也 并行”的进位生成方式 设n=4,则 C1=G0+P0C0 C2=G1+P1C1=G1+P1G0+P1P0C0 C3=G2+P2C2=G2+P2G1+P2P1G0+P2P1P0C0 G3*=G3+P3C3=G3+P3G2+P3P2G1+P3P2P1G0 P3*=P3P2P1P0 所以C4 =G3*+P3*C0 把实现上述逻辑的电路称为4位BCLA部件 所以
计算机组成原理第三章课后习题参考答案
第三章(P101)
1.(1)M 4832
*
220= 字节 (2)片84*28
*51232*1024==K K
(3)1位地址作芯片选择
2. (1)个内存条4264
*264*222426==
(2)328
*264*22242=
每个内存条内共有32个DRAM 芯片 (3)4*32 = 128个
主存共需要128个DRAM 芯片,CPU 通过由高位地址选择各内存条。
3. (1)首先计算所需芯片数目:
168
*232
*214
16=片 芯片容量为16K ,所以芯片内部寻址需14位;
四个芯片组成一组形成32个位线,共需4组,需2位地址进行组间寻址; 其中使用一片2:4译码器;
所以所以采用位并联与地址串联相结合的方法来组成整个存储器,其组成逻辑图如图所示,
(2)根据已知条件,CPU 在1us 内至少访存一次,而整个存储器的平均读/写周期为0.5us ,如果采用集中刷新,有64us 的死时间,肯定不行 如果采用分散刷新,则每1us 只能访存一次,也不行 所以采用异步式刷新方式。
假定16K*8位的DRAM 芯片用128*128矩阵存储元构成,刷新时只对128行进行异步方式刷新,则刷新间隔为2ms/128 = 15.5us ,可取刷新信号周期15us 。
刷新一遍所用时间=15us ×128=1.92ms
4. (1)
片328
*12832
*1024 K K ,共分8组,每组4片;
地址线共20位,其中组间寻址需3位,组内17位; (2)
(3)如果选择一个行地址进行刷新,刷新地址为A 0-A 8,因此这一行上的2048个存储元同时进行刷新,即在8ms 内进行512个周期(即512行)。采用异步刷新方式,刷新信号周期为:8ms/512 = 15.5us 。
计算机组成与系统结构课后答案全(清华大学出版社袁春风主编)
第1章习题答案
5.若有两个基准测试程序 P1 和 P2 在机器 M1 和 M2 上运行,假定 M1 和 M2的价格分别是5000 元和 8000元,下表给出了P1和P2在M1和 M2 上所花的时间和指令条数。
程序
M1M2
指令条数执行时间 (ms)指令条数执行时间 (ms)
P1×6
10000×
6
5000
200 10150 10
P2300×1033420×1036
请回答下列问题:
(1)对于 P1,哪台机器的速度快?快多少?对于P2 呢?
(2)在 M1 上执行 P1 和 P2 的速度分别是多少 MIPS ?在 M2 上的执行速度又各是多少?从执行速度来看,对于 P2,哪台机器的速度快?快多少?
(3)假定 M1 和 M2 的时钟频率各是 800MHz 和 1.2GHz ,则在 M1 和 M2 上执行 P1 时的平均时钟周期数 CPI 各是多少?
(4)如果某个用户需要大量使用程序P1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,
该用户需要大批购进机器时,应该选择M1 还是 M2 ?为什么?(提示:从性价比上考虑)(5)如果另一个用户也需要购进大批机器,但该用户使用P1 和 P2 一样多,主要关心的也是响应时
间,那么,应该选择M1 还是 M2 ?为什么?
参考答案:
(1)对于 P1,M2 比 M1 快一倍;对于 P2, M1 比 M2 快一倍。
(2)对于 M1 , P1 的速度为: 200M/10=20MIPS ; P2 为 300k/0.003=100MIPS 。
对于 M2 , P1 的速度为: 150M/5=30MIPS ; P2 为 420k/0.006=70MIPS 。
计算机组成与系统结构课后答案全清华大学出版社袁春风主编
第1章习题答案5.若有两个基准测试程序P1和P2在机器M1和M2上运行,假定M1和M2的价格分别是5000元和8000元,下表给出了P1和P2在M1和M2上所花的时间和指令条数。
请回答下列问题:
(1)对于P1,哪台机器的速度快?快多少?对于P2呢?
(2)在M1上执行P1和P2的速度分别是多少MIPS?在M2上的执行速度又各是多少?从执行速度来看,对于P2,哪台机器的速度快?快多少?
(3)假定M1和M2的时钟频率各是800MHz和1.2GHz,则在M1和M2上执行P1时的平均时钟周期数CPI各是多少?
(4)如果某个用户需要大量使用程序P1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,该用户需要大批购进机器时,应该选择M1还是M2?为什么?
(提示:从性价比上考虑)
(5)如果另一个用户也需要购进大批机器,但该用户使用P1和P2一样多,主要关心的也是响应时间,那么,应该选择M1还是M2?为什么?
参考答案:
(1)对于P1,M2比M1快一倍;对于P2,M1比M2快一倍。
(2)对于M1,P1的速度为:200M/10=20MIPS;P2为300k/0.003=100MIPS。
对于M2,P1的速度为:150M/5=30MIPS;P2为420k/0.006=70MIPS。
从执行速度来看,对于P2,因为100/70=1.43倍,所以M1比M2快0.43倍。(3)在M1上执行P1时的平均时钟周期数CPI为:10×800M/(200×106)=40。
在M2上执行P1时的平均时钟周期数CPI为:5×1.2G/(150×106)=40。
(完整版)计算机组成原理第3章习题参考答案
第3章习题参考答案
1、设有一个具有20位地址和32位字长的存储器,问(1) 该存储器能存储多少字节的信息?
(2) 如果存储器由512K ×8位SRAM 芯片组成,需要多少片?(3) 需要多少位地址作芯片选择?解:
(1) 该存储器能存储:字节4M 8
32
220=⨯(2) 需要片
88
232
28512322192020=⨯⨯=⨯⨯K (3) 用512K ⨯8位的芯片构成字长为32位的存储器,则需要每4片为一组进行字长的位数扩展,然后再由2组进行存储器容量的扩展。所以只需一位最高位地址进行芯片选择。
2、已知某64位机主存采用半导体存储器,其地址码为26位,若使用4M ×8位的DRAM 芯片组成该机所允许的最大主存空间,并选用内存条结构形式,问;
(1) 若每个内存条为16M ×64位,共需几个内存条?(2) 每个内存条内共有多少DRAM 芯片?
(3) 主存共需多少DRAM 芯片? CPU 如何选择各内存条?解:
(1) 共需内存条
条464
1664
226=⨯⨯M (2) 每个内存条内共有
个芯片
328
464
16=⨯⨯M M (3) 主存共需多少个RAM 芯片, 共有4个内存条,
1288
464
648464226=⨯⨯=⨯⨯M M M 故CPU 选择内存条用最高两位地址A 24和A 25通过2:4译码器实现;其余的24根地址线用于内存条内部单元的选择。
3、用16K ×8位的DRAM 芯片构成64K ×32位存储器,要求:
(1) 画出该存储器的组成逻辑框图。
(2) 设存储器读/写周期为0.5μS ,CPU 在1μS 内至少要访问一次。试问采用哪种刷新方式比较合理?两次刷新的最大时间间隔是多少?对全部存储单元刷新一遍所需的实际刷新时间是多少?解:(1) 用16K ×8位的DRAM 芯片构成64K ×32位存储器,需要用个芯片,其中每4片为一组构成16K ×32位——进行字长位
《计算机组成原理》第三章课后题参考答案
第三章课后习题参考答案
1.有一个具有20位地址和32位字长的存储器,问:
(1)该存储器能存储多少个字节的信息?
(2)如果存储器由512K×8位SRAM芯片组成,需要多少芯片?
(3)需要多少位地址作芯片选择?
解:(1)∵ 220= 1M,∴该存储器能存储的信息为:1M×32/8=4MB (2)(1024K/512K)×(32/8)= 8(片)
(3)需要1位地址作为芯片选择。
3.用16K×8位的DRAM芯片组成64K×32位存储器,要求:
(1) 画出该存储器的组成逻辑框图。
(2) 设DRAM芯片存储体结构为128行,每行为128×8个存储元。如单元刷新间隔不超过2ms,存储器读/写周期为0.5μS, CPU在1μS内至少要访问一次。试问采用哪种刷新方式比较合理?两次刷新的最大时间间隔是多少?对全部存储单元刷新一遍所需的实际刷新时间是多少?
解:(1)组成64K×32位存储器需存储芯片数为
N=(64K/16K)×(32位/8位)=16(片)
每4片组成16K×32位的存储区,有A13-A0作为片内地址,用A15 A14经2:4译码器产生片选信号,逻辑框图如下所示:
(2)根据已知条件,CPU在1us内至少访存一次,而整个存储器的平均读/写周期为0.5us,如果采用集中刷新,有64us的死时间,肯定不行;
所以采用分散式刷新方式:
设16K×8位存储芯片的阵列结构为128行×128列,按行刷新,刷新周期T=2ms,则分散式刷新的间隔时间为:
t=2ms/128=15.6(s) 取存储周期的整数倍15.5s(0.5的整数倍)
计算机组成与系统结构课后答案免费版全(清华大学出版社-袁春风主编)之欧阳学创编
第 1 章习题答案
5.若有两个基准测试程序P1和P2在机器M1和M2上运行,假定M1和M2的价格分别是5000元和8000元,下表给出了P1和P2在M1和M2上所花的时间和指令
请回答下列问题:
(1)对于P1,哪台机器的速度快?快多少?对于P2呢?
(2)在M1上执行P1和P2的速度分别是多少MIPS?在M2上的执行速度又各是多少?从执行速度来看,
对于P2,哪台机器的速度快?快多少?
(3)假定M1和M2的时钟频率各是800MHz和
1.2GHz,则在M1和M2上执行P1时的平均时钟周
期数CPI各是多少?
(4)如果某个用户需要大量使用程序P1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,该用
户需要大批购进机器时,应该选择M1还是M2?
为什么?(提示:从性价比上考虑)
(5)如果另一个用户也需要购进大批机器,但该用户使用P1和P2一样多,主要关心的也是响应时间,那
么,应该选择M1还是M2?为什么?
参考答案:
(1)对于P1,M2比M1快一倍;对于P2,M1比M2快一倍。
(2)对于M1,P1的速度为:200M/10=20MIPS;P2为300k/0.003=100MIPS。
对于M2,P1的速度为:150M/5=30MIPS;P2为420k/0.006=70MIPS。
从执行速度来看,对于P2,因为100/70=1.43倍,所以M1比M2快0.43倍。
(3)在M1上执行P1时的平均时钟周期数CPI为:10×800M/(200×106)=40。
在M2上执行P1时的平均时钟周期数CPI为:
5×1.2G/(150×106)=40。
计算机组成与系统结构课后答案免费版全(清华大学出版社_袁春风主编)
计算机组成与系统结构课后答案免费版全(清华大学出版社_袁
春风主编)
第 1 章习题答案
5.若有两个基准测试程序P1和P2在机器M1和M2上运行,假定M1和M2的价格分别是5000元和8000
请回答下列问题:
(1)对于P1,哪台机器的速度快?快多少?对于P2呢?
(2)在M1上执行P1和P2的速度分别是多少MIPS?在M2上的执行速度又各是多少?从执行速度来看,对于P2,哪台机器的速度快?快多少?
(3)假定M1和M2的时钟频率各是800MHz和1.2GHz,则在M1和M2上执行P1时的平均时钟周期数CPI各是多少?
(4)如果某个用户需要大量使用程序P1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,该用户需要大批购进机器时,应该选择M1还是M2?为什么?(提示:从性价比上考虑)(5)如果另一个用户也需要购进大批机器,但该用户使用P1和P2一样多,主要关心的也是响应时间,那么,应该选择M1还是M2?为什么?
参考答案:
(1)对于P1,M2比M1快一倍;对于P2,M1比M2快一倍。
(2)对于M1,P1的速度为:200M/10=20MIPS;P2为300k/0.003=100MIPS。
对于M2,P1的速度为:150M/5=30MIPS;P2为420k/0.006=70MIPS。
从执行速度来看,对于P2,因为100/70=1.43倍,所以M1比M2快0.43倍。
(3)在M1上执行P1时的平均时钟周期数CPI为:
10×800M/(200×106)=40。
在M2上执行P1时的平均时钟周期数CPI为:5×1.2G/(150×106)=40。
计算机组成与系统结构课后答案全(清华大学出版社 袁春风主编)
第 1 章习题答案
5.若有两个基准测试程序P1和P2在机器M1和M2上运行,假定M1和M2的价格分别是5000元和8000元,下表给出了P1和P2在M1和M2上所花的时间和指令条数。
请回答下列问题:
(1)对于P1,哪台机器的速度快?快多少?对于P2呢?
(2)在M1上执行P1和P2的速度分别是多少MIPS?在M2上的执行速度又各是多少?从执行速度来看,对于P2,哪台机器的速度快?快多少?
(3)假定M1和M2的时钟频率各是800MHz和1.2GHz,则在M1和M2上执行P1时的平均时钟周期数CPI各是多少?
(4)如果某个用户需要大量使用程序P1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,该用户需要大批购进机器时,应该选择M1还是M2?为什么?(提示:从性价比上考虑)(5)如果另一个用户也需要购进大批机器,但该用户使用P1和P2一样多,主要关心的也是响应时间,那么,应该选择M1还是M2?为什么?
参考答案:
(1)对于P1,M2比M1快一倍;对于P2,M1比M2快一倍。
(2)对于M1,P1的速度为:200M/10=20MIPS;P2为300k/0.003=100MIPS。
对于M2,P1的速度为:150M/5=30MIPS;P2为420k/0.006=70MIPS。
从执行速度来看,对于P2,因为100/70=1.43倍,所以M1比M2快0.43倍。
(3)在M1上执行P1时的平均时钟周期数CPI为:10×800M/(200×106)=40。
在M2上执行P1时的平均时钟周期数CPI为:5×1.2G/(150×106)=40。
计算机组成原理 [袁春风]chap3homework
最后一步得到余数
因为被除数和除数符号相反 所以商应为负数 故应对商求 补得10100 该方法的余数无需纠正 所以 商的补码为1.0100 其真值为-0.1100 余数的补码为0.0000 0100 其真值为0.0100X2-4
7
南京大学计算机系 多媒体技术研究所 袁春风
作业解答 (2)习题10
参考答案:
1
南京大学计算机系 多媒体技术研究所 袁春风
作业解答
思考题 习题2(用寄存器 181和182实现16位补码加减法器) 1.利用SN74181芯片中的加法功能(S0S1S2S3=1001,Cn=1); 2.用4个SN74181芯片和1个SN74182芯片组成16位加减法器 3.减法功能可用加法器实现 减数用各位取反 末位加1 习题6(浮点补码加减法中 结果的尾数符号位为01或10时 明结果溢出 这种说法是否正确 ) 不正确 只有当阶码溢出时 结果才溢出 说
10
南京大学计算机系 多媒体技术研究所 袁春风
作业解答
(5) 已知 x=2-011x 0.101100 y=2-101x(-0.011110) 求 [x+y]补 [x-y]补 [x+y]阶移尾补 [x-y]阶移尾补
参考答案: 阶补尾补 假定尾数用2+6位变形补码表示,阶码用4位补码表示 [x]浮=1101,00.101100 [y]浮=1011,11.100010 对阶: [Ex-Ey]补=1101+0101=0010 故Ex-Ey=+2 对y进行对阶 [y]浮=1101,11.111000 截去法 尾数相加 00.101100+11.111000=00.100100 尾数相减 00.101100+00.001000=00.110100 所以 [x+y]浮=1101,00.100100 [x-y]浮=1101,00.110100 不需规格化 阶移尾补 略
计算机组成与系统结构课后答案免费版全(清华大学出版社-袁春风主编)
第 1 章习题答案
5.若有两个基准测试程序P1和P2在机器M1和M2上运行,假定M1和M2的价格分别是5000元和8000元,下表给出了P1和P2在M1和M2上所花的时间和指令条数。
请回答下列问题:
(1)对于P1,哪台机器的速度快?快多少?对于P2呢?
(2)在M1上执行P1和P2的速度分别是多少MIPS?
在M2上的执行速度又各是多少?从执行速度来
看,对于P2,哪台机器的速度快?快多少?
(3)假定M1和M2的时钟频率各是800MHz和
1.2GHz,则在M1和M2上执行P1时的平均时钟
周期数CPI各是多少?
(4)如果某个用户需要大量使用程序P1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,
该用户需要大批购进机器时,应该选择M1还是
M2?为什么?(提示:从性价比上考虑)(5)如果另一个用户也需要购进大批机器,但该用户使用P1和P2一样多,主要关心的也是响应时
间,那么,应该选择M1还是M2?为什么?
参考答案:
(1)对于P1,M2比M1快一倍;对于P2,M1比M2快一倍。
(2)对于M1,P1的速度为:200M/10=20MIPS;P2为300k/0.003=100MIPS。
对于M2,P1的速度为:150M/5=30MIPS;P2为420k/0.006=70MIPS。
从执行速度来看,对于P2,因为100/70=1.43倍,所以M1比M2快0.43倍。
(3)在M1上执行P1时的平均时钟周期数CPI为:10×800M/(200×106)=40。
在M2上执行P1时的平均时钟周期数CPI为:5×1.2G/(150×106)=40。
计算机组成与系统结构课后答案全清华大学出版社袁春风主编之欧阳育创编
第1 章习题答案
5.若有两个基准测试法度P1和P2在机器M1和M2上运行,假定M1和M2的价格辨别是5000元和8000元,下表给出了P1和P2在M1和M2上所花的时间和指令条数。
请回答下列问题:
(1)对P1,哪台机器的速度快?快几多?对P2呢?
(2)在M1上执行P1和P2的速度辨别是几多MIPS?在M2上的执行速度又各是几多?从执行速度来看,对P2,哪
台机器的速度快?快几多?
(3)假定M1和M2的时钟频率各是800MHz和1.2GHz,则在M1和M2上执行P1时的平均时钟周期数CPI各是几多?
(4)如果某个用户需要年夜量使用法度P1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,该用户需要年
夜批购进机器时,应该选择M1还是M2?为什么?(提
示:从性价比上考虑)
(5)如果另一个用户也需要购进年夜批机器,但该用户使用P1和P2一样多,主要关心的也是响应时间,那么,应该选
择M1还是M2?为什么?
参考谜底:
(1)对P1,M2比M1快一倍;对P2,M1比M2快一倍。(2)对M1,P1的速度为:200M/10=20MIPS;P2为300k/0.003=100MIPS。
对M2,P1的速度为:150M/5=30MIPS;P2为
420k/0.006=70MIPS。
从执行速度来看,对P2,因为100/70=1.43倍,所以
M1比M2快0.43倍。
(3)在M1上执行P1时的平均时钟周期数CPI为:
10×800M/(200×106)=40。
在M2上执行P1时的平均时钟周期数CPI为:
5×1.2G/(150×106)=40。
《计算机组成原理》课后习题答案
第1章计算机组成原理考试大纲
第一章
计算机体系结构和计算机组成
冯。诺伊曼体系的特点
Amdahl定律
第二章
数制和数制转换
各种码制的表示和转换
浮点数的表示
补码加减法
布思算法
浮点数的加减法
海明码的计算
练习:5,6,7,8,10
1、已知X=19,Y=35,用布思算法计算X×Y和X×(-Y)。
2、使用IEEE 754标准格式表示下列浮点数:-5,-1.5,1/16,-6,384,-1/32。
3、已知X=-0.1000101×2-111,Y=0.0001010×2-100。试计算X+Y,X-Y,X×Y和X/Y。
4、某浮点数字长12位,其中阶符1位,阶码数值3位,尾符1位,尾数数值7位,阶码和尾数均
用补码表示。它所能表示的最大正数是多少?最小规格化正数是多少?绝对值最大的负数是多少?
5、求有效信息位为01101110的海明码校验码。
第三章
练习:5
解释下列概念:PROM,EPROM,E2PROM,Flash memory,FPGA,SRAM和DRAM。
第四章
总线的分类
总线操作周期的四个传输阶段
总线仲裁的概念及其分类
异步通信方式的种类
总线的最大传输率
第五章
存储器的分类
存储容量的扩展
RAID的概念、特点以及分类
Cache的地址映射
Cache的写策略
Cache的性能分析
3C
练习:4,5,7
1.一个容量为16K×32位的存储器,其地址线和数据线的总和是多少?用下列存储芯片时,各需要多少片?
1K×4位,2K×8位,4K×4位,16K×l位,4K×8位,8K×8位
2.现有1024×l的存储芯片,若用它组成容量为16K×8的存储器。
计算机组成与系统结构课后答案全(清华大学出版社袁春风主编).docx
第1章习题答案
5 .若有两个基准测试程序P1和P2在机器M1和M2上运行,假定M1和M2的价格分别是5000元和8000
请回答下列问题:
(1)对于P1,哪台机器的速度快?快多少?对于P2呢?
(2)在M1上执行P1和P2的速度分别是多少MlPS ?在M2上的执行速度又各是多少?从执行速度来看,对于P2,哪台机器的速度快?快多少?
(3)假定M1和M2的时钟频率各是800MHZ和1.2GHZ,则在M1和M2上执行P1时的平均时钟周期数CPI各是多少?
(4)如果某个用户需要大量使用程序P1 ,并且该用户主要关心系统的响应时间而不是吞吐率,那么, 该用户需要大批购进机器时,应该选择M1还是M2 ?为什么?(提示:从性价比上考虑)(5)如果另一个用户也需要购进大批机器,但该用户使用P1和P2一样多,主要关心的也是响应时间,那么,应该选择M1还是M2 ?为什么?
参考答案:
(1)对于P1,M2比M1快一倍;对于P2,M1比M2快一倍。
(2)对于M1,P1 的速度为:200M∕10=20MIPS ;P2 为300k∕0.003=100MIPS。对于M2,P1 的速度为:150M∕5=30MIPS ;P2 为420k∕0.006=70MIPS。
从执行速度来看,对于P2,因为100/70=1.43倍,所以M1比M2快0.43倍。
(3)在M1上执行P1时的平均时钟周期数CPI为:10疋00M∕(200×106)=40。在M2上执行P1时的平均时钟周期数CPI为:5X1.2G/(150 ×06)=40°
(4)考虑运行P1时M1和M2的性价比,因为该用户主要关心系统的响应时间,所以性价比中的性能应考虑执行时间,其性能为执行时间的倒数。故性价比R为:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
wk.baidu.com
10100 10101 +0 0 1 1 0 11010 10101 10101 01011 +00110 11011 01011 10110 10111 +00110 11100 10111 11001 01111 +00110 11111 01111 11110 11111 +00110 00100 11110 +00000 + 1 00100 11111 所以,[X/Y] 补=11111,余数为 00100。
6.设 A4A1 和 B4B1 分别是四位加法器的两组输入,C0 为低位来的进位。当加法器分别采用串行进位和先 行进位时,写出四个进位 C4 C1 的逻辑表达式。 参考答案: 串行进位: C1 = X1C0+Y1C0 + X1 Y1 C2 = X2C1+Y2C1 + X2 Y2 C3 = X3C2+Y3C2 + X3 Y3 C4 = X4C3+Y4C3 + X4 Y4 并行进位: C1 = X1Y1 + (X1+Y1)C0 C2 = X2Y2 + (X2 +Y2) X1Y1 + (X2+Y2) (X1+Y1)C0 C3 = X3Y3 + (X3 + Y3) X2Y2 + (X3 + Y3) (X2 + Y2) X1Y1 + (X3 + Y3) (X2 + Y2)(X1 + Y1)C0 C4=X4Y4+(X4+Y4)X3Y3+(X4+Y4)(X3+Y3)X2Y2+(X4+Y4)(X3+Y3)(X2+Y2)X1Y1+(X4+Y4)(X3+Y3) (X2+Y2)(X1+Y1)C0 7.用 SN74181 和 SN74182 器件设计一个 16 位先行进位补码加/减运算器,画出运算器的逻辑框图,并给出 零标志、进位标志、溢出标志、符号标志的生成电路。 参考答案(图略) :
第 3 章
习 题 答 案
2(4)高级语言中的运算和机器语言(即指令)中的运算是什么关系?假定某一个高级语言源程序 P 中有 乘、除运算,但机器 M 中不提供乘、除运算指令,则程序 P 能否在机器 M 上运行?为什么? 参考答案: (略) 3.考虑以下 C 语言程序代码: int func1(unsigned word) { return (int) (( word <<24) >> 24); } int func2(unsigned word) { return ( (int) word <<24 ) >> 24; } 假设在一个 32 位机器上执行这些函数,该机器使用二进制补码表示带符号整数。无符号数采用逻辑移 位,带符号整数采用算术移位。请填写下表,并说明函数 func1 和 func2 的功能。
• 62 •
逻辑框图参见教材中的图 3.15 和图 3.16,将两个图结合起来即可,也即只要将图 3.15 中的 B 输入端的每 一位 Bi 取反,得到 Bi,和原码 Bi 一起送到一个二路选择器,由进位 C0 作为选择控制信号。当 C0 为 1 时 做减法,此时,选择将 Bi 作为 SN74181 的 B 输入端;否则,当 C0 为 1 时,做加法。 零标志 ZF、进位标志 CF、溢出标志 OF、符号标志 SF 的逻辑电路根据以下逻辑表达式画出即可。 ZF=F15+F14+F13+F12+F11+F10+F9+F8+F7+F6+F5+F4+F3+F2+F1+F0 CF=C16 OF= C0(A15B15F15 + A15B15F15)+ C0(A15B15F15 + A15B15F15) SF= F15 8. 用 SN74181 和 SN74182 器件设计一个 32 位的 ALU,要求采用两级先行进位结构。 (1) 写出所需的 SN74181 和 SN74182 芯片数。 (2) 画出 32 位 ALU 的逻辑结构图。 参考答案(图略) : 将如图 3.15 所示的两个 16 位 ALU 级联起来即可, 级联时, 低 16 位 ALU 的高位进位 C16 作为高 16 位 ALU 的低位进位 C0,因此,只要用 8 片 SN74181 和 2 片 SN74182。 9.已知 x = 10,y = – 6,采用 6 位机器数表示。请按如下要求计算,并把结果还原成真值。 (1) 求[x+y]补,[x–y]补。 (2) 用原码一位乘法计算[x×y]原。 (3) 用 MBA(基 4 布斯)乘法计算[x×y]补。 (4) 用不恢复余数法计算[x/y]原的商和余数。 (5) 用不恢复余数法计算[x/y]补的商和余数。 参考答案: [10]补 = 001010 [–6]补 = 111010 [6]补 = 000110 [10]原 = 001010 [–6]原 = 100110 (1) [10+(– 6)]补= [10]补+[– 6]补= 001010+111010 = 000100 (+4) [10–(–6)]补= [10]补+[– (–6)]补 = 001010+000110 = 010000 (+16) (2) 先采用无符号数乘法计算 001010× 000110 的乘积,原码一位乘法过程(前面两个 0 省略)如下: C 0 0 0 0 0 0 0 0 0 P 0000 +0000 0000 0000 +1010 1010 0101 +1010 1111 0111 +0000 0111 0011 Y 0110 说明 P0 = 0 y4 = 0,+0 C, P 和 Y 同时右移一位 得 P1 y3 = 1,+X C, P 和 Y 同时右移一位 得 P2 y2 = 1,+X C, P 和 Y 同时右移一位 得 P3 y1 = 0,+0 C, P 和 Y 同时右移一位 得 P4
商的数值部分为:00001。所以,[X/Y]原=00001 (最高位为符号位),余数为 0100。 (5) 将 10 和–6 分别表示成补码形式为:[10] 余数寄存器 R 余数/商寄存器 Q 00000 01010 +11010 11010 01010
补 补
先对被除数进行符号扩展,[10] 补=00000 01010,[6] 补 = 0 0110 说 明 开始 R0 = [X] R1=[X] +[Y] R1 与[Y]同号,则 q5 =1
W 机器数 0000 007FH 0000 0080H 0000 00FFH 0000 0100H 值 127 128 255 256
func1(w) 机器数 0000 007FH 0000 0080H 0000 00FFH 0000 0000H 值 +127 +128 +255 0
func2(w) 机器数 0000 007FH FFFF FF80H FFFF FFFFH 0000 0000H 值 +127 –128 –1 0
0011
0001 0000 1000
1100
若两个 6 位数相乘的话,则还要右移两次,得 000000 111100 符号位为:0 1 = 1,因此,[X×Y]原 = 1000 0011 1100
• 63 •
即 X × Y = –11 1100B = – 60 (3) [–10]补 = 110110,布斯乘法过程如下: P 000000 000000 +110110 110110 111011 +001010 000101 000010 +110110 111000 111100 +000000 111100 111110 +000000 111110 111111 Y 111010 y-1 0 说明 设 y-1 = 0,[P0]补 = 0 y0 y-1 = 00,P、Y 直接右移一位 得[P1]补 y1 y0 =10,+[–X]补 P、Y 同时右移一位 得[P2]补 y2 y1 =01,+[X]补 P、Y 同时右移一位 得[P3]补 y3 y2 = 10,+[–X]补 P、Y 同时右移一位 得[P4]补 y4 y3 = 11,+0 P、Y 同时右移一位 得[P5]补 y5 y4 = 11,+0 P、Y 同时右移一位 得[P6]补
函数 func1 的功能是把无符号数高 24 位清零 (左移 24 位再逻辑右移 24 位) , 结果一定是正的有符号数; 而函数 func2 的功能是把无符号数的高 24 位都变成和第 25 位一样,因为左移 24 位后进行算术右移,高 24 位补符号位(即第 25 位) 。
4.填写下表,注意对比无符号数和带符号整数的乘法结果,以及截断操作前、后的结果。
5.以下是两段 C 语言代码,函数 arith( )是直接用 C 语言写的,而 optarith( )是对 arith( )函数以某个确定的 M 和 N 编译生成的机器代码反编译生成的。 根据 optarith( ), 可以推断函数 arith( ) 中 M 和 N 的值各是 多少?
• 61 •
#define M #define N int arith (int x, int y) { int result = 0 ; result = x*M + y/N; return result; } int optarith ( int x, int y) { int t = x; x << = 4; x - = t; if ( y < 0 ) y += 3; y>>2; return x+y; 参考答案: 可以看出 x*M 和“int t = x; x << = 4; x-=t;”三句对应,这些语句实现了 x 乘 15 的功能(左移 4 位 相当于乘以 16,然后再减 1) ,因此,M 等于 15; y/N 与“if ( y < 0 ) y += 3; y>>2;”两句对应,功能主要由第二句“y 右移 2 位”实现,它实现了 y 除 以 4 的功能,因此 N 是 4。而第一句“if ( y < 0 ) y += 3;”主要用于对 y=–1 时进行调整,若不调整,则 –1>>2=–1 而–1/4=0,两者不等;调整后 –1+3=2,2>>2=0,两者相等。 思考:能否把 if ( y < 0 ) y += 3; 改成 if ( y < 0 ) y += 2; ? 不能!因为 y = - 4 时不正确。
011101 0
001110 1
100111 0 100111 0 010011 1 010011 1 001001 1 001001 1 000100 1
因此,[X × Y]补=1111 1100 0100,即 X × Y = –11 1100B= – 60 (4) 因为除法计算是 2n 位数除 n 位数,所以[6]原=0110,[10]原=0000 1010,[–6]补=1010, 商的符号位:0 1 = 1,运算过程(前面两个 0 省略)如下: 余数寄存器 R 余数/商寄存器 Q 0000 +1010 1010 0101 +0110 1011 0110 +0110 1100 1001 +0110 1111 1110 +0110 0100 1010 10100 0100 01000 1000 10000 0000 00000 0000 00001 说 明 开始 R0 = X R1 = X–Y R1< 0,则 q 4 = 0,没有溢出 2R1(R 和 Q 同时左移,空出一位商) R2 = 2R1+Y R2 < 0,则 q 3 = 0 2R2 (R 和 Q 同时左移,空出一位商) R3 = 2R2 +Y R3 < 0,则 q 2 = 0 2R3 (R 和 Q 同时左移,空出一位商) R3 = 2R2 +Y R4 < 0,则 q1 = 0 2R4 (R 和 Q 同时左移,空出一位商) R5 = 2R4 +Y R5 > 0,则 q 0 = 1 = 0 1010 , [–6] = 1 1010,计算过程如下:
模式 机器数 无符号数 二进制补码 无符号数 二进制补码 无符号数 二进制补码 110 110 001 001 111 111 x 值 6 –2 1 +1 7 –1 机器数 010 010 111 111 111 111 y 值 2 +2 7 –1 7 –1 x×y(截断前) 机器数 001100 111100 000111 111111 110001 000001 值 12 –4 7 –1 49 +1 x×y(截断后) 机器数 100 100 111 111 001 001 值 4 –4 7 –1 1 +1