본문으로 이동
테크 블로그

메모리 대역폭과 용량의 한계 확장: 삼성전자의 CXL 메모리 익스팬더

  • 메일

by 카필 세티(Kapil Sethi)

삼성전자 반도체 DRAM 상품기획팀 시니어 매니저

최근 몇 년 동안, 인공지능, 머신러닝 및 클라우드 컴퓨팅과 같은 기술의 성장으로 인해 방대한 분량의 데이터가 생성되었습니다. 데이터 기반 테크놀로지가 부상하면서 더 강력한 하드웨어 아키텍처에 대한 필요성이 더욱 커졌습니다. 또한, 데이터 집약적인 애플리케이션의 프로세싱 및 성능 요구를 처리할 수 있는 강력한 프로세서를 만들기 위해 단일 프로세서 칩에 더 많은 코어가 통합되고 있습니다. 그러나 메모리 대역폭과 용량이 CPU 코어 수 증가를 따라잡지 못해 프로세서와 메모리 성능 사이에 격차가 생겨나고 있으며, 메모리 용량과 대역폭에 대한 끝없는 요구는 기존 메모리 기술의 한계를 초월하고 있습니다. 기존의 DRAM 설계는 메모리 용량 확장을 특정 범위 이상으로 제한하기 때문에 완전히 새로운 메모리 인터페이스 기술이 필요합니다. 게다가 AI와 빅 데이터의 출현은 다양한 유형의 여러 프로세서가 방대한 분량의 데이터를 병렬 처리하는 이종 컴퓨팅으로의 추세를 가속화하고 있습니다. 이러한 추세를 고려했을 때, 효율적인 리소스 활용을 가능하게 하기 위해 이종 컴퓨팅과 컴포저블 인프라에 차세대 인터커넥트 기술이 필수적입니다. Compute Express Link™(CXL)란 무엇일까요? CXL™ 컨소시엄을 통해 개발된 개방형 표준인 CXL↗은 PCIe 물리계층에 구축된 CPU-디바이스 간 저지연 고속 인터커넥트 기술입니다. CXL은 호스트 CPU와 액셀러레이터 및 메모리 확장 디바이스와 같은 연결된 디바이스 간에 효율적인 연결을 제공합니다. CXL 트랜잭션 계층은 단일 연결에서 동적으로 다중화된 세 가지 서브 프로토콜로 구성됩니다. 이러한 프로토콜은 CXL.io, CXL.cache 및 CXL.mem으로 알려져 있습니다. CXL 디바이스가 CXL 호스트에 연결되면 CXL.io 프로토콜이 디바이스 검색 및 연결, 설정 및 관리에 사용됩니다. CXL.cache는 CXL 디바이스가 프로세서 메모리에 액세스할 수 있게 하고, CXL.mem은 프로세서가 CXL 디바이스 메모리에 액세스하도록 합니다. CXL.cache 및 CXL.mem 프로토콜 스택은 지연 시간 감소를 위해 최적화되었습니다.
CXL 컨소시엄은 다음과 같은 3가지 디바이스 유형을 인식합니다.

• Type 1 CXL 디바이스는 액셀러레이터 및 SmartNIC과 같은 캐시 디바이스입니다. Type 1 디바이스는 CXL.cache 트랜잭션을 통해 호스트 메모리에 액세스할 수 있으며, 호스트 메모리와의 일관성을 구현하는 로컬 캐시를 유지합니다. • Type 2 CXL 디바이스는 DDR과 HBM과 같은 디바이스에 부착된 메모리가 있는 GPU 및 FPGA입니다. CXL Type 2 디바이스는 CXL Type 1 디바이스와 마찬가지로 호스트와 연결된 메모리에 직접 액세스할 수 있습니다. 또한, CXL Type 2 디바이스에는 CXL.mem 트랜잭션을 통해 호스트 CPU에서 확인하고 접근할 수 있는 로컬 주소 공간이 있습니다. • Type 3 CXL 디바이스는 호스트 프로세스가 CXL.mem 트랜잭션을 통해 CXL 디바이스 메모리 캐시에 일관되게 액세스할 수 있는 메모리 확장 디바이스입니다. CXL Type 3 디바이스는 메모리 용량 및 메모리 대역폭 확장에 사용할 수 있습니다.

