Cache coherence for large scale shared memory multiprocessors