Goolge_adsense_default_ad




DDR3와 LPDDR3의 차이점 비교 메모리란 이런것!


(그림은 클릭하면 크게 보입니다. 애플 코리아 홈페이지 화면 캡쳐 후 취합)

맥북 에어와 맥북 프로의 스펙을 찬찬히 들여다 보고 있다보면 한가지 특이한 점이 눈에 띕니다. 성능보다 배터리 수명이 중요한 맥북 에어의 경우 LPDDR3 SDRAM을 내장하고 있고 반대인 맥북 프로는 DDR3L SDRAM을 내장하고 있습니다. DDR3L은 DDR3 중에서 특성이 좋은 샘플들을 골라 10% 낮은 전원에서 동작시키는 점 이외에는 DDR3와 동일하니 이 글에서는 그냥 DDR3로 간주 하겠습니다. LPDDR3의 부품 가격이 DDR3에 비해 비싸기 때문에 스마트폰이나 태블릿이 아닌 랩탑 컴퓨터에서는 LPDDR3를 채용하는 경우가 극히 드문 편인데 맥북 에어의 경우 사용시간을 최대한 늘리기 위해 제품에 맞는 선택을 했다고 생각됩니다. (대략 1년 전의 일인데, 제가 칩 설계일을 하면서 DDR3와 LPDDR3의 가격을 알아 봤을 때, 같은 용량일 경우 LPDDR3의 가격이 2배이상 비쌌습니다.) 이번 글에서는 DDR3와 LPDDR3 SDRAM을 비교해 보면서 두 메모리 사이의 장단점에 대해서 다루어 보도록 하겠습니다. 참고로 LPDDR3의 LP는 Low-Power를 의미합니다. 

먼저 DDR3/DDR3L과 LPDDR3의 주요 사양중에 차이가 나는 부분만  아래의 표에 간단히 정리해 보았습니다. 표의 항목들은 이제 부터 하나씩 살펴 볼 예정인데 먼저 최대 전송 속도에 대해서는 여기서 간단히 얘기하고 넘어 가겠습니다. 2014년 7월 현재 DDR3/DDR3L의 경우는 1066MHz DDR = 2133Mbps/pin/s 까지의 전송속도를 지원하는 제품이 나와 있지만 LPDDR3의 경우는 933MHz DDR = 1866Mbps/pin/s 전송속도 까지만 제품이 나와 있습니다. JEDEC의 표준에는 2133 까지 정의가 되어 있지만 아마도 2014년 하반기나 2015년이 되어야 양산품이 나올 것으로 생각됩니다. 정말 성능이 중요하다면 LPDDR3 보다는 DDR3를 선택할 수 밖에 없지요. 거기에 더해서 LPDDR3는 표준에서 PC에서 사용되는 DIMM 모듈을 정의하지 않았기 때문에 메모리 컨트롤러 하나에 여러개의 모듈을 연결하는 방식으로 용량을 확장하기가 힘듧니다. 현재로서는 8GB 이상의 용량을 LPDDR3로 구성하기에는 현실적으로 제약이 많습니다.  (아래 표에서 오류가 발견되어 7월 2일 오후 11시 34분에 수정 되었습니다.)

첫 째로 LPDDR3와 DDR3의 가장 큰 차이점이라면 전원 전압을 들 수 있습니다. 전력 소모를 구하는 공식

P=V^2/R (V는 전원전압, R은 DRAM 회로의 전체 저항 - 동작 모드에 따라서 변하기는 합니다.)

