Hi, At the beginning of C.3.3 we have supposed the cache line containing "a" resides _only_ in _CPU1’s_ cache. I think this is why _CPU0_ has to send a "_read_ invalidate message" to _retrieve_ the cache line and invalid CPU1's cache line. However, the answer says the reason is the cache line in question contains more than just the variable a. I can't understand the logical relationship between this answer and the question. Am I missing something here? Thanks. Regards, Hao Lee