stringtranslate.com

Unidad de gestión de memoria de entrada-salida

Comparación de la unidad de gestión de memoria de E/S (IOMMU) con la unidad de gestión de memoria (MMU).

En informática , una unidad de gestión de memoria de entrada y salida ( IOMMU ) es una unidad de gestión de memoria (MMU) que conecta un bus de E/S con capacidad de acceso directo a memoria (compatible con DMA) a la memoria principal . Al igual que una MMU tradicional, que traduce direcciones virtuales visibles de la CPU en direcciones físicas , la IOMMU asigna direcciones virtuales visibles del dispositivo (también llamadas direcciones de dispositivo o direcciones de E/S asignadas en memoria en este contexto) a direcciones físicas. Algunas unidades también brindan protección de la memoria contra dispositivos defectuosos o maliciosos.

Un ejemplo de IOMMU es la tabla de reasignación de direcciones de gráficos (GART) utilizada por las tarjetas gráficas AGP y PCI Express en computadoras con arquitectura Intel y AMD.

En la arquitectura x86, antes de dividir la funcionalidad de Northbridge y Southbridge entre la CPU y el Platform Controller Hub (PCH), la virtualización de E/S no la realizaba la CPU sino el chipset . [1] [2]

Ventajas

Las ventajas de tener una IOMMU, en comparación con el direccionamiento físico directo de la memoria (DMA), incluyen [ cita necesaria ] :

Para arquitecturas de sistema en las que el puerto de E/S es un espacio de direcciones distinto del espacio de direcciones de memoria, no se utiliza una IOMMU cuando la CPU se comunica con dispositivos a través de puertos de E/S . En arquitecturas de sistemas en las que las E/S de puertos y la memoria están asignadas a un espacio de direcciones adecuado, una IOMMU puede traducir los accesos de E/S de puertos.

Desventajas

Las desventajas de tener una IOMMU, en comparación con el direccionamiento físico directo de la memoria, incluyen: [4]

Virtualización

Cuando un sistema operativo se ejecuta dentro de una máquina virtual , incluidos los sistemas que utilizan paravirtualización , como Xen y KVM , generalmente no conoce las direcciones físicas del host de la memoria a la que accede. Esto dificulta el acceso directo al hardware de la computadora, porque si el sistema operativo invitado intentara indicarle al hardware que realice un acceso directo a la memoria (DMA) utilizando direcciones físicas invitadas, probablemente dañaría la memoria, ya que el hardware no sabe nada de ello. el mapeo entre las direcciones física del invitado y del host para la máquina virtual dada. La corrupción se puede evitar si el hipervisor o el sistema operativo host interviene en la operación de E/S para aplicar las traducciones. Sin embargo, este enfoque genera un retraso en la operación de E/S.

Una IOMMU resuelve este problema reasignando las direcciones a las que accede el hardware de acuerdo con la misma tabla de traducción (o compatible) que se utiliza para asignar la dirección física del huésped a las direcciones físicas del host. [5]

Especificaciones publicadas

Ver también

Referencias

  1. ^ "Soporte de hardware de plataforma Intel para virtualización de E/S". Intel.com. 2006-08-10. Archivado desde el original el 20 de enero de 2007 . Consultado el 7 de junio de 2014 .
  2. ^ "Placas de escritorio: compatibilidad con la tecnología de virtualización Intel (Intel VT)". Intel.com. 2014-02-14 . Consultado el 7 de junio de 2014 .
  3. ^ "Extensión de dirección física: memoria PAE y Windows". Central de desarrollo de hardware de Microsoft Windows. 2005 . Consultado el 7 de abril de 2008 .
  4. ^ Muli Ben-Yehuda; Jimi Xenidis; Michal Ostrowski (27 de junio de 2007). "Precio de la seguridad: evaluación del desempeño de IOMMU" (PDF) . Actas del Simposio de Linux 2007 . Ottawa, Ontario, Canadá: IBM Research . Consultado el 28 de febrero de 2013 .
  5. ^ "Preguntas frecuentes sobre Xen: en DomU, ¿cómo puedo utilizar gráficos 3D?". Archivado desde el original el 2 de octubre de 2008 . Consultado el 12 de diciembre de 2006 .
  6. ^ "Revisión 2.0 de la especificación de la tecnología de virtualización de E/S AMD (IOMMU)" (PDF) . amd.com. 24 de marzo de 2011 . Consultado el 11 de enero de 2014 .
  7. ^ "Especificación de la tecnología de virtualización de E/S AMD (IOMMU)" (PDF) . amd.com . Consultado el 9 de julio de 2020 .
  8. ^ Principios de funcionamiento de los procesadores IBM 4300 para ECPS: modo VSE (PDF) (Primera ed.). IBM. Enero de 1979. SA22-7070-0. Archivado desde el original (PDF) el 14 de marzo de 2012 . Consultado el 30 de junio de 2021 .
  9. ^ "Especificación de arquitectura de tecnología de virtualización Intel para E/S dirigidas (VT-d)" (PDF) . Consultado el 9 de julio de 2020 .
  10. ^ "Recursos DVMA y traducciones IOMMU" . Consultado el 30 de abril de 2007 .
  11. ^ "Seguridad de particiones lógicas en IBM eServer pSeries 690" . Consultado el 30 de abril de 2007 .
  12. ^ "Especificación básica de PCI Express" . Consultado el 18 de enero de 2023 .
  13. ^ "BRAZO SMMU" . Consultado el 13 de mayo de 2013 .
  14. ^ "Extensiones de virtualización ARM". Archivado desde el original el 3 de mayo de 2013 . Consultado el 13 de mayo de 2013 .

Enlaces externos