cache money
This project began in a Computer Architecture class, where we studied cache systems and processes. In this project, we were specifically looking at complex branching systems, where a computer makes a judgement about what is in the cache based on past actions. We took hundreds of thousands of branch instructions, like below:
...and then make calculated guesses based on the GShare Global Branch Predictor model. The program creates a user designated branch history array of size N. It then initializes all spots on the array as Weakly Taken (a level of 2 on a 0 - 3 scale of Strong Not Taken, Weak Not Taken, Weak Taken, Strong Taken). The branch address is then bitshifted and XORed with the branch history (of size N) and the result (of size M) is then updated and cached. The program analyzes user-inputted M and N values and outputs the following:
Where the percentage is the Miss Ratio of all the instructions. You can find more information here on my github!