최근 AI 및 머신러닝이나 빅데이터 분석 등 한 번에 많은 양의 데이터를 빠르게 처리해야 하는 애플리케이션의 수요가 늘면서 CPU 중심적인 아키텍처의 한계가 드러나고 있습니다. 기존의 CPU 중심적인 아키텍처는 CPU에서 처리 빈도나 우선도가 높은 데이터를 램에 재적하고, 스토리지로부터 해당 데이터를 불러오는 구성으로 되어 있습니다.

이러다 보니 CPU가 지원 가능한 메모리 채널 수에 따라 메모리 대역폭이 한정되고, 메모리 슬롯의 개수에 따라 메모리의 용량이 제한되는 등 CPU 벤더에서 제공하는 메모리 컨트롤러의 사양에 따라 메모리의 성능과 확장성이 결정되었습니다. 아무리 CPU 소켓 당 코어 수가 많더라도, 매번 메모리에서 코어로 제공되는 데이터의 규모(메모리 대역폭)가 작으면 CPU가 발휘할 수 있는 성능이 제한될뿐더러, 신형 메모리로 교체하려 해도 CPU의 벤더 종속성 때문에 해당 메모리의 지원 여부를 확인해야 한다는 점이 있습니다. 무엇보다, 고성능 컴퓨팅 환경에서 여러 대의 프로세서와 가속기를 PCIe로 연결해도 프로세서나 가속기 간 메모리 공유가 제한적이라 메모리 리소스 활용 문제가 발생합니다. 예를 들어, 특정 프로세서의 메모리의 데이터가 변동되어 스토리지에 저장해야 하는 경우, 변경된 내용을 공유받는 다른 프로세서나 가속기에서도 데이터 처리 작업이 발생하고 연결된 인터페이스를 전부 거쳐야 하기 때문에 제 성능을 발휘하지 못하는 경우가 생깁니다.

 

메모리 중심 컴퓨팅

이처럼 CPU의 제한적인 특성과 프로세서와 가속기의 캐시 일관성 문제를 해결하고자 메모리 중심 컴퓨팅이라는 개념이 나오게 되었습니다. 메모리 중심 컴퓨팅은 여러 대의 서버가 대규모 메모리 풀을 공유하는 환경을 말합니다. 이를 구현하기 위해 로컬 DRAM이나 SCM(storage class memory) 1과 같이 바이트 단위로 접근이 가능한 대용량 비휘발성 메모리를 연결하는 새로운 인터커넥트 기술들이 등장하고 있습니다. 현재 관련 기업들의 컨소시엄을 중심으로 정의되고 있는 표준은 Gen-Z, CXL, OpenCAPI, CCIX 등이 있으며, 이 중 Gen-Z와 CXL은 차세대 산업 표준이 될 인터커넥트 기술로서 주목받고 있습니다. 지난 컴포저블 인프라란?: 개념과 구성 포스트에서는 인터커넥트 기술인 CXL(Compute Express Link) 2에 대해서 소개했습니다만, 이번에는 비슷한 인터커넥트 기술인 Gen-Z에 대해 다루어 보도록 하겠습니다.

 

Gen-Z 소개

Gen-Z는 프로세서, 가속기, 메모리 등의 디바이스를 패브릭 상에서 연결시키는 오픈형 표준 인터커넥트 프로토콜입니다. Gen-Z는 메모리 시멘틱(memory-semantic) 연결을 통해 서로 다른 디바이스나 네트워크상의 메모리 간 데이터 공유를 최소한의 오버헤드로 가능하게 합니다. 단순히 메모리 리소스만 공유하는 것이 아니라, 패브릭에 연결된 프로세서 및 가속기의 리소스도 연동한다는 점이 특징입니다.

 

Alt text

< 기존 CPU-메모리 아키텍처와 미디어 독립 아키텍처 비교 >

 

3

Gen-Z는 기본적으로 패브릭 상 공유 메모리 풀을 구성하기 위해 디자인되었습니다. 위 도식에서 보시다시피, 미디어 컨트롤러의 위치를 기존의 프로세서에서 메모리 디바이스 측으로 이동시킴으로써 특정 메모리 디바이스에 대한 종속성 없이(media agnostic) Gen-Z 표준 프로토콜을 통해 접근할 수 있게 합니다.

 

Alt text

< Gen-Z 패브릭 구성도 예시 >

 

