Difference between revisions of "InOrder Resource-Request Model"
From gem5
Line 1: | Line 1: | ||
== Overview == | == Overview == | ||
− | + | Resources consists of any CPU object that an instruction wants to access. This could be a branch predictor, a cache, a execution unit, etc. In the InOrder CPU model we abstract what a resource is into a generic "Resource" class that all specific resources must derive from. In any given pipeline stage, an instruction will request that a resource perform a specific operation on it's behalf. If an instruction can complete all it's resource requests for a given stage, then it may pass to the next stage. | |
'''Relevant source files:''' | '''Relevant source files:''' |
Revision as of 13:25, 19 January 2010
Contents
Overview
Resources consists of any CPU object that an instruction wants to access. This could be a branch predictor, a cache, a execution unit, etc. In the InOrder CPU model we abstract what a resource is into a generic "Resource" class that all specific resources must derive from. In any given pipeline stage, an instruction will request that a resource perform a specific operation on it's behalf. If an instruction can complete all it's resource requests for a given stage, then it may pass to the next stage.
Relevant source files:
- resource.[hh,cc]
- resources/*.[hh,cc]
- pipeline_traits.[hh,cc]
- cpu.[hh,cc]
Resource-Request Model
Resource Internals
Slots
Execute
Predefined 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)
- Execution Unit (EXU)
- Integer Multiply and Divide Unit (Int MDU)
- Data Cache (D-Cache)
- Graduation Unit (Grad Unit)