Goolge_adsense_default_ad




3D Xpoint 메모리 - 새로운 Memory Hierarchy의 등장(?) 메모리란 이런것!


얼마전인 7월 28일에 인텔과 마이크론이 공동으로 3D Xpoint(크로스 포인트) 메모리 칩 생산을 시작한다고 발표 했습니다. 아직은 인텔과 마이크론이 공동으로 설립한 IM Flash Technologies의 Fab. 에서 메모리 칩 생산만을 시작한 상태이고 이를 이용한 제품은 내년이 되어서야 나올 예정이라고 하는데 새롭게 발표된 메모리가 어떤 변화를 가져올지 예측해 보기에는 좋은 시점인 것 같습니다.  

3D Xpoint 메모리 칩 사진
원본 이미지 출처 - Intel NewsRoom 

3D Xpoint 메모리는 NAND Flash 메모리와 마찬가지로 전원을 차단하더라도 메모리 내용이 사라지지 않는 비휘발성(Non-volatile) 메모리지만 NAND Flash 메모리 보다 최대 1000배 정도 빠른 latency를 가지는 점을 가장 큰 장점으로 내세우고 있습니다. 아래 그림은 DRAM/NAND/하드디스크와의 상대적인 latency 비교를 보여주고 있는데, NAND가 수십 마이크로 세컨드(us) 정도의 latencty를 가지는 반면 3D Xpoint의 경우 1/1000인 수십 나노 세컨드(ns) 정도의 latency를 가진다고 합니다. 공개된 자료에는 읽기의 경우인지 쓰기의 경우인지는 나와 있지 않지만 NAND의 latency 숫자로 판단할 때 읽기의 경우를 비교한 것으로 추정되며 DRAM latency를 수ns 로 표시한 것으로 봐서 각 메모리가 가장 빠르게 동작할 수 있는 경우에 대해 비교한 것으로 보입니다. 요즘의 메모리들은 어떤 주소를 어떤 순서로 읽고 쓰는지에 따라 latency가 달라지기 때문에 정확한 비교조건을 명시하지 않으면 제대로 된 비교가 힘들긴 합니다만, 논문이 아니라 보도자료니까 일단 넘어가도록 하겠습니다. 
아래 숫자를 보실 때 주의할 점은 3D Xpoint 메모리의 경우 아직 구현된 제품이 없기 때문에 대역폭을 측정하기가 애매해서인지 latency 만을 비교했다는 점 입니다. Latency는 읽기/쓰기 명령을 내린 후에 하나의 data를 읽거나 쓰는 동작이 마무리 될 때 까지의 시간이기 때문에 latency가 작으면 random access에는 유리한 것은 분명하지만 latency가 작다고 대역폭이 반드시 넓어지는 건 아닙니다. 

3D Xpoint 메모리와 타 저장매체와의 Latency 비교
원본 이미지 출처 - Intel NewsRoom 

인텔과 마이크론이 3D Xpoint 메모리를 발표하면서 주장하는 또 다른 장점은 NAND Flash에 비해 하나의 cell에 훨씬 여러번 읽기, 쓰기 동작을 해도 cell의 특성저하가 적다는 점 입니다. NAND Flash의 경우 하나의 cell에 수천번 정도 읽기/쓰기를 수행할 수 있으며 읽기 쓰기를 반복할 수록 cell의 동작에 문제가 발생할 가능성이 올라가기 때문에 이를 보완하기 위해 ECC(Error Correction Code)를 필수적으로 사용합니다. 요즘 SSD 컨트롤러들의 설계를 살펴보면 ECC 회로가 전체 칩에서 차지하는 비율이 상당한데 메모리 셀의 내구성이 올라가면 좀 더 간단한 ECC를 적용해서 SSD 컨트롤러 설계에 필요한 노력과 비용을 줄일 수 있는 장점이 있습니다. 

