Flexible Return and Event Delivery
Die (FRED)-Architektur (Flexible Return and Event Delivery) (deutsch etwa „Flexible Rückgabe- und Event-Lieferung“) ist eine von Intel entwickelte Erweiterung der x86-Architektur, die darauf abzielt, die Behandlung von Ereignissen wie Interrupts, Ausnahmen und Systemaufrufen moderner, sicherer und effizienter zu gestalten. FRED wurde von Intel im Jahr 2022 vorgestellt und erstmals im Kontext neuerer Intel-CPU-Generationen eingeführt und soll langfristig das klassische Interrupt- und Ausnahme-Handling (z. B. über IDT und IRET) ablösen.[1]
Motivation und Problemstellung
[Bearbeiten | Quelltext bearbeiten]Die klassische Ereignisbehandlung in der x86-Architektur basiert auf Konzepten aus den 1980er- und 1990er-Jahren. Diese weisen mehrere Schwächen auf:
- Komplexität: Unterschiedliche Pfade für Interrupts, Exceptions und System Calls
- Implizite Zustände: Viele Details des CPU-Zustands werden indirekt über den Stack verwaltet
- Sicherheitsprobleme: Historisch anfällig für Exploits (z. B. durch fehlerhafte Rückkehrzustände)
- Schwierige Virtualisierung: Hypervisoren müssen komplexe Übergänge emulieren oder absichern
- Uneinheitliche Mechanismen:
SYSENTER/SYSCALLexistieren parallel zu IDT-basierten Übergängen
Ziele
[Bearbeiten | Quelltext bearbeiten]- Verbesserung der Gesamtleistung und der Reaktionszeit durch den Ersatz der Ereignisübermittlung über die Interrupt-Deskriptortabelle (IDT-Ereignisübermittlung) und der Ereignisrückgabe durch den IRET-Befehl mittels Übergänge mit geringerer Latenz.
- Verbesserung der Software-Robustheit, indem sichergestellt wird, dass die Ereignisübermittlung den vollständigen Supervisor-Kontext und die Ereignisrückgabe den vollständigen Benutzerkontext herstellt.
- Vereinheitlichung und Vereinfachung der Ereignisbehandlung, dadurch verbessert es Sicherheit, Performance und Wartbarkeit erheblich.
Umsetzung
[Bearbeiten | Quelltext bearbeiten]Es werden einfache neue Übergänge definiert, die die Privilegienstufe ändern (Ring-Übergänge).[2] FRED führt ein neues, einheitliches Modell für Ereigniszustellung (Event Delivery Mechanism) und Rückkehr aus Ereignissen (Return Handling) ein:
Ereigniszustellung (Event Delivery Mechanism)
[Bearbeiten | Quelltext bearbeiten]Ereignisse (Interrupts, Exceptions, System Calls) werden über einen einheitlichen Mechanismus zugestellt. Dabei wird:
- ein definierter Event Record erzeugt
- ein klar strukturierter State Frame auf dem Kernel-Stack abgelegt
- die Zielroutine ohne die historische IDT-Logik angesprungen
Dies reduziert die Anzahl der Sonderfälle erheblich.
Rückkehrmechanismus (Return Path)
[Bearbeiten | Quelltext bearbeiten]Statt `IRET` nutzt FRED einen neuen, deterministischen Rückkehrmechanismus:
- Rückkehr basiert direkt auf dem zuvor erzeugten State Frame
- Keine komplexen Sonderfälle wie bei
IRET(z. B. VM86, Nested Tasks) - Geringeres Risiko inkonsistenter Zustände
Explizite Zustandsrahmen (State Frames)
[Bearbeiten | Quelltext bearbeiten]- Enthält Registerzustände, Flags und Metadaten
- Hat ein festes, dokumentiertes Layout
- Wird automatisch von der Hardware erzeugt
Unterstützung in Software
[Bearbeiten | Quelltext bearbeiten]Die Unterstützung wurde 2024 mit Linux 6.9 in den Kernel integriert.[3]
Unterstützung in Hardware
[Bearbeiten | Quelltext bearbeiten]Intel Panther Lake ist die erste CPU-Generation, die FRED unterstützt. Inzwischen wurde auch bekannt gegeben, dass AMDs Zen 6, sowie Intels Xeon Diamond Rapids-Serverprozessoren und Nova-Lake-Desktopprozessoren FRED unterstützen wird.
Fazit
[Bearbeiten | Quelltext bearbeiten]Benchmarks von Phoronix zeigen, dass Flexible Return and Event Delivery (FRED) seine Designziele erfüllt. Bei I/O-intensiven Workloads und anderen Szenarien lieferte diese neue Technologie, die mit Panther Lake eingeführt wurde, äußerst bedeutende Leistungssteigerungen.[4]
Siehe auch
[Bearbeiten | Quelltext bearbeiten]Einzelnachweise
[Bearbeiten | Quelltext bearbeiten]- ↑ Intel Flexible Return and Event Delivery (FRED) Specification June 2025 Revision. Band 9. Intel Corporation, Juni 2025, S. 9–62 (englisch, intel.com [PDF; abgerufen am 17. April 2026]).
- ↑ 30.8. Flexible Return and Event Delivery (FRED) — The Linux Kernel documentation. In: docs.kernel.org. Abgerufen am 22. April 2026 (englisch).
- ↑ Linux Pull x86 FRED support. In: git.kernel.org. Abgerufen am 21. April 2026 (englisch).
- ↑ Written by Michael Larabel: Intel FRED Can Yield Greater Performance - FRED Benchmarks On Panther Lake Review - Phoronix. In: phoronix.com. 23. März 2026, abgerufen am 22. April 2026 (englisch).
