Eine spezielle Funktion für die Datenpfad-Beschleunigung verwaltet das „Routen“ von Datenpaketen, die Sicherheitsfunktionen, die Quality of Service (QoS) und die Deep Packet Inspection. Der Rechenkern wird so entlastet und kann sich auf die Verarbeitung höherwertiger Dienste und Anwendungen konzentrieren. Jeder e500mc verfügt über seinen eigenen, 32 Kbyte großen L1-Cache für Befehle und Daten sowie über einen dedizierten L2-Cache mit 128 Kbyte Kapazität.
Die im e500mc eingebettete Hypervisor-Architektur bietet neue Möglichkeiten der Partitionierung, für die im Vergleich mit den früheren e500-CPUs Änderungen in der Architektur erforderlich waren. Die Änderungen an den Prozessor-States, der Speicherverwaltung, den Interrupts und anderen Elementen sind so gestaltet, dass ein bisher genutztes Betriebssystem, das für die Ausführung auf einem existierenden Rechenkern ohne Sonderfunktionen programmiert wurde, auch weiterhin seinen vollen Funktionsumfang behält, selbst wenn ein Rechenkern mit eingebetteten Hypervisor-Funktionen eingesetzt wird.
Die Anwender können so ihre System-Software in der gleichen Umgebung belassen, die vor der Einführung des Hypervisors bestand. Darüber hinaus wartet dieser mit einer „Virtual Machine“ auf, die möglichst genau die zugrundeliegende Hardware widerspiegelt. Betriebssysteme können damit so realisiert werden, dass sie ohne große Änderungen auf neuer Hardware unter der Regie des Hypervisors ablaufen können. Unter anderem waren durch die Einführung der „Embedded Hypervisor“-Architektur für den e500mc Änderungen an den Prozessor-States, im Speichermanagement und bei den Interrupts erforderlich.
Guest State
Mit der „Embedded Hypervisor“-Architektur des e500mc ist eine dritte Privilegstufe namens „Guest State“ hinzugekommen, das GS-Bit im Machine State Register des e500mc. Fungiert der Hypervisor als Host für ein Betriebssystem, so arbeitet er im „Hypervisor State“, während das gehostete Betriebssystem und seine Applikationen im „Guest State“ laufen (Bild 2). Um ein Maximum an Rechenleistung zu erreichen, wurde der e500mc mit Shadow-Registern ausgestattet, in denen bestimmte CPU-Register dupliziert werden, die sich erfahrungsgemäß auf die Prozessorleistung auswirken.
Jeweils eines davon wird vom Hypervisor, das andere von den Guests benutzt. Darüber hinaus erfolgt eine Umsetzung der Zugriffe, so dass die Guest-Software für die Nutzung dieser Register nicht modifiziert werden muss. So kann bei den Registern SRR0 und GSRR0 die Guest-Software nur auf GSRR0 zugreifen. Die CPU setzt Gast-Zugriffe auf SRR0 automatisch auf GSRR0 um.
Speichermanagement
Die „Embedded Hypervisor“-Architektur des e500mc erweitert den virtuellen Adressraum der CPU um eine ID für die logische Partition. So kann der Hypervisor über einen großzügigen virtuellen Adressraum verfügen, der effizient zur Generierung von Partitionen genutzt werden kann.
Der QorIQ-Kommunikationsprozessor enthält eine Peripheral Access Memory Management Unit (PAMU), die die Zugriffe von I/O-Funktionen auf den Speicher koordiniert und neben Schutzfunktionen auch die AdressÜbersetzung übernimmt. Dies ist ein entscheidendes Element, wenn es gilt, ein sicher partitioniertes System zu erstellen. Der QorIQ-Kommunikationsprozessor kann so konfiguriert werden, dass alle DMA-fähigen I/O-Module über die PAMU auf den Speicher zugreifen müssen. Die PAMU ihrerseits greift auf Tabellen zu, die per Software konfiguriert werden und beschreiben, auf welche physikalischen Adressbereiche das jeweilige Modul zugreifen darf.
Interrupts
Der e500mc erlaubt die selektive Zuweisung mancher Interrupts zum Guest State, ohne dass die Hypervisor-Software eingreifen müsste. Diese Interrupts können sich entscheidend auf die Rechenleistung auswirken, abhängig vom Verhalten der Software insgesamt wie auch von den Strategien, die ein Hypervisor für die Speicherverwaltung benutzt.
Partitionierung mit der „Embedded Hypervisor“-Software
Die „Embedded Hypervisor“-Software ermöglicht eine effiziente und sichere Partitionierung eines Multi-Core-Systems. Die CPUs, der Speicher und die I/O-Module eines Systems lassen sich in Partitionen unterteilen, wobei auf jeder Partition ein Gast-Betriebssystem laufen kann (Bild 3). Die „Embedded Hypervisor“-Software unterstützt eine Partitionierung von CPUs, Speicher und I/O-Funktionen. Dabei werden jeder Partition ein oder mehrere CPU-Kerne im System zugewiesen. Jede Partition verfügt dabei über einen „privaten“ Speicherbereich, der nur für sie zugänglich ist. Darüber hinaus können gemeinsam nutzbare Speicherregionen erstellt und von mehreren Partitionen gemeinsam genutzt werden. I/O-Funktionen der QorIQ-Prozessoren der P4-Baureihe können direkt einer Partition zugeordnet werden (direkte I/Os). Dadurch wird die Funktion zu einer privaten Ressource einer Partition und erreicht so den optimalen Durchsatz.
Die wesentlichen Eigenschaften der Hypervisor-Software-Architektur lassen sich folgendermaßen zusammenfassen: