핀당 전송 속도, 데이터 버스 폭, DIMM·칩·스택 수를 입력하면 메모리 피크 대역폭을 구할 수 있습니다. 효율 계수를 더하면 실제로 쓸 수 있는 대역폭의 대략적인 추정치를 볼 수 있습니다. 주요 규격은 프리셋으로 제공됩니다.
결과
피크 대역폭
–
추정 실효 대역폭
–
핀당 데이터 속도
–
나노초당 바이트 수
–
대표 규격 비교 (단위당)
규격 (단위)
MT/s
버스 폭 (비트)
피크 대역폭
피크 값은 DDR4와 DDR5는 DIMM당, LPDDR5X는 64비트당, GDDR6는 칩당, HBM3는 스택당 값입니다. 전송 속도는 각 규격의 대표적인 속도 등급이며, 더 빠르거나 느린 제품도 있습니다.
그래프로 보기
다른 입력은 현재 값 그대로 두고, 선택한 입력만 현재 값의 1/4~4배 범위에서 바꿨을 때의 결과입니다. 빨간 점이 현재 값입니다.
대역폭 공식의 원리
메모리 피크 대역폭은 각 데이터 핀이 초당 전송하는 횟수(전송 속도)에 핀 수(버스 폭)를 곱하고, 비트를 바이트로 바꾸기 위해 8로 나눈 값입니다. DDR(Double Data Rate) 메모리는 클럭의 상승 에지와 하강 에지 모두에서 데이터를 전송하므로 전송 속도는 클럭 주파수의 두 배입니다. DDR4-3200은 1,600 MHz 클럭으로 3,200 MT/s를 냅니다. 64비트 버스라면 3,200 × 64 ÷ 8 = 25,600 MB/s, 즉 25.6 GB/s가 됩니다. MHz와 MT/s를 혼동하면 답이 절반이 되거나 두 배가 됩니다.
피크 대역폭과 지속 대역폭
피크 대역폭은 매 사이클 데이터가 흐를 때의 이론적 상한입니다. 실제 DRAM은 저장된 전하를 유지하기 위한 리프레시, 사용 중인 뱅크에서 새 로우를 열어야 하는 뱅크 충돌, 버스 방향이 바뀔 때의 읽기/쓰기 전환으로 시간을 잃습니다. 따라서 지속 대역폭은 피크보다 낮습니다. 접근 패턴에 크게 좌우되지만, 피크의 대략 60~90%가 흔히 쓰이는 대략적인 기준입니다. 연속적인 순차 읽기에서는 높고, 랜덤 접근이나 읽기·쓰기가 섞인 경우에는 낮습니다.
넓고 느리게, 또는 좁고 빠르게
대역폭은 핀을 늘리거나 핀을 빠르게 하는 방법으로 얻습니다. GDDR6는 칩당 좁은 32비트 버스를 핀당 16 Gb/s로 구동해 칩당 64 GB/s를 얻습니다. 반면 HBM3는 DRAM 다이 스택을 매우 넓은 1,024비트 버스로 연결하며, 핀당 6.4 Gb/s라는 비교적 낮은 속도로도 스택 하나가 약 819 GB/s에 이릅니다. HBM은 연결이 짧아 비트당 에너지가 적지만, 실리콘 인터포저 같은 비싼 패키징이 필요합니다. GDDR는 일반 기판에 실장할 수 있지만, 고속 신호 때문에 배선과 전원 설계가 어려워집니다.
메모리 장벽과 루프라인
메모리 장벽은 프로세서의 연산 성능이 메모리 대역폭과 지연 시간의 개선보다 빠르게 향상될 때 생기는 격차입니다. 이동하는 바이트당 연산이 적은 프로그램은 연산 유닛이 데이터를 기다리며 놀게 되므로 대역폭이 속도를 결정합니다. 루프라인 모델은 이를 나타내며, 달성 가능한 성능은 피크 연산 성능과 대역폭 × 연산 강도(바이트당 연산 수) 중 작은 쪽입니다. 예를 들어 100 GB/s에서 바이트당 연산이 1회라면 성능은 초당 1,000억 회 연산을 넘을 수 없습니다. 캐시에서 데이터를 재사용해 연산 강도를 높이는 것이 대역폭 한계를 완화하는 기본적인 방법입니다.
피크 대역폭은 전송 횟수 × 버스 폭이므로 3,200 × 10⁶ 회/s × 8바이트 = 25.6 GB/s입니다. 이름의 'DDR4-3200'은 전송 횟수(MT/s)를 나타내고, 모듈 규격명 'PC4-25600'은 대역폭(MB/s)을 나타냅니다. 실제로는 리프레시, 행 전환, 읽기/쓰기 전환 시에 대기 시간이 생기므로 실효 대역폭은 피크의 70~80% 정도인 경우가 많습니다.
프로세서의 연산 성능은 연평균 50% 이상으로 성장한 시기가 있었지만, DRAM의 액세스 지연은 수십 ns에서 거의 개선되지 않아 CPU가 수백 사이클이나 데이터를 기다리게 되었습니다. 이것이 메모리 월입니다. 대책으로 다단 캐시, 메모리 병렬 액세스, 프리페치, HBM과 같은 광대역 메모리, 연산을 메모리 가까이에서 수행하는 PIM(프로세싱 인 메모리) 등이 추진되고 있습니다.
대역폭은 동시에 처리 중인 데이터량을 대기 시간으로 나누어 구할 수 있습니다(리틀의 법칙). 미스가 하나라면 64 B ÷ 100 ns = 0.64 GB/s이고, 동시에 10개 처리할 수 있다면 10 × 64 B ÷ 100 ns = 6.4 GB/s가 됩니다. 주기억장치의 대역폭을 다 쓰려면 대기 시간을 줄이는 것뿐 아니라 많은 미스를 동시에 처리하는 메모리 레벨 병렬성이 필수입니다. 0.64 GB/s는 동시 1개일 때의 값 그대로이고, 0.064 GB/s는 반대로 10으로 나눈 값입니다.
자주 묻는 질문
DDR4-3200의 대역폭은 얼마입니까?
3,200 MT/s × 64비트 ÷ 8 = 25.6 GB/s입니다. 이는 64비트 채널 하나(DIMM 1개)의 피크이며, 2채널이면 51.2 GB/s입니다. 실제로 쓸 수 있는 대역폭은 이보다 낮습니다.
MT/s와 MHz는 어떻게 다릅니까?
MHz는 클럭 주파수이고, MT/s는 초당 데이터 전송 횟수를 백만 단위로 나타낸 것입니다. DDR 메모리는 클럭의 양쪽 에지에서 전송하므로 MT/s는 클럭 주파수의 두 배입니다. DDR4-3200은 1,600 MHz 클럭을 사용합니다.
DDR5 DIMM은 왜 두 채널로 나뉩니까?
DDR5 DIMM에는 독립된 32비트 서브채널이 두 개 있습니다(ECC 제외). 전체 폭은 DDR4와 같은 64비트이지만, 더 작은 독립 단위 덕분에 동시에 처리 중인 요청을 늘릴 수 있어 실효 효율이 높아지는 경향이 있습니다. DDR5-6400 DIMM 하나의 피크는 51.2 GB/s입니다.