question on multiprocessor use of private caches

A student writes:

	Hello Dr. Patt,

	I have a question regarding write back policy.
	If I understood right, in this policy we just write back the data 
	to the cache, and set the dirty bit in order to update that memory 
	location later. 

You understand correctly.

	My question is when do we exactly write that data to the main memory? 
	Is it just when we want to bring out the corresponding cache line from 
	the cache?

Usually yes, ...unless of course some other processor needs the contents of
that location.

	If that's the case, suppose some memory location is resident in the 
	cache, and it gets updated several times without being written to the 
	main memory. 	What would happen if some other processor (/or any 
	other devices) needed that intermediate data?

Then we would write the data out at that time.  There are several mechanisms
that do exactly that: snoopy cache, broadcast invalidate, directory schemes,
etc.  How they work: that we will spend a lecture on before the end of the
semester.

Excellent question.  Thanks for asking.

Yale Patt

	Thanks,
	<<name withheld to protect the student who wants the MP lecture now>>