How to check correctness of your simulator
We are currently preparing a sample output. While you are waiting for samples if you can answer "yes" for all the following answers, you are mostly likely on the right track.
As you increase KNOB_GHR_LENGTH from 4 to 14, do you see performance improvement? (for a long trace)
As you increase KNOB_ISSUE_WIDTH from 1 to 3, do you see
IPC(1) << IPC(2) << IPC(3) ?
As you increase KNOB_ISSUE_WIDTH from 1 to 3, do you see
(IPC(2) - IPC(1)) > (IPC(3)-IPC(2)) ?
Do you see
IPC (inorder scheduling) < IPC (out of order scheduling) ?
Do you see in order retirement debug messages for both in order scheduling and out of order scheduling when you turn on debug messages?
Do you see out of order issue debug messages for out of order scheduling when you turn on debug messages?
Do you see in order issue debug messages for in order scheduling when you turn on debug messages?