(EN) In a virtualized computer system without an IOMMU, all application IO requests must be processed by the guest operating system and by the hypervisor so that addresses are translated (twice) and validated (twice) properly. In a virtualized computer system with an IOMMU containing one "stage" of translation, the peripheral can safely be assigned directly to a guest OS because the IOMMU can be programmed to translate and check addresses issued by the device. As a result, route IO overhead due to hypervisor intervention can be eliminated. In one example, in a virtualized computer system with an IOMMU supporting two "stages" of translation, the peripheral can safely be assigned directly to an application within a guest OS. As a result, route IO overhead due to hypervisor and guest OS processing can be eliminated. This allows an application to achieve higher IO performance.
(FR) Dans un système informatique virtualisé sans unité de gestion de mémoire d'entrée/sortie (IOMMU), toutes les requêtes d'application d'entrée/sortie (E/S) doivent être traitées par le système d'exploitation (OS) invité et par l'hyperviseur afin que les adresses soient traduites (deux fois) et validées (deux fois) correctement. Dans un système informatique virtualisé pourvu d'une IOMMU contenant un seul "étage" de traduction, le périphérique peut en toute sécurité être attribué directement à un OS invité étant donné que l'IOMMU peut être programmée pour traduire et vérifier des adresses émises par le dispositif. Par conséquent, le surdébit E/S de routage dû à une intervention de l'hyperviseur peut être éliminé. Dans un exemple de l'invention, dans un système informatique virtualisé pourvu d'une IOMMU prenant en charge deux "étages" de traduction, le périphérique peut en toute sécurité être attribué directement à une application dans un OS invité. Par conséquent, le surdébit E/S de routage dû à un traitement de l'hyperviseur et de l'OS invité peut être éliminé. Ceci permet à une application d'atteindre de meilleures performances E/S.