Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MOTOR VEHICLE COMPUTER SYSTEM WITH HYPERVISOR, AND MOTOR VEHICLE
Document Type and Number:
WIPO Patent Application WO/2020/259897
Kind Code:
A1
Abstract:
The invention relates to a computer system (11) for a motor vehicle (10), having a processor apparatus (12) with a plurality of real processor cores (13) in the form of circuits, a plurality of virtual machines (15), each of which in each case has at least one virtual processor core (24) for executing software programs (14), a hypervisor apparatus (25) that is designed to run the virtual machines (15) simultaneously on the processor apparatus (12) and, for this purpose, to exclusively assign the real processor cores (13) to the virtual machines (15) in accordance with a predetermined assignment scheme (27). The invention makes provision for the hypervisor apparatus (25) to contain a hypervisor scheduler (26) which provides, in addition to the assignment scheme (27), at least one further assignment scheme (27) which provides a further exclusive assignment of the real processor cores (13) to the virtual machines (15), and for the hypervisor scheduler (26) to be designed to switch between the assignment schemes (27) on the basis of a demand signal (29).

Inventors:
LERZER JÜRGEN (DE)
DALKE CHRISTOPH (DE)
Application Number:
PCT/EP2020/061587
Publication Date:
December 30, 2020
Filing Date:
April 27, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
AUDI AG (DE)
International Classes:
G06F9/455; G06F9/50
Domestic Patent References:
WO2017166207A12017-10-05
Foreign References:
US20180088997A12018-03-29
US20120084777A12012-04-05
US9753770B22017-09-05
DE102013007676A12014-11-06
DE102012205301A12013-10-02
DE102013226700A12015-06-25
Other References:
ANONYMOUS: "Performance Best Practices for VMware vSphere 6.7", 27 July 2018 (2018-07-27), Palo Alto, CA, USA, XP055714231, Retrieved from the Internet [retrieved on 20200713]
ARTEAGA ET AL.: "Coperative virtual machine scheduling on multi-core multi-threading systems - A feasibility study", MASVDC WORKSHOP, 2010
QUESNEL ET AL.: "Cooperative dynamic scheduling of virtual machines in distributed systems", EURO-PAR, 2011
Download PDF:
Claims:
PATENTANSPRÜCHE:

1. Computersystem (11 ) für ein Kraftfahrzeug (10), aufweisend:

- eine Prozessoreinrichtung (12) mit mehreren schaltungstechnisch rea lisierten, realen Prozessorkernen (13),

- mehrere virtuelle Maschinen (15), von denen jede jeweils zumindest einen virtuellen Prozessorkern (24) zum Ausführen von Softwarepro grammen (14) aufweist, wobei eine Gesamtanzahl der virtuellen Pro zessorkerne (14) größer als eine Gesamtanzahl der realen Pro zessorkerne (13) ist,

- eine Hypervisoreinrichtung (25), die dazu eingerichtet ist, die virtuellen Maschinen (15) auf der Prozessoreinrichtung (12) gleichzeitig zu be treiben und hierzu die realen Prozessorkerne (13) den virtuellen Ma schinen (15) gemäß einem vorbestimmten Zuordnungsschema (27) exklusiv zuzuordnen, sodass in jeder virtuellen Maschine (15) eine Rechenleistung von deren zumindest einem virtuellen Prozessorkern (24) durch den zumindest einen realen Prozessorkern (13), welcher der jeweiligen virtuellen Maschine (15) exklusiv zugeordnet ist, reali siert ist,

dadurch gekennzeichnet, dass

in der Hypervisoreinrichtung (25) ein Hypervisorscheduler (26) bereitge stellt ist, durch welchen zusätzlich zu dem Zuordnungsschema (27) zu mindest ein weiteres Zuordnungsschema (27), welches eine weitere ex klusive Zuordnung der realen Prozessorkerne (13) zu den virtuellen Ma schinen (15) vorsieht, bereitgestellt ist und der Hypervisorscheduler (26) dazu eingerichtet ist, zwischen den Zuordnungsschemata (27) in Abhän gigkeit von einem Bedarfssignal (29) umzuschalten.

2. Computersystem (11 ) nach Anspruch 1 , wobei eine der virtuellen Ma schinen (15) eine Steuerschnittstelle (30) zum Übertragen des Bedarfs signals (29) aus dieser virtuellen Maschine (15) heraus in die Hypervi soreinrichtung (25) hinein aufweist, wobei die Steuerschnittstelle (30) da zu eingerichtet ist, das Bedarfssignal (29) aus einem auf der virtuellen Maschine (15) oder einer anderen der virtuellen Maschinen (15) ausge führten Softwareprogramm (14) zu empfangen.

3. Computersystem (11 ) nach einem der vorhergehenden Ansprüche, wobei eine der virtuellen Maschinen (15) ein Anzeigesteuerprogramm (18) auf weist, das dazu eingerichtet ist, auf einer Anzeigeeinrichtung (17) einen Bildinhalt (20) auf der Grundlage von Graphikdaten (19) einzustellen, wobei zum Erzeugen der Graphikdaten (19) in den virtuellen Maschinen (15) Applikationsprogramme (23) vorgesehen sind, und das Anzeige steuerprogramm (18) dazu eingerichtet ist, auf der Grundlage einer vor bestimmten Anteilsberechnungsvorschrift (31 ) einen jeweiligen Mitwir kungsanteil der Applikationsprogramme (23) an dem Bildinhalt (20) zu ermitteln und mittels des Bedarfssignals (29) die Rechenleistung der rea len Prozessorkerne (13) gemäß dem jeweiligen ermittelten Mitwirkungs anteil auf die virtuellen Maschinen (15) aufzuteilen.

4. Computersystem (11 ) nach Anspruch 3, wobei die Anteilsberechnungs vorschrift (31 ) den jeweiligen Mitwirkungsanteil eines jeweiligen der Ap plikationsprogramme (23) festlegt durch:

- einen jeweiligen Bildflächenanteil am Bildinhalt (20),

- eine Veränderungsrate der Graphikdaten des jeweiligen Applikations programms (23),

- einem Beitrag am sichtbar dargestelltem Bildvordergrund.

5. Computersystem (11 ) nach einem der vorhergehenden Ansprüche, wobei eine Gesamtanzahl der Zuordnungsschemata (27) kleiner als 10 ist.

6. Computersystem (11 ) nach einem der vorhergehenden Ansprüche, wobei während einer Aktivität eines der Zuordnungsschemata (27) eine stati sche Bindung jedes der realen Prozessorkerne (13) zu einer der virtuel len Maschinen (15) beibehalten wird.

7. Computersystem (11 ) nach einem der vorhergehenden Ansprüche, wobei alle Zuordnungsschemata (27) einen gemeinsamen Zuordnungsanteil (32) aufweisen, durch welchen zumindest einer der virtuellen Prozessor kerne (24) jeweils einem der realen Prozessorkerne (13) zugeordnet ist.

8. Computersystem (11 ) nach einem der vorhergehenden Ansprüche, wobei das Computersystem (11 ) zumindest eine Graphik-Prozessor-Einheit, GPU, und/oder zumindest eine Hardwareressource aufweist, die durch den Hypervisorscheduler (26) gemäß dem jeweils aktiven Zuordnungs schema (28) einer der virtuellen Maschinen (15) exklusiv zugeordnet ist. 9. Kraftfahrzeug (10) mit einem Computersystem (11 ) nach einem der vor hergehenden Ansprüche.

Description:
Kraftfahrzeug-Computersystem mit Hypervisor sowie Kraftfahrzeug

BESCHREIBUNG: Die Erfindung betrifft ein Computersystem für ein Kraftfahrzeug. Das Compu tersystem kann eine Prozessoreinrichtung mit mehreren Prozessorkernen sowie eine Hypervisoreinrichtung aufweisen. Mittels der Hypervisoreinrich- tung können mehrere virtuelle Maschinen auf den Prozessorkernen gleich zeitig ausgeführt werden. Zu der Erfindung gehört auch ein Kraftfahrzeug mit einem solchen Computersystem.

In einem Kraftfahrzeug kann zum Ausführen mehrerer Softwareprogramme vorgesehen sein, eine Prozessoreinrichtung mit mehreren Prozessorkernen zu betreiben. Eine solche Prozessoreinrichtung kann dabei aus einem einzi- gen Prozessorchip (CPU - Central Processing Unit) oder einem Verbund aus mehreren Prozessorchips gebildet sein. Um die Softwareprogramme ge trennt nach unterschiedlichen Kategorien, beispielsweise Zuverlässigkeit bei der Ausführung (safety) und/oder Schutz gegen Manipulierbarkeit (security) ausführen zu können, kann vorgesehen sein, virtuelle Maschinen zu betrei- ben, in denen dann jeweils eines oder einige der Softwareprogramme ausge führt werden. Eine virtuelle Maschine stellt dabei einen virtuellen Computer dar, das heißt es handelt sich um ein Softwarepaket, in welchem zumindest ein virtueller Prozessorkern sowie ein auf dem zumindest einen virtuellen Prozessorkern ausführbares Betriebssystem enthalten sein kann.

Die Verwendung eines Computersystems mit virtuellen Maschinen in einem Kraftfahrzeug ist beispielsweise aus der DE 10 2013 007 676 A1 bekannt. Darin ist der Vorteil beschrieben, dass mittels der virtuellen Maschinen eine Kapselung von Softwareprogrammen gegeneinander ermöglicht ist. Um die mehreren virtuellen Maschinen auf der Prozessoreinrichtung betrei ben zu können, ist bekannt, einen sogenannten Hypervisor oder eine Hyper- visoreinrichtung bereitzustellen. Eine solche Hypervisoreinrichtung ist dazu eingerichtet, die virtuellen Maschinen auf der Prozessoreinrichtung gleichzei tig zu betreiben und hierzu die realen Prozessorkerne der Prozessoreinrich tung den virtuellen Maschinen gemäß einem vorbestimmten Zuordnungs schema zuzuordnen. Mit anderen Worten wird also pro virtueller Maschine jeweils zumindest ein realer Prozessorkern der Prozessoreinrichtung fest zugeordnet. Diese Zuordnung ist in der Regel fix, das heißt ein realer Pro zessorkern der Prozessoreinrichtung bleibt im Verlauf des Betriebs des Computersystems genau einer virtuellen Maschine zugeordnet.

Dies kann zu dem Nachteil führen, dass für den Fall, dass in einer virtuellen Maschine ein dort ausgeführtes Softwareprogramm für einen bestimmten Zeitabschnitt eine große Rechenleistung benötigt, diese Rechenleistung nur durch den zumindest einen realen Prozessorkern der Prozessoreinrichtung bereitgestellt werden kann, der durch die fixe Zuordnung in der virtuellen Maschine ohnehin verfügbar ist. Selbst wenn eine andere virtuelle Maschine gerade wenig Rechenleistung benötigt, also der dieser virtuellen Maschine zugeordnete zumindest eine Prozessorkern nur teilweise ausgelastet ist, kann die verbleibende Rechenleistung nicht für eine virtuelle Maschine mit dem hohen Bedarf an Rechenleistung genutzt werden.

