2017-10-08 2 views
1

CPU의 L1 캐시 메커니즘을 이해하려고합니다. L1 캐시 라인에서 정렬 된 데이터 구조 캐시가 무효화되는 방법

  1. 이다의 CPU는 4 개의 코어를 가지고 있다고 가정하자 및 L1 캐시 라인 크기MESI 프로토콜를 사용하여 각 코어에 대한 N 엔트리와 64 바이트이다.

  2. 따라서 메모리 참조는 캐시 라인 크기에 맞게로드됩니다 (참조는 정확히 64 바이트를 보유하는 일종의 데이터 구조입니다).

  3. 이 때, 코어 -은이 캐시 라인에서 4 바이트 (오프셋)를 수정합니다.
  4. 그런 다음, 코어 -1은 동일한 메모리 위치를 참조합니다. 따라서 Cache Coherence Protocol은이 작업을 식별하고 Core-0의 캐시 라인을 Core-1로 복사합니다 (기본 메모리에서 읽는 것을 방지합니다). 코어 1 따라서 4 바이트를 수정

  5. 이 캐시 라인 (15 오프셋). 캐시 일관성 프로토콜 코어-0 또는하지의 캐시 라인을 무효화 :

내 질문은 이것이다? 변경 사항은 다른 오프셋에 있습니다.

또한이 시점에서 누군가이 캐시 라인 참조에 대한 캐시 일관성 프로토콜 (MESI) 상태를 알 수 있습니까?

답변

1

MESI 프로토콜은 캐시 라인에서 작동하므로 단일 캐시 라인 내의 오프셋은 중요하지 않습니다.

core-1이 처음 코어 0에서 캐시 라인을 요청하면이 코어는 복사되고 두 코어의 상태는 S (공유)으로 설정됩니다. 코어 -1이 캐시 라인을 수정할 때 코어 -1의 캐시 라인은 M (수정 됨)으로 설정되고 코어 0의 경우 (유효하지 않음)으로 설정됩니다.

관련 문제