-
Stand der Technik
-
Die Erfindung betrifft ein Verfahren zum Erzeugen einer Hypervisor-Einheit nach dem Oberbegriff des Anspruchs 1 sowie eine Hypervisor-Einheit nach dem Oberbegriff eines nebengeordneten Anspruchs.
-
Hypervisor-Einheiten sind aus dem Stand der Technik bekannt. Bei diesen wird eine Konfiguration während der Laufzeit der Hypervisor-Einheit vorgenommen. Das bedeutet, dass die bekannten Hypervisor-Einheiten während der Laufzeit dynamisch Objekte bzw. Instanzen für virtuelle Betriebsumgebungen erzeugen.
-
Des Weiteren sind im Allgemeinen eingebettete Systeme umfassend Mikrocontroller bekannt.
-
Offenbarung der Erfindung
-
Das der Erfindung zugrunde liegende Problem wird durch ein Verfahren nach dem Anspruch 1 sowie eine Hypervisor-Einheit nach einem nebengeordneten Anspruch gelöst. Vorteilhafte Weiterbildungen sind in den Unteransprüchen angegeben. Für die Erfindung wichtige Merkmale finden sich ferner in der nachfolgenden Beschreibung und in den Zeichnungen, wobei die Merkmale sowohl in Alleinstellung als auch in unterschiedlichen Kombinationen für die Erfindung wichtig sein können, ohne dass hierauf nochmals explizit hingewiesen wird.
-
Dadurch, dass bei dem Verfahren während der Übersetzungszeit in Abhängigkeit von Eigenschaften von Anwendungen und in Abhängigkeit von zumindest einer Eigenschaft des Steuergeräts die Hypervisor-Einheit erzeugt wird, kann vorteilhaft nur der Programm-Code zur Erzeugung der Hypervisor-Einheit verwendet werden, der auch tatsächlich während der Laufzeit benötigt wird. Dies bringt im Bereich der eingebetten Systeme, insbesondere bei Verwendung eines Mikrocontrollers, den besonderen Vorteil, dass die begrenzten Hardware-Resourcen bestmöglich ausgenutzt werden können. Insbesondere können Kosten gespart werden, da keine unnötig groß dimensionierten Prozessorkerne, Arbeitsspeicher, oder andere Hardware-Resourcen eingeplant werden müssen. Darüber hinaus kann vorteilhaft die Ausführungszeit reduziert werden, da bereits vor der Laufzeit der Hypervisor-Einheit die Eigenschaften der Anwendungen sowie die Eigenschaft des Steuergeräts bekannt sind und berücksichtigt werden.
-
Vorteilhaft wird die Konfiguration der Hypervisor-Einheit während der Laufzeit vermieden, womit Rechenzeit nicht der Hypervisor-Einheit sondern den Anwendungen zur Verfügung steht. Durch diesen eingesparten Virtualisierungsschritt während der Laufzeit lassen sich mit diesem Verfahren und mit der vorgestellten Hypervisor-Einheit die im Kraftfahrzeugbereich vorherrschenden Echtzeitanforderungen erfüllen. So kann garantiert werden, dass beispielsweise eine Motorsteuerung und eine Antiblockiersystem-Steuerung auf demselben Steuergerät sicher und zuverlässig ausgeführt werden.
-
Ein weiterer wesentlicher Vorteil besteht in der Möglichkeit der Reduktion von Steuergeräten im Kraftfahrzeug, wodurch insbesondere ein Verkabelungsaufwand stark reduziert werden kann. Außerdem wird durch das Vorsehen der Hypervisor-Einheit die Wiederverwendung von bereits bestehender Software ermöglicht. So kann bei der Migration von mehreren Steuergeräten auf ein einziges Steuergerät die Software der mehreren Steuergeräte wiederverwendet werden.
-
In einer vorteilhaften Ausführungsform des Verfahrens wird ein virtuelles Betriebsmittel während der Übersetzungszeit für ein erstes Betriebsmittel des Steuergeräts bereitgestellt. Durch das virtuelle Betriebsmittel können damit vorteilhaft tatsächliche bzw. echte Betriebsmittel des Steuergeräts, auf die von zwei Anwendungen zugegriffen wird, vorteilhaft virtualisiert werden.
-
In einer vorteilhaften Ausführungsform wird die Hypervisor-Einheit während der Übersetzungszeit derart erzeugt, dass während der Laufzeit nur die erste Anwendung direkt auf ein zweites Betriebsmittel zugreifen kann, wobei während der Laufzeit das zweite Betriebsmittel für die zweite Anwendung gesperrt ist. Dies geschieht in Abhängigkeit von der ersten, zweiten und dritten Eigenschaft. Damit kann vorteilhaft erreicht werden, dass eine exklusive Nutzung des zweiten Betriebsmittels durch die erste Anwendung gesichert ist und damit vorteilhaft nur Betriebsmittel während der Übersetzungszeit virtualisiert werden müssen, die während der Laufzeit von beiden Anwendungen verwendet werden.
-
Weitere Merkmale, Anwendungsmöglichkeiten und Vorteile der Erfindung ergeben sich aus der nachfolgenden Beschreibung von Ausführungsbeispielen der Erfindung, die in den Figuren der Zeichnung dargestellt sind. Hierbei bilden alle beschriebenen sowie dargestellten Merkmale allein für sich oder in beliebiger Kombination den Gegenstand der Erfindung, unabhängig von ihrer Zusammenfassung in den Patentansprüchen oder deren Rückbeziehung sowie unabhängig von ihrer Formulierung bzw. Darstellung in der Beschreibung bzw. in der Zeichnung. Für funktionsäquivalente Größen und Merkmale werden in allen Figuren auch bei unterschiedlichen Ausführungsformen die gleichen Bezugszeichen verwendet.
-
Nachfolgend werden beispielhaft Ausführungsformen der Erfindung unter Bezugnahme auf die Zeichnung erläutert. In der Zeichnung zeigen:
-
1 in schematischer Form drei Steuergeräte;
-
2 in schematischer Form eines der Steuergeräte; und
-
3 ein Verfahren zum Erzeugen einer Hypervisor-Einheit.
-
1 zeigt drei Steuergeräte 2, 4 und 6. Die Steuergeräte 2 und 4 sind Steuergeräte aus dem Stand der Technik und das Steuergerät 6 ein erfindungsgemäßes Steuergerät. Die Steuergeräte 2 und 4 umfassen jeweils einen einzigen Prozessor 8a und 8b. Steuergerätunabhängige Anwendungssoftware 10a und 10b wird über ein Betriebssystem 12a, 12b und steuergerätspezifische Basissoftware 14a und 14b auf dem jeweiligen Prozessor 8a, 8b ausgeführt. Die Steuergeräte 2 und 4 sind separat ausgeführt und stellen Funktionen wie beispielsweise eine Motorsteuerung, eine Getriebesteuerung oder eine Antiblockiersystem-Funktion bereit.
-
Das erfindungsgemäße Steuergerät 6 umfasst beispielsweise zwei Prozessorkerne 16a und 16b. Eine Hypervisor-Einheit 20 ist zwischen der Recheneinheit umfassend die Prozessorkerne 16a und 16b und der Anwendungssoftware 10, dem Betriebssystem 12 und der Basissoftware 14 angeordnet. Damit können vorteilhaft bereits vorhandene Softwarekomponenten wie die Anwendungssoftware 10, das Betriebssystem 12 sowie die Basissoftware 14 in dem Steuergerät 6 ohne Weiteres durch die Hypervisor-Einheit 20 weiterverwendet bzw. wiederverwendet werden. Darüber hinaus wird anstatt zweier Steuergeräte 2 und 4 nur ein Steuergerät 6 benötigt.
-
2 zeigt das Steuergerät 6 in schematischer Form. Eine Mikrocontroller-Einheit 22 des Steuergeräts 6 umfasst die Prozessorkerne 16a und 16b sowie eine Kommunikationsschnittstelle 24. Bei der Kommunikationsschnittstelle 24 handelt es sich beispielsweise um eine Ethernet-Schnittstelle, eine Flexray-Schnittstelle oder eine CAN-Schnittstelle (CAN: Controller Area Network).
-
Die Hypervisor-Einheit 20 weist ein virtuelles Betriebsmittel 26 auf, das die Kommunikationsschnittstelle 24 einer ersten Anwendung 30 und einer zweiten Anwendung 32 bereitstellt. Die erste Anwendung 30 umfasst die Anwendungssoftware 10a, das Betriebssystem 12a und die Basissoftware 14a. Die zweite Anwendung 32 umfasst die Anwendungssoftware 10b, das Betriebssystem 12b und die Basissoftware 14b. Die erste Anwendung 30 wird in einer ersten virtuellen Betriebsumgebung 34 ausgeführt. Die zweite Anwendungsform 30 wird in einer zweiten virtuellen Betriebsumgebung 36 ausgeführt. Hypervisor-Einheit 20 sorgt gemäß dem Balken 38 für eine zeitliche und räumliche Trennung hinsichtlich der Ausführung der beiden Anwendungen 30 und 32 auf der Mikrocontroller-Einheit 22 des Steuergeräts 6.
-
Das virtuelle Betriebsmittel 26 ist derart ausgestaltet, dass der Zugriff durch die Anwendungen 30, 32 auf das hinter dem virtuellen Betriebsmittel 26 stehende Betriebsmittel 24 gemäß einem Prioritätsscheduling-Verfahren durchgeführt wird. Aus Sicht der Anwendungen 30, 32 haben diese jeweils uneingeschränkten Zugriff auf ein exklusiv genutztes Betriebsmittel. Tatsächlich ist das Betriebsmittel 26 jedoch nur virtuell und regelt den Zugriff der Anwendungen 30 und 32 auf das reale Betriebsmittel 24. Hierbei bekommt jede Anwendung 30, 32 eine Periodendauer zugewiesen. In Abhängigkeit von der Periodendauer greifen die Anwendungen 30, 32 auf das reale, tatsächlich vorhandene Betriebsmittel 24 mittels des virtuellen Betriebsmittels 26 zu. Je kürzer die Periodendauer der Anwendung 30, 32 ist, desto höher ist deren Priorität. Eine häufig auszuführende Anwendung 30, 32 hat eine kurze Periodendauer und damit eine höhere Priorität. Somit kann eine Anwendung 30, 32 mit kurzer Periodendauer und/oder hoher Priorität eine Anwendung 30, 32 mit hoher Periodendauer und/oder geringer Priorität stets unterbrechen. Darüber hinaus sind jeder Anwendung 30, 32 zum Zugriff auf das reale, tatsächlich vorhandene Betriebsmittel 24 mittels des virtuellen Betriebsmittels 26 minimale Zeitscheiben in periodischen Zeitabständen zugewiesen, die eine minimale Zugriffszeit pro Zeitabstand der jeweiligen Anwendung 30, 32 auf das Betriebsmittel 24 sicherstellen. Durch die minimalen Zeitscheiben kann sichergestellt werden, dass die jeweilige Anwendung 30, 32 einen gesicherten Zugriff auf das Betriebsmittel 24 hat und nicht von einer anderen Anwendung 30, 32 ausgebremst wird.
-
Die Kommunikationsschnittstelle 24 wird auch als erstes Betriebsmittel des Steuergeräts bezeichnet. Zum Versenden von Daten und zum Zugriff auf die Kommunikationsschnittstelle 24 stellt das virtuelle Betriebsmittel 26 ein Arbitrierungsverfahren bereit, mittels dessen das virtuelle Betriebsmittel 26 den Zugriff der Anwendungen 30 und 32 auf die Kommunikationsschnittstelle 24 koordiniert. Zum Empfangen von Daten von der Kommunikationsschnittstelle 24 koordiniert das virtuelle Betriebsmittel 26 der Hypervisor-Einheit 20 den Empfang der Daten von der Kommunikationsschnittstelle 24 und das Versenden der Daten an die jeweilige Anwendung 30, 32.
-
Der erste Prozessorkern 16a der Mikrocontroller-Einheit 22 wird lediglich von der Anwendung 30 verwendet. Die Anwendung 30 greift direkt auf den Prozessorkern 16a zu. Die Hypervisor-Einheit 20 sorgt dafür, dass während der Laufzeit für die zweite Anwendung 32 der Zugriff auf den ersten Prozessorkern 16a gesperrt ist. Entsprechend sorgt die Hypervisor-Einheit 20 dafür, dass während der Laufzeit der Zugriff auf den zweiten Prozessorkern 16b durch die erste Anwendung 30 gesperrt ist.
-
Damit stellt die Hypervisor-Einheit 20 für ein von den zwei Anwendungen 30 und 32 gemeinsam genutztes ersten Betriebsmittel 24, ein virtuelles Betriebsmittel 26 zur Verfügung. Des Weiteren sperrt die Hypervisor-Einheit 20 für ein nur von der ersten Anwendung 30 genutztes zweites Betriebsmittel 16a dieses zweite Betriebsmittel 16a für die zweite Anwendung 32.
-
Das koordinierte Zugriffsverfahren bzw. Arbitrierungsverfahren des virtuellen Betriebsmittels 26 für die Anwendungen 30 und 32 ist beispielsweise ein Prioritätsscheduling, ein Round-Robin-Verfahren oder ein anderes Arbitrierungsverfahren. Anwendungen 30 und 32 können beispielsweise Anwendungen sein, die zuvor für jeweils einzelne Steuergeräte vorgesehen waren. Die Anwendungen 30 und 32 können beispielsweise wie in der 2 gezeigt ohne Änderungen übernommen werden, falls der entsprechende Prozessorkern 16a und 16b im Wesentlichen der gleiche ist, wie er zuvor auf dem jeweiligen Steuergerät vorhanden war.
-
Da benötigte Soll-Eigenschaften der Anwendungen 30 und 32, die auch als erste und zweite Eigenschaft bezeichnet werden, und die Ist-Eigenschaft des Steuergeräts 6, die auch als dritte Eigenschaft bezeichnet wird, bereits vor der Übersetzungszeit der Hypervisor-Einheit 20 bekannt sind, wird eine Hypervisor- Einheit 20 erzeugt, bei der nur Betriebsmittel wie die Kommunikationsschnittstelle 24 gemäß dem virtuellen Betriebsmittel 26 virtualisiert werden, die von zwei Anwendungen 30, 32 während der Laufzeit verwendet werden.
-
Basierend auf der 2 wird ein weiteres Ausführungsbeispiel erläutert. So umfasst die Mikrokontroller-Einheit 22 beispielsweise einen Prozessorkern 24 und zwei Kommunikationsschnittstellen 16a und 16b. Entsprechend würde das virtuelle Betriebsmittel 26 den Zugriff der Anwendungen 30, 32 auf den einen Prozessorkern 24 koordinieren, wohingegen auf die Kommunikationsschnittstellen 16a und 16b von den Anwendungen 30, 32 aus direkt zugegriffen werden kann.
-
Entsprechend sind weitere Ausführungsbeispiele denkbar, bei denen Betriebsmittel unterschiedlich ausgebildet sein können. Insbesondere können die jeweiligen Betriebsmittel während der Übersetzungszeit der Hypervisor-Einheit 20 in zwei Kategorien eingeteilt werden, wobei die erste Kategorie ein Betriebsmittel identifiziert, das von mehreren Anwendungen 30, 32 während der Laufzeit genutzt wird, und wobei die zweite Kategorie einen Direkt-Zugriff auf das jeweilige Betriebsmittel durch eine jeweilige Anwendung 30, 32 vorsieht. Für die erste Kategorie von Betriebsmitteln wird die Hypervisor-Einheit 20 dann während der Übersetzungszeit so erzeugt, dass für ein jeweiliges Betriebsmittel der ersten Kategorie ein entsprechendes virtuelle Betriebsmittel 26 durch die Hypervisor- Einheit 20 bereitgestellt wird und das hinter dem virtuellen Betriebsmittel 26 stehende tatsächliche Betriebsmittel während der Laufzeit von mehreren Anwendungen 30, 32 genutzt werden kann.
-
Selbstverständlich kann es sich bei den Betriebsmitteln 16a, 16b und 24 jeweils auch um einen Timer-Baustein, einen Analog-Digital-Wandler, beispielsweise mit zugeordnetem Sensor, einen Digital-Analog-Wandler, beispielsweise zur Erzeugung eines analogen Spannungs-/Stromsignals oder ein anderes Peripheriegerät handeln. Selbstverständlich kann es sich bei den Betriebsmitteln 16a, 16b und 24 auch um Betriebsmittel außerhalb der Mikrocontroller-Einheit 22 handeln, auf die die Mikrocontroller-Einheit 22 zugreifen kann.
-
3 zeigt in schematischer Form ein Verfahren zum Erzeugen der Hypervisor- Einheit 20. Mittels geeigneter Editorwerkzeuge 40 wird eine Systembeschreibung 42 geschaffen bzw. editiert. Die Systembeschreibung 42 umfasst insbesondere die Eigenschaften der Anwendungen 30 und 32 sowie die Eigenschaften des Steuergeräts 6 bzw. der Mikrocontroller-Einheit 22. Die Systembeschreibung 42 wird mittels eines Konsistenzprüfers 44 während der Übersetzungszeit daraufhin überprüft, ob ein Widerspruch zwischen der ersten Eigenschaft, der zweiten Eigenschaft und der dritten Eigenschaft existiert. Dieser Widerspruch wird gemäß einem Bericht 46 protokolliert. Anhand des Berichts kann die Systembeschreibung 42 entsprechend angepasst werden. Die Systembeschreibung 42 ist beispielsweise als Text oder XML-Datei (XML: extended mark-up language) hinterlegt. 3 beschreibt den Prozess des Erzeugens der Hypervisor-Einheit 20 während der Übersetzungszeit.
-
Im Optimierungsschritt 48 können beispielsweise Speicherbereiche zusammengelegt werden. In einem Code-Generierungsschritt 50 wird ein Programm-Code 51 in Abhängigkeit von Code-Templates 52 generiert. Die Code-Templates 52 umfassen hierbei einzelne vorgefertigte Code-Abschnitte, die in Abhängigkeit von den Anwendungen 30 und 32 bzw. der ersten und zweiten Eigenschaft und in Abhängigkeit von der dritten Eigenschaft generiert werden. Mittels weiterer Werkzeuge 54 wird der Programmcode 51 kompiliert, gelinkt und damit die Hypervisor-Einheit 20 erzeugt.
-
Die Systembeschreibung 42 umfasst bezüglich der Anwendungen 30 und 32 jeweilige Soll-Anforderungen in Form der ersten und zweiten Eigenschaft. Darin umfasst die Systembeschreibung 42 eine Ist-Konfiguration gemäß der dritten Eigenschaft des Steuergeräts 6 bzw. der Mikrocontroller-Einheit 22.