MMU (Memory Management Unit)
MMU (Memory Management Unit)
CPU와 메모리 사이에서 가상 주소를 물리 주소로 변환하는 하드웨어 장치로, 페이지 테이블을 참조하고 TLB를 활용하여 주소 변환을 수행하며 메모리 보호 기능 제공
목적: 가상 주소 변환, 메모리 보호, 페이지 테이블 관리, 가상 메모리 지원
특징: 하드웨어 장치, CPU 내장 또는 독립, TLB 포함, 페이지 테이블 워크, 보호 검사
구성요소: TLB(Translation Lookaside Buffer), 페이지 테이블 워커, 메모리 보호 검사, 페이지 폴트 생성
동작 과정: ① CPU가 가상 주소 생성 → ② MMU가 TLB 검색 → ③ TLB Hit: 물리 주소 반환 → ④ TLB Miss: 페이지 테이블 워크 → ⑤ 유효하면 TLB 갱신 및 물리 주소 반환 → ⑥ 무효하면 Page Fault 발생
페이지 테이블 워크: 다단계 페이지 테이블(x86-64는 4단계) 순회, 메모리 접근 여러 번(TLB Miss 시)
메모리 보호: 페이지 테이블의 보호 비트(R/W/X) 검사, 권한 위반 시 Exception 발생
주소 변환: VA(Virtual Address) = VPN(Page Number) + Offset → PA(Physical Address) = PFN(Frame Number) + Offset
장점: 가상 메모리 지원, 프로세스 격리, 메모리 보호, 하드웨어 가속
단점: 하드웨어 비용, TLB Miss 오버헤드, 페이지 테이블 메모리, 복잡도
적용사례: 모든 현대 CPU(x86-64, ARM, RISC-V), 가상 메모리, 페이징, OS 메모리 관리
비교: MMU(하드웨어/빠름) vs 소프트웨어 주소변환(느림/유연) vs 물리주소직접(단순/보호없음)
연관: TLB, 페이징, 가상 메모리, 페이지 테이블, Page Fault