Aus der DE 10 2012 205 301 A1 ist ein Fahrzeug-Computersystem mit ei nem Flypervisor beschrieben. Des Weiteren ist beschrieben, dass die unter schiedlichen virtuellen Maschinen, die auf den Prozessorkernen des Compu tersystems gleichzeitig ausgeführt werden, gemeinsam auf eine Ein- Ausgabeeinheit zugreifen können, indem die Hypervisoreinrichtung die Ein- Ausgabeeinheit als virtuelle Ein-Ausgabeeinheit in jeder der virtuellen Ma schinen abbildet oder darstellt. Eine optimierte Aufteilung der verfügbaren Rechenleistung ergibt sich hierbei allerdings nicht. Aus der DE 10 2013 226 700 A1 ist bekannt, dass eine Hardwareressource, wie beispielsweise ein Zugang zu einem Endgerät, exklusiv und durchge hend nur einer virtuellen Maschine eines Computersystems eines Kraftfahr zeugs zugeordnet wird und dass eine Datenübertragung zwischen zwei vir- tuellen Maschinen durch eine Hypervisoreinrichtung ermöglicht werden kann.

In WO 2017/166207 A1 betrifft die kooperativen Planung virtueller Maschi nen. Ein beispielhaftes Verfahren umfasst das Verwalten einer CPU-Maske durch einen Manager für eine virtuelle Maschine, wobei die CPU-Maske eine Echtzeitverfügbarkeit für jeden von mehreren physischen CPUs aufweist umfasst. Eine virtuelle Maschine darf die CPU-Maske lesen.

Die Veröffentlichung von Arteaga et al mit dem Titel“Coperative virtual ma chine scheduling on multi-core multi-threading Systems - A feasibility study” zum MASVDC Workshop 2010 betrifft die kooperative Ablaufplanung von virtuellen Maschinen, insbesondere zur Minimierung von Prozessorbelastun gen.

Die Veröffentlichung von Quesnel et al mit dem Titel„Cooperative dynamic scheduling of virtual machines in distributed Systems“ zur Euro-Par 2011 betrifft ebenfalls die kooperative Ablaufplanung von virtuellen Maschinen.

Der Erfindung liegt die Aufgabe zugrunde, bei einem Computersystem eines Kraftfahrzeugs die verfügbare Rechenleistung mehrerer Prozessorkerne auf virtuelle Maschinen des Computersystems aufzuteilen.

Die Aufgabe wird durch die Gegenstände der unabhängigen Patentansprü che gelöst. Vorteilhafte Ausführungsformen der Erfindung sind durch die abhängigen Patentansprüche, die folgende Beschreibung sowie die Figuren beschrieben.

Durch die Erfindung ist ein Computersystem für ein Kraftfahrzeug bereitge stellt. Das Computersystem weist eine Prozessoreinrichtung mit mehreren reale Prozessorkernen auf. Diese Prozessorkerne sind hier als reale Pro- zessorkerne bezeichnet, das heißt sie sind tatsächlich schaltungstechnisch realisiert (als integrierte Schaltkreise) und nicht nur als virtuelle Prozessor kerne softwarebasiert vorhanden. Die Prozessoreinrichtung kann auf einer CPU oder einem Cluster aus mehreren CPUs basieren, wobei jede CPU einen Prozessorkern oder mehrere der Prozessorkerne aufweisen kann.

In dem Computersystem sind des Weiteren mehrere virtuelle Maschinen bereitgestellt, von denen jede jeweils zumindest einen virtuellen Prozessor kern zum Ausführen von Softwareprogrammen aufweist. Mit anderen Worten sind in dem Computersystem als virtuelle Maschinen jeweilige Softwarepake te bereitgestellt, die mittels der Prozessoreinrichtung betrieben oder ausge führt werden können. Eine solche betriebene oder ausgeführte virtuelle Ma schine stellt dann innerhalb der virtuellen Maschine eine vorbestimmte, feste Anzahl an virtuellen Prozessorkernen bereit, auf dem oder auf denen ein Betriebssystem der virtuellen Maschine ausgeführt wird. Hierbei ist insge samt vorgesehen, dass eine Gesamtanzahl der virtuellen Prozessorkerne (alle virtuellen Maschinen zusammengenommen) größer ist als eine Ge samtanzahl der realen Prozessorkerne der Prozessoreinrichtung. Mit ande ren Worten lässt sich zu einem gegebenen Zeitpunkt also nicht jedem virtuel- len Prozessorkern genau ein realer Prozessorkern zuordnen.

Für den Betrieb der virtuellen Maschinen auf der Prozessoreinrichtung ist eine Hypervisoreinrichtung (auch Hypervisor oder Virtualisierungsschicht genannt) vorgesehen. Die Hypervisoreinrichtung ist dazu eingerichtet, die virtuellen Maschinen auf der Prozessoreinrichtung gleichzeitig zu betreiben und hierzu die realen Prozessorkerne den virtuellen Maschinen gemäß ei nem vorbestimmten Zuordnungsschema exklusiv zuzuordnen. Exklusiv be deutet hier, dass zu einem gegebenen Zeitpunkt ein realer Prozessorkern nur genau einer virtuellen Maschine zugeordnet ist. Mit anderen Worten teilen sich virtuelle Maschinen zu keinem Zeitpunkt keinen Prozessorkern. Durch das Zuordnen ist in jeder virtuellen Maschine eine Rechenleistung von deren zumindest einen virtuellen Prozessorkern dadurch festgelegt oder bestimmt, dass der zumindest eine virtuelle Prozessorkern durch den zumin dest einen realen Prozessorkern, welcher dieser virtuellen Maschine exklusiv zugeordnet ist, realisiert oder betrieben ist. Es kann also beispielsweise vorgesehen sein, dass ein virtueller Prozessorkern einer virtuellen Maschine durch einen realen Prozessorkern versorgt oder umgesetzt wird oder die Rechenleistung des realen Prozessorkerns abbildet oder widerspiegelt. Dann ist die Rechenleistung des virtuellen Prozessorkerns gleich der Rechenleis tung des realen Prozessorkerns. Es kann aber auch sein, dass mehr nur ein virtueller Prozessorkern durch einen einzelnen realen, gemeinsamen Pro zessorkern mit Rechenleistung versorgt oder durch einen realen Prozessor kern realisiert wird. Dann ist die Rechenleistung pro virtuellem Prozessorkern kleiner als die Rechenleistung des realen Prozessorkerns. Es kann auch vorgesehen sein, dass für einen einzelnen virtuellen Prozessorkern zwei oder mehr als zwei reale Prozessorkerne vorgesehen sind, sodass also dann der virtuelle Prozessorkern mehr Rechenleistung aufweist als ein einzelner realer Prozessorkern.

