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