메모리 계층: 빠를수록 작고 비싸다
레지스터, 캐시, SRAM, Flash, 외부 메모리. 각 계층의 속도와 용량 차이를 알면 변수를 어디에 둘지가 보입니다.
| 계층 | 용량 | 접근 시간 | 특징 |
|---|---|---|---|
| 레지스터 | 수십 바이트 | 0클럭 | CPU 안 |
| 캐시 / TCM | 수~수십 KB | 1클럭 | M7 등 고성능 코어 |
| SRAM | 수십~수백 KB | 1~2클럭 | 변수, 스택 |
| 내부 Flash | 수백 KB~수 MB | 대기 상태 있음 | 코드, 상수, 전원 꺼져도 유지 |
| 외부 메모리 | MB~GB | 수십 클럭 이상 | SDRAM, QSPI Flash |
임베디드에서 기억할 것
- Flash는 읽기는 되지만 쓰기가 느리고 횟수 제한이 있습니다. 설정값 저장은 별도 설계가 필요합니다.
- SRAM은 전원이 꺼지면 사라집니다. 그래서 부팅 때 초기값을 Flash에서 복사해 옵니다.
- 캐시가 있으면 DMA와 충돌할 수 있습니다. Cortex-M7에서 DMA로 받은 데이터가 안 보인다면 캐시 무효화를 의심합니다.
빠른 코드를 위한 배치
제어 루프처럼 시간이 중요한 함수는 RAM이나 TCM에 올려 실행하고, 자주 쓰는 변수는 지역 변수로 받아 레지스터에서 계산되게 합니다. 링커 스크립트에서 섹션을 지정하면 함수 단위로 위치를 정할 수 있습니다.
영상으로 이어 보기회로와 하드웨어 시리즈 8편전자제품 속 회로 소자는 어떻게 동작할까? · 저항 · 커패시터 · 인덕터 완벽 정리FREE PDF무료 전자책 3권 받기이 주제를 한 권으로 이어서 읽고 싶다면. BLDC 모터 제어, 직렬통신, 센서를 책 분량으로 묶었습니다. 이메일만 남기면 바로 받습니다.무료로 받기 →