티스토리 뷰

 

여는

꿀 먹은 벙어리🤢

 

개강 , 수업 시간이었다.

교수님께서 DRAM 설명하시면서, 다음과 같은 질문을 하셨다.

 

"DRAM 무엇의 약자입니까?"

 

옆에 앉아 있던 학생이 대답했다.

"Dynamic Random Access Memory입니다."

 

그러자, 옆에 앉아 있던 나에게 이렇게 물어보셨다.

"그렇다면, DRAM에서 Dynamic 어떤 의미입니까?"

 

"…"

 

꿀 먹은 벙어리가 되었다.

뒤에 앉아 있는 학생에게 바통이 넘어갔다.

 

"주기적으로 recharge를 해야 하기 때문에 dyanmic 메모리라고 합니다."

 

쪽팔림이 등골을 타고 흘러내렸다.

 

몰랐던 아니었다. 나도 질문을 받았을 'refresh' 가장 먼저 떠올랐었기 때문이다.

그러나 혹시나 이게 틀린 답이 아닐까 두려웠다.

 

교수님에게 그저 아무 생각이 없는 학생 혹은 기본적인 내용도 모르는 학생으로 비쳤으리라.

차라리 그냥 틀린 답이라도 자신감 있게 말하는 게 어땠을까 후회가 됐다.

 

마음속 깊은 곳에 기저로 작용하고 있는 열등감 때문이었을까?

아니면, 퍼센트 확신할 있는 단단한 지식을 갖지 못했기 때문이었을까?

 

후회의 상념들은 뒤로 한채, 계획에도 없는 DRAM에 관한 포스팅을 갑자기 올리게 사유에 대해 주저리주저리 한풀이를 해보았다.

 

 

Dynamic은 refresh때문이다. 그냥 두면 방전되기 때문이다. 왜 말을 못하냐구!

 

 

 

DRAM 관한 푼다.

 

  거창하게 'DRAM에 관한 단편적 사실들'이라는 제목을 붙여 놨지만, 사실 DRAM 관한 내용들은 이미 인터넷에 쌔고 쌨다. 내가 분야 전문가도 아니고 이미 설명해 놓은 블로그나 기술 자료에 비빌 없을 같아, 그냥 주워들은 내용에 대해 썰이나 풀어보려 한다.

 

  DRAM은 계속해서 refresh를 해줘야 하는 특성을 갖는, 임의의 주소에 랜덤 하게 접근할 수 있는 메모리다. 그러나 Dynamic random access memory이 random access를 지원한다고 해서 동시에 여러 주소에 접근할 수 없다. conventional 한 구조의 DRAM에서는 물리적으로 불가능하다는 이야기.

 

  • DRAM에서 말하는 C/A command address.
  • CAS command read/write 같은 명령을 의미하며, 어셈블리 관점에서 보면 load/store 같다. 아래 그림의 왼쪽처럼 명령어에서 주소와 값을 받아와서 해당 메모리(오른쪽 녹색 부분)에 접근하여 값을 적는다.
  • RAS command는 activate와 precharge를 의미한다.

 

출처: Youtube - 03:ARM Cortex-M Load/Store Instructions

 

  address virtual address physical address 나뉘는데, 물리적인 실제 주소에 바로 접근하지 않고, 보통 가상의 주소를 할당하여 제어하도록 시스템이 구성되어 있다. 보통 MMU(Memory management unit) 두어, CPU DRAM 사이의 address 변환을 수행한다. DRAM 접근하기 위한 address 구성은 다음과 같다. channel, rank, bank, row, column tuple 형태로 구성되어 있다.

 

출처: http://thebeardsage.com/dram-nomenclature-explained/

 

 


 

 

 

  앞서 떠든 내용들은 컴퓨터 아키텍처 관점에서 바라본 DRAM 대한 설명이고, DRAM 소자에 관한 이야기는 다른 세계다. DRAM 공정은 일반적인 CMOS 공정과는 다른 부분이 있는데, 아래 그림처럼 capacitor 아주 얇으면서 깊게 파는  핵심이다.

 