Gen-Z는 PCIe와 IEEE 802.3 이더넷 물리 표준을 지원해 디바이스 간 단순 점대점(point-to-point) 연결이나 스위치 등의 토폴로지로 구성될 수 있으며, 서버 내 디바이스 연결뿐만 아니라 랙이나 데이터센터 단위로 메모리 풀을 공유하는 연결망을 구성할 수 있습니다. 위 구성도와 같이, 컴퓨팅 서버, 가속기 서버, 스토리지 서버는 Gen-Z 패브릭을 통해 메모리 풀을 공유할 수 있게 되며, DRAM, NVM, SCM 등 여러 종류의 메모리 및 스토리지 미디어를 지원해 패브릭 상에서 모든 유형의 워크로드 요구사항을 만족하는 공유 메모리 풀을 구성할 수 있습니다. 각 컴포넌트는 시스템 중단 없이 애플리케이션의 요구사항에 따라 독립적으로 확장 및 업그레이드가 가능해 컴포저블 인프라 환경을 구현할 수 있게 됩니다.

Gen-Z에 대한 모든 사양은 ‘Gen-Z 컨소시엄’ 에서 정의합니다. 2016년에 출범한 Gen-Z 컨소시엄은 HPE, Dell EMC, 브로드컴, Cisco, AMD, ARM, Micron, 삼성, SK 하이닉스 등 각각 서버, 스토리지, 반도체 업계를 선도하는 65개의 기업과 연구소들로 구성되어 있습니다. 현재 Gen-Z의 가장 최신 버전은 2020년에 공개된 1.1입니다.

 

Gen-Z와 CXL의 통합

지난 컴포저블 인프라란?: 개념과 구성 포스트에서 Gen-Z와 CXL 컨소시엄이 서로 기술 협력을 위한 MOU를 맺었고 단일화된 연결 표준에 대한 가능성을 언급한 적이 있었는데, 그런 일이 있자마자 지난달 11월에 Gen-Z가 CXL에 흡수된다는 소식 이 나왔습니다. 같은 메모리 중심 컴퓨팅을 위한 인터커넥트 표준이고, Gen-Z 컨소시엄 구성원 절반 이상이 CXL 컨소시엄에도 소속해 있는 것을 보면 충분히 예상 가능한 수순이었다고 볼 수 있습니다. 다만 모든 Gen-Z 사양이 바로 CXL에 포함되는 것은 아니고, 몇 개는 미래에 점진적으로 CXL의 신규 사양으로서 등장한다고 합니다.

Gen-Z와 CXL가 단일 스펙으로 통일된 것에 대한 가장 큰 이점은 고객들이 감수할 비용을 크게 줄이게 된 점입니다. CXL은 (기업용 x86 칩 점유율 91%를 차지하는) 인텔이 주도하는 만큼 앞으로 대부분의 CPU가 CXL을 지원할 것으로 보이는데, Gen-Z로 다른 노드나 메모리 서버와 연결하게 될 경우, CXL과 Gen-Z 간의 브릿지를 구성하는데 비용이 발생할 것으로 보이기 때문입니다.

 

마치며

이번 포스트에서는 메모리 중심 컴퓨팅의 필요성과 Gen-Z의 개요 및 특징을 소개하고, 향후 CXL 컨소시엄으로 흡수되는 상황에 관해 설명해 보았습니다. 앞으로 Gen-Z가 CXL 표준으로 통일되는 소식을 관심 깊게 지켜볼 예정입니다.

 

참고

  • https://www.forbes.com/sites/forbestechcouncil/2018/11/16/the-rise-of-memory-centric-architectures/?sh=26cc1c859525
  • https://www.electronicdesign.com/industrial-automation/article/21121821/whats-the-difference-between-opencapi-cxl-and-genz
  • https://www.plda.com/blog/category/technical-article/gen-z-primer-early-adopters
  • https://www.nextplatform.com/2020/01/09/gen-z-memory-servers-loom-on-the-horizon/
  • https://www.eetimes.com/cxl-will-absorb-gen-z/

 

각주

  1. Storage Class Memory(SCM): DRAM과 같이 바이트 단위로 접근이 가능하면서 비휘발성을 가지는 메모리의 일종으로, 메모리 계층에서 DRAM과 NAND SSD 사이에 위치함. 

  2. Compute Express Link (CXL): 인텔에서 주도하고 있는 오픈형 인터커넥트 표준으로, 호스트 프로세서와 CXL 디바이스 간에 저 지연 고대역폭 메모리 접근 환경을 구성하는 것을 목표로 함. 

  3. 출처: https://www.plda.com/blog/category/technical-article/gen-z-primer-early-adopters