Ryotta's Basic

System
🖥️ System 검증완료

title: NMP 아키텍처
date: 2025-06-30
category: system
tags: [NMP, Near-Memory Processing, DIMM-based NMP, CXL NMP, Data-Centric Computing, PNM, HBM-PIM, MRDIMM, CXL Memory Pooling, 메모리 중심 컴퓨팅]


NMP 아키텍처

개요

NMP(Near-Memory Processing)는 메모리 컨트롤러 근처 또는 3D 적층 메모리의 로직 레이어에 연산 유닛을 배치하여 데이터 이동 병목을 완화하는 컴퓨팅 아키텍처이다. PIM(Processing-In-Memory)이 메모리 셀 자체를 연산에 활용하는 반면, NMP는 별도의 연산 유닛을 메모리 근처에 두어 범용 연산 지원과 프로그래밍 용이성을 동시에 추구한다. 현대 AI/ML 워크로드의 급증으로 인해 CPU-메모리 간 데이터 이동 비용이 지배적인 워크로드에서 NMP의 중요성이 부각되고 있다.

데이터 중심 컴퓨팅(Data-Centric Computing) 패러다임으로의 전환은 프로세서 중심 구조의 한계를 극복하기 위한 노력에서 출발한다. 전통적인 von Neumann 구조에서는 CPU가 매 명령마다 메모리에서 데이터를 가져와 처리하고 다시 저장하는 과정을 반복하며, 이 과정에서 발생하는 에너지 소비와 지연 시간이 전체 시스템 성능의 병목이 된다. NMP는 이 문제를 물리적으로 해결하기 위해 메모리와 연산의 거리를 최소화하며, DIMM 기반, CXL 기반, HBM-PIM 등 다양한 구현 방식을 통해 실용화되고 있다.

핵심 개념

데이터 중심 컴퓨팅 패러다임

Data-Centric Paradigm

프로세서 중심(Processor-Centric) 컴퓨팅에서 데이터 중심(Data-Centric) 컴퓨팅으로의 전환은 컴퓨터 아키텍처의 근본적인 변화를 의미한다:

구분 프로세서 중심 데이터 중심
데이터 흐름 데이터를 CPU로 이동 후 처리 데이터가 있는 곳에서 직접 처리
대역폭 병목 CPU-메모리 버스로 제한 메모리 내부/근처에서 연산
에너지 소비 데이터 이동이 연산 대비 10-100배 데이터 이동 최소화로 절감
확장성 CPU 코어 수에 비례 메모리 용량과 비례
적합 워크로드 범용, 분기 많음 대용량 데이터, 병렬 처리

NMP는 이러한 데이터 중심 패러다임의 핵심 구현 기술로, von Neumann 병목현상을 물리적으로 완화한다.

NMP 분류 체계

NMP는 구현 위치와 인터커넥트 방식에 따라 세 가지 주요 카테고리로 분류된다:

분류 구현 방식 인터페이스 특징 대표 사례
DIMM 기반 NMP DIMM 폼팩터에 연산 유닛 통합 DDR5 인터페이스 기존 서버 인프라 호환 UPMEM, Chameleon
CXL 기반 NMP CXL 프로토콜로 메모리 풀링 CXL 인터커넥트 메모리 리소스 유연한 관리 CMM-D, XCENA
HBM-PIM HBM 스택 로직 레이어에 연산 HBM 인터페이스 초고대역폭, AI 가속 특화 Samsung HBM-PIM, SK Hynix AiM

DIMM 기반 NMP

DIMM-based NMP

DIMM 기반 NMP는 기존 DDR5 DIMM 폼팩터와 호환되는 연산 유닛을 통합하여, 서버 교체 비용 없이 NMP 기능을 추가하는 방식이다. DIMM 모듈의 버퍼/레지스터 칩에 연산 로직을 결합하며, 기존 DDR5 슬롯에 그대로 장착 가능하다.

DDR5 DIMM 인터페이스 특징:
- Dual 32-bit sub-channel 아키텍처로 64비트 데이터 버스 제공
- 최대 8,000 Mbps 전송 속도 (DDR5 RDIMM)
- On-die ECC로 신호 무결성 향상
- TSV(Through-Silicon Via) 기반 스택킹 지원

DIMM 기반 NMP 동작 원리:
1. CPU가 DIMM에 연산 명령을 DDR 인터페이스를 통해 전달
2. DIMM 내부 연산 유닛이 로컬 메모리 어레이에서 데이터 직접 접근
3. 연산 수행 후 결과를 메모리에 저장하거나 CPU에 반환
4. 기존 DDR 프로토콜과의 호환성을 통해 소프트웨어 수정 최소화

CXL 기반 NMP

CXL-based NMP

