Previous | Next --- Slide 22 of 56
Back to Lecture Thumbnails
arcticx

A little confused about the diagram. When it is in the valid state, why BusWr still leads to valid state? Shouldn't it be changed to invalid since it is broadcasted from other processors?

arcticx

... Never mind. Didn't notice the note: A/B if event A observed by cache controller, the naction B is taken.

momoda

If this cache is write-allocate cache, when the cache is invalid, and there comes PrWr, then the cache state will become Valid. Is this right?

arcticx

@momoda I think it is right, as the data will be loaded into the cache first.

thomasts

The BusRd messages don't seem to do anything in this diagram. What's the purpose of sending those messages out?

EDIT: They have a purpose in the protocol described on slide 28, but not this one.

blairwaldorf

Does bus read getting data from remote caches generally mean "from main memory"?

ote

Based of my understanding of the A/B notation, I am confused on why when it is in the invalid state, and a PrWr is observed by the cache controller, does a BusWr action have to be taken?

trappedin418

@ote If a the controller observes a write, it is important that we move all caches that are in valid state to invalid state (the blue line). I think the confusing part about this scheme is that we are allowed to write to a cache line WITHOUT having the most-recent updated values of that line.

xingdaz

Kayvon said "If the processor writes, it will just write to memory without bringing in the line". So if the processor is in Invalid, i.e. nothing in the cache line or stale data in the cache line, will it overwrite the data in memory with stale data? If not, and the processor does nothing for that PrWr, why is broadcasting BusWr necessary at all?

monkeyking

If using write-allocate policy, when the processor is in invalid state and wants to write, it should first perform a read and becomes valid state. Then it performs a write so it should stay in valid state.

xingdaz

@monkeyking, the slide says "**Assume write no-allocate policy".

cyl

Does the notation PrRd/BusRd means: If I am in invalid state and my processor reads, I have to send a message to the bus and tell other processor to read?

althalus

@cyl, I think it means that in invalid state when the processor want to read, the bus will have to read from main memory.

mallocanswer

@xingdaz, suppose we want to write 1 to X and X is not in the local cache. So the processor is in invalid state. However, when the processor writes 1 to X, it needs to notify other processors because they may have a local copy in their caches.