임베디드 스터디 - MMU와 가상메모리
임베디드 스터디 - MMU와 가상메모리
MMU (Memory Management Unit)
- 프로세스 내 여러 개의 태스크가 동시에 동작 할 때, 각각의 프로세스가 서로의 메모리를 침범하지 못하게 보호하는 하드웨어 유닛
- 간단한 동작을 수행하는 장치의 경우, 태스크가 적기 때문에 RAM 내 고정 메모리 주소를 할당하여 시스템을 구성할 수 있지만, 태스크가 많아지면 고정 메모리 주소는 메모리 활용이 비효율적으로 변함
페이지 테이블 (Page Table)
- MMU는 각 프로그램에 가상 주소를 할당하고, 실제 메모리 주소를 페이지 테이블(Page Table)에 저장함
- 기존 메모리 접근 방식에 비해 속도가 느림(메모리 내 MMU 페이지 테이블 참조, 이후 실제 물리 주소 참조)
1
2
3
4
5
6
7
8
9
10
프로그램 A: 가상주소 0x1000 → MMU → 실제 RAM 0x40001000
프로그램 B: 가상주소 0x1000 → MMU → 실제 RAM 0x80001000
CPU가 가상주소 요청
↓
MMU가 페이지 테이블 참조
↓
물리주소로 변환
↓
실제 RAM 접근
TLB (Translation Lookaside Buffer)
- 최근에 사용한 페이징 테이블을 캐싱하여 접근 속도를 높임
1
2
3
4
5
6
7
8
9
CPU가 가상주소 요청
↓
TLB 먼저 확인
┌────────────────────────────┐
│ TLB 히트 → 물리주소 즉시 반환 │ (RAM 접근 1번)
│ TLB 미스 → 페이지 테이블 참조 │ (RAM 접근 2번 + TLB 갱신)
└────────────────────────────┘
↓
실제 RAM 접근
MPU (Memory Protection Unit)
- 특정 메모리 영역에 대한 접근 권한을 설정하는 하드웨어 유닛
- 단순, 저전력, 저비용을 고려하여 MMU 대신 사용되는 유닛임
페이징/프레임
- 페이지 : 가상 공간 메모리를 고정 크기로 잘라낸 단위
- 프레임 : 물리 주소 메모리를 고정 크기로 잘라낸 단위
- 페이지와 프레임의 크기는 동일
- 페이지와 프레임의 크기는 페이지 테이블의 크기와 내부 단편화(Internal Fragmentation)의 Trade-off로 판단하여 책정
- 보통 4KB로 책정됨
페이지 폴트 (Page Fault)
- 프로그램이 요청한 데이터가 RAM의 프레임에 없는 상태
- 보조 기억 장치의 스왑 영역 탐색
1
2
3
4
5
6
7
8
9
CPU가 가상주소 접근
↓
페이지 테이블 확인 → 해당 페이지 없음 (Page Fault 발생)
↓
OS가 디스크(Swap)에서 해당 페이지를 찾아 RAM에 적재
↓
페이지 테이블 갱신 (새로운 프레임 번호 기록)
↓
CPU가 다시 메모리 접근 → 성공
- 페이지 교체 알고리즘
- LRU, FIFO, OPT(Optimal)
- OPT는 미래를 예측하여 페이지를 교체하는 알고리즘이므로, 물리적으로 구현 불가.
성능 Upper Bound 용으로 사용
| 알고리즘 | 기준 | 특징 |
|---|---|---|
| OPT | 앞으로 가장 오래 안 쓸 것 | 미스율 최소, 구현 불가 (미래 예측 필요) |
| LRU | 가장 오래 사용 안 된 것 | 현실적 최선, 구현 복잡 |
| FIFO | 가장 먼저 들어온 것 | 구현 단순, 성능 낮을 수 있음 |
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.