CPU
上級

IOMMU (Input/Output Memory Management Unit)(アイオーエムエムユー)

I/Oデバイス用MMU。DMAアドレス変換とアクセス制御を提供。Intel VT-d / AMD-Vi / ARM SMMU がCPU実装。

0 回閲覧
0 いいね
2026/5/15 更新
関連タグ
CPU
仮想化
DMA
PCIe

概要

IOMMU (Input/Output Memory Management Unit) はI/Oデバイス専用のMMU。CPUのMMUがCPU命令↔物理メモリのアドレス変換を担うのに対し、IOMMUはPCIeデバイスがDMA経由で発行する物理アドレスを別のアドレス空間にリマップする。仮想化におけるデバイスパススルー / SR-IOV / Thunderbolt セキュリティ等の基盤技術。

主要実装

  • Intel VT-d (Virtualization Technology for Directed I/O): Nehalem世代 (2008) 以降
  • AMD-Vi (AMD I/O Virtualization Technology): Barcelona (2007) 以降
  • ARM SMMU (System Memory Management Unit): SMMUv1/v2/v3
  • POWER PHB (PCIe Host Bridge)

主な機能

機能内容利用例
DMA remappingゲスト物理→ホスト物理 変換VFIO passthrough
Interrupt remappingMSI/MSI-X 割込のVM振分KVM IRQ routing
ATSデバイス側TLBキャッシュPCIe ATS 1.1
PRIPage Request InterfaceSVA (Shared Virtual Addressing)
デバイス分離不正DMA防止Thunderbolt 3+ セキュリティ

IOMMUグループ

PCIeトポロジ上で分離不可能な単位。同じグループ内のデバイスは一括でVMへ割当必要。ACS (Access Control Services) で細分化可能。

関連用語との違い

  • vs MMU: MMUはCPU命令アドレス、IOMMUはI/Oデバイス側のDMAアドレス
  • vs VT-x / AMD-V: VT-x/AMD-VはCPU仮想化、VT-d/AMD-ViはI/O仮想化

FAQ

Q1: 自分のCPUがIOMMU対応か確認するには? A: dmesg | grep -i iommu または /sys/kernel/iommu_groups/ 配下にディレクトリがあるか確認。

Q2: BIOS設定で有効化必要? A: 必要。Intel板「VT-d」、AMD板「IOMMU」または「SVM Mode」項目を Enable。

Q3: 性能ペナルティは? A: 通常時はほぼゼロ (キャッシュヒット時)。DMA 1次キャッシュミス時のみ数十nsのオーバーヘッド。

この記事について
カテゴリーCPU
難易度上級
作成日2026/5/15