-
Stand der Technik
-
Es gibt Steuergeräte, die Teilfunktionen eines technischen Systems, z.B. eines Fahrzeugs, steuern. Diese steuern jeweils bestimmte Teilfunktionen und/oder zugehörige Applikationen.
-
Offenbarung der Erfindung
-
Bevorzugte Ausführungsformen beziehen sich auf ein Verfahren, beispielsweise ein computerimplementiertes Verfahren, zum Betreiben einer Vorrichtung zur Steuerung eines technischen Systems, insbesondere eines Kraftfahrzeugs bzw. für ein Kraftfahrzug, aufweisend: Verwenden eines Mechanismus, der insbesondere in wenigstens einem Modul, z.B. Hardware-Modul, bzw. einer Peripheriekomponente implementiert ist, mittels dem Aufträge von mehreren Partitionen bzw. Applikationen, beispielsweise durch die Vorrichtung ausführbare Applikationen, platziert werden können, die insbesondere jeweils von anderen Partitionen bzw. Applikationen nicht überschrieben oder beeinflusst werden können.
-
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die Vorrichtung wenigstens ein Modul aufweist, wobei das wenigstens eine Modul eine Schnittstelle zum Datenaustausch mit den Partitionen bzw. Applikationen aufweist, wobei die Schnittstelle einen ersten Speicherbereich aufweist, zum Datenaustausch mit einer ersten Applikation bzw. mit einer ersten Partition, die mit der ersten Applikation assoziiert ist, und wobei die Schnittstelle einen zweiten Speicherbereich aufweist, zum Datenaustausch mit einer zweiten Applikation bzw. mit einer zweiten Partition, die mit der zweiten Applikation assoziiert ist, wobei beispielsweise der erste Speicherbereich und/oder der zweite Speicherbereich jeweils mit einem vorgebbaren Adressbereich beispielsweise der Vorrichtung bzw. einer Recheneinrichtung der Vorrichtung assoziierbar ist.
-
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das wenigstens eine Modul ein Hardware-Sicherheitsmodul oder ein Peripheriemodul der Vorrichtung ist.
-
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass der erste Speicherbereich nur durch die erste Applikation beschreibbar bzw. beinflussbar ist und/oder dass, beispielsweise nur, die erste Applikation dazu ausgebildet ist, den ersten Speicherbereich zu beschreiben bzw. zu beeinflussen.
-
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass der zweite Speicherbereich nur durch die zweite Applikation beschreibbar bzw. beinflussbar ist und/oder dass, beispielsweise nur, die zweite Applikation dazu ausgebildet ist, den zweiten Speicherbereich zu beschreiben bzw. zu beeinflussen.
-
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter wenigstens eines der folgenden Elemente aufweist: a) Beschreiben des ersten Speicherbereichs der Schnittstelle des wenigstens einen Moduls mit ersten Daten mittels der ersten Applikation, b) Beschreiben des zweiten Speicherbereichs der Schnittstelle des wenigstens einen Moduls mit zweiten Daten mittels der zweiten Applikation. Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die ersten und/oder zweiten Daten z.B. mit Aufgaben assoziiert sind, die das Modul für die erste und/oder zweite Applikation ausführen soll, wobei im beispielhaften Falle eines Hardware-Sicherheitsmoduls beispielsweise das Ausführen einer kryptografischen Funktion (z.B. Bildung eines Hashwerts, Verschlüsseln und/oder Entschlüsseln von Daten) Gegenstand einer jeweiligen Aufgabe sein kann.
-
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Verarbeiten, beispielsweise deterministisches Verarbeiten, von Daten des ersten Speicherbereichs der Schnittstelle, und/oder Verarbeiten, beispielsweise deterministisches Verarbeiten, von Daten des zweiten Speicherbereichs der Schnittstelle.
-
Bei weiteren bevorzugten Ausführungsformen wird unter dem deterministischen Verarbeiten ein Verarbeiten innerhalb einer festen und/oder vorhersagbaren Verarbeitungszeit verstanden. Auf diese Weise können die Applikationen bei weiteren bevorzugten Ausführungsformen auch bei Nutzung des wenigstens einen Moduls (z.B. im Sinne einer unter mehreren Applikationen aufzuteilenden Ressource) ihrerseits einen deterministischen Betrieb gewährleisten.
-
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das, beispielsweise deterministische, Verarbeiten aufweist: Verarbeiten der Daten des ersten Speicherbereichs und/oder der Daten des zweiten Speicherbereichs bzw. Verarbeiten von mit den Daten des ersten Speicherbereichs und/oder den Daten des zweiten Speicherbereichs assoziierten Aufgaben basierend auf einem vorgebbaren Verfahren, wobei beispielsweise das vorgebbare Verfahren ein deterministisches Verarbeiten der Daten bzw. ein deterministisches Abarbeiten der assoziierten Aufgaben gewährleistet, wobei das vorgebbare Verfahren beispielsweise ein Round-Robin-Verfahren ist.
Weitere bevorzugte Ausführungsformen beziehen sich auf eine Vorrichtung zur Ausführung des Verfahrens gemäß den Ausführungsformen.
-
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die Vorrichtung aufweist: eine wenigstens einen Rechenkern aufweisende Recheneinrichtung („Computer“), eine der Recheneinrichtung zugeordnete Speichereinrichtung zur zumindest zeitweisen Speicherung wenigstens eines der folgenden Elemente: a) Daten, b) Computerprogramm, insbesondere zur Ausführung eines Verfahrens gemäß den Ausführungsformen. Bei weiteren bevorzugten Ausführungsformen kann das Computerprogramm auch wenigstens eine Anwendung (nachfolgend auch als „Applikation“ bezeichnet) charakterisieren, die auf der Recheneinrichtung ausgeführt wird, z.B. zur Steuerung des technischen Systems.
-
Bei weiteren bevorzugten Ausführungsformen weist die Vorrichtung bzw. die Recheneinrichtung mehrere Rechenkerne auf.
-
Bei weiteren bevorzugten Ausführungsformen weist die Speichereinrichtung einen flüchtigen Speicher (z.B. Arbeitsspeicher (RAM)) auf, und/oder einen nichtflüchtigen Speicher (z.B. Flash-EEPROM).
-
Bei weiteren bevorzugten Ausführungsformen weist die Recheneinrichtung wenigstens eines der folgenden Elemente auf: Mikroprozessor (µP), Mikrocontroller (µC), anwendungsspezifischer integrierter Schaltkreis (ASIC), System on Chip (SoC), programmierbarer Logikbaustein (z.B. FPGA, field programmable gate array), Hardwareschaltung, oder beliebige Kombinationen hieraus.
-
Weitere bevorzugte Ausführungsformen beziehen sich auf ein computerlesbares Speichermedium, umfassend Befehle, die bei der Ausführung durch einen Computer diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.
-
Weitere bevorzugte Ausführungsformen beziehen sich auf ein Computerprogramm, umfassend Befehle, die bei der Ausführung des Programms durch einen Computer diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.
-
Weitere bevorzugte Ausführungsformen beziehen sich auf ein Datenträgersignal, das das Computerprogramm gemäß den Ausführungsformen charakterisiert und/oder überträgt. Das Datenträgersignal ist beispielsweise über eine optionale Datenschnittstelle der Vorrichtung empfangbar.
-
Weitere bevorzugte Ausführungsformen beziehen sich auf ein Verfahren und eine Vorrichtung zur Steuerung eines technischen Systems, z.B. eines Fahrzeugs, bei dem in wenigstens einem Hardware-Modul bzw. einer Peripheriekomponente ein Mechanismus, bevorzugt im Interface (Schnittstelle) des Moduls, implementiert wird, mittels dem Aufträge von mehreren Partitionen bzw. Applikationen platziert werden können, die insbesondere jeweils von anderen Partitionen nicht überschrieben oder beeinflusst werden können. Bei weiteren bevorzugten Ausführungsformen kann der Mechanismus auch als „Transfer Window(s)“ bezeichnet werden.
-
Bei weiteren bevorzugten Ausführungsformen ist das HW-Modul (bzw. eine Steuerung des Moduls wie z.B. ein Mikrocontroller des Moduls) bzw. die Peripheriekomponente dazu ausgebildet, diese Aufträge gemäß einer vorgegebenen Regel, z.B. in einem Round Robin Verfahren, abzuarbeiten, wodurch vorteilhaft für die (externen) Applikationen ein deterministisches Zeitverhalten dargestellt wird.
-
Weitere bevorzugte Ausführungsformen sehen eine Implementierung von Transfer Windows in wenigstens einem HW-Modul mit wenigstens einem der folgenden Aspekte vor:
- a) Der Adressbereich des Transfer Window kann wahlweise verschiedenen Applikationen/Partitionen zugeordnet werden,
- b) In dem Modul werden, z.B. mittels SW, nach einem vorgebbaren Verfahren, z.B. einem Round-Robin-Verfahren, die Aufgaben abgearbeitet.
-
Weitere bevorzugte Ausführungsformen beziehen sich auf eine Verwendung des Verfahrens gemäß den Ausführungsformen und/oder der Vorrichtung gemäß den Ausführungsformen und/oder des computerlesbaren Speichermediums gemäß den Ausführungsformen und/oder des Computerprogramms gemäß den Ausführungsformen und/oder des Datenträgersignals gemäß den Ausführungsformen für wenigstens eines der folgenden Elemente: a) Ermöglichen eines deterministischen Laufzeitverhaltens wenigstens mancher, bevorzugt aller, Anwendungen der Vorrichtung, b) Vermeidung einer neuen Homologation für eine erste Anwendung, insbesondere bei dem Verändern wenigstens einer weiteren Anwendung.
-
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. Dabei bilden alle beschriebenen oder dargestellten Merkmale für sich oder in beliebiger Kombination den Gegenstand der Erfindung, unabhängig von ihrer Zusammenfassung in den Ansprüchen oder deren Rückbeziehung sowie unabhängig von ihrer Formulierung bzw. Darstellung in der Beschreibung bzw. in der Zeichnung.
-
In der Zeichnung zeigt:
- 1 schematisch ein vereinfachtes Blockdiagramm eines technischen Systems gemäß bevorzugten Ausführungsformen,
- 2 schematisch ein vereinfachtes Blockdiagramm einer Vorrichtung gemäß weiteren bevorzugten Ausführungsformen,
- 3A schematisch ein vereinfachtes Flussdiagramm mit Bezug auf Verfahrensaspekte gemäß weiteren bevorzugten Ausführungsformen,
- 3B, 3C, 3D, 3E, 3F, 3G, 3H, 3I jeweils schematisch ein vereinfachtes Flussdiagramm mit Bezug auf Verfahrensaspekte gemäß weiteren bevorzugten Ausführungsformen, und
- 4A schematisch ein vereinfachtes Flussdiagramm gemäß weiteren bevorzugten Ausführungsformen,
- 4B schematisch ein vereinfachtes Flussdiagramm gemäß weiteren bevorzugten Ausführungsformen, und
- 5 schematisch ein vereinfachtes Blockdiagramm gemäß weiteren bevorzugten Ausführungsformen.
-
Bevorzugte Ausführungsformen beziehen sich auf Verfahren und/oder eine Vorrichtung 200 zur Steuerung eines technischen Systems 1, z.B. eines Fahrzeugs 1, insbesondere Kraftfahrzeugs, vgl. 1.
-
Bei weiteren bevorzugten Ausführungsformen, vgl. 2, ist vorgesehen, dass die Vorrichtung 200 aufweist: eine wenigstens einen (vorliegend z.B. drei) Rechenkern(e) 202a, 202b, 202c aufweisende Recheneinrichtung („Computer“) 202, eine der Recheneinrichtung 202 zugeordnete Speichereinrichtung 204 zur zumindest zeitweisen Speicherung wenigstens eines der folgenden Elemente: a) Daten DAT, b) Computerprogramm PRG, insbesondere zur Ausführung eines Verfahrens gemäß den Ausführungsformen. Bei weiteren bevorzugten Ausführungsformen kann das Computerprogramm PRG auch wenigstens eine Anwendung (nachfolgend auch als „Applikation“ bezeichnet) APP1, APP2, APP3 charakterisieren, die zumindest zeitweise auf der Recheneinrichtung 202 ausgeführt wird, z.B. zur Steuerung des technischen Systems 1 oder von Komponenten (z.B. Bremssystem, Brennkraftmaschine) hiervon.
-
Bei weiteren bevorzugten Ausführungsformen weist die Vorrichtung 200 bzw. die Recheneinrichtung 202 mehrere Rechenkerne 202a, 202b, 202c auf. Mehr als die in 1 beispielhaft abgebildeten drei Rechenkerne 202a, 202b, 202c sind bei weiteren bevorzugten Ausführungsformen auch möglich.
-
Bei weiteren bevorzugten Ausführungsformen weist die Speichereinrichtung 204 einen flüchtigen Speicher 204a (z.B. Arbeitsspeicher (RAM)) auf, und/oder einen nichtflüchtigen (NVM-) Speicher 204b (z.B. Flash-EEPROM).
-
Bei weiteren bevorzugten Ausführungsformen weist die Recheneinrichtung 202 wenigstens eines der folgenden Elemente auf bzw. ist als wenigstens eines dieser Elemente ausgebildet: Mikroprozessor (µP), Mikrocontroller (µC), anwendungsspezifischer integrierter Schaltkreis (ASIC), System on Chip (SoC), programmierbarer Logikbaustein (z.B. FPGA, field programmable gate array), Hardwareschaltung, oder beliebige Kombinationen hieraus.
-
Weitere bevorzugte Ausführungsformen beziehen sich auf ein computerlesbares Speichermedium SM, umfassend Befehle PRG, die bei der Ausführung durch einen Computer 202 diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.
-
Weitere bevorzugte Ausführungsformen beziehen sich auf ein Computerprogramm PRG, umfassend Befehle, die bei der Ausführung des Programms durch einen Computer 202 diesen veranlassen, das Verfahren gemäß den Ausführungsformen auszuführen.
-
Weitere bevorzugte Ausführungsformen beziehen sich auf ein Datenträgersignal DCS, das das Computerprogramm PRG gemäß den Ausführungsformen charakterisiert und/oder überträgt. Das Datenträgersignal DCS ist beispielsweise über eine optionale Datenschnittstelle 206 der Vorrichtung 200 empfangbar.
-
Weitere bevorzugte Ausführungsformen, vgl. 31, beziehen sich auf ein Verfahren, beispielsweise ein computerimplementiertes Verfahren, zum Betreiben einer Vorrichtung 200 zur Steuerung eines technischen Systems, insbesondere eines Kraftfahrzeugs 1 bzw. für ein Kraftfahrzug 1, aufweisend: Verwenden 150 eines Mechanismus, der insbesondere in wenigstens einem Modul HSM, z.B. Hardware-Modul, bzw. einer Peripheriekomponente 208 implementiert ist, mittels dem Aufträge von mehreren Partitionen bzw. Applikationen APP1, APP2, beispielsweise durch die Vorrichtung 200 ausführbare Applikationen APP1, APP2, platziert werden können, die insbesondere jeweils von anderen Partitionen bzw. Applikationen nicht überschrieben oder beeinflusst werden können.
-
Bei weiteren bevorzugten Ausführungsformen, 5, ist vorgesehen, dass die Vorrichtung 200 wenigstens ein Modul HSM aufweist, wobei das wenigstens eine Modul HSM eine Schnittstelle IF zum Datenaustausch mit den Partitionen bzw. Applikationen APP1, APP2 aufweist, wobei die Schnittstelle IF einen ersten Speicherbereich IF-APP1 aufweist, zum Datenaustausch mit einer ersten Applikation APP1 bzw. mit einer ersten Partition (nicht gezeigt) der Vorrichtung 200, die mit der ersten Applikation APP1 assoziiert ist, wobei die Schnittstelle IF einen zweiten Speicherbereich IF-APP2 aufweist, zum Datenaustausch mit einer zweiten Applikation APP2 bzw. mit einer zweiten Partition, die mit der zweiten Applikation APP2 assoziiert ist, wobei beispielsweise der erste Speicherbereich IF-APP1 und/oder der zweite Speicherbereich IF-APP2 jeweils mit einem vorgebbaren Adressbereich beispielsweise der Vorrichtung 200 bzw. einer Recheneinrichtung 202 der Vorrichtung 200 assoziierbar ist.
-
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das wenigstens eine Modul HSM ein Hardware-Sicherheitsmodul oder ein Peripheriemodul der Vorrichtung 200 ist.
-
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass der erste Speicherbereich IF-APP1 nur durch die erste Applikation APP1 beschreibbar bzw. beinflussbar ist und/oder dass, beispielsweise nur, die erste Applikation APP1 dazu ausgebildet ist, den ersten Speicherbereich IF-APP1 zu beschreiben bzw. zu beeinflussen. Dies kann bei weiteren bevorzugten Ausführungsformen beispielsweise dadurch erreicht werden, dass der ersten Applikation APP1 ein Adressbereich zum Datenaustausch mit dem Modul HSM zugewiesen wird, der dem ersten Speicherbereich IF-APP1 entspricht.
-
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass der zweite Speicherbereich IF-APP2 nur durch die zweite Applikation APP2 beschreibbar bzw. beinflussbar ist und/oder dass, beispielsweise nur, die zweite Applikation APP2 dazu ausgebildet ist, den zweiten Speicherbereich IF-APP2 zu beschreiben bzw. zu beeinflussen. Dies kann bei weiteren bevorzugten Ausführungsformen beispielsweise dadurch erreicht werden, dass der zweiten Applikation APP2 ein Adressbereich zum Datenaustausch mit dem Modul HSM zugewiesen wird, der dem zweiten Speicherbereich IF-APP2 entspricht.
-
Bei weiteren bevorzugten Ausführungsformen, 4A, ist vorgesehen, dass das Verfahren weiter wenigstens eines der folgenden Elemente aufweist: a) Beschreiben 1500 des ersten Speicherbereichs IF-APP1 der Schnittstelle IF des wenigstens einen Moduls HSM mit ersten Daten DAT1 mittels der ersten Applikation APP1, b) Beschreiben 1502 des zweiten Speicherbereichs IF-APP2 der Schnittstelle IF des wenigstens einen Moduls HSM mit zweiten Daten DAT2 mittels der zweiten Applikation APP2.
-
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die ersten und/oder zweiten Daten DAT1, DAT2 z.B. mit Aufgaben AUFG1, AUFG2 (5) assoziiert sind, die das Modul HSM für die erste und/oder zweite Applikation APP1, APP2 ausführen soll, wobei im beispielhaften Falle eines Hardware-Sicherheitsmoduls HSM beispielsweise das Ausführen einer kryptografischen Funktion (z.B. Bildung eines Hashwerts, Verschlüsseln und/oder Entschlüsseln von Daten) Gegenstand einer jeweiligen Aufgabe AUFG1, AUFG2 sein kann.
-
Bei weiteren bevorzugten Ausführungsformen, 4B, ist vorgesehen, dass das Verfahren weiter aufweist: Verarbeiten 1510, beispielsweise deterministisches Verarbeiten 1510, von Daten DAT1 des ersten Speicherbereichs IF-APP1 der Schnittstelle IF, und/oder Verarbeiten 1512, beispielsweise deterministisches Verarbeiten 1512, von Daten DAT2 des zweiten Speicherbereichs IF-APP2 der Schnittstelle IF.
-
Bei weiteren bevorzugten Ausführungsformen wird unter dem deterministischen Verarbeiten 1510, 1512 ein Verarbeiten innerhalb einer festen und/oder vorhersagbaren Verarbeitungszeit verstanden. Auf diese Weise können die Applikationen APP1, APP2 bei weiteren bevorzugten Ausführungsformen auch bei Nutzung des wenigstens einen Moduls HSM (z.B. im Sinne einer unter mehreren Applikationen APP1, APP2 aufzuteilenden Ressource) ihrerseits einen deterministischen Betrieb gewährleisten.
-
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das, beispielsweise deterministische, Verarbeiten aufweist: Verarbeiten 1514 der Daten DAT1 des ersten Speicherbereichs IF-APP1 und/oder der Daten DAT2 des zweiten Speicherbereichs IF-APP2 bzw. Verarbeiten 1514 von mit den Daten DAT1 des ersten Speicherbereichs und/oder den Daten DAT2 des zweiten Speicherbereichs assoziierten Aufgaben AUFG1, AUFG2 basierend auf einem vorgebbaren Verfahren RR, wobei beispielsweise das vorgebbare Verfahren RR ein deterministisches Verarbeiten der Daten DAT1, DAT2 bzw. ein deterministisches Abarbeiten der assoziierten Aufgaben AUFG1, AUFG2 gewährleistet, wobei das vorgebbare Verfahren beispielsweise ein Round-Robin-Verfahren RR ist.
-
Weitere bevorzugte Ausführungsformen, vgl. 3A, beziehen sich auf ein Zurücksetzen 100, 102 („Resetieren“, „Reset“) von wenigstens einer Hardwarekomponente, insbesondere für wenigstens eine Applikation APP1.
-
Bei weiteren bevorzugten Ausführungsformen wird ein Reset 100, 102 von Modulen der Vorrichtung 200 und/oder ggf. vorhandenen, insbesondere externen, Schaltungen 208 (z.B. Analog/Digital-Wandler, ADC) so ausgeführt, dass mehrere unabhängige Anwendungen APP1, APP2, APP3 betrieben werden können und sich diese bevorzugt nicht gegenseitig beeinflussen.
-
Bei weiteren bevorzugten Ausführungsformen ist die Vorrichtung 200 dazu ausgebildet, jeden Rechenkern 202a, 202b, 202c einzeln zurückzusetzen. Insbesondere werden daher durch den Reset eines Rechenkerns 202a gegebenenfalls bei der Recheneinrichtung 202 vorhandene weitere Rechenkerne 202b, 202c nicht beeinflusst.
-
Bei weiteren bevorzugten Ausführungsformen können mehrere Bereiche bzw. Cluster vorgesehen sein, die beispielsweise durch wenigstens einen Rechenkern 202a und optional mit dem wenigstens einen Rechenkern assoziierten Speicher 204a charakterisiert sind. Bei weiteren bevorzugten Ausführungsformen kann die Zuordnung des Speichers zu dem wenigstens einen Rechenkern logisch und/oder physikalisch sein. Bei weiteren bevorzugten Ausführungsformen kann wenigstens einer der Cluster unabhängig von einem Betrieb der weiteren Cluster zurückgesetzt werden, insbesondere ohne einen Betrieb der weiteren Cluster zu beeinträchtigen. Dadurch kann bei weiteren bevorzugten Ausführungsformen beispielsweise wenigstens ein Cluster zurückgesetzt werden, während gegebenenfalls vorhandene weitere Cluster unabhängig von dem Zurücksetzen des einen Clusters weiter betrieben werden können, beispielsweise zur Ausführung einer oder mehrerer Anwendungen.
-
Bei weiteren bevorzugten Ausführungsformen kann wenigstens ein Cluster auch wenigstens eine Schaltungskomponente bzw. einen Schaltungsteil aufweisen, beispielsweise eine Phasenregelschleife (PLL, phased locked loop). Bei weiteren bevorzugten Ausführungsformen kann bei dem Resetieren des wenigstens einen Clusters auch die wenigstens eine Schaltungskomponente mit zurückgesetzt werden.
-
Bei weiteren bevorzugten Ausführungsformen können gegebenenfalls vorhandene Peripheriemodule, die z.B. den einzelnen Applikationen APP1, APP2, APP3 zugewiesen werden können, in einem Supervisormode und/oder wenigstes einer Applikation zurückgesetzt werden.
-
Bei weiteren bevorzugten Ausführungsformen können optional vorhandene externe Komponenten wie beispielsweise externe Logik über wenigstens eine gesonderte Datenleitung, beispielsweise separate GPIO (general purpose inout output) resetiert werden, wobei das Resetieren gemäß weiteren bevorzugten Ausführungsformen beispielsweise von einem Supervisormode oder von einer Applikation APP1, APP2, APP3 ausgeführt wird. Bei weiteren bevorzugten Ausführungsformen kann hierfür das GPIO (-Signal) z.B. als Reset-Signal an einen Reset-Eingang der externen Komponente (beispielsweise externes Bauelement oder Schaltung) geführt werden.
-
Bei weiteren bevorzugten Ausführungsformen können mehrere Reset-Anschlüsse („Pins“) für gegebenenfalls vorhandene externe Komponenten bzw. Schaltungen bereit gestellt werden, so dass zum Beispiel die zu jeder Applikation gehöhrenden externen Schaltungen separat zurück gesetzt werden können.
-
Bei weiteren bevorzugten Ausführungsformen kann das Resetieren durch wenigstens eine der nachfolgend genannten, insbesondere voneinander unabhängigen, Quellen ausgeführt werden: a) Ein Signal, insbesondere Hardware-Signal, das z.B. Von einem Supervisor und/oder einer Überwachungslogik ausgelöst wird, b) durch ein Bit, das, wenn es beschrieben wird, die Reset-Funktion ausführt, c) indem eine Software, insbesondere eine Anwendung, die Bits so setzt, wie dies dem Reset-Zustand entspricht.
-
Bei weiteren bevorzugten Ausführungsformen können bei der vorstehend genannten Variante c) gezielt bestimmte Funktionen noch aufrechterhalten werden. Als Beispiel gemäß weiteren bevorzugten Ausführungsformen sei ein optionaler Zeitgeberbaustein („Timer“) genannt, der beispielsweise ein Pulsweitenmoduliertes (PWM) Signal ausgibt und der dabei nicht, insbesondere auch nicht durch den Reset, unterbrochen werden soll. Hierbei können gemäß weiteren bevorzugten Ausführungsformen die anderen Instanzen bzw. Parameter des Timer, insbesondere im selben Modul, das gemäß weiteren bevorzugten Ausführungsformen auch per Hardware zurück gesetzt werden könnte, über die Registereinstellungen (Schreiben bzw. Setzen der Bits) in einen Zustand gebracht werden, der beispielsweise den Reset-Werten entspricht („Neuinitialisierung“).
-
Bei weiteren bevorzugten Ausführungsformen ist es mit den vorstehend beispielhaft aufgeführten Schaltungsfunktionen gemäß weiteren bevorzugten Ausführungsformen möglich, sowohl durch einen Supervisor als auch wenigstens eine Anwendung APP1 selber die für einen Betrieb der Anwendung notwendigen Komponenten bzw. Schaltungsteile, insbesondere unabhängig vom Zustand und/oder Betrieb der anderen Applikationen APP2, APP3 (diese können im Reset, Startup, Ramp-Down oder in der Normalfunktion sein), zurückzusetzen.
-
Weitere bevorzugte Ausführungsformen beziehen sich auf ein Verfahren zum Zurücksetzen einer Vorrichtung 200 zur Steuerung eines technischen Systems 1, insbesondere eines Kraftfahrzeuges, beispielsweise eines Steuergeräts, wobei das Zurücksetzen während eines laufenden Betriebs (beispielsweise in einem von mehreren verschiedenen möglichen Betriebszuständen) der Vorrichtung 200 bzw. des technischen Systems 1 ausgeführt wird.
-
Bei weiteren bevorzugten Ausführungsformen werden auf der Vorrichtung 200 mehrere, insbesondere voneinander unabhängige oder zumindest teilweise abhängige, Applikationen APP1, APP2, APP3 gleichzeitig oder zumindest zeitlich überlappend betrieben.
-
Bei weiteren bevorzugten Ausführungsformen können optional vorgesehene weitere Komponenten 208 bzw. Schaltungen, insbesondere externe Komponenten bzw. Schaltungen, wenigstens einer Applikation APP1 zugeordnet werden, die zumindest zeitweise durch die Vorrichtung 200 bzw. ihre Recheneinrichtung 202 bzw. wenigstens einen Rechenkern 202a der Recheneinrichtung 202 ausgeführt wird.
-
Bei weiteren bevorzugten Ausführungsformen kann das Zuordnen der Komponenten zu der wenigstens einen Applikation auch dynamisch, also während einer Laufzeit der Vorrichtung bzw. der Applikation, ausgeführt werden.
-
Bei weiteren bevorzugten Ausführungsformen können die optional vorgesehenen weiteren Komponenten bzw. Schaltungen, insbesondere getrennt von einem Supervisor und/oder wenigstens einer Applikation, zurückgesetzt werden, insbesondere ohne ein Laufzeitverhalten wenigstens einer, vorzugsweise mehrerer, insbesondere aller weiteren Applikationen der Vorrichtung zu beeinflussen.
-
Bei weiteren bevorzugten Ausführungsformen ist das Laufzeitverhalten dadurch gekennzeichnet, dass dieselben Ausführungszeiten eingehalten werden, insbesondere bezüglich einer Bandbreite und/oder bezüglich von Latenzrandbedingungen, wobei bei weiteren bevorzugten Ausführungsformen ein taktgenau selbes Verhalten nicht erforderlich ist.
-
Bei weiteren bevorzugten Ausführungsformen werden weitere Applikationen APP3 der Vorrichtung 200 weiter betrieben, während bzw. wenn wenigstens eine andere Applikation APP2 der Vorrichtung 200 die ihr zugeordneten Module 208 und/oder Schaltungsteile zurückgesetzt.
-
Weitere bevorzugte Ausführungsformen, vgl. 3B, beziehen sich auf ein Verhalten von Speicherbereichen der Speichereinrichtung, insbesondere von nichtflüchtigen Speicherbereichen („NVM (non-volatile memory)-Speicherbereich“) der Speichereinrichtung, wobei insbesondere ein oder mehrere insbesondere der nichtflüchtigen Speicherbereiche SB1 jeweils einer Applikation APP1 oder mehreren Applikationen zugeordnet 110 werden bzw. zugeordnet sein können.
-
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass wenigstens ein NVM Speicherbereich SB1 wenigstens einer, insbesondere genau einer, Applikation APP1 zugeordnet werden kann.
-
Bei weiteren bevorzugten Ausführungsformen ist der NVM Speicherbereich so angeordnet, dass dieser z.B. über a) eine MPU (memory protection unit, Speicherschutzeinrichtung), und/oder b) über einen Supervisor, insbesondere über eine Zuweisung einer Partition-ID, der wenigstens einen Applikation zugeordnet werden kann.
-
Bei weiteren bevorzugten Ausführungsformen weist die Vorrichtung 200 bzw. die Recheneinrichtung 202 drei Rechenkerne („Cores“) 202a, 202b, 202c auf, wobei z.B. auf jedem Core eine Applikation ausgeführt wird, und wobei z.B. jeder Applikation ein vorgebbarer Speicherbereich, z.B. 4 Megabytes (MB), zugeordnet wird. Z.B. ist ein erster Speicherbereich SB1 einer ersten Applikation APP1 und ein zweiter Speicherbereich SB2 einer zweiten Applikation APP1 zugeordnet, vgl. die Schritte 110, 112 gemäß 3B.
-
Bei weiteren bevorzugten Ausführungsformen sind bei der Speichereinrichtung 204, insbesondere für die NVM-Speicherbereiche 204b, mehrere Speichermodule vorgesehen, wobei bevorzugt wenigstens zwei, vorzugsweise mehr als zwei, weiter vorzugsweise alle der, Speichermodule so ausgeführt sind, dass sie entweder komplett oder aus kleineren Untermodulen aufgebaut bzw. zusammengesetzt sind.
-
Bei weiteren bevorzugten Ausführungsformen weisen die Untermodule zumindest teilweise dieselben Eigenschaften wie ein zuzuordnendes Speichermodul auf, z.B. bezüglich gemeinsamer Wortleitungsansteuerungen und/oder gemeinsamer Bitleitungsausleseschaltungen und/oder gemeinsamer Programmierspannungszuführungen.
-
Bei weiteren bevorzugten Ausführungsformen ist die Vorrichtung 200 bzw. die Recheneinrichtung 202 dazu ausgebildet, ein Umprogrammieren der zugeordneten Speicherbereiche bzw. Module bzw. Untermodule unabhängig von einem Zustand anderer Speicherbereiche bzw. Module bzw. Untermodule auszuführen, wobei insbesondere die dazu notwendigen Ressourcen z.B. mehrfach in jedem Speicherbereich vorhanden sind. Deshalb ist es bei weiteren bevorzugten Ausführungsformen möglich, dass ein erster (Speicher-)Bereich umprogrammiert wird, während aus den anderen (Speicher-)Bereichen weiter die Applikationen so laufen, wie wenn die eine Applikation bzw. der ihr zugeordnete Speicherbereich nicht umprogrammiert wird.
-
Bei weiteren bevorzugten Ausführungsformen kann das Umprogrammieren der einen Applikation bzw. des ihr zugeordneten Speicherbereichs aus einem Supervisor und/oder einem Partition Manager und/oder einer Applikation erfolgen.
-
Bei weiteren bevorzugten Ausführungsformen kann, insbesondere durch Bereitstellung der oben beschriebenen Ressourcen, das Verfahren auch in einem (insbesondere bezüglich der Recheneinrichtung bzw. Vorrichtung) externen Speicher, insbesondere NVM-Speicher, erfolgen, der z.B. mehrere Blöcke aufweist, und der z.B. über eine separate Wortleitungsansteuerung für die Blöcke und/oder separate Bitleitungsausleseschaltungen für die Blöcke verfügen kann. Bei weiteren bevorzugten Ausführungsformen kann der NVM-Speicher als LPDDR (low power double data rate)-Speichertyp ausgebildet sein.
-
Weitere bevorzugte Ausführungsformen beziehen sich auf ein Verfahren zum Programmieren (und/oder Umprogrammieren) einer Vorrichtung bzw. einer Speichereinrichtung der bzw. für die Vorrichtung, wobei die Vorrichtung z.B. zur Steuerung eines technischen Systems wie z.B. eines Kraftfahrzeuges ausgebildet ist, gekennzeichnet durch wenigstens einen der folgenden Aspekte:
- a) das Verfahren wird, z.B. in einem Kraftfahrzeug, im laufenden Betrieb (z.B. in einem der verschiedenen Betriebszustände des Kraftfahrzeugs) durchgeführt
- b) auf bzw. mittels der Vorrichtung bzw. Steuerung werden mehrere unabhängige oder abhängige Applikationen gleichzeitig oder wenigstens zumindest teilweise zeitlich überlappend betrieben,
- c) verschiedene Speicherbereiche in und/oder außerhalb der Recheneinrichtung können, insbesondere flexibel und/oder dynamisch, den Applikationen zugeordnet werden,
- d) verschiedene Speicherbereiche in und/oder außerhalb der Recheneinrichtung können, insbesondere getrennt bzw. unabhängig voneinander, von einem Supervisor und/oder wenigstens einer (insbesondere einer zugeordneten) Applikation umprogrammiert werden, insbesondere ohne das Laufzeitverhalten wenigstens einer anderen Applikation bzw. mehrerer bzw. aller anderen Applikationen der Vorrichtung bzw. Recheneinrichtung zu beeinflussen (das Laufzeitverhalten ist z.B. dadurch gekennzeichnet, dass dieselben Ausführungszeiten (insbesondere bezüglich einer vorgebbaren Bandbreite und/oder vorgebbarer Latenzrandbedingungen eingehalten werden, wobei insbesondere ein taktgenau selbes Verhalten gemäß weiteren bevorzugten Ausführungsformen nicht erforderlich ist),
- e) wenigstens eine andere, vorzugsweise alle anderen, Applikationen der Vorrichtung bzw. Recheneinrichtung sind weiter funktional, wenn eine oder mehrere der Applikationen umprogrammiert werden.
-
Weitere bevorzugte Ausführungsformen, vgl. 3C, beziehen sich auf eine fault collection and control unit, FCCU, 201 (2), also auf eine Einrichtung zum Sammeln und Verwalten von Fehlern, insbesondere auf eine Aufteilung von Ressourcen der FCCU. Schritt 115 aus 3C symbolisiert die Verwendung der FCCU 201.
-
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass die FCCU dazu ausgebildet ist, einen unabhängigen (Weiter-)Betrieb von Applikationen der Vorrichtung bzw. Recheneinrichtung zu gewährleisten, wodurch z.B. funktional deterministisch getrennte (insbesondere auf eine funktionale Sicherheit, „Safety“ bezogene) Reaktionen, z.B. auf Hardware-Fehler, ermöglicht werden. Mit anderen Worten kann dadurch bei weiteren bevorzugten Ausführungsformen ermöglicht werden, dass nicht durch den z.B. Hardware-Fehler betroffene Applikationen weiter ausgeführt werden können.
-
Bei weiteren bevorzugten Ausführungsformen ist die FCCU dazu ausgebildet, Hardware-Fehler („HW-Fehler“) in einzelnen Modulen wie z.B. Core, RAM (Arbeitsspeicher), NVM (nichtflüchtiger Speicher) und/oder Peripheriemodulen zu sammeln 116 (3C) und z.B. Fehlerreaktionen auszuführen 117, die z.B. mittels eines Safety Setup (Einrichtung bzw. Konfiguration von Aspekten bezüglich funktionaler Sicherheit) einstellbar bzw. vorgebbar sind, z.B. Aktivierung eines oder mehrerer Error Pins (Fehleranschlüsse), das Auslösen eines Interrupt (Unterbrechungsanforderung), das Auslösen eines Reset oder die Aktivierung eines NMI (nicht maskierbare Unterbrechungsanforderung).
-
Bei weiteren bevorzugten Ausführungsformen werden Fehlereingangssignale einer oder mehreren Applikationen zugeordnet, wobei insbesondere auch Fehlerreaktionen (s. z.B. die vorstehend beispielhaft beschriebenen Ausführungsformen) an die Partitionen und/oder Applikationen und/oder zugeordnete Error Pins generiert bzw. ausgegeben werden können.
-
Sobald beispielsweise bei einem ersten Rechenkern („Core 1“) 202a (2) der drei Rechenkerne, auf dem z.B. eine erste Applikation APP1 („Applikation 1“) läuft, ein Fehler erkannt wird, kann z.B. ein Lockstep Fehler im Core1 202a an die FCCU 201 gemeldet werden. Bei weiteren bevorzugten Ausführungsformen ist die FCCU 201 so konfiguriert, dass der Fehler bevorzugt nur auf die Aktionen, die der Applikation 1 zugeordnet sind, wirken kann - z.B. die Interruptressourcen im GIC ((generic) interrupt controller) des Core1 202a, den Reset des Core1, den NMI des Core1 oder einen/mehrere Error Pins. Bei weiteren bevorzugten Ausführungsformen kann bei einem Safety System Setup - z.B. durch einen Supervisor oder die Applikation 1 - festgelegt werden, dass dieser Fehler z.B. einen Reset des Core1 auslöst bzw. dass bei dem Auftreten dieses Fehler ein Reset des Core1 ausgelöst werden soll. Bei weiteren bevorzugten Ausführungsformen werden andere Applikationen (z.B. „Applikation 2“ und „Applikation 3“) durch den Lockstep-Fehler im Core 1 nicht beeinflusst und laufen bevorzugt im selben Zeitverhalten weiter.
-
Gemäß weiteren bevorzugten Ausführungsformen kann beispielsweise bei einem dritten Rechenkern 202c („Core 3“) der drei Rechenkerne, dem eine dritte Applikation APP3 („Applikation 3“) zugeordnet ist, ein Fehler erkannt werden, z.B. ein nicht korrigierbarer „Double Bit“-Fehler in dem NVM-Speicherbereich, der der Applikation 3 zugeordnet ist. Bevorzugt ist die FCCU 201 so konfiguriert, dass der Fehler, insbesondere nur, auf die Aktionen, die der Applikation 3 zugeordnet sind, weitegeleitet wird. Weiter bevorzugt kann, beispielsweise durch die FCCU, eine Unterbrechungsanforderung (Interrupt) an die Applikation 3 ausgelöst werden, z.B. um eine Fehlerbehandlungsroutine für den Double Bit Fehler aufzurufen. Bei weiteren bevorzugten Ausführungsformen kann die Fehlerbehandlungsroutine z.B. zusätzliche Tests enthalten, z.B. um eine Schwere der Safety-Beeinflussung durch den Fehler festzustellen und, optional, dementsprechend entweder die Applikation 3 weiter laufen zu lassen oder diese z.B. zurückzusetzen (Reset), oder auch andere Applikationen, z.B. über den Supervisor, informieren - z.B. mittels Interrupt - dass diese evtl. (auch durch den Fehler) betroffen sein könnten und z.B. entsprechende Überprüfungen des den Applikationen 1 und 2 zugeordneten NVM-Speichers durchgeführt werden soll.
-
Weitere bevorzugte Ausführungsformen beziehen sich auf ein Verfahren zur Fehlerbehandlung einer Applikation in einer Vorrichtung, z.B. Steuerung, für ein technisches System, z.B. für ein Kraftfahrzeug, gekennzeichnet durch wenigstens einen der folgenden Aspekte:
- a) das Verfahren wird, z.B. in einem Kraftfahrzeug, im laufenden Betrieb (z.B. in einem der verschiedenen Betriebszustände des Kraftfahrzeugs) durchgeführt,
- b) auf bzw. mittels der Vorrichtung bzw. Steuerung werden mehrere unabhängige oder abhängige Applikationen gleichzeitig oder wenigstens zumindest teilweise zeitlich überlappend betrieben,
- c) verschiedene Fehler bzw. Fehlerereignisse („Fehlerevents“) (z.B., RAM, Core, NVM, ...), die z.B. in und/oder außerhalb (externes NVM oder RAM) der Recheneinrichtung auftreten können, können jeweils wenigstens einer Applikation zugeordnet werden,
- d) wenigstens eine, bevorzugt mehrere, insbesondere alle, Applikationen können, zumindest innerhalb ihrer Ressourcen, einen bzw. den Fehler bewerten und/oder eine entsprechende Fehlerreaktion einleiten und/oder wenigstens eine andere Applikation informieren, z.B. über mögliche Safety-Fehler, insbesondere in den ihnen zugeordneten Ressourcen,
- e) wenigstens eine, bevorzugt mehrere, insbesondere alle, Applikationen können, durch wenigstens eine Andere Applikation über einen bzw. den Fehler informiert werden,
- f) andere, insbesondere nicht von einem bzw. dem Fehler betroffene Applikationen können weiter laufen, insbesondere so weiter laufen, dass das Laufzeitverhalten, speziell die Latenzrandbedingungen eingehalten werden, wobei insbesondere ein taktgenau selbes Verhalten nicht erforderlich ist,
-
Weitere bevorzugte Ausführungsformen, vgl. 3D, beziehen sich auf eine Weiterleitung 120 von einen Betriebszustand, insbesondere einen Betriebszustand („Safety Zustand“) bezüglich einer funktionalen Sicherheit („Safety“), einer Anwendung („Applikation“) APP1, APP2, APP3 charakterisierenden Informationen I1-FUSI an wenigstens eine weitere Einheit wie z.B. eine externe Einheit 300 (2), insbesondere eine extern der Recheneinrichtung 202 bzw. Vorrichtung 200 angeordnete Einheit 300.
-
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, insbesondere um bezüglich funktional deterministisch getrennter Safety-Reaktionen auf HW-Fehler einen unabhängigen Weiterbetrieb der nicht betroffenen Applikation(en) und ggf. der optional damit verbundenen externen Einheit(en) (wie z.B. eine Ansteuerung von Treibern, z.B. PHY für Signale, die eine Safety-Last tragen und die Umsetzung der Anschlüsse der Recheneinrichtung („Rechnerpins“) z.B. auf ein physikalisches Bus-Protokoll übernehmen) oder auch die Ansteuerungen von Komponenten wie Zündung/Einspritzung bei einem Verbrennungsmotor) gewährleisten zu können, dass diese extern (bezüglich der Recheneinrichtung) den Applikationen zugeordneten Schaltungen z.B. den Safety-Zustand „Error“ (kann bei weiteren bevorzugten Ausführungsformen auch „Reset“, sein aber auch zusätzlich zum Reset) signalisieren, insbesondere um die Schaltungsteile, die Applikationen zugeordnet sind, die nicht betroffen sind, nicht zu beeinflussen.
-
Bei weiteren bevorzugten Ausführungsformen sind beispielhaft drei Rechenkerne (3 Cores) vorgesehen, mit 3 Applikationen, wobei auf jedem Core eine der drei Applikationen läuft. Weiter sind z.B. drei Error Pins (Anschlüsse, z.B. zur Signalisierung von Fehlerzuständen) vorgesehen. Bei weiteren bevorzugten Ausführungsformen sind beispielhaft externe Interfaces für eine VCU (Fahrzeugsteuerung, vehicle control unit) (z.B. Applikation 1 auf Core1) und die eine Einspritzung für eine Verbrennungsapplikation (z.B. Applikation 3 auf Core3) vorgesehen.
-
Bei weiteren bevorzugten Ausführungsformen möchte die Verbrennungsapplikation z.B. die Einspritzung abschalten, um das Drehmoment des Motors zu reduzieren. Dazu wird z.B. der Error Pin 3 (der z.B. im Startup (also beim Hochfahren der Vorrichtung) der Applikation 3 zugeordnet worden ist) aktiviert, der bevorzugt so mit dem (externen) Einspritz-Schaltkreis (IC) verbunden ist, dass dieser, insbesondere unabhängig von den Impulsen, die das Einspritztiming vorgeben, abgeschalten wird und die Einspritzventile z.B. nicht ansteuert. Bei weiteren bevorzugten Ausführungsformen läuft gleichzeitig die VCU-Funktion auf Applikation 1 auf Core 1 weiter - diese VCU überträgt z.B. über einen CAN Treiber auch Signale mit einer Safety-Last. Bei weiteren bevorzugten Ausführungsformen wird der Error Pin1 (z.B. im Startup der Applikation 1 zugeordnet) nicht aktiviert, so dass die CAN Signale, die aus der Recheneinrichtung bzw. der Vorrichtung kommen, über den aktuell nicht deaktivierten (mit Error Pin1 zu deaktivieren) CAN Treiber weitergeleitet werden. Dadurch läuft die VCU-Applikation auf Core1 vom Fehler der Applikation 3 nicht beeinflusst (weiter), und insbesondere die besagten CAN-Signale werden weiter übertragen.
-
Weitere bevorzugte Ausführungsformen beziehen sich auf ein Verfahren zur Signalisierung, insbesondere Weiterleitung, des Safety-Status wenigstens einer Applikation an Einheiten bzw. Bauelemente außerhalb der Recheneinrichtung bzw. Vorrichtung, gekennzeichnet durch wenigstens einen der folgenden Aspekte:
- a) Die Signalisierung des Safety-Status kann bevorzugt z.B. für die externen Bauelemente („Peripheriemodule“) als Abschalt-Signal genutzt werden,
- b) Die Signalisierung kann einzelnen Applikationen, die z.B. parallel auf der Recheneinrichtung laufen, zugeordnet sein, wobei insbesondere Peripheriemodule, die einer Applikation zugeordnet sind, unabhängig vom Zustand anderer Applikationen bzw. deren Peripheriemodule zurückgesetzt werden können,
- c) eine Zuordnung kann, bevorzugt unveränderbar, nach einem Reset vorgenommen werden,
- d) Aspekte dieser Ausführungsformen können auch für externe Security-Bauelemente wie z.B. externe Crypto Bauelemente (Kryptografie-Beschleuniger, Hardware-Sicherheitsmodul), Schnittstellen, genutzt werden,
- e) Verwendung sowohl in Bezug auf Aspekte der funktionalen Sicherheit („FUSI“, „Safety“) als auch in Bezug auf Aspekte der Sicherheit z.B. gegen Manipulationen („Security“).
-
Weitere bevorzugte Ausführungsformen, vgl. 3E, beziehen sich auf ein Verfahren zur Steuerung eines technischen Systems 1, z.B. eines Fahrzeugs 1, bei dem wenigstens ein Peripheriemodul 206 wenigstens einer, insbesondere genau einer, Applikation APP1 zugeordnet wird, vgl. Schritt 125 aus 3E. Bevorzugt können die Applikationen jeweils in getrennten Partitionen auf der Recheneinrichtung 202 laufen.
-
Bei weiteren bevorzugten Ausführungsformen handelt es sich bei dem wenigstens einen Peripheriemodul 206 z.B. um wenigstens eines der folgenden Elemente: Timer (Zeitgeberbaustein), Kommunikationsinterfaces 206, GPIO Ports (allgemeine Eingabe- und/oder Ausgabeanschlüsse).
-
Hierdurch kann bevorzugt erreicht werden, dass sich mehrere Applikationen APP1, APP2, APP3 bei einem Betrieb auf der Recheneinrichtung 202 nicht gegenseitig beeinflussen.
-
Beispiele für eine unerwünschte gegenseitige Beeinflussung, die gemäß weiteren bevorzugten Ausführungsformen vermeidbar ist, sind:
- 1. Betrieb eines Analog/Digital-Wandlers (ADC): Wenn mehrere Applikationen auf die Ressourcen des ADC (z.B. Kanäle/Eingänge und/oder Steuerregister) zugreifen, dann kann die eine Applikation z.B. die Einstellungen einer anderen Applikation überschreiben - z.B. Kanalzuordnung, Sample Time (Abtastrate), Conversion Time (Umwandlungszeit), ...
- 2. CAN (Controller Area Network): Wenn in mehreren Applikationen CAN-Identifier auf demselben CAN Bus genutzt werden, können in einem CAN Modul z.B. Queue- Einträge vorgenommen werden, wobei die Software einer Partition (d.h., z.B. eine Applikation) die Settings einer anderen Applikation überschreiben kann.
-
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass wenigstens ein Peripheriemodul, bevorzugt vollständig, einer Partition bzw. Applikation zugeordnet werden kann.
-
Bei weiteren bevorzugten Ausführungsformen sind z.B. Module bei der Vorrichtung bzw. Recheneinrichtung vorgesehen wie z.B. SPI (serial peripheral interface), LIN (local Interconnect Network), CAN, ADC, die z.B. bevorzugt komplett einer Anwendung zugeordnet werden können, insbesondere weil die Ressourcen dieser Module entweder komplett durch die Partition bzw. Anwendung (Applikation) benutzt werden, oder diese Module mehrfach, insbesondere so häufig, vorhanden sind, dass entsprechende einzelne dieser Module komplett einer Partition bzw. Anwendung (Applikation) zugeordnet werden können.
-
Bei weiteren bevorzugten Ausführungsformen werden folgende Mechanismen vorgeschlagen, insbesondere um diese Module gemäß einem Ziel einer deterministischen Funktion zu trennen:
- - Zuordnung wenigstens eines, vorzugsweise mehrere bzw. aller Module zu einer Partition bzw. Applikation (insbesondere in dem Modul), wobei insbesondere das Modul z.B. nur Schreib- und/oder Lesebefehle von einem Bus (z.B. Datenbus zur Anbindung des Moduls an Komponente(n) der Recheneinrichtung bzw. Vorrichtung) akzeptiert, die mit einer vorgebbaren Kennung, z.B. „Partition ID“, kommen, die z.B. vorher im System Setup von einem Partition Manager dem Modul zugewiesen worden ist.
-
Bei weiteren bevorzugten Ausführungsformen werden somit Module, bevorzugt komplette Module, insbesondere fest (also statisch), zu Partitionen, insbesondere einer Partition bzw. Applikation, zugeordnet.
-
Bei weiteren bevorzugten Ausführungsformen kann vorgesehen sein, dass (Peripherie-)Module mehreren Anwendungen zugeordnet werden können, z.B. vorgebbar bzw. steuerbar durch wenigstens eine Hardware-Funktion wie z.B. eine Adressbereichseinschränkung.
-
Bei weiteren bevorzugten Ausführungsformen gibt es z.B. Module bei einer Vorrichtung bzw. Recheneinrichtung wie z.B. GTM (Zeitgeberbaustein), Ethernet, HSM (Hardwaresicherheitsmodul) (Windows), deren Komponenten bzw. Cluster oder Modulteile über eine interne Zuordnung von Adressbereichen zu Partitionen bzw. Applikationen zugeordnet werden können.
-
Um diese Module gemäß weiteren bevorzugten Ausführungsformen, insbesondere mit dem Ziel einer deterministischen Funktion, zu trennen, wird folgender Mechanismus vorgeschlagen:
- - Zuordnung der Module zu den Partitionen bzw. Applikationen über Adressbereiche, und/oder
- - Anordnung der Ressourcen in einem Modul so, dass die Ressourcen, die zu einer Partition (bzw. Applikation) zugeordnet werden, dass diese in einem Adressbereich nahe beieinander (z.B. benachbart) liegen, und/oder
- - Die Zuweisung des Adressbereiches bzw. der Adressbereiche kann z.B. extern über eine Bus-Brücke erfolgen, und/oder über eine Speicherschutzeinrichtung (MPU), die z.B. sicherstellt, dass die internen Master/Slave(s), die nicht der zugeordneten Partition bzw. Applikation gehören, auf diesen Adressbereich nicht Lesen und/oder Schreiben können.
-
Bei weiteren bevorzugten Ausführungsformen kann also eine Zuordnung von (Peripherie-)Modulen zur Applikationen bzw. Partitionen über eine, bevorzugt Modul-interne, Einschränkung der Adressbereiche erfolgen.
-
Bei weiteren bevorzugten Ausführungsformen gibt es z.B. auch Module, die über Software(SW)-Mechanismen voneinander getrennt werden können, wobei diese Module z.B. von mehreren Partitionen bzw. Applikationen verwendet werden. Ein Beispiel gemäß weiteren bevorzugten Ausführungsformen ist z. B. Ethernet ohne Nutzung von implementierten Queues, ein weiteres Beispiel gemäß weiteren bevorzugten Ausführungsformen ist ein Bus für eine Interprozessorkommunikation, oder auch ein CAN-Modul, bei dem eine SW-Zuordnung, insbesondere der einzelnen ID(s), sinnvoll ist, da z.B. im System nicht genügend viele CAN Module vorhanden sind.
-
Bei weiteren bevorzugten Ausführungsformen wird daher vorgeschlagen:
- a) Diese Module, insbesondere im Startup (Hochfahren), durch ein Konfigurationstool so zu konfigurieren, dass die Randbedingungen aller Partitionen bzw. Applikationen, die diese Ressourcen nutzen, berücksichtigt werden,
- b) Bsp. CAN/Ethernet: Bandbreite und/oder Latenz aus der Anforderung wird so implementiert, dass die Anforderungen erfüllt werden - Aufteilung der Message ID auf die Queues der Module mit den entsprechenden zu vergebenden Prioritäten,
- c) Im laufenden Betrieb wird über den Partition Manager (SW, die in einem Rechte-Modus über den Partitionen bzw. Applikationen läuft) das Schreiben-/Lesen auf diese Ressourcen geregelt - hier gibt es bevorzugt mehrere Möglichkeiten, den Partition Manager aufzurufen - z.B. über einen Call oder auch über Trap/Emulate (es wird bewusst auf eine Ressource geschrieben, die gesperrt ist, und so der höhere Priviledge Level zur Lösung des Zugriffskonfliktes aufgerufen,
- d) Eine weitere Möglichkeit gemäß weiteren bevorzugten Ausführungsformen ist, das Schreiben und/oder Lesen über das Aufsetzen von DMA Kanälen im laufenden Betrieb zu regeln - diese DMA Kanäle werden dann z.B., bevorzugt nur, bei bestimmen Triggern aktiviert, und das Lesen und/oder Schreiben umfasst dann z.B. nur spezielle Ressourcen in dem Modul, und z.B. Schreiben-/Lesen der Daten dann von fest den einzelnen Partitionen zugeordneten Adressbereichen.
-
Bei weiteren bevorzugten Ausführungsformen wird daher vorgeschlagen: Zuordnen von Ressourcen (z.B. Peripherie-Modulen) der Vorrichtung bzw. Recheneinrichtung zu mehreren Partitionen bzw. Applikationen, wobei SW-Funktionen und HW-Funktionen genutzt werden
-
Weitere bevorzugte Ausführungsformen, vgl. 3F, beziehen sich auf ein Verfahren zur Steuerung eines technischen Systems, z.B. eines Fahrzeugs, bei dem eine Dienstgüte (QoS, Quality of Service) bzw. wenigstens eine die Dienstgüte charakterisierende Größe dazu verwendet wird, vgl. Schritt 130, Partitionen bzw. Applikation zumindest zeitweise voneinander zu trennen, also zu separieren.
-
Gemäß weiteren bevorzugten Ausführungsformen kann es in Vorrichtungen bzw. Systemen, in denen mehrere Applikationen gleichzeitig laufen können, insbesondere zur Erreichung gleicher Laufzeiten der Applikationen bzw. einer vorgebbaren Ressourcenverteilung (insbesondere unabhängig von anderen Applikationen) vorteilhaft sein, auch einen oder mehrere Busse mit zu berücksichtigen, die insbesondere für Datenübertragungen zwischen Komponenten nutzbar sind.
-
Da die Laufzeit von Applikationen bei weiteren bevorzugten Ausführungsformen durch mehrere Faktoren beeinflusst wird, können bei weiteren bevorzugten Ausführungsformen diese Faktoren auch einzeln oder in Kombination miteinander adressiert werden: - Core selber (Mechanismus Hypervisor), - Zugriff auf Speicher (QoS), - Zugriff auf Module im Rechner - wie SPI, Safety, ...
-
Gemäß weiteren bevorzugten Ausführungsformen wird vorgeschlagen, einen Mechanismus zur Separierung von Zugriffen auf Speicher, wie er z.B. bei Bussystemen bzw. Busarchitekturen der Vorrichtung bzw. der Recheneinrichtung vorgesehen sein kann, zur Separierung von Zugriffen auf die (Peripherie-)Module zu nutzen.
-
Bei weiteren bevorzugten Ausführungsformen stellt wenigstens eine Applikation, stellen bevorzugt mehrere bzw. alle Applikationen, eine Dienstgüte („QoS“), z.B. charakterisierbar durch Latenz und/oder Bandbreite, für wenigstens eine Peripheriekomponente bzw. wenigstens ein Peripheriemodul ein, vgl. den optionalen Schritt 132 gemäß 3F. Zum Beispiel:
- a) Applikation 1 stellt 15 Takte Latenz und 20 % Busbandbreite für Zugriffe bezüglich einer Peripheriekomponente ein,
- b) Applikation 2 stellt 40 Takte Latenz und 70 % Busbandbreite auf dieselbe Peripheriekomponente ein.
-
Mit anderen Worten kann bei weiteren bevorzugten Ausführungsformen eine Nutzung der QoS bzw. von QoS-Mechanismen (z.B. implementiert mittels Hardware) für eine Steuerung von Bandbreite und/oder Latenz einzelner Applikationen APP1 verwendet werden, insbesondere zur Trennung von Peripheriezugriffen (Zugriffen von Applikationen auf Peripheriemodule) und nicht auf Speicher, wobei insbesondere auch eine Nutzung zur deterministischen Trennung von Anwendungen und eine Reduktion des Aufwandes bei einer Implementierung von mehreren Anwendungen in einer Vorrichtung bzw. Recheneinrichtung, z.B. in einem Steuergerät, möglich ist.
-
Bei weiteren bevorzugten Ausführungsformen ist vorgeschlagen, wenigstens einen Zähler zu nutzen, um eine Dienstgüte (QoS) zu emulieren, was gemäß weiteren bevorzugten Ausführungsformen insbesondere dann nützlich sein kann, wenn QoS nicht mittels Hardware realisierbar ist.
-
Bei weiteren bevorzugten Ausführungsformen wird vorgeschlagen, einen oder mehrere QoS-Mechanismen zu emulieren, z.B. mittels wenigstens eines der folgenden Elemente: a) Zähler für Latenz und/oder Bandbreite werden implementiert, b) auf einem hohen Prioritätslevel (z.B. oberhalb von Applikationen) wertet eine Software diese Zähler aus. Eine mögliche Implementierung gemäß weiteren bevorzugten Ausführungsformen sieht z.B. vor: es werden pro Bus x * 2 viele Register (z.B. 32 Bit breit) als Counter (Zähler) implementiert, wobei x eine Anzahl der zu unterstützenden Partitionen charakterisiert, und bevorzugt werden in dem bzw. den Register(n) pro Takt Zugriffe der jeweiligen zugeordneten Applikation gezählt. Weiter bevorzugt wird z.B. alle z ms der Zählerwert mit einem erwarteten Zählerwert verglichen, und wenn der Zählerwert größer als der erwartete Zählerwert ist, wird die Applikation und z.B. der Partition Manager informiert, insbesondere um eine Ersatzmaßnahme einzuleiten.
-
Bei weiteren bevorzugten Ausführungsformen kann - je nach Typ der Vorrichtung 200 bzw. Steuerung bzw. je nach dem Typ des Zielsystems 1 für die Vorrichtung bzw. Steuerung - ein zeitsynchrones Raster bzw. ein winkelsynchrones Raster (z.B. bezüglich einer Umdrehung einer Kurbelwelle einer Brennkraftmaschine) verwendet werden, insbesondere für die vorstehend beispielhaft beschriebene QoS-Emulation mittels Zähler(n).
-
Bei weiteren bevorzugten Ausführungsformen wird bei jedem Anliegen einer Aktion auf dem Bus mit einer (insbesondere vorgebbaren) Partition ID ein Zähler um einen vorgebbaren Wert, z.B. eins, erhöht, wodurch z.B. ein eine Bandbreite charakterisierendes Maß ermittelbar ist.
-
Bei weiteren bevorzugten Ausführungsformen werden ab einem Request (Anfrage) am Bus einer (insbesondere vorgebbaren) Partition die Takte gezählt, bis die Partition den Bus (-Zugriff erteilt) bekommt. Sofern z.B. die gezählte Anzahl Takte geringer ist als eine vorgebbare Latenz ist es o.k. - falls der Wert der gezählten Takte größer ist als die vorgebbare Latenz kann dies bei weiteren bevorzugten Ausführungsformen gespeichert werden und z.B. am Ende des eingestellten Zeitintervalls kann ausgelesen werden, ob die Latenz in dem betrachteten Zeitintervall jemals größer als die voreingestellte Zeit war, und optional, wenn ja, um wieviel höher.
-
Bei weiteren bevorzugten Ausführungsformen ist alternativ oder ergänzend ein z.B. voreingestelltes, automatisches Vergleichen mittels Hardware und/oder ein Auslösen eines Interrupts möglich.
-
Bei weiteren bevorzugten Ausführungsformen können an wenigstens einem Bus der Vorrichtung bzw. Recheneinrichtung ein oder mehrere Zähler vorgesehen werden.
-
Bei weiteren bevorzugten Ausführungsformen können die Zähler zusammen mit entsprechender Software (und/oder Hardware) z.B. zur Bewertung einer eingehaltenen zugeteilten Bandbreite und/oder einer (eingehaltenen) Latenz verwendet werden.
-
Weitere bevorzugte Ausführungsformen, vgl. 3G, beziehen sich auf ein Verfahren und eine Vorrichtung zur Steuerung eines technischen Systems, z.B. eines Fahrzeugs, bei dem eine Speicherschutzeinrichtung (MPU) vorgesehen wird wobei die Speicherschutzeinrichtung insbesondere dazu verwendet wird, vgl. Schritt 135, Zugriffsrechte bezüglich wenigstens eines Bussystems der Vorrichtung 200 bzw. Recheneinrichtung 202 einzuschränken.
-
Ein Vorteil eines Betriebs von mehreren Applikationen auf einer Vorrichtung bzw. Recheneinrichtung gemäß weiteren bevorzugten Ausführungsformen ist eine kurze Latenz eines Datenaustauschs und eine hohe Bandbreite des Austauschs wodurch z.B. Regler in geringeren als bei konventionellen Systemen vorgegebenen Zeitrastern gerechnet werden können, da die Daten aus den anderen Anwendungen vergleichsweise schnell zur Verfügung stehen.
-
Bei weiteren bevorzugten Ausführungsformen wird, um dies zu ermöglichen und insbesondere sicherzustellen, dass sich mehrere Anwendungen nicht unzulässig gegenseitig beeinflussen, vorgeschlagen, eine MPU innerhalb der Recheneinrichtung oder außerhalb der Recheneinrichtung, z.B. im Bereich des Bussystems, dazu zu nutzen, Zugriffsrechte einzuschränken.
-
Bei weiteren bevorzugten Ausführungsformen kann beispielhaft folgender Ablauf verwendet werden: Es ist z.B. eine Core-externe MPU vorgesehen, z.B. in einem Businterface, wobei zwei Applikationen vorgesehen sind, von denen jede auf einem Core läuft.
-
Bei weiteren bevorzugten Ausführungsformen kann die MPU so konfiguriert werden, z.B. bei einem Systemstart, dass in dem jeweils dem anderen Core zugeordneten lokalen Speicher Regionen zum Schreiben zugewiesen werden, und in dem eigenen Speicher Regionen zum Lesen freigegeben. Damit kann dann z.B. jede Applikation die Daten des anderen Core lesen und ihm per Schreiben lokal Daten zur Verfügung stellen, insbesondere ohne dass andere (Speicher-)Bereiche überschrieben werden können.
-
Bei weiteren bevorzugten Ausführungsformen ist demnach vorgeschlagen: ein Verfahren zur Nutzung einer Speicherbereichszuweisung mittels MPU zur Absicherung eines deterministischen Datenaustauschs zwischen mehreren auf der Recheneinrichtung bzw. der Vorrichtung laufenden Applikationen.
-
Bei weiteren bevorzugten Ausführungsformen ist demnach vorgeschlagen: ein Verfahren zur Sicherstellung von deterministischen Speicherzugriffen und/oder Datenaustauschen unterschiedlicher Applikationen unter Verwendung wenigstens einer MPU. Besonders bevorzugt ist „deterministisch“ in diesem Zusammenhang auf das Applikationstiming (also das zeitliche Verhalten der Applikation(en)) bezogen, und insbesondere nicht auf eine konkrete Anzahl von Zyklen für einen Zugriff auf die jeweiligen Ressourcen.
-
Weitere bevorzugte Ausführungsformen, vgl. 3H, beziehen sich auf ein Verfahren und eine Vorrichtung zur Steuerung eines technischen Systems, z.B. eines Fahrzeugs, bei dem wenigstens eine Hardware-Beschleunigereinheit HSM (2) verwendet wird, um ein Hochfahren („Startup“) des Systems bzw. der Vorrichtung 200 zu beschleunigen.
-
In modernen (insbesondere automotive) Systemen kommt es vor, dass eine bestehende Software einer Vorrichtung durch andere SW ausgetauscht wird („Tuning“), um z.B. mehr Leistung in der Anwendung zur Verfügung zu haben (Beispiel mehr Leistung, PS). Eine Methode, dies zu erkennen und ggf. zu verhindern, schlägt vor, dass beim Booten (Starten bzw. Hochfahren) des Systems der Software-Code vorher daraufhin überprüft wird, ob es der Code ist, der tatsächlich ausgeführt werden soll, oder ob der Code manipuliert worden ist, beispielsweise im Rahmen einer Tuning-Maßnahme.
-
Ein Verfahren gemäß weiteren bevorzugten Ausführungsformen, um den SW-Code zu prüfen, sieht vor, wenigstens eine Checksumme (Prüfsumme) über einen vorgebbaren Speicherbereich bzw. den (insbesondere gesamten) Speicher zu ermitteln bzw. zu rechnen. Ein Problem dabei kann sein, dass die Ermittlung bzw. Rechnung der Prüfsumme vergleichsweise lange dauert, und so der Boot-Vorgang verlängert wird. Bei weiteren bevorzugten Ausführungsformen sollte ein Boot-Vorgang z.B. in 30 ms - 100 ms abgeschlossen sein. Durch die Checksummenberechnung kann jedoch u.U. eine signifikante Anzahl von Millisekunden dazukommen.
-
Daher wird bei weiteren bevorzugten Ausführungsformen vorgeschlagen, wenigstens eine Hardware-Beschleunigereinheit HSM vorzusehen und zur Berechnung der Prüfsumme(n) zu verwenden („HW Checksummenbeschleuniger“). Bei weiteren bevorzugten Ausführungsformen können auch mehrere Hardware-Beschleunigereinheiten vorgesehen werden, die ggf. jeweils einen Teil des zu prüfenden Speichers bearbeiten bzw. für den entsprechenden Teil eine Prüfsumme bilden. Weiter bevorzugt erfolgt die Berechnung der Checksumme mittels der wenigstens einen Hardware-Beschleunigereinheit vor einem Start der Applikation(en) APP1, APP2, APP3.
-
Bei weiteren bevorzugten Ausführungsformen können Hardware-Beschleunigereinheiten auch unterschiedlichen Partitionen bzw. Applikationen zugeordnet werden.
-
Weitere bevorzugte Ausführungsformen, vgl. 31, beziehen sich - wie vorstehend bereits erwähnt - auf ein Verfahren und eine Vorrichtung 200 zur Steuerung eines technischen Systems 1, z.B. eines Fahrzeugs 1, bei dem in wenigstens einem Modul, z.B. Hardware-Modul 208 bzw. einer Peripheriekomponente ein Mechanismus, bevorzugt im Interface (Schnittstelle IF (5)) des Moduls 208, HSM, implementiert wird, vgl. Schritt 150 gemäß 31, mittels dem Aufträge von mehreren Partitionen bzw. Applikationen APP1, APP2, APP3 platziert werden können, die insbesondere jeweils von anderen Partitionen bzw. Applikationen nicht überschrieben oder beeinflusst werden können. Bei weiteren bevorzugten Ausführungsformen kann der Mechanismus auch als „Transfer Window(s)“ bezeichnet werden.
-
Bei weiteren bevorzugten Ausführungsformen ist das HW-Modul (bzw. eine Steuerung des Moduls wie z.B. ein Mikrocontroller des Moduls) bzw. die Peripheriekomponente dazu ausgebildet, diese Aufträge gemäß einer vorgegebenen Regel, z.B. in einem Round Robin Verfahren, abzuarbeiten, wodurch vorteilhaft für die (externen) Applikationen ein deterministisches Zeitverhalten dargestellt wird.
-
Weitere bevorzugte Ausführungsformen sehen eine Implementierung von Transfer Windows in wenigstens einem Modul, z.B. HW-Modul, HSM, 208 mit wenigstens einem der folgenden Aspekte vor:
- a) Der Adressbereich des Transfer Window kann wahlweise verschiedenen Applikationen/Partitionen zugeordnet werden,
- b) In dem Modul werden, z.B. mittels SW, nach einem vorgebbaren Verfahren, z.B. einem Round-Robin-Verfahren, die Aufgaben abgearbeitet.
-
Weitere bevorzugte Ausführungsformen beziehen sich auf eine Verwendung des Verfahrens gemäß den Ausführungsformen und/oder der Vorrichtung gemäß den Ausführungsformen und/oder des computerlesbaren Speichermediums gemäß den Ausführungsformen und/oder des Computerprogramms gemäß den Ausführungsformen und/oder des Datenträgersignals gemäß den Ausführungsformen für wenigstens eines der folgenden Elemente: a) Ermöglichen eines deterministischen Laufzeitverhaltens wenigstens mancher, bevorzugt aller, Anwendungen der Vorrichtung, b) Vermeidung einer neuen Homologation für eine erste Anwendung, insbesondere bei dem Verändern wenigstens einer weiteren Anwendung.