Processor Structure
CPU Design
- 基本的指令操作系统 I 实验已经做了,可以对着 CPU 连线图和 risc-v green card 来模拟每个操作的流程。
Pipelining
Outline
- Throughput(吞吐量, TP): \(\frac{1s}{time \ \ to \ \ run \ \ a \ \ single \ \ instruction}\).
- GIPS: 吞吐量单位(10^9), Giga-Instructions Per Second.
- pass time: 从第一条指令开始到整体完全进入的时间
- empty time: 从流水线充满到最后出结果的时间(排空)
- 流水线的思想是,把一条指令分成多个阶段,在执行多条指令时,保证每个阶段都在运行状态。即:第一条指令完成第一个阶段进入第二个阶段时,第二条指令进入第一个阶段。
Drawbacks
- 增加流水线数,会提升系统的吞吐量,但是过深的流水线也会导致系统性能的下降。
- 在流水线中,必须保证后面的阶段不会影响前面的阶段,不然后面的阶段回过头来的时候,前面的阶段已经在跑下一个指令了。
Classes
- Static Pipelining:只能对同一种类型的指令进行 pipelining,在处理好一类指令以后,要等流水线排空,随后再进行下一指令。
- Dynamic Pipelining
- 不同指令间可以任意地重复相交
- 需要的硬件更多、时间顺序更低
- Component / Processor / Inter processor level pipelining:分别表示组件、处理器、整个宏观计算器的流水线并行,从微观到宏观,依次进行操作阶段并行、指令并行、处理器并行(每个处理器处理一个任务)。
- Linear / Nonlinear Pipelining:前阶段是否会依赖后阶段,若依赖,那么在后阶段回溯之前,前阶段不能处理新指令。
- Ordered / Disordered Pipelining:是否按照阶段划分的顺序进行
- Scalar / Vector processor :处理器进行矢量/标量计算
Process
- IF: Instruction fetch
- ID: Instruction decode & register read
- EX: Execute operation & calculate address
- MEM: Access memory oprand
- WB: Write result back to register
- 本质上都是拿个寄存器,存储每个操作出来的信号/结果。