Appendix Pipline
ISA的分类

性能分析
Throughput 指令数/运行时间 \(TP=\frac{n}{T}\)
- 如果是普通的流水线\(T=(m+n-1)\Delta t_0\)
Speedup 串行执行的时间(无流水线)/运行时间 \(S_p=\frac{n\sum t_i}{T}\)
Efficiency 部件占时间的百分比 \(\eta=\frac{n\sum t_i}{mT}\times 100\%\)
时空图(和stall的流水线画法不一样!):
- 横轴是时间, 纵轴代表使用的不同部件
- 纵轴高度是部件数(流水线级数) \(m\)
- 横轴的方框数是指令数\(n\) 长度代表时间
各阶段时间相同
如图,标号相同的框对应一条指令

\[
S_p=\frac{nmt}{(m+n-1)t}=\frac{mn}{n+m-1}\to m
\]
各阶段时间不同
S2是3t,其他阶段是t 那么可以看成头尾(m-1)t 加上n个S2
\[
TP=\frac{n}{(m-1)t+n\cdot 3t} \to \frac{1}{3t}
\]

静态双功能流水线

所有阶段都是t. 横着长度为4格代表4条指令 如果非流水线,总时间就是24(24格) Sp=24/15 E=24/(15*5)=32%
注意这里第二段时间是2t, 所以框要更长
冒险
- RAW (真的冒险)
- WAR
- WAW
WAR和WAW在单纯的pipline里面没有影响,乱序执行的时候需要考虑。这里重点解决RAW
MEM/WB.rs2=ID/EX.rd
控制冒险
Static branch prediction:
