📜  五级管道的各种说明

📅  最后修改于: 2021-06-29 04:53:24             🧑  作者: Mango

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

  1. 提取指令(IF):
    它将下一条预期指令读入缓冲区。
    IRMem [PC] ;
    PCPC + 4 ; 
  2. 指令解码(ID):
    在此,执行以下步骤:
    • 指令解码,用于确定操作码和操作数说明符。
    • 计算操作数,其中计算每个源操作数的有效地址。
    • 提取操作数,其中从内存中提取每个操作数。
    ARegs [IR6,  10] ;
    BRegs [IR11, ...,  15] ;
    Immediate(IR16)16## (IR16, ..., 31) 
  3. 执行指令(EX):
    它执行指示的操作。
    Memory ref:   ALUoutputA + Immediate ;
    Reg-Reg ALU:  ALUA func B ;
    Reg-Imm ALU:  ALUoutputA op Immediate ;
    Branch:       ALUoutputPC + Immediate;  Cond * (A op 0) 
  4. 内存访问/分支完成周期(MEM):
    它访问内存。
    Memory ref:  LMDMem [ALUoutput]  or Mem (ALUoutput)B
    Branch:      if (cond) PCALUoutput 
  5. 写操作数(WO):
    它存储结果。
    Reg-Reg ALU:   Regs [R16, ...., 20]ALUoutput ;
    Reg-Imm ALU:   Regs [R11, ..., 15]ALUoutput ;
    Reg-Reg ALU:   Regs [R11, ...., 15]LMD ;