Hi ,
This may sound very generic, but i want to try some experiments with the out of 
order implementation. I came across few scenarios, which are listed below (any 
input would be helpful):
1. lets consider the following set of instructions (an example which was made 
up):
Address     instr  Operands
4357136    cmp {"x1", "#16"}
4357140    cmp {"x2", "#16"}
4357144    bhi   {"4387895"}

So if we have two execution units which can execute integer instructions, then 
both "cmp" instruction (4357136 and 4357140) could be issued to the execution 
unit. But an "cmp" instruction will update N,Z,C,V flags which inturn are used 
for evaluating conditional flags (eq_ne, hi_ls, cs_cc etc). 
So, can these two cmp be issued to execution units in the same cycle? If so, 
are the N,Z,C,V for each cmp only updated after inorder commit? How is it 
handled ? (do we use temp registers for holding each N,Z,C,V value?)

2. In speculative execution, how are stores implemented? do we place them into 
a store buffer and write it to memory once its commited?   

Any input would be appreciated. 
Regards,
Tom
_______________________________________________
gem5-users mailing list -- gem5-users@gem5.org
To unsubscribe send an email to gem5-users-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to