第四章流水线技术 指令级并行的概念 4.2指令的动态调度 4.3转移预测技术 4.4多发射技术 4.5向指令级并行的支持与限制 4.6 Inte pent i um4实例分析
1 第四章 流水线技术 4.1 指令级并行的概念 4.2 指令的动态调度 4.3 转移预测技术 4.4 多发射技术 4.5 向指令级并行的支持与限制 4.6 Intel Pentium 4 实例分析
4.1指令级并行的概念 指令级并行的概念 几乎所有的处理机都利用流水线来使指令重叠并行执行,以 达到提高性能的目的。这种指令之间存在的潜在并行性称为指 令级并行。(ILP: Instruction- Level parallelism
2 4.1 指令级并行的概念 指令级并行的概念 几乎所有的处理机都利用流水线来使指令重叠并行执行,以 达到提高性能的目的。这种指令之间存在的潜在并行性称为指 令级并行。 (ILP:Instruction-Level Parallelism)
4.1.1指令级并行 1、流水线处理机的实际CP 理想流水线的CP加上各类停顿的时钟周期数: CPI流水线=CPI理想+停顿结构冲突+停顿数据 冲突+停顿控制冲突 理想CP是衡量流水线最高性能的一个指标 IPC: Instruct ions Per Cycle (每个时钟周期完成的指令条数) 2、基本程序块 基本程序块:一段除了入口和出口以外不包含其 他分支的线性代码段。 程序平均每5~7条指令就会有一个分支
3 4.1.1 指令级并行 1、流水线处理机的实际CPI – 理想流水线的CPI加上各类停顿的时钟周期数: CPI流水线 = CPI理想 + 停顿结构冲突 + 停顿数据 冲突 + 停顿控制冲突 – 理想CPI是衡量流水线最高性能的一个指标。 – IPC:Instructions Per Cycle ⚫ (每个时钟周期完成的指令条数) 2、基本程序块 – 基本程序块:一段除了入口和出口以外不包含其 他分支的线性代码段。 – 程序平均每5~7条指令就会有一个分支
3、循环级并行:使一个循环中的不同循环体并 行执行。 开发循环体中存在的并行性 最常见、最基本 是指令级并行研究的重点之 例如,考虑下述语句 for(i=1;i<=500;ⅰ=i+1) ali]=ali]+s 每一次循环都可以与其他的循环重叠并行执行; 在每一次循环的内部,却没有任何的并行性
4 3、循环级并行:使一个循环中的不同循环体并 行执行。 – 开发循环体中存在的并行性 ⚫ 最常见、最基本 – 是指令级并行研究的重点之一 – 例如,考虑下述语句: for (i=1; i<=500; i=i+1) a[i]=a[i]+s; ⚫ 每一次循环都可以与其他的循环重叠并行执行; ⚫ 在每一次循环的内部,却没有任何的并行性
4、最基本的开发循环级并行的技术 循环展开(| oop unroll l ing)技术 采用向量指令和向量数据表示
5 4、最基本的开发循环级并行的技术 – 循环展开(loop unrolling)技术 – 采用向量指令和向量数据表示