1️⃣ 메모리 인터리빙 (Memory Interleaving)

정의:

여러 개의 메모리 뱅크(bank)에 데이터를 교대로 저장해 CPU가 병렬로 접근할 수 있도록 하는 기술.

목표는 메모리 접근 지연(latency) 을 줄이고 대역폭(bandwidth) 을 높이는 것.


🔹 인터리빙의 두 가지 방식

구분 하위 인터리빙 (Low-order) 상위 인터리빙 (High-order)
뱅크 선택 기준 하위 비트로 결정 상위 비트로 결정
데이터 배치 연속 주소가 여러 뱅크에 교차 분산 연속 주소가 한 뱅크에 집중 저장
유리한 패턴 순차 접근 (배열, 버퍼, 스트림 처리) 병렬 접근 (멀티코어, 다중 DMA)
장점 파이프라인 유지, 연속 읽기 속도 ↑ 각 코어가 독립적 접근, 충돌 ↓
단점 병렬 접근 시 충돌 가능 순차 접근 시 한 뱅크 과부하

🔹 동작 구조 요약

즉, 프로그래머는 주소만 지정하면 시스템이 알아서 인터리빙 구조에 맞게 동작함.


🔹 임베디드 프로그래머 관점에서

일반적인 임베디드 프로그래머(C 개발자)는 직접 제어하지 않는다.

그러나 구조를 알면 최적화 포인트를 잡을 수 있다.

(1) DMA 전송 최적화