How to check correctness of your simulator If you pass all these conditions, your simulator is mostly correctly working.

If you can answer "yes" for all the following answers, you are mostly likely on the right track. At least 80% of grade is based on relative comparisons based on the following conditions.

  • 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?