Virtualisation des E/S et DMA
L'accès direct à la mémoire permet aux périphériques de transférer des données vers et depuis la mémoire sans intervention du processeur pour chaque mot, et la virtualisation des E/S étend cette capacité pour partager en toute sécurité les périphériques physiques entre les machines virtuelles, ces deux concepts étant centraux pour les systèmes modernes et les systèmes cloud efficaces.
Definition
L'accès direct à la mémoire est un mécanisme par lequel un périphérique transfère des données directement vers ou depuis la mémoire principale sans que le processeur ne copie chaque donnée, et la virtualisation des E/S est l'ensemble des techniques qui présentent et partagent les périphériques d'E/S physiques entre plusieurs machines virtuelles de manière sûre et efficace.
Scope
Ce sujet couvre l'accès direct à la mémoire (DMA) et la virtualisation des E/S : comment les contrôleurs DMA déplacent des volumes de données et signalent leur achèvement, le rôle de l'IOMMU dans la traduction d'adresses et la protection pour les transferts de périphériques, et les techniques de partage des périphériques entre machines virtuelles telles que l'émulation de périphérique, la paravirtualisation et le passthrough assisté par matériel. Il traite du mouvement efficace et sécurisé des données des périphériques. Il exclut le contrôle de base des périphériques et les interruptions (architecture des E/S et bus) ainsi que les supports de stockage (périphériques de stockage secondaire).
Core questions
- Comment le DMA transfère-t-il des volumes de données sans occuper le processeur ?
- Comment une IOMMU assure-t-elle la traduction d'adresses et la protection pour les transferts de périphériques ?
- Comment les périphériques physiques sont-ils partagés en toute sécurité entre les machines virtuelles ?
- Quels sont les compromis entre l'émulation de périphérique, la paravirtualisation et le passthrough ?
Key concepts
- accès direct à la mémoire (DMA)
- contrôleur DMA et descripteurs
- interruptions d'achèvement
- IOMMU et traduction d'adresses de périphérique
- émulation de périphérique
- E/S paravirtualisées
- passthrough de périphérique et SR-IOV
- isolation et protection
Key theories
- Accès direct à la mémoire
- Un contrôleur DMA transfère des blocs de données entre un périphérique et la mémoire de manière autonome, n'interrompant le processeur qu'à l'achèvement, ce qui permet de superposer les E/S avec le calcul et est essentiel pour le mouvement de données à haut débit.
Mechanisms
Pour un transfert DMA, le processeur programme un contrôleur avec la source, la destination et la longueur, puis poursuit d'autres tâches pendant que le périphérique déplace les données et déclenche une interruption d'achèvement. Une IOMMU traduit les adresses utilisées par les périphériques et restreint leur accès, offrant une protection et permettant un passthrough sécurisé. Les machines virtuelles accèdent aux périphériques via des périphériques émulés, des pilotes paravirtualisés ou un passthrough matériel direct (y compris la virtualisation d'E/S à racine unique qui permet à un périphérique de présenter plusieurs fonctions virtuelles).
Clinical relevance
Le DMA est fondamental pour des E/S efficaces, libérant le processeur lors des transferts de masse vers et depuis les périphériques de stockage et de réseau. La virtualisation des E/S est essentielle pour le cloud computing et les centres de données, où de nombreuses machines virtuelles partagent le matériel physique ; l'IOMMU fournit l'isolation qui rend le partage et l'affectation directe des périphériques à la fois sûrs et rapides.
History
L'accès direct à la mémoire est utilisé depuis les premiers ordinateurs pour décharger le processeur du mouvement des données. À mesure que la virtualisation est devenue centrale pour les serveurs et le cloud computing dans les années 2000, un support matériel tel que l'IOMMU et la virtualisation d'E/S à racine unique a été ajouté pour rendre le partage de périphériques et l'affectation directe efficaces et sécurisés.
Debates
- Performance du passthrough versus flexibilité
- Le passthrough direct de périphérique offre aux machines virtuelles des performances d'E/S quasi natives mais réduit la flexibilité pour la migration et la surallocation, tandis que les E/S émulées ou paravirtualisées sont plus flexibles mais plus lentes ; les concepteurs de systèmes équilibrent ces aspects en fonction de leurs charges de travail.
Key figures
- John L. Hennessy
- David A. Patterson
- Abraham Silberschatz
Related topics
Seminal works
- hennessy2019
- silberschatz2018
Frequently asked questions
- Que fait une IOMMU ?
- Une IOMMU traduit les adresses que les périphériques utilisent pendant le DMA en adresses de mémoire physique et restreint la mémoire à laquelle un périphérique peut accéder. Cela assure protection et isolation — empêchant un périphérique ou un pilote de corrompre une mémoire arbitraire — et permet l'affectation directe et sécurisée de périphériques aux machines virtuelles.
- Pourquoi le DMA est-il important pour la performance ?
- Sans DMA, le processeur devrait copier chaque mot vers ou depuis un périphérique, consommant des cycles et se bloquant sur les transferts lents. Le DMA décharge le mouvement de données en masse vers un contrôleur dédié, permettant au processeur d'effectuer d'autres tâches utiles et de ne gérer qu'une seule interruption d'achèvement.