DRAM 주소 지정
DRAM 주소 지정 방식과 메모리 조직 분석
Bank Address · Row Address · Column Address · Address Multiplexing · Address Mapping
DRAM은 하나의 평면 메모리가 아니라 여러 Bank 안에 Row와 Column이 반복되는 계층 구조로 구성됩니다. 이 구조 덕분에 같은 용량이라도 한 번에 모든 셀을 직접 선택하지 않고, 먼저 Bank와 Row를 열고 그다음 Column을 고르는 방식으로 핀 수와 접근 지연을 함께 관리할 수 있습니다.
개요
DRAM은 하나의 큰 메모리 어레이가 아니라 Bank, Row, Column의 3차원 계층 구조로 구성되어 있습니다. 이 구조는 메모리 밀도를 높이면서도 행 버퍼를 활용한 빠른 접근을 가능하게 합니다. 메모리 컨트롤러는 CPU가 내보내는 물리 주소의 일부 비트를 Channel, Rank, Bank Group, Bank, Row, Column으로 분해한 뒤 해당 위치에 명령을 발행합니다.
DRAM 주소 지정의 또 다른 핵심은 제한된 핀 수로 큰 주소 공간을 다루는 것입니다. 이를 위해 DRAM은 Address Multiplexing을 사용해 같은 주소 핀 묶음을 여러 번 재사용합니다. ACT 단계에서는 Bank와 Row를, RD/WR 단계에서는 Column을 전달해 내부 Row Buffer를 중심으로 접근을 구성합니다.
핵심 개념
DRAM 3차원 주소 공간
DRAM은 Bank, Row, Column의 3차원 주소 공간으로 구성됩니다. 현대 DDR 계열에서는 여기에 Channel, DIMM, Rank, Bank Group까지 더해져 시스템 수준 주소 공간이 형성됩니다.
그림 1. DRAM의 3차원 주소 공간: Bank × Row × Column
- Bank: DRAM 칩 내의 독립적인 메모리 블록. 각 Bank는 자체 Row Decoder와 Sense Amplifier를 보유하며 독립적으로 동작합니다.
- Row: 각 Bank 내의 행 방향 메모리 셀 배열. 하나의 Row가 활성화되면 해당 행의 모든 Column 데이터가 Sense Amplifier에 적재됩니다.
- Column: 각 Row 내의 열 방향 메모리 셀. Row Buffer에서 원하는 Column 데이터를 선택하여 읽거나 씁니다.
주소 분배 (Address Multiplexing)
DRAM은 핀 효율성을 위해 Address Multiplexing 방식을 사용합니다. SDRAM 계열에서는 명령과 주소가 클럭 엣지에 맞춰 샘플링되며, 같은 CA 버스 위에서 ACT와 RD/WR가 서로 다른 주소 의미를 가집니다.
그림 2. DRAM Address Multiplexing: RAS/CAS 신호에 따른 주소 분배
DRAM은 동일한 주소 버스를 시간 분배 방식으로 사용합니다:
- ACT/RAS 단계: 선택할 Bank와 활성화할 Row 주소를 전달합니다.
- RD/WR/CAS 단계: 이미 열린 Row Buffer 안에서 접근할 Column 주소를 전달합니다.
이 방식으로 DRAM은 물리적 핀 수를 크게 줄이면서도 전체 주소 공간에 접근할 수 있습니다. 또한 Burst 전송 단위가 고정되어 있어 가장 하위 비트 일부는 외부 주소보다 내부 Burst 순서 제어에 더 직접적으로 연결됩니다.
주소 매핑 전략
DRAM 컨트롤러는 CPU 물리 주소를 DRAM의 물리적 주소 필드로 나누는 매핑 전략을 사용합니다. 어떤 비트를 Bank에 두고 어떤 비트를 Row에 둘지는 컨트롤러 설계와 목표 성능에 따라 달라집니다.
그림 3. 주소 매핑 전략: Channel, DIMM, Rank, Bank, Row, Column 매핑
일반적인 주소 매핑 전략:
| 비트 영역 | 역할 | 설명 |
|---|---|---|
| 고비트 (MSB) | Channel / DIMM | 여러 모듈과 채널로 트래픽 분산 |
| 중상위 비트 | Rank / Bank Group | 독립 경로와 타이밍 제약 분산 |
| 중간비트 | Bank | 병렬 접근 대상 Bank 선택 |
| 중하위 비트 | Row | 행 버퍼에 올릴 Row 선택 |
| 하위 비트 | Column / Burst | 열린 Row 안의 열과 Burst 오프셋 선택 |
실제 DDR4/DDR5 시스템에서는 Bank Group 비트가 Column보다 앞쪽에 배치되어 tCCD, bank conflict, row hit 비율을 함께 조절하는 경우가 많습니다. 따라서 주소 매핑은 단순한 위치 지정이 아니라 지연시간과 병렬성의 균형을 잡는 정책에 가깝습니다.
동작 원리
1. 읽기 동작에서의 주소 처리
DRAM 읽기 동작에서 주소는 다음 순서로 처리됩니다:
그림 4. 읽기 동작에서의 주소 처리 흐름
- ACT 명령: Bank 주소와 Row 주소가 전달됩니다. 선택된 Bank의 해당 Row가 활성화됩니다.
- tRCD 대기: Row가 Sense Amplifier로 충분히 증폭될 때까지 기다립니다.
- RD 명령: Column 주소가 전달됩니다. Row Buffer에서 해당 Column 데이터가 선택됩니다.
- 데이터 출력: CAS Latency 이후 선택된 Column 데이터가 Burst 단위로 DQ 핀을 통해 출력됩니다.
2. 쓰기 동작에서의 주소 처리
쓰기 동작도 읽기와 유사한 주소 처리 과정을 거치지만, DQ 버스 방향 전환과 write recovery 조건을 함께 고려해야 합니다.
- ACT 명령: Bank 주소와 Row 주소가 전달되어 Row가 활성화됩니다.
- WR 명령: Column 주소와 함께 쓸 데이터가 전달됩니다.
- 데이터 기록: Row Buffer의 해당 Column 위치가 갱신되고, 이후 셀 어레이에 다시 저장됩니다.
- PRE 또는 Auto Precharge: 다른 Row로 이동해야 하면 현재 열린 Row를 닫고 tRP를 기다립니다.
3. Bank interleaving
Bank interleaving은 여러 Bank를 교대로 사용해 한 Bank의 활성화, 복구, Precharge 지연을 다른 Bank 작업으로 가리는 기법입니다. SDRAM은 Bank마다 내부 상태가 비교적 독립적이기 때문에 컨트롤러가 명령 스케줄링만 잘해도 체감 대역폭을 높일 수 있습니다.
그림 5. Bank interleaving을 통한 동시 접근
연속적인 메모리 접근 시 컨트롤러는 Bank 주소를 번갈아 사용해 한 Bank가 tRCD, tRAS, tRP 같은 내부 타이밍을 소모하는 동안 다른 Bank에 명령을 발행합니다. DDR4와 DDR5에서는 Bank Group까지 고려하면 연속 읽기 간격과 row-buffer conflict 특성을 더 세밀하게 조절할 수 있습니다.
비교/분석
주소 매핑 전략 비교
| 전략 | 장점 | 단점 | 적합한 패턴 |
|---|---|---|---|
| Row-first | Row hit 비율을 높여 평균 지연을 낮추기 쉬움 | 같은 Bank 충돌이 늘 수 있음 | 순차 접근, 스트리밍, 행 지역성 높은 워크로드 |
| Bank-first | Bank 병렬성을 높여 처리량 확보에 유리 | Row miss와 Precharge 빈도가 늘 수 있음 | 병렬 요청이 많고 메모리 수준 병렬성이 중요한 워크로드 |
| Locality-aware / XOR 기반 매핑 | 캐시 세트 충돌과 row-buffer conflict를 함께 완화 가능 | 구현과 검증이 복잡함 | 서버, GPU, 다중 코어 환경의 혼합 접근 패턴 |
DRAM 세대별 주소 지정 차이
| 세대 | Bank 수(전형적) | Bank Group | 주소 지정 관점의 변화 | 특징 |
|---|---|---|---|---|
| DDR3 | 8 | 없음 | 기본 Bank/Row/Column 분해 | 전통적 open-page 정책 설명에 적합 |
| DDR4 | 16 | 4 | Bank Group 도입으로 열 명령 간격 제약이 세분화 | 병렬성 관리가 더 중요해짐 |
| DDR5 | 32 | 8 | 2개 서브채널과 더 많은 Bank 구조 | 주소 매핑과 스케줄링 자유도가 증가 |
| LPDDR5/5X | 16 | 구현별 차이 | 모바일 전력 제약과 채널 분할 최적화 | 저전력·패키지 제약 중심 설계 |
장단점
장점
- 효율적인 주소 전달: Address Multiplexing으로 핀 수 절감
- 유연한 메모리 관리: Bank 독립 동작으로 동시 접근 가능
- 지역성 활용: Row hit을 통한 빠른 반복 접근
- 확장성: Bank 추가를 통한 용량 확장 용이
단점
- 주소 변환 복잡도: 컨트롤러가 매핑 정책과 타이밍 제약을 함께 관리해야 함
- Bank 충돌: 동일 Bank 동시 접근 시 지연 발생
- Row miss 비용: 다른 Row 접근 시 Precharge 필요
- 복잡한 스케줄링: 최적 주소 매핑 알고리즘 필요
관련 기술
- 1T1C DRAM Analysis: DRAM 셀 구조와 동작 원리
- DRAM Subarray x4 Read: Subarray 구조와 읽기 동작
- DRAM Refresh Comparison: Refresh 동작 비교
- DDR Generation Comparison: DDR 세대별 비교
- DRAM 타이밍 파라미터: tRCD, CL, tRP가 주소 처리 순서와 어떻게 연결되는지 설명
- Memory Controller: 메모리 컨트롤러 아키텍처
참고 문헌
- JEDEC Standard: DDR4 SDRAM (JESD79-4)
- JEDEC Standard: DDR5 SDRAM (JESD79-5)
- "Memory Systems: Cache, DRAM, Disk" by Bruce Jacob
- "Computer Architecture: A Quantitative Approach" by Hennessy & Patterson
- Micron Technical Notes: DRAM Addressing and Memory Organization
- Wikipedia: Synchronous dynamic random-access memory
- Wikipedia: Interleaved memory
핵심 정리
DRAM 주소 지정은 Bank, Row, Column이라는 내부 구조와 이를 분해해 내는 메모리 컨트롤러의 정책을 함께 봐야 이해됩니다. Address Multiplexing은 제한된 핀 수로 큰 주소 공간을 다루게 해 주고, ACT와 RD/WR의 분리는 Row Buffer 기반 접근의 핵심입니다. 실제 성능은 Row hit을 늘릴지, Bank 병렬성을 높일지, Bank Group 충돌을 줄일지에 따라 달라집니다. DDR4와 DDR5처럼 Bank 수와 채널 구조가 늘어난 세대일수록 주소 매핑은 단순한 위치 지정이 아니라 성능 최적화 수단이 됩니다.