CXL(Compute Express Link) 기반 NMP는 PCIe 기반 고속 시리얼 인터커넥트를 활용하여 메모리 풀링과 근처 연산을 구현한다. CXL 프로토콜은 메모리 일관성을 보장하면서 여러 호스트가 하나의 메모리 리소스를 공유할 수 있게 한다.

CXL 프로토콜 세트:

프로토콜 기능 설명
CXL.io I/O 기반 PCIe 5.0 기반 설정, 링크 초기화, DMA
CXL.cache 캐시 일관성 디바이스가 호스트 CPU 메모리에 캐시 일관성 접근
CXL.mem 메모리 접근 호스트 CPU가 디바이스 메모리에 일관성 접근

CXL 디바이스 타입:
- Type 1: CXL.io + CXL.cache — 로컬 메모리 없는 가속기
- Type 2: CXL.io + CXL.cache + CXL.mem — GDDR/HBM 로컬 메모리 보유 가속기
- Type 3: CXL.io + CXL.mem — 메모리 확장 보드, 지속성 메모리

CXL 버전별 대역폭:

버전 물리 인터페이스 대역폭 (x16) 특징
CXL 1.x/2.0 PCIe 5.0 63 GB/s 메모리 풀링 지원
CXL 3.0/3.1 PCIe 6.0 121 GB/s 멀티레벨 스위칭, 펌웨어 기능
CXL 4.0 PCIe 6.0+ 242 GB/s 확장된 대역폭

CXL 메모리 풀링:
CXL 2.0 이상에서 여러 호스트가 하나의 메모리 디바이스를 공유할 수 있다. 가상 계층 구조를 통해 유연한 메모리 관리가 가능하며, 메모리 리소스의 동적 할당과 재구성이 지원된다. 이는 서버 간 메모리 불균형을 완화하고 자원 활용도를 높이는 핵심 기능이다.

HBM-PIM 구현

HBM(High Bandwidth Memory)은 3D 적층 기술을 통해 초고대역폭 메모리를 제공하며, 로직 레이어에 연산 유닛을 통합하여 NMP를 구현한다.

HBM4 스펙 (JEDEC 2025년 4월 공식 발표):

사양 내용
인터페이스 2048-bit (이전 세대 대비 2배)
전송 속도 Up to 8 Gb/s per pin
대역폭 Up to 2 TB/s per stack
스택 높이 4~16 die
최대 용량 64 GB (16-stack)

HBM-PIM은 이 로직 레이어에 AI 엔진을 통합하여, 데이터가 스택 내부에서 직접 연산을 수행할 수 있게 한다. Samsung HBM-PIM은 시스템 성능 2배 향상과 에너지 소비 70% 이상 절감을 달성했다.

비교/분석

NMP 구현 방식 비교

항목 DIMM 기반 NMP CXL 기반 NMP HBM-PIM
인터페이스 DDR5 CXL (PCIe 기반) HBM
대역폭 50-100 GB/s 63-242 GB/s 1-2 TB/s
지연 시간 낮음 ~200ns 추가 매우 낮음
연산 유연성 중간 높음 낮음
메모리 풀링 불가 가능 (CXL 2.0+) 불가
호환성 기존 DDR5 슬롯 CXL 지원 플랫폼 HBM 인터페이스 필요
비용 낮음 중간 높음
성숙도 높음 중간 (빠르게 성장 중) 중간
대표 제품 UPMEM PIM-DRAM CMM-D, XCENA Samsung HBM-PIM, SK Hynix AiM

NMP vs 기존 아키텍처 비교

항목 기존 CPU-메모리 NMP (DIMM) NMP (CXL) NMP (HBM)
데이터 흐름 CPU ←→ 메모리 CPU ←→ DIMM-NMP CPU ←→ CXL-메모리 CPU ←→ HBM-PIM
대역폭 50-100 GB/s 100-200 GB/s 63-242 GB/s 1-2 TB/s
에너지 효율 1x (기준) 3-5x 향상 2-4x 향상 10-20x 향상
메모리 용량 확장 DIMM 슬롯 제한 DIMM 슬롯 제한 메모리 풀링으로 확장 스택 수 제한
적합 워크로드 범용 패턴 기반 검색 대규모 데이터 분석 AI 추론/학습

주요 벤더/제품 비교

벤더 제품 타입 특징
Samsung CMM-D CXL 메모리 모듈 128GB~512GB, CXL 메모리 풀링
Samsung HBM-PIM HBM-PIM AI 추론 특화, 에너지 70% 절감
Samsung DDR5 MRDIMM DIMM 기반 8,800 Mbps, AI/HPC 최적화
SK Hynix HBM3E HBM 12-16 레이어, AI 가속
UPMEM PIM-DRAM DIMM 기반 DDR 인터페이스, 범용 PIM
XCENA MX1 CXL 연산 메모리 CXL Computational Memory Device
D-Matrix 3D DRAM 가속기 데이터 중심 생성형 추론 최적화

