- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
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 3t 中国科学技术大学 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 相同 nt n e1 e2 ek Tk k n 1 中国科学技术大学 chapter03.28
29 .– 整条流水线的效率 为 e1 e2 ek ke1 knt E k k kTk 可以写成 n E k n 1 最高效率为 n Emax lim 1 n k n 1 当 n>>k时, E≈1 。 中国科学技术大学 29