Previous | Next --- Slide 52 of 62
Back to Lecture Thumbnails
pk267

Here, Prof Kayvon said that once everyone has ACK-ed a BusRdX, the write is committed. But, say P1 sends a request for BusRdX, everyone ACKs and is now waiting for the response. While it is waiting, another processor P2 sends out a BusRdX. Now what does P1 respond? I know the answer for atomic bus case: the transaction is not complete until P1 writes the value it wanted to write so that even if its value is invalidated, the correct value is flushed to the memory. But could someone please explain what will be the answer for non-atomic bus?

CSGuy

@pk267 I think the answer is that if a cache needed to make a BusRdX request before another one is finished, it would recognize that such a request would be conflicting by looking at the request table and retry later.

kayvonf

@CSGuy, @pk267. Yes, what you're proposing is the "simple policy" on this slide. The conflicting write is not allowed.