DRAM 타이밍 파라미터, tRCD와 CL과 tRP의 의미
도서관 대출 데스크에서 책 한 권을 부탁하면, 사서는 서가에서 그 책이 있는 단 전체를 카트에 통째로 내려놓고 그 카트에서 책을 골라 줍니다. 이미 같은 단이 카트에 놓여 있으면 책만 집어 주면 되지만, 다른 단이 놓여 있으면 먼저 치우고 새 단을 가져와야 하죠.
DRAM에서 데이터를 읽는 과정이 이와 아주 비슷합니다. 이 글에서 정리할 DRAM 타이밍 파라미터는 그 과정의 단계마다 반드시 기다려야 하는 최소 시간을 이름 붙여 놓은 것입니다.
대출 데스크와 다른 점이 있습니다. 사서는 눈치껏 속도를 조절하지만, 메모리 컨트롤러는 표준에 정해진 최소 시간을 한 클록 사이클도 어기지 않고 지켜야 합니다. 시간이 모자라면 센스 앰프가 신호를 충분히 키우기 전에 값을 읽어 버려 오류가 나기 때문입니다.
DRAM 접근에 단계마다 대기 시간이 붙는 이유
DRAM은 셀 하나를 바로 읽는 구조가 아닙니다. 셀 배열에서 행 하나를 통째로 센스 앰프에 불러온 뒤, 그 안에서 원하는 열의 값을 골라 내보내는 두 단계로 접근합니다.
각 단계는 물리적으로 시간이 걸리는 동작입니다. 워드라인이 켜지고 셀의 아주 작은 전하가 비트라인에 약한 전압 차이를 만들면, 센스 앰프가 이를 읽을 수 있을 만큼 키워야 하고, 다 쓴 뒤에는 비트라인을 다음 접근을 위해 되돌려 놓아야 합니다.
이 동작들의 최소 소요 시간을 클록 사이클 수로 적어 둔 것이 DRAM 타이밍 파라미터입니다. 모듈 대부분은 이 값을 SPD라는 작은 메모리에 담아 두고, 시스템이 부팅할 때 읽어 가서 설정합니다.
행을 열고 읽고 닫는 명령의 순서
접근은 세 가지 명령이 이어지는 흐름으로 정리됩니다. 어느 명령 뒤에 얼마나 기다리는지가 곧 파라미터의 정체입니다.
읽기 한 번의 명령 흐름
- ACT(Activate): 행 주소를 보내 해당 행을 열고 센스 앰프에 불러옵니다.
- tRCD만큼 기다린 뒤 RD(Read) 명령으로 열 주소를 보냅니다.
- CL만큼 기다리면 첫 번째 데이터가 출력되기 시작합니다.
- 사용이 끝나면 PRE(Precharge) 명령으로 행을 닫습니다. 단, ACT 후 tRAS가 지나기 전에는 닫을 수 없습니다.
- tRP만큼 기다리면 같은 뱅크에서 다음 행을 열 수 있습니다.
한 번 열어 둔 행에서는 열 주소만 바꿔 가며 RD 명령을 이어 보낼 수 있습니다. 위치가 가까운 데이터를 연달아 읽을 때 빠른 이유가 여기에 있습니다.
tRCD, CL, tRP, tRAS가 기다리는 것
tRCD(RAS to CAS Delay)는 행을 연 뒤 열 명령을 내기까지의 최소 시간입니다. 워드라인이 켜진 뒤 센스 앰프가 비트라인의 미세한 전압 차를 0과 1로 가를 만큼 키우는 시간이 이 안에 들어 있습니다.
CL(CAS Latency)은 읽기 명령을 받은 시점부터 첫 데이터가 나올 때까지의 사이클 수입니다. 열 주소를 해석해 센스 앰프의 값 중 하나를 골라 데이터 경로를 거쳐 출력하기까지의 지연이며, 쓰기 쪽에는 이와 별도로 CWL이 정해져 있습니다.
tRP(Row Precharge Time)는 프리차지 명령 뒤 다음 행을 열 수 있을 때까지의 시간으로, 비트라인을 다음 접근에 맞는 기준 전압으로 되돌리는 데 필요합니다. tRAS(Row Active Time)는 행을 연 뒤 닫을 수 있기까지의 최소 시간이고, 센스 앰프가 읽은 값을 셀에 되써서 전하를 복원하는 시간을 보장합니다.
표기는 보통 CL-tRCD-tRP-tRAS 순서의 숫자열로 합니다. 이 숫자열은 모두 시간이 아닌 클록 사이클 수라는 점이 중요합니다. 이 외에도 리프레시에 관련된 tRFC, 뱅크 그룹 사이의 간격 같은 파라미터가 더 있지만, 위 네 가지가 접근 지연을 이해하는 뼈대입니다.
행 히트와 행 미스와 행 충돌의 지연 계산
접근하려는 행이 이미 열려 있는지에 따라 걸리는 시간이 달라집니다. 열려 있으면 행 히트, 그 뱅크가 닫혀 있으면 행 미스, 다른 행이 열려 있으면 행 충돌이라고 부릅니다.
가상 계산 예시, 실제 시간으로 바꾸기실제 제품 값이 아니라 설명을 위한 가정입니다. DDR 방식에서 데이터 전송률이 3200 MT/s이면 클록은 그 절반인 1600 MHz이고, 클록 주기는 1 ÷ 1600 MHz = 0.625 ns입니다. 파라미터는 CL 16, tRCD 18, tRP 18 사이클이라고 둡니다.
행 히트는 CL만 기다리므로 16 × 0.625 = 10 ns입니다. 행 미스는 tRCD와 CL을 더해 (18 + 16) × 0.625 = 21.25 ns입니다.
행 충돌은 먼저 닫아야 하므로 tRP, tRCD, CL을 모두 더해 (18 + 18 + 16) × 0.625 = 32.5 ns입니다. 같은 읽기라도 상황에 따라 첫 데이터까지 세 배 이상 차이가 납니다.
앞의 계산은 첫 데이터가 나오기까지의 시간이며, 이후 연속 데이터를 내보내는 버스트 전송 시간은 따로 더해집니다. 컨트롤러가 같은 행을 쓰는 요청을 모아서 처리하려고 애쓰는 이유도, 행 충돌로 생기는 이 추가 대기를 줄이기 위해서입니다.
사이클 숫자와 실제 시간을 구분하는 법
여기서 CL 숫자가 작을수록 무조건 빠른 메모리라는 말은 흔한 오해입니다. 사이클 수는 클록이 빨라지면 같은 시간이라도 더 큰 숫자가 되기 때문입니다.
가상 계산 예시, 사이클 수 비교의 함정전송률 6400 MT/s라면 클록은 3200 MHz이고 주기는 0.3125 ns입니다. 이때 CL이 32라면 32 × 0.3125 = 10 ns입니다.
앞의 3200 MT/s, CL 16 구성도 10 ns였으므로 숫자는 두 배가 되었지만 지연은 같습니다. 세대나 속도가 다른 메모리는 사이클 수가 아니라 ns로 환산해서 비교해야 합니다.
빠른 세대로 갈수록 CL 숫자가 커지는 경향은 이런 이유로 설명됩니다. 클록이 올라가도 셀과 센스 앰프가 신호를 만드는 물리적 시간은 크게 줄지 않기 때문에, 절대 지연은 비슷하게 유지하면서 대역폭을 늘리는 쪽으로 발전해 왔습니다.
DRAM 타이밍 파라미터 비교 표
| 구분 | 기준이 되는 명령 | 기다리는 동작 | 접근 지연에서의 역할 |
|---|---|---|---|
| tRCD | ACT에서 RD까지 | 센스 앰프가 신호를 키우는 시간 | 행을 연 직후 열 접근이 가능해지는 시점 |
| CL | RD에서 첫 데이터까지 | 열 선택과 데이터 경로 지연 | 행 히트일 때의 읽기 지연 |
| tRP | PRE에서 다음 ACT까지 | 비트라인을 기준 전압으로 되돌림 | 행 충돌일 때 추가되는 대기 |
| tRAS | ACT에서 PRE까지 | 셀 전하를 되써서 복원 | 행을 최소한 얼마나 열어 두는지 |
| 단위 | 모두 클록 사이클 수이며, 실제 시간은 사이클 수에 클록 주기를 곱해 구합니다. 숫자가 작을수록 무조건 빠르다는 오해에 주의합니다. | ||
핵심 정리
DRAM 타이밍 파라미터는 행을 열고(tRCD), 열을 골라 읽고(CL), 행을 닫는(tRP) 동작에 필요한 최소 시간을 클록 사이클로 적어 둔 값입니다. 행 히트에서는 CL만, 행 미스에서는 tRCD와 CL, 행 충돌에서는 tRP까지 더해져서 같은 읽기도 지연이 달라집니다.
카트에 놓인 단을 바꾸는 일이 번거로운 만큼 같은 행을 이어서 읽는 편이 유리하고, 사이클 숫자는 반드시 클록 주기를 곱해 시간으로 환산한 뒤에 비교해야 합니다.
면접 대비 질문
면접 대비 질문DDR 메모리에서 CL 16과 CL 32를 단순히 비교해 CL 16이 더 빠르다고 말할 수 없는 이유를 설명하고, 행 히트와 행 충돌의 지연 차이도 함께 말해 보세요.
[답변 포인트] CL이 시간이 아니라 클록 사이클 수라는 점으로 시작합니다. DDR은 데이터 전송률이 클록의 두 배이므로 클록 주기를 먼저 구해 사이클 수에 곱해야 실제 ns를 알 수 있고, 클록이 빠른 쪽은 숫자가 커도 지연이 같거나 더 짧을 수 있다고 예시로 보여 줍니다. 행 히트는 CL, 행 미스는 tRCD와 CL, 행 충돌은 tRP와 tRCD와 CL이 더해진다는 점, 그래서 컨트롤러가 같은 행에 대한 요청을 모아 처리하는 이유와 연결하면 좋습니다.