아래 그림을 보면 3D Xpoint 메모리는 기존 NAND에 비해 1000배 정도의 내구성 향상을 강조하는데 보도 자료를 잘 살펴보면 작은 글씨로 디바이스 모델을 이용한 시뮬레이션 결과를 바탕으로 제공되는 정보라는 내용이 있습니다. 앞으로 Fab.에서 여러개의 칩들이 생산된 후 측정을 해보면 동작하는 전압과 온도등의 범위에 따라서 메모리셀의 성능과 내구성이 시뮬레이션 결과와는 다르게 나타날테고 또 칩마다 편차가 있을것인데, 이를 어느 정도 수준에서 제어하고 어느 정도 편차 이내의 칩들을 살려서 제품을 만드는데 적용할지 결정하는 양산화 과정을 거치고 나서야 3D Xpoint 메모리의 실제 내구성이 드러나게 될 것입니다. 예를들어 3D Xpoint 메모리를 사용해서 SSD를 만든다고 할 때, 방열 대책을 완벽하게 하고 전원 전압도 정밀하게 제어하는데다 특성이 좋은 샘플만을 사용한다면 NAND Flash를 사용한 SSD에 비해 1000배 보다 훨씬 높은 내구성을 가질 수도 있지만 반대로 가격 경쟁력을 고려해서 방열 대책을 약하게 하고 전원 전압도 느슨하게 제어하는데다 특성이 안 좋은 샘플까지 끌어다 SSD를 만들면 실제 제품의 내구성은 NAND Flash SSD의 1000배가 안 될 수도 있다는 얘기입니다. 저는 간단히 양 극단을 말씀드렸습니다만 실제 제품을 만드는데 관계된 엔지니어들은 내년에 3D Xpoint 메모리를 이용한 양산 제품이 나오기 전까지 양 극단 중간의 어느 지점을 선택해서 제품을 내 놓을지 머리 싸메고 고민을 하겠지요. 

3D Xpoint 메모리의 장점들
원본 이미지 출처 - Intel NewsRoom 

다음으로는 3D Xpoint의 구조와 동작에 대해 간단히 살펴 보겠습니다. 아래 그림은 3D Xpoint 메모리의 셀 구조를 보여주고 있는데, word 라인과 column 라인의 교차점(cross point)에 메모리 셀이 있고 이를 3D로 2층으로 쌓은 구조를 보시면 메모리의 이름이 셀 구조에서 비롯한 것이라는 생각이 드실 겁니다. 아래 그림에서 맨 위의 푸른색의 막대 4개가 2층의 column 라인, 맨 아래 동일한 형태의 막대 4개는 1층의 column 라인입니다. 가운데 colmun 라인과 직교하는 방향의 막대기 4개는 word 라인으로 1, 2층의 메모리셀이 공유하는 형태 입니다. 메모리 셀은 word 라인과 column 라인이 교차하는 부분에 붙어 있는 녹색 블럭이고 셀마다 붙어있는 주황색의 셀렉터에 가해지는 전압에 따라 읽기 동작인지 쓰기 동작인지가 결정된다고 합니다. 

일반적인 메모리의 경우는 메모리셀 마다 데이터를 쓰거나 읽기 위한 회로와의 연결을 제어하는 트랜지스터가 있는데 3D Xpoint 메모리는 아래 그림과 같이 메모리셀의 데이터 입/출력을 제어하기 위한 트랜지스터가 없다는 점이 큰 특징입니다. 덕분에 메모리셀의 크기가 작아질 수 있는 장점이 있는데, Anandtech의 3D Xpoint 메모리 분석기사에 따르면 같은 20nm 공정을 사용한 128Gb MLC NAND Flash 메모리 칩의 die size(202mm^2)와 128Gb 3D Xpoint 메모리의 die size(210~220mm^2)가 거의 비슷하다고 합니다. 3D Xpoint 쪽의 die size가 약간 더 크긴 하지만 NAND와는 달리 bit 단위로 메모리를 random access할 수 있도록 모든 메모리셀에 wire가 연결되어 있다는 점을 감안하면 5~10% 정도의 칩 크기 증가는 충분히 납득할만 합니다. 현재 발표된 3D Xpoint 메모리는 2층 구조를 가지고 있지만 공정이 안정되서 한 층을 더 쌓을 수 있게 되면 TLC NAND와도 충분히 경쟁할 수 있을 것 같습니다. 다만 이번 3D Xpoint 메모리를 발표하면서 VNAND와는 용량으로 경쟁할 생각이 없음을 확실히 했다고 합니다. 

3D Xpoint 메모리의 구조와 동작
원본 이미지 출처 - Intel NewsRoom (한글 첨삭 추가)

3D Xpoint 메모리의 동작 자체는 아주 간단한데 여러개의 메모리 셀 중에 원하는 셀에 해당하는 word 라인과 column 라인에 읽기/쓰기에 해당하는 전압을 가해주면 됩니다. 윗 그림에서 흰색으로 표시된 word 라인과 column 라인에 전압이 가해지면 빨간색 점선으로 표시된 메모리셀이 선택된 것이고 가해진 전압의 크기에 따라 읽기/쓰기 동작이 결정 됩니다.다시 한번 Anandtech의 3D Xpoint 메모리 분석기사를 참고하면 메모리 셀의 데이터 기록 방법은 내구성 문제 때문에 Phase Change에 의한 방법은 확실히 아니고 Conductive Bridging(CB) 방법이 가장 유력한 것 같다고 합니다. (자세한 내용이 궁금하시면 Anandtech의 원문 기사를 읽어 보시기 바랍니다.)

