18. 什么是“程序访问的局部性”?存储系统中哪一级采用了程序访问的局部性原理? 解:程序运行的局部性原理指:在一小段时间内,最近被访问过的程序和数据很可能再次被访问;在空间上,这些被访问的程序和数据往往集中在一小片存储区;在访问顺序上,指令顺序执行比转移执行的可能性大 (大约 5:1 )。存储系统中Cache—主存层次采用了程序访问的局部性原理。
25. Cache做在CPU芯片内有什么好处?将指令Cache和数据Cache分开又有什么好处? 答:Cache做在CPU芯片内主要有下面几个好处:
1)可提高外部总线的利用率。因为Cache在CPU芯片内,CPU访问Cache时不必占用外部总线。
2)Cache不占用外部总线就意味着外部总线可更多地支持I/O设备与主存的信息传输,增强了系统的整体效率。
3)可提高存取速度。因为Cache与CPU之间的数据通路大大缩短,故存取速度得以提高。 将指令Cache和数据Cache分开有如下好处:
1)可支持超前控制和流水线控制,有利于这类控制方式下指令预取操作的完成。 2)指令Cache可用ROM实现,以提高指令存取的可靠性。
3)数据Cache对不同数据类型的支持更为灵活,既可支持整数(例32位),也可支持浮点数据(如64位)。 补充:
Cache结构改进的第三个措施是分级实现,如二级缓存结构,即在片内Cache(L1)和主存之间再设一个片外Cache(L2),片外缓存既可以弥补片内缓存容量不够大的缺点,又可在主存与片内缓存间起到平滑速度差的作用,加速片内缓存的调入调出速度。
30. 一个组相连映射的CACHE由64块组成,每组内包含4块。主存包含4096块,每块由128字组成,访存地址为字地址。试问主存和高速存储器的地址各为几位?画出主存地址格式。
13
解:cache组数:64/4=16 ,Cache容量为:64*128=2字,cache地址13位
主存共分4096/16=256区,每区16块
19
主存容量为:4096*128=2字,主存地址19位,地址格式如下: 主存字块标记(8位)
组地址(4位) 字块内地址(7位)
第 六 章
12. 设浮点数格式为:阶码5位(含1位阶符),尾数11位(含1位数符)。写出51/128、-27/1024所对应的机器数。要求如下: (1)阶码和尾数均为原码。 (2)阶码和尾数均为补码。
(3)阶码为移码,尾数为补码。 解:据题意画出该浮点数的格式:
阶符1位 阶码4位 数符1位 尾数10位 -1 将十进制数转换为二进制:x1= 51/128= 0.0110011B= 2 * 0.110 011B -5
x2= -27/1024= -0.0000011011B = 2*(-0.11011B)
则以上各数的浮点规格化数为:
(1)[x1]浮=1,0001;0.110 011 000 0 [x2]浮=1,0101;1.110 110 000 0 (2)[x1]浮=1,1111;0.110 011 000 0 [x2]浮=1,1011;1.001 010 000 0 (3)[x1]浮=0,1111;0.110 011 000 0 [x2]浮=0,1011;1.001 010 000 0
16.设机器数字长为16位,写出下列各种情况下它能表示的数的范围。设机器数采用一位符号位,答案均用十进制表示。 (1)无符号数;
(2)原码表示的定点小数。 (3)补码表示的定点小数。 (4)补码表示的定点整数。 (5)原码表示的定点整数。
(6)浮点数的格式为:阶码6位(含1位阶符),尾数10位(含1位数符)。分别写出其正数和负数的表示范围。 (7)浮点数格式同(6),机器数采用补码规格化形式,分别写出其对应的正数和负数的真值范围。
16
解:(1)无符号整数:0 —— 2 - 1,即:0—— 65535;
-16
无符号小数:0 —— 1 - 2 ,即:0 —— 0.99998;
-15-15
(2)原码定点小数:-1 + 2——1 - 2 ,即:-0.99997 —— 0.99997
-15
(3)补码定点小数:- 1——1 - 2 ,即:-1——0.99997
1515
(4)补码定点整数:-2——2 - 1 ,即:-32768——32767
1515
(5)原码定点整数:-2 + 1——2 - 1,即:-32767——32767
(6)据题意画出该浮点数格式,当阶码和尾数均采用原码,非规格化数表示时:
-9-31
最大负数= 1,11 111;1.000 000 001 ,即 -2?2
-931
最小负数= 0,11 111;1.111 111 111,即 -(1-2)?2
-931 -9-31
则负数表示范围为:-(1-2)?2—— -2?2
-931
最大正数= 0,11 111;0.111 111 111,即 (1-2)?2
-9-31
最小正数= 1,11 111;0.000 000 001,即 2?2
-9-31 -931
则正数表示范围为:2?2——(1-2)?2
(7)当机器数采用补码规格化形式时,若不考虑隐藏位,则
-1-32
最大负数=1,00 000;1.011 111 111,即 -2?2
31
最小负数=0,11 111;1.000 000 000,即 -1?2
31 -1-32
则负数表示范围为:-1?2—— -2?2
-931
最大正数=0,11 111;0.111 111 111,即 (1-2)?2
-1-32
最小正数=1,00 000;0.100 000 000,即 2?2
-1-32 -931
则正数表示范围为:2?2——(1-2)?2
17. 设机器数字长为8位(包括一位符号位),对下列各机器数进行算术左移一位、两位,算术右移一位、两位,讨论结果是否正确。
[x1]原=0.001 1010;[y1]补=0.101 0100;[z1]反=1.010 1111; [x2]原=1.110 1000;[y2]补=1.110 1000;[z2]反=1.110 1000; [x3]原=1.001 1001;[y3]补=1.001 1001;[z3]反=1.001 1001。 解:算术左移一位:
[x1]原=0.011 0100;正确
[x2]原=1.101 0000;溢出(丢1)出错 [x3]原=1.011 0010;正确
[y1]补=0.010 1000;溢出(丢1)出错 [y2]补=1.101 0000;正确
[y3]补=1.011 0010;溢出(丢0)出错 [z1]反=1.101 1111;溢出(丢0)出错 [z2]反=1.101 0001;正确
[z3]反=1.011 0011;溢出(丢0)出错 算术左移两位:
[x1]原=0.110 1000;正确
[x2]原=1.010 0000;溢出(丢11)出错 [x3]原=1.110 0100;正确
[y1]补=0.101 0000;溢出(丢10)出错 [y2]补=1.010 0000;正确
[y3]补=1.110 0100;溢出(丢00)出错 [z1]反=1.011 1111;溢出(丢01)出错 [z2]反=1.010 0011;正确
[z3]反=1.110 0111;溢出(丢00)出错 算术右移一位:
[x1]原=0.000 1101;正确 [x2]原=1.011 0100;正确
[x3]原=1.000 1100(1);丢1,产生误差 [y1]补=0.010 1010;正确 [y2]补=1.111 0100;正确
[y3]补=1.100 1100(1);丢1,产生误差 [z1]反=1.101 0111;正确
[z2]反=1.111 0100(0);丢0,产生误差 [z3]反=1.100 1100;正确 算术右移两位:
[x1]原=0.000 0110(10);产生误差 [x2]原=1.001 1010;正确 [x3]原=1.000 0110(01);产生误差 [y1]补=0.001 0101;正确 [y2]补=1.111 1010;正确 [y3]补=1.110 0110(01);产生误差 [z1]反=1.110 1011;正确 [z2]反=1.111 1010(00);产生误差 [z3]反=1.110 0110(01);产生误差
19. 设机器数字长为8位(含1位符号位),用补码运算规则计算下列各题。 (1)A=9/64, B=-13/32,求A+B。 (2)A=19/32,B=-17/128,求A-B。 (3)A=-3/16,B=9/32,求A+B。 (4)A=-87,B=53,求A-B。
(5)A=115,B=-24,求A+B。 解:(1)A=9/64= 0.001 0010B, B= -13/32= -0.011 0100B [A]补=0.001 0010, [B]补=1.100 1100
[A+B]补= 0.0010010 + 1.1001100 = 1.1011110 ——无溢出 A+B= -0.010 0010B = -17/64
(2)A=19/32= 0.100 1100B, B= -17/128= -0.001 0001B
[A]补=0.100 1100, [B]补=1.110 1111 , [-B]补=0.001 0001
[A-B]补= 0.1001100 + 0.0010001= 0.1011101 ——无溢出 A-B= 0.101 1101B = 93/128B
(3)A= -3/16= -0.001 1000B, B=9/32= 0.010 0100B [A]补=1.110 1000, [B]补= 0.010 0100
[A+B]补= 1.1101000 + 0.0100100 = 0.0001100 —— 无溢出 A+B= 0.000 1100B = 3/32
(4) A= -87= -101 0111B, B=53=110 101B
[A]补=1 010 1001, [B]补=0 011 0101, [-B]补=1 100 1011
[A-B]补= 1 0101001 + 1 1001011 = 0 1110100 —— 溢出 (5)A=115= 111 0011B, B= -24= -11 000B [A]补=0 1110011, [B]补=1,110 1000
[A+B]补= 0 1110011 + 1 1101000 = 0 1011011——无溢出 A+B= 101 1011B = 91
26.按机器补码浮点运算步骤,计算[x±y]补.
-011-010
(1)x=2× 0.101 100,y=2×(-0.011 100);
-011-010
(2)x=2×(-0.100 010),y=2×(-0.011 111);
101100
(3)x=2×(-0.100 101),y=2×(-0.001 111)。 解:先将x、y转换成机器数形式:
-011-010
(1)x=2× 0.101 100,y=2×(-0.011 100)
[x]补=1,101;0.101 100, [y]补=1,110;1.100 100
[Ex]补=1,101, [y]补=1,110, [Mx]补=0.101 100, [My]补=1.100 100