指令流水线.PDF
文本预览下载声明
第七章 指令流水线
2. 简单回答下列问题。(参考答案略)
(1 )流水线方式下,一条指令的执行时间缩短了还是加长了?程序的执行时间缩短了还是
加长了?为什么?
(2 )具有什么特征的指令集易于实现指令流水线?
(3 )流水线处理器中时钟周期如何确定?单条流水线处理器的CPI 为多少?每个时钟周期
一定有一条指令完成吗?为什么?
(4 )流水线处理器的控制器实现方式更类似于单周期控制器还是多周期控制器?
(5 )为什么要在各流水段之间加寄存器?各流水段寄存器的宽度是否都一样?为什么?
(6 )你能列出哪几种流水线被阻塞的情况?你知道硬件和软件是如何处理它们的吗?
(7 )超流水线和多发射流水线的主要区别是什么?
(8 )静态多发射流水线和动态多发射流水线的主要区别是什么?
(9 )为什么说Pentium 4 是“CISC 壳、RISC 核”的体系结构?
3. 假定在一个五级流水线(如 P.205 图 7.1 所示)处理器中,各主要功能单元的操作时间为:
存储单元:200ps ;ALU 和加法器: 150ps;寄存器堆读口或写口:50ps 。若执行阶段 EX
所用的 ALU 操作时间缩短 20% ,则能否加快流水线执行速度?如果能的话,能加快多少?
如果不能的话,为什么?若 ALU 操作时间增加 20% ,对流水线的性能有何影响?若 ALU
操作时间增加 40% ,对流水线的性能有何影响?
参考答案:
a. ALU 操作时间缩短 20% 不能加快流水线指令速度。因为存储单元的时间为 200ps ,所
以流水线的时钟周期不会因为 ALU 操作时间的缩短而变短。
b. ALU 操作时间延长 20% 时,变为 180ps ,比 200ps 小,对流水线性能没有影响;
c. ALU 操作时间延长 40% 时,变为 210ps ,比 200ps 大,所以,流水线的时钟周期将变
为 210 ,其效率降低了(210-200)/200=5% 。
4. 假定某计算机工程师想设计一个新 CPU ,一个典型程序的核心模块有一百万条指令,每条
指令执行时间为 100ps 。
(1 )在非流水线处理器上执行该程序需要花多长时间?
(2 )若新 CPU 是一个 20 级流水线处理器,执行上述同样的程序,理想情况下,它比非流
水线处理器快多少?
(3 )实际流水线并不是理想的,流水段间数据传送会有额外开销。这些开销是否会影响指
令执行时间(Instruction latency )和指令吞吐率(Instruction throughput )?
参考答案:
6
(1 )非流水线处理器上执行该程序的时间为:100psx10 =100 µs.
(2 )若在一个 20 级流水线的处理器上执行,理想情况下,每个时钟周期为:100/20=5ps ,
• 156 •
6
所以,程序执行时间为 5 x10 =5 µs. 快 100/5=20 倍。
(3 )流水线段之间数据的传递产生的额外开销,使得一条指令的执行时间被延长,即影
响 Instruction latency ;同时也拉长了每个流水段的执行时间,即影响 Instruction
throughput 。
5. 假定最复杂的一条指令所用的组合逻辑分成 6 块,依次为 A~F ,其延迟分别为 80ps 、30ps 、
60p
显示全部