각 프로세서별로 별도의 캐시 메모리를 가지고 있는 공유 메모리 멀티프로세서에서, 한 명령어 피연산자의 복제본이 주기억장치에 하나, 그리고 각 캐시 메모리에 하나씩, 여러 개 존재할 수 있다. 이러한 상황에서 피연산자가 변경되면, 나머지 복제본 역시 변경되어야만 한다. 캐시 일관성은 공유된 피연산자의 값이 변경되면, 그 사실이 전체 시스템에 즉시 전파되는 것을 보장하는 하나의 질서이다.

캐시 일관성에는 다음 세 가지의 명확한 단계가 있다.

  1. 모든 쓰기 연산은 즉시 발생하는 것처럼 보인다.
  2. 모든 프로세스들은 독립되어 있는 각 피연산자들의 값이 정확히 같은 순서대로 변경되는 것을 본다.
  3. 다른 프로세스들은, 값들의 순서가 다른 것을 사실이라고 생각하는 피연산자를 볼 수 있을지도 모른다 (이것은 일관성이 없는 행동으로 간주된다).

2 단계의 행동과 3 단계의 행동 둘 모두에서, 프로그램은 틀린 데이터를 볼 수 있다. 컴퓨터 설계자들은 최근, 2 단계 행동을 다루는데 필요한 프로그래밍 규율이, 3 단계 행동을 다루는데 충분하다는 것을 깨닫게 되었다. 그러므로, 어떤 경우에는 같은 컴퓨터에서는 오직 1 단계와 3 단계 행동만이 보일 것이다.

출 처 : http://www.terms.co.kr/cachecoherence.htm

+ Recent posts