251. DRAM (Dynamic RAM)

핵심 인사이트 (3줄 요약)

  1. 본질: DRAM (Dynamic Random Access Memory)은 단 1개의 트랜지스터와 1개의 커패시터(1T-1C)로 1비트를 저장하는 초고집적 휘발성 메모리로, 전자가 방전되는 물리적 한계 때문에 **주기적인 재충전(Refresh)**이 반드시 필요한 '동적(Dynamic)' 특성을 지닌다.
  2. 가치: 구조가 극단적으로 단순하여 SRAM 대비 집적도(용량)를 수십 배 높이고 가격을 획기적으로 낮출 수 있었으며, 이는 현대 컴퓨터 시스템이 수십 기가바이트(GB)의 거대한 메인 메모리를 장착할 수 있게 만든 일등 공신이다.
  3. 융합: 충/방전에 걸리는 긴 지연 시간(Latency)이라는 치명적 약점을 극복하기 위해, 동기식 버스 결합(SDRAM), 멀티 뱅크 인터리빙, 버스트 모드(Burst Mode) 등 아키텍처적 꼼수를 결합하여 대역폭(Bandwidth) 중심의 발전 경로를 밟고 있다.

Ⅰ. 개요 및 필요성

  • 개념: DRAM은 정보를 미세한 축전기(Capacitor)에 전하(물)를 채우거나 비우는 방식(1 또는 0)으로 저장하는 반도체 메모리다. 시간이 지나면 전하가 누설되어 데이터가 사라지므로, 수 밀리초(ms)마다 데이터를 다시 읽고 쓰는 리프레시(Refresh) 동작을 지속해야 한다.

  • 필요성: 만약 컴퓨터의 주 기억장치를 모두 빠르고 리프레시가 필요 없는 SRAM으로만 만든다면, 16GB 램을 달기 위해 메인보드만 한 크기의 칩과 수천만 원의 비용이 필요하다. 1개의 비트를 저장하는 데 부품이 딱 2개(트랜지스터 1 + 커패시터 1)밖에 안 드는 DRAM의 극단적 미니멀리즘은 컴퓨터의 가격을 개인의 책상 위에 올려놓을 수 있을 만큼 폭락시켰다.

  • 💡 비유: 밑 빠진 독(커패시터)에 물을 채워놓고 "물이 차 있으면 1, 없으면 0"이라고 약속한 것과 같습니다. 구멍으로 물이 계속 새어나가기 때문에, 주인이 0.06초마다 달려가서 물이 남아있는지 확인하고 다시 물을 가득 채워주는 노가다(Refresh)를 하는 것이 바로 DRAM입니다.

  • 등장 배경: 1966년 IBM의 로버트 데나드(Robert Dennard)가 1T-1C 구조의 DRAM을 발명했다. 이전까지 사용되던 거대한 자기 코어 메모리나 값비싼 SRAM을 밀어내고, 인텔의 1103 (1Kb DRAM) 칩이 1970년대에 상용화되면서 본격적인 대용량 반도체 메모리의 시대가 열렸다.

┌──────────────────────────────────────────────────────────────┐
│           DRAM 1-Bit 셀(Cell)의 1T-1C 물리적 구조 도식도            │
├──────────────────────────────────────────────────────────────┤
...

- **📢 섹션 요약 비유**: DRAM은 모래사장에 그려놓은 글씨와 같습니다. 파도(시간)가 밀려오면 글씨가 지워지므로, 파도가 오기 전에 누군가(컨트롤러)가 계속해서 글씨를 덧그려(Refresh) 주어야만 기억이 보존되는 피곤하지만 아주 저렴한 메모장입니다.

---

## Ⅱ. 아키텍처 및 핵심 원리

### 파괴적 읽기 (Destructive Read)와 센스 앰프 (Sense Amplifier)

DRAM의 가장 치명적인 물리적 특성은 **'파괴적 읽기'**다. 커패시터에 저장된 전하량은 너무나 미세해서, CPU가 이 값을 '읽기' 위해 문을 여는 순간, 전하가 비트라인으로 쏟아져 나와버리며 **원래 있던 데이터(커패시터)가 텅 비어(0) 파괴되어 버린다.**

