Hi
I am trying to make the O3 CPU work with Ruby, but I am running in to
problem with implementation of Locked RMW in Ruby. Currently, when the
read part of RMW is issued, Ruby puts the block on a special list. The
block is taken of that list when the write part of RMW is issued. If any
other processor issues a read / write request for that block in between
the RMW's read and write operations, the request is delayed till the block
is unlocked. This means that the RMW can never fail and the write request
needs to issued always.
Reading the code from the classic memory system, it seems that it allows
for the block to be given in case some other processor requests for it.
This means that classic memory system allows RMW to fail.
My question is which of these behavior is actually implemented in x86? As
I understand LL/SC is allowed to fail in MIPS or Alpha architecture. I
would assume that same holds true for x86 as well. Is that the case or
not?
Thanks
Nilay
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev