DDR 등의 RAM 의 속도에 대한 정리
RAM (Random Access Memory)는 memory component들이 모인 일종의 Array임.
- 용량이 증가함에 따라, Row/Column Address Register를 도입하여 Register Array의 Row (or Page)와 Column을 지정하는 상위 Address 및 하위 Address를 사용함.
- 이 때문에 address를 분리하여 처리하는 시간과 행과 열을 접근하는 시간 들이 RAM에서 데이터를 읽고쓰는 시간에 추가됨.
- Address 처리를 위한 Row Address Strobe, Column Address Strobe 및 Column에서 데이터를 읽고/쓰는 Column Latency 등이 RAM의 속도를 결정함.
사실, Register도 1비트를 저장하는 cell (DRAM) 또는 flip-flop(SRAM) 의 집합임.
이 문서는 RAM에서 데이터에 접근하는데 걸리는 시간과 관련된 표기법과 함께 RAM의 구조와 작동순서에 대해 간단히 정리함.
관련 용어
RAM:
- Address를 통해 위치를 지정하여 임의의 순서로 접근이 가능한 Memory를 가리킴.
- 주로 Volatile Memory이며 Access In Any Order가 특징.
Strobe:
- 짧은 간격으로 반복되어 깜빡임을 나타내는 Strobe 단어를 통해,
- 공학에서는 특정 작업을 동기화하여 사용하기 위해 이용되는 신호나 특정작업이나 이벤트를 알리는 신호를 가리킴
Latency:
- 어떤 작업, 신호, 요청 등이 시작되고 완료되기까지의 시간적 지연 을 가리킴
Mux:
- Multiplexer로 여러 입력 중 출력될 하나의 입력을 선택하는 selector를 가리킴(n개의 입력과 1개의 출력으로 구성)
Decoder:
- Binary Decoder의 경우, 이진수를 입력으로 받아 해당하는 bit만을 1로 나머지는 0이 되는 one-hot code를 출력.
https://dsaint31.tistory.com/403
[CE] Demultiplexer and Multiplexer (Demux and Mux)
Demultiplexer and Multiplexer (Demux and Mux) 1. Demultiplexer The demultiplexer is a combinational logic circuit designed to switch one common input line to one of several seperate output line. demux라고 줄여서 부름. 1개의 입력을 여러 출력
dsaint31.tistory.com
https://dsaint31.tistory.com/404
[CE] Binary Encoder and Decoder
Binary Encoder and Decoder 1. Binary (or Priority) Encoder Priority Encoders take all of their data inputs one at a time and converts them into an equivalent binary code at its output. 1-1. Combinational logic circuit (4:2 encoder) OR gate를 이용한 간
dsaint31.tistory.com
Memory Component with Address
기본적인 Memory Component는 다음과 같이 구성됨
다음 구성은 SRAM (Static RAM)의 기준이며, 이해를 돕기 위해 매우 간략화된 것임.

- (Binary) Decoder를 통해, Address를 통해 타겟 register를 activation시킴.
- 동시에 같은 Address가 Mux로 들어가 타겟 register의 출력을 tri-state output으로 연결시킴.
- tri-state output의 read enable이 활성화되어 output으로 읽어들이는게 가능해짐.
일반적으로 Memory component라는 용어보다 Momory Cell 또는 Momory Module이라는 용어가 더 많이 사용됨.
- SRAM의 경우에는 flip-flop이 기본단위로 이들의 묶음을 위 그림에서처럼 Register라고 애기할 수도 있으나, Register는 일반적으로 CPU내에서 데이터가 저장되는 소자를 가리킴에 유의할 것.
- DRAM의 경우에는 transistor와 capacitor가 memory cell을 이루기 때문에 위의 그림과 차이가 있음.
RAM with Address Register
RAM에서 요구되는 용량이 커짐에 따라, 앞서 살펴본 Memory Component가 여러 개가 Array를 이루어서 RAM을 구성하게 되었고, 주소가 매우 길어짐에 따라 이를 상위, 하위로 나누어서 Row와 Column으로 Memory Component가 구성됨.

- 집적화를 위해, 같은 라인으로 Row와 Column의 지정이 이루어지도록 Address Register와 Address Strobe가 도입되었고
- 이는 Address Bus의 폭을 절반으로 줄이고,
- Row를 고정하고 해당 Row의 여러 Column들을 읽고 쓰는 방식 (Page를 고정하고 해당 Page에서 여러 위치에 접근) 으로
- RAM이 동작하도록 하여 RAM의 입출력 효율을 향상시킴.
RAM에서 데이터 접근 순서