- **센스 앰프의 역할**: 흘러나온 쥐꼬리만 한 전압의 변화(수 밀리볼트)를 센스 앰프(Sense Amplifier)가 순간적으로 감지하여 논리적 1과 0으로 뻥튀기(증폭)한다.
- **재기록(Precharge/Restore)**: 읽자마자 커패시터가 비어버렸으므로, 감지한 값을 즉시 그 커패시터에 다시 욱여넣어 복원(Restore)해야 한다. 이 복원 시간(Precharge Time) 때문에 DRAM은 한 번 데이터를 읽고 나면, 다음 데이터를 읽기 전까지 **반드시 잠시 쉬어야 하는 쿨타임**이 존재한다. 이것이 DRAM이 느린 근본 원인이다.

### 2차원 매트릭스 주소 지정 (Row / Column)

16GB 램에는 1,300억 개의 방(Cell)이 있다. 이 방 번호를 1차원 선으로 주면 주소선(Address Pin)이 수십 개 필요하다. DRAM은 핀 개수를 줄이기 위해 아파트처럼 **행(Row)과 열(Column)**의 2차원 매트릭스 구조를 채택했다.

1. **RAS (Row Address Strobe)**: 먼저 "105동(행) 나와라!" 하고 Row 주소를 보낸다. 그러면 105동 전체(수천 개의 셀)가 통째로 로우 버퍼(Row Buffer)로 쏟아져 나온다. (이때 시간이 제일 오래 걸린다)
2. **CAS (Column Address Strobe)**: 잠시 후 "그중에서 302호(열) 값 줘!" 하고 Column 주소를 보낸다. 이미 버퍼에 올라와 있으므로 302호 값만 쏙 뽑아 CPU로 보낸다.

- **📢 섹션 요약 비유**: 도서관에서 책을 찾을 때 책꽂이 번호(RAS)를 찾느라 한참 걸리지만, 일단 그 책꽂이 앞에 서고 나면 몇 번째 칸(CAS)인지 찾는 건 순식간입니다. 이 두 단계를 쪼개서 주소 핀을 절반으로 아낀 것이 DRAM의 핵심입니다.

---

## Ⅲ. 비교 및 연결

### SRAM vs DRAM의 트레이드오프

| 비교 관점 | DRAM (Dynamic RAM) | SRAM (Static RAM) |
|:---|:---|:---|
| **저장 소자** | 커패시터 (Capacitor) + 1 TR | 6개의 트랜지스터 래치 (Latch) |
| **읽기 성질** | **파괴적 읽기** (읽으면 지워짐, 복원 필수) | **비파괴적 읽기** (아무리 읽어도 상태 유지) |
| **지연 시간 (Latency)** | 느림 (접근 대기 + 프리차지 쿨타임 발생) | 극도로 빠름 (요청 즉시 상태 반환) |
| **용량 및 비용** | 대용량 구현 가능, GB당 가격 매우 쌈 | 소용량 한계, MB당 가격 매우 비쌈 |
| **용도** | 메인 메모리 (Main Memory) | CPU 레지스터, L1/L2/L3 캐시 메모리 |

### 리프레시 오버헤드의 아키텍처적 파급
DRAM 컨트롤러는 약 64ms 주기로 칩 전체를 한 번씩 전부 훑으며 재충전을 해야 한다. 이 리프레시 동작 중에는 **CPU가 메모리를 읽고 쓸 수 없다(Stall 발생)**. 아무리 빠른 CPU라도 메모리가 "잠깐! 나 지금 리프레시 중이야"라고 선언하면 파이프라인이 정지된다. 시스템 전체 시간의 약 1~5%가 이 리프레시에 순수하게 낭비되는 오버헤드다. 고용량 램일수록 방이 많아 리프레시 시간이 길어지므로, 서버 아키텍트들은 이 리프레시 딜레이를 숨기기 위해 메모리 뱅크를 여러 개로 쪼개 교차로 충전하는 인터리빙 기술을 도입했다.

