이전글) [8] CXL - ARB/MUX Layer이전 글) [7] CXL - Link layer - Retry이전글) [6] CXL - Link layer - Flit Packing이전글) [5] CXL - Transaction layer - Transaction FlowCXL spec이 매우 방대한 내용을 담고 있기 때문에 본 블로그에서는 CXL spec을 이해returnclass.tistory.com 이번 포스트에서는 CXL 스펙에서 정의된 프로토콜 동작보다는 실제 시스템에서 CXL을 사용했을 때의 영향성을 분석한 논문들을 소개하고자 합니다. 이를 통해 데이터센터가 현재 메모리와 관련하여 직면한 다양한 상황들, CXL이 어떻게 등장하게 되었는지, CXL을 사용함으로써 어떤 긍정적인 효과를 기..
이전 글) [7] CXL - Link layer - Retry이전글) [6] CXL - Link layer - Flit Packing이전글) [5] CXL - Transaction layer - Transaction FlowCXL spec이 매우 방대한 내용을 담고 있기 때문에 본 블로그에서는 CXL spec을 이해하기 위해 도움이 될 만한 것들을returnclass.tistory.com ARB/MUX 소개 CXL은 크게 두 가지 종류의 도메인으로 구성되어 있습니다. 하나는 CXL.io/PCIe 도메인이며, 또다른 도메인은 CXL.cache + CXL.mem 도메인입니다. 많은 사람들이 CXL.io 도메인, CXL.cache 도메인, CXL.mem 도메인으로 나누어져 있는 줄 알지만 이는 잘못된 정..
이전글) [6] CXL - Link layer - Flit Packing이전글) [5] CXL - Transaction layer - Transaction FlowCXL spec이 매우 방대한 내용을 담고 있기 때문에 본 블로그에서는 CXL spec을 이해하기 위해 도움이 될 만한 것들을 골라서 간략히 정리하였습니다. 자세returnclass.tistory.com Link Layer를 통한 신뢰성있는 데이터 전송Link Layer는 CXL (Compute Express Link)에서 신뢰성 있는 데이터 전송을 보장하기 위해 중요한 역할을 합니다. 이 계층은 데이터 전송의 기본 단위인 flit을 패킹하고 언패킹하며, 전송된 데이터의 무결성을 확인하고 오류가 발생했을 때 이를 처리하는 메커니즘을 제공합니..
이전글) [5] CXL - Transaction layer - Transaction FlowCXL spec이 매우 방대한 내용을 담고 있기 때문에 본 블로그에서는 CXL spec을 이해하기 위해 도움이 될 만한 것들을 골라서 간략히 정리하였습니다. 자세한 내용은 PCIe/CXL spec을 참고해주세요. 이전returnclass.tistory.com Link Layer 소개 CXL에서 Link Layer는 흔히 CXL 코어라고도 불리며, 두 가지 주요 역할을 담당합니다. 첫 번째는 CXL에서 데이터 이동의 기본 단위인 flit을 패킹하고 언패킹하는 것이고, 두 번째는 CRC 생성을 통해 데이터의 무결성을 확인하며, 필요시 retry 메커니즘을 실행하는 것입니다. 이 retry 방식은 PCIe의 ack/n..
CXL spec이 매우 방대한 내용을 담고 있기 때문에 본 블로그에서는 CXL spec을 이해하기 위해 도움이 될 만한 것들을 골라서 간략히 정리하였습니다. 자세한 내용은 PCIe/CXL spec을 참고해주세요. 이전 글) [4] CXL - Transaction layer - CXL.mem protocol returnclass.tistory.com 이 글에서는 CXL transaction의 주요 동작을 예시를 통해 자세히 설명하겠습니다. 예시 1: Host의 Cacheable Read 요청 호스트가 캐시 가능한 non-exclusive line의 사본을 요청하는 상황을 고려해봅시다. 요청은 "SnpData" semantics를 사용하여 비독점적 특성을 전달합니다. 이 예에서, 요청은 DCOH(Devic..
CXL spec이 매우 방대한 내용을 담고 있기 때문에 본 블로그에서는 CXL spec을 이해하기 위해 도움이 될 만한 것들을 골라서 간략히 정리하였습니다. 자세한 내용은 PCIe/CXL spec을 참고해주세요. 이전 글) [3] CXL - Transaction layer - CXL.cache protocol returnclass.tistory.com CXL.mem 개요 CXL.mem 프로토콜은 CPU와 메모리 간의 트랜잭셔널 인터페이스로, Compute Express Link (CXL)의 물리적 및 링크 계층을 사용하여 다이 간 통신을 합니다. 이 프로토콜은 호스트 CPU, 가속기 장치 또는 메모리 버퍼 칩 내에 위치한 메모리 컨트롤러 등 여러 메모리 연결 옵션에 사용될 수 있습니다. CXL.mem은..
CXL spec이 매우 방대한 내용을 담고 있기 때문에 본 블로그에서는 CXL spec을 이해하기 위해 도움이 될 만한 것들을 골라서 간략히 정리하였습니다. 자세한 내용은 PCIe/CXL spec을 참고해주세요. 이전 글) [2] CXL - Transaction layer - CXL.io protocol returnclass.tistory.com CXL.cache 개요 CXL.cache 프로토콜은 장치와 호스트 간의 상호작용을 정의하며, 각 요청에는 최소 하나의 응답 메시지와 때로는 데이터 전송이 포함됩니다. 이 인터페이스는 각 방향으로 세 개의 채널로 구성됩니다: Request, Response, Data. 각 채널은 방향(D2H, H2D)과 전송하는 트랜잭션(Request, Response, Dat..
CXL spec이 매우 방대한 내용을 담고 있기 때문에 본 블로그에서는 CXL spec을 이해하기 위해 도움이 될 만한 것들을 골라서 간략히 정리하였습니다. 자세한 내용은 PCIe/CXL spec을 참고해주세요. 이전 글) [1] CXL Architecture returnclass.tistory.com CXL.io 개요 CXL.io는 non-coherent load/store 인터페이스를 제공하며, I/O 장치에 사용됩니다. CXL.io transaction layer는 Flex Bus 계층 구조에서 중요한 역할을 하며, 이 계층은 transaction types, transaction packet formatting, credit-based flow control, virtual channel ma..
이전 글) [0] CXL Introduction: why CXL? returnclass.tistory.com CXL(Compute Express Link) Architecture CXL(Compute Express Link)는 고성능 I/O 버스 아키텍처로, 전통적인 non-coherent IO 장치, 메모리 장치 또는 추가 기능이 있는 accelerators와 같은 peripheral 장치를 상호 연결하는 데 사용됩니다. CXL을 통해 연결할 수 있는 장치 유형과 전체 시스템 아키텍처는 아래에서 자세히 설명합니다.CXL의 적용 예외 먼저, CXL이 적용되지 않는 경우에 대해 설명하겠습니다. 전통적인 non-coherent IO 장치는 주로 standard Producer-Consumer orderi..
CXL(Compute Express Link)는 현재 학계와 산업계에서 큰 주목을 받고 있습니다. 이번 글에서는 CXL에 대한 자세한 기술 설명보다는 현재 데이터 센터에서 발생하는 문제들과 CXL이 이러한 문제들을 어떻게 해결할 수 있는 지에 대해 다루고자 합니다. 왜 CXL이 필요할까? 오늘날 data center의 성능을 저해하고, TCO를 증가시키는 중요한 memory 문제들에 직면해 있습니다. Meta에 따르면 전체 TCO중 메모리가 차지하는 비중이 시간이 갈수록 증가하고 있으며 그 수치는 거의 절반에 가깝다고 밝혔습니다. 이러한 문제들은 주로 세 가지 주요 이슈에서 비롯됩니다. 1. DRAM과 SSD간의 지연 시간 차이 첫 번째 문제는 local DRAM과 SSD간의 latency가 차이가 ..