Difference between revisions of "InOrder ToDo List"
From gem5
					
										
					
					 (Created page with ''''Python Configurability'''   InOrderCPU configuration (uniprocessor options)      * MTApproach - Multi-Threading (MT) Approach     * Resource - Resource Configuration (will eve…')  | 
				|||
| (11 intermediate revisions by 3 users not shown) | |||
| Line 1: | Line 1: | ||
| − | + | ==Python Configurability==  | |
| + | * Resource Configuration - How can we specify what resources are instantiated via the Python config files?  | ||
| + | ** ResourceType - Type of resource (Enum type)  | ||
| + | *** ResourceParams - Parameters for this type of resource  | ||
| + | *** Request - List of requests for this type of resource (Enum type)  | ||
| + | **** Latency - operation latency and issue latency (intra/inter thread)  | ||
| + | *** Count - Number of such resource type  | ||
| + | * Pipeline Description  | ||
| + | ** InstSchedule - Instruction schedule specified as a vector of InstClassSchedule  | ||
| + | *** InstClassSchedule - Vector of schedules per instruction class - load/store, Int execute, FP execute, specialized inst, etc. (do we still want a distinction between front end and back end schedules?)  | ||
| + | ** ResourceRequestList - Vector of ResourceRequest (per stage?)  | ||
| + | ***  ResourceRequest - Vector of requests for resources  | ||
| + | ** ResourceType/Request options  | ||
| − | + | ==Resources==  | |
| + | * Execution Unit  | ||
| + | ** Fold Address Generation Unit (AGEN) into the EXE  | ||
| + | ** Pass a Function Unit Pool object to the EXE and specify what functions can operate through a specific unit (similar to O3)  | ||
| − | |||
| − | |||
| − | + | ==Simulation Speed==  | |
| − | + | * Instruction Sleeping  | |
| − | + | ** Sleep instructions waiting for an long-delay event (instead of constantly ask a resource if it's complete  | |
| − | |||
| − | |||
| − | + | * Event Sleeping  | |
| + | ** Sleep CPU w/no activity - Implemented on a coarse-grain level, but Activity object can be tuned to be exact.  | ||
| − | + | * Resource Pool  | |
| − | + | * Instead of broadcasting all events to the resource pool, have resources declare what functions they have virtual functions for (or auto-detect this) and then only broadcast to the right set of resources every time (e.g. the BranchPredictor may not care about a Trap Event)  | |
| − | |||
| − | |||
| − | + | ==ISA Support==  | |
| + | *ALPHA - '''completed'''  | ||
| + | *MIPS - '''completed'''  | ||
| + | *SPARC - ''partially completed'' (not currently being developed)  | ||
| + | *ARM - not completed - ''Support for Micro-Ops Needed (Template code from Simple or O3 CPU?)''  | ||
| + | *X86 - not completed - ''Support for Micro-Ops Needed (Template code from Simple or O3 CPU?)''  | ||
| + | *POWER - not completed  | ||
| + | ==Full System Support ==  | ||
| + | * InOrder can boot Linux, but testing for benchmark suites  | ||
| + | ** PARSEC  | ||
| + | ** SPLASH2  | ||
| + | ** SPEC2K6  | ||
| − | + | == Checkpointing ==  | |
| + | * The serialize/unserialize functions are currently unimplemented in InOrder  | ||
| − | + | == SwitchOut ==  | |
| − | + | * Implement the drain function for InOrder  | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
Latest revision as of 06:57, 19 June 2011
Contents
Python Configurability
-  Resource Configuration - How can we specify what resources are instantiated via the Python config files?
-  ResourceType - Type of resource (Enum type)
- ResourceParams - Parameters for this type of resource
 -  Request - List of requests for this type of resource (Enum type)
- Latency - operation latency and issue latency (intra/inter thread)
 
 - Count - Number of such resource type
 
 
 -  ResourceType - Type of resource (Enum type)
 
-  Pipeline Description
-  InstSchedule - Instruction schedule specified as a vector of InstClassSchedule
- InstClassSchedule - Vector of schedules per instruction class - load/store, Int execute, FP execute, specialized inst, etc. (do we still want a distinction between front end and back end schedules?)
 
 -  ResourceRequestList - Vector of ResourceRequest (per stage?)
- ResourceRequest - Vector of requests for resources
 
 - ResourceType/Request options
 
 -  InstSchedule - Instruction schedule specified as a vector of InstClassSchedule
 
Resources
-  Execution Unit
- Fold Address Generation Unit (AGEN) into the EXE
 - Pass a Function Unit Pool object to the EXE and specify what functions can operate through a specific unit (similar to O3)
 
 
Simulation Speed
-  Instruction Sleeping
- Sleep instructions waiting for an long-delay event (instead of constantly ask a resource if it's complete
 
 
-  Event Sleeping
- Sleep CPU w/no activity - Implemented on a coarse-grain level, but Activity object can be tuned to be exact.
 
 
- Resource Pool
 - Instead of broadcasting all events to the resource pool, have resources declare what functions they have virtual functions for (or auto-detect this) and then only broadcast to the right set of resources every time (e.g. the BranchPredictor may not care about a Trap Event)
 
ISA Support
- ALPHA - completed
 - MIPS - completed
 - SPARC - partially completed (not currently being developed)
 - ARM - not completed - Support for Micro-Ops Needed (Template code from Simple or O3 CPU?)
 - X86 - not completed - Support for Micro-Ops Needed (Template code from Simple or O3 CPU?)
 - POWER - not completed
 
Full System Support
-  InOrder can boot Linux, but testing for benchmark suites
- PARSEC
 - SPLASH2
 - SPEC2K6
 
 
Checkpointing
- The serialize/unserialize functions are currently unimplemented in InOrder
 
SwitchOut
- Implement the drain function for InOrder