Difference between revisions of "InOrder"
From gem5
(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: | ||
− | + | 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] |
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.
Contents
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
- IF
- The front-end schedule comprises of the IF and ID stages
- 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
- ID
- The back-end schedule comprises of the ID, EX, MEM, and WB stages
Relevant source files:
- pipeline_traits.[cc,hh]