Cache coherence in large-scale shared-memory multiprocessors