[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

DE102014209592A1 - Verfahren zum Erzeugen einer Hypervisor-Einheit und Hypervisor-Einheit - Google Patents

Verfahren zum Erzeugen einer Hypervisor-Einheit und Hypervisor-Einheit Download PDF

Info

Publication number
DE102014209592A1
DE102014209592A1 DE102014209592.1A DE102014209592A DE102014209592A1 DE 102014209592 A1 DE102014209592 A1 DE 102014209592A1 DE 102014209592 A DE102014209592 A DE 102014209592A DE 102014209592 A1 DE102014209592 A1 DE 102014209592A1
Authority
DE
Germany
Prior art keywords
resource
unit
during
hypervisor
applications
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102014209592.1A
Other languages
English (en)
Inventor
Gary Morgan
Andrew Borg
Jochen Haerdtlein
Holger Broede
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102014209592.1A priority Critical patent/DE102014209592A1/de
Priority to CN201580025641.5A priority patent/CN106462440B/zh
Priority to PCT/EP2015/061141 priority patent/WO2015177226A1/de
Priority to US15/309,638 priority patent/US10430231B2/en
Publication of DE102014209592A1 publication Critical patent/DE102014209592A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W50/00Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Automation & Control Theory (AREA)
  • Human Computer Interaction (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

Es wird ein Verfahren zum Erzeugen einer Hypervisor-Einheit (20) für ein Steuergerät (6) beschrieben. Die Hypervisor-Einheit (20) ist dazu ausgebildet, auf dem Steuergerät (6) während einer Laufzeit zwei Anwendungen auszuführen. Die Hypervisor-Einheit (20) wird während einer Übersetzungszeit in Abhängigkeit von einer ersten Eigenschaft der ersten Anwendung, in Abhängigkeit von einer zweiten Eigenschaft der zweiten Anwendung und in Abhängigkeit von einer dritten Eigenschaft des Steuergeräts (6) erzeugt.

Description

  • 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.

Claims (10)

  1. Verfahren zum Erzeugen einer Hypervisor-Einheit (20) für ein Steuergerät (6), insbesondere eines Kraftfahrzeugs, zu einer Übersetzungszeit, wobei die Hypervisor-Einheit (20) dazu ausgebildet ist, auf dem Steuergerät (6) während einer Laufzeit zwei Anwendungen (30, 32) auszuführen, dadurch gekennzeichnet, dass die Hypervisor-Einheit (20) während der Übersetzungszeit in Abhängigkeit von einer ersten Eigenschaft der ersten Anwendung (30), in Abhängigkeit von einer zweiten Eigenschaft der zweiten Anwendung (32) und in Abhängigkeit von einer dritten Eigenschaft des Steuergeräts (6) erzeugt wird.
  2. Verfahren nach Anspruch 1, wobei während der Übersetzungszeit in Abhängigkeit von der ersten, zweiten und dritten Eigenschaft ein erstes Betriebsmittel (24) des Steuergeräts (6) ermittelt wird, das während der Laufzeit von der ersten und der zweiten Anwendung (30, 32) verwendbar ist, wobei während der Übersetzungszeit für das erstes Betriebsmittel (24) ein virtuelles Betriebsmittel (26) erzeugt wird, das während der Laufzeit ein koordiniertes Arbitierungsverfahren, insbesondere ein Prioritätsscheduling- Verfahren, zum Zugriff auf das erste Betriebsmittel (24) bereitstellt.
  3. Verfahren nach Anspruch 1 oder 2, wobei während der Übersetzungszeit in Abhängigkeit von der ersten, zweiten und dritten Eigenschaft ein zweites Betriebsmittel (16a) ermittelt wird, das während der Laufzeit nur von der ersten Anwendung (30) benutzbar ist, wobei während der Übersetzungszeit die Hypervisor-Einheit (20) derart erzeugt wird, dass während der Laufzeit nur die erste der Anwendungen (30) direkt auf das zweite Betriebsmittel (16a) zugreifen kann und während der Laufzeit für die zweite Anwendung (32) der Zugriff auf das zweite Betriebsmittel (16a) gesperrt ist.
  4. Verfahren nach einem der vorstehenden Ansprüche, wobei während der Übersetzungszeit () ein Widerspruch zwischen der ersten Eigenschaft der zweiten Eigenschaft und der dritten Eigenschaft ermittelt wird, und wobei der Widerspruch protokolliert wird.
  5. Verfahren nach einem der vorstehenden Ansprüche, wobei die erste und/oder zweite Eigenschaft ein Soll-Prozessor-Typ und/oder eine Soll-Anzahl von Prozessoren und/oder eine Soll-Speicheradresse und/oder ein Soll-Speicherbereich und/oder eine Soll-Interrupt-Konfiguration und/oder eine Soll-Kommunikationsschnittstelle und/oder ein Soll-Peripheriegerät umfasst, wobei die dritte Eigenschaft ein Ist-Prozessor-Typ und/oder eine Ist-Anzahl von Prozessoren und/oder eine Ist-Speicheradresse und/oder ein Ist-Speicherbereich und/oder eine Ist-Interrupt-Konfiguration und/oder eine Ist-Kommunikationsschnittstelle und/oder ein Ist-Peripheriegerät umfasst.
  6. Hypervisor-Einheit (20) für ein Steuergerät (6), insbesondere für ein Kraftfahrzeug, wobei die Hypervisor-Einheit (20) dazu ausgebildet ist, auf dem Steuergerät (6) während einer Laufzeit zwei Anwendungen (30, 32) auszuführen, dadurch gekennzeichnet, dass die Hypervisor-Einheit (20) für ein von den zwei Anwendungen (30, 32) gemeinsam genutztes erstes Betriebsmittel (24) ein virtuelles Betriebsmittel (26) zur Verfügung stellt, und dass die Hypervisor-Einheit (20) für ein nur von der ersten Anwendungen (30) genutztes zweites Betriebsmittel (16a) dieses zweite Betriebsmittel (16a) für die zweite Anwendung (32) sperrt.
  7. Hypervisor-Einheit (20) nach Anspruch 6, wobei die erste Anwendung (30) direkt auf das zweite Betriebsmittel (16a) zugreift.
  8. Hypervisor-Einheit (20) nach Anspruch 6 oder 7, wobei die erste und zweite Anwendung (30, 32) mittels des virtuellen Betriebsmittels (26) der Hypervisor-Einheit (20) gemäß einem koordinierten Arbitierungsverfahren, insbesondere einem Prioritätsscheduling-Verfahren, auf das erste Betriebsmittel (24) zugreifen.
  9. Hypervisor-Einheit (20) nach Anspruch 6, wobei das zweite Betriebsmittel (16a) ein erster Prozessorkern ist und wobei das erste Betriebsmittel (24) eine Kommunikationsschnittstelle, insbesondere eine CAN-, Flexray- oder Ethernet-Schnittstelle, ist, oder wobei das zweite Betriebsmittel (16a) eine erste Kommunikationsschnittstelle, insbesondere eine CAN-, Flexray- oder Ethernet-Schnittstelle, ist und wobei das erste Betriebsmittel (24) ein erster Prozessorkern ist.
  10. Steuergerät (6) für ein Kraftfahrzeug, wobei das Steuergerät (6) eine digitale Recheneinheit, insbesondere einen Mikrocontroller (22) aufweist, auf der die Hypervisor-Einheit (20) nach den Ansprüchen 6 bis 9 ausführbar ist.
DE102014209592.1A 2014-05-20 2014-05-20 Verfahren zum Erzeugen einer Hypervisor-Einheit und Hypervisor-Einheit Pending DE102014209592A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102014209592.1A DE102014209592A1 (de) 2014-05-20 2014-05-20 Verfahren zum Erzeugen einer Hypervisor-Einheit und Hypervisor-Einheit
CN201580025641.5A CN106462440B (zh) 2014-05-20 2015-05-20 用于产生用于嵌入式系统的管理程序单元的方法
PCT/EP2015/061141 WO2015177226A1 (de) 2014-05-20 2015-05-20 Verfahren zum erzeugen einer hypervisor-einheit für eingebettete systeme
US15/309,638 US10430231B2 (en) 2014-05-20 2015-05-20 Method for creating a hypervisor unit for embedded systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014209592.1A DE102014209592A1 (de) 2014-05-20 2014-05-20 Verfahren zum Erzeugen einer Hypervisor-Einheit und Hypervisor-Einheit

Publications (1)

Publication Number Publication Date
DE102014209592A1 true DE102014209592A1 (de) 2015-11-26

Family

ID=53267347

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014209592.1A Pending DE102014209592A1 (de) 2014-05-20 2014-05-20 Verfahren zum Erzeugen einer Hypervisor-Einheit und Hypervisor-Einheit

Country Status (4)

Country Link
US (1) US10430231B2 (de)
CN (1) CN106462440B (de)
DE (1) DE102014209592A1 (de)
WO (1) WO2015177226A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017100118A1 (de) 2017-01-04 2018-07-05 Connaught Electronics Ltd. Skalierbares Steuersystem für ein Kraftfahrzeug

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7757231B2 (en) 2004-12-10 2010-07-13 Intel Corporation System and method to deprivilege components of a virtual machine monitor
US8146107B2 (en) * 2007-07-10 2012-03-27 Mitel Networks Corporation Virtual machine environment for interfacing a real time operating system environment with a native host operating system
EP2255291B1 (de) * 2008-02-18 2014-04-16 Hewlett-Packard Development Company, L.P. Systeme und verfahren zum kommunizierenden koppeln einer hostdatenverarbeitungseinrichtung und einer peripherieeinrichtung
US8601129B2 (en) * 2010-06-30 2013-12-03 International Business Machines Corporation Hypervisor selection for hosting a virtual machine image

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017100118A1 (de) 2017-01-04 2018-07-05 Connaught Electronics Ltd. Skalierbares Steuersystem für ein Kraftfahrzeug
WO2018127394A1 (en) 2017-01-04 2018-07-12 Connaught Electronics Ltd. Scalable control system for a motor vehicle

Also Published As

Publication number Publication date
US10430231B2 (en) 2019-10-01
CN106462440B (zh) 2020-02-18
WO2015177226A1 (de) 2015-11-26
US20170161097A1 (en) 2017-06-08
CN106462440A (zh) 2017-02-22

Similar Documents

Publication Publication Date Title
DE102014201682A1 (de) Verfahren zur Koexistenz von Software mit verschiedenen Sicherheitsstufen in einem Multicore-Prozessorsystem
DE112017007656T5 (de) Verschobene aktualisierung von datenbank-hashcode in einer blockchain
DE102018110018A1 (de) Verfahren zum Bereitstellen eines integrierten Prozesses für die Steuergerätentwicklung und Simulationsvorrichtung für die Steuergerätentwicklung
DE102012011584A1 (de) Ressourcen-Managementsystem fürAutomatisierungsanlagen
EP3080668B1 (de) Verfahren zur beeinflussung eines steuerprogramms eines steuergeräts
DE102012016539A1 (de) Konfigurationstechnik für ein Steuergerät mit miteinander kommunizierenden Anwendungen
EP3417373B1 (de) Verfahren und vorrichtung zum betreiben eines steuergeräts
DE102018110020A1 (de) Verfahren zum Erzeugen eines auf einem Testgerät ausführbaren Modells eines technischen Systems und Testgerät
EP3015992B1 (de) Verfahren zur verwaltung priorisierter eingangsdaten
DE102020123506A1 (de) Verfahren zur Erzeugung von Quellcode mit servicebasierter Kommunikation
DE102011107646A1 (de) Verfahren und System zur dynamischen Verteilung von Programmfunktionen in verteilten Steuerungssystemen
DE102015100566A1 (de) Verfahren und leichter Mechanismus für gemischte kritische Anwendungen
DE102010009994A1 (de) Verfahren zur Optimierung eines Steuerungsprogramms für Aktuatoren
DE102014209592A1 (de) Verfahren zum Erzeugen einer Hypervisor-Einheit und Hypervisor-Einheit
EP3705993B1 (de) System und verfahren zum auffinden und identifizieren von rechenknoten in einem netzwerk
DE102018123563B4 (de) Verfahren zur Zwischenkernkommunikation in einem Mehrkernprozessor
DE102016219449A1 (de) Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeugverbaute Einrichtung
DE102017120013A1 (de) Verfahren zur Konfiguration eines zum Testen eines elektronischen Steuergeräts eingerichteten Testgeräts sowie Konfigurationssystem
DE102014016884A1 (de) Datenflußsteuerung und Loadbalancing in Fahrzeugsteuergeräten mit Mehrkernprozessoren
DE102019214160A1 (de) Verfahren und Vorrichtung zum Automatisieren einer Fahrfunktion
EP2164022A1 (de) Verfahren zur Einräumung einer Zugriffsberechtigung auf ein rechnerbasiertes Objekt in einem Automatisierungssystem, Computerprogramm und Automatisierungssystem
EP4199553A1 (de) Verfahren und testeinheit zur testausführung virtueller tests
WO2017153411A1 (de) Verfahren zum betreiben eines steuergeräts für ein kraftfahrzeug
DE102021120596A1 (de) Verfahren zur Übergabe von mindestens einem Parameterwert eines ersten Simulationsmodells an ein zweites Simulationsmodell während einer Simulation
DE102022109055A1 (de) Verfahren zur Dokumentation von auf einem Rechnerkern eines Prozessors ausgeführten Rechenschritten eines Echtzeitsystems, Prozessor und Echtzeitsystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed