1. Cache Coherence란 무엇인가?
캐시 일관성(Cache Coherence) 문제는 다중 프로세서 시스템에서 발생한다.
• 문제:
여러 프로세서가 공유 메모리를 캐싱할 때, 동일한 메모리 위치에 대해 다른 값을 관찰할 수 있다.
• 예: CPU A와 CPU B가 각각 자신의 캐시에서 동일한 메모리 위치를 읽고, 한 프로세서가 값을 변경했지만 다른 프로세서가 이를 반영하지 못하는 상황.
• Cache Coherence 정의:
• “메모리 시스템은 최근에 기록된 값만 반환해야 한다.”
• 하지만 Coherence는 “어떤 값을 반환할 수 있는가?“라는 질문에 답하고, Consistency는 “언제 값을 반환하는가?“를 다룬다.
2. Coherence의 세 가지 속성
캐시 일관성을 유지하려면 다음 세 가지 조건이 만족되어야 한다:
1. Reads Follow Writes:
• 한 프로세서 가 주소 에 값을 썼다면, 가 나중에 읽을 때 항상 그 값을 읽어야 한다.
2. Writes Propagate:
• 이 에 값을 쓰고, 가 이를 읽을 때 쓰기와 읽기 사이에 다른 쓰기가 없다면, 는 의 값을 읽어야 한다.
3. Write Serialization:
• 동일 주소에 대한 모든 쓰기는 일관된 순서로 모든 프로세서에게 보여야 한다.
• 쓰기의 순서는 프로세서가 아닌 메모리 시스템이 결정.
예시: 그림 5.39
• Step 1: CPU A가 X=0을 읽음.
• Step 2: CPU B가 X=0을 읽음.
• Step 3: CPU A가 X=1을 메모리에 씀.
• CPU B가 X를 읽을 때 반드시 1을 관찰해야 한다.
3. Coherence를 보장하는 두 가지 방법
1. Migration (이동):
• 데이터를 한 프로세서의 로컬 캐시로 이동시킴.
• 장점:
• 데이터 접근 지연 최소화.
• 공유 메모리 대역폭 요구량 감소.
2. Replication (복제):
• 공유 데이터의 복사본을 여러 캐시에 저장.
• 장점:
• 여러 프로세서가 동시에 읽는 데이터를 병목 없이 처리 가능.
이 두 가지는 Cache Coherence Protocols에 의해 관리된다.
4. Cache Coherence Protocols
1) Snooping Protocols (버스 감시 프로토콜):
• 동작 원리:
모든 캐시가 공유된 버스 또는 네트워크를 통해 메모리 상태를 모니터링.
• 캐시는 특정 데이터 블록의 복사본을 소유한 경우, 이를 확인하고 상태를 업데이트.
• 특징:
• 단순하지만 확장성 제한 (버스의 대역폭).
2) Directory-Based Protocols:
• 동작 원리:
각 메모리 블록에 대한 디렉토리를 유지하여 어떤 캐시가 블록의 복사본을 소유하는지 추적.
• 디렉토리는 중앙화된 테이블로 구성.
• 특징:
• 확장성 우수하지만 추가 오버헤드 존재.
5. Snooping-Based Protocol: Invalidation
Write-Invalidate Protocol:
• 한 프로세서가 쓰기를 수행하면, 다른 캐시에 저장된 동일 데이터의 복사본을 무효화.
• 동작 과정:
• 프로세서가 데이터를 쓰기 전에 독점적인 접근 권한을 가져야 함.
• 다른 프로세서가 데이터를 읽으려면 새 복사본을 메모리에서 가져옴.
예시: 그림 5.40
1. CPU A가 X=0읽음:
• Cache Miss → 메모리에서 X=0로드.
2. CPU B가 X=0읽음:
• Cache Miss → 메모리에서 X=0로드.
3. CPU A가 X=1씀:
• X에 대한 다른 캐시의 복사본 무효화.
4. CPU B가 X를 다시 읽음:
• Cache Miss → 메모리에서 X=1로드.
6. False Sharing
정의:
• 두 프로세서가 서로 다른 변수를 사용하지만, 이 변수들이 동일한 캐시 블록에 위치할 때 발생.
• 결과: 한 프로세서의 쓰기 작업이 다른 프로세서의 캐시 블록을 무효화하여 성능 저하 발생.
예방 방법:
• 데이터를 캐시 블록 경계에 맞춰 정렬.
• 중요한 변수들을 다른 캐시 블록에 분리.
7. Consistency와 Coherence
Coherence:
• “같은 데이터에 대한 값”을 정의.
Consistency:
• “값이 업데이트된 시점”을 정의.
• 프로세서 간 일관된 순서로 메모리 연산을 처리.
• 예: Sequential Consistency, Relaxed Consistency 등.
'Book > COMPUTER ORGANIZATION AND DESIGN RISC-V' 카테고리의 다른 글
CH5. Self-Study (0) | 2024.12.02 |
---|---|
5.11 Parallelism and Memory Hierarchy:Redundant Arrays of Inexpensive Disks (0) | 2024.12.02 |
5.9 Using a Finite-State Machine to Control a Simple cache (0) | 2024.12.02 |
5.8 A common Framework for Memory Hierarchy (0) | 2024.12.02 |
5.7 Virtual Memory (2) | 2024.12.02 |