이전 글)
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 ordering models을 사용하며 host-attached memory를 기반으로 작업을 수행합니다. 이러한 장치는 work submission 및 완료 신호를 제외하고는 host와의 상호작용이 거의 없습니다. 이러한 accelerators는 주로 데이터 스트림 또는 큰 연속 데이터 객체를 처리하며, 이러한 장치는 CXL이 제공하는 고급 기능이 필요하지 않아 기존의 PCIe를 통해 연결하는 것이 충분합니다.
CXL Device 유형
Type 1 CXL Device
Type 1 CXL devices는 fully coherent cache가 필요합니다. 이러한 장치는 standard Producer-Consumer ordering models이 적합하지 않으며, 복잡한 atomic operations을 수행할 필요가 있습니다. Basic cache coherency는 accelerator가 원하는 ordering model을 구현할 수 있게 하며, 무제한의 atomic operations을 수행할 수 있게 합니다. CXL은 optional CXL.cache 링크를 사용하여 이러한 장치를 지원합니다.
Type 2 CXL Device
Type 2 devices는 fully coherent cache뿐만 아니라 DDR, High Bandwidth Memory (HBM) 등의 메모리를 포함합니다. 이러한 장치는 메모리를 대상으로 작업을 수행하지만, accelerator와 device-attached memory 사이의 massive bandwidth가 성능의 핵심입니다. CXL의 주요 목표는 host가 device-attached memory에 operands를 밀어넣고 결과를 가져오는 과정을 소프트웨어 및 하드웨어 비용을 최소화하여 수행하는 것입니다.
HDM(Host-managed Device Memory)과 PDM(Private Device Memory)의 중요한 차이점이 있습니다. 예를 들어, GPGPU와 같은 장치는 device-attached memory를 private하게 처리하여 host가 접근할 수 없고 시스템과 일관성이 없습니다. CXL은 PDM을 사용해도 문제 없습니다.
Type 2 CXL devices의 주요 기능 중 하나는 Bias Based Coherency Model입니다. 이 모델은 device-attached memory가 Host Bias 및 Device Bias 상태에 따라 다른 접근 권한을 부여합니다. Host Bias 상태에서는 메모리가 host와 일관성을 유지하며, Device Bias 상태에서는 장치가 메모리에 직접 접근할 수 있습니다.
Bias Based Coherency Model
- Host Bias: 이 모드는 보통 작업 제출 중 또는 작업 완료 후에 host가 메모리에 operands를 쓰거나 결과를 읽어낼 때 사용됩니다. Host가 device-attached memory에 고속으로 접근할 수 있으며, 장치는 host를 통해 메모리에 접근해야 하므로 최적의 성능을 발휘하지 못합니다.
- Device Bias: 이 모드는 장치가 작업을 수행하는 동안 사용됩니다. 이 모드에서는 장치가 host의 coherency engines를 거치지 않고 메모리에 직접 접근할 수 있습니다. Host는 여전히 메모리에 접근할 수 있지만, 장치에 의해 접근 권한을 양보해야 할 수 있습니다.
Mode Management
Bias Mode Management는 Software Assisted와 Hardware Autonomous 두 가지 방식이 있습니다. Software Assisted 방식은 소프트웨어가 메모리 페이지의 상태를 관리하며, Hardware Autonomous 방식은 하드웨어가 요청자에 따라 bias 모드를 예측하고 조정합니다.
Type 3 CXL Device
Type 3 CXL devices는 CXL.io 및 CXL.mem 프로토콜을 지원합니다. 이 장치 유형은 주로 host의 메모리 확장 장치로 사용되며, accelerator가 아닙니다. CXL.io 프로토콜은 장치 검색, 열거, 오류 보고 및 관리에 사용됩니다.
Multi Logical Device
CXL 2.0은 Type 3 MLD(Multi Logical Device) 구성 요소를 지원합니다. MLD 구성 요소는 최대 16개의 논리 장치로 리소스를 분할할 수 있으며, 각 Logical Device는 CXL.io 및 CXL.mem 프로토콜을 통해 식별됩니다. 논리 장치는 가상 계층에 대해 Type 3 장치로 작동하며, 소프트웨어는 논리 장치의 존재를 투명하게 인식합니다.
MLD 구성 요소에는 FM(Fabric Manager)을 위한 논리 장치가 예약되어 있으며, 최대 16개의 논리 장치가 host에 바인딩될 수 있습니다. FM은 리소스 할당을 구성하고 여러 가상 채널과 공유되는 물리적 링크를 관리합니다.
결론
CXL 아키텍처는 고성능 I/O 버스 아키텍처로, 다양한 주변 장치를 host 시스템에 효율적으로 연결할 수 있게 합니다. Type 1, Type 2, Type 3 장치 유형을 통해 다양한 요구를 충족할 수 있으며, Bias Based Coherency Model과 같은 기능을 통해 성능을 최적화할 수 있습니다. 또한, MLD 구성 요소를 통해 다중 논리 장치 관리를 지원하여 유연성을 제공합니다. CXL은 차세대 고성능 컴퓨팅 환경에서 중요한 역할을 할 것으로 기대되는 이유입니다.
Reference)
- Compute Express Link Specification
'Interface Standards > CXL' 카테고리의 다른 글
[5] CXL - Transaction layer - Transaction Flow (0) | 2024.07.07 |
---|---|
[4] CXL - Transaction layer - CXL.mem protocol (0) | 2024.07.07 |
[3] CXL - Transaction layer - CXL.cache protocol (0) | 2024.07.07 |
[2] CXL - Transaction layer - CXL.io protocol (0) | 2024.07.07 |
[0] CXL Introduction: why CXL? (0) | 2024.05.11 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!