
1/137
▲
第 5 章 指令级并行及其开发
—— 硬件方法

3/137
▲
指令级并行:指指令之间存在的一种并行性,利
用它,计算机可以并行执行两条或两条以上的指
令。
( ILP : Instruction-Level Parallelism )
开发 ILP 的途径有两种
资源重复,重复设置多个处理部件,让它们同时执行
相邻或相近的多条指令;
采用流水线技术,使指令重叠并行执行。
本章研究:如何利用各种技术来开发更多的指令
级并行 (硬件的方法)

4/137
▲
1. 开发 ILP 的方法可以分为两大类
主要基于硬件的动态开发方法
基于软件的静态开发方法
2. 流水线处理机的实际 CPI
理想流水线的 CPI 加上各类停顿的时钟周期数:
CPI
流水线
= CPI
理想
+ 停顿
结构冲突
+ 停顿
数据冲突
+ 停顿
控制冲突
理想 CPI 是衡量流水线最高性能的一个指标。
IPC : Instructions Per Cycle
(每个时钟周期完成的指令条数)
5.1 指令级并行的概念

5/137
▲
5.1 指令级并行的概念
3. 基本程序块
基本程序块:一串连续的代码除了入口和出口以
外,没有其他的分支指令和转入点 。
程序平均每 4 ~ 7 条指令就会有一个分支。
4. 循环级并行:使一个循环中的不同循环体并行执行。
开发循环的不同叠代之间存在的并行性
最常见、最基本
是指令级并行研究的重点之一