Skip to content

TheGrayFrost/Tomasulo-s-Algorithm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Tomasulo's Algorithm

This project aims to implement the Tomasulo's Algorithm. The hardware is presented in the Assignment Description as follows:

  1. Same cycle issue-dispatch: Not allowed
  2. Same cycle free-allocate: Not allowed
  3. Same cycle capture-dispatch: Not allowed
  4. Dispatch precedence: RS0 > RS1 > RS2, RS3 > RS4

Additional implementational assumptions made:

  1. The operational units are pipelined, ie there is an add pipeline, a sub pipeline a mul pipeline, a div pipeline.
  2. At most one instruction from add/sub and one from mul/div reservation stations are allowed to dispatch in one cycle.
  3. In case of multiple pipelines broadcasting in same cycle, only the highest broadcast precedence (mul > add, RS3 > RS4, RS0 > RS1 > RS2) can broadcast and the others ready-to-broadcast pipelines are stalled.

To run the code:

  1. Compile as g++ -std=c++11 hpca.cpp -o hpca
  2. Run with input in a text file (say ip.txt) as ./hpca < ip.txt

About

Implemented Tomasulo's Algorithm as part of High Performance Computer Architecture Course

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages