计算机组成 Chapter12
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
张熙童 201208070225 智能1202
思考题:
12.1、CPU中寄存器通常起什么作用?
指令执行期间暂时保存指令、指令位置、数据、数据位置和中间数据。
用户可见寄存器:允许机器语言或汇编语言的编程人员通过优化寄存器的使用而减少对主存的访问。
控制器用其控制CPU的操作,特权级的操作系统程序用来控制程序的执行。12.2、用户可见寄存器普遍支持的数据类型是什么?
多字节长度的2进制补码整数和2进制无符号原码(地址):(压缩)十进制BCD 整数:布尔逻辑标志位:3种IEEE754浮点数。字符串,饱和运算整数。
12.3、条件代码的功能是什么?
部分用户可见,CPU执行一些指令时隐式设置这些为作为操作的结果,这些代码可被后面的条件转移指令所测试,他们是构成控制寄存器的一部分。大多数机器提供了1位或多位的条件代码,可以把条件代码想象成一个用户可见短寄存器,他为某种操作的结果被设置,由条件转移指令测试,实现条件转移。
12.4、什么是程序状态字?
程序状态字(PSW)包含状态位,反应CPU的当前状态,一般含有条件代码加上其他状态信息。
12.5、和不能使用流水线相比,为什么一个两阶段流水线不可能将指令周期缩短到原来的一半?
(1)执行时间一般要长于取地址时间。执行将涉及到读取和保存操作数以及完成某些操作。于是取指阶段可能必须等待一段时间才能排空它的缓冲器。
(2)条件转移指令使得带去的下一条指令的地址是未知的,于是取指阶段必须等待它由执行阶段得到下一条指令地址。而在取下一条指令时执行阶段又必须等待。
12.6、列出并简要说明指令流水线处理条件转移指令的几种方式。
多个指令流:一种盲力方法是复制流水线的初始部分,并且允许流水线同时取这两条指令,使用两个指令流。
预取转移目标:识别出一个条件转移指令时,除了取此转移指令后的指令之外,转移目标处的指令也被取出来。这个目标被保存,知道转移指令被执行。
循环缓冲器:由流水线至领取阶段维护的一个容量最小的但极高速的存储器,用来存储一段连续的指令。
转移预测:根据程序指示或执行历史预测一条转移路径,提前转移执行。
延迟转移:自动重排程序中的指令,以至于一条转移指令出现在实际所要求的位置后。无论转移是否发生,转移之后的指令总会执行。
12.7转移预测如何使用历史位?
通过记录条件转移指令在程序中的历史来改善预测的准确度。
若使用两位,则它们能用来记录相关指令的最后两次执行情况或时记录某种其他样式的状态。对一给定的条件转移指令,只要连续两次遇到的都是发生转移,则算法预测下一次转移要发生。如果一次预测失误,算法继续预测下一次转移将发生。仅当连续两次都不发生转移,算法才走到流程图的右方。接着预测转移不发生,知道连续两次发生转移。于是,算法是连续两次失误才更改预测判定。
习题:
12.1
(1)
00000010
00000011
00000101
进位:0 符号:0 零:0 偶校验:1 半进位:0 上溢:0
(2)
00000001
11111111
100000000
进位:1 符号:0 零:1 偶校验:1 半进位:1 上溢:1
12.2
11110000
11101100
111011100
进位:1 符号:1 偶校验:0 零:0 半进位:0 上溢:1
12.3
(a)T = 1/f =1/5G = 0.2ns
(b)0.2*3 = 0.6ns
12.4
(a)
[10 + (15 × 64)] * 0.2 = 1920 ns
最坏情况的中断延迟1920ns
(b)
在数据传送前可以中断就是在取指令和译码、传送之间中断。
中断可能是等待取指令和译码,也可能是数据传送的等待。前一个等待2ns,后一个等待3ns
12.5
(a)2倍
(b)1.5倍
12.6
(a)对于100条指令,每条指令取的时间为1个周期
4*10/(40+90*2) = 0.18
(b)8*10/(80+90*2) = 0.3
12.7
1 2 3 4 5
I1 F E
I2 F E
I3 F E
I4 F E
Cycle=2+(4-1)= 5
12.8
1 2 3 4 5 6 7 8 9 10
I1 FI DA FO EX
I2 FI DA FO EX
I3 FI DA FO EX
I4 FI DA FO
I5 FI DA
I6 FI
I15 FI DA FO EX
12.9
(a)分5段,理论上有5倍加速
(b)一个周期完成一条指令,吞吐量2500MIPS
12.10
(a)S = (nk)/[k + (n – 1)] = 500/104 = 4.8
然而此时的频率变为原来的0.8
所以加速比为4.8*0.8 = 3.84
(b)旧:2500/4 = 625MIPS
新:每个时钟周期可以完成一次计算 2000MIPS
12.11
Tk = pqnkτ + (1 –pq)[k + (n - 1)]τ
Sk =T1/Tk=nkτ/{(pq)nkτ + (1−pq)[k + (n − 1)]τ}
=nk/{(pq)nk + (1 −pq)[k + (n − 1)]}
12.12
(1)分支目标不能被提取,直到它的地址被确定,这可能需要一个地址计算,这取决于寻址方式,这导致在加载流之一的延迟。
(2)硬件负担增加,成本上升。
12.13
1、第一个状态A对应于下列行为如果同时给定指令的最后两个分支都没有发生转移,则预测,该分支将不采取,否则,预测分支会采取第二状态B.B对应于以下行为。两个错误都需要改变的预测,即,当预测不采取,而最后两个分支不采取,则需要两个采取的分支被需要的预测改变两者,同样地,如果当前的预测被拍摄,最后两个分支被采取,然后两个不采取分支被需要来改变预测到未选择,但是,如果有一个改变预测后跟一个错误,以前的预测被恢复。
2、通常是分支机构采取的情况下,在这两个图12.17和B,两种错误的猜测都需