JEDEC 스펙으로 비교하는 LPDDR4/4X와 LPDDR5
샤오미의 Mi10, 갤럭시 S20 시리즈 등을 시작으로 iPhone12 프로까지 이제는 LPDDR5가 주요 스마트폰의 메모리로 채용되는 시점이라 JEDEC spec.을 바탕으로 LPDDR5에 대해 살펴보려 합니다. JEDEC spec.은 DRAM의 세대가 바뀔 때 마다 전력소모는 비슷한 수준을 유지하면서 대역폭을 두배로 향상시키는 것을 염두에 두고 정해지는데, 이번 글에서는 먼저 LPDDR4/4X 대비 LPDDR5에서 달라진 점들을 표로 간단히 정리한 후 항목 별로 하나씩 알아보도록 하겠습니다.
LPDDR4/4X | LPDDR5 | |
최대 전송 속도 | 4266Mbps | 6400Mbps |
전원 전압 (V) | VDD1 / VDD2 / VDDQ
1.8 / 1.1 / 1.1 (LPDDR4) 1.8 / 1.1 / 0.6 (LPDDR4X) |
VDD1 / VDD2H / VDD2L / VDDQ
1.8 / 1.05 / 0.9 / 0.5 ~ 0.3 |
Command/Data 클럭 | 동일 클럭 사용 (CK) | Command/Data 클럭이 분리 (CK/WCK) |
Bank 구조 | 8-bank | 4-bank x 4-bank groups
16-bank 8-bank |
DVFS | Frequency switching 지원 | Voltage/Frequency switching 지원 |
Deep Sleep Mode | 미지원 | 지원 |
Write-X | 미지원 | 지원 |
최대 전송 속도
Data 1-pin당, LPDDR4/4X의 최대 전송 속도는 4266Mbps, LPDDR5의 최대 전송 속도는 6400Mbps로 16-bit channel당 LPDDR4/4X는 8.5GB/s, LPDDR5는 12.8GB/s의 peak 대역폭을 달성할 수 있습니다. LPDDR4는 LPDDR3와 비교하여 최대 전송 속도 기준으로 두배의 전송속도를 가지지만 LPDDR5는 아직 초기 spec.이라 LPDDR4의 두 배에는 도달하지 못했습니다. 시간이 지나면 보다 빠른 전송 속도에 대한 spec. 이 추가 될 것으로 예상됩니다.
전원 전압
전력소모는 전원전압의 제곱에 비례하기 때문에 전력소모를 줄이기에 가장 효과적인 방법은 전원전압을 낮추는 것인데, DRAM의 전원전압은 크게 IO 전압과 코어 전압으로 나누어 집니다.
IO 전압 (VDDQ)
IO 전원(VDDQ)은 메모리 컨트롤러와 DRAM간의 데이터 전송에 사용되는 전원인데, LPDDR5의 경우 LPDDR4/4X에서 사용하던 1.1V/0.6V 전압을 좀 더 쥐어짜서 0.5V로 VDDQ를 낮추고 저속 동작시에는 0.3V까지 더 낮출 수 있도록 했습니다. 다만 JEDEC spec.에서 전송속도에 따라 VDDQ를 얼마나 낮춰야 하는지는 따로 명시하지 않고 DRAM 제조사의 재량에 맡기고 있습니다.
코어 전압(VDD1/VDD2H/VDD2L)
DRAM의 코어 전압은 word line을 구동하기 위한 VDD1과 IO를 제외한 나머지 대부분의 DRAM 회로에 사용되는 VDD2가 있습니다. LPDDR4/4X 에서는 VDD2 전원으로 1.1V를 사용했지만 LPDDR5는 전송속도에 따라 1.05V(VDD2H)와 0.9V(VDD2L)을 선택적으로 사용할 수 있도록 했습니다. JEDEC spec.상 VDD2L의 지원 또한 필수는 아니고 DRAM제조사의 재량에 맡겼는데, DRAM을 만들기가 점점 어려워 지면서 새로 제안된 feature들이 필수가 아닌 선택으로 돌려지는 경우가 많은 것 같습니다. 1.8V를 사용하는 VDD1 전원은 DRAM 전체 전력소모에서 차지하는 비율이 크지 않기 때문에 LPDDR5에서도 그대로 유지되었습니다.
Command/Data clock의 분리
LPDDR4/5 DRAM은 read 동작시에 DRAM에서 data(DQ)와 함께 data strobe(DQS/RDQS)를 보냅니다. 메모리 컨트롤러는 data strobe의 0->1/1->0 변화시점을 보고 언제 data를 받아들일지 결정하는데, LPDDR5에서 IO 클럭이 빨라지면서 data strobe와 data사이의 타이밍을 맞추는 것이 어려워 졌습니다. 이를 해결하기 위해 LPDDR4/4X에서 command/address와 data 전송에 동일한 클럭을 사용하던 구조를 LPDDR5에서는 command/address를 위한 클럭(CK)과 data 전송을 위한 클럭(WCK)을 분리하는 구조로 변경했습니다.
CK와 WCK를 분리하면 DRAM회로 내에서 strobe를 만들기 위한 clock path가 짧아져 클럭 jitter 특성 확보에 유리해 지는데 ref. [1]의 논문에 설명되어 있습니다. 위의 그림에서 (a)는 LPDDR4X의 클럭구조를 (b)는 LPDDR5의 클럭구조를 나타내는데, (a)에서는 DQS를 만들기 위한 클럭이 “Clock Buffer”를 건친 후 여러개의 버퍼(회색 삼각형)을 거치게 되어 jitter 특성이 나빠지지만 (b)에서는 별도의 “WCK buffer”를 통해 클럭을 공급 받은 뒤 훨씬 적은 수의 버퍼(흰색 삼각형)을 거치기 때문에 클럭 jitter의 영향이 적어지고 클럭 속도를 올리기에 유리해 집니다.
CK와 WCK를 분리하는 구조는 이미 고속의 IO 클럭을 사용하고 있던 GDDR 에서는 먼저 채용되고 있었지만 LPDDR5는 저전력을 염두에 두었기 때문에 GDDR과는 달리 data 전송이 있을때만 WCK를 사용하고 data 전송이 없을 때는 WCK를 끄는 기능도 추가로 지원합니다.
Bank 구조
Bank는 DRAM의 구성요소로 독립적으로 read/write 동작을 수행할 수 있는 최소 단위입니다. Bank 개수가 많아지면 동시에 여러 bank가 read/write 동작을 수행하면서 activate -> read/write -> precharge 동작에 걸리는 지연 시간을 숨길 수 있으므로 DRAM utilization이 올라갑니다. LPDDR4에서 8개이던 bank가 LPDDR5에서는 16개로 늘어났는데, 단순히 bank 개수만을 늘린것이 아니라 16개의 bank를 아래의 3가지 mode 중에 하나로 선택하여 사용할 수 있도록 했습니다.
- Bank group mode – Bank group당 4개의 bank, 4개의 bank group
- 8 bank mode – 8 개의 bank, bank group 없음
- 16 bank mode – 16 개의 bank, bank group 없음
전송속도 3.2Gbps를 기준으로 그 이하일 때는 16 bank mode를, 3.2Gbps 이상의 고속 동작시에는 bank group mode를 사용하여 16개의 bank를 4개의 bank group으로 나누어 사용하게 됩니다. Bank group을 나누면 접근하려는 bank가 같은 group인지 다른 group인지에 따라 DRAM command 사이의 시간 간격이 달라져야 하기 때문에 메모리 컨트롤러의 scheduling이 복잡해집니다. 가능하다면 전송 속도에 상관없이 16 bank mode를 쓸 수 있으면 좋지만 DRAM에는 read/write 동작시 클럭과 상관없이 고정된 시간이 걸리는 부분이 있기 때문에, 전송속도가 빨라져서 한 클럭에 해당하는 시간이 줄어들면 클럭 싸이클 기준 command 사이의 간격은 늘어나야 한다는 제약이 발생합니다. 이 경우 bank group mode를 사용하면 DRAM 내부 회로를 공유하는 부분이 적은 다른 bank group으로 향하는 command들에 대해서는 싸이클 간격을 늘리는 것을 피할 수 있어 DRAM utilization을 높일 수 있습니다.
Burst length를 32만 사용해도 문제가 없는 경우에는 전송속도에 상관없이 8-bank mode를 사용할 수 있는데, 이 때는 burst length에 의해 강제로 read/write command 사이의 간격이 16 burst를 사용할 때 보다 두배가 되므로 클럭속도가 빨라져도 command 사이의 간격에 문제가 생기지 않기 때문입니다. 아래 그림에 LPDDR5가 지원하는 bank 구조를 전송속도와 burst length와 함께 정리해 봤습니다.
DVFS (Dynamic Voltage and Frequency Scaling)
LPDDR4는 전원 전압(VDD2/VDDQ)은 변화하지 않고 클럭속도만 바뀌는 DFS(Dynamic Frequency Scaling)를 지원했지만, LPDDR5는 전원 전압과 클럭속도가 모두 바뀌는 DVFS(Dynamic Voltage and Frequency Scaling)을 지원합니다. LPDDR5의 DVFS는 다시 코어전압에 대한 DVFSC와 IO전압에 대한 DVFSQ로 나뉘는데 voltage scaling 방법에 차이가 있습니다.
DVFSC의 경우는 1.05V인 VDD2H와 0.9V인 VDD2L을 미리 공급하면서 저속 동작시에 DRAM 내부 회로의 일부가 VDD2H에서 VDD2L로 전원을 스위칭하게 됩니다. 앞에서 전원 전압을 설명하면서도 잠시 언급했지만 어느 정도 저속 동작시에 회로의 어느부분이 VDD2L로 동작해야 하는지는 JEDEC spec.에 정의되어 있지 않고 DRAM 제조사의 재량에 맡겨져 있습니다.
DVFSQ는 미리 0.5V와 0.3V를 공급받는 상태에서 스위칭하는 것이 아니라 단일 VDDQ전원이 0.5V와 0.3V로 변하는 것이 DVFSC와의 차이점 입니다. JEDEC spec.에서는 VDDQ전원이 어떤 순서로 바뀌어야 하는지는 정의하고 있지만 DVFSC와 마찬가지로 어느 정도 동작속도가 낮아졌을 때 0.3V를 써야 하는지는 DRAM 제조사의 재량에 맡기고 있습니다.
DVFS관련 LPDDR4대비 LPDDR5의 또 다른 차이는 FSP(Frequency Set Point)의 갯수가 2개에서 3개로 늘었다는 점 입니다. DRAM의 동작속도에 따라 timing parameter, ODT 사용 여부, reference voltage 정보 등을 저장할 MR(Mode Register) set이 FSP 개수만큼 제공되는데, LPDDR4는 두가지 동작속도를 사용할 수 있고 LPDDR5는 3가지 동작속도를 사용할 수 있어 필요한 메모리 대역폭 변화에 보다 효율적으로 대처할 수 있습니다.
Deep Sleep Mode (DSM)
모바일 기기는 대기전력을 줄이는 것이 중요하기 때문에 LPDDR5에서는 Deep Sleep Mode(DSM)가 추가됐습니다. LPDDR4에서는 Self Refresh Power-Down mode까지 제공하는데, 이 상태에서는 DRAM에 저장된 내용을 잃지 않기 위해 DRAM 내부적으로 refresh 동작은 수행하지만 IO 회로의 전원은 끊어 전력소모를 줄이게 됩니다. LPDDR5의 DSM에서는 여기에 더해, IO 뿐만 아니라 refresh와 관계없는 회로의 전원은 모두 끊고, refresh 동작에 필요한 전원 조차도 refresh 주기에 맞춰 필요할 때만 공급하게 됩니다. 꼭 필요한 전원이외의 다른 전원은 끄는 관계로 Self Refresh Power-Down 모드에 비해 entry/exit에 필요한 시간이 길어지는 trade-off는 감수해야 합니다.
Write-X
DRAM의 특정 영역을 0이나 1로 초기화 할 때 사용할 수 있는 저전력 기능입니다. 보통의 쓰기동작은 command/address를 DRAM에 보내고 write latency 이후에 DQ pin들을 통해 쓰고 싶은 data를 전송하게 됩니다. Write-X 명령을 사용하면 write command를 보내면서 data가 0인지 1인지 정보를 DRAM에 전달하기 때문에 DQ pin으로는 data를 전송하지 않고 쓰기동작을 수행하게 됩니다. 이 때 WCK 클럭을 사용하지 않는 것도 허용되기 때문에 DRAM 초기화 시의 전력소모를 줄이는데 도움이 됩니다.
References
[1] K. Ha et al., “A 7.5 Gb/s/pin 8-Gb LPDDR5 SDRAM With Various High-Speed and Low-Power Techniques,” in IEEE Journal of Solid-State Circuits, vol. 55, no. 1, pp. 157-166, Jan. 2020, doi: 10.1109/JSSC.2019.2938396.
정말 퍼가서 계속 두고 보고 싶은 자료 입니다. Data Sheet 혼자 보는것 보다. 한번에 1독만에 개략적인 차이점이 머리에 그려졌습니다. !
EDA분야에 일하게 되면서, 메모리와 칩에 대해 배우고 싶은게 너무 많아도 유익한 국문 글을 찾기 정말 어려웠는데, 사막의 오아시스 같은 글입니다!
전문성이 가미된 설명을 쉽게 풀어주셔서 정말 정말 감사드립니다!
조금이나마 도움이 되었다니 글을 쓴 보람이 느껴졌습니다. 커멘트 감사합니다.
감사합니다. Datasheet도 구하기 어려운데, 너무 도움되네요.
너무 감사드립니다! DDR 관련해서 좋은 글 잘 읽었습니다. datasheet 보면서 이해가 안되는 부분이 많았는데 명쾌하게 설명해주셨네요!
혹시 HBM 관련 내용은 다룰 예정이 없으신지 궁금합니다… HBM과의 비교도 궁금하네요ㅎㅎ
답글 감사합니다. HBM도 올해 안에 다뤄보려 합니다…
좋은 글 감사드립니다.
예전에 올려주신 bank group 모드 관련 글을 보고나서 궁금한점이 생겼는데요.
>3.2Gbps에서 8-bank와 bank group 모드가 지원되는데 8-bank의 tCCD는 bank group의 tCCD_S보다 큰 값을 갖는 건가요?
8-bank가 4 group인 bank group모드 보다 bank conflict이 날 확률이 1/2일텐데 tCCD값이 bank group의 tCCD_S보다 크지 않으면 bank group 모드를 사용하는 의미가 있나 싶어 질문 드렸습니다.
32-burst기준 8-bank mode에서 tCCD=4, BG mode에서 tCCD_S=2/tCCD_L=8이 됩니다. Bank Group/Bank 분포에 따라 BG mode가 성능이 떨어질 수 있지만 BG mode에서는 32-burst 대신 16-burst를 쓸 수 있다는 장점이 생깁니다. SoC에서 주로 사용하는 Read/Write의 단위가 (16-bit x 32-burst = 512-bit) 보다 작다면 (16-bit x 16-burst = 256-bit) 단위로 access가 가능한 BG mode가 유리할 수 있습니다. 참고로 LPDDR5 spec.에서는 tCCD_S/tCCD_L 대신에 effective burst length (BL/n)으로 command 사이의 간격을 표현하고 있으나 이해를 돕기위해 tCCD_S/tCCD_L이란 표현을 사용했습니다.
여전히 골수공돌이로서 활동이 활발하시군요~
LPDDR5 정보 찾다 들렀다 갑니다. ~
앗 반갑습니다. 잘 지내고 계시지요? ^^
안녕하세요
대학원생때 과제 진행하면서 참고 많이 했었는데
어느새 LPDDR5X를 설계하고 있네요
문득 생각나서 다시 들어와봤는데
다시보니 자료 퀄리티가 엄청나다는걸 발견하고 갑니다.
저보다 명료하게 알고 계신것 같아서 더 열심히 공부해야겠다 생각이 드네요
항상 행복하세요
종종 들르겠습니다
현업에 계신분으로부터 칭찬을 들으니 영광입니다!