포스트

임베디드 스터디 - 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 라이센스를 따릅니다.