Snooping works. Need to implement invalidation of dirty blocks. All four dual* testcases, test.coherence.asm, test.coherence2.asm passing