Um nun die Rechenleistung der virtuellen Prozessorkerne der virtuellen Ma schinen anpassen zu können, ist erfindungsgemäß in der Hypervisoreinrich- tung ein Hypervisorscheduler bereitgestellt. Ein Scheduler umfasst eine Schaltung und/oder eine Software, die in Abhängigkeit von einem Bedarf an Rechenleistung oder allgemein in Abhängigkeit von einer Scheduling- Vorschrift die Aufteilung der realen Prozesskerne auf die virtuellen Maschi nen im Betrieb anpassen kann. Im Zusammenhang mit der Hypervisorein- richtung ist nun ein Hypervisorscheduler vorgesehen, durch welchen zusätz lich zu dem besagten Zuordnungsschema (Zuordnung der realen Prozessor- kerne zu den virtuellen Maschinen gemäß einer vorgegebenen Konfigurati on) zusätzlich zumindest ein weiteres Zuordnungsschema bereitgestellt ist, welches eine anderere oder weitere exklusive Zuordnung der realen Pro zessorkerne zu den virtuellen Maschinen vorsieht. Mit anderen Worten gibt es zumindest zwei unterschiedliche Zuordnungsschemata. Jedes Zuord- nungsschema legt fest, welcher reale Prozessorkern welcher virtuellen Ma schine zum Betreiben von deren virtuellen Prozessorkernen zugeordnet oder verwendet wird. Der Hypervisorscheduler ist nun dazu eingerichtet, zwischen den Zuordnungsschemata in Abhängigkeit von einem Bedarfssignal im Be trieb des Computersystems umzuschalten. Durch das Bedarfssignal wird also vorgegeben, welches der Zuordnungsschemata in der Hypervisorein- richtung aktuell eingestellt werden soll. Durch Einstellen oder Aktivieren eines Zuordnungsschemas wird dann entsprechend die Zuordnung der rea len Prozessorkerne zu den virtuellen Maschinen gemäß dem ausgewählten Zuordnungsschema eingestellt.

Somit wird eine Hypervisoreinrichtung geschaffen, die nicht nur einmalig beim Start eine statische Zuordnung oder Bindung von realen Prozessorker nen zu virtuellen Maschinen vorsieht, sondern die Hypervisoreinrichtung ist im Betrieb umschaltbar und weist hierzu den Hypervisorscheduler auf, der zwischen unterschiedlichen Zuordnungsschemata in Abhängigkeit von dem Bedarfssignal umschaltet. Zudem kann situationsbedingt die benötigte Re chenleistung einer virtuellen Maschine garantiert werden.

Durch die Erfindung ergibt sich der Vorteil, dass die Rechenleistung der realen Prozessorkerne variabel oder dynamisch auf die mehreren virtuellen Maschinen aufteilbar ist.

Zu der Erfindung gehören auch Ausführungsformen, durch die sich zusätzli che Vorteile ergeben.

In einer Ausführungsform weist eine der virtuellen Maschinen eine Steuer schnittstelle zum Übertragen des Bedarfssignals aus dieser virtuellen Ma schine heraus in die Hypervisoreinrichtung hinein auf. Die Steuerschnittstelle ist dazu eingerichtet, das Bedarfssignal aus einem auf der virtuellen Maschi ne oder auf einer anderen der virtuellen Maschine ausgeführten Software programm zu empfangen. Mit anderen Worten kann also ein Softwarepro gramm das Bedarfssignal erzeugen und dieses über die Steuerschnittstelle an die Hypervisoreinrichtung übertragen lassen. Somit kann dann die Hyper visoreinrichtung das Bedarfssignal empfangen und das durch das Bedarfs signal geforderte oder ausgewählte Zuordnungsschema aktivieren. Die Über tragung in die Hypervisoreinrichtung mittels der Steuerschnittstelle kann beispielsweise auf der Grundlage eines Shared-Memory (ein für zumindest zwei Programm prozesse zugfreibarer oder freigeschalteter Speicherbereich des Arbeitsspeichers der Prozessoreinrichtung) und/oder über ein Register (beispielsweise ein Prozessorregister) und/oder mittels eines Interrupt über tragen werden. Durch die Steuerschnittstelle ergibt sich der Vorteil, dass der Hypervisorscheduler in Bezug auf die Auswahl des Zuordnungsschemas durch ein Softwareprogramm aus einer virtuellen Maschine heraus gesteuert werden kann.

