고성능컴퓨터시스템 구조(2)
1. 다중 프로세서 시스템 구조
다중 프로세서 시스템에서 각 프로세서가 캐시를 보유할 때 발생하는 주요 문제점은 데이터 일관성입니다. 주기억장치에 저장된 공유 데이터가 여러 캐시에 적재되고, 특정 프로세서가 이 데이터를 변경할 경우, 주기억장치와 다른 캐시에 저장된 데이터 값이 서로 달라지는 상황이 발생합니다. 이러한 문제를 해결하기 위해 캐시 일관성 유지 프로토콜(cache coherence protocol) 이 필요합니다.
1.1. 캐시 쓰기 정책에 따른 데이터 불일치 문제
- Write-through 정책:
- 프로세서가 캐시의 데이터를 수정할 때 동시에 주기억장치에도 갱신하는 방식
- 버스 감시(Bus Snooping) 이용: 프로세서가 어떤 캐시 라인을 수정하는 경우에 그 사실을 방송(broadcasting)하고, 버스 상의 상황을 감시(snooping)하는 하드웨어 구현을 통해 일관성 유지
- 스누프 제어기(Snoop Controller) 동작: 주기억장치에 대한 쓰기 동작의 주소가 자신의 캐시에 있는지 검사하여, 존재한다면 해당 블록을 무효화(invalidate)
- 캐시 데이터 상태: 유효(V: Valid), 무효(I: Invalid)
- 예시: P1이 X를 X'로 변경하면 P2의 캐시에 있는 X는 무효(I) 상태가 되고, P2가 X를 액세스하면 캐시 미스 발생 후 주기억장치로부터 X'가 읽혀와 유효(V) 상태로 변경
- Write-back 정책:
- 프로세서가 캐시의 데이터를 변경해도 주기억장치의 내용은 즉시 갱신되지 않는 방식
- 다른 스누프 제어기가 변경 사실을 알 수 없으므로, 변경된 캐시의 스누프 제어기가 무효화 신호(invalidate signal) 를 다른 스누프 제어기들에게 통보하여 일관성 유지