지금까지 3D Xpoint 메모리가 어떤 메모리인지 살펴 보았으니 앞으로 3D Xpoint 메모리가 컴퓨터 구조에 어떤 영향을 미칠지 잠시 생각해 보겠습니다. 발표된 내용대로라면 3D Xpoint 메모리의 용량과 속도는 DRAM과 SSD의 중간 정도 인데, 속도는 DRAM 쪽에 가깝고 용량은 SSD 쪽에 가깝습니다. 빠른 속도의 메모리를 대량으로 확보하는 것은 비용이 매우 많이 들기 때문에 컴퓨터에서는 아래와 같이 용량이 점점 커질수록 속도가 느려지는 Memory Hierarchy를 구성한 다음 data를 자주 사용할 수록 점점 빠른 메모리 쪽에 옮겨 놓고 자주 사용하지 않을 수록 점점 느린 메모리에 옮겨 놓는 방식으로 효율성을 추구합니다. 

CPU 레지스터 -> L1/L2/L3 cache -> DRAM -> (3D Xpoint 메모리?) -> SSD/하드디스크 

Memory Hierarchy의 각 단계마다 속도와 용량차이가 크지 않을수록 data를 느린 메모리 쪽으로 옮기거나 느린 메모리로 부터 가져올 때의 성능저하를 피하는데 유리한데 3D Xpoint 메모리의 등장으로 Memory Hierarcy 상에서 DRAM과 SSD/하드디스크 사이에 또 하나의 단계가 추가된 느낌입니다. 

3D Xpoint 메모리를 이용한 제품이 나온다면, 처음 나오는 제품은 가격이 높은 편이니 저렴한 가격 보다는 고성능을 우선으로 하는 데이터 센터의 서버나 워크스테이션 위주로 먼저 적용이 되지 않을까 싶습니다. 다뤄야 하는 데이터의 양이 많고 처리부하는 높지만 어플리케이션 자체는 일반 사용자용 PC에 비해 훨씬 좁은 범위로 한정할 수 있으니 어플리케이션 분석을 통해 3D Xpoint의 장점을 가장 먼저 활용할 수 있을 것으로 생각합니다. 예를 들어 DRAM에 저장하기에는 용량 제한이 있고 SSD에 저장하기에는 읽고/쓰는 동작이 빈번히 발생해서 여러대의 서버에 data를 분산 시켜놓아야만 했던 어플리케이션이 있다면 3D Xpoint 메모리로 인해 네크워크의 지연을 피하고 성능 향상을 얻을 수 있을지도 모릅니다. 컴퓨터 구조관련 연구자들에게는 좋은 연구거리가 생겼다는 생긴 것이지요.  

적어도 앞으로 몇 년 동안은 3D Xpoint 메모리를 이용한 제품은 인텔이나 마이크론에서만 나올 예정인데, 재미있는 점은 인텔과 마이크론은 메모리 칩만 공동으로 개발하기로 하고 이를 이용한 제품 개발은 각자의 역량에 맡기기로 했다는 점입니다. 인텔은 원래부터 SSD와 서버분야의 강자였으니 3D Xpoint 메모리를 이용한 고성능 SSD를 개발하고 이를 서버에 적용하는 방법을 찾을 거라는 예상을 쉽게 할 수 있는데 마이크론은 어떤 제품을 내놓을지가 개인적으로는 궁금합니다. 메모리 제조사의 장점을 살려 DRAM의 인터페이스를 가지고 기존 DRAM 보다는 느리지만 훨씬 용량이 크고 전원이 꺼져도 data가 유지되는 새로운 메모리를 발표 할지도 모르지요. 





핑백

덧글

  • 전기공학도 2015/09/10 21:38 # 삭제 답글

    좋은글 읽고 갑니다~
  • 골수공돌이 2015/09/10 23:50 #

    감사합니다. ^^
  • pgm 2015/10/12 15:10 # 삭제 답글

    정리 잘 하셨네요!! 잘 보고 갑니다.
  • 골수공돌이 2015/10/12 16:43 #

    감사합니다~
  • 알레아 2016/11/04 12:03 # 삭제 답글

    많이 배워갑니다. 좋은 글 감사합니다 ^^
  • 쏭나라쏭 2017/06/16 17:12 # 삭제 답글

    아주 큰 도움 됐어요~ 이런글 자주 올려주세요^^!!
  • 골수공돌이 2017/06/18 12:31 #

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