跳转至

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

  • 本质上都是拿个寄存器,存储每个操作出来的信号/结果。