fbpx
Wikipedia

Unidad de gestión de memoria de entrada/salida

En informática, una unidad de gestión de memoria de entrada y salida (input–output memory management unit, acrónimo 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 CPU a direcciones físicas, IOMMU correlaciona direcciones virtuales visibles de dispositivo (también llamadas direcciones de dispositivo o direcciones de E/S en este contexto) a direcciones físicas. Algunas unidades también brindan protección de memoria contra dispositivos defectuosos o maliciosos.

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

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

En la arquitectura x86, antes de dividir la funcionalidad de northbridge y southbridge entre la CPU y Platform Controller Hub (PCH), la virtualización de E/S no fue realizada por la CPU, sino por el conjunto de chips.[1][2]

Ventajas

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

  • Se pueden asignar grandes regiones de memoria sin la necesidad de que sean contiguas en la memoria física: el IOMMU asigna direcciones virtuales contiguas a las direcciones físicas fragmentadas subyacentes. Por lo tanto, a veces se puede evitar el uso de E/S vectorizadas.
  • Los dispositivos que no admiten direcciones de memoria lo suficientemente largas como para direccionar toda la memoria física aún pueden direccionar toda la memoria a través de la IOMMU, evitando los gastos indirectos asociados con la copia de almacenamientos intermedios hacia y desde el espacio de memoria direccionable del periférico.
    • Por ejemplo, las computadoras x86 pueden administrar más de 4 gigabytes de memoria con la función Extensión de dirección física (PAE) en un procesador x86. Aun así, un dispositivo PCI ordinario de 32 bits simplemente no puede direccionar la memoria por encima del límite 4 GiB, y por lo tanto no puede acceder directamente a él. Sin una IOMMU, el sistema operativo tendría que implementar bounce buffers que consumen tiempo (también conocidos como búfers dobles[3]​).
  • La memoria está protegida contra los dispositivos maliciosos que intentan ataques DMA y dispositivos defectuosos que intentan transferencias de memoria erróneas porque un dispositivo no puede leer o escribir en la memoria que no se ha asignado (mapeado) explícitamente. La protección de memoria se basa en el hecho de que el SO que se ejecuta en la CPU (ver figura) controla exclusivamente tanto la MMU como la IOMMU. Los dispositivos son físicamente incapaces de eludir o dañar las tablas configuradas de administración de memoria.
    • En virtualización, los sistemas operativos invitados pueden usar hardware que no está específicamente diseñado para la virtualización. El hardware de mayor rendimiento, como las tarjetas gráficas, usa DMA para acceder directamente a la memoria; en un entorno virtual, todas las direcciones de memoria son reasignadas por el software de la máquina virtual, lo que hace que los dispositivos DMA fallen. IOMMU maneja esta reasignación, permitiendo que los controladores de dispositivos nativos se usen en un sistema operativo invitado.
  • En algunas arquitecturas, IOMMU también realiza reasignaciones de interrupciones de hardware, de forma similar a la reasignación de direcciones de memoria estándar.
  • La paginación de la memoria periférica puede ser apoyada por un IOMMU. Un periférico que usa la extensión PCI-SIG PCIe Address Translation Services (ATS) Page Request Interface (PRI) puede detectar y señalar la necesidad de servicios de gestión de memoria.

Para las arquitecturas de sistema en las que los puertos 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 E/S. En las arquitecturas de sistema en las que los puertos E/S y la memoria se asignan en un espacio de direcciones adecuado, una IOMMU puede traducir las direcciones de puerto E/S.

Desventajas

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

  • Degradación del rendimiento por sobrecarga de traducción y administración (por ejemplo, paseos de tablas de paginación).
  • Consumo de memoria física para las tablas página E/S añadidas. Esto puede mitigarse si las tablas se pueden compartir con el procesador.

Virtualización

Cuando un sistema operativo se ejecuta dentro de una máquina virtual, incluidos los sistemas que utilizan paravirtualización, como Xen, por lo general no conocen las direcciones físico-host de la memoria a las que accede. Esto dificulta el acceso directo al hardware, ya que si el sistema operativo invitado intenta instruir al hardware para que realice un acceso directo a la memoria (DMA) usando direcciones físicas de invitado, es probable que corrompa la memoria, ya que el hardware no lo sabe. la asignación entre las direcciones físico-huésped y física del host para la máquina virtual dada. La corrupción se evita porque el hipervisor o el sistema operativo host interviene en la operación de E / S para aplicar las traducciones, lo que provoca un retraso en la operación de E/S.

Un IOMMU puede resolver este problema reasignando las direcciones a las que accedió el hardware de acuerdo con la misma tabla de traducción (o una compatible) que se utiliza para asignar la dirección física del invitado a las direcciones físicas del host.[5]

Publicaciones específicas

  • AMD ha publicado una especificación para la tecnología IOMMU.[6][7]
  • Intel ha publicado una especificación para tecnología IOMMU como Virtualization Technology for Directed I/O (VT-d).[8]
  • Se ha publicado información sobre el IOMMU de Sun IOMMU en la sección Acceso a la memoria virtual del dispositivo (DVMA) de Solaris Developer Connection.[9]
  • IBM Translation Control Entry (TCE) se ha descrito en un documento titulado Seguridad de partición lógica en IBM eServer pSeries 690.[10]
  • El PCI-SIG tiene un trabajo relevante bajo los términos I/O Virtualization (IOV)[11]​ y Address Translation Services (ATS).
  • ARM define su versión de IOMMU como System Memory Management Unit (SMMU)[12]​ para complementar su arquitectura de virtualización[13]

Véase también

Referencias

  1. . 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. «Desktop Boards: Compatibility with Intel Virtualization Technology (Intel VT)». intel.com. 14 de febrero de 2014. Consultado el 7 de junio de 2014. 
  3. «Physical Address Extension — PAE Memory and Windows». Microsoft Windows Hardware Development Central. 2005. Consultado el 7 de abril de 2008. 
  4. Referencia vacía (ayuda) 
  5. «Xen FAQ: In DomU, how can I use 3D graphics». Archivado desde el original el 2 de octubre de 2008. Consultado el 12 de diciembre de 2006. 
  6. «AMD I/O Virtualization Technology (IOMMU) Specification Revision 2.0» (PDF). amd.com. 24 de marzo de 2011. Consultado el 11 de enero de 2014. 
  7. «AMD I/O Virtualization Technology (IOMMU) Specification Revision 2.62» (PDF). amd.com. 2 de marzo de 2015. Consultado el 5 de enero de 2016. 
  8. «Intel Virtualization Technology for Directed I/O (VT-d) Architecture Specification» (PDF). Consultado el 17 de febrero de 2016. 
  9. «DVMA Resources and IOMMU Translations». Consultado el 30 de abril de 2007. 
  10. «Logical Partition Security in the IBM eServer pSeries 690». Consultado el 30 de abril de 2007. 
  11. «I/O Virtualization specifications». Consultado el 1 de mayo de 2007. 
  12. «ARM SMMU». Consultado el 13 de mayo de 2013. 
  13. . Archivado desde el original el 3 de mayo de 2013. Consultado el 13 de mayo de 2013. 

Enlaces externos

  • . Linux Journal (Specialized Systems Consultants). 1 de mayo de 2004. Archivado desde el original el 15 de julio de 2006. Consultado el 26 de junio de 2018. 
  • Mastering the DMA and IOMMU APIs, Embedded Linux Conference 2014, San Jose, by Laurent Pinchart
  •   Datos: Q469599

unidad, gestión, memoria, entrada, salida, informática, unidad, gestión, memoria, entrada, salida, input, output, memory, management, unit, acrónimo, iommu, unidad, gestión, memoria, conecta, capacidad, acceso, directo, memoria, compatible, memoria, principal,. En informatica una unidad de gestion de memoria de entrada y salida input output memory management unit acronimo IOMMU es una unidad de gestion 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 CPU a direcciones fisicas IOMMU correlaciona direcciones virtuales visibles de dispositivo tambien llamadas direcciones de dispositivo o direcciones de E S en este contexto a direcciones fisicas Algunas unidades tambien brindan proteccion de memoria contra dispositivos defectuosos o maliciosos Comparacion de la unidad de gestion de memoria de E S IOMMU con la unidad de gestion de memoria MMU AGP y PCI Express en Intel Architecture y las computadoras AMD Un ejemplo de IOMMU es la tabla de reasignacion de direcciones graficas GART utilizada por las tarjetas graficasEn la arquitectura x86 antes de dividir la funcionalidad de northbridge y southbridge entre la CPU y Platform Controller Hub PCH la virtualizacion de E S no fue realizada por la CPU sino por el conjunto de chips 1 2 Indice 1 Ventajas 2 Desventajas 3 Virtualizacion 4 Publicaciones especificas 5 Vease tambien 6 Referencias 7 Enlaces externosVentajas EditarLas ventajas de tener una IOMMU en comparacion con el direccionamiento fisico directo de la memoria DMA incluyen Se pueden asignar grandes regiones de memoria sin la necesidad de que sean contiguas en la memoria fisica el IOMMU asigna direcciones virtuales contiguas a las direcciones fisicas fragmentadas subyacentes Por lo tanto a veces se puede evitar el uso de E S vectorizadas Los dispositivos que no admiten direcciones de memoria lo suficientemente largas como para direccionar toda la memoria fisica aun pueden direccionar toda la memoria a traves de la IOMMU evitando los gastos indirectos asociados con la copia de almacenamientos intermedios hacia y desde el espacio de memoria direccionable del periferico Por ejemplo las computadoras x86 pueden administrar mas de 4 gigabytes de memoria con la funcion Extension de direccion fisica PAE en un procesador x86 Aun asi un dispositivo PCI ordinario de 32 bits simplemente no puede direccionar la memoria por encima del limite 4 GiB y por lo tanto no puede acceder directamente a el Sin una IOMMU el sistema operativo tendria que implementar bounce buffers que consumen tiempo tambien conocidos como bufers dobles 3 La memoria esta protegida contra los dispositivos maliciosos que intentan ataques DMA y dispositivos defectuosos que intentan transferencias de memoria erroneas porque un dispositivo no puede leer o escribir en la memoria que no se ha asignado mapeado explicitamente La proteccion de memoria se basa en el hecho de que el SO que se ejecuta en la CPU ver figura controla exclusivamente tanto la MMU como la IOMMU Los dispositivos son fisicamente incapaces de eludir o danar las tablas configuradas de administracion de memoria En virtualizacion los sistemas operativos invitados pueden usar hardware que no esta especificamente disenado para la virtualizacion El hardware de mayor rendimiento como las tarjetas graficas usa DMA para acceder directamente a la memoria en un entorno virtual todas las direcciones de memoria son reasignadas por el software de la maquina virtual lo que hace que los dispositivos DMA fallen IOMMU maneja esta reasignacion permitiendo que los controladores de dispositivos nativos se usen en un sistema operativo invitado En algunas arquitecturas IOMMU tambien realiza reasignaciones de interrupciones de hardware de forma similar a la reasignacion de direcciones de memoria estandar La paginacion de la memoria periferica puede ser apoyada por un IOMMU Un periferico que usa la extension PCI SIG PCIe Address Translation Services ATS Page Request Interface PRI puede detectar y senalar la necesidad de servicios de gestion de memoria Para las arquitecturas de sistema en las que los puertos 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 traves de puertos E S En las arquitecturas de sistema en las que los puertos E S y la memoria se asignan en un espacio de direcciones adecuado una IOMMU puede traducir las direcciones de puerto E S Desventajas EditarLas desventajas de tener una IOMMU en comparacion con el direccionamiento fisico directo de memoria incluyen 4 Degradacion del rendimiento por sobrecarga de traduccion y administracion por ejemplo paseos de tablas de paginacion Consumo de memoria fisica para las tablas pagina E S anadidas Esto puede mitigarse si las tablas se pueden compartir con el procesador Virtualizacion EditarCuando un sistema operativo se ejecuta dentro de una maquina virtual incluidos los sistemas que utilizan paravirtualizacion como Xen por lo general no conocen las direcciones fisico host de la memoria a las que accede Esto dificulta el acceso directo al hardware ya que si el sistema operativo invitado intenta instruir al hardware para que realice un acceso directo a la memoria DMA usando direcciones fisicas de invitado es probable que corrompa la memoria ya que el hardware no lo sabe la asignacion entre las direcciones fisico huesped y fisica del host para la maquina virtual dada La corrupcion se evita porque el hipervisor o el sistema operativo host interviene en la operacion de E S para aplicar las traducciones lo que provoca un retraso en la operacion de E S Un IOMMU puede resolver este problema reasignando las direcciones a las que accedio el hardware de acuerdo con la misma tabla de traduccion o una compatible que se utiliza para asignar la direccion fisica del invitado a las direcciones fisicas del host 5 Publicaciones especificas EditarAMD ha publicado una especificacion para la tecnologia IOMMU 6 7 Intel ha publicado una especificacion para tecnologia IOMMU como Virtualization Technology for Directed I O VT d 8 Se ha publicado informacion sobre el IOMMU de Sun IOMMU en la seccion Acceso a la memoria virtual del dispositivo DVMA de Solaris Developer Connection 9 IBM Translation Control Entry TCE se ha descrito en un documento titulado Seguridad de particion logica en IBM eServer pSeries 690 10 El PCI SIG tiene un trabajo relevante bajo los terminos I O Virtualization IOV 11 y Address Translation Services ATS ARM define su version de IOMMU como System Memory Management Unit SMMU 12 para complementar su arquitectura de virtualizacion 13 Vease tambien EditarHeterogeneous System Architecture HSA E S mapeada en memoria Proteccion de memoriaReferencias Editar Intel platform hardware support for I O virtualization intel com 10 de agosto de 2006 Archivado desde el original el 20 de enero de 2007 Consultado el 7 de junio de 2014 Desktop Boards Compatibility with Intel Virtualization Technology Intel VT intel com 14 de febrero de 2014 Consultado el 7 de junio de 2014 Physical Address Extension PAE Memory and Windows Microsoft Windows Hardware Development Central 2005 Consultado el 7 de abril de 2008 Referencia vacia ayuda Xen FAQ In DomU how can I use 3D graphics Archivado desde el original el 2 de octubre de 2008 Consultado el 12 de diciembre de 2006 AMD I O Virtualization Technology IOMMU Specification Revision 2 0 PDF amd com 24 de marzo de 2011 Consultado el 11 de enero de 2014 AMD I O Virtualization Technology IOMMU Specification Revision 2 62 PDF amd com 2 de marzo de 2015 Consultado el 5 de enero de 2016 Intel Virtualization Technology for Directed I O VT d Architecture Specification PDF Consultado el 17 de febrero de 2016 DVMA Resources and IOMMU Translations Consultado el 30 de abril de 2007 Logical Partition Security in the IBM eServer pSeries 690 Consultado el 30 de abril de 2007 I O Virtualization specifications Consultado el 1 de mayo de 2007 ARM SMMU Consultado el 13 de mayo de 2013 ARM Virtualization Extensions Archivado desde el original el 3 de mayo de 2013 Consultado el 13 de mayo de 2013 Enlaces externos Editar Using DMA Linux Journal Specialized Systems Consultants 1 de mayo de 2004 Archivado desde el original el 15 de julio de 2006 Consultado el 26 de junio de 2018 Mastering the DMA and IOMMU APIs Embedded Linux Conference 2014 San Jose by Laurent Pinchart Datos Q469599Obtenido de https es wikipedia org w index php title Unidad de gestion de memoria de entrada salida amp oldid 124444725, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos