티스토리 뷰

IT

컴퓨터 내 DRAM의 역할과 흐름

Homo Nomad 2020. 6. 26. 20:20
반응형

DRAM 무엇일까요? DRAM 컴퓨터 프로세서가 필요로 하는 데이터를 저장한 공급하는 역할을 하고 있습니다. 현대 컴퓨터 프로세서는 모두 Von-Neumann 구조를 따르죠. Von-Neumann 구조에서 프로세서는 연산을 처리하기 위한 필요한 명령어(instruction) 연산자(operand) 모두 메모리에서 가져와야 합니다. 예를 들어 2+3이라는 연산을 수행하기 위해서는 더하기(+)라는 명령어와 “2”,”3”이라는 연산자가 필요하죠. 아무리 성능이 좋은 프로세서라 하더라도 DRAM 포함한 메모리로부터 적절히 데이터를 공급받지 못하면 성능을 충분히 발휘하지 못합니다.

 

Von Neumann Architecture (Source: researchgate.net)

자세히 살펴보면 DRAM 컴퓨터 시스템 다양한 메모리 중에서 SRAM 부족한 용량과 SSD 느린 속도를 보완하는 역할을 갖고 있습니다. 아래 그림은 메모리 계층구조 (memory hierarchy) 나타내고 있습니다. 위쪽의 프로세서에 가까운 곳에 위치한 레지스터(register)부터 L1~L3 Cache 있고, 뒤에 DRAM SSD(HDD) 있습니다. 레지스터부터 DRAM까지 메모리는 휘발성(volatile) 메모리입니다. 휘발성이라는 의미는 전원을 끊으면 안에 있던 데이터가 사라진다는 의미죠. 데이터가 지속적으로 보관되는 비휘발성 메모리는 SSD(HDD)이며 레지스터부터 DRAM까지는 프로세서가 돌아가는 동안 임시 저장장치의 역할을 수행합니다.   SSD(HDD) 정보 전달이 느린 메모리이기 때문에 프로세서가 SSD(HDD)만을 사용한다면 대부분의 시간을 데이터를 기다리는데 허비하게 됩니다. 따라서 이를 방지하기 위해 자주 쓰는 데이터는 임시 저장장치(레지스터에서 DRAM) 저장시키고 필요한 때마다 빠르게 데이터를 가져가죠. 메모리 계층구조상 위쪽에 위치한 메모리일 수록 빠른 특징있지만 비싼 단점이 있고 아래로 수록 반대의 성격을 띕니다.

 

메모리 계층 구조 (Source: computerscience.chemeketa.edu)

 

SRAM DRAM 비교하면 DRAM SRAM 보완할 밖에 없는지 이해하게 됩니다. 이상적인 컴퓨터 시스템이라면 모든 메모리를 레지스터나 Cache 채우면 되지만 현실적으로는 Die size 제약과 비용 때문에 한계가 있죠. 서버에 사용되는 고성능 CPU 경우에도 가장 L3 SRAM Cache 사이즈는 수십MB 정도입니다. 1(bit) 저장하기 위해 SRAM 보통 4~6개의 Transistor 구성되지만 DRAM 1개의 Transistor 1개의 Capacitor 구성됩니다. 당연히 구성하는 Transistor 수가 많기 때문에 SRAM 보다 많은 면적을 차지하고 생산 원가도 비싸게 되지요. 참고로 SSD 1개의 Transitor 통해 2~4개의 Data(bit) 저장합니다 (현재 이상 저장하려는 연구가 계속 진행되고 있고요). 우리가 사용하는 프로그램의 사이즈는 보통 수백 MB에서 GB까지 되기 때문에 프로그램 가동을 위한 데이터를 Cache 커버하기에는 한계가 있죠. 그렇다고 매번 SSD(HDD)에서 데이터를 가져갈 수는 없기에 사이에 용량이 최대 수십 GB DRAM 배치하여 SSD(HDD)로의 접근 비율을 획기적으로 낮추게 됩니다.  

 

SRAM과 DRAM 구조 비교 (Source: researchgate.net)

역사적으로 CPU 같은 프로세서의 성능 향상은 DRAM 포함한 메모리 시스템의 향상을 요구했습니다. Intel CPU 지속적으로 Clock speed 증가했는데, 이는 Processor 동일 시간에 처리할 있는 데이터가 증가함을 의미합니다. 따라서 이에 맞춰 데이터를 공급할 있도록 DRAM throughput Bandwidth 증가가 필요했죠. DRAM 기술 발전을 통해 끊임없이 Bandwidth 증가시켜왔습니다. 한편, 발열 등의 문제 때문에 CPU 동작 속도를 증가시키는 한계가 옵니다. 따라서 하나의 CPU 내의 Core 수를 증가시키고 동시에 여러 명령어를 처리시키는 방식으로 성능 향상을 시키죠. 이에 따라 Throughput 뿐만 아니라 DRAM 용량도 컴퓨터 성능 향상에 중요해졌습니다. 단순하게 보면 Core 수에 비례해 DRAM 용량도 커져야 것이지요.

 

시대에 따라 수요를 견인했던 DRAM 응용은 흐름을 가집니다. DRAM 커다란 수요를 창출했던 응용 중에는 제일 먼저 PC 있죠. 인텔의 CPU 마이크로소프트의 Windows 만나 컴퓨터를 가정과 사무실에 공급했고 이로 인해 DRAM 수요는 폭발적으로 증가합니다. 그러던 PC 출하는 2011 정점을 찍고 감소하죠. 이후 PC 이어 DRAM 수요를 증가시킨 것은 스마트폰입니다. 2007 처음 아이폰이 출시된 이래로 지속적으로 출하량이 늘어나다 2017년을 지나면서 정체에 빠집니다. 하지만 또다시 DRAM에게는 또다른 커다란 수요처가 생기죠. 서버 응용입니다. 데이터를 모으기만 하던 시대에서 데이터로부터 가치를 창출해내는 Big data 기술의 등장과 이어 등장하는 AI 덕분에 클라우드 업체들의 서비스 규모는 커져갔고 이를 지원하기 위한 관련 Device 혜택을 받습니다. 향후 년간은 DRAM 수요 증가를 서버가 책임질 같은데 이후의 고객은 누구일지 궁금해집니다.

반응형
댓글
글 보관함