1. Row Activation:
- Row Address Strobe (RAS)를 통해 Row Address가 지정됨.
- Address Bus는 Row Address로 사용되며, Row Address Decoder를 통해
- 해당 Row에 해당하는 Memory Component들이 선택됨.
- Row Address Strobe 이후, Column Address를 지정하기 까지 tRCD만큼 대기해야 함.
- tRCD (Time of RAS and CAS Delay): RAS 이후 CAS가 이루어지기까지 최소 대기 시간.
- Row가 activation되고 나서 같은 Row에서 여러 Column이 활성화되어 데이터를 읽을 수 있음.
- 이후 Precharge 명령에 의해 현재의 Row과 deactivation되고 다음 Row가 activation이 됨.
- 단, Row Activation 이 되고 나서, Precharge 명령을 내리기 까지는 최소한 Time of Row Address Strobe (tRAS) 만큼은 RAS가 Activation으로 유지되어야 함.
2. Column Activation:
- Column Address Strobe (CAS)를 통해 Column Address가 지정됨.
- Address Bus는 Column Address로 사용되며, Column Address Decoder를 통해
- 원하는 Column에 해당하는 Memory Component가 Activation 됨.
- Column Addtress Strobe 이후, 실제 데이터 입출력이 이루어지기 까지 Column Latency (CL)만큼 대기함.
- Column Latency (CL) : CAS 이후 실제 데이터를 입출력하기까지 걸리기 까지 지연시간.
- Column Latency (CL)은 실제적인 RAM의 속도에 가장 큰 영향을 주는 요소임.
3. Precharge
- 현재 활성화된 Row를 deactivation (흔히 close시킨다고 불림)시키고, 새로운 Row를 activation 시키기 위한 준비 동작 실행.
- 현재 활성화된 Row가 activation 된 시점에서 최소 tRAS 정도 지난 시간부터 실행 가능.
- 이후 읽기/쓰기 작업을 위해 충전도 이루어져서 Precharge(미리 충전)이라고 불림.
- Precharge 과정은 최소한 Time of Row Precharge (tRP) 시간이 걸림.
- 즉, Precharge 명령 이후 tRP가 지나야 다음 Row를 activation시키기 위한 Row Address Strobe가 가능해짐.
- 이후 다시 1번으로
RAM의 속도 표기

CL22-22-22-52-1.2V 에서 빨간색으로 표시한 부분이 바로 RAM의 속도관련 표기임.
CL22: Column Latency가 22cycle을 차지.
22: 그 다음은 tRCD 로 역시 22cycle을 차지하는 것으로 기재됨.
22: 그 다음은 tRP 로 22로 22cycle 을 차지.
52: 그 다음은 tRAS로 최소한 Row가 활성화되어야 하는 시간임. CL과 tRCD를 더한 값보다 항상 커야함.
각 cycle은 메모리 클럭(FSB, System Bus와 동기화) 기준으로 DDR4-3200 메모리의 경우, 메모리 클럭은 1600 MHz임.
(DDR=Double Data Rate 이므로 3200/2 = 1600)
즉, 22 memory clock cycle은 22 x 1/1600M = 13.75ns 임.
CPU와 RAM은 다른 동작 클럭을 가지며, 메모리 컨트롤러가 이들 사이의 동기화를 담당함.
같이 보면 좋은 자료들
https://dsaint31.me/mkdocs_site/CE/ch03_seq/ce03_02_2_RAM/?h=ddr
BME
Core Memory DDR DRAM RAM SDRAM SRAM Volatile Random Access Memory (RAM) 앞서 살펴본 것처럼 Address를 통해 위치를 지정하여 읽고 쓰는 방식의 Memory 를 Random Access Memory (RAM)라고 칭함. Random Acess 는 Address를 통해 임
dsaint31.me
'CE' 카테고리의 다른 글
| [CE] Parity Check and Hamming Code - Parity Bit (0) | 2025.05.21 |
|---|---|
| [CE] Java Script Engine (0) | 2025.05.12 |
| [CE] WebAssmbly (WASM) (0) | 2025.04.21 |
| [Programming] MVC, MVVM, and Qt's MV (0) | 2025.04.14 |
| [C] LLP64 vs. LP64 (0) | 2025.03.21 |