- **📢 섹션 요약 비유**: DRAM은 1시간에 5분씩 무조건 낮잠(Refresh)을 자야만 살 수 있는 일꾼입니다. 사장님(CPU)이 아무리 급한 일을 시켜도 일꾼이 낮잠 자는 타이밍에 걸리면 깨어날 때까지 기다려야 하는 치명적인 핸디캡을 안고 있습니다.

---

## Ⅳ. 실무 적용 및 기술사 판단

### 실무 시나리오

1. **메모리 인터리빙을 통한 병목 우회**
   CPU가 연속된 대용량 데이터를 처리하는데, DRAM의 프리차지 쿨타임(파괴적 읽기 후 복원) 때문에 대역폭이 반토막 나는 상황. 메인보드에 램을 1개(단일 뱅크) 꽂지 않고 2개, 4개(듀얼/쿼드 채널)로 쪼개어 장착한다. 데이터 주소를 `램1 -> 램2 -> 램3 -> 램4` 순으로 흩뿌려놓으면(인터리빙), 램1이 데이터를 뱉고 쿨타임(프리차지)을 가지는 동안, CPU는 기다리지 않고 바로 램2, 램3에서 연속으로 데이터를 뽑아낼 수 있다.

2. **로우 버퍼 적중을 위한 소프트웨어 코딩**
   C++로 작성된 2차원 배열을 열(Column) 방향으로 띄엄띄엄 읽었더니 메모리 접근 시간이 비정상적으로 느려짐. DRAM의 2차원 구조(RAS/CAS)를 이해해야 한다. 배열을 행(Row) 방향으로 읽으면 최초 1번만 RAS 지연(긴 시간)을 겪고, 나머지 데이터는 이미 뽑혀 나온 로우 버퍼 안에서 CAS 지연(짧은 시간)만으로 초고속 Hit 처리된다. 반면 열 방향으로 건너뛰면 매번 105동(Row)을 버리고 106동(Row)을 새로 불러와야 하므로, 매 클럭마다 막대한 RAS 지연을 두드려 맞는다.

3. **서버 장애 원인 분석 (Rowhammer Attack)**
   클라우드 가상 머신(VM)에서 다른 입주자의 악성 스크립트가 내 VM의 메모리 데이터를 임의로 변조하여 커널 패닉 유발. DRAM의 극단적 미세 공정이 낳은 물리적 취약점인 '로우해머(Rowhammer)' 공격이다. 해커가 특정 메모리 행(Row)에 초당 수백만 번씩 미친 듯이 전기를 켰다 껐다(접근) 하면, 그 전자기적 간섭으로 인해 **옆 행에 있는 커패시터의 전자가 누출**되어 0이 1로 뒤집히는 물리적 에러가 발생한다. 이를 막기 위해 실무자는 반드시 에러 정정 코드(ECC) 기능이 탑재된 서버용 ECC 메모리를 도입해야 한다.

### 안티패턴
- **단일 채널 램 원칩(One-chip) 구성**: PC나 서버를 조립할 때 예산을 아끼기 위해 16GB 램 1개만 꽂는 패턴. 이는 메모리 버스의 폭을 절반(64비트)으로 제한하고 인터리빙 효과를 완전히 죽여버린다. 같은 16GB라도 무조건 8GB 램 2개를 듀얼 채널로 꽂아 버스 폭을 128비트로 넓혀 대역폭(Bandwidth)을 2배로 뻥튀기하는 것이 정석이다.

- **📢 섹션 요약 비유**: 서재(DRAM)에서 책을 꺼낼 때, 1번 책장을 통째로 카트에 실어와서(Row Buffer) 그 안의 책을 여러 권 읽는 것(Row Hit)이 똑똑한 방식입니다. 책 한 권 읽고 카트 반납하고, 다시 2번 책장을 통째로 가져오는 짓(Row Miss)을 반복하면 도서관은 마비됩니다.

---

## Ⅴ. 기대효과 및 결론

