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 -- [email protected]
To unsubscribe send an email to [email protected]
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s