计算机体系结构流水线结构相关,03 计算机体系结构--流水线技术

展开查看详情

1.计算机体系结构

周学海

xhzhou@ustc.edu.cn

0551-63606864

中国科学技术大学

2. 第三章 流水线技术

3.1 流水线的基本概念

3.2 MIPS 基本流水线

3.3 MIPS 中多周期操作的处理

3.4 MIPS R4000 流水线

中国科学技术大学 chapter03.2

3.流水线的基本概念

• 一个任务可以分解为 k 个子任务

– K 个子任务在 K 个不同阶段(使用不同的资源)运行

– 每个子任务执行需要 1 个单位时间

– 整个任务的执行时间为 K 倍单位时间

• 流水线执行模式是重叠执行模式

– K 个流水段并行执行 K 个不同任务

– 每个单位时间进入 / 离开流水线一个任务

中国科学技术大学 chapter03.3

4. 同步流水线

• 流水段之间采用时钟控制的寄存器文件( clocked

registers)

• 时钟上升沿到达时…

– 所有寄存器同时保存前一流水段的结果

• 流水段是组合逻辑电路

• 流水线设计中希望各段相对平衡

– 即所有段的延迟时间大致相等

• 时钟周期取决于延迟最长的流水段

中国科学技术大学 chapter03.4

5. 流水线的性能

• 设 = time delay in stage Stime time delay in stage Sdelay time delay in stage Sin time delay in stage Sstage time delay in stage SSi

• 时钟周期 = max( ) 为最长的流水段延迟

• 时钟频率 f = 1/ = 1/max( )

• 流水线可以在 k+n-1 个时钟周期内完成 n 个任务

– 完成第一个任务需要 k 个时钟周期

– 其他 n-1 个任务需要 n-1 个时钟周期完成

• K- 段流水线的理想加速比(相对于串行执行)

中国科学技术大学 chapter03.5

6. 简单的 5 段流水线

• 5 个流水段,每段的延迟为 1 个 cycle

• IF: 取值阶段

– 选择地址:下一条指令地址、转移地址

• ID: 译码阶段

– 确定控制信号 并从寄存器文件中读取寄存器值 并从寄存器文件中读取寄存器值

• EX: 执行

– Load time delay in stage S 、 Store :计算有效地址

– Branch :计算转移地址并确定转移方向

• MEM: 存储器访问(仅 Load 和 Store)

• WB: 结果写回

中国科学技术大学 chapter03.6

7. 流水线的可视化表示

• 多条指令执行多个时钟周期

– 指令按程序序从上到下排列

– 图中展示了每一时钟周期资源的使用情况

– 不同指令相邻阶段之间没有干扰

中国科学技术大学 chapter03.7

8. 03/19-review

• 编译技术与计算机体系结构设计

– 有利于编译器的 ISA :

» 规整性、正交性、完整性

» 帮助编译器设计者了解各种代码序列的执行效率 和代价,有助于

编译器的优化

» 对于在编译时就已经可确定的量,提供能够将其变为常数的指令

– 寄存器分配是关键问题

» 寄存器数目多有利于编译器的设计与实现

» 提供至少 16 个通用寄存器和独立的浮点寄存器

– 保证所有的寻址方式可用于各种数据传送指令

– 最小指令集

• MIPS 指令集

18/9/22 中国科学技术大学 8

9. 03/19-review (MIPS)

• Use general purpose registers with a load-store architecture: YES

• Provide at least 16 general purpose registers plus separate floating-

point registers: 31 GPR & 32 FPR

• Support basic addressing modes: displacement (with an address

offset size of 12 to 16 bits), immediate (size 8 to 16 bits), and register

deferred; : YES: 16 bits for immediate, displacement (disp=0 =>

register deferred)

• All addressing modes apply to all data transfer instructions : YES

• Use fixed instruction encoding if interested in performance and use

variable instruction encoding if interested in code size : Fixed

• Support these data sizes and types: 8-bit, 16-bit, 32-bit integers and

32-bit and 64-bit IEEE 754 floating point numbers: YES

• Support these simple instructions, since they will dominate the

number of instructions executed: load, store, add, subtract, move

register-register, and, shift, compare equal, compare not equal,

branch (with a PC-relative address at least 8-bits long), jump, call,

and return: YES, 16b

• Aim for a minimalist instruction set: YES

18/9/22 中国科学技术大学 Chapter2.9

10. 03/19-review 流水线技术要 点

• 流水线技术并不能提高单个任务的执行效率 ,它可以

提高整个系统的吞吐率

• 流水线中的瓶颈——最慢的那一段

• 多个任务同时执行,但使用不同的资源

• 其潜在的加速比=流水线的级数

• 流水段所需时间不均衡将降低加速比

• 流水线存在装入时间和排空时间,使得加速比降低

• 由于存在相关问题,会导致流水线停顿

中国科学技术大学 chapter3.10

11. 指令流时序

• 时序图展示:

– 每个时钟周期指令所使用的流水段情况

• 指令流在采用 5 段流水线执行模式的执行情况

中国科学技术大学 chapter03.11

12. 单周期、多周期、流水线控制性能比较

• 假设 5 段指令执行流水线

• 某一程序段假设:

– 20% time delay in stage Sload, time delay in stage S10% time delay in stage Sstore, time delay in stage S40% time delay in stage SALU, time delay in stage Sand time delay in stage S30% time delay in stage Sbranch

• 比较三种执行模式的性能

中国科学技术大学 chapter03.12

13. 流水线的性能分析

基本度量参数:吞吐率 ,加速比,效率

吞吐率 :在单位时间内流水线所完成的任务数量或输

出结果的数量。

