Insight

Insight

[TECH INSIGHT]Cache Coherency by CXL protocol

2024-06-13

Metis Insight #1

첫 번째 Metis Insight에서는 캐시 일관성(cache coherency)의 복잡한 개념을 다뤄보고자 합니다.

CXL 프로토콜의 주요 기능 중 하나인 캐시 일관성 개념에 대해 알고 계신가요? 캐시 일관성은 여러 프로세서나 가속기가 동일한 메모리 데이터를 접근할 때 각자의 캐시에 저장된 데이터가 일관성을 유지하도록 보장하는 기술입니다.

간단한 예를 들어 설명해보겠습니다: 동일한 메모리에 저장된 데이터를 CPU와 GPU가 각자 처리하는 시스템을 상상해 봅시다. 이들 프로세서가 동일한 메모리 주소를 참조하여 그 주소에 저장된 데이터를 처리할 때, 두 프로세서는 신속한 처리를 위해 각각의 캐시 메모리에 데이터를 저장합니다. 

여기서 만약 CPU가 이 데이터를 수정하면, 변경 사항은 CPU의 캐시에만 반영되고 GPU의 캐시에는 여전히 이전 데이터가 남아있게 됩니다. 이때 GPU가 이 데이터를 가져와 처리하면, CPU와 다른 정보를 사용하게 되어 연산 간에 충돌이 발생할 수 있습니다. 이러한 문제를 방지하기 위해 시스템은 캐시 일관성을 보장하는 프로토콜을 사용해야 합니다. 일반적으로 MESI 프로토콜이 사용됩니다. MESI는 Modified, Exclusive, Shared, Invalid의 약어로, 캐시 라인의 네 가지 Exclusive한(배타적인) 상태를 나타냅니다.

자체 연산 능력을 갖춘 CXL Computational Memory 또한 내부에 캐시 메모리를 가지고 있기 때문에 호스트의 캐시 데이터와의 처리 충돌을 방지하기 위해 캐시 일관성을 필요로 합니다. 그렇다면 CXL Computational Memory는 어떻게 캐시 일관성을 보장할까요? 

CXL3.0 사양은 CXL.mem 서브 프로토콜 내에서 Back-invalidate Snoop을 지원하여 Device가 직접 Host CPU가 사용하는 캐시 상태를 관리합니다.

Back-invalidation Snoop은 다음과 같이 작동합니다:

  1. 메타데이터 저장: 호스트의 캐시 상태 정보를 Device의 Snoop Filter에 기록합니다.
  2. 상태 모니터링 및 비교: 특정 캐시 라인의 데이터가 Host나 Device에 의해 수정되면, Snoop Filter에 저장된 메타데이터와 비교됩니다.
  3. Back-Invalidation: 변경 사항이 메타데이터와 일치하지 않으면, 무효화 신호가 호스트의 캐시에 전송되어 캐시 데이터를 무효화하여 캐시 일관성을 유지합니다.

MetisX의 CXL Computational Memory는 CXL3.0 사양을 지원하여 캐시 일관성을 지키면서 불필요한 데이터 이동을 줄이고 효율적인 빅 데이터 처리를 가능하게 합니다.

Xcelerate
Your Intelligence

엑시나 주식회사

 

대표자 : 김진영

사업자등록번호 : 710-81-02837

주소 : 경기도 성남시 분당구 판교역로 241번길 20, 미래에셋벤처타워 8층

© 2025 XCENA Inc. | All Rights Reserved

Xcelerate Your
Intelligence


XCENA Inc.

사업자등록번호: 710-81-02837


주소: 경기도 성남시 분당구 판교역로 241번길 20, 미래에셋벤처타워 8층


대표자 이름: 김진영

© 2024 XCENA Inc. | All Rights Reserved