DDR·LPDDR·GDDR 인터페이스
5장에서 DRAM이 명령을 받아 데이터를 꺼내는 순서를 배웠다. 그런데 꺼낸 데이터는 몇 센티미터의 PCB 배선을 지나 프로세서까지 가야 한다. 초당 수십억 번 뒤집히는 전압이 선 위에서 반사되고, 번지고, 옆 선과 간섭하는 세계 — 메모리 인터페이스의 물리층을 이 장에서 다룬다. DDR5 한 핀의 비트 하나는 156 ps, 신호가 PCB 배선 위를 약 2.3 cm 가는 시간 동안만 존재한다.
- SDR과 DDR의 차이, 데이터 스트로브(DQS)의 역할, 프리페치가 느린 코어와 빠른 I/O를 잇는 원리를 설명할 수 있다.
- DDR3~5, LPDDR4X~6, GDDR6~7의 핀 속도·버스 폭·전압을 비교하고 \(BW = R_{pin}\times W/8\)로 대역폭을 계산할 수 있다.
- 전송선의 특성 임피던스와 반사 계수 \(\Gamma\)를 이해하고, ODT가 왜 필요한지 설명할 수 있다.
- 아이 다이어그램에서 아이 높이·폭을 읽고, ISI·지터·노이즈와 FFE·DFE 이퀄라이저의 효과를 안다.
- 쓰기 레벨링, DQ·Vref 트레이닝이 무엇을 보정하는지, NRZ·PAM4·PAM3의 SNR 트레이드오프를 설명할 수 있다.
- UDIMM·RDIMM·LRDIMM·MRDIMM, LPCAMM2의 구조와 I/O 전력(pJ/bit)을 비교할 수 있다.
칩 밖으로 나가는 선: 왜 인터페이스가 중요한가
1장에서 본 메모리 월(Memory Wall)은 결국 "DRAM 칩에서 프로세서로 초당 몇 바이트를 옮길 수 있는가"의 문제다. DRAM 코어 내부는 한 번의 활성화(ACT)로 칩당 1 KB(8,192비트)짜리 로우 전체를 센스 앰프에 올려놓을 만큼 병렬성이 풍부하다(4장). 병목은 칩 경계, 즉 패키지 핀과 PCB 배선이다. 핀 수는 패키지 크기와 비용 때문에 쉽게 늘릴 수 없으므로, 남은 방법은 핀 하나당 속도를 올리는 것이다.
핀 속도는 20여 년 동안 약 50배 빨라졌다. 2000년 무렵 SDR SDRAM(PC133)이 핀당 0.133 Gb/s였다면, 2024~2025년의 DDR5는 6.4~8.8 Gb/s, 그래픽용 GDDR7은 28~32 Gb/s에 이른다. 이 속도에서는 PCB 배선이 더 이상 '전선'이 아니라 전송선(transmission line)이 되고, 비트 하나가 선 위에 머무는 시간이 선을 지나가는 시간보다 짧아진다. 이 장의 주제는 그 결과로 생기는 문제들과 해결책이다.
숫자로 감을 잡자. DDR5-6400 DIMM 하나는 초당 51.2 GB를 전송한다. 12채널 DDR5-6400을 쓰는 2024년형 서버 CPU(64~128코어)라면 총 614 GB/s지만, 128코어로 나누면 코어당 약 4.8 GB/s에 불과하다. 코어 수가 늘어나는 속도를 메모리 대역폭이 따라가지 못하는 것이 7장 HBM과 이 장의 고속 인터페이스가 존재하는 이유다.
데이터율은 핀당 초당 전송 횟수로 적는다. "DDR5-6400"은 6400 MT/s(= 6.4 Gb/s/핀, NRZ에서 1 전송 = 1 비트)이고, 클럭은 그 절반인 3200 MHz다. 비트 하나의 시간 폭을 UI(Unit Interval)라 하며 \(UI = 1/R_{pin}\)이다(6.4 Gb/s → 156.25 ps).
SDR에서 DDR로: 양 에지, 스트로브, 프리페치
SDR(Single Data Rate) SDRAM은 클럭의 상승 에지에서만 데이터를 주고받았다. 클럭 한 주기에 비트 하나다. 데이터율을 두 배로 올리려면 클럭도 두 배로 올려야 하는데, 클럭은 데이터보다 두 배 빠르게 토글하는 신호(한 주기에 전이 2번)라서 채널 대역폭을 가장 많이 잡아먹는다. DDR(Double Data Rate)은 발상을 바꿔 상승과 하강 에지 모두에서 데이터를 보낸다. 클럭 주파수는 그대로 두고 데이터율만 두 배가 된다. 이제 클럭과 데이터의 최고 토글 주파수가 같아진다.
프리페치: 느린 코어, 빠른 I/O
DDR의 데이터율은 세대마다 두 배씩 올라갔지만, DRAM 셀 어레이의 속도는 거의 그대로였다. 긴 비트라인에 매달린 작은 커패시터를 센스 앰프로 읽는 동작(4장)은 물리적으로 수 ns가 걸리고, 코어 동작 주파수는 20년 동안 대략 100~400 MHz 범위에 머물러 있다. 이 격차를 메우는 기술이 프리페치(prefetch)다. 한 번의 컬럼 접근에서 DQ 핀 하나당 \(n\)비트를 병렬로 읽어 두고, I/O 쪽의 직렬화기(serializer, MUX)가 이를 \(n\)배 빠른 속도로 한 줄로 내보낸다.
SDR(1n) → DDR(2n) → DDR2(4n) → DDR3(8n)로 프리페치가 두 배씩 깊어진 덕분에 코어는 제자리에서 I/O만 빨라질 수 있었다. 그런데 프리페치 깊이는 곧 최소 전송 단위다. 64비트 채널에서 16n을 쓰면 한 번에 128 B가 나와서 CPU 캐시 라인(64 B)의 두 배가 된다. 그래서 DDR4는 8n을 유지하는 대신 뱅크 그룹을 도입해 서로 다른 그룹을 번갈아 접근했고(5장의 tCCD_S/tCCD_L), DDR5는 16n으로 가면서 채널을 32비트 서브채널 2개로 쪼개 64 B 단위를 지켰다.
DQS: 데이터와 함께 달리는 시계
수 GHz에서는 컨트롤러가 보낸 클럭과 DRAM이 돌려보낸 데이터 사이의 비행 시간(flight time)이 UI보다 길어진다. 공통 클럭 하나로는 "언제 샘플할지"를 정할 수 없다. 그래서 DDR은 데이터 옆에 데이터 스트로브(DQS)라는 전용 시계를 같이 보낸다. 보내는 쪽이 데이터와 DQS를 함께 내보내므로(소스 동기(source-synchronous) 방식), 둘은 같은 배선 길이를 같이 달려 도착 시각 차이가 작다. DQS는 보통 바이트(×8) 또는 니블(×4)마다 한 쌍의 차동 신호(DQS_t/DQS_c)로 둔다.
DQS는 양방향이라 버스가 쉬고 있을 때는 아무도 구동하지 않는다. 그래서 버스트 앞에 프리앰블(preamble), 뒤에 포스트앰블을 붙여 수신기가 "이제 진짜 에지가 온다"는 것을 알게 한다. 컨트롤러가 읽기 DQS를 받아들이기 시작하는 창을 정하는 것을 DQS 게이팅이라 하는데, 이 창의 위치도 뒤에서 볼 트레이닝으로 찾는다.
LPDDR5와 GDDR6/7은 한 걸음 더 나아가 명령용 클럭 CK와 별도로 데이터 전용의 고속 클럭 WCK(Write Clock)를 둔다. 예를 들어 LPDDR5-6400은 CK를 800 MHz로 느리게 두고, WCK를 3.2 GHz(CK의 4배)로 돌려 그 양 에지에서 데이터를 옮긴다. 명령 버스는 느리게, 데이터 버스만 빠르게 — 전력을 아끼는 설계다.
SDR·DDR 전송 파형과 프리페치
제품 스펙의 "DDR5-6400"을 "6400 MHz"로 적는 경우가 흔하지만 정확히는 6400 MT/s다. 실제 CK는 3200 MHz, 코어는 약 400 MHz로, 한 칩 안에 세 가지 '속도'가 공존한다.
세대별 규격과 대역폭 계산
DRAM 인터페이스는 용도에 따라 세 갈래로 진화했다. DDR은 PC·서버의 DIMM용으로 용량과 확장성(슬롯에 꽂는 모듈, 여러 랭크)을 중시한다. LPDDR(Low-Power DDR)은 스마트폰·노트북용으로 SoC 바로 옆에 납땜해 배선을 짧게 하고 전압을 낮춰 전력을 아낀다. GDDR(Graphics DDR)은 GPU용으로 GPU 주위에 칩을 1:1로 배치하고 핀당 속도를 극한까지 올린다. 셋 모두 대역폭은 같은 식으로 계산한다.
| 규격 | 핀당 속도 (Gb/s) | 채널 구조 | VDDQ | 프리페치 / 신호 | 대역폭 예 |
|---|---|---|---|---|---|
| DDR3 | 0.8–2.13 | 64비트 채널 (DIMM) | 1.5 V (DDR3L 1.35) | 8n · SSTL | DDR3-1600 DIMM: 12.8 GB/s |
| DDR4 | 1.6–3.2 | 64비트 채널, 뱅크 그룹 | 1.2 V | 8n · POD12 | DDR4-3200 DIMM: 25.6 GB/s |
| DDR5 | 4.8–8.8 | 32비트 서브채널 ×2 | 1.1 V | 16n · POD11, DFE | DDR5-6400 DIMM: 51.2 GB/s |
| LPDDR4X | ~4.27 | 16비트 채널 (패키지당 2~4개) | 0.6 V | 16n · LVSTL | 64비트 @4.27: 34 GB/s |
| LPDDR5 | ~6.4 | 16비트 채널, WCK | 0.5 V | 16n · LVSTL | 64비트: 51.2 GB/s |
| LPDDR5X | ~8.5 (최대 ~10.7, 2024~) | 16비트 채널, WCK | 0.5 V | 16n · LVSTL | 128비트 @8.53: 136 GB/s |
| LPDDR6 | ~10.7–14.4 (2025 규격) | 24비트 채널 (12비트 서브채널 ×2) | ≲0.5 V | BL24 · NRZ | 2026년 양산·탑재 시작 |
| GDDR6 | 14–20 (최대 ~24) | 칩당 32비트 (16비트 채널 ×2) | 1.35 V | 16n · POD, NRZ | 256비트 @20: 640 GB/s |
| GDDR6X | 19–24 | 칩당 32비트 | 1.35 V | PAM4 | 384비트 @21: 1008 GB/s |
| GDDR7 | 28–32 (로드맵 ~40+) | 칩당 32비트 (8비트 채널 ×4) | 1.2 V | PAM3 | 512비트 @28: 1792 GB/s |
| HBM3E (참고, 7장) | ~8–9.8 | 스택당 1024비트 | — | NRZ, 저속·광폭 | 스택당 ~1.2 TB/s |
표에서 두 가지 경향이 보인다. 첫째, 전압이 세대마다 내려간다(DDR3 1.5 V → DDR5 1.1 V, LPDDR5 0.5 V). 뒤에서 보듯 I/O 전력이 \(V^2\)에 비례하기 때문이다. 둘째, 속도가 오를수록 채널이 좁아진다. DDR5는 64비트를 32비트 두 개로, GDDR7은 32비트 칩을 8비트 채널 넷으로, LPDDR6는 24비트 채널을 12비트 둘로 나눴다. 채널이 좁을수록 독립적인 요청을 더 많이 동시에 처리할 수 있고, 긴 버스트로도 64 B 단위를 유지할 수 있다.
LPDDR은 DIMM이 아니라 패키지 단위로 생각한다. 칩 하나(다이)에 16비트 채널이 두 개 있고, 패키지 하나에 다이를 여러 장 쌓아 32~64비트를 만든다. 스마트폰 SoC는 보통 64비트, 노트북·태블릿용 SoC는 128비트 이상을 쓴다. 배선이 짧고(수 mm~수 cm) 부하가 가벼워 낮은 전압에서도 빠르게 달릴 수 있지만, 모듈처럼 교체하거나 확장하기는 어렵다. GDDR은 GPU 둘레에 32비트 칩 8~16개를 배치해 256~512비트 버스를 만든다. 칩과 GPU가 점대점(point-to-point)으로 짧게 연결되고 칩당 부하가 하나뿐이라 20~30 Gb/s가 가능하다.
메모리 대역폭 계산기
대역폭 계산식은 "모든 UI에 유효 데이터가 실려 있다"고 가정한다. 실제로는 리프레시(tRFC 동안 뱅크 정지), 읽기↔쓰기 전환(tWTR, 버스 턴어라운드), 로우 미스 시의 PRE+ACT 지연(5장) 때문에 빈 UI가 생긴다. 무작위 접근이 많은 서버 워크로드에서는 실효 대역폭이 피크의 60~70%까지 떨어지기도 한다.
신호 무결성 ①: 전송선과 반사
신호가 배선을 지나는 속도는 유한하다. FR-4 기판 내부(유효 유전율 \(\varepsilon_{eff}\approx 4\))에서 전파 속도는 빛의 절반, 약 15 cm/ns — 1 mm에 약 6.7 ps다. 6.4 Gb/s의 UI 156 ps 동안 신호는 약 2.3 cm밖에 못 간다. 컨트롤러에서 DIMM까지 5~10 cm라면 선 위에 비트가 여러 개 '떠 있는' 상태가 된다. 이렇게 배선 길이가 신호 상승 시간 동안 이동하는 거리의 약 1/6을 넘으면 선을 집중 소자(lumped)가 아닌 전송선으로 다뤄야 한다.
드라이버가 스텝 전압 \(V_S\)를 내면 선에는 처음에 분압 \(V^+ = V_S\,Z_0/(R_{on}+Z_0)\)만 실린다. 이 파가 \(t_d\) 뒤 수신단에 닿아 \(\Gamma_L V^+\)만큼 반사되고, 반사파가 다시 드라이버로 돌아가 \(\Gamma_S\)만큼 재반사되고…. 이 링잉(ringing)이 가라앉기 전에 다음 비트가 오면 이전 비트의 잔상이 현재 비트에 더해진다. 수신단 입력은 CMOS 게이트라 거의 개방(\(\Gamma_L\approx +1\))이므로, 아무 조치가 없으면 전압이 두 배로 튀었다가 흔들린다.
해법이 ODT(On-Die Termination)다. DRAM 다이 안의 수신기 바로 옆에 \(Z_0\)와 비슷한 종단 저항을 켜서 \(\Gamma_L\to 0\)으로 만든다. DDR2부터 도입되었고, 모드 레지스터로 34~240 Ω 사이에서 고르며, 읽기·쓰기·대기 상태마다 다른 값(RTT_WR, RTT_NOM, RTT_PARK)을 쓸 수 있다. 여러 랭크가 한 버스를 공유하면 데이터를 받지 않는 랭크도 적당한 종단을 켜서 스텁 반사를 줄인다. 드라이버 쪽 \(R_{on}\)도 \(Z_0\) 근처(34 Ω, 40 Ω, 48 Ω)로 맞춰 재반사를 흡수한다.
전송선 반사와 ODT
크로스토크, 동시 스위칭 노이즈
나란히 달리는 두 배선은 상호 커패시턴스와 상호 인덕턴스로 결합되어, 한 선(공격선, aggressor)의 전이가 옆 선(피해선, victim)에 잡음을 만든다. 이것이 크로스토크(crosstalk)다. 드라이버 쪽에 나타나는 근단(NEXT)과 수신단 쪽의 원단(FEXT)으로 나뉘며, 배선 간격을 넓히고(보통 선폭의 2~3배), 접지 가드를 두고, 층을 바꿀 때 비아 근처 귀환 경로를 확보해 줄인다. 또 64개 DQ가 동시에 0→1로 뒤집히면 전원망에 큰 전류 스파이크가 생겨 전원·접지가 출렁인다(SSN, 동시 스위칭 노이즈). DDR4부터 도입된 DBI(Data Bus Inversion)는 바이트 안에 0이 절반을 넘으면 데이터를 반전해 보내고 DBI 핀으로 알려 준다. POD 종단에서는 '0'을 보낼 때만 전류가 흐르므로 DBI가 SSN과 전력을 동시에 줄인다.
신호 무결성 ②: 아이 다이어그램과 이퀄라이제이션
고속 링크의 건강 상태를 한 장으로 보여 주는 그림이 아이 다이어그램(eye diagram)이다. 무작위 비트열을 보내며 수신 파형을 UI 단위로 잘라 겹쳐 그리면 가운데에 눈 모양의 빈 공간이 생긴다. 수신기는 눈의 한가운데(시간축: 샘플 시점, 전압축: 기준 전압 \(V_{ref}\))에서 '0/1'을 판정하므로, 눈이 넓게 열릴수록 판정 여유가 크다.
눈을 닫는 주범은 셋이다.
- ISI(Inter-Symbol Interference, 심볼 간 간섭): 채널이 저역 통과 필터처럼 동작해 비트 하나의 응답이 여러 UI에 걸쳐 번진다. 구리선의 표피 효과 손실은 \(\sqrt{f}\)에, 유전체 손실은 \(f\)에 비례해 커지므로, 데이터율이 두 배가 되면 나이퀴스트 주파수(\(f_N = R/2\))에서의 손실도 대략 두 배(dB)가 된다. "0000 1 0000"처럼 고립된 비트가 가장 피해를 본다.
- 지터(jitter): 전이 시점의 흔들림. 열잡음 등에서 오는 무작위 지터(RJ, 가우시안, 제한 없음)와 ISI·크로스토크·듀티 사이클 왜곡 등에서 오는 결정적 지터(DJ, 유한)로 나눈다.
- 노이즈: 크로스토크, 전원 노이즈(SSN), 반사, 수신기 열잡음. 아이를 세로로 흐리게 만든다.
노이즈가 가우시안이라면 판정 오류 확률, 즉 BER(Bit Error Rate)은 두 레벨 사이 간격과 노이즈 표준편차의 비 \(Q\)로 정해진다.
이퀄라이제이션: 채널의 역필터
채널이 고주파를 깎아 먹는다면, 그만큼 고주파를 미리 키우거나(송신측) 나중에 키우면(수신측) 된다. 이것이 이퀄라이제이션(equalization)이다.
- FFE(Feed-Forward Equalizer): 송신측 FIR 필터. 가장 단순한 2탭 형태가 디엠퍼시스로, 전이가 있는 비트는 크게, 같은 값이 이어지는 비트는 작게 보낸다. \(y_k = c_0 x_k + c_{1} x_{k-1}\), \(c_1 < 0\).
- CTLE(Continuous-Time Linear Equalizer): 수신측 아날로그 고역 강조 필터. 간단하지만 고주파 노이즈도 같이 키운다.
- DFE(Decision Feedback Equalizer): 수신측에서 이미 판정한 이전 비트가 현재 비트에 남긴 잔상(post-cursor ISI)을 계산해 빼 준다. 판정된 디지털 값을 쓰므로 노이즈를 키우지 않는다는 것이 장점이다. DDR5는 DRAM 수신기에 4탭 DFE를 규격으로 넣었다.
아이 다이어그램 시뮬레이터
트레이닝: 매 부팅마다 링크를 조율한다
UI가 156 ps인데 보드마다, 칩마다, 핀마다 배선 길이와 트랜지스터 특성이 수십 ps씩 다르다. 설계 단계에서 고정한 지연값으로는 눈 한가운데를 맞출 수 없다. 그래서 메모리 컨트롤러는 전원이 켜질 때마다 각 신호의 지연과 기준 전압을 실측해 최적점을 찾는다. 이 과정을 트레이닝(training, calibration)이라 한다. PC의 BIOS/UEFI에서 이를 담당하는 코드를 흔히 MRC(Memory Reference Code)라 부르며, 새 메모리를 꽂은 뒤 첫 부팅이 수십 초씩 걸리는 이유가 바로 이것이다(이후에는 결과를 저장해 두고 재사용한다).
DDR5 기준으로 트레이닝은 대략 다음 순서로 진행된다.
읽기·쓰기 DQ 트레이닝의 핵심은 "통과/실패 경계 찾기"다. 샘플 지연을 한 스텝(수 ps)씩 옮기며 패턴을 비교하면 통과 구간의 왼쪽·오른쪽 끝이 나오고, 그 가운데가 눈의 중앙이다. 여기에 Vref까지 스윕하면 시간×전압 2차원 통과 영역, 즉 실측 아이가 그려진다. DDR4부터 DQ 수신기의 기준 전압(VrefDQ)이 DRAM 내부에서 생성되고 모드 레지스터로 조정되는데, POD 종단에서는 '1' 레벨이 VDDQ이고 '0' 레벨이 분압비로 정해져 신호 중앙이 VDDQ/2가 아니기 때문이다.
동작 중 온도가 수십 ℃ 변하면 DRAM 내부 DQS 경로 지연(tDQS2DQ)이 수십 ps 표류한다. LPDDR4/5와 DDR5는 DRAM 안에 DQS 인터벌 오실레이터를 두어 컨트롤러가 이 표류를 주기적으로 측정하고 보정할 수 있게 했다. ZQ 캘리브레이션도 주기적으로(예: 수백 ms 간격) 다시 수행한다. 고속 링크는 결국 '정적인 배선'이 아니라 계속 조율되는 제어 시스템이다.
NRZ, PAM4, PAM3: 한 심볼에 더 많은 비트
지금까지는 전압 레벨 두 개로 0과 1을 나타내는 NRZ(Non-Return-to-Zero, = PAM2)를 가정했다. 채널 손실이 주파수에 따라 급격히 커지면 심볼률(Baud)을 더 올리기 어려워진다. 대안은 한 심볼에 여러 비트를 담는 다중 레벨 신호, PAM(Pulse Amplitude Modulation)이다. 레벨이 \(M\)개면 심볼당 \(\log_2 M\)비트를 실을 수 있어, 같은 비트율에서 심볼률과 나이퀴스트 주파수가 그만큼 낮아진다.
GDDR6X(2020, 마이크론)는 PAM4로 핀당 19~21 Gb/s를 10.5 GBaud 수준의 심볼률로 전송했다. 레벨 0↔3처럼 큰 전이를 피하는 인코딩(MTA, Maximum Transition Avoidance)으로 전력과 노이즈를 줄였지만, 판정 기준이 3개라 수신기와 트레이닝이 훨씬 복잡해졌다. GDDR7(JEDEC 규격 2024)은 중간 해법인 PAM3를 택했다. 3개 레벨 심볼 2개로 9가지 조합을 만들고 그중 8가지로 3비트를 표현한다. PAM4보다 아이가 1.5배 크고(1/2 vs 1/3), NRZ보다 심볼률이 2/3로 낮아, 28~32 Gb/s(심볼률 약 19~21 GBaud)에서 균형이 맞는다.
NRZ vs PAM3 vs PAM4
모듈과 패키지: UDIMM부터 LPCAMM2까지
DDR 메모리는 칩 여러 개를 모은 DIMM(Dual In-line Memory Module)으로 시스템에 꽂힌다. 한 채널에 칩이 많이 매달릴수록 부하(커패시턴스)가 커져 신호가 느려지므로, 용량과 속도를 모두 잡으려고 모듈 위에 버퍼 칩을 넣는 방향으로 진화했다.
| 모듈 | 버퍼 | 특징 | 용도 |
|---|---|---|---|
| UDIMM / SODIMM | 없음 (DDR5는 PMIC·SPD 허브 포함) | 저지연·저가. 채널당 1~2 DIMM | 데스크톱, 노트북 |
| CUDIMM / CSODIMM | 클럭 드라이버(CKD) | 클럭만 재구동해 DDR5-6400 이상 안정화 (2024~) | 고성능 PC |
| RDIMM | RCD | CA 부하 분리, ECC(×72/×80) 표준. 지연 +1 클럭 | 서버 |
| LRDIMM | RCD + 데이터 버퍼 | DQ 부하까지 분리, 많은 랭크·대용량 | 대용량 서버 |
| MRDIMM | MRCD + MDB | 2랭크 다중화, 1세대 8800 MT/s, 로드맵 12800 MT/s | AI·HPC 서버 |
| LPCAMM2 | — | LPDDR5X 128비트를 압착식 모듈로, 교체 가능 | 얇은 노트북 (2024~) |
DDR5는 DIMM 구조 자체도 바꿨다. PMIC(Power Management IC)가 메인보드 대신 모듈 위에서 12 V(서버) 또는 5 V(PC)를 받아 1.1 V 등으로 변환해, 칩 가까이에서 전원 품질을 지킨다. 온다이 ECC는 DRAM 칩 내부에서 128비트 데이터마다 8비트 패리티를 붙여 셀 단일 비트 오류를 스스로 고친다. 미세 공정에서 늘어난 셀 불량과 가변 리텐션(4장)을 흡수하기 위한 것으로, 호스트에게는 보이지 않는다. 채널 전송 오류나 칩 전체 고장까지 막으려면 여전히 RDIMM의 추가 ECC 칩(사이드밴드 ECC)이 필요하다. 이 둘의 차이는 11장에서 자세히 다룬다.
LPDDR은 모듈 대신 패키지 형태가 핵심이다. 과거 스마트폰은 AP 위에 메모리 패키지를 그대로 얹는 PoP(Package on Package)를 많이 썼고, 최근 고성능 SoC는 메모리 패키지를 SoC 기판 위에 나란히 올리는 온패키지(SiP) 구성을 쓴다(예: 노트북용 Arm SoC). 배선이 수 mm라 종단 없이도, 혹은 약한 종단만으로 8 Gb/s 이상이 가능하다. 단점은 교체·업그레이드 불가였는데, JEDEC CAMM2 규격(2023)에 따른 LPCAMM2는 LPDDR5X를 압착 커넥터 모듈로 만들어 이 문제를 풀었다. 서버에서도 LPDDR5X 모듈(SOCAMM, 약 2025~)이 AI 가속기 옆 CPU 메모리로 쓰이기 시작했다.
I/O 전력: 비트 하나를 옮기는 데 드는 에너지
데이터 센터에서 메모리는 전체 전력의 상당 부분(서버에 따라 20~40%)을 쓰고, 그중 큰 몫이 칩 밖으로 비트를 옮기는 I/O다. 인터페이스의 효율은 pJ/bit(비트 하나 전송에 드는 에너지)로 비교한다. 1 pJ/bit로 1 TB/s(8 Tb/s)를 옮기면 8 W다.
식에서 전력을 줄이는 세 가지 손잡이가 보인다. 전압(\(V^2\): LPDDR4 → LPDDR4X에서 VDDQ를 1.1 V → 0.6 V로 낮춰 I/O 전력을 크게 줄였다), 커패시턴스(배선을 짧게: LPDDR의 온패키지, HBM의 인터포저), 종단(짧은 배선이면 종단을 빼거나 약하게). HBM이 pJ/bit에서 압도적인 이유는 세 가지를 모두 쓰기 때문이다. 수 mm의 실리콘 인터포저 배선, 낮은 전압, 종단 없음, 그리고 핀당 속도를 낮게(~9 Gb/s) 유지해 복잡한 이퀄라이저도 필요 없다(7장).
| 인터페이스 | 시스템 에너지 (pJ/bit, 대략) | 배선 길이 | 비고 |
|---|---|---|---|
| DDR4/DDR5 DIMM | ~10–20 | 수~10 cm, 커넥터 | 종단 필수, 다중 랭크 부하 |
| GDDR6/GDDR7 | ~5–8 | 수 cm, 점대점 | 고속 I/O가 에너지의 큰 몫 |
| LPDDR5/5X | ~4–6 | 수 mm~수 cm | 저전압, 약한 종단, DVFS |
| HBM3/HBM3E | ~3–4 | 수 mm (인터포저) | 종단 없음, 저속·광폭 |
표의 값은 DRAM 코어 접근과 컨트롤러 PHY를 포함한 대략적인 범위로, 문헌·세대·동작 조건에 따라 편차가 크다(2020~2025년 공개 자료 기준). I/O 부분만 떼어 보면 이보다 작다.
I/O 전력 계산기
핵심 정리
- DDR은 클럭 양 에지에서 데이터를 보내 같은 클럭으로 두 배의 데이터율을 낸다. DDR5-6400 = 6.4 Gb/s/핀, CK 3.2 GHz, UI 156 ps.
- 프리페치(1n → 2n → 4n → 8n → 16n)는 코어(~200–400 MHz)와 I/O(수 GHz)를 분리한다. 프리페치 깊이는 최소 전송 단위를 정하므로, DDR5는 32비트 서브채널 ×2로 64 B 단위를 유지했다.
- DQS는 데이터와 함께 보내는 소스 동기 스트로브다. 쓰기는 center-aligned, 읽기는 edge-aligned이고 컨트롤러가 90° 지연시켜 샘플한다. LPDDR5·GDDR은 별도의 고속 WCK를 쓴다.
- 대역폭 = 핀 속도 × 폭 / 8 × 채널 수. DDR5 DIMM 51.2 GB/s, GDDR7 512비트 ~1.8 TB/s, HBM3E 스택 ~1.2 TB/s. 실효 대역폭은 피크보다 10–30% 이상 낮다.
- 배선은 전송선이다. 반사 계수 \(\Gamma = (Z_L - Z_0)/(Z_L + Z_0)\)를 0에 가깝게 하려고 ODT와 드라이버 임피던스를 \(Z_0\)(~40 Ω) 근처로 맞춘다.
- 아이 다이어그램의 높이는 노이즈·ISI 여유, 폭은 지터 여유를 나타낸다. 채널 손실로 인한 ISI는 FFE(송신)·CTLE·DFE(수신)로 되돌릴 수 있지만 무작위 노이즈는 되돌릴 수 없다.
- 트레이닝(ZQ, CA, 쓰기 레벨링, 읽기/쓰기 DQ, Vref)은 fly-by 토폴로지와 공정·배선 편차를 매 부팅마다 보정하며, 동작 중에도 주기적으로 재조정한다.
- PAM4는 심볼당 2비트지만 아이가 1/3(−9.5 dB), PAM3(GDDR7)는 1.5비트에 아이 1/2(−6 dB)다. 채널 손실이 클 때만 NRZ보다 유리하다. I/O 에너지는 \(\alpha CV^2\)과 종단 전류로 정해지며 HBM ~3–4, LPDDR ~4–6, DDR DIMM ~10–20 pJ/bit 수준이다.
확인 퀴즈
1. DDR5-6400에서 16n 프리페치를 쓸 때, DRAM 코어 쪽 동작 주파수는 약 얼마인가?
2. GDDR7 28 Gb/s 칩 16개로 512비트 버스를 구성한 GPU의 피크 메모리 대역폭은?
3. Z₀ = 40 Ω 선의 끝에 ODT를 끈 CMOS 수신기(거의 개방)가 달려 있다. 수신단 반사 계수와 첫 도착 전압은?
4. DFE(결정 궤환 이퀄라이저)가 CTLE보다 유리한 점으로 옳은 것은?
5. 쓰기 레벨링(write leveling)이 필요한 가장 직접적인 이유는?
6. 같은 스윙과 같은 노이즈에서 PAM4의 아이 높이는 NRZ 대비 얼마이며, 그럼에도 PAM4를 쓰는 이유는?