n

TP 

TK

n :任务数

Tk :处理完成 n 个任务所用的时间

中国科学技术大学 chapter03.13

14. 流水线技术提高系统的任务吞吐率

1. 各段时间均相等的流水线

– 各段时间均相等的流水线时空图

空间

S4 1 2 3 … … n-1 n

S3 1 2 3 … … n-1 n

S2 1 2 3 … … n-1 n

S1 1 2 3 … … n-1 n

k· △t (n-1)· △t 时间

(单位:△t)

Tk

中国科学技术大学 chapter03.14

15. 吞吐率

– 流水线完成 n 个连续任务所需要 的总时间为

(假设一条 k段线性流水线)

Tk = kΔt + (n-1)ΔΔt = (k + n-1)ΔΔt

– 流水线的实际吞吐率 TP  n

(k  n  1)t

 最大吞吐率 : 流水线在连续流动达到稳定状态后

所得到的吞吐率 。 TP  lim n 1

n    k  n  1 t

max

t

S4 1 2 3 4 5 .. .. .. n-1 n

S3 1 2 3 4 5 .. .. .. n-1 n

n

S2 1 2 3 4 5 .. .. .. n-1 n

TP  TPmax

S1 1 2 3 4 5 .. .. .. n-1 n

k n 1

中国科学技术大学 15

16. TP 与 Tpmax 的关系

– 最大吞吐率 与实际吞吐率 的关系

n

TP  TPmax

k n 1

 流水线的实际吞吐率 小于最大吞吐率 ,它除了与

每个段的时间有关外,还与流水线的段数 k 以及

输入到流水线中的任务数 n等有关。

 只有当 n>>k时,才有 TP≈TPmax 。

中国科学技术大学 chapter03.16

17. 流水线中的瓶颈——最慢的段

2. 各段时间不完全相等的流水线

– 各段时间不等的流水线及其时空图

» 一条 4段的流水线

» S1 , S3 , S4 各段的时间: Δt

» S2 的时间: 3Δt (瓶颈段)

流水线中这种时间最长的段称为流水线的瓶颈段。

中国科学技术大学 chapter03.17

18.中国科学技术大学 chapter03.18

19.– 各段时间不等的流水线的实际吞吐率 :

( Δti 为第 i 段的时间,共有 k 个段 )

n

TP  k

 t

i 1

i  (n  1) max(t1 , t 2 ,, t k )

 流水线的最大吞吐率为

1

TPmax 

max(t1 , t 2 , t k )

中国科学技术大学 19

20. 例如:一条 4 段的流水线中, S1 , S2 , S4 各

段的

时间都是 Δt ,唯有 S3 的时间是 3ΔΔt 。

△t △t 3△t △t

入 S1 S2 S3 S4 出

最大吞吐率为

1

TPmax 

3t

中国科学技术大学 20

21.3Δ. 解决流水线瓶颈问题的常用方法

– 细分瓶颈段

例如:对前面的 4段流水线

把瓶颈段 S3细分为 3个子流水线段: S3a , S3b , S3c

△t △t △t △t △t △t

入 S1 S2 S3a S3b S3c S4 出

改进后的流水线的吞吐率 : TP 1

max 

t

中国科学技术大学 21

22.– 重复设置瓶颈段

» 缺点:控制逻辑比较复杂,所需的硬件增加了

例如:对前面的 4段流水线

重复设置瓶颈段 S3: S3a , S3b , S3c

3△t

S3a

△t △t △t

入 S1 S2 S3b S4 出

S3c

中国科学技术大学 chapter03.22

23.段

S4 1 2 3 4 5 6 7 8 9

S3c 3 6 9

S3b 2 5 8

S3a 1 4 7

S2 1 2 3 4 5 6 7 8 9

S1 1 2 3 4 5 6 7 8 9

时间

重复设置瓶颈段后的时空图

中国科学技术大学 chapter03.23

24. 加速比

加速比:完成同样一批任务,不使用流水线所用的时间

与使用流水线所用的时间之比。

假设:不使用流水线(即顺序执行)所用的间

为 Ts ,使用流水线后所用的时间为 Tk,则该流

水线的加速比为

Ts

S

Tk

中国科学技术大学 chapter03.24

25.1. 流水线各段时间相等(都是△ t )

– 一条 k 段流水线完成 n 个连续任务

所需要的时间为

Tk = (k + n-1)Δt

– 顺序执行 n 个任务

所需要的时间: Ts= nk△t

流水线的实际加速比为

nk

S

k n 1

中国科学技术大学 chapter03.25

26.– 最大加速比

nk

S max  lim k

n  k  n  1

当 n>>k时, S ≈ k

思考:流水线的段数愈多愈好?

中国科学技术大学 chapter03.26

27.2 .流水线的各段时间不完全相等时

– 一条 k 段流水线完成 n 个连续任务的实际加速比

k

n ti

S k

i 1

 t

i 1

i  (n  1) max(t1 , t 2 , , t k )

中国科学技术大学 chapter03.27

28. 效率

效率 :流水线中的设备实际使用时间与整个运行时间

的比值,即流水线设备的利用率 。

由于流水线有通过时间和排空时间,所以在连续

完成 n个任务的时间内,各段并不是满负荷地工作。

• 各段时间相等

– 各段的效率 ei 相同

nt n

e1 e2  ek  

Tk k n 1

中国科学技术大学 chapter03.28

29.– 整条流水线的效率 为

e1  e2    ek ke1 knt

E  

k k kTk

 可以写成

n

E

k n 1

 最高效率为

n

Emax  lim 1

n  k  n  1

当 n>>k时, E≈1 。

中国科学技术大学 29

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值