출처: Titanium dioxide thin films for next-generation memory devices

 

  앞서 언급했듯이 DRAM 휘발성이다. 계속해서 refresh 통해 capacitor 채워줘야 하며, 이러한 이유로 기본적으로 SRAM보다 power 소모가 크지만 반대로 면적은 작다. SRAM은 반도체 공정의 scaling에 따라 사이즈를 계속해서 줄일 수 있었고, 이에 따라 DRAM에 비해 속도가 빠르다는 장점이 있다. 아래 그림에서 기본적인 구조의 6T SRAM와 single DRAM cell을 보면, 육안으로 봐도 면적 차이가 크다는 것을 느낄 수 있다.

 

출처: Models in Memory Testing

 

  혹시, 게임을 좋아한다면 번쯤 본인의 컴퓨터 사양을 확인하기 위해 CPU-Z라는 프로그램을 돌려봤을 것이다. 여기서 Memory 탭에 들어가면, Ram timing 확인할 있는데, CL-tRCD-tRP-tRAS 확인해볼 . 보통 작을수록 좋다.

 

64 GBytes의 용량이면 넉넉하리라 생각했으나, 그러나...

 

  • CL (Column access strobe Latency): 메모리에 column address 보낸 , 데이터가 메모리 출력 핀으로 나가기까지의 시간
  • tRCD (Row adress to Column adress Delay time): Row address 열리고, column address가 access 될 때까지의 시간
  • tRCD는 공정이 개선돼도, 크게 빨라지지 않는다고 한다. 물리적인 한계가 있다고 함.
  • tRP (Row Precharge Time): Precharge commnad 내려가고, 그다음 row address 열릴 때까지의 시간
  • tRAS (Row Address Strobe time): Precharge 된 셀이 활성화된 , 비활성화되기 까지의 최소 시간

 

출처: https://www.techpowerup.com/review/amd-ryzen-memory-tweaking-overclocking-guide/6.html

 

  Conventional 구조는 굉장히 심플하다. B/L W/L 그리고 capacitor 구성된다. B/L 1/2 Vcc prechare 되어 있는데, 이는 data 0 1 읽는 메커니즘상 필요하기 때문이다. 신호 값을 잘 읽을 수 있도록 Sense Amp 신호의 변화를 증폭시켜서 값을 읽는다. DRAM cell 다양한 경로로 charge loss 발생하므로, 특정 주기마다 값을 refresh 해야 한다.

 

  DRAM에서 poly high-k metal 가는 추세인데, 유전율이 높을수록 많은 양의 전하를 빠르게 저장할 있기 때문이다. 이와 반대로 interconnect(wire metal) low k metal 사용하여야 parasitic capacitance 줄이고 RC delay 낮출 있다. 일반적으로 트랜지스터에서는 channel length 줄이는 방향으로 발전해 왔지만, DRAM cell 트랜지스터는 channel length 늘리기 위해 깊게 게이트를 파묻는 형태로 진화했다. 이는 누설되는 전류는 대부분 short channel 기인하기 때문에, 이러한 영향을 최소화하기 위해서다.

 

  Feature size Poly Si channel length 알고 있는 경우가 많은데, 메모리에서 feature size unit cell 최소 pitch 절반 크기 말한다. 아래 그림에서 빨간색/파란색 박스가 unit cell이며, 3.5F = 70um, 4F=80um인 unit cell에서 feature size는 20um이다. 

 

출처: https://gigglehd.com/zbxe/4904811

 

  최근에는 HBM (High Bandwidth Memory) 등이 각광받고 있는데, 주로 데이터 서버에 많이 들어가고 있다. 1TB/s라고 했을 초당 1TB 전송되는 것이 아니라, 총데이터의 전송량을 의미한다. 이는 병렬 데이터 핀을 1000 이상 늘려서 bandwidth 높여줬기 때문이다.

 

 

 

 

 

댓글
공지사항