📜  五级流水线的各种说明

📅  最后修改于: 2021-09-28 09:24:43             🧑  作者: Mango

让我们考虑将指令执行分解为五个阶段。下面给出这些。

  1. 取指令(IF):
    它将下一条预期指令读入缓冲区。
    IR → Mem [PC] ;
    PC → PC + 4 ; 
  2. 指令解码(ID):
    在这方面,有以下步骤:
    • 指令解码,其中确定操作码和操作数说明符。
    • 计算操作数,计算每个源操作数的有效地址。
    • Fetch Operands,其中从内存中获取每个操作数。
    A → Regs [IR6,  10] ;
    B → Regs [IR11, ...,  15] ;
    Immediate → (IR16)16## (IR16, ..., 31) 
  3. 执行指令(EX):
    它执行指示的操作。
    Memory ref:   ALUoutput  →  A + Immediate ;
    Reg-Reg ALU:  ALU  →  A func B ;
    Reg-Imm ALU:  ALUoutput  →  A op Immediate ;
    Branch:       ALUoutput  →  PC + Immediate;  Cond * (A op 0) 
  4. 内存访问/分支完成周期(MEM):
    它访问内存。

    Memory ref:  LMD  →  Mem [ALUoutput]  or Mem (ALUoutput)  →  B
    Branch:      if (cond) PC  →  ALUoutput 
  5. 写操作数 (WO) :
    它存储结果。
    Reg-Reg ALU:   Regs [R16, ...., 20]  →  ALUoutput ;
    Reg-Imm ALU:   Regs [R11, ..., 15] → ALUoutput ;
    Reg-Reg ALU:   Regs [R11, ...., 15]  →  LMD ;