CXL: Difference between revisions

From HPCWIKI
Jump to navigation Jump to search
(Add categories: Linux, Reference)
(Phase 6.1: LLM-Optimized Wiki Template 적용)
Line 1: Line 1:
==CXL==
{{Status
'''Compute Express Link''' ('''CXL''') is an open standard for high-speed, high capacity central processing unit (CPU)-to-device and CPU-to-memory connections, designed for high performance computer. CXL is built on PCI Express ([[PCIe]]) physical and electrical interface and includes PCIe-based block input/output protocol ('''CXL.io''') and new cache-coherent protocols for accessing system memory (CXL.cache) and device memory ('''CXL.mem''').<ref>https://www.computeexpresslink.org/</ref>
|status=Draft
|owner=Knowledge Agent
|last_update=2026-07-16
|review=Pending
}}


{{TOC}}


CXL was primarily developed by Intel. The CXL Consortium was formed in March 2019. As of January 2022, AMD, Nvidia, Samsung Electronics and Xilinx joined the founders on the board of directors
== Overview ==


=== CXL Device types ===
CXL(Coherent Extensible Link)은 고성능 컴퓨팅을 위한 CPU-장치 및 CPU-메모리 연결을 위한 고속 개방형 표준입니다. PCI Express([[PCIe]]) 물리 및 전기 인터페이스를 기반으로 하며, PCIe-bus와 호환됩니다.


* Type 1 (CXL.io and CXL.cache) – specialised accelerators (such as smart NIC) '''with no local memory'''. Devices rely on coherent access to  host CPU memory.
=== Summary ===
* Type 2 (CXL.io, CXL.cache and CXL.mem) – general-purpose accelerators (GPU, ASIC or FPGA) '''with high-performance GDDR or HBM local memory'''. Devices can coherently access host CPU's memory and/or provide coherent or non-coherent access to device local memory from the host CPU.
* Type 3 (CXL.io and CXL.mem) – '''memory expansion boards and persistent memory'''. Devices provide host CPU with low-latency access to local DRAM or byte-addressible non-volatile storage.


=== CXL Protocols ===
* 무엇인가? CPU-장치 및 CPU-메모리 간 고속 연결 개방형 표준
* 왜 필요한가? 데이터센터 및 HPC에서 메모리 확장성 및 성능 향상
* 언제 사용하는가? 서버, 데이터센터, HPC 시스템, AI/ML 인프라


* '''CXL.io''' - based on PCIe 5.0 with a few enhancements, it provides configuration, link initialization and management, device discovery and enumeration, interrupts, DMA, and register I/O access using non-coherent loads/stores.
---
* '''CXL.cache''' - allows peripheral devices to coherently access and cache host CPU memory with a low latency request/response interface.
* '''CXL.mem''' - allows host CPU to coherently access cached device memory with load/store commands for both volatile (RAM) and persistent non-volatile (flash memory) storage.


=== Reference ===
== Purpose ==
[[Category:Linux]]


이 문서가 존재하는 이유
* Goal: CXL 표준의 개념, 프로토콜, 사용 사례 설명
* Scope: CXL 기본 개념, CXL.io/CXL.cache/CXL.mem 프로토콜
* Non-goals: CXL 하드웨어 설계 상세, PCIe 상세
---
== Key Concepts ==
{| class="wikitable"
! 개념
! 설명
! Related
|-
| CXL
| Coherent Extensible Link — CPU-장치/메모리 고속 연결 표준
| [[PCIe]]
|-
| CXL.io
| I/O 프로토콜 — PCIe 호환
| [[CXL]]
|-
| CXL.cache
| 캐시 일관성 프로토콜 — CPU 캐시 공유
| [[CXL]]
|-
| CXL.mem
| 메모리 확장 프로토콜 — 메모리 원격 접근
| [[CXL]]
|-
| PCIe
| Peripheral Component Interconnect Express
| [[CXL]]
|-
| Cache Coherency
| 캐시 일관성 — 여러 프로세서 간 데이터 일관성 유지
| [[CXL.cache]]
|}
---
== Architecture ==
CXL 프로토콜 아키텍처:
<syntaxhighlight lang="mermaid">
graph TD
    A[CXL 표준] --> B[CXL.io]
    A --> C[CXL.cache]
    A --> D[CXL.mem]
    B --> E[PCIe 호환 I/O]
    C --> F[캐시 일관성]
    D --> G[메모리 확장]
    F --> H[CPU Cache]
    G --> I[원격 메모리]
