본문 바로가기
# Programming/- Embedded 관련 지식

신개념 컴퓨터 아키텍쳐, CXL이란?

by Graffitio 2023. 9. 20.
신개념 컴퓨터 아키텍쳐, CXL이란?
728x90
반응형
[CXL에 대해서]

 

📌 CXL이란?

 

CXL이란, Compute Express Link의 약자로, 오픈형 메모리 인터커넥트 표준이며

고성틍 컴퓨팅 시스템과 디바이스 간에 데이터 및 명령어를 전송하는데 사용되는 고속 시리얼 버스 프로토콜이다.

CXL은 다양한 컴퓨팅 및 데이터 센터 어플리케이션에 사용되며,

주로 메모리와 가속화 장치 간의 연결에 적합하다.

 

주 목적은 호스트 프로세서와 CXL 디바이스 간에 저 지연 고대역폭 메모리 접근 환경을 구성하는 것에 있으며,

최근 데이터센터에서는 빅데이터 및 머신러닝 등에서 발생하는 고집적 워크로드의 연산을 보조하기 위해

인프라 내에 GPU나 FPGA와 같은 가속기의 도입을 확대하는 경향을 보이고 있고,

지금까지 DDR1 - DDR2 - DDR3 - DDR4 - DDR5까지 데이터 처리 속도를 높이고 있지만,

로봇 기술, 자율주행, 메타버스 등 기술 발달 속도에 따라 기하급수적으로 늘어나는 데이터 처리를 감당하기엔 역부족이었다.

 

이렇게 많은 양의 데이터가 Access하는 과정에서 데이터 병목현상이 발생되고,

이를 위한 첫 번째 대안으로 PIM과 PUM이 개발되었다.

 

PIM
 : Processing in Memory의 약자로, 연산 기능을 가진 메모리이다.
   데이터를 읽어들이는데 소요되는 시간 대비 처리를 위한 시간이 수백 배 이상 빠르기 때문에
   연산을 통해 효율적인 데이터 처리 능력을 갖추도록 구성한 메모리이다.
   즉, 데이터를 보내서 연산하고 읽는게 아닌, 메모리에서 연산까지 수행

PNM
  : Process Near Memory의 약자로, PIM과 마찬가지로 연산 기능을 가지는데,
    칩 내부가 아닌 인접한 시스템을 활용하여 개발 난이도를 낮추고 원가를 절감할 수 있는 기술이다.

 

PIM과  PNM 기술은 메모리와 CPU 간 속도 차이를 인터페이스적 변경으로 개선하는 기술이고

CXL은 메모리가 다른 시스템과 데이터를 주고 받는 인터페이스 방식 중 하나이며,

쉽게 말하면, PIM과 PNM은 연산하는 장소를 변경해서 속도 향상, CXL은 데이터 송수신부 연결 방식이다.

 

CXL은 1.0부터 시작해서 2022년까지 3.0 Revision이 발표되었고

CXL 2.0까지는 CPU와 Device 사이에 길을 더 뚫어서 병목 현상을 해결하는 방식이었다면,

CXL 3.0은 Memory Sharing 기능이 추가되어 기능적으로 전송속도를 더 향상시켰다.

 


 

📌 CXL Protocol

 

CXL 프로토콜은 다음과 같이 세 가지 주요 도메인 또는 부분 프로토콜로 나윈다.

 

CXL Protocol

CXL.io(I/O 도메인)

- 목적

  : CXL.io 도메인은 CXL 디바이스 간의 입력 및 출력 통신을 처리한다.

    이 도메인은 CXL을 통해 I/O 장치와 연결하고 데이터를 전송하는데 사용된다.

- 활용

  : 주로 그래픽카드, 네트워크 어댑터, 스토리지 컨트롤러 및 기타 주변 장치와의 통신을 위해 활용되며,

    이를 통해 빠르고 효율적인 데이터 교환을 지원한다.

 

CXL.cache(캐시 도메인)

- 목적

  : CXL.cache 도메인은 메모리 계층의 캐시 시스템을 관리하고 CPU와 가속화 장치 사이에서

    데이터를 공유하고 캐시 라인을 담당한다.

- 활용

  : 이 도메인은 가속화 장치와 CPU간의 데이터 공유를 최적화하는데 사용되고

    가속화 장치는 캐시라인을 요청하고 공유함으로써 데이터 액세스를 가속화시킬 수 있다.

 

CXL.memory(메모리 도메인)

- 목적

  : CXL.memory 도메인은 CXL 디바이스 간에 메모리 액세스를 관리하며

    이 도메인을 통해 메모리 확장 및 공유가 가능하다.

- 활용

  : 메모리 도메인은 추가 메모리 모듈을 연결하거나 여러 디바이스 간에 메모리를 공유하는데 사용된다.

    이는 대용량 메모리 요구 사항을 처리하거나 분산 메모리 시스템을 구축하는데 도움이 된다.

 


 

📌 CXL 프로토콜을 활용한 디바이스 유형

 

좌측부터 Type1, 2, 3

 

Type 1 Device

 

자체 메모리를 보유하지 않은 CXL 디바이스로 호스트 프로세서와 연결된다.

이 디바이스는 호스트 프로세서의 메모리를 활용하여 작동하며,

CXL.io 프로토콜로 작치 검색 및 구성을 수행하고

CXL.cache 프로토콜을 통해 호스트 메모리 캐싱을 관리한다.

 

ex)

스마트 NIC(네트워크 인터페이스 카드)는 이 유형에 해당하며,

네트워크 패킷 처리 및 가속화를 위해 호스트 메모리를 활용한다.

 

Type 2 Device

 

메모리를 보유한 CXL 디바이스로 호스트 프로세스와 연결된다.

이 디바이스는 CXL.io 프로토콜을 사용하여 검색 및 구성을 수행하며,

CXL.cache 및 CXL.memory 프로토콜을 사용하여 호스트와 메모리를 공유한다.

 

ex)

GPU나 FPGA와 같은 가속기는 이 유형에 해당하며, 고성능 컴퓨팅 및 가속화 작업을 수행하기 위해

자체 메모리를 활용하고 호스트 메모리와 데이터를 공유한다.

 

Type 3 Device

 

호스트 프로세서가 메모리 풀에 직접 접근하는 형태로, 자체 메모리를 갖지 않는다.

이 디바이스는 CXL.io 프로토콜을 사용하여 검색 및 구성을 수행하며,

CXL.memory 프로토콜을 통해 CPU가 메모리 풀에 접근한다.

 

ex)

호스트의 메모리 버퍼나 SCM(Storage Class Memory)와 연결된 구성은

이 유형에 해당하며 CPU가 메모리 풀을 활용하여 데이터를 처리한다.

 


 

참조

- PCIe를 대체할 인터커넷트 표준 기술 CXL by TECH - G

- CXL 메모리 반도체 인터페이스 by 인생을 바꾸는 수의 법칙 

 


 

728x90
반응형