가상메모리와 TLB

Virtual Memory and TLB

가상메모리는 프로세스에 물리 메모리보다 큰 독립 주소 공간을 제공하고 MMU가 페이지 테이블로 가상주소를 물리주소로 변환하는 기법이며, TLB는 최근 변환 결과를 저장해 주소 변환 속도를 높이는 MMU 내 고속 캐시임.

핵심 키워드

페이징(Paging)페이지 테이블·PTEMMUTLB 적중·미스(Hit/Miss)페이지 폴트(Page Fault)다단계 페이지 테이블페이지 교체(FIFO·LRU·OPT·Clock)스래싱(Thrashing)·워킹셋ASID

구성도

정리

1. 개요

  • 배경: 다중 프로그래밍 환경에서 물리 메모리 크기 한계, 프로세스 간 메모리 보호 필요
  • 효과: 물리 메모리보다 큰 주소 공간, 프로세스 격리, 메모리 공유(공유 라이브러리), 요구 페이징으로 적재 효율 향상
  • 문제: 매 메모리 접근마다 페이지 테이블 조회 필요 → 성능 저하 → TLB로 해결

2. 구성 및 원리

  • 페이징: 가상주소 = 페이지 번호(VPN) + 오프셋, 물리 메모리는 동일 크기 프레임으로 분할
  • 페이지 테이블 엔트리(PTE): 프레임 번호, Valid 비트, 보호 비트(R/W/X), 참조(Reference) 비트, 변경(Dirty) 비트
  • 다단계 페이지 테이블: 희소한 주소 공간의 테이블 메모리 절감 (x86-64는 4단계, 확장 시 5단계)
  • 주소 변환 절차
    1. CPU가 가상주소 생성 → TLB 조회
    2. TLB Hit → 즉시 물리주소 생성
    3. TLB Miss → 페이지 테이블 워크(하드웨어 또는 OS) 후 TLB 갱신
    4. Valid=0이면 페이지 폴트 → OS가 디스크에서 페이지 적재, 필요 시 교체
  • 유효 접근 시간(EAT): EAT = h × (TLB 시간 + 메모리 시간) + (1 − h) × (TLB 시간 + 페이지 테이블 접근 + 메모리 시간), h는 TLB 적중률

3. 페이지 교체 알고리즘 비교

알고리즘원리특징
FIFO가장 먼저 적재된 페이지 교체구현 단순, Belady의 이상 현상 발생 가능
OPT가장 오랫동안 사용되지 않을 페이지 교체최소 폴트, 미래 예측 불가로 비교 기준용
LRU가장 오래 사용되지 않은 페이지 교체성능 우수, 하드웨어 지원·오버헤드
LFU참조 횟수가 가장 적은 페이지 교체과거 빈번 사용 페이지 잔류 문제
Clock(2차 기회)참조 비트 순환 검사LRU 근사, 실용적

4. 고려사항 및 최신 동향

  • 스래싱: 프레임 부족으로 페이지 폴트 폭증, CPU 이용률 급락 → 워킹셋 모델, 페이지 폴트 빈도(PFF) 기반 프레임 할당
  • TLB 관리: 문맥 교환 시 TLB 플러시 비용 → ASID(PCID)로 프로세스별 엔트리 구분, 멀티코어 TLB Shootdown 비용
  • 대형 페이지(Huge Page): 2MB·1GB 페이지로 TLB 커버리지 확대
  • 보안: 커널 페이지 테이블 격리(KPTI) 등 사이드채널 대응
  • 가상화: 중첩 페이징(EPT/NPT)으로 게스트-호스트 2단계 주소 변환

함께 볼 토픽

v1 · 2026. 10. 19. 갱신 · 틀린 내용을 발견하면 알려 주세요.