정의:
여러 개의 메모리 뱅크(bank)에 데이터를 교대로 저장해 CPU가 병렬로 접근할 수 있도록 하는 기술.
목표는 메모리 접근 지연(latency) 을 줄이고 대역폭(bandwidth) 을 높이는 것.
| 구분 | 하위 인터리빙 (Low-order) | 상위 인터리빙 (High-order) |
|---|---|---|
| 뱅크 선택 기준 | 하위 비트로 결정 | 상위 비트로 결정 |
| 데이터 배치 | 연속 주소가 여러 뱅크에 교차 분산 | 연속 주소가 한 뱅크에 집중 저장 |
| 유리한 패턴 | 순차 접근 (배열, 버퍼, 스트림 처리) | 병렬 접근 (멀티코어, 다중 DMA) |
| 장점 | 파이프라인 유지, 연속 읽기 속도 ↑ | 각 코어가 독립적 접근, 충돌 ↓ |
| 단점 | 병렬 접근 시 충돌 가능 | 순차 접근 시 한 뱅크 과부하 |
즉, 프로그래머는 주소만 지정하면 시스템이 알아서 인터리빙 구조에 맞게 동작함.
일반적인 임베디드 프로그래머(C 개발자)는 직접 제어하지 않는다.
그러나 구조를 알면 최적화 포인트를 잡을 수 있다.