콘텐츠로 이동

MMU

🧭
MMU

MMU — 페이지 테이블, TLB, IOMMU/SMMU

🎯 학습 목표

  • Trace (분석) 가상→물리 주소 변환의 multi-level page table walk 전 과정 추적
  • Diagram (분석) TLB, multi-level translation, IOMMU의 데이터 흐름과 캐시 계층 그리기
  • Apply (적용) ARMv8 4-level translation 및 SMMU stage ½를 시나리오에 매핑
  • Analyze (분석) TLB miss penalty, page fault, page walk caching의 성능 영향 정량 분석
  • Design (생성) Dual-Reference Model 기반 MMU DV 환경 + Custom Thin VIP 설계

📋 사전 지식

  • CPU 아키텍처 기본: 가상/물리 주소 개념, 명령어 사이클
  • 캐시 계층 이해: L1/L2/L3, hit/miss, line size
  • OS 메모리 관리 기초: 프로세스별 가상 주소 공간, 페이지
  • AMBA AXI (Module 04 IOMMU에서 transaction 분석 시 도움)

🗺️ 개념 맵

개념 의존성 — 순서대로 학습 권장
각 노드 = 모듈 (클릭하여 이동) · 화살표(→) = 선수 지식 흐름

📚 학습 모듈

📊 모듈 흐름

M01
Fundamentals
M02
Page Table
M03
TLB
M04
IOMMU/SMMU
M05
Performance
M06
DV
M07
Quick Ref

📖 관련 자료

💡 학습 팁

효율적 학습

  • VA → PA 변환을 손으로: 4-level walk을 화이트보드에서 직접 그릴 수 있어야 함
  • TLB miss penalty 정량화: page walk이 메모리 access N번 → 성능 영향 직관 형성
  • SMMU와 MMU 차이: CPU MMU는 cores 내장, SMMU는 SoC-level (DMA 마스터들 보호)

흔한 함정

  • TLB stale entry: page table 업데이트 후 TLB invalidate 누락 → 잘못된 PA 사용
  • IOMMU bypass: pre-IOMMU SoC는 DMA가 시스템 메모리 무제한 access → 보안 hole
  • ASID/VMID 충돌: 다른 process/VM이 같은 VA를 다른 PA로 매핑할 때 ASID 비교 누락

🔗 관련 토픽