ScholarGate
Assistent

I/O-Virtualisierung und DMA

Direkter Speicherzugriff ermöglicht Geräten die Datenübertragung zu und von Speichern ohne wortweise Prozessorinvolvierung, und I/O-Virtualisierung erweitert dies, um physische Geräte sicher unter virtuellen Maschinen zu teilen, beides zentral für effiziente moderne und Cloud-Systeme.

Thema finden mit PaperMindDemnächstFind papers & topics
Tools & resources
Folien herunterladen
Learn & explore
VideoDemnächst

Definition

Direkter Speicherzugriff ist ein Mechanismus, bei dem ein Gerät Daten direkt zu oder von einem Hauptspeicher überträgt, ohne dass der Prozessor jedes Datum kopiert, und I/O-Virtualisierung ist die Menge von Techniken, die physische I/O-Geräte sicher und effizient mehreren virtuellen Maschinen präsentieren und teilen.

Scope

Dieses Thema behandelt den direkten Speicherzugriff (DMA) und die Virtualisierung von I/O: wie DMA-Controller Massendaten bewegen und den Abschluss signalisieren, die Rolle der IOMMU bei der Adressübersetzung und dem Schutz für Geräteübertragungen sowie Techniken zum Teilen von Geräten unter virtuellen Maschinen wie Geräteemulation, Paravirtualisierung und Hardware-gestütztes Passthrough. Es behandelt die effiziente und sichere Datenbewegung von Geräten. Ausgeschlossen sind grundlegende Gerätesteuerung und Interrupts (I/O-Architektur und Busse) sowie Speichermedien (sekundäre Speichergeräte).

Core questions

  • Wie überträgt DMA Massendaten, ohne den Prozessor zu belegen?
  • Wie bietet eine IOMMU Adressübersetzung und Schutz für Geräteübertragungen?
  • Wie werden physische Geräte sicher unter virtuellen Maschinen geteilt?
  • Welche Kompromisse gibt es zwischen Geräteemulation, Paravirtualisierung und Passthrough?

Key concepts

  • Direkter Speicherzugriff (DMA)
  • DMA-Controller und Deskriptoren
  • Abschluss-Interrupts
  • IOMMU und Geräteadressübersetzung
  • Geräteemulation
  • paravirtualisierte I/O
  • Geräte-Passthrough und SR-IOV
  • Isolation und Schutz

Key theories

Direkter Speicherzugriff
Ein DMA-Controller überträgt Datenblöcke autonom zwischen einem Gerät und dem Speicher und unterbricht den Prozessor nur bei Abschluss, was I/O mit der Berechnung überlappt und für die Datenbewegung mit hohem Durchsatz unerlässlich ist.

Mechanisms

Für eine DMA-Übertragung programmiert der Prozessor einen Controller mit Quelle, Ziel und Länge und setzt dann andere Arbeiten fort, während das Gerät die Daten bewegt und einen Abschluss-Interrupt auslöst. Eine IOMMU übersetzt die Adressen, die Geräte verwenden, und begrenzt deren Zugriff, wodurch Schutz geboten und sicheres Passthrough ermöglicht wird. Virtuelle Maschinen greifen über emulierte Geräte, paravirtualisierte Treiber oder direktes Hardware-Passthrough (einschließlich Single-Root I/O Virtualization, die es einem Gerät ermöglicht, mehrere virtuelle Funktionen zu präsentieren) auf Geräte zu.

Clinical relevance

DMA ist grundlegend für effiziente I/O, da es den Prozessor bei Massenübertragungen zu und von Speicher- und Netzwerkgeräten entlastet. I/O-Virtualisierung ist unerlässlich für Cloud Computing und Rechenzentren, wo viele virtuelle Maschinen physische Hardware teilen; die IOMMU bietet die Isolation, die das Teilen und die direkte Gerätezuteilung sowohl sicher als auch schnell macht.

History

Direkter Speicherzugriff wird seit den frühen Computern verwendet, um die Datenbewegung vom Prozessor zu entlasten. Als Virtualisierung in den 2000er Jahren für Server und Cloud Computing zentral wurde, wurde Hardware-Unterstützung wie die IOMMU und Single-Root I/O Virtualization hinzugefügt, um die Gerätezuteilung und direkte Zuweisung effizient und sicher zu gestalten.

Debates

Passthrough-Leistung versus Flexibilität
Direktes Geräte-Passthrough bietet virtuellen Maschinen eine nahezu native I/O-Leistung, reduziert jedoch die Flexibilität für Migration und Überbelegung, während emulierte oder paravirtualisierte I/O flexibler, aber langsamer ist; Systemdesigner wägen dies für ihre Arbeitslasten ab.

Key figures

  • John L. Hennessy
  • David A. Patterson
  • Abraham Silberschatz

Related topics

Seminal works

  • hennessy2019
  • silberschatz2018

Frequently asked questions

Was macht eine IOMMU?
Eine IOMMU übersetzt die Adressen, die Geräte während des DMA verwenden, in physikalische Speicheradressen und beschränkt, auf welchen Speicher ein Gerät zugreifen darf. Dies bietet Schutz und Isolation – verhindert, dass ein Gerät oder Treiber beliebigen Speicher beschädigt – und ermöglicht die sichere direkte Zuweisung von Geräten an virtuelle Maschinen.
Warum ist DMA wichtig für die Leistung?
Ohne DMA müsste der Prozessor jedes Wort zu oder von einem Gerät kopieren, was Zyklen verbrauchen und bei langsamen Übertragungen zu Stillstand führen würde. DMA lagert die Massendatenbewegung auf einen dedizierten Controller aus, wodurch der Prozessor andere nützliche Arbeiten erledigen und nur einen einzigen Abschluss-Interrupt verarbeiten kann.

Methods for this concept

Related concepts