관리 메뉴
Automotive Software
스누핑 (Snooping) 본문
멀티 코어 시스템에서는 한 프로세스에서 캐시를 통해 수정하는 공유 메모리의 데이터가 다른 프로세스에게도 동일하게 보이는 공유 데이터의 일관성이 중요한데, 이를 위해 ARM과 같은 최근 프로세서 구조에서는 소프트웨어의 복잡도를 줄이는 하드웨어 기반의 캐시 일관성 (Cache Coherence) 메커니즘을 제공한다.
ARM의 경우, SCU (Snoop Control Unit)가 해당 기능을 위해 중심적인 역할을 하는데, 각 코어상의 캐시 움직임을 감시하고, 캐시상의 데이터가 공유 메모리상의 데이터와 일치하도록 하는 역할을 수행한다.
- 스누핑 : 하나의 프로세스가 메모리상의 데이터를 수정코저 할 때, 우선은 캐시상에 해당 데이터의 존재 및 일치성 여부를 확인하게 되는데, 이때 존재하지 않거나 공유 메모리상의 데이터와 일치하지 않을 경우, 스누핑 동작을 통해 우선 데이터의 일치를 수행하게 된다.
- SCU : 이때 SCU는 한 코어상의 로컬 캐시에 영향을 줄 버스상의 메모리 천이를 관찰한다.
- 캐시 업데이트 및 관리 : 만약 로컬 캐시에 영향을 주는 버스상의 메모리 천이가 관찰된 경우, SCU는 현재 연결된 캐시라인을 무효화하고 향후 메모리상의 업데이트가 로컬 캐시에 적용될 수 있도록 설정한 후 지속적인 관찰을 수행한다.
'프로그래밍 (Programming) > 컴퓨터 구조' 카테고리의 다른 글
캐시 기본 (0) | 2023.11.03 |
---|---|
멀티 코어 시스템에서의 캐시 일관성 (0) | 2023.10.31 |