Der Nutzen von Virtualisierungstechnologien, insbesondere im Umfeld von eingebetteten Systemen - ein traditionell sehr kostensensitiver Markt - wird oft hinterfragt. Gerade in Hinblick auf die statisch zur Entwicklungszeit konfigurierten Steuergeräte stellt sich die berechtigte Frage, ob Virtualisierung als dynamisches Konzept zur Laufzeit mit einem zu hohen Zuschlag durch die Einführung einer weiteren Abstraktionsschicht in der Software verbunden ist. Virtualisierung muss sich hier mit alternativen Architekturansätzen messen lassen, bei denen Funktionen statisch zu den einzelnen Kernen eines Multi-Core-Prozessors zugeordnet und dann zur Laufzeit parallel ausgeführt werden. Der Gedanke der Konsolidierung von Steuergeräten wird dabei an sich konsequent weitergeführt, wobei nun oft ein einzelner Rechenkern die Funktion eines Prozessors des „alten“ Steuergeräts übernimmt. Vereinfacht gesprochen können damit auf einem Prozessor mit n Kernen maximal n Steuergeräte konsolidiert werden (Bild 4).
Bei diesem Ansatz wird zudem vereinfachend davon ausgegangen, dass der Durchsatz eines Dual-Core-Prozessors dem doppelten eines gleich schnell getakteten Single-Core-Prozessors entspricht. Dies trifft jedoch nur bedingt zu, da der Zugriff auf den Speicher zwischen beiden Kernen geteilt werden muss. Mit steigender Anzahl an Kernen wird diese Diskrepanz zum Single-Core-Prozessor immer größer, so dass sich ein abweichendes Laufzeitverhalten ergibt.
Ferner greift dieser Ansatz auch hinsichtlich der zukünftigen Entwicklung von Mehrkernprozessoren zu kurz. Zunächst beschränkt er die Anzahl der aktuell konsolidierbaren Funktionen auf die Menge an Rechenkernen, so dass aktuell nur etwa zwei bis acht Funktionen auf einem Prozessor integriert werden können. Allerdings ist absehbar, dass die einzelnen Kerne eines Mehrkernprozessors in Zukunft langsamer als ihre Single-Core-Vertreter werden, um den rapiden Anstieg der Leistungsaufnahme zu reduzieren. Eine einfache 1:1-Übertragung einer Software-Funktion von einem Single-Core- auf einen Multi-Core-Prozessor wird daher in Zukunft allein schon aufgrund der reduzierten Prozessorleistung zu einer Verschlechterung der Rechenleistung führen.
Der größte Nachteil dieses einfachen Architekturansatzes liegt jedoch im Bereich der Zuverlässigkeit und der Toleranz von Laufzeitfehlern. Einzelne Kerne bieten durch ihren Befehlssatz die Möglichkeit der Trennung von privilegierten und nicht-privilegierten Instruktionen und damit einen gewissen Schutz vor den Auswirkungen von Laufzeitfehlern auf andere, parallel arbeitende Software-Komponenten. Für eine sichere Partitionierung in Raum und Zeit genügt eine einfache Trennung von Instruktionen jedoch nicht, um eine Fehlerweiterleitung über gemeinsam genutzte Ressourcen zu verhindern. Virtualisierung ermöglicht hier die sichere Partitionierung von gemeinsam genutzten Kommunikationskanälen und anderen I/O-Komponenten.
Je weiter die Entwicklung von Mehrkernprozessoren voranschreitet und je stärker damit eine höhere Integration von Komponenten realisiert wird, umso mehr wird die Partitionierung von gemeinsam genutzten Ressourcen zusätzlich zur Prozessorzeit in den Fokus geraten. Eine höhere Integration ist letztlich das Ergebnis einer gemeinsamen Nutzung von bisher exklusiv genutzten Komponenten. Damit führt eine höhere Integrationsdichte automatisch zu einem Anstieg der Wahrscheinlichkeit einer Fehlerweiterleitung, so dass sichere und zertifizierbare Schutzmechanismen in der Software in Zukunft von essentieller Bedeutung sind.