The DLX, like the MIPS design, bases its performance on the use of an
instruction pipeline. In the DLX design this is a fairly simple one,
"classic" RISC in concept. The pipeline contains five stages: ;IF – Instruction Fetch unit/cycle : IR<-Mem(PC) : NPC<-PC+4 : Operation: Send out the PC and fetch the instruction from memory into the
Instruction Register (IR); increment the PC by 4 to address the next sequential instruction. The IR is used to hold the next instruction that will be needed on subsequent clock cycles; likewise the register NPC is used to hold the next sequential PC. ;ID – Instruction Decode unit : Operation: Decode the instruction and access the register file to read the registers. This unit gets instruction from IF, and extracts opcode and operand from that instruction. It also retrieves register values if requested by the operation. ;EX – Execution unit/effective address cycle : Operation: The
ALU operates on the operands prepared in prior cycle, performing one of the four functions depending on the DLX instruction type. : Memory Reference: Register–Register ALU instruction, Register–Immediate ALU instruction : Branch ;MEM – Memory access unit : The DLX instructions active in this unit are loads, stores and branches. : Memory reference: access memory if needed. If instruction is load, data returns from memory and is placed in the LMD (load memory data) register : Branch ;WB – WriteBack unit : Typically referred to as "the store unit" in modern terminology. Write the result into the register file, whether it comes from the memory system or from the ALU. ==See also==