In einer Ausführungsform ist eine der virtuellen Maschinen dazu eingerichtet, eine Anzeigeeinrichtung zu betreiben, beispielsweise einen Bildschirm oder ein Head-up-Display (Kopf-oben-Anzeige). Hierzu weist die virtuelle Maschi ne ein Anzeigesteuerprogramm auf, also ein Softwareprogramm, das dazu eingerichtet ist, auf einer Anzeigeeinrichtung einen Bildinhalt auf der Grund lage von Graphikdaten einzustellen. Der Bildinhalt kann beispielsweise pixel basiert sein und die Graphikdaten können die Pixelwerte (Farbe und/oder Helligkeit) für die Pixel des Bildinhalts festlegen. Zum Erzeugen der Graphik daten sind in den virtuellen Maschinen Applikationsprogramme vorgesehen, das heißt die Graphikdaten können von mehr als einem Applikationspro gramm erzeugt werden. Das Anzeigesteuerprogramm kann dann die Gra phikdaten der unterschiedlichen Applikationsprogramme kombinieren oder zusammenfügen oder überlagern, was nach einem vorgegebenen Anzeige schema durchgeführt werden kann. Das Anzeigesteuerprogramm ist dabei dazu eingerichtet, auf der Grundlage einer vorbestimmten Anteilsberech nungsvorschrift einen jeweiligen Mitwirkungsanteil oder Anteil der Applikati onsprogramme an dem Bildinhalt zu ermitteln und mittels des Bedarfssignals die Rechenleistung gemäß dem jeweiligen ermittelten Mitwirkungsanteil auf die virtuellen Maschinen aufzuteilen, indem ein passendes Zuordnungs schema mittels des Bedarfssignals ausgewählt wird. Das Anzeigesteuerpro gramm ermittelt also, welches Applikationsprogramm zu welchem Anteil an der Erzeugung des Bildinhalts mitwirkt, also wie groß der Rechenaufwand des jeweiligen Applikationsprogramms ist. Je größer der Mitwirkungsanteil eines Applikationsprogramms ist, desto mehr Rechenleistung benötigt es. Entsprechend wird dann mittels des Bedarfssignals ein Zuordnungsschema ausgewählt, durch welches an die virtuelle Maschine, die das jeweilige Appli kationsprogramm betreibt oder ausführt, Rechenleistung entsprechend dem Mitwirkungsanteil zugeteilt wird. Das besagte Anzeigesteuerprogramm zum Steuern der Anzeigeeinrichtung kann dann beispielsweise auch das besagte Softwareprogramm sein, welches über die Steuerschnittstelle das Bedarfs signal an die Hypervisoreinrichtung ausgibt. Wenn Anzeigesteuerprogramm also das Bedarfssignal ermittelt hat, übermittelt es dieses über die Steuer schnittstelle an die Hypervisoreinrichtung.

Einige Ausführungsformen beschäftigten sich mit der Frage, in welcher Form die Anteilsberechnung für den Mitwirkungsanteil durchgeführt werden kann. Bei einer dieser Ausführungsformen ist durch die Anteilsberechnungsvor schrift der jeweilige Mitwirkungsanteil eines jeweiligen der Applikationspro gramme festgelegt durch einen jeweiligen Bildflächenanteil am Bildinhalt. Je größer also der Bildflächenanteil eines Applikationsprogramms am Bildinhalt ist, desto größer ist der Mitwirkungsanteil. Zusätzlich oder alternativ dazu kann der jeweilige Mitwirkungsanteil festgelegt sein durch eine Verände rungsrate der Graphikdaten des jeweiligen Applikationsprogramms. Je häufi ger oder mit höherer Wiederholungsrate oder eine flächenmäßige Verände rung der Graphikdaten oder des Graphikanteils des Applikationsprogramms pro Zeiteinheit ist, desto größer ist der Mitwirkungsanteil. Beispielsweise kann also so der Mitwirkungsanteil eines Applikationsprogramms, das ein Video und/oder eine graphische Animation darstellt, größer eingeschätzt oder bewertet werden als ein Applikationsprogramm, das eine statische, zeitlich unveränderliche Graphik oder ein Foto oder Bild anzeigt. Zusätzlich oder alternativ dazu kann als Mitwirkungsanteil ein flächenmäßiger Beitrag am sichtbar dargestellten Bildvordergrund zugrunde gelegt werden. Der Bildvordergrund kann ein vorbestimmter Teilbereich der Anzeigefläche der Anzeigeeinrichtung sein. Zusätzlich oder alternativ dazu kann als Bildvorder grund der verbleibende sichtbare Bildinhalt sein, der sich nach Überlagern der Graphikdaten der unterschiedlichen Applikationsprogramme ergibt. So kann beispielsweise vorgesehen sein oder es kann Vorkommen, dass die Graphikdaten eines Applikationsprogramms nach dem Überlagern aller Gra phikdaten überhaupt nicht mehr angezeigt werden, also das Applikationspro gramm von den Graphikdaten zumindest eines anderen Applikationspro gramms verdeckt oder überlagert wird. In diesem Fall ist dann für dieses Applikationsprogramm auch kein Mitwirkungsanteil vorhanden. Die beschrie benen Maße zum Ermitteln des Mitwirkungsanteils haben sich als zuverläs sige Indikatoren für die aktuell von dem jeweiligen Applikationsprogramm benötigte Rechenleistung erwiesen. Die beschriebenen Maße können auch kombiniert angewendet werden, beispielsweise mittels einer gewichteten Summierung.

