第3章-指令级并行及其动态开发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高等计算机系统结构第3章-指令级并行及其动态开发流水线技术就是指令重叠执行技术,达到加快运算速度的目的。三种流水线冲突:
◆结构冲突(structure hazard):由硬件资源冲突引起(资源冲突)
当硬件在指令重叠执行中不能支持指令所有可能的组合时发生的冲突。(需要更多的硬件资源)
◆数据冲突(data hazard):下一条指令要用到上一条指令的结果。
在同时执行的几条指令中,一条指令依赖于前一条指令的数据,却得不到时发出的冲突。(需要定向,编译器调度)
◆控制冲突(control hazard):由转移指令或其他改变PC指令引
起.(尽早检测条件,计算目标地址,延迟转移,预测)
由于这三种流水线冲突,导致流水线性能降低,不能运作在理想的重叠状态,需要插入停顿周期,从而使流水线性能降低。
指令之间可重叠执行性称为指令级并行性(Instruction Parallelism-ILP)。
因此进一步研究和开发指令之间的并行性,等于拓宽指令重叠执行的可能性,从而能进一步提高流水线的性能。
提高指令级并行度方法:
◆流水线动态调度:依赖硬件技术
广泛用于桌面电脑和服务去处理器中,包括Pentium III 和
Pentium 4,Athlon,MIPS R10000/12000,Sun UltrSPARC III 等◆流水线静态调度:依赖软件技术
更多的用于嵌入式处理器中,一些桌面电脑和服务产品也使用,如IA-64系统结构和Intel 的Itanium .
术语:
◆流水级(pipe stage):流水线由多个流水级组成,通常一条指
令由n 级流水级完成。每个流水级完成指令的部分任务。◆吞吐量(throughput):单位时间内流出流水线的指令数。◆机器周期(machine cycle):不同流水线完成指令功能不等,所
需时间有长有短,因此设计流水线的关键是合理划分指令功能,使每一流水级完成指令功能的时间大致相等。机器周期由最长流水级的时间决定,通常等于时钟周期。
第3章指令级并行及其动态开发 3.1 指令级并行概念
Visualizing Pipelining
第3章指令级并行及其动态开发Visualizing Pipelining
I n s t r.
O r d e r Time (clock cycles)
Reg A L U DMem Ifetch Reg Reg A L U DMem Ifetch Reg Reg A L U DMem Ifetch Reg Reg A L U DMem Ifetch Reg Cycle 1Cycle 2Cycle 3Cycle 4Cycle 6Cycle 7
Cycle 5
One Memory Port/Structural Hazards
I n s t r. O r d e r
Time (clock cycles)
Load
Instr 1
Instr 2
Instr 3
Instr 4
Reg
A
L
U DMem
Ifetch Reg
Reg
A
L
U DMem
Ifetch Reg
Reg
A
L
U DMem
Ifetch Reg
Reg
A
L
U DMem
Ifetch Reg Cycle 1Cycle 2Cycle 3Cycle 4Cycle 6Cycle 7
Cycle 5
Reg
A
L
U DMem
Ifetch Reg
结构冲突使得必须插入流水气泡I n s t r.
O r d e r Time (clock cycles)
Load Instr 1Instr 2Stall Instr 3Reg A L U DMem Ifetch Reg Reg A L U DMem Ifetch Reg Reg A L U DMem Ifetch Reg Cycle 1Cycle 2Cycle 3Cycle 4Cycle 6Cycle 7
Cycle 5Reg A L U DMem Ifetch Reg
Bubble Bubble Bubble Bubble Bubble 改进方法: (1)增加硬件的拷贝数(2)使硬件流水化
Data Hazards
第3章指令级并行
及其动态开发◆Consider the instruction sequence:
DADD R1,R2,R3
DSUB R4,R1,R3
AND R6,R1,R7
OR R8,R1,R9
XOR R10,R1,R11
◆The result in R1is produced after it
is required by the last three
instructions.
Data Hazard on R1
第3章指令级并行
及其动态开发I n s t r.
O r d e r DADD R1,R2,R3DSUB R4,R 1,R3AND R6,R 1,R7OR R8,R 1,R9
XOR R10,R 1,R11Reg A L U DMem Ifetch Reg Reg A L U DMem Ifetch Reg Reg A L U DMem Ifetch Reg Reg A L U DMem Ifetch Reg Reg A L U DMem Ifetch Reg Time (clock cycles)
IF ID/RF EX MEM
WB