stringtranslate.com

Unidad de gestión de memoria de entrada y 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-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 (con capacidad DMA) a la memoria principal . Al igual que una MMU tradicional, que traduce las direcciones virtuales visibles de la CPU a direcciones físicas , la IOMMU asigna direcciones virtuales visibles del dispositivo (también llamadas direcciones de dispositivo o direcciones de E/S asignadas a la memoria en este contexto) a direcciones físicas. Algunas unidades también brindan protección de memoria contra dispositivos defectuosos o maliciosos.

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

En la arquitectura x86, antes de dividir la funcionalidad del puente norte y el puente sur entre la CPU y el concentrador controlador de plataforma (PCH), la virtualización de E/S no la realizaba la CPU sino el chipset . [1] [2]

Ventajas

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

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

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 memoria (DMA) utilizando direcciones físicas del invitado, probablemente dañaría la memoria, ya que el hardware no conoce la asignación entre las direcciones físicas 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 intervienen 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.

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

Especificaciones publicadas

Véase también

Referencias

  1. ^ "Compatibilidad de hardware de la plataforma Intel con virtualización de E/S". intel.com. 10 de agosto de 2006. Archivado desde el original el 20 de enero de 2007. Consultado el 7 de junio de 2014 .
  2. ^ "Placas base para PC de escritorio: compatibilidad con la tecnología de virtualización Intel (Intel VT)". intel.com. 14 de febrero de 2014. Consultado el 7 de junio de 2014 .
  3. ^ "Extensión de dirección física: memoria PAE y Windows". Microsoft Windows Hardware Development Central. 2005. Consultado el 7 de abril de 2008 .
  4. ^ Muli Ben-Yehuda; Jimi Xenidis; Michal Ostrowski (27 de junio de 2007). "Price of Safety: Evaluating IOMMU Performance" (PDF) . Actas del Simposio Linux 2007. Ottawa, Ontario, Canadá: IBM Research . Consultado el 28 de febrero de 2013 .
  5. ^ "Preguntas frecuentes de Xen: ¿Cómo puedo usar gráficos 3D en DomU?". Archivado desde el original el 23 de abril de 2005. 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 de 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 de AMD (IOMMU)" (PDF) . amd.com . Consultado el 9 de julio de 2020 .
  8. ^ Principios de funcionamiento de los procesadores IBM 4300 para el modo ECPS: VSE (PDF) (Primera edición). IBM. Enero de 1979. SA22-7070-0. Archivado desde el original (PDF) el 2012-03-14 . Consultado el 2021-06-30 .
  9. ^ "Especificación de la arquitectura de la tecnología de virtualización Intel para E/S dirigida (VT-d)" (PDF) . Consultado el 9 de julio de 2020 .
  10. ^ "Recursos de la DVMA y traducciones de la IOMMU" . Consultado el 30 de abril de 2007 .
  11. ^ "Seguridad de particiones lógicas en IBM eServer pSeries 690". Archivado desde el original el 10 de marzo de 2007. Consultado el 30 de abril de 2007 .
  12. ^ "Especificación básica de PCI Express" . Consultado el 18 de enero de 2023 .
  13. ^ "ARM 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