条件分支 跳转和调用 20%(其中60%是成功的) 5% 现有一深度为4地流水线(流水线有4段),无条件分支在第二个时钟周期结束时就被解析出来,而条件分支要到第三个时钟周期结束时才能被解析出来。第一个流水段是完全独立于指令类型的,即所有的指令都必须经过第一个流水段的处理。请问在没有任何结构相关地情况下,该流水线相对于存在上述结构相关情况下地加速比是多少? 9、答案内容:
解:在不存在结构相关时,每条指令的平均执行时间是1个时钟周期,而存在上述条件相关的情况下,并假设条件分支预测成功,那么无条件分支和成功的条件分支的等待时间都是1,而不成功地条件分支等待时间是2个周期;所以加速比就等于存在相关的每条指令的平均执行时间和不存在相关的每条指令的执行时间1的比值:
加速比?1?C?1?f?P分支
P无条件分支=1stallP条件分支=2stall 4分
每条指令的平均等待时间:
C?f条件分支?P条件分支+f无条件分支?P无条件分支=20%?60%?2+20%?40%?1?5%?1 4分 =0.37所以:加速比?1.37 2分
10、评分细则:10分/小题,评分细则分布在答案内容中。
----------------------------------------------------------------------
1、试题序号:598 2、题型:计算题 3、难度级别:4
4、知识点:3.5 向量处理机 5、分值:10
6、所需时间:15分钟
7、试题关键字:向量处理机 8、试题内容:
CRAY-1机器上,按照链接方式执行下述4条向量指令(括号中给出了相应功能部件的时间),如果向量寄存器和功能部件之间数据传输需要1拍,试求此链接流水线的通过时间是多少拍?如果向量长度为64,则需要多少拍才能得到全部结果。
V0←存储器 (从存储器中取数:7拍) V2←V0+V1 (向量加:3拍) V2←V2 < A3 (按(A3)左移:4拍)
V5←V3∧V4 (向量逻辑乘:2拍) 9、答案内容:
解:通过时间就是每条向量指令的第一个操作数执行完毕需要的时间,也就
是各功能流水线由空到满的时间,具体过程如下图所示。要得到全部结果,在流水线充满之后,向量中后继操作数继续以流水方式执行,直到整组向量执行完毕。 2分
访存存储器V0V1V2V3V4V5向量加左移向量逻辑乘A3 T通过=(7+1)+(1+3+1)+(1+4+1)+(1+2+1)=23(拍) 6分
T总共?T通过+(64-1)=23+63=86(拍) 2分
10、评分细则:10分/小题,评分细则分布在答案内容中。
----------------------------------------------------------------------
1、试题序号:599 2、题型:计算题 3、难度级别:4
4、知识点:3.5 向量处理机 5、分值:10
6、所需时间:15分钟
7、试题关键字:向量处理机 8、试题内容:
向量处理机有16个向量寄存器,其中V0~V5中分别存放有向量A、B、C、D、E、F,向量长度均为12,向量各元素均为浮点数;处理部件采用两个单功能流水线,加法功能部件时间为2拍,乘法功能部件时间为3拍。采用类似CRAY-1的链接技术,先计算(A+B)*C,在流水线不停留的情况下,接着计算(D+E)*F。
(1) 求此链接流水线的通过时间为多少拍?(设寄存器入、出各需1拍) 假如每拍时间为50ns,完成这些计算并把结果存进相应寄存器,此处理部件地实际吞吐率为多少MFLOPS? 9、答案内容: 解:(1)我们在这里假设A+B的中间结果放在V6中,(A+B)*C地最后结果放在V7中,D+E地中间结果放在V8中,(D+E)*F的最后结果放在V9中。具体实现参考下图:
V0AV1BV6V2CV7向量加向量乘V3DV4EV8V5FV9 通过时间应该为前者((A+B)*C)通过的时间: T通过= (1+2+1)+(1+3+1) =9(拍) 2分
(2)在做完(A+B)*C之后,作(C+D)*E就不需要通过时间了。4分
V6?A?B;V7?V6?C;V8?D?E;V9?V8?F;T?T通过+(8-1)?8?24(拍)?1200(ns) 4分 32TP??26.67MFLOPST
10、评分细则:10分/小题,评分细则分布在答案内容中。
----------------------------------------------------------------------
1、试题序号:600 2、题型:计算题 3、难度级别:3
4、知识点:四、指令级并行 5、分值:10
6、所需时间:15分钟 7、试题关键字:指令调度 8、试题内容:
对于下面的源代码,转换成DLX汇编语言,在不进行指令调度和进行指令调度两种情况下,分析代码一次循环的执行时间。
for (i=1; i<=1000; i++) x[i]=x[i] + s;
假设:x[0] 的内存地址为 0 (为简单起见),R1的初值为x[1000]的地址,F2中存放的值为常量s。
DLX浮点流水线的延迟如下表: 产生结果指令 浮点计算 浮点计算 浮点数据取操作(LD) 浮点数据取操作(LD) 9、答案内容: 使用结果指令 另外的浮点计算 浮点数据存操作(SD) 浮点计算 浮点数据存操作(SD) 延迟时钟周期数 3 2 1 0 解:不进行指令调度的情况下,根据表中所给浮点流水线中指令执行的延迟, 实际运行: (1) LOOP: LD F0,0(R1) (2) (空转) (3) ADDD F4,F0,F2 (4) (空转) (5) (空转) (6) SD 0(R1),F4 (7) SUBI R1,R1,#8 (8) (空转) (9) BNEZ R1,LOOP (10) (空转)
一共 10 个时钟周期,其中有5个是空转周期。 4分 指令调度: (1) LOOP: LD F0,0(R1) (2) (空转) (3) ADDD F4,F0,F2 (4) SUBI R1,R1,#8 (5) BNEZ R1,LOOP (6) SD 8(R1),F4
一共 6 个时钟周期,其中有 1 个空转周期。 4分
经过指令调度,一个元素的操作时间从10个时钟周期减少到6个时钟周期,其中5个周期是有指令执行的,只剩下一个空转周期。 2分 10、评分细则:10分/小题,评分细则分布在答案内容中。
----------------------------------------------------------------------
1、试题序号:601 2、题型:计算题 3、难度级别:4
4、知识点:5.2 Cache基本知识 5、分值:10
6、所需时间:15分钟
7、试题关键字:Cache基本知识 8、试题内容:
VAX-11/780在Cache命中时的指令平均执行时间是8.5时钟周期,Cache失效时间是6个时钟周期,假设不命中率是11%,每条指令平均访存3次。
(1)试计算在考虑了Cache不命中时的指令平均间,它比Cache命中时平均执行时间延长百分之几?
(2)若CPU在Cache命中时的指令平均执行时间是1.5时钟周期,其他条件一样,结果如何?从结果的比较可看出什么问题? 9、答案内容: 解:(1)已知:Tie=8.5 Tm=6 1-Hc=0.11
在Cache命中时,每条指令的访存时间是:
Tca=3Tc=3 (Tc为平均访问Cache时间,一般为1个时钟周期) 2分
而在考虑Cache不命中时,每条指令的访存时间为:
Tcb=3(0.89Tc+0.11×6)=2.67+1.98=4.65
因指令执行的其他时间相同,所以
Ti=8.5-3+4.65=10.15
(10.15-8.5)/8.5=0.194=19.4% 3分
(2)根据题意,Tie=1.5
则当考虑Cache不命中时,每条指令的平均执行时间为: Ti=1.5-3+4.65=3.15
(3.15-1.5)/3.15=0.524=52.4% 3分
由比较结果可以看出,在速度较高的系统中,Cache的命中率对指令的执行速度有较大的影响,从而影响到整个系统的性能,因此,提高Cache的命中率,降低平均访存时间,对提高系统的性能有着重要作用。 2分 10、评分细则:10分/小题,评分细则分布在答案内容中。
----------------------------------------------------------------------
1、试题序号:602 2、题型:计算题 3、难度级别:3
4、知识点:5.2 Cache基本知识 5、分值:10
6、所需时间:15分钟 7、试题关键字:存储层次 8、试题内容:
有一个\主存\存储层次,主存共分8个块(0~7),Cache分为4个块(0~3),采用组相联映象,组内块数为2块,替换算法为近期最少使用法(LRU)。 (1)画出主存、Cache存储器地址的各字段对应关系;
(2)对于如下主存块地址流:1、2、4、1、3、7、0、1、2、5、4、6、4、7、2,如主存中内空一开始未装入Cache中,请列出随时间变化Cache中各块的使用情况。;
(3)对于(2),指出块失效又发生块争用时刻。 (4)对于(23),求出此间的Cache命中率。 9、答案内容: 解:
(1)见下表: 3分 nd区号 1位 访问顺序 地址块号
q'组号 1位 ↓ 1位 q (2)如下表: 3分 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 2 4 1 3 7 0 1 2 5 4 6 4 7 2
s'块号 1位 ↓ 1位 s nmr(块内地址) ↓ ncr(块内地址)