Download presentation
Presentation is loading. Please wait.
1
计算机体系结构 习题
2
第三章习题 3.12 有一指令流水线如下所示 (1) 求连续输入10条指令,该流水线的实际吞吐率和效率;
(1) 求连续输入10条指令,该流水线的实际吞吐率和效率; (2) 该流水线的“瓶颈”在哪一段?请采取两种不同的措施消除此“瓶颈”。对于你所给出的两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少?
3
第三章习题 解:(1)
4
第三章习题 (2)瓶颈在3、4段。 变成八级流水线(细分)
5
第三章习题 重复设置部件 1 2 3-1 3-2 4-1 4-2 4-3 4-4
6
第三章习题 3.13有一个流水线由4段组成,其中每当流经第3段时,总要在该段循环一次,然后才能流到第4段。如果每段经过一次所需要的时间都是,问: (1) 当在流水线的输入端连续地每时间输入任务时,该流水线会发生什么情况? (2) 此流水线的最大吞吐率为多少?如果每输入一个任务,连续处理10个任务时的实际吞吐率和效率是多少? (3) 当每段时间不变时,如何提高该流水线的吞吐率?仍连续处理10个任务时,其吞吐率提高多少?
7
第三章习题 解:(1)会发生流水线阻塞情况。 第1个任务 S1 S2 S3 S4 第2个任务 stall 第3个任务 第4个任务
8
第三章习题 (2)
9
第三章习题 (3)重复设置部件 吞吐率提高倍数= =1。64
10
第三章习题 3.15 动态多功能流水线由6个功能段组成,如下图:
其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,各个功能段时间均为50ns,假设该流水线的输出结果可以直接返回输入端,而且设置有足够的缓冲寄存器,若以最快的方式用该流水计算: (1)画出时空图; (2)计算实际的吞吐率、加速比和效率。
11
第三章习题 解:机器一共要做10次乘法,4次加法。
12
第三章习题 3.16 在MIPS流水线上运行如下代码序列: LOOP: LW R1,0(R2) DADDIU R1,R1,#1
SW R1, 0(R2) DADDIU R2,R2,#4 DSUB R4,R3,R2 BNEZ R4,LOOP 其中:R3的初值是R2+396。假设:在整个代码序列的运行过程中,所有的存储器访问都是命中的,并且在一个时钟周期中对同一个寄存器的读操作和写操作可以通过寄存器文件“定向”。问:
13
第三章习题 (1) 在没有任何其它定向(或旁路)硬件的支持下,请画出该指令序列执行的流水线时空图。假设采用排空流水线的策略处理分支指令,且所有的存储器访问都命中Cache,那么执行上述循环需要多少个时钟周期? (2) 假设该流水线有正常的定向路径,请画出该指令序列执行的流水线时空图。假设采用预测分支失败的策略处理分支指令,且所有的存储器访问都命中Cache,那么执行上述循环需要多少个时钟周期? (3) 假设该流水线有正常的定向路径和一个单周期延迟分支,请对该循环中的指令进行调度,你可以重新组织指令的顺序,也可以修改指令的操作数,但是注意不能增加指令的条数。请画出该指令序列执行的流水线时空图,并计算执行上述循环所需要的时钟周期数。
14
第三章习题 解:寄存器读写可以定向,无其他旁路硬件支持。排空流水线。 第i次迭代(i=0..98)开始周期:1+(i×17)
总的时钟周期数:(98×17)+18=1684
15
第三章习题 有正常定向路径,预测分支失败: 第i次迭代(i=0..98)开始周期:1+(i×10)
总的时钟周期数:(98×10)+11=991
16
第三章习题 有正常定向路径。单周期延迟分支。 LOOP: LW R1,0(R2) DADDIU R2,R2,#4
DSUB R4,R3,R2 BNEZ R4,LOOP SW R1,-4(R2) 第i次迭代(i =0..98)开始周期:1+(i ×6 ) 总的时钟周期数:(98×6)+10=598
17
第三章习题 3.17 假设各种分支指令数占所有指令数的百分比如下:
条件分支 20%(其中的60%是分支成功的) 跳转和调用 5% 现有一条段数为4的流水线,无条件分支在第二个时钟周期结束时就被解析出来,而条件分支要到第三个时钟周期结束时才能够被解析出来。第一个流水段是完全独立于指令类型的,即所有类型的指令都必须经过第一个流水段的处理。请问在没有任何控制相关的情况下,该流水线相对于存在上述控制相关情况下的加速比是多少?
18
第三章习题 解:没有控制相关时流水线的平均CPI=1
存在控制相关时:由于无条件分支在第二个时钟周期结束时就被解析出来,而条件分支要到第3个时钟周期结束时才能被解析出来。所以: (1)若使用排空流水线的策略,则 对于条件分支,有两个额外的stall, 对无条件分支,有一个额外的stall: CPI = 1+20%*2+5%*1 = 1.45 加速比S = CPI/1 = 1.45
19
第三章习题 (2) 若使用预测分支成功策略,则对于不成功的条件分支,有两个额外的stall,对无条件分支和成功的条件分支,有一个额外的stall 1: CPI = 1+20%*(60%*1+40%*2) +5%*1 = 1.33 加速比S = CPI/1 = 1.33 (3)若使用预测分支失败策略,则对于成功的条件分支,有两个额外的stall;对无条件分支,有一个额外的stall;对不成功的条件分支,其目标地址已经由PC 值给出,不必等待,所以无延迟: CPI = 1+20%*(60%*2 + 40%*0) +5%*1 = 1.29 加速比S = CPI/1 = 1.29
20
第三章习题 3.18 在CRAY-1机器上,按照链接方式执行下述4条向量指令(括号中给出了相应功能部件的执行时间),如果向量寄存器和功能部件之间的数据传送需要1拍,试求此链接流水线的通过时间是多少拍?如果向量长度为64,则需多少拍才能得到全部结果? V0←存储器 (从存储器中取数:7拍) V2←V0+V (向量加:3拍) V3←V2<A (按(A3)左移:4拍) V5←V3∧V (向量逻辑乘:2拍)
21
第三章习题 解:通过时间就是每条向量指令的第一个操作数执行完毕需要的时间,也就是各功能流水线由空到满的时间,具体过程如下图所示。要得到全部结果,在流水线充满之后,向量中后继操作数继续以流水方式执行,直到整组向量执行完毕。
22
第三章习题 3.19 某向量处理机有16个向量寄存器,其中V0~V5中分别放有向量A、B、C、D、E、F,向量长度均为8,向量各元素均为浮点数;处理部件采用两条单功能流水线,加法功能部件时间为2拍,乘法功能部件时间为3拍。采用类似于CARY-1的链接技术,先计算(A+B)*C,在流水线不停流的情况下,接着计算(D+E)*F。 (1)求此链接流水线的通过时间?(设寄存器入、出各需1拍) (2)假如每拍时间为50ns,完成这些计算并把结果存进相应寄存器,此处理部件的实际吞吐率为多少MFLOPS?
23
第三章习题 解:(1)假设A+B的中间结果放在V6中,(A+B)×C地最后结果放在V7中,D+E地中间结果放在V8中,(D+E)×F的最后结果放在V9中。具体实现参考下图: 通过时间应该为((A+B)×C)通过的时间: T通过= (1+2+1)+(1+3+1) =9(拍)
24
第三章习题 (2)在做完(A+B)×C之后,作(C+D)×E就不需要通过时间了。 V6←A+B V7←V6×C V8←D+E V9←V8×F
Similar presentations