一片自留地 流水线,ILP,IPC

magicyang · 2020年11月24日 · 674 次阅读

流水线技术是一种将每条指令分解为多步,并让各步操作重叠,从而实现几条指令并行处理的技术。程序中的指令仍是一条条顺序执行,但可以预先取若干条指令,并在当前指令尚未执行完时,提前启动后续指令的另一些操作步骤。这样显然可加速一段程序的运行过程。
简单的 MIPS5 级流水线包括:1.取指令;2.解码;3.ALU;4.访存;5.寄存器回写。
通常的 RISC,CISC 指令有 10-14 个流水线。

ILP :Instruction-Level-Parallelism 指令层并行.
计算机的并行级是在指令层并行,也就是说计算机在同一时间可以执行两条以上的指令.

IPC:Instructions Per Cycle 每周期指令

理解 ILP 需要理解指令分支预测。
理解寄存器只有 RAW(read after write),才会造成 true dependency。
可以通过使用重命名寄存器的方式,来规避 false dependency。

理解 ILP != IPC。
ILP 是性能上限,ILP 的性能是建立在完美分支预测和无限并发的前提下。
在实际的硬件中,ALU 的数目,寄存器的数目,分支预测的准确性都会影响实际结果。
IPC 则是特定硬件的指标。
IPC 高不代表性能就一定高,如 X86 的指令更加复杂,而 RISC 的指令则相对简单,不同架构下的 IPC 不完全具有可比性。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册