개요
Compute Express Link(CXL)은 PCIe에 장착하는 새로운 프로토콜로 캐쉬와 메모리에 최적화된 구조를 가지고 있다. CXL은 auto-negotiate란 특성을 사용해서 PCIe에 NVMe와 같은 PCIe용 프로토콜이 사용되면 그 모드로 아니면 CXL모드로 자동 전환되는 구조를 가지고 있다.
CXL는 3개의 프로토콜로 나뉠 수 있다.
- CXL.io
- PCIe의 IO와 같은 규격을 가진다.
- CXL.memory(CXL.mem)
- CPU Host에서 디바이스로의 Direct접근을 말한다.
- CXL.cache
- Device에서 CPU로 캐쉬 Coherent한 Direct Access가 가능하게 하는 프로토콜이다.
CXL Cache/Memory Hierarchy
- CXL.mem 프로토콜은 메모리 디바이스에 DDR처럼 연결되어 캐싱 환경을 제공한다. CPU가 보기에, DDR과 CXL.mem 프로토콜을 동일한 기능을 제공한다.
- CXL.cache 프로토콜은 디바이스 캐쉬 (upto 1MB in CXL 1.1)과의 Consistency를 제공한다.
CPU Cache와 CXL캐쉬는 MESI프로토콜을 사용하여서 서로 cache state를 공유한다. MESI는 각각의 캐쉬라인 주소를 얻는데 사용된다.