DRAM = Dynamic Random Access Memory의 약자이다.
메모리란 결국 정보를 저장하는 소자의 일종인데,
이름의 뜻을 한번 살펴보자
① Dynamic
Dynamic RAM(DRAM)은 기본적으로 1개의 트랜지스터(Transistor)와 1개의 커패시터(Capacitor) - 1T1C의 구조를 갖고 있다.


커패시터에 전류를 흘려 충전하는 방식으로 메모리를 저장하며 커패시터에 전하가 저장되어 있는지 여부에 따라 데이터 '1'과 '0'을 구분하는 메모리 소자이다.
그런데 커패시터의 특성 상, 커패시터에 저장한 전하는 지속적으로 충전하지 않으면 저장된 값을 유지하지 못하고 지속적으로 방전된다. 저장된 전하가 방전되는 이유로는 누설전류(Leakage Current)가 지속적으로 발생하기 때문인데, 이 경로는 다음과 같이 매우 다양하다.
1) Junction Leakage
2) Cell Transistor의 Off-Current
3) Dielectric Leakage
4) Cell to Cell Leakage
5) Gate Induced Drain Leakage (GIDL)
6) Gate Tranasistor, Oxide Leakage
7) Insulator Leakge
이렇게 저장된 데이터를 잃어버리기 때문에 휘발성 메모리(Volatile Memory)이며, 이렇게 손실된 전하를 보충하며 데이터를 유지시켜주는 과정을 Refresh라고 한다. 이런 의미에서 Dynamic (동적)이라는 명칭이 붙었다.
여기서, 소자의 Refresh 주기 또한 중요한 파라미터이다.
(Refresh 주기) < (데이터 보존 시간)
즉, 데이터를 쓴 시점으로부터 0 or 1을 감지할 수 있는 최소 전압으로 떨어지기 전까지의 시간보다, Refresh 주기가 짧아야 데이터가 보존되는 것이다.
실제 Refresh의 주기는 마이크로 초 단위로 수행되며 데이터의 손실을 막기 위해서는 1초에도 수백 번 Refrsh 연산을 수행해야 하는데, 이 연산 자체가 지속적으로 전력을 소모한다. 따라서 전력소모를 최소화하기 위해서는 더 많은 전하를 저장할 수 있도록 커패시터 용량를 크게하여 Refresh 간격을 늘려야 한다.
그러나 직접도를 높이기위해 반도체가 끊임없이 미세화 되면서, 커패시턴스도 작아진다는 문제가 발생한다.
이러한 문제를 해결하기 위해 High-k 유전체를 쓴다거나, 3차원 구조를 사용해 면적히는 전략을 사용하며, 이러한 issue 대해서는 후편에서 자세하게 다루겠다.
② Random Access
순차적 접근 (sequential access)의 반댓말로, 어느 위치에 저장된 데이터든지 접근하는데 동일한 시간이 소요된다는 의미이다.
특정 데이터를 읽기 위해 앞에 있는 데이터부터 순서대로 읽을 경우 위치에 따라 데이터에 접근하는 지연시간이 달라진다. 반면 Random Access 구조의 경우 원하는 주소(메모리 셀)를 ‘무작위(random)’로 골라도, 언제나 동일한 시간 안에 바로 접근할 수 있다.
트랜지스터는 데이터를 읽고 쓰기 위해 특정 커패시터에 연결되기 때문에, Access Transistor라고도 한다.
DRAM의 동작 원리

DRAM에는 크게 두가지 Line이 존재하는데, Word Line (WL)과 Bit Line (BL)이다.
WL은 트랜지스터의 게이트 전극에 연결된 Line으로, 트랜지스터의 On, Off 상태를 스위칭하며 커패시터에 접근 여부를 결정한다.
BL은 소스(드레인) 전극에 연결된 Line으로, 커패시터에 저장된 데이터를 읽거나, 데이터를 쓰는 역할을 한다.
데이터 쓰기 (Write)
DRAM에 데이터를 저장하기 위해서는 우선 WL을 'on'을 시켜야 한다. 높은 전압이 인가되는 High 신호 상태 라고도 한다. (트랜지스터 채널 형성)
이때, BL에 특정 전압(Vcc)을 인가하면, 커패시터의 반대쪽은 ground에 연결되어 있으므로 커패시터에 전하가 축적되고 충전(Charge)되며 데이터 '1'이 써진다.
반대로 0V를 가해주면 커패시터 표면에 축적된 전하가 빠져나가므로 방전(Discharge)되며 데이터 '0'이 써진다.
이후 WL에 인가되는 전압을 제거(Off)하면 저장된 데이터를 기억하고 있는 상태가 된다.

데이터 읽기 (Read)
DRAM에 저장된 데이터를 읽기 위해서는 똑같이 WL를 'on' 시키면 되고, 이후 커패시터와 BL이 연결되면서 전압이 평형을 이루게 된다.
그런데 WL을 활성화 시키기 전에 해야하는 단계 있다.
BL에 별다른 조치를 취하지 않고 WL을 활성화시킨다면, BL의 전압을 그대로 커패시터에 저장하는 Write와 같은 행동이 된다. 즉, 데이터를 읽으려고 했는데 오히려 BL의 정보를 또다시 저장하는 것과 동일한 상태가 된다.
따라서 Read를 실행할 때에는, BL을 1도 읽을 수 있고 0도 읽을 수 있는 상태로 만들어야하며, 이를 사전 충전(Precharge) 단계라고 한다.
사전충전 단계에서는 BL이 두 값을 모두 읽을 수 있는 상태인 0.5 정도의 값을 가해준다. (0< x <1)
만약 '1'이 Vcc 이고 '0'이 GND 라면 1/2Vcc 값을 인가하는 것이다.
BL에 1/2Vcc를 인가하면 커패시터의 전하 이동에 따라 이 전압값이 미세하게 변한다.
BL전압이 미세하게 증가한다면 커패시터가 충전된 상태로 데이터 '1'이 읽히며, 반대로 미세하게 감소한다면 커패시터가 방전된 상태로 데이터 '0'이 읽히는 것이다. 이런 전위차를 sense amplifier로 증폭시킨 후 측정하여 구분한다.
데이터 손실?
그런데 본문의 내용을 잘 이해한 독자들이라면 한가지 의문이 들것이다.
데이터를 읽는 과정에서 Precharge 값과 비슷한 값이 저장되면서 커패시터에 저장된 전압이 바뀌는데, 이렇게 된다면 원래 저장했던 데이터가 변형되거나 삭제되는 일이 발생하는 것이다. 그럼 기억장치로써의 역할을 제대로 하고 있다고 보기 어렵다.
이러한 문제점은 바로 위에서 언급했던 sense amplifier로써 해결할 수 있다. Sense amplifiers는 정보를 읽어 우리에게 알려줄뿐만 아니라, 그 정보를 BL에 다시 전달하여 원본 정보를 복원하는 역할까지 수행한다.

2편에서 계속🍀
'메모리 소자 이론' 카테고리의 다른 글
| DRAM의 전부 3편 (한계점 및 기술 발전-트랜지스터 관련) (1) | 2025.07.17 |
|---|---|
| DRAM의 전부 2편 (한계점, 기술 발전 - 커패시터 관련) (0) | 2025.07.15 |