본문으로 건너뛰기
HMYHardware Wiki

HMY-Wiki

하드웨어 / 메모리

메모리 타이밍과 실제 지연시간

메모리 타이밍은 DRAM 내부 동작 사이에 지켜야 할 최소 간격을 클럭 주기 수로 나타낸다. CL-tRCD-tRP-tRAS처럼 적힌 숫자는 나노초가 아니다. 따라서 데이터 전송률이 다른 메모리에서 작은 숫자만 보고 더 빠르다고 판단하면 실제 대기 시간을 잘못 계산하게 된다.

주기와 실제 시간

CL
사이클 수 — 같은 값도 클럭에 따라 실제 시간이 다르다
실제 지연
CAS 지연(ns)을 함께 본다
Row 전환
다른 로우를 열면 추가 대기가 생긴다
균형
대역폭과 지연시간은 작업에 따라 중요도가 갈린다

CAS Latency(CL)는 읽기 명령 뒤 첫 데이터가 나올 때까지 기다리는 주기 수다. DDR 메모리의 실제 클럭은 MT/s 표기의 절반이며, 이를 넣어 근사 CAS 지연시간은 CL × 2000 ÷ MT/s ns로 계산할 수 있다. 예를 들어 DDR4-3200 CL16과 DDR5-6000 CL30은 둘 다 약 10ns다. 이 값은 CAS 부분만 떼어 비교한 것으로, 전체 메모리 접근 지연시간은 아니다.

tRCD는 행을 활성화한 뒤 열 접근까지의 간격이고, tRP는 열린 행을 닫고 다음 행을 준비하는 데 필요한 시간이다. tRAS는 행을 충분히 열어 두어야 하는 시간이다. 이미 열린 행을 쓰는 Row Hit에서는 일부 단계를 건너뛸 수 있다. 반대로 다른 행으로 전환하면 닫기와 열기 대기가 더해진다.

높은 데이터 전송률은 한 번에 옮길 수 있는 데이터를 늘려 대역폭을 키운다. 낮은 타이밍은 특정 작업이 기다리는 주기를 줄인다. 두 조건이 모두 좋아 보여도 실제 프로그램의 성격에 따라 체감 효과는 갈린다. 캐시 적중률과 접근 패턴, 채널·랭크 병렬성이 어느 쪽 병목이 되는지 결정하기 때문이다.

타이밍을 줄이거나 데이터 전송률을 올리면 신호와 전압에서 남는 여유가 줄어들 수 있다. 부팅에 한 번 성공했다고 안정적인 설정이라고 볼 수 없다. 장시간 메모리 접근과 반복 콜드 부팅에서 오류가 없는지 확인해야 한다.

CAS 지연이 같아도 응용 성능은 다르다

앞의 10ns 예시는 DRAM 읽기 명령 이후 첫 데이터까지의 계산이다. CPU가 캐시를 검색하고 메모리 컨트롤러에 요청을 보내는 시간, 열린 행 상태, 대기열, 데이터 반환 경로는 포함하지 않는다. 따라서 메모리 벤치마크에서 표시하는 전체 접근 지연과 10ns가 다르게 나오는 것은 모순이 아니다.

CL을 낮추는 것과 대역폭을 늘리는 것은 다른 변화다. 의존성이 있는 작은 읽기는 지연에 민감하고, 여러 요청을 겹쳐 처리하는 대용량 접근은 채널과 전송률의 이점을 더 활용할 수 있다. 같은 CL 환산값만으로 DDR 세대나 키트 전체의 성능이 같다고 볼 수 없다.

구조: DRAM 구조 · 프로필: JEDEC·XMP·EXPO · 단위: 클럭·대역폭·지연시간

참고 링크