캐시 일관성이란 무엇입니까?
캐시 일관성은 여러 에이전트가 시스템의 데이터 세트에 액세스하고 변경할 때 발생하는 자연스러운 문제입니다. 이것이 문제가되는 컴퓨터 아키텍처의 주요 영역은 다중 프로세서 컴퓨터입니다. 다중 프로세서 컴퓨터의 각 프로세서에는 RAM (Random Access Memory)에서 정보를로드하고 저장하는 자체 캐시가 있습니다. 두 프로세서가 동일한 메모리 영역에 액세스하는 경우 특정 예방 조치를 취하지 않으면 캐시 일관성이 손실됩니다.
캐시 일관성이 없으면 멀티 프로세서 시스템이 작동하지 않습니다. 이 문제를 해결하고 잠재적 인 문제를 피하기 위해 개발 된 몇 가지 방법이 있습니다. 디렉토리 기반 일관성, 스누핑 및 스나 핑은 캐시 일관성 손실을 방지하는 데 사용되는 세 가지 방법입니다.
디렉토리 기반 일관성은 일관성을 보장하기 위해 필터로 작동합니다. 데이터는 모든 프로세서가 액세스 할 수있는 메모리 부분에 배치됩니다. 해당 메모리 영역에 저장된 정보가 변경되면 시스템은 캐시를 업데이트하거나 무효화합니다.
스누핑을 위해서는 프로세서가 캐시 된 메모리 위치에 대한 모든 액세스를 모니터링해야합니다. 이를 통해 프로세서는 언제 쓰기 작업이 발생했는지 알 수 있습니다. 쓰기 작업 발생시기를 알면 프로세서가 캐시를 업데이트 할 수 있습니다.
스나 핑은 스누핑과 매우 유사합니다. 스나 핑에는 캐시 된 메모리 위치에 대한 액세스를 모니터링 할뿐만 아니라 메모리에 저장된 실제 정보도 모니터링합니다. 메모리 쓰기가 발생하면 캐시를 새로운 정보로 업데이트 할 수 있습니다.
디렉토리 기반 일관성 시스템은 비교적 높은 대기 시간을 가지므로 처리 속도가 느려집니다. 낮은 대역폭 요구 사항으로 인해 캐시 기반 일관성의 대규모 응용 프로그램에서 디렉토리 기반 일관성 시스템을 실용화 할 수 있습니다. 시스템이 사용하는 프로세서가 많을수록 디렉토리 기반 일관성 시스템을 사용하면 더 많은 이점을 얻을 수 있습니다.
스누핑은 훨씬 빠른 방법입니다. 이 방법에는 디렉토리 기반 접근 방식보다 더 많은 대역폭이 필요합니다. 이 방법은 프로세서가 비교적 적은 시스템에서 효과적으로 사용할 수 있습니다.
스 캐핑은 일반적으로 캐시 일관성을 유지하는 방법으로 사용되지 않습니다. 스나 핑에는 스누핑 및 디렉토리 기반 방법에 비해 더 많은 리소스를 사용해야하기 때문입니다. 스나 핑 시스템이 작동하려면 메모리 주소와 해당 메모리 영역에 저장된 데이터를 모두 추적해야합니다. 이 방법으로 사용되는 대역폭과 처리량은 캐시 일관성을 유지 관리하는 대부분의 응용 프로그램에서 바람직하지 않습니다.