解:此题容易出的问题是忽略静态流水线的特点,当加法任务流入流水线后紧跟着启动乘法任务。正确的做法是当所有加法任务完成从流水线流出后再启动乘法任务,同时还应注意到流水线中的第三段所用时间为2△t。 (1)任务分析
(2)画时空图 1 1 2 1 2 3 1 2 3 4 2 3 4 3 4 4 5 5 6 5 6 6 7 7 7 18△t (3)计算流水线性能 吞吐率:Tp?n7 ?T18?t加速比:Sp?T串行T流水4?5?t?3?3t29??
18?t18效率: E?实际占用面积4?5?t?3?3t29??
时空区总面积5?18?t903.18 在CRAY-l机器上,按照链接方式执行下述4条向量指令(括号中给出了相应功能部件
时间),如果向量寄存器和功能部件之间的数据传送需要1拍,试求此链接流水线的通过时间是多少拍?如果向量长度为 64,则需多少拍才能得到全部结果。
V0←存储器 (从存储器中取数:7拍) V2←V0+V1 (向量加:3拍) V3←V2<A3 (按(A3)左移:4拍) V5←V3∧V4 (向量逻辑乘:2拍)
解:通过时间就是每条向量指令的第一个操作数执行完毕需要的时间,也就是各功能流水线由空到满的时间,具体过程如下图所示。要得到全部结果,在流水线充满之后,向量中后继操作数继续以流水方式执行,直到整组向量执行完毕。
访存存储器V0V1V2V3V4V5向量加左移向量逻辑乘A3
T通过=(7+1)+(1+3+1)+(1+4+1)+(1+2+1)=23(拍)T总共?T通过+(64-1)=23+63=86(拍)
说明:若考虑数据从存储器送访存部件也有1拍延迟,则通过时间应为24拍,完成全部任务所用时间相应为87拍。
3.19 某向量处理机有16个向量寄存器,其中V0-V5种分别存放有向量A,B,C,D,E,F,向量的长度是8,向量各元素均为浮点数;处理部件采用两个单功能流水线,加法功能部件时间为2拍,乘法功能部件时间为3拍。采用类似CRAY-1的链接技术,先计算(A+B)×C,在流水线不停的情况下,接着计算(D+E)×F。
(1)求此链接流水线的通过时间是多少拍?(设寄存器出入各需1拍)
(2)假如每排时间为50ns,完成这些计算并把结果存进相应寄存器,此处理部件的时间吞吐率为多少MFLOPS? 解:
(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)在做完(A+B)×C之后,作(C+D)×E就不需要通过时间了。
V6?A?B;V7?V6?C;V8?D?E;V9?V8?F;
T?T通过+(8-1)?8?24(拍)?1200(ns)=1200×10-9 (s)
题目中所问为吞吐率是多少MFLOPS,显然是让求以MFLOPS为单位的吞吐率。MFLOPS是指每秒完成多少百万次浮点运算,因此要明确所有任务中共多少浮点运算。显然共有4条浮点向量指令,而每条指令完成8个浮点运算,因此浮点运算总数为32个。所以: 吞吐率:TP?3232??26.67 MFLOPS6?96TE?101200?10?10
第四章
4.4 假设有一条长流水线,仅仅对条件转移指令使用分支目标缓冲。假设分支预测错误的开
销为4个时钟周期,缓冲不命中的开销为3个时钟周期。假设:命中率为90%,预测精度为90%,分支频率为15%,没有分支的基本CPI为1。 (1)求程序执行的CPI。
(2)相对于采用固定的2个时钟周期延迟的分支处理,哪种方法程序执行速度更快? 解:
(1)程序执行的CPI = CPI基本+分支延迟
= 1 + 15%×[90%×(1-90%)×4 = (1-90%)×3] = 1.099
(2)采用固定的2个时钟周期延迟时,
程序执行的CPI = CPI基本+分支延迟 = 1 + 15%×2 =1.3
显然采用分支目标缓冲器时程序执行时间更少,即速度更快。
4.5 假设分支目标缓冲的命中率为90%,程序中无条件转移指令的比例为5%,没有无条件转移指令的程序CPI值为1。假设分支目标缓冲中包含分之目标指令,允许无条件转移指令进入分支目标缓冲,则程序的CPI值为多少?假设无条件分支指令不进入分支目标缓冲时程序执行的CPI为1.1
解:无条件分支指令的特点是只要执行肯定分支成功。因此,对于进入分支目标缓冲器的无条件分支指令,分支预测的精度为100%,也就不会带来分支延迟。而没有进入分支目标缓冲器的无条件分支指令会带来一定分支延迟。首先要求出一条无条件分支指令的分支延迟是多少,不妨设为x个时钟周期。
由题知无条件分支指令不进入分支目标缓冲时程序执行的CPI为1.1,而程序中没有无条件转移指令的CPI为1,因此有
CPI = CPI无分支指令+无条件分支延迟 = 1 + 5%x = 1.1 所以 x= 2 因此,允许无条件分支指令进入分支目标缓冲器时, CPI = CPI无分支指令+ 5%×(1-90%)×2 =1.01
第五章 存储层次
5.1 解释下列术语(不要求写在作业本上,但应作为复习内容)
存储系统 全相联映像 直接映像 组相联映像 写直达法
写回法 按写分配法 不按写分配法 命中时间 失效率 强制性失效 容量失效 冲突失效 2:1经验规则 相联度 答:(答案略)
5.2简述“Cache-主存”层次与“主存-辅存”层次的区别。 答:
存储层次 比较项目 目 的 存储管理实现 访问速度的比值 (第一级比第二级) 典型的块(页)大小 CPU对第二级的访问方式 失效时CPU是否切换 “Cache—主存”层次 为了弥补主存速度的不足 全部由专用硬件实现 几比一 几十个字节 可直接访问 不切换 “主存—辅存”层次 为了弥补主存容量的不足 主要由软件实现 几百比一 几百到几千个字节 均通过第一级 切换到其它进程 5.3 地址映像方法有哪些?它们各有什么优缺点? 答:
(1)全相联映像。实现查找的机制复杂,代价高,速度慢。Cache空间的利用率较高,块冲突概率较低,因而Cache的失效率也低。
(2)直接映像。实现查找的机制简单,速度快。Cache空间的利用率较低,块冲突概率较高,因而Cache的失效率也高。
(3)组相联映像。组相联是直接映像和全相联的一种折中。
5.4 降低cache失效率有哪几种方法? 答:
(1)增加Cache块大小 (2)提高相联度
(3)增加Cache的容量 (4)Victim Cache (5)伪相联Cache (6)硬件预取技术
(7)由编译器控制的预取 (8)编译器优化。
5.5 简述减小cache失效开销的几种方法。 答:
(1) 让读失效优先于写。 (2) 写缓冲合并。
(3) 请求字处理技术。
(4) 非阻塞Cache或非锁定Cache技术。 (5) 采用二级Cache。
5.8 组相联Cache的失效率比相同容量直接映像Cache的失效率低。由此能否得出结论:采用组相联映像一定能带来性能上的提高?为什么?