에서 전력소모는 전원전압의 제곱에 비례하기 때문에 단순히 생각하면 전원 전압을 DDR3에 비해 20% 줄어든 1.2V로 바꾸는 것만으로도 DDR3에 비해 LPDDR3가 64%=(0.8^2) 정도의 전력을 소비할 것으로 기대 할 수 있습니다. 물론 이렇게 단순하지는 않습니다. ^^;; 사실 위의 공식에서 R 값은 읽기, 쓰기, refresh, precharge 등 DRAM의 다양한 동작에 따라 바뀌기 때문에 DRAM 제조사에서는 다양한 동작모드에서 소모하는 전류 값(V/R값)을 data sheet에 표시합니다. 아래의 표는 Micron사의 DDR3L 메모리와 LPDDR3 SDRAM의 data sheet에서 일부 정보만을 가져와서 간단히 비교해 보았습니다. IDD1 값은 8개의 bank에 대해서 순차적으로 Active-Read-Precharge 동작을 반복할 때 소모하는 평균전류 값이며, IDD4R과 IDD4W는 read/write를 active-precharge command 없이 연속적으로 수행할 때 사용하는 전류를 나타냅니다. IDD4R/W 값은 active/precharge를 수행하면서 메모리 컨트롤러가 기다리는 시간이 포함되지 않기 때문에 하나의 DRAM bank가 사용할 수 있는 최대 전류와 가까운 값이됩니다만, bank interleaving은 IDD4R/W 측정에 반영되지 않았기 때문에 DRAM이 사용할 수 있는 최대 전류값과는 거리가 있습니다. 마지막으로 IDD6는 DRAM이 대기상태에 들어가 self refresh 동작을 하는 상태의 전류 입니다. DDR3L과 LPDDR3의 전력소모는 DRAM이 어떤 동작을 하는지에 따라 많이 달라지기 때문에 DRAM의 전력 소모를 예측하기 위해서는 target application에서 DRAM의 동작을 profiling 한 다음 IDD0~IDD8의 각 모드에 대해 DRAM이 얼마만큼 시간 비율로 머물렀는지에 대한 정보를 바탕으로 IDD0~IDD8에 대한 가중 평균값(weighted average)을 구합니다. 그 가중 평균값에 1.35V를 구하면 DDR3L의 전력소모가 나오고 1.2V를 곱하면 LPDDR3의 전력소모값이 나옵니다. 단순하지는 않지만 LPDDR3가 DDR3L에 비해 적은 전력을 소모한다는 느낌은 오실겁니다. 아래 표의 IDD6를 살펴보면 적어도 대기모드에서는 LPDDR3가 DDR3에 비해 30% 수준의 전력만을 사용하고 있는 것을 알 수 있습니다. (용량과 bit-width를 맞추기 위해 DDR3L은 2개의 모듈을 사용한다고 가정 했음에 주의하시기 바랍니다.)


두번째 차이점은 DRAM 칩 하나당 지원하는 data의 bit-width가 다르다는 점 입니다. DDR3의 경우는 아래 왼쪽 그림과 같이 여러개의 DRAM칩을 이용하여 하나의 module을 구성하는 것을 목적으로 설계 되었기 때문에 x4, x8, x16 처럼 좁은 bit-width로 설계되어 있습니다만, LPDDR3의 경우 PCB 보드상에서 차지하는 면적을 줄이기 위해 SoC 칩위에 바로 메모리를 붙이는 Package-on-Package를 고려하여 표준이 만들어 졌습니다. PoP로 DRAM을 구성할 경우 여러개의 메모리 칩을 사용하기가 용이하지 않으니 하나의 메모리 칩에서도 충분한 data width를 얻을 수 있도록 LPDDR3는 32-bit/64-bit data width를 지원합니다. 





세번째 차이점은 Address/Command pin의 공용 여부 입니다. 두 번째 이유와 연관이 있는데 PoP package의 경우 pin의 여유가 많지 않아 LPDDR3에서는 pin을 절약할 방법이 필요했습니다. 이를 위해 DDR3에서는 독립된 pin으로 되어 있던 Address/Command를 LPDDR3에서는 공통된 pin으로 나누어 사용하도록 하고 이 때문에 발생하는 속도 저하를 막기위해 clock의 up/down edge를 모두 사용하는 DDR 방식을 채용했습니다.

네 번째 차이점은 LPDDR3는 메모리 내부에 온도센서를 내장하고 있다는 점인데, 이는 CPU가 DRAM을 사용하고 있지 않는 상태에서 대기 모드 전력소모를 줄이기 위해 들어간 기능입니다. DRAM은 각 cell 마다 capacitor를 가지고 있고 capacitor에 전하가 모여 있는지 없는지에 따라 1과 0 정보를 기록하는데, 반도체의 특성상 시간이 지나면서 capcitor의 전하가 조금씩 새어 나가기 때문에 이를 일정시간마다 다시 채워주는 refresh 동작이 필요합니다. 평소에는 메모리 컨트롤러가 refersh 동작을 관리하지만 시스템이 대기 모드에 들어가는 일이 발생할 경우 CPU는 DRAM에게 알아서 refresh 동작을 하라는 명령을 주고 CPU코어와 메모리 컨트롤러의 전원을 끄고 대기 모드로 들어갈 수 있습니다. 이 때 DRAM은 self refresh 모드로 들어가서 메모리 컨트롤러의 명령이 없이도 알아서 시간에 맞춰 refresh 동작을 수행하며 각 cell의 data를 유지해야 합니다. LPDDR3의 온도센서는 이 self refresh 동작의 전력소모를 줄이기 위해서 필요합니다. DRAM의 cell capacitor에서는 온도가 높을 수록 전하가 빨리 새어나가기 때문에 refresh 동작을 자주 해 주어야 하고 온도가 낮으면 refresh동작을 상대적으로 자주 해 주지 않아도 됩니다. LPDDR3는 이러한 특성을 이용해서 온도가 정해진 값 보다 낮아진다면 refresh 동작의 주기를 늦추어 self-refresh 동작의 빈도를 줄입니다. 아래는 Micron사의 자료인데 LPDDR3의 온도가 45도 이하이면 refresh 동작횟수를 반으로 줄여 IDD6를 30% 가량 낮출 수 있다는 결과를 보여주고 있습니다. (파란색 선) 시스템이 대기 상태일 경우 CPU 등의 다른 부품들도 동작하지 않아 전체적으로 온도가 내려갈 가능성이 많으니 대기 시간을 늘리기 위해서 유용한 기능이라고 생각합니다. 


