Dear all,

I am implementing a uarch idea on the base code of O3 model, MIPS is my target 
ISA. I found O3 core squashes instruction in delay slot of mispredicted branch. 
The squashed delay slot will be fetched again and is committed at the end of 
second round execution. Front-end fetches branch target after delay slot (npc 
of delay slot has been pointed to branch target).

For InOrder core, both mispredicted branch and its delay slot instruction are 
all committed, instructions located after delay slot in program order are 
squashed. Front-end will fetch from branch target.

I guess the reason for O3 model executes twice for delay slot instruction of 
mispredicted branch is to unify the processing method for branch misprediction, 
for both with-delay-slot ISAs and non-delay-slot ISAs.

Any comments will be appreciated.

----
        '              Huang He (Henry)
       /-\\            CPU Design and Verification
      /---\'\          Advanced Micro Devices, Inc
     /-----\'`\        AMD Technology Development (Beijing) Co., Ltd.
    /-------\'`,\      Beijing, China
   /---------\' ,`7    O: +(86) 10 62801421  M: +(86) 18616862712
  /-----------\' /
 /-------------\/      [cid:[email protected]]   Visit us at: 
Facebook<https://www.facebook.com/AMD> | amd.com<http://www.amd.com/>

<<inline: image001.jpg>>

_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to