이 기사에서는 본래의 의도에 충실하기 위해 Type 3 CXL 디바이스에 중점을 둘 것입니다. CXL의 특징과 이점
CXL의 중요한 기능은 직접 연결된 CPU 메모리와 CXL 디바이스의 메모리 간에 메모리 일관성을 유지하는 것으로, 그것은 호스트와 CXL 디바이스가 같은 데이터를 원활하게 확인할 수 있다는 것을 의미합니다. CXL 호스트에는 CXL.io와 CXL.mem 트랜잭션을 사용해서 연결된 메모리에 일관되게 액세스하는 관리자 역할의 홈 에이전트가 있습니다. 이것이 중요한 이유는 무엇일까요? 이 홈 에이전트는 CXL 호스트와 CXL 디바이스가 공유 데이터에서 작동하고 동일한 메모리 위치의 사본을 확인할 수 있도록 합니다. 홈 에이전트는 데이터 동시 변경을 허용하지 않기 때문에, 호스트나 연결된 디바이스에서 변경이 이루어지면 홈 에이전트가 모든 데이터 사본의 일관성을 유지하도록 합니다. CXL의 또 다른 주요 기능은 휘발성 메모리나 퍼시스턴트 메모리 등의 다양한 메모리 유형을 CXL 인터페이스를 통해 호스트에 연결할 수 있도록 해서 기저 메모리 기술에 구애받지 않는다는 점입니다. 뿐만 아니라, CXL.mem 트랜잭션은 바이트 주소를 할당할 수 있으며, DDR 메모리와 마찬가지로 트랜잭션을 로딩/저장합니다. 그렇기 때문에 연결된 CXL 메모리는 최종 애플리케이션에서 네이티브 연결 DDR 메모리처럼 보입니다. 또한, CXL 2.0 사양은 메모리 풀링과 스위칭을 지원합니다. 스위칭은 메모리 확장을 가능하게 하고, 풀링은 메모리 리소스의 동적 할당과 해제를 통해 전체 시스템의 효율을 향상시켜 줍니다. CXL 무결성과 데이터 암호화는 CXL 링크를 통해 전송하는 데이터에 대한 기밀성과 무결성 및 리플레이 프로텍션을 제공하는 메커니즘을 규정합니다.
도표: CXL Type 3 메모리 확장 디바이스를 사용한 메모리 용량 확장
도표: CXL Type 3 메모리 확장 디바이스를 사용한 메모리 용량 확장
도표: CXL Type 3 메모리 확장 디바이스를 사용한 메모리 용량 확장
일반적으로 시스템에 메모리 용량 및 대역폭을 추가하는 것은 네이티브 CPU 메모리 채널 수를 늘리는 것과 관련이 있습니다. 그러나 CPU에 메모리 채널을 추가하면 엔지니어링 복잡성과 비용이 증가됩니다. CXL Type 3 메모리 확장 디바이스는 기본 CPU 메모리 채널 수를 늘리지 않고 메모리 용량과 대역폭을 확장할 수 있는 유연하면서도 강력한 옵션을 제공합니다. 삼성전자의 CXL 메모리 익스팬더와 오픈소스 CXL 소프트웨어 삼성전자는 2021년 5월, 업계 최초의 CXL Type 3 메모리 익스팬더 프로토타입을 출시했습니다. 이 프로토타입 메모리 익스팬더 디바이스는 다양한 차세대 서버 CPU 플랫폼에서 성공적으로 검증되었습니다. 또한, CXL 메모리 익스팬더 프로토타입은 실제 애플리케이션과 워크로드가 있는 다수의 최종 사용자 서버 시스템에서 테스트했습니다. 이제 삼성전자에서는 주문형 반도체(ASIC) 기반 CXL 컨트롤러를 탑재한 새로운 CXL Type 3 DRAM 메모리 익스팬더 제품을 테스트하고 있으며, 이는 CXL 기술 상용화를 위한 초석이 될 것입니다. EDSFF(E3.S) 폼팩터로 출시되는 익스팬더는 차세대 고용량 기업용 서버 및 데이터 센터에 적합합니다.
삼성전자의 최신 CXL 메모리 익스팬더 모듈은 최대 512GB의 DDR5 DRAM 메모리로 제공되어 서버 메모리 용량을 수십 테라바이트대로 확장하는 동시에 메모리 대역폭을 초당 몇 테라바이트대로 증가시킬 수 있습니다. CXL 메모리 익스팬더는 x8 PCIe 5.0 인터페이스를 사용해서 레인당 최대 32GT/s의 전송 속도로 CPU에 연결합니다. 삼성전자는 또한 오픈소스 CXL 소프트웨어 솔루션인 스케일러블 메모리 개발 키트(SMDK)를 출시합니다. 이는 메인 메모리와 CXL 메모리 익스팬더가 이종 메모리 시스템에서 함께 원활하게 작동하도록 지원하는 소프트웨어 도구 및 API 모음입니다. SMDK는 시스템 개발자가 기존 애플리케이션 환경을 수정할 필요 없이 CXL 메모리를 첨단 시스템에 손쉽게 통합할 수 있도록 지원하여 CXL 생태계를 빠르게 확장할 것입니다. 삼성전자의 CXL 메모리 익스팬더는 2022년 3분기에 사전 평가를 위해 공개될 예정이며, 현재 GitHub↗에서 SMDK 1.1 버전을 다운로드할 수 있습니다.