PE Notes · CA/OS
메모리 인터리빙
연속 주소를 여러 뱅크에 순환 배치해 접근을 겹치는 메모리 인터리빙을 Low-order·High-order와 n-way 타이밍으로 정리합니다.
한 뱅크가 충전을 기다리는 동안 CPU도 기다리면, 대역은 이론의 절반입니다. 은 주소를 여러 독립 에 순환으로 나눠, 앞 칸의 대기와 다음 칸의 접근을 겹칩니다. 지연을 숨기고 유효 폭을 올리는 손입니다.
순환 배치
CPU와 DRAM의 시계가 벌어지면, 연속 읽기에도 프리차지 공백이 납니다. 단일 뱅크는 한 번에 한 요청입니다. n-way는 연속 워드를 n개 뱅크에 돌아가며 둡니다. 4-way면 주소 0·4·8·12가 네 집으로 갈립니다. 이론 폭은 n배이고, 실제는 접근 패턴이 순환을 얼마나 지키느냐입니다. 스트리밍·캐시 미스 폭주에서 효과가 큽니다.
| 주소 | 뱅크0 | 뱅크1 | 뱅크2 | 뱅크3 |
|---|---|---|---|---|
| 0x00 | ● | |||
| 0x04 | ● | |||
| 0x08 | ● | |||
| 0x0C | ● | |||
| 0x10 | ● |
는 하위 비트로 뱅크를 고릅니다. 연속 주소가 자연히 흩어져, 순차 접근에 맞습니다. 는 상위 비트로 고릅니다. 큰 영역이 한 뱅크에 붙어, 프로그램과 데이터를 가르는 배치에 가깝습니다. 현대 듀얼·쿼드 채널은 DIMM을 그 n-way의 구현으로 씁니다.
| 방식 | 뱅크 선택 | 잘 맞는 접근 |
|---|---|---|
| Low-order | 하위 비트 | 연속·스트리밍 |
| High-order | 상위 비트 | 큰 영역 분리 |
| n-way | n개 순환 | 이론상 n배 폭 |
타이밍과 지금 자리
4-way 타이밍은 간단합니다. 사이클 1에 뱅크0, 2에 뱅크1처럼 한 칸씩 어긋나면, 각 뱅크의 대기 구간이 남의 접근과 겹칩니다. CPU 쪽에서는 공백이 사라집니다. 한 뱅크만 때리면 이득이 없고, 같은 뱅크 충돌은 다시 줄을 섭니다.
서버는 NUMA 노드 사이에도 인터리빙을 켤 수 있습니다. 가까운 노드만 쓰는 지역성과 맞바꾸는지가 운영 선택입니다. 스택 안에도 수백 뱅크가 같은 손을 씁니다. 캐시가 히트면 이 계층은 조용하고, 미스가 이어지면 인터리빙이 살아납니다. 일관성 프로토콜은 값의 참을, 인터리빙은 이동의 폭을 봅니다.
답안은 정의(뱅크 순환), Low/High-order, 4-way 타이밍, 채널·HBM 구현을 한 장에 닫습니다.