In einer Ausführungsform ist die Gesamtanzahl der Zuordnungsschemata, aus welchen mittels des Bedarfssignals ausgewählt wird, kleiner als 10. Insbesondere ist diese Gesamtanzahl kleiner als 7 oder kleiner als 6 oder 5. Insbesondere können nur zwei oder nur drei Zuordnungsschemata vorgese hen sein. Hierdurch ergibt sich der Vorteil, dass eine Änderungshäufigkeit oder Änderungsrate der Zuordnungsschemata entsprechend gering ist, da die Rasterung möglicher Zuordnungsfälle durch die geringe Gesamtanzahl der Zuordnungsschemata entsprechend grob ist. Dies erspart einen Zeitver lust beim Betrieb der Hypervisoreinrichtung, wie er durch zu häufiges Um schalten verursacht werden kann. Insbesondere erfolgt so ein Umschalten von weniger als beispielsweise einmal pro Minute. In einer Ausführungsform wird während einer Aktivität eines der Zuord nungsschemata eine statische Bindung jedes der Prozessorkerne zu einer der virtuellen Maschinen beibehalten. Mit anderen Worten ist also während der Aktivität des jeweiligen Zuordnungsschemas vorgesehen, dass sich durchgehend im Verlauf des gesamten Zuordnungsschemas jeder der realen Prozessorkerne für die jeweilige virtuelle Maschine beibehalten oder gebun den ist. Natürlich kann dann innerhalb der virtuellen Maschine ein Wechsel oder Kontextwechsel zwischen einzelnen Prozessen und/oder Threads der virtuellen Maschine erfolgen. Dennoch bleibt der virtuellen Maschine die Rechenleistung jedes durch das Zuordnungsschema zugeordneten realen Prozessorkerns erhalten. Hierdurch wird eine Leistungsschwankung inner halb der virtuellen Maschinen in Bezug auf die zur Verfügung gestellte Re chenleistung vermieden. In einer Ausführungsform weisen alle besagten Zuordnungsschemata einen gemeinsamen Zuordnungsanteil auf, durch welchen zumindest einer der virtuellen Prozessorkerne einem der realen Prozessorkerne zugeordnet ist. Mit anderen Worten wird also selbst bei einem Wechsel des Zuordnungs schemas für diesen zumindest einen virtuellen Prozessorkern sichergestellt, dass diesem ein realer Prozessorkern, insbesondere immer derselbe reale Prozessorkern, zugeordnet ist und/oder bleibt. Somit bleibt also auch über einen Wechsel des Zuordnungsschemas hinweg für diesen virtuellen Pro zessorkern die Rechenleistung zugeteilt. Hierdurch kann beispielsweise ein sicherheitsrelevantes Softwareprogramm (in Bezug auf saftety und/oder security) durchgehend, unabhängig von dem aktuell ausgewählten Zuord nungsschema mit einer vorbestimmten Rechenleistung garantiert versorgt werden.

