CPU Project Calendar (sortof)
Looking at this whole project at once is a bit intimidating, so I split it up into a few different stages.
- Overall Architecture
- Concrete design parameters
- Number of functional units and their partitioning
- Major units
- Busses between units
- ISA (likely to be a subset of the M-word)
- Scheduling algorithm
- Do some quantitative analysis to back up design choices
- At this point, I should have a bunch of nifty drawings and all-around fuzzy feelings about the project
- Basic Processor
- Implement instruction decode for basic arithmetic instructions
- Implement 4-issue scheduling hardware
- Dependency FIFOs
- Register file
- Re-Order Buffer
- Write-Back bus arbitrator
- Implement basic ALU functional units
- Bypass hardware
- Instruction memory (trivial)
- Trackers, trackers, and more trackers
- Make sure to have good debugging information
- Possibly implment a transaction checker
- At this point, I should have a good testbench environment and be able to calculate the fibbonacci sequence along with some other basic programs
- Branches
- Implement branch functional unit
- branch
- jump
- trap
- Implement branch prediction unit
- Branch prediction table
- Branch target buffer
- Return address stack
- Implement branch-misprediction rollback mechanism (should be trivial)
- Load/Store + Cache
- Implement Load/store functional unit
- Implement data and instruction caches
- Implement bus interface
- Implement cache system instructions
- TLB + interrupts/exceptions + Finish implementing all instructions
- TLB
- interrupts/exceptions
- finish all instructions
- Floating Point Units?
- This would be nifty. We'll see how much space is left.
- At this point, I should have a working processor. Pat self on back.
0 Comments:
Post a Comment
<< Home