计算机系统结构 流水线
TODO
把最后列表里列的搞懂
重新梳理一下流水线
把课内的课件整理一下:
流水线技术定义:把重复的过程分解为若干个子过程
流水线的时空图:
-
纵向:一条子指令按运行顺序使用到的硬件
-
横向:时间
吞吐率:\(TP = \frac{n}{T_k}\)
- \(n\): 完成的任务数
- \(T_k\): 完成n个任务所花时间
加速比:\(S = \frac{T_s}{T_k}\)
流水线的实际吞吐率:\(TP = \frac{n}{(k + n - 1) \delta t}\)

最大吞吐率:\(TP_{max} = \lim_{n \rightarrow \inf} \frac{n}{(k+ n-1) \delta t} = \frac{1}{\delta t}\)
另外,还有各段时间不完全相等的流水线,此时的实际吞吐率:\(TP = \frac{n}{\sum_{i = 1}^k \delta t_i + \max(\delta t_1, ..., \delta t_k)}\)
最大吞吐率:\(TP_{max} = \frac{1}{\max(\delta t_1, ..., \delta t_k)}\)
加速比:\(S = \frac{T_s}{T_k}\)
- \(T_s\) 不使用流水线
- \(T_k\) 使用
还有效率啥的,懒得记了
- 数据相关
- 名相关
- 三个冒险
- RAW 写后读
- 旁路
- load-use hazard
- 分支延迟
- 分支预测
- 延迟槽