다섯번째 차이점은 LPDDR3의 경우에는 8개의 각 bank에 독립적으로 self refresh를 수행할 수 있다는 점입니다 - 이 기능을 PASR(Partial Array Self Refresh)이라고 부르는데, DDR3에도 optional하게 지원을 했지만 LPDDR3에서는기본 지원 항목이 되었습니다. DRAM에 저장된 데이터 중의 일부가 나중에 대기 모드에서 깨어났을 때 반드시 유지될 필요가 없는 데이터라면 그 데이터를 특정 Bank에 몰아 넣고 그 Bank에 대해서는 refresh를 수행하지 않음으로서 self refresh 모드에서의 대기전력을 보다 더 줄일 수 있습니다.  맞을수도 있고 틀릴수도 있는 상상입니다만 Mac OS X Mavericks의 경우에는 API에서 개발자가 OS가 필요하면 맘대로 지울 수 있는 purgeable 영역을 정의하도록 권장하고 있는데 이러한 purgable 영역을 LPDDR3의 특정 bank에 할당하고 self refresh 모드에서 그 bank를 제외 한다면 LPDDR3의 장점을 잘 살릴 수 있지 않을까라고 생각해 봅니다. 

마지막 여섯번째 차이점은 LPDDR3는 deep power down 모드를 지원한다는 점 입니다. Deep power down 모드에서는 저장된 data의 손실이 일어나지만 전원을 완전히 끊었다가 다시 인가할 때 회로의 안정화/초기화를 위해 필요한 100us 정도의 시간을 절약할 수 있기 때문에 시스템이 대기모드에서 깨어날 때 사용자가 느끼는 지연시간을 줄이는데 도움이 될 수 있습니다. CPU가 PMIC를 제어해서 PCB 상에서 DRAM에 공급되는 전원을 끊어주지 않아도 DRAM의 전력 공급을 간단히 차단할 수 있다는 점도 장점이지요. 

정리하면 LPDDR3는 DDR3에 비해 낮은 전원전압을 써서 동작중에 필요한 전력소모를 줄이고, 작은 package를 감안해서 pin 개수도 줄이고, 대기 모드에서 끌 수 있는 부분을 최대한 꺼서 전력소모를 보다 줄인 메모리로 생각하시면 될 것 같습니다. 긴 글 읽어 주셔서 감사합니다. 




핑백

덧글

  • 황박효신이 2014/07/24 09:34 # 삭제 답글

    감사합니다!! 너무 잘 읽었어요.
  • 골수공돌이 2014/07/24 11:46 #

    잘 읽어줘서 고마워요 ^^
  • isen 2014/07/24 17:32 # 삭제 답글

    황박효신이~!
    맞게 잘 써져 있구만...ㅋㅋ
    한글인데 잘 못 이해하다니.. ㅋㅋㅋ

    공수공돌이님~!
    요즘 DDR4를 공부중이였는데 TCSR이 LPDDR3에도 있군요~! DDR4에도 TCSR/TCAR이 있더라구요~!
  • 골수공돌이 2014/07/25 10:12 #

    DDR3의 대가께서 친히 내용이 맞다고 해주시니 몸둘바를 모르겠습니다.
    DDR4도 공부해서 글을 올리고 내용을 검사받도록 하겠습니다.
  • 인생의낙 2016/02/19 16:23 # 삭제 답글

    잘 모르는 비전공자이지만 덕분에 알찬 정보 잘 얻고 갑니다.
    DDR3L과 LPDDR3에 대한 의문점이 많이 풀렸습니다.^^
  • 골수공돌이 2016/02/20 01:43 #

    제 글이 도움이 되었다니 저도 기쁩니다. ^^
댓글 입력 영역