计算机系统结构课堂习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 经统计,某机器14条指令的使用频度分别为:0.01,0.15,0.12,0.03,0.02,0.04,0.02,0.04,0.01,0.13,0.15,0.14,0.11,0.03.分别求出用等长码、哈夫曼码、只有两种码长的扩展操作码等3种编码方式的操作码平均码长.
答:[分析] 等长操作码的意思是不管其指令的频度如何,都用同样长度的二进制码位数
来对指令操作码编码。显然,当指令系统中的指令条数为n 时,等长操作码的二进制码位
数应当是 ⎡⎤n 2log 。
Huffman 编码是用Huffman 算法构造出Huffman 树来得到的。它的平均码长是用
∑
=n
i i p 1
·
l i 计算求得的。 只有两种码长的扩展操作码编码,则需要对指令使用频度进行按大小分群。将高频的指令分在同一群中,对其用短的操作码编码,而将低频的指令分在另一群中,使用长操作码编码。每一群都各自用等长操作码编码。这时,为能唯一解码和立即解码,在短操作码中还要使用某些码来作为扩展成长操作码的扩展标志码。经过综合权衡,使平均
码长尽可能短,来定好长、短码的码长组配关系。从而,再用∑=n
i i p 1
·l i 来求得其平均码
长。
[解答] 14条指令的等长操作码的平均码长是⎡⎤14log 2位,即4位。
Huffman 编码可先用Huffman 算法构造出Huffman 树。本题的Huffman 树如图2.1所示。
图中,叶子上用圆括号所括起的数字是表示该频度指令所用的二进位编码的码位
数, 所以Huffman 编码的操作码平均码长为∑=14
1
i i p ·l i =3.38位。
采用只有两种码长的扩展操作码,可根据14条指令所给出的使用频度值分成两群。让使用频度较高的6种指令用3位操作码编码表示。例如,用000~101分别表示使用频度为0.15、0.15、0.14、0.13、0.12、0.11的指令的操作码。留下110和111两个3位码作为长码的扩展标志,扩展出2位码。从而用5位码就可以各扩展出4条使用频度较低的指令,这样,共有8条使用频度较低的指令符合题目的要求。由此可求得操作码的平均码长为
∑
=14
1
i i p ·
l i =34.320.0580.0=⨯+⨯位
3. 设中断级屏蔽位”1”对应于开放,”0”对应于屏蔽,各级中断处理程序的中断级屏蔽位设置如表3-4所示。
表3-4 习题3-5中的中断级屏蔽位位置
(1) 当中断响应优先次序为1->2->3->4时,其中断处理次序是什么?
(2) 如果所有的中断处理都各需3个单位时间,中断响应和中断返回时间相对中断处理
时间少很多。当机器正在运行用户程序时,同时发生第2、3级中断请求,过两个单位时间后,又同时发生第1、4级中断请求,试画出程序运行过程示意图。
答:
(1) 中断处理(完)的次序为1→3→4→2。
(2) 由题目所给出的条件,其CPU运行程序的过程示意田如图3.2所示。图中,粗短线部分代表进行交换程序状态字的时间,△t为1个单位时间。
4. 若机器共有5级中断,中断响应优先次序为1->2->3->4->5,现要求其实际的中断处理次序为1->4->5->2->3,回答下面问题:
(1)设计各级中断处理程序的中断级屏蔽位(令”1”对应于屏蔽,”0”对应于开放);
(2) 若在运行用户程序时,同时出现第4、2级中断请求,而在处理第2级中断未完成时,又同时出现第1、3、5级中断请求,请画出此程序运行过程示意图。
答:
(1) 各级中断处理程序中的中断级屏蔽位的设置,如表3.2所示。
(2) 由已知条件可得程序运行过程的示意图如图3.3所示。图中,粗短线表示交换程序状态宇的时间。
表3.2 中断级屏蔽位的位置
5.设某程序包含5个虚页,其页地址为4,5,3,2,5,1,3,2,2,5,1,3。当使用LRU算法替换时,为获得最高的命中率,至少应分配给该程序几个实页?其可能的最高命中率为多少?
答:
用堆栈对页地址流处理一次的过程如附表7所示,其中H表示命中。
附表7 用堆栈对页地址流处理一次的过程
模拟结果表明,使用LRU替换算法进行替换,对该程序至少应分配4个实页。如果只分配3个实页,其页命中率只有2/12,太低;而分配实页数多于4页后,其页命中率不会再有提高。所以,分配给该程序4个实页即可,其可能的最高命中率为H=7/12。
6.有一个Cache存储器。主存共分8个块(0~7),Cache为4个块(0~3),采用组相联映像,组内块数为2块,替换算法为近期最久未用过的算法(LRU)。
(1)画出主存、Cache地址的各字段对应关系(标出位数)图;
(2)画出主存、Cache空间块的映像对应关系示意图;
(3)对应如下主存块地址流:1,2,4,1,3,7,0,1,2,5,4,6,4,7,2,如主存
中内容一开始未装入Cache中,请列出Cache中各块随时间的使用状况;
(4)对于(3),指出块失效又发生块争用的时刻;
(5)对于(3),求出此期间Cache之命中率。
答:
(1)主存、Cache地址中各个字段的含义、位数及其映像的对应关系如附图14所示。
(2)主存、Cache空间块的映像对应关系如附图15所示。
主存的第0、1、4、5块只可映像装入或替换掉物理Cache中的第0、1块的内容。主存的第2、3、6、7块只可映像装入或替换物理Cache中的第2、3块的内容。
(3)程序运行时,由给出的主存块地址流可得到Cache中的各个块的使用状况,如附表
13所示,表中标”*”的是候选替换块的块号。
(4)发生Cache块失效又发生块争用的时刻有6、7、9、10、11、12、14、15。
(5)Cache的块命中率为
H c=3/15=0.2.
7.假设指令的解释分取指、分析与执行3步,每步的时间相应为t取值、t分析、t执行,