토픽 39 / 85·메모리 관리
다단계 페이지 테이블 (Multi-level Page Table)
다단계 페이지 테이블 (Multi-level Page Table)
페이지 테이블을 여러 단계로 계층화하여 실제 사용되는 주소 공간에 해당하는 페이지 테이블만 메모리에 적재함으로써 페이지 테이블 메모리 낭비를 줄이는 기법
목적: 페이지 테이블 메모리 절약, 대규모 가상 주소 공간 효율적 관리
특징: 계층적 구조, 미사용 영역 테이블 미할당, 주소 변환 시 다단계 메모리 접근
x86-64 4단계 구조
- •PML4(Page Map Level 4): 최상위, 512 엔트리, CR3 레지스터가 가리킴
- •PDPT(Page Directory Pointer Table): 512 엔트리
- •PD(Page Directory): 512 엔트리, 2MB Huge Page 가능
- •PT(Page Table): 512 엔트리, 4KB 페이지 매핑
- •48비트 가상 주소 → 9+9+9+9+12비트 분할
페이지 워크(Page Walk): TLB Miss 시 CR3→PML4→PDPT→PD→PT 순서로 4회 메모리 접근, HW 페이지 워커가 자동 수행
역페이지 테이블(Inverted Page Table): 물리 프레임 기준 1개 테이블, PFN→(PID,VPN) 매핑, 메모리 절약(프로세스 수 무관), 해시 검색 필요, PowerPC/IA-64 사용
비교: 다단계(프로세스별/공간절약/다회접근) vs 단일(프로세스별/공간낭비/1회접근) vs 역(시스템전체/최소공간/해시검색)
연관: 페이징, TLB, MMU, 가상 메모리, Huge Page