Difference between revisions of "InOrder"

From gem5
Jump to: navigation, search
(Created page with 'DOCUMENTATION TODO: (1) Pipeline Stages -->First Stage (2) Resources (3) Resource Pool (4) Pipeline Definition (5) Instruction Schedules')
 
Line 1: Line 1:
DOCUMENTATION TODO:
+
This page provides a general overview of the InOrderCPU model, its pipeline stages, and its resources.
  
(1) Pipeline Stages
+
The relevant sources files are in src/cpu/inorder.
  
-->First Stage
+
== Pipeline Stages ==
 +
The InOrderCPU models 5-stage and 9-stage pipelines. The 5-stage pipeline is based on the 5-stage MIPS pipeline and has the following stages:
 +
* Instruction Fetch (IF)
 +
* Instruction Decode (ID)
 +
* Execute (EX)
 +
* Memory Access (MEM)
 +
* Register Write Back (WB)
  
(2) Resources
+
Relevant source files:
 +
* first_stage.[hh,cc]
 +
* pipeline_stage.[hh,cc]
  
(3) Resource Pool
+
== Pipeline Resources ==
 +
The following pipeline resources are defined for InOrderCPU:
 +
* Fetch Unit
 +
* Instruction Cache (I-Cache)
 +
* Branch Prediction Unit (BPred Unit)
 +
* Register File Manager (RF Manager)
 +
* Address Generation Unit (AGen Unit)
 +
* Integer Execution Unit (Int EXU)
 +
* Integer Multiply and Divide Unit (Int MDU)
 +
* Float Execution Unit (Float EXU)
 +
* Float Multiply, Divide, and Square Root Unit (Float MDS)
 +
* Data Cache (D-Cache)
 +
* Graduation Unit (Grad Unit)
  
(4) Pipeline Definition
+
Relevant source files:
 +
* resources/*.[hh,cc]
  
(5) Instruction Schedules
+
== Resource Pool ==
 +
@TODO
 +
 
 +
== Pipeline Definition ==
 +
@TODO
 +
 
 +
== Instruction Schedules ==
 +
Instruction scheduling is divided into a ''front-end schedule'' (IF and ID), which is uniform for all the instructions, and a ''back-end schedule'', which varies across the different instructions.
 +
 
 +
* Front-end Schedule
 +
** The front-end schedule comprises of the IF and ID stages
 +
*** IF
 +
**** NPC is updated by the Fetch unit
 +
**** Instruction fetch from the I-Cache is initiated
 +
*** ID
 +
**** Instruction fetch is completed by I-Cache
 +
**** Instruction decode is performed by the Decode unit
 +
**** Branch prediction is performed by the BPred unit
 +
**** Target PC is updated by the Fetch unit
 +
 
 +
* Back-end Schedule
 +
** The back-end schedule comprises of the ID, EX, MEM, and WB stages
 +
*** ID
 +
**** For non-store instructions, the source registers are read by the RF Manager
 +
**** For load instructions, address generation is performed by the AGEN unit and data read from the D-Cache is initiated
 +
**** The rest of the instructions are executed in the execution units
 +
***** Single cycle operations are sent to the integer EXU
 +
***** Execution is initiated for the multicycle/pipelined operations
 +
*** EX
 +
**** Execution is finished for the multicycle/pipelined operations
 +
**** For load instructions, data read from the D-Cache is completed
 +
**** For store instructions, the following tasks are performed
 +
***** The source registers are read by the RF manager
 +
***** Address generation is performed by the AGen unit
 +
***** Data write into the D-Cache is initiated
 +
*** MEM
 +
**** For store instructions, data write into the D-Cache is completed
 +
*** WB
 +
**** Destination registers are written into by the RF manager
 +
**** The instruction is graduated by the Grad unit
 +
 
 +
Relevant source files:
 +
* pipeline_traits.[cc,hh]

Revision as of 14:52, 26 September 2009

This page provides a general overview of the InOrderCPU model, its pipeline stages, and its resources.

The relevant sources files are in src/cpu/inorder.

Pipeline Stages

The InOrderCPU models 5-stage and 9-stage pipelines. The 5-stage pipeline is based on the 5-stage MIPS pipeline and has the following stages:

  • Instruction Fetch (IF)
  • Instruction Decode (ID)
  • Execute (EX)
  • Memory Access (MEM)
  • Register Write Back (WB)

Relevant source files:

  • first_stage.[hh,cc]
  • pipeline_stage.[hh,cc]

Pipeline Resources

The following pipeline resources are defined for InOrderCPU:

  • Fetch Unit
  • Instruction Cache (I-Cache)
  • Branch Prediction Unit (BPred Unit)
  • Register File Manager (RF Manager)
  • Address Generation Unit (AGen Unit)
  • Integer Execution Unit (Int EXU)
  • Integer Multiply and Divide Unit (Int MDU)
  • Float Execution Unit (Float EXU)
  • Float Multiply, Divide, and Square Root Unit (Float MDS)
  • Data Cache (D-Cache)
  • Graduation Unit (Grad Unit)

Relevant source files:

  • resources/*.[hh,cc]

Resource Pool

@TODO

Pipeline Definition

@TODO

Instruction Schedules

Instruction scheduling is divided into a front-end schedule (IF and ID), which is uniform for all the instructions, and a back-end schedule, which varies across the different instructions.

  • Front-end Schedule
    • The front-end schedule comprises of the IF and ID stages
      • IF
        • NPC is updated by the Fetch unit
        • Instruction fetch from the I-Cache is initiated
      • ID
        • Instruction fetch is completed by I-Cache
        • Instruction decode is performed by the Decode unit
        • Branch prediction is performed by the BPred unit
        • Target PC is updated by the Fetch unit
  • Back-end Schedule
    • The back-end schedule comprises of the ID, EX, MEM, and WB stages
      • ID
        • For non-store instructions, the source registers are read by the RF Manager
        • For load instructions, address generation is performed by the AGEN unit and data read from the D-Cache is initiated
        • The rest of the instructions are executed in the execution units
          • Single cycle operations are sent to the integer EXU
          • Execution is initiated for the multicycle/pipelined operations
      • EX
        • Execution is finished for the multicycle/pipelined operations
        • For load instructions, data read from the D-Cache is completed
        • For store instructions, the following tasks are performed
          • The source registers are read by the RF manager
          • Address generation is performed by the AGen unit
          • Data write into the D-Cache is initiated
      • MEM
        • For store instructions, data write into the D-Cache is completed
      • WB
        • Destination registers are written into by the RF manager
        • The instruction is graduated by the Grad unit

Relevant source files:

  • pipeline_traits.[cc,hh]