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

Reply via email to