메모리 일관성

Memory coherence

메모리 일관성은 두 개 이상의 프로세서 또는 코어가 [1][2][3][4]공통 메모리 영역을 공유하는 컴퓨터 시스템의 설계에 영향을 미치는 문제입니다.

단일 프로세서 시스템(오늘날 용어로는 코어가 1개밖에 존재하지 않음)에서는 모든 작업을 수행하는 처리 요소는 1개뿐이며, 따라서 특정 메모리 위치에서 읽거나 쓸 수 있는 처리 요소는 1개뿐입니다. 결과 값이 변경되면 캐시된 경우에도 해당 메모리 위치의 이후 모든 읽기 작업에 업데이트된 값이 표시됩니다.

반대로 멀티프로세서(또는 멀티코어) 시스템에서는 2개 이상의 처리요소가 동시에 동작하기 때문에 같은 메모리 위치에 동시에 액세스 할 수 있습니다.이들 중 누구도 이 위치의 데이터를 변경하지 않으면 데이터를 무제한으로 공유하고 원하는 대로 캐시할 수 있습니다.그러나 위치를 업데이트하면 다른 복사본은 로컬 캐시에 있는 오래된 복사본에서 작업할 수 있습니다.그 결과, 모든 프로세싱 요소에 공유값의 변경을 통지하기 위해 어떤 스킴이 필요하다.그 스킴은 메모리 일관성 프로토콜로 알려져 있으며, 그러한 프로토콜이 채용되면 시스템은 일관성 있는 메모리를 갖는 것으로 알려져 있다.

메모리 일관성의 정확한 성격과 의미는 일관성 프로토콜이 구현하는 일관성 모델에 의해 결정됩니다.올바른 동시 프로그램을 작성하기 위해 프로그래머는 시스템에 사용되는 정확한 일관성 모델을 알고 있어야 합니다.

예를 들어 하드웨어에 구현된 경우 일관성 프로토콜은 디렉토리 기반 또는 스누핑 기반(스니핑이라고도 함)일 수 있습니다.특정 프로토콜에는 MSI 프로토콜과 그 파생 모델인 MESI, MOSI MOESHI가 포함됩니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Censier, L.M.; Feautrier, P. (December 1978). "A New Solution to Coherence Problems in Multicache Systems". IEEE Transactions on Computers. C-27 (12): 1112–18. doi:10.1109/TC.1978.1675013.
  2. ^ Smith, Alan Jay (September 1982). "Cache Memories". ACM Computing Surveys. 14 (3): 473–530. doi:10.1145/356887.356892.
  3. ^ Li, Kai; Hudak, Paul (November 1989). "Memory coherence in shared virtual memory systems". Transactions on Computer Systems. 7 (4): 321–59. doi:10.1145/75104.75105.
  4. ^ Stenstrom, Per (June 1990). "A survey of cache coherence schemes for multiprocessors". IEEE Computer. 23 (6): 12–24. doi:10.1109/2.55497.