Computing

RAM 메모리 : DRAM vs SRAM 본문

Semiconductor/RAM

RAM 메모리 : DRAM vs SRAM

jhson989 2022. 3. 25. 19:09

Random Access Memory (RAM)

DRAM은 Dynamic Random Access Memory이며, SRAM은 Static Random Access Memory으로 둘다 RAM의 한 종류이다.

 

RAM은 어떤 메모리 주소에 접근(random access)하더라도 동일한 시간의 읽고 쓰기가 보장되기에 random access memory[1]라고 한다. 하드디스크와 같은 자기 디스크의 경우 데이터가 저장된 주소에 따라 접근하는 시간이 다르다. 하드디스크는 헤드(head)라는 장치를 이용해 플래터(plater)라는 원판에 데이터를 저장하고 읽어온다. 하드디스크에서는 원하는 주소의 데이터에 접근하기 위해서는 플래터를 회전시켜 해당 주소로 헤드를 옮겨야 접근가능하다. 따라서 헤드의 위치에 따라 메모리 주소 접근에 걸리는 시간이 달라진다. 그에 비해 DRAM과 SRAM 같은 RAM은 전기를 저장하는 cell들의 배열(반도체 회로)로 구성되며, 이 회로에서는 cell의 전압정보를 읽어오는데 동일한 시간이 소모된다.

 

RAM은 반도체 회로에 전하를 저장하여 1과 0 신호를 저장하는 장치로 (일반적으로) volatile(휘발성) 성질을 가진다. cell에 electrons이 쌓여 특정 전압을 달성하면 신호 1을, electron들이 없으면 신호 0을 출력한다. 따라서 전력이 제공되지 않으면 저장된 데이터를 잃는다.

 

RAM에는 SRAM, DRAM, SGRAM (GPU), HBM (HPC용) 등 다양한 종류가 있으며, 데스크탑에서 꼭 필요한 SRAM, DRAM에 대하여 정리해보고자 한다.

DRAM의 예[1]

SRAM과 DRAM 모두 전하를 저장하는 회로로 구성되지만, SRAM은 DRAM보다 더 빠르게 읽고 쓰기가 가능하며 따라서 processor의 register file이나 cache로 사용된다. DRAM은 SRAM보다 저렴하게 생산할 수 있기에 큰 용량이 필요한 메인 메모리에 사용된다. 이러한 차이는 두 제품의 전하를 저장하는 방식에 차이가 있는 것으로 DRAM은 하나의 transistor와 하나의 capacitor로, SRAM은 6개의 transistors로 구성[2]된다.

 

 

 

 

DRAM

왼쪽은 DRAM cell 구조, 오른쪽은 DRAM array of cells (DRAM 메모리 구조)[2]

DRAM의 전기 신호 1bit를 저장하는 cell은 위 그림의 왼쪽과 같이, 1개의 transistor와 1개의 capacitor로 구성된다. Capacitor에 전하가 저장되며, capacitor의 전압이 특정 전압을 달성하면 1 bit, 아니면 0 bit로 해석된다. Transistor는 switch 역할을 하며, cell의 capacitor에 전류가 흘러 데이터를 저장 or 읽을 지를 결정한다. 오른쪽 DRAM 메모리 구조를 보면 cell들이 2차원 배열로 나열되며 word line과 bit line을 통해 연결된 것을 볼 수 있다. 이 word line과 bit line을 통해 데이터를 원하는 주소의 cell에 데이터를 읽고 쓸 수 있다.

 

데이터를 쓰고자 할 때 해당 주소가 포함된 word line에 전류가 흐른다. 그러면 transistor가 on되고 원하는 주소의 cell의 capacitor와 bit line이 연결된다. Bit line을 이용해 capacitor를 충전(1bit 저장) 또는 방전(0bit 저장)하여 데이터를 쓸 수 있다.

읽을 때는 마찬가지로 word line에 전류가 흘러 Transistor(switch)가 on되고, bit line이 capacitor와 연결되어 전압의 변화를 파악하여 cell에 저장된 신호를 파악한다.

 

DRAM의 capacitor는 시간이 지날수록 전하가 방전되어 특정 간격(~64msec)마다 refresh해주어야 한다. 그렇지 않으며 capacitor에 가해지는 전압이 변해 저장된 데이터가 손실 될 수 있다. 이러한 성질 때문에 dynamic이라고 불린다.

 

 

 

 

SRAM

SRAM cell 구조[2]

SRAM은 위 그림과 같이 6개의 transistor로 구성된다. DRAM처럼 capacitor에 전하를 저장하는 것이 아닌, latching 회로 (flip-flop)을 사용하여 데이터를 저장한다. Bit 정보는 M1, M2, M3, M4 transistor가 포함된 회로에 저장(정확히는 Q와 ~Q 위치의 전압)되며, M5, M6 transistor는 cell 접근을 위한 switch 역할을 한다.

 

DRAM과 마찬가지로 word line(WL)과 bit line(BL)을 사용하며, not bit line(~BL)도 함께 사용한다. 1을 쓰고자 할 경우, BL은 1(high), ~BL은 0(low) 신호를 보낸다. 그렇게 되면 latch 회로에서 Q위치는 VDD와 연결되고 1(high) 전압을 가지게 된다. 0을 쓰고자 하면, ~BL은 1(high), BL은 0(low) 신호를 가지게 되고 Q위치는 ground와 연결되어 0(low) 전압을 가진다. 따라서 Q위치의 전압이 high(1)인지, low(0)인지에 따라 bit 정보가 결정된다.

 

DRAM의 capacitor는 시간이 지남에 따라 방전되어 주기적인 refresh가 필요하지만, SRAM은 그럴 필요가 없이 전압(전기 신호)이 유지된다. 따라서 static이라고 불린다.

 

 

 

 

SRAM이 DRAM보다 빠른 이유

DRAM이 용량은 크지만 느린 메인 메모리에 사용되고, SRAM은 용량은 작지만 빠른 캐시 메모리에 사용되는 것의 가장 큰 이유는 구조적 차이, 즉 capacitor의 유무 때문이라고 한다.

 

DRAM은 특정 간격(~64msec)마다 모든 DRAM 메모리 cell을 다시 읽고 쓰기를 반복해야 하기에 memory operation (읽고 쓰기)의 latency가 길어진다고 한다. 따라서 캐시와 register로 사용하는 것에 적합하지 않다고 한다. SRAM은 capacitor를 사용하지 않아 refresh가 필요없는 만큼, 캐시 메모리나 register file로 사용될 수 있다고 한다. 다만 6 transistor가 사용되기에 1 transistor + 1 capacitor를 사용하는 DRAM 보다 비싸고, 차지하는 공간이 크기에 큰 용량으로 설계하기 쉽지 않다고 한다.

 

이러한 아키텍처의 차이에 의해 제조사들은 DRAM의 경우 용량 확대를 목표로, SRAM은 access latency 향상을 목표로 연구가 진행되고 있다고 한다[4].

 

 

 

Reference

[1] https://en.wikipedia.org/wiki/Random-access_memory

[2] https://www.microcontrollertips.com/dram-vs-sram/

[3] https://www.rohm.co.kr/electronics-basics/memory/memory_what3

[4] https://superuser.com/questions/648370/why-is-sram-faster-than-dram