In einer Ausführungsform wird das Prinzip des Hypervisors weiter erstreckt, indem das Computersystem zumindest eine Graphikprozessoreinheit oder GPU (graphical Processing unit) und/oder zumindest eine Hardwareres source (beispielsweise eine Hardware-Beschleunigungseinheit für eine Vi- deodekodierungA/ideocodierung und/oder eine NPU (neural Processing unit) durch den Hypervisor Scheduler gemäß dem jeweils aktiven Zuordnungs schema einer der virtuellen Maschinen exklusiv zugeordnet ist, auch eine GPU und/oder eine andere Hardwareressource exklusiv für eine virtuelle Maschine verfügbar gemacht werden und hierbei die Zuordnung durch Wechseln des Zuordnungsschemas auch dynamisch angepasst oder ge wechselt werden.

Das beschriebene Computersystem ist insbesondere für den Einsatz in ei nem Kraftfahrzeug vorteilhaft. Entsprechend umfasst die Erfindung auch ein Kraftfahrzeug mit einer Ausführungsform des erfindungsgemäßen Compu tersystems.

Im Folgenden sind Ausführungsbeispiele der Erfindung beschrieben. Hierzu zeigt: Fig. 1 eine schematische Darstellung einer Ausführungsform des erfindungsgemäßen Kraftfahrzeugs mit einer Ausführungsform des erfindungsgemäßen Computersystems;

Fig. 2 eine schematische Darstellung zur Veranschaulichung unter schiedlicher Zuordnungsschemata, wie sie durch das Compu tersystem gemäß Fig. 1 realisiert sein können.

Bei den im Folgenden erläuterten Ausführungsbeispielen handelt es sich um bevorzugte Ausführungsformen der Erfindung. Bei den Ausführungsbeispie len stellen die beschriebenen Komponenten der Ausführungsformen jeweils einzelne, unabhängig voneinander zu betrachtende Merkmale der Erfindung dar, welche die Erfindung jeweils auch unabhängig voneinander weiterbilden. Daher soll die Offenbarung auch andere als die dargestellten Kombinationen der Merkmale der Ausführungsformen umfassen. Des Weiteren sind die beschriebenen Ausführungsformen auch durch weitere der bereits beschrie benen Merkmale der Erfindung ergänzbar.

In den Figuren bezeichnen gleiche Bezugszeichen jeweils funktionsgleiche Elemente.

Fig. 1 zeigt ein Kraftfahrzeug 10, bei dem es sich um einen Kraftwagen, insbesondere einen Personenkraftwagen oder Lastkraftwagen, handeln kann. In dem Kraftfahrzeug 10 kann ein Computersystem 11 bereitgestellt sein, das beispielsweise als zentrales Computersystem oder sogenannte Head-Unit ausgestaltet sein kann, um für mehrere unterschiedliche Anwen dungen oder Applikationen Rechenleistung bereitstellen zu können. Das Computersystem 11 kann auch unabhängig von dem Kraftfahrzeug 10 be reitgestellt sein.

Das Computersystem 11 kann eine Prozessoreinrichtung 12 aufweisen, welche mehrere Prozessorkerne 13 umfassen kann. Die Prozesskerne 13 können in einer einzelnen CPU oder in einem Cluster aus mehreren CPUs bereitgestellt sein. Um unterschiedliche Anwendungen oder Funktionalitäten bereitstellen zu können, kann vorgesehen sein, dass mehrere unterschiedli che Softwareprogramme 14 in dem Computersystem 11 bereitgestellt und/oder im Betrieb des Computersystems 11 ausgeführt werden. Um die Softwareprogramme 14 gruppenweise gegeneinander abzugrenzen oder einen gegenseitigen Einfluss aufeinander zu verhindern, können mehrere unterschiedliche virtuelle Maschinen 15 (VM1 bis VM X) vorgesehen sein, die auf der Prozessoreinrichtung 12 ausgeführt werden können. Eine der virtuellen Maschinen 15 kann hierbei eine Infrastruktursteuerung 16 darstel len, durch welche insbesondere eine Anzeigeeinrichtung 17 oder mehrere Anzeigeeinrichtung (nicht dargestellt) gesteuert werden können. Hierzu kann in der virtuellen Maschine 15 der Infrastruktursteuerung 16 ein Anzeigesteu erprogramm 18 vorgesehen sein, das aus den Softwareprogrammen 14 Graphikdaten 19 empfangen kann, durch welche ein Bildinhalt 20 auf einer Anzeigefläche 21 der Anzeigeeinrichtung 17 festgelegt werden kann.

Da Graphikdaten 19 mehrere Softwareprogramme 14 vorhanden sind, kann durch das Anzeigesteuerprogramm 18 eine Komposition oder Zusammen stellung 22 der Graphikdaten 19 zum Erzeugen des Bildinhalts 20 vorgese hen sein. Die Softwareprogramme 14 können beispielsweise jeweils ein Applikationsprogramm 23 darstellen, welches beispielweise ein Bedienmenü zum Auswahlen und Aktivieren mehrerer Fahrzeugfunktionen und/oder eine Medienwiedergabe (beispielsweise das Abspielen von Audiodaten und/oder Videodaten) und/oder das Surfen im Internet und/oder eine Telefoniefunktio nalität bereitstellen können, um nur Beispiele zu nennen. Eine entsprechen de Bildausgabe kann mittels der Graphikdaten 19 durch das jeweilige Appli kationsprogramm 23 über das Anzeigesteuerprogramm 18 auf der Anzeige einrichtung 17 gesteuert werden. Die Anzeigeeinrichtung 17 kann einen jeweiligen Bildschirm beispielsweise einer Mittelkonsole und/oder eines Kombiinstruments und/oder als eine Kopf-Oben-Anzeigeeinheit (Head-up- Display) und/oder einen Beifahrer-Bildschirm und/oder einen Rücksitzbild schirm und/oder einen Türenseitenbildschirm umfassen.

In den virtuellen Maschinen 15 kann jeweils die Prozessoreinrichtung 12 mit ihren Prozessorkernen 13 virtualisiert dargestellt oder repräsentiert sein, indem für jede virtuelle Maschine 15 virtuelle Prozessorkerne 24 bereitge stellt oder implementiert sein können, welche sich für die Softwareprogram me 14 als CPUs oder Prozessorkerne darstellen, auf denen das jeweilige Softwareprogramm 14 ausgeführt wird oder ablaufen kann. Die Anzahl der virtuellen Prozessorkerne 24 kann dabei fest vorgegeben oder unveränder lich sein.

Um eine Zuordnung zwischen den realen Prozessorkernen 13 der Prozesso reinrichtung 12 und den virtuellen Prozessorkernen 24 zu erhalten, kann in dem Computersystem 11 ein Hypervisor oder eine Hypervisoreinrichtung 25 (HV) vorgesehen sein, die beispielsweise auf einer Hardwareschaltung (bei spielsweise einem integrierten Schaltkreis oder IC) und/oder auf einer Soft ware basieren kann.

Um hierbei die durch die realen Prozessorkerne 13 verfügbare Rechenleis tung flexibel auf die virtuellen Prozessorkerne 24 aufzuteilen, also eine dy namische Anpassung der Zuteilung zu ermöglichen, kann die Hypervisorein richtung 25 einen Scheduler für das Zuteilen der realen Prozessorkerne 13 zu den virtuellen Prozessorkernen 24 aufweisen, das heißt einen Hypervi- sorscheduler 26.

Der Hypervisorscheduler 26 kann die Zuordnung der realen Prozessorkerne 13 zu den virtuellen Prozessorkernen 24 auf der Grundlage eines Zuord nungsschemas 27 vornehmen, wobei zu jedem Zeitpunkt jeweils nur ein Zuordnungsschema 27 als aktives Zuordnungsschema 28 eingestellt ist. Eine herkömmliche Supervisoreinrichtung 25 kann beim Start nur ein einzi ges Zuordnungsschema 27 ausführen, das heißt es mangelt an dem Hyper visorscheduler 26. Durch Hinzufügen des Hypervisorschedulers 26 kann nun im laufenden Betrieb des Computersystems 11 das Zuordnungsschema 27 gewechselt werden.

Der Wechsel zwischen den Zuordnungsschemata 27 kann dabei in Abhän gigkeit von einem Bedarfssignal 29 erfolgen, das der Hypervisorscheduler 26 beispielsweise aus einer der virtuellen Maschinen, beispielsweise der virtuel- len Maschine 15 für das Anzeigesteuerprogramm 18 empfangen kann. Hier zu kann in der virtuellen Maschine 15 für das Anzeigesteuerprogramm 18 eine Steuerschnittstelle 30 bereitgestellt sein, die es einem Softwarepro gramm, beispielsweise dem Anzeigesteuerprogramm 18, ermöglicht, das Bedarfssignal 29 zu erzeugen und über die Steuerschnittstelle 30 an die Hypervisoreinrichtung 25 und dort insbesondere dem Hypervisor- scheduler 26 bereitzustellen oder zu übermitteln.

Beispielsweise kann das Anzeigesteuerprogramm 18 ermitteln, welcher Rechenbedarf für die einzelnen Applikationsprogramme 23 zum Erzeugen der Graphikdaten 19 aktuell notwendig ist. Hierzu kann von dem Anzeige steuerprogramm 18 beispielsweise eine Anteilsberechnungsvorschrift 31 ausgeführt oder zugrunde gelegt werden, welches ermittelt, wie groß ein jeweiliger Mitwirkungsanteil des jeweiligen Applikationsprogramms 23 am Bildinhalt 20 ist. Entsprechend kann dann ein Zuordnungsschema 27 mittels des Bedarfssignals 29 ausgewählt werden, welches gemäß dem Mitwir kungsanteil mehr Rechenleistung der realen Prozessorkerne 13 der jeweili gen virtuellen Maschine 15 zuordnet, auf welcher das jeweilige Applikations programm 23 läuft oder ausgeführt wird. Je höher also ein Mitwirkungsanteil eines Applikationsprogramms 23 ist, desto mehr Rechenleistung bekommt dessen virtuelle Maschine 15 zugeordnet. Die Mitwirkungsanteile mehrerer Applikationsprogramme 23 einer virtuellen Maschine 15 summieren sich entsprechend zu einem Gesamtmitwirkungsanteil pro virtuelle Maschine 15 auf.

In Fig. 2 ist veranschaulicht, wie mittels mehrerer der Zuordnungsschemata eine wechselnde Zuordnung von realen Prozessorkernen 13 zu virtuellen Prozessorkernen 24 mehrerer unterschiedlicher virtueller Maschinen 15 erfolgen kann. Die virtuellen Maschinen 15 sind hier durch die Bezeichnun- gen VM1 , VM2, VM3 unterschieden, was eine beispielhafte Gesamtanzahl von X=3 ergibt. Die virtuelle Maschine VM1 kann beispielsweise die Verwal tung des Computersystems 11 durchführen und hierzu beispielsweise eine Software-Version des Hypervisorscheduler 26 und/oder das Anzeigesteuer programm 18 aufweisen. Um hierbei eine Echtzeitfähigkeit sicherzustellen und/oder eine garantierte Rechenleistung bereitzustellen, kann für jede der möglichen Zuordnungs schemata 27 vorgesehen sein, dass ein allen Zuordnungsschemata 27 ge meinsamer Zuordnungsanteil 32 vorgesehen ist, durch welchen den virtuel len Prozessorkernen 24 der virtuellen Maschine VM1 mit den Bezeichnungen VCPU0 und VCPU1 (diese sind nur beispielhaft angegeben) stets ein jewei liger realer Prozessorkern 13 (z.B. CPU0 und CPU1 ) zugeordnet ist.

Für den weiteren virtuellen Prozessorkern (VCPU2) der virtuellen Maschine VM1 und die virtuellen Prozessorkerne 24 der übrigen virtuellen Maschinen VM2 und VM3 kann hier ein Zuordnungswechsel zwischen den realen Pro zessorkernen 13 und den virtuellen Prozessorkernen 24 in Abhängigkeit vom aktiven Zuordnungsschema 27 vorgesehen sein.

So können beispielsweise den sechs virtuellen Prozessorkernen 24 (VCPU0 bis VCPU5) der virtuellen Maschine VM2 sechs mögliche reale Prozessor kerne 13 (CPU2 bis CPU7) zugeordnet werden, wobei die Anzahl der zuge ordneten realen CPU Prozessorkerne 13 je nach Zuordnungsschema 27 unterschiedlich sein kann. Auch für die vier virtuellen Prozessorkerne 24 (VCPU0 bis VCPU3) der virtuellen Maschine VM3 kann vorgesehen sein je nach Zuordnungsschema 27 eine bis vier reale Prozessorkerne 13 (in Fig. 2 die Prozessorkerne CPU4 bis CPU7) zuzuordnen.

Wenn ein realer Prozessorkern 13 einer oder mehreren virtueller Prozessor kernen 24 zugeordnet ist, werden Rechenoperationen des jeweiligen virtuel len Prozessorkerns 24 durch den zumindest einen zugeordneten realen Prozessorkern 13 ausgeführt oder realisiert. Das jeweilige Softwarepro gramm einer virtuellen Maschine 15 sieht dabei nur die virtuellen Prozessor kerne 24.

Die in Fig. 2 dargestellte Konstellation kann für die virtuelle Maschine VM1 die höchste Priorität vorsehen, das heißt eine Priorität von den virtuellen Maschinen VM2, VM3 ist geringer. Jedes Zuordnungsschema 27 kann in der aus dem Stand der Technik be kannt weise ausgestaltet sein. Allerdings ist aus dem Stand der Technik das Umschalten zwischen mehreren Zuordnungsschemata 27 mittels eines Hy- pervisorschedulers 26 nicht bekannt.

Das Umschalten kann nicht nur für die beschriebenen realen Prozessorkerne vorgesehen sein, sondern es kann eine Erweiterung dahingehend vorgese hen sein, dass durch die Zuordnungsschemata 27 auch zumindest eine GPU als virtuelle GPU in jeder der virtuellen Maschinen 15 bereitgestellt wird und eine reale GPU durch ein Zuordnungsschema 27 einer der virtuellen GPUs zugeordnet wird. Zusätzlich oder alternativ dazu kann eine Zuordnung durch ein Zuordnungsschema auch für eine weitere Rechenressource oder eine andere Rechenressource des Computersystems 11 vorgesehen sein, oder allgemein eine Hardwareressource, wie beispielsweise einen Hardware- Beschleuniger für eine Videodekodierung und/oder eine NPU. Diese sind dann auch jeweils als virtuelle Hardwareressource in den virtuellen Maschi nen 15 repräsentiert, um so eine Zuordnung einer realen Hardware- Ressource zu der virtuellen Ressource mittels eines Zuordnungsschemas und der Hypervisoreinrichtung 25 zu ermöglichen. Das Umschalten zwischen unterschiedlichen Zuordnungsschemata kann beispielsweise erfolgen, indem eine Verarbeitung von Programm Instruktionen auf einigen oder allen realen Prozessorkernen angehalten wird und eine Zuteilung der virtuellen Maschi nen zu den realen Prozessorkernen gemäß dem neuen Zuordnungsschema erfolgt. Danach kann die Verarbeitung in den realen Prozessorkernen wieder gestartet werden.

Insgesamt zeigen die Beispiele, wie durch die Erfindung durch einen Hyper- visorscheduler 26 eine Scheduling von virtuellen Maschinen 15 in Abhängig keit von einem Rechenbedarf für die Berechnung eines Bildinhalts 20 bereit gestellt werden kann.