토픽 62 / 111·I/O·버스 (I/O & Bus)
IOMMU (Input/Output Memory Management Unit)
IOMMU (Input/Output Memory Management Unit)
I/O 장치(DMA 포함)가 접근하는 메모리 주소를 변환하고 접근 권한을 제어하는 하드웨어 장치로, DMA 공격 방지와 장치별 가상 주소 공간 제공을 통해 시스템 보안과 가상화를 지원
목적: DMA 보안(DMA 공격 방지), I/O 가상화, 장치 격리, 메모리 보호
특징: I/O 장치용 주소 변환, 장치별 페이지 테이블, 인터럽트 리매핑, 가상화 지원
구성요소
- •I/O 페이지 테이블: 장치별 가상→물리 주소 매핑, OS가 관리
- •DMA 리매핑(DMAR): 장치의 DMA 접근을 허용된 메모리 영역으로 제한
- •인터럽트 리매핑: 장치 인터럽트를 가상머신에 직접 전달, 보안 강화
- •IOTLB: I/O 주소 변환 캐시, 성능 향상
동작: ① 장치가 DMA 주소 발행 → ② IOMMU가 I/O 페이지 테이블 조회 → ③ 주소 변환 + 권한 검사 → ④ 허용 시 물리 메모리 접근 / 위반 시 차단+인터럽트
보안: DMA 공격(악의적 장치의 임의 메모리 접근) 방지, Thunderbolt/FireWire 공격 차단
가상화: SR-IOV(장치 직접 할당), VT-d(Intel)/AMD-Vi, 게스트 VM에 장치 패스스루
장점: DMA 보안, 장치 격리, I/O 가상화 지원, 메모리 보호 강화
단점: 주소 변환 오버헤드(수 %), IOTLB 미스 페널티, 설정 복잡도
적용사례: 서버 가상화(KVM/Xen), Thunderbolt 보안, 클라우드(장치 패스스루), 보안 부팅
비교: IOMMU(I/O장치용/DMA보안/가상화) vs MMU(CPU용/프로세스보호/주소변환) vs MPU(보호만/변환없음/임베디드)
연관: DMA, 가상화, SR-IOV, VT-d, 메모리 보호, 보안