指令K4与下一循环的指令K2之间关于R1的写读数据相关 指令K3与下一循环的指令K2之间关于R2的读写数据相关 指令K2与下一循环的指令K2之间关于R2的写写数据相关 指令K3与下一循环的指令K3之间关于R0的写读数据相关 指令K3与下一循环的指令K3之间关于R0的读写数据相关 指令K3与下一循环的指令K3之间关于R0的写写数据相关 指令K4与下一循环的指令K4之间关于R1的写读数据相关 指令K4与下一循环的指令K4之间关于R1的读写数据相关 指令K4与下一循环的指令K4之间关于R1的写写数据相关 (2)采用预测转移不成功的静态分支预测技术
执行译码
3 4 2
122(MIPS)
5ns 23(3 4 2) 4
加速比:S 2.43
23
(3 4 2) 4
效率:E 0.61
23 4
(3)采用预测转移成功的静态分支预测技术 吞吐率:TP
执行译码3 4 2
147(MIPS)
5ns 19(3 4 2) 4
加速比:S 2.95
19
(3 4 2) 4
效率:E 0.74
19 4吞吐率:TP
4、(12分)某RISC处理机的工作主频为500MHz,有一个Cache和一个主存储器,Cache的存取周期为2ns,主存储器的存取周期为20ns,Cache的命中率为99%,有20%的LOAD/STORE指令,并假设处理机速度的瓶颈完全在存储系统。 (1)求理想情况(Cache的命中率为100%)下的CPI。 (2)计算该RISC处理机的实际MIPS速率。
(3)如果处理机的工作主频提高到1GHz,计算实际CPI和MIPS速率。 4、解答:
(1)
CPI=(2ns+2ns 20%) 500MHz=1.2 (2)
MIPS=1/(2ns 99%+20ns 1%+2ns 20% 99%+20ns 20% 1%) =1/2.616ns=382.3 (3)
CPI=(2ns 99%+20ns 1%+2ns 20% 99%+20ns 20% 1%) 1GHz =2.616ns 1GHz=2.616 MIPS=1/2.616ns=382.3
5.10 假设对指令Cache的访问占全部访问的75%;而对数据Cache的访问占全部访问的25%。Cache的命中时间为1个时钟周期,失效开销为50 个时钟周期,在混合Cache中一次load或store操作访问Cache的命中时间都要增加一个时钟周期,32KB的指令Cache的失效率为0.39%,32KB的数据Cache的失效率为4.82%,64KB的混合Cache的失效率为1.35%。又假设采用写直达策略,且有一个写缓冲器,并且忽略写缓冲器引起的等待。试问指令Cache和数据Cache容量均为32KB的分离Cache和容量为64KB的混合Cache相比,哪种Cache的失效率更低?两种情况下平均访存时间各是多少?
解:(1)根据题意,约75%的访存为取指令。 因此,分离Cache的总体失效率为:(75%×0.15%)+(25%×3.77%)=1.055%; 容量为128KB的混合Cache的失效率略低一些,只有0.95%。 (2)平均访存时间公式可以分为指令访问和数据访问两部分: 平均访存时间=指令所占的百分比×(读命中时间+读失效率×失效开销)+数据所占的百分比×(数据命中时间+数据失效率×失效开销)
所以,两种结构的平均访存时间分别为:
分离Cache的平均访存时间=75%×(1+0.15%×50)+25%×(1+3.77%×50) =(75%×1.075)+(25%×2.885)=1.5275
混合Cache的平均访存时间=75%×(1+0.95%×50)+25%×(1+1+0.95%×50) =(75%×1.475)+(25%×2.475)=1.725
因此,尽管分离Cache的实际失效率比混合Cache的高,但其平均访存时间反而较低。分离Cache提供了两个端口,消除了结构相关。
5.11 给定以下的假设,试计算直接映象Cache和两路组相联Cache的平均访问时间以及CPU的性能。由计算结果能得出什么结论?
(1) 理想Cache情况下的CPI为2.0,时钟周期为2ns,平均每条指令访存1.2次; (2) 两者Cache容量均为64KB,块大小都是32字节; (3) 组相联Cache中的多路选择器使CPU的时钟周期增加了10%; (4) 这两种Cache的失效开销都是80ns; (5) 命中时间为1个时钟周期;
(6) 64KB直接映象Cache的失效率为1.4%,64KB两路组相联Cache的失效率为1.0%。 解:平均访问时间=命中时间+失效率×失效开销 平均访问时间1-路=2.0+1.4% *80=3.12ns
平均访问时间2-路=2.0*(1+10%)+1.0% *80=3.0ns 两路组相联的平均访问时间比较低
CPUtime=(CPU执行+存储等待周期)*时钟周期
CPU time=IC(CPI执行+总失效次数/指令总数*失效开销) *时钟周期 =IC((CPI执行*时钟周期)+(每条指令的访存次数*失效率*失效开销*时钟周期)) CPU time 1-way=IC(2.0*2+1.2*0.014*80)=5.344IC CPU time 2-way=IC(2.2*2+1.2*0.01*80)=5.36IC 相对性能比:
CPUtime 2wayCPUtime 1way
5.36/5.344=1.003
直接映象cache的访问速度比两路组相联cache要快1.04倍,而两路组相联Cache的平均性能比直接映象cache要高1.003倍。因此这里选择两路组相联。 二、(10分)判断题: 1、对计算机系统中经常使用的基本单元功能,宜于用软件来实现,这样可降低系统的成本。( F )
2、由于RISC简化了指令系统,因此,RISC上的目标程序比CISC上的目标程序要短一些,程序执行的时间就会少一些。(F )
3、流水线调度是看如何调度各任务进入流水线的时间,使单功能线性流水线有高的吞吐率和效率。( T )
4、无论采用什么方法,只要消除流水线的瓶颈段,就能提高流水线的吞吐率和效率。( F ) 5、在满足Cache与主存的一致性方面,写回比写直达法好。( F )
6、在多处理机上,各个任务的执行时间不同时,在个处理机总的运行时间均衡的前提下,取不均匀分配,让各处理机所分配的任务数要么尽量的多,要么尽量的少,这样,才可使总的运行时间减少。( F )
7、Cache组相联映象的块冲突概率比直接映象的高。( F )
8、要使线性流水线的实际吞吐率接近于理想的最大吞吐率,应将子过程数分得越多越好。(F)
9、在系列机内可以将单总线改为双总线,以减少公共总线的使用冲突。( F )
1. (×)由于流水线的最大加速比等于流水线深度,所以增加流水段数总可以增大流水
线加速比。 2. (√)流水线深度受限于流水线的延迟和额外开销。
3. (√)编译器可以通过重新排列代码的顺序来消除相关引起的暂停。 4. (√)多级存储层次是利用程序局部性原理来设计的。 5. (√)“Cache-主存”层次:弥补主存速度的不足。 6. (√)“主存-辅存”层次:弥补主存容量的不足。