Coerência de cache

Num multiprocessador de memória partilhada com uma memória cache separada para cada processador , é possível ter muitas cópias de qualquer operando de instrução : uma cópia na memória principal e uma em cada memória cache. Quando uma cópia de um operando é alterada, as outras cópias do operando também devem ser alteradas. A coerência da cache é a disciplina que assegura que as alterações nos valores dos operandos partilhados são propagadas pelo sistema de forma atempada.

Existem três níveis distintos de coerência da cache:

  1. Todas as operações de escrita parecem ocorrer instantaneamente.
  2. Todos os processos vêem exactamente a mesma sequência de alterações de valores para cada operando separado.
  3. Processos diferentes podem ver um operando assumir sequências de valores diferentes. (Isto é considerado comportamento não-coerente.)

Tanto no comportamento do nível 2 como no comportamento do nível 3, um programa pode observar dados fora de moda. Recentemente, os designers de computadores perceberam que a disciplina de programação necessária para lidar com o comportamento do nível 2 é suficiente para lidar também com o comportamento do nível 3. Portanto, em algum momento somente o comportamento de nível 1 e nível 3 será visto em máquinas.