### 기술 진화와 미래 전망
- **동기식의 결합 (SDRAM -> DDR)**: 과거의 비동기식 DRAM은 너무 느려 쿨타임을 예측할 수 없었다. 이를 시스템 클럭(Clock) 박자에 강제로 맞춘 것이 **SDRAM(Synchronous DRAM)**이다. 이후 클럭의 올라갈 때와 내려갈 때 모두 데이터를 쏘아 2배 빠르도록 만든 **DDR(Double Data Rate)** 기술로 발전하여 현재 DDR5까지 진화하며 속도를 수십 배 펌핑했다.
- **HBM (High Bandwidth Memory)**: DRAM 칩을 수평으로 나열하는 데 한계가 오자, 칩에 구멍(TSV)을 뚫어 수직으로 아파트처럼 쌓아 올린 것이 HBM이다. 칩 사이의 거리를 수 밀리미터로 좁히고 핀을 4,000개로 늘려 메모리 월(Memory Wall)을 박살 냄으로써 현재 AI와 GPU 혁명을 맨 앞에서 이끄는 핵심 반도체가 되었다.

### 결론
DRAM은 완벽한 메모리가 아니다. 전기가 자꾸 새어나가고, 한 번 읽으면 파괴되며, 구조가 굼뜨다. 하지만 그 모든 치명적인 단점들을 압도하는 단 하나의 장점, **"말도 안 되게 작고 싸게 만들 수 있다(1T-1C)"**는 사실이 컴퓨터 공학의 역사를 바꿨다. 아키텍트들은 하드웨어를 버리는 대신, 캐시 계층을 만들고, 인터리빙을 짜내고, 버스트 모드를 만들어 DRAM의 단점을 우회하는 거대한 기계적 꼼수의 성을 쌓아 올렸다. 오늘날의 고성능 컴퓨팅은 바로 이 불완전한 칩과 완벽한 시스템 설계 간의 기적 같은 타협의 산물이다.

- **📢 섹션 요약 비유**: 성능은 안 좋지만 월급이 엄청나게 싼 직원(DRAM) 수백만 명을 고용한 뒤, 똑똑한 매니저(메모리 컨트롤러)와 행동대장(캐시)들을 배치하여 조직을 효율화함으로써 결국 엄청난 대기업을 일구어낸 위대한 경영의 승리입니다.

---

### 📌 관련 개념 맵

| 개념 명칭 | 관계 및 시너지 설명 |
|:---|:---|
| **SRAM** | DRAM과 반대로 크고 비싸지만 충/방전(Refresh)이 필요 없어 CPU 캐시로 쓰이는 극상성 메모리. |
| **리프레시** | DRAM의 커패시터 전하가 누설되기 전에 주기적으로 데이터를 다시 읽고 써서 기억을 연장하는 생명 유지 장치. |
| **메모리 인터리빙** | DRAM 고유의 쿨타임(Precharge 지연)을 가리기 위해 여러 뱅크에 번갈아 접근하여 대역폭을 배가시키는 설계 기법. |
| **SDRAM** | 제멋대로 동작하던 구형 DRAM을 시스템 클럭의 박자에 동기화시켜 파이프라인 예측성을 높인 현대 메모리 표준. |
| **로우해머 공격** | 극단적 미세 공정으로 인해 발생한 DRAM의 물리적 셀 간섭을 악용하여 메모리 값을 강제 변조하는 하드웨어 해킹 기법. |

---

### 👶 어린이를 위한 3줄 비유 설명
1. 컴퓨터의 큰 창고인 '디램(DRAM)'은 물을 담는 아주 작은 컵(커패시터) 수십억 개로 이루어져 있어요. 컵에 물이 있으면 1, 없으면 0이에요.
2. 그런데 이 컵은 밑 빠진 독이라서 가만히 놔두면 물이 쫄쫄 새어나가 버려요! 그래서 컴퓨터는 1초에도 수십 번씩 달려가 물을 다시 채워줘야 한답니다(리프레시).
3. 이렇게 피곤하게 돌봐줘야 하는데도 디램을 쓰는 이유는, 컵을 정말 먼지보다 작게 만들 수 있어서 한 손에 엄청나게 많은 기억을 싼값에 담을 수 있기 때문이에요!