동작 원리

DIMM 기반 NMP 동작 흐름

  1. CPU 요청: CPU가 DIMM의 연산 유닛에 명령을 DDR 인터페이스를 통해 전달
  2. 명령 디코딩: DIMM 내부 연산 유닛이 명령을 디코딩하고 대상 메모리 주소 결정
  3. 로컬 데이터 접근: 연산 유닛이 같은 DIMM 내부의 메모리 어레이에서 데이터 직접 읽기
  4. 병렬 연산: SIMD 또는 벡터 연산을 통해 데이터 병렬 처리
  5. 결과 저장: 연산 결과를 로컬 메모리에 저장하거나 CPU에 반환

CXL 기반 NMP 동작 흐름

  1. CXL 링크 초기화: CXL.io 프로토콜을 통해 호스트와 CXL 디바이스 간 링크 설정
  2. 메모리 매핑: CXL.mem 프로토콜을 통해 호스트가 CXL 메모리를 주소 공간에 매핑
  3. 연산 오프로드: 호스트가 CXL 디바이스의 연산 유닛에 작업을 오프로드
  4. 캐시 일관성 유지: CXL.cache 프로토콜을 통해 호스트 CPU 캐시와 디바이스 간 일관성 유지
  5. 메모리 풀링: 여러 호스트가 CXL 메모리를 공유하여 유연한 리소스 관리

HBM-PIM 동작 흐름

  1. 모델 배치: CPU가 AI 모델 파라미터를 HBM 스택의 여러 뱅크에 분산 배치
  2. 입력 전달: 입력 데이터를 HBM 로직 레이어의 PIM 유닛에 전달
  3. 병렬 연산: 각 뱅크의 PIM 유닛이 로컬 가중치와 입력 데이터의 곱셈을 병렬 수행
  4. 결과 집계: 여러 뱅크의 연산 결과를 합산하여 최종 출력 생성
  5. 반복 처리: 딥러닝 네트워크의 경우 층별로 위 과정을 반복

장단점

장점 단점
데이터 이동 비용 대폭 절감 프로그래밍 모델 복잡성
에너지 효율성 향상 (3-20x) 기존 소프트웨어 수정 필요
DIMM 기반은 기존 인프라 호환 CXL 기반은 아직 생태계 발전 중
메모리 풀링으로 리소스 유연한 관리 디버깅/프로파일링 도구 부족
AI/ML, 그래프 처리 등에 최적화 온도 관리 문제
대규모 데이터 병렬 처리 지원 캐시 일관성 관리 복잡
HBM-PIM은 초고대역폭 제공 HBM 기반은 높은 비용

관련 기술

  • PIM/NMP 아키텍처 개요: PIM 기본 아키텍처와 분류 체계
  • PIM 응용: DNN/그래프/유전체 응용에서의 PIM 활용
  • Memory Hierarchy: 메모리 계층 구조와 NMP의 위치
  • Memory Controller: 메모리 컨트롤러와 NMP 통합
  • NUMA Architecture: NUMA 구조와 메모리 배치
  • Memory Interconnect: 메모리 인터커넥트와 NMP 통신
  • CXL Version Comparison: CXL 버전별 기능 비교
  • HBM Generation Comparison: HBM 세대별 스펙 비교
  • Samsung CMM-D: CXL 기반 메모리 풀링 솔루션
  • XCENA MX1: CXL Computational Memory Device (Hot Chips 2026)
  • UPMEM PIM-DRAM: DIMM 기반 범용 PIM 제품
  • CXL Consortium 스펙: CXL 1.0~4.0 표준
  • JEDEC HBM4 스펙: HBM4 공식 사양 (2025년 4월)
  • Ghose et al., IBM JRD 2019: PIM 워크로드 적합성 분석 survey

핵심 정리

NMP는 데이터 중심 컴퓨팅 패러다임의 핵심 구현 기술로, 메모리 근처에 연산 유닛을 배치하여 von Neumann 병목현상을 완화한다. DIMM 기반 NMP는 기존 DDR5 인프라와 호환되어 도입 비용을 절감하고, CXL 기반 NMP는 메모리 풀링을 통해 리소스 유연성을 제공하며, HBM-PIM은 초고대역폭으로 AI 추론/학습에 최적화된다. Samsung, SK Hynix, UPMEM 등의 벤더가 다양한 구현 방식을 출시하고 있으며, CXL 프로토콜의 발전과 함께 메모리 풀링 기능이 강화되고 있다. NMP는 프로그래밍 모델의 복잡성과 생태계 미성숙이라는 과제가 남아있지만, AI 워크로드의 대역폭 수요 증가와 함께 현대 컴퓨팅 시스템의 핵심 구성 요소로 자리매김하고 있다.