《计算机系统结构》习题解答
目录
第一章(P33)
1.7-1.9(透明性概念),1.12-1.18(Amdahl定律),1.19、1.21、1.24(CPI/MIPS)
第二章(P124)
2.3、2.5、2.6(浮点数性能),2.13、2.15(指令编码)
第三章(P202)
3.3(存储层次性能),3.5(并行主存系统),3.15-3.15加1题(堆栈模拟),3.19中(3)(4)(6)(8)问(地址映象/替换算法--实存状况图)
第四章(P250)
4.5(中断屏蔽字表/中断过程示意图),4.8(通道流量计算/通道时间图)
第五章(P343)
5.9(流水线性能/时空图),5.15(2种调度算法)
第六章(P391)
6.6(向量流水时间计算),6.10(Amdahl定律/MFLOPS)
第七章(P446)
7.3、7.29(互连函数计算),7.6-7.14(互连网性质),7.4、7.5、7.26(多级网寻径算法),7.27(寻径/选播算法)
第八章(P498)
8.12(SISD/SIMD算法)
第九章(P562)
9.18(SISD/多功能部件/SIMD/MIMD算法)
(注:每章可选1-2个主要知识点,每个知识点可只选1题。有下划线者为推荐的主要知识点。)
第一章(P33)
1.7
(1)从指定角度来看,不必要了解的知识称为透明性概念。 (2)见下表,“√”为透明性概念,“P”表示相关课文页数。 模m交叉,√, 总线宽度,√, 单总线,√, 指令控制方式,√, Cache存储器,√,
1.8见下表,“√”为透明性概念,“P”表示相关课文页数。 指令地址寄存器,×, 条件码寄存器,×, 磁盘,×, 通用寄存器 ,×,
1.9见下表,“√”表示都透明,“应”表示仅对应用程序员透明,“×”表示都不透明。 数据通路宽度,√, 程序状态字,×, 指令缓冲寄存器,√,
1.12 已知Se=20 , 求作Fe-Sn关系曲线。 将Se代入Amdahl定律得
Sn 20 1 0 1 Fe 虚拟存储器,应, “启动I/O”指令,应, Cache存储器,√, “执行”指令,×, 指令缓冲器,√, 乘法器,√, 先行进位链,√, 中断字寄存器,×, 时标发生器,√, 主存地址寄存器,√, 移位器,√, 浮点数据,×,P4 阵列运算部件,×, 访问保护,×, 堆栈指令,×, 通道与I/O处理机,×,P4 结合型与独立型通道,√, 中断,×, 最小编址单位,×, 1Sn?191?Fe20
1.13 上式中令Sn=2,解出Fe=10/19≈0.526
1.14 上式中令Sn=10,解出Fe=18/19≈0.947
1.15 已知两种方法可使性能得到相同的提高,问哪一种方法更好。
(1)用硬件组方法,已知Se=40,Fe=0.7,解出Sn=40/12.7≈3.1496(两种方法得到的相同性能) (2)用软件组方法,已知Se=20,Sn=40/12.7,解出Fe=27.3/38≈0.7184(第二种方法的百分比)
(3)结论:软件组方法更好。因为硬件组需要将Se再提高100%(20→40),而软件组只需将Fe再提高1.84%(0.7→0.7184)。 1.17 Sn?10.1?0.95?5?3.57 1.4
1.18 记f ── 时钟频率,T=1/f ── 时钟周期,B ── 带宽(Byte/s)。
1.19 由各种指令条数可以得到总条数,以及各百分比,然后代公式计算。
1?4?4f(Byte/s) T75%?2?25%?1方案二:B2??4?3.5f(Byte/s)
2T方案一:B1?IC??ICi?105
i?14(1)CPI??(CPIi?i?14ICi)?1?0.45?2?0.32?2?0.15?2?0.08?1.55 ICf40?10640???25.806 (2)MIPS?661.55CPI?101.55?10(3)T 1.21 (1)CPI?IC1.55 ??0.003876(秒)MIPS?106400?1?0.6?2?0.18?4?0.12?8?0.1?2.24
f40?106??17.86 (2)MIPS?66CPI?102.24?10
1.24 记Tc ── 新方案时钟周期,已知CPI = CPIi = 1 原时间 = CPI × IC × 0.95Tc = 0.95IC×Tc 新时间 = (0.3×2/3+0.7)× IC × Tc = 0.9IC×Tc 二者比较,新时间较短。
第二章(P124)
2.3(忽略P124倒1行 ~ P125第8行文字,以简化题意)已知2种浮点数,求性能指标。 此题关键是分析阶码、尾数各自的最大值、最小值。
原图为数据在存中的格式,阶码的小数点在其右端,尾数的小数点在其左端,遵守规格化要求。
由于尾数均为原码,原码的绝对值与符号位无关,所以最大正数与最小负数的绝对值相同,可用“±最大绝对值”回答;最小正数与最大负数的绝对值相同,可用“±最小绝对值”回答。
第1小问中,阶码全部位数为8,作无符号数看待真值为0~255,作移-127码看待真值为-127~+128;尾数(不计符号位)有23位小数,另加1位整数隐藏位,所以尾数绝对值为1.0~2.0 – 2,有效位数p=24;
第2小问中,阶码全部位数为11,作无符号数看待真值为0~2047,作移-1023码看待真值为-1023~+1024;尾数(不计符号位)有52位小数,另加1位整数隐藏位,所以尾数绝对值为1.0~2.0 – 2,有效位数p=53。
最大绝对值为最大阶码与最大尾数绝对值的组合,最小绝对值为最小阶码与最小尾数绝对值的组合。代入相关公式后得最终结果如下表。
±最大绝对值 ±最小绝对值 表数精度δ 表数效率η 2.5
(1) rm = 2,re = 2,p = 24(隐藏最高位),q = 7。 (2) Nmax = 1.7×10,-|N|min = -1.47×10
δ ≤ 5.96×10 ≈ 10
-8
-7.22
38
-39
-52-23
32位 -24129±(1-2)·2 -127±2 -242 100% 64位 -531025±(1-2)·2 -1023±2 -532 100% ,η = 100%
2.6
(1) 0.2 = 0.333333H×16
(2) 符号位不变,(阶码 – 63)×4 + 127;尾数左规,除去最高位;
(3) 符号位不变,(阶码 – 127)/ 4 + 63;尾数补最高位,按除法余数右移若干位,左补0。
2.13 已知10条指令使用频度,求3种编码方法的平均码长与信息冗余量。
(1)此问中的“最优Huffman编码法”实际是指码长下限,即信源的平均信息量──熵,代公式得H=2.9566。 (2)Huffman编码性能如下表;
(3)2/8扩展编码是8/64/512法的变种,第一组2条指令,码长为2(1位扩展标志,1位编码),第二组8条指令,码长为4(1位扩展标志,与第一组区别,加3位编码),编码性能如下表;
(4)3/7扩展编码是15/15/15法的变种,第一组3条指令,码长为2(共有4种组合,其中3种组合分别代表3条指令,留1种组合作为扩展前缀标志),第二组7条指令,码长为5(2位固定的前缀扩展标志,与第一组区别,加3位编码,只用其中7种组合),编码性能如下表。
平均码长L 信息冗余量R 2.15
(1) 15条/63条/64条 (2) 14条/126条/128条
第三章(P202)
3.3 直接代公式计算存储层次性能指标。 (1)74ns,38ns,23.6ns (2)0.258,0.315,0.424 (3)T256K < T128K < T64K c256K > c128K > c64K
(4)19.092,11.97,10.0064。答案是256K方案最优。
Huffman编码 2.99 1.10% 2/8扩展编码 3.1 4.61% 3/7扩展编码 3.2 7.59% 0.2 = 0.1001101B×2 (其中最高有效位需隐藏) 阶码为移-127码(即-2+1)
7-20
设阶码为移-63码(即-2+1,原题未指明)
6
1位 0 7位 0111111 6位 333333 1位 0 8位 01111101 23位 001101 1?(1?g)n3.5 已知Kn?g依题意有Kn?1,其中g=0.1
1?(1?g)n?11?(1?g)n??Kn?0.2??0.2
gg整理得0.9≥0.2,解出nn?lg0.2?15.28,向下取整,得15;
lg0.9按另一种题意理解是向上取整,得16,也对。
3.15 欲知可能的最高命中率及所需的最少主存页数,较好的办法是通过“堆栈模拟法”,求得命中次数随主存页数变化的函数关系。下图就是“堆栈模拟图”,其中“√”表示命中。
P= n=1 n=2 n=3 n=4 n=5
(2)n=4
(3)当1次页面访问代表连续1024次该页存储单元访问时,后1023次单元访问肯定是命中的,而第1次单元访问的命中情况与这1次页面访问的命中情况相同。根据上图中最高命中情况,共有7次页命中(折算为7×1024次单元命中),5次页不命中(折算为5×1023次单元命中,也可写为5×1024-5),单元访问总次数为12×1024,故有: Hcell=(12×1024-5)/(12×1024)=12283/12288≈99.96%
3.15加1题 一个二级存储层次,采用全相联映象和最久没有使用算法,实存共5页,为2道程序分享,页地址流分别如下
P1 = 1 2 3 4 1 3 2 1 P2 = 1 2 3 4 2 2 3 3
试作2个实存分配方案,分别使2道程序满足 (1)命中率相同; (2)命中次数之和最大。
解:分别为2道程序作“堆栈模拟图”,其中“√”表示命中。
P1 = n1= 1 n1= 2 n1= 3 n1= 4
P2 = n2= 1 n2= 2 n2= 3 n2= 4
1 1 2 2 1 3 3 2 1 4 4 3 2 1 2 2 4 3 1 √ √ 2 2 4 3 1 √ √ √ √ 3 3 2 4 1 √ √ 3 命中次数N(2) 3 2 4 1 √ 2 √ 2 √ 4 √ 4
1 1 2 2 1 3 3 2 1 4 4 3 2 1 1 1 4 3 2 √ 3 3 1 4 2 √ √ 2 2 3 1 4 √ 1 命中次数N(1) 1 2 3 4 0 0 √ 2 √ 4
4 4 5 5 4 3 3 5 4 2 2 3 5 4 5 5 2 3 4 √ √ √ 1 1 5 2 3 4 3 3 1 5 2 4 √ √ 2 2 3 1 5 4 √ √ 3 3 2 1 5 4 √ √ √ √ 5 5 3 2 1 4 √ √ 1 1 5 3 2 4 √ √ 3 3 1 5 2 4 √ √ √ 命中次数 0 1 3 7 7
(1)Hmax=7/12≈58.3%