</syntaxhighlight>
---
== Workflow ==
CXL 기본 워크플로우:
# CXL 장치 연결
# PCIe 슬롯에 CXL 장치 삽입
# [[BIOS]]/UEFI에서 CXL 활성화
# OS에서 CXL 장치 인식
# CXL.mem으로 메모리 확장 사용
---
== Detailed Explanation ==
=== CXL 개요 ===
'''CXL(Coherent Extensible Link)'''은 고성능 컴퓨팅을 위한 고속, 대용량 CPU-장치 및 CPU-메모리 연결을 위한 개방형 표준입니다. CXL은 PCI Express([[PCIe]]) 물리 및 전기 인터페이스를 기반으로 하며, PCIe 버스 프로토콜과 호환됩니다.
=== CXL 프로토콜 ===
CXL은 세 가지 프로토콜로 구성됩니다:
'''1. CXL.io'''
PCIe 호환 I/O 프로토콜입니다. 기존 PCIe 장치와 호환되며, I/O 작업에 사용됩니다.
'''2. CXL.cache'''
캐시 일관성(coherency) 프로토콜입니다. CPU 캐시를 장치와 공유하여 장치가 CPU 캐시에 직접 접근할 수 있습니다. 이를 통해 장치와 CPU 간 데이터 접근 속도가 크게 향상됩니다.
'''3. CXL.mem'''
메모리 확장 프로토콜입니다. 장치가 호스트 메모리에 직접 접근할 수 있어 메모리 용량을 확장할 수 있습니다. 이를 통해 시스템의 총 사용 가능 메모리를 증가시킬 수 있습니다.
---
== Configuration ==
=== CXL 활성화 설정 ===
<syntaxhighlight lang="bash">
# CXL 지원 확인
lspci | grep -i cxl
# BIOS/UEFI에서 CXL 활성화
# 시스템 BIOS 설정 → CXL Support → Enabled
# 커널 모듈 로드
sudo modprobe cxl_pci
</syntaxhighlight>
---
== Examples ==
=== Example 1: CXL 장치 확인 ===
입력:
<syntaxhighlight lang="bash">
# CXL 장치 확인
lspci | grep -i cxl
# CXL 메모리 정보
cat /sys/devices/system/cxl/region/*
</syntaxhighlight>
---
== Best Practices ==
* '''BIOS 설정 확인''' — CXL 활성화 필수
* '''커널 버전 확인''' — CXL 지원 커널 버전 사용
* '''CXL.mem 활용''' — 대용량 메모리 워크로드에 CXL.mem 권장
* '''캐시 일관성''' — CXL.cache는 고성능 워크로드에 적합
---
== Limitations ==
* CXL 지원 하드웨어 필요 — 모든 시스템에서 사용 불가
* 최신 커널 필요 — 구형 커널에서는 지원 제한적
* CXL.mem은 메모리 확장 전용 — 성능 이점 제한적
---
== References ==
* (문서 내 참조)
---
== Related Pages ==
* [[PCIe]]
* [[CPU]]
* [[GPU]]
* [[Memory]]
* [[Datacenter]]
---
[[Category:Hardware]]
[[Category:Reference]]
[[Category:Reference]]

Revision as of 14:39, 16 July 2026

Template:Status

Template:TOC

Overview

CXL(Coherent Extensible Link)은 고성능 컴퓨팅을 위한 CPU-장치 및 CPU-메모리 연결을 위한 고속 개방형 표준입니다. PCI Express(PCIe) 물리 및 전기 인터페이스를 기반으로 하며, PCIe-bus와 호환됩니다.

Summary

  • 무엇인가? CPU-장치 및 CPU-메모리 간 고속 연결 개방형 표준
  • 왜 필요한가? 데이터센터 및 HPC에서 메모리 확장성 및 성능 향상
  • 언제 사용하는가? 서버, 데이터센터, HPC 시스템, AI/ML 인프라

---

Purpose

이 문서가 존재하는 이유

  • Goal: CXL 표준의 개념, 프로토콜, 사용 사례 설명
  • Scope: CXL 기본 개념, CXL.io/CXL.cache/CXL.mem 프로토콜
  • Non-goals: CXL 하드웨어 설계 상세, PCIe 상세

---

Key Concepts

개념 설명 Related
CXL Coherent Extensible Link — CPU-장치/메모리 고속 연결 표준 PCIe
CXL.io I/O 프로토콜 — PCIe 호환 CXL
CXL.cache 캐시 일관성 프로토콜 — CPU 캐시 공유 CXL
CXL.mem 메모리 확장 프로토콜 — 메모리 원격 접근 CXL
PCIe Peripheral Component Interconnect Express CXL
Cache Coherency 캐시 일관성 — 여러 프로세서 간 데이터 일관성 유지 CXL.cache

---

Architecture

CXL 프로토콜 아키텍처:

graph TD
    A[CXL 표준] --> B[CXL.io]
    A --> C[CXL.cache]
    A --> D[CXL.mem]
    B --> E[PCIe 호환 I/O]
    C --> F[캐시 일관성]
    D --> G[메모리 확장]
    F --> H[CPU Cache]
    G --> I[원격 메모리]

---

Workflow

CXL 기본 워크플로우:

  1. CXL 장치 연결
  2. PCIe 슬롯에 CXL 장치 삽입
  3. BIOS/UEFI에서 CXL 활성화
  4. OS에서 CXL 장치 인식
  5. CXL.mem으로 메모리 확장 사용

---

Detailed Explanation

CXL 개요

CXL(Coherent Extensible Link)은 고성능 컴퓨팅을 위한 고속, 대용량 CPU-장치 및 CPU-메모리 연결을 위한 개방형 표준입니다. CXL은 PCI Express(PCIe) 물리 및 전기 인터페이스를 기반으로 하며, PCIe 버스 프로토콜과 호환됩니다.

CXL 프로토콜

CXL은 세 가지 프로토콜로 구성됩니다:

1. CXL.io

PCIe 호환 I/O 프로토콜입니다. 기존 PCIe 장치와 호환되며, I/O 작업에 사용됩니다.

2. CXL.cache

캐시 일관성(coherency) 프로토콜입니다. CPU 캐시를 장치와 공유하여 장치가 CPU 캐시에 직접 접근할 수 있습니다. 이를 통해 장치와 CPU 간 데이터 접근 속도가 크게 향상됩니다.

3. CXL.mem

메모리 확장 프로토콜입니다. 장치가 호스트 메모리에 직접 접근할 수 있어 메모리 용량을 확장할 수 있습니다. 이를 통해 시스템의 총 사용 가능 메모리를 증가시킬 수 있습니다.

---

Configuration

CXL 활성화 설정

# CXL 지원 확인
lspci | grep -i cxl

# BIOS/UEFI에서 CXL 활성화
# 시스템 BIOS 설정 → CXL Support → Enabled

# 커널 모듈 로드
sudo modprobe cxl_pci

---

Examples

Example 1: CXL 장치 확인

입력:

# CXL 장치 확인
lspci | grep -i cxl

# CXL 메모리 정보
cat /sys/devices/system/cxl/region/*

---

Best Practices

  • BIOS 설정 확인 — CXL 활성화 필수
  • 커널 버전 확인 — CXL 지원 커널 버전 사용
  • CXL.mem 활용 — 대용량 메모리 워크로드에 CXL.mem 권장
  • 캐시 일관성 — CXL.cache는 고성능 워크로드에 적합

---

Limitations

  • CXL 지원 하드웨어 필요 — 모든 시스템에서 사용 불가
  • 최신 커널 필요 — 구형 커널에서는 지원 제한적
  • CXL.mem은 메모리 확장 전용 — 성능 이점 제한적

---

References

  • (문서 내 참조)

---

Related Pages

---