当前位置:文档之家› 3-流水线技术

3-流水线技术


S3 ∆ t3 = ∆ t
S4 ∆ t4 = ∆ t
输出
空间
S4 S3 S2-3 S2-2 S2-1 S1 1 2 1 3 4 5 2 1 3
1 2
2 3 5
3 4 6
4 5 … …
5 6 …
6 …

n-2 n-1 n n
n-2 n-1 n
n-1 n-2
时间
17
4 6
n-2 n-1 n … 流水段重复设置的流水线
n 》m时,Sp≈m

18
3、效率(Efficiency):流水线的设备利用率。 效率 计算流水线效率的一般公式: • 计算流水线效率的一般公式:
T0 E= = m个流水段的总的时空区 m ⋅ Tm
• 各流水段执行时间相等,输入 n 个连续任务: 流水线的效率为:
求阶差 对阶 尾数加 规格化 尾数乘 累加 输出 浮点点积 (d)浮 点 点 积
11
(a)功 能 段 间 的 互 连

静态流水线与动态流水线
• 静态流水线:同一段时间内,多功能流水线中的各个功能段只能 按照一种固定的方式连接,实现一种固定的功能。从一种功能切换 为另一种功能时,必须排空流水线。只有连续出现同一种运算时, 流水线的效率才能得到充分的发挥。
n TP = (m + n − 1)∆t ,
m⋅n Sp = m + n −1 ,
n E= m + n −1
因此:E=TP·∆t,Sp=m·E

20
流水线性能分析举例
• 对于单功能线性流水线,输入连续任务的情况, 通过上面给出的公式很容易计算出流水线的吞 吐率、加速比和效率。 • • 例1:用一条4段浮点加法器流水线求8个浮 点数的和: Z=A+B+C+D+E+F+G+H

6
流水线的分类(1)
• 线性流水线与非线性流水线 流水线的各个流水段之间是否有反馈信号
–线性流水线(Linear Pipelining) 每一个流水段都流过一次,而且仅流过一次。
S2 S3
输出
S1
输入

7
流水线的分类(2)
–处理机级流水称为宏流水线 宏流水线(Macro Pipelining)。 宏流水线 每个处理机对同一个数据流的不同部分分别进行处理。
输 入 处理机 1 存储器 处理机 2 任务 2 存储器 … 处理机 n 任务 n 存储器 输 出
功能 任务 1

9
单功能流水线与多功能流水线
• 单功能流水线:只能完成一种固定功能的流水线。 只能完成一种固定功能的流水线。 只能完成一种固定功能的流水线 • Cray-1计算机种有12条 • YH-1计算机有18条 • Pentium有一条5段的定点和一条8段的浮点流水线。 • PentiumⅢ有三条指令流水线,其中两条定点指令流水线, • 一条浮点指令流水线。 • • 多功能流水线:流水线的各段通过不同的连接实现不同的功能。 流水线的各段通过不同的连接实现不同的功能。 流水线的各段通过不同的连接实现不同的功能 • Texas公司的ASC计算机中的8段流水线,能够实现: • 定点加减法、定点乘法、 • 浮点加法、浮点乘法, • 逻辑运算、移位操作、 • 数据转换、向量运算等。
1
2
3
… … n-1 n 1 1 2
1 2 3
2 3 4
3 4 5
… … …
2 3
3
… … n-1 n
… … n-1 n
… … n-1 n 1 2 3 4 5 6 …
… … n-1 n
时间
… … n-1 n
动态流水线时空图

13
线性流水线的性能分析
衡量流水线性能的主要指标有:吞吐率、加 速比和效率
空间
浮点加法 1 2 3 … … n-1 n
定点乘法 1 1 1 2 2 3 … … …
输出 累加 尾数乘 规格化 尾数加 对阶 求阶差 输入 1 1 2 1 2 3 1 2 3 1 2 3
2 3
3
… … n-1 n
… … n-1 n
… … n-1 n n 静态流水线时空图 1 2 3 4 … 时间
2、加速比(Speedup):完成同样一批任务,不使用流水线所用的时间 加速比 与使用流水线所用的时间之比。
计算流水线加速比的基本公式: • 计算流水线加速比的基本公式:
顺序执行时间 T 0 Sp = 流水线执行时间 Tm
• 各段执行时间相等,输入连续任务情况下: 加速比为:
m ⋅ n ⋅ ∆t m⋅n Sp = = (m + n − 1)∆t m + n − 1
1 TP = max( ∆ t 1, ∆ t 2 ,⋅ ⋅ ⋅, ∆ tm )
• 流水线各段执行时间不相等的解决办法 一是将流水线的“瓶颈”部分再细分(如果可分的话)。 一是将流水线的“瓶颈”部分再细分(如果可分的话)。
二是“瓶颈“流水段重复设置: 二是“瓶颈“流水段重复设置:

• 1、吞吐率(Though Put):单位时间内 吞吐率( 流水线所完成的任务数量。
• • • 计算流水线吞吐率的最基本公式: 计算流水线吞吐率的最基本公式: TP
= n Tm
其中:n为任务数,Tm为完成n个任务所用 的时间 • • 各段执行时间相等,输入连续任务情况下: • 完成n个连续任务需要的总时间为:Tm= (m+n-1)∆t + - ) • 其中:m 为流水线的段数,∆t为时钟周期
15
空间
S4 S3 S2 S1 1
k
1 1 1 2

i=1
2 2 3 3 3 …
3 … n
… n
n
2
∆ ti
n … ( n- 1) ∆ t2 - )
时间
Tk 各段执行时间不相等的流水线及其时空图
一是将流水线的“瓶颈”部分再细分(如果可分的话)。 一是将流水线的“瓶颈”部分再细分(如果可分的话)。
S2 (3∆t) ∆

3
指令的流水执行方式
• 假设:每个流水段的执行时间为t,执行一 条指令需要k个周期。执行n条指令(无跳转) 的时间: • 非流水线:T=n*k*t
取指令 k 分析 k 执行 k 取指令 k+1 分析 k+1 执行 k+1
• 流水线:T=[k+(n-1)]*t • 加速比= n*k*t/ [k+(n-1)]*t= n*k/ [k+(n-1)] • 当n无穷大时,加速比=k。增加流水段的数 目可以提高加速比。但是带来成本的增加, 同时跳转指令将清空流水线。
高等计算机体系结构
北京邮电大学继续教育学院 授课教师: 孙斌 sunbin@

1
第三讲 流水线技术
• 流水线的基本概念 • DLX的基本流水线 • 流水线中的相关

2
流水线的基本概念
• 流水线是实现多条指令重叠执行的技术。是加 快CPU执行速度的关键技术。 • 关键词:
– 流水段/流水级(pipe stage):每个流水线由N个流 水段组成,每个流水段完成指令的部分功能。 – 吞吐量(throughput):单位时间内流出流水线的指 令数。 – 机器周期(machine cycle):由最长流水段的时间决 定,通常等于时钟周期。理想状态是合理划分指令 功能,使得每个流水段的时间相等。 – 理想流水线的加速因子(speedup):非流水线机器 指令平均执行时间/流水线机器指令平均执行时间
… … n-1 n
… … n-

12

• 动态流水线:在同一段时间内,多功能流水线中的各段可以按 照不同的方式连接,同时执行多种功能。
空间 浮点加法 定点乘法
输入 求阶差 对阶 尾数加 规格化 尾数乘 累加 输入 1 1 2 1 2 3 1 2 3 1 2 3

10
A 输入
B
A 输入
B
A 输入
B
A 输入
B
求阶差 对阶 尾数加 规格化 尾数乘 累加 输出
g= f( A ,B)
求阶差 对阶 尾数加 规格化 尾数乘 累加 输出 定点乘 (b)定 点 乘 法
求阶差 对阶 尾数加 规格化 尾数乘 累加 输出 浮点加 (c)浮 点 加 法
• 解:Z=[(A+B)+(C+D)]+[(E+F)+ (G+H)]

21
周期 规格化 尾数加 对阶
空间 1 2
3 1
4 1 2 3
5 2 3 4
6 3 4
7 4 5
8 5
9 5 6
10 11 12 13 14 15 7 6 6 7 7
A+B+C+D E+F+G+H A+B+C+D E+F+G+H
n个任务占用的时空区
m ⋅ n ⋅ ∆t n E= = m ⋅ (m + n − 1) ⋅ ∆t m + n − 1
n =1 E max = Lim 流水线的最高效率为: n→∞ m + n − 1

19
流水线的吞吐率、加速比与效率的关系: • 流水线的吞吐率、加速比与效率的关系:
8
流水线分类(3)
• 按照流水线的级别来分
–指令级流水线(Instruction Pipelining) 一条指令的解释过程分成多个子过程 –部件级流水线 操作流水线 部件级流水线(操作流水线 部件级流水线 操作流水线),如浮点加法器流水线。
输入 求阶差 △t1 对阶 △t2 尾数加 △t3 规格化 △t4 输出

14
n TP = 吞吐率为: 吞吐率为: (m + n −1)∆t
最大吞吐率为: 最大吞吐率为:
相关主题