DE102020213371A1 - Device and method for controlling a technical system - Google Patents
Device and method for controlling a technical system Download PDFInfo
- Publication number
- DE102020213371A1 DE102020213371A1 DE102020213371.9A DE102020213371A DE102020213371A1 DE 102020213371 A1 DE102020213371 A1 DE 102020213371A1 DE 102020213371 A DE102020213371 A DE 102020213371A DE 102020213371 A1 DE102020213371 A1 DE 102020213371A1
- Authority
- DE
- Germany
- Prior art keywords
- preferred embodiments
- further preferred
- service
- quality
- application
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/80—Actions related to the user profile or the type of traffic
- H04L47/805—QOS or priority aware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
- H04L47/6225—Fixed service order, e.g. Round Robin
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
Verfahren, beispielsweise computerimplementiertes Verfahren, zum Betreiben einer Vorrichtung zur Steuerung eines technischen Systems, insbesondere eines Kraftfahrzeugs bzw. für ein Kraftfahrzug, aufweisend: Verwenden einer Dienstgüte, QoS, Quality of Service, und/oder wenigstens einer die Dienstgüte charakterisierenden Größe, beispielsweise um Partitionen bzw. Applikationen zumindest zeitweise voneinander zu trennen, wobei beispielsweise wenigstens eine Applikation eine Dienstgüte, z.B. charakterisierbar durch Latenz und/oder Bandbreite, für wenigstens eine Peripheriekomponente einstelltVerfahren zur Steuerung eines technischen Systems, insbesondere eines Kraftfahrzeugs.Method, for example computer-implemented method, for operating a device for controlling a technical system, in particular a motor vehicle or for a motor vehicle, comprising: using a quality of service, QoS, quality of service, and/or at least one variable characterizing the quality of service, for example partitions or to separate applications from one another at least temporarily, for example at least one application setting a quality of service, e.g. characterized by latency and/or bandwidth, for at least one peripheral component Method for controlling a technical system, in particular a motor vehicle.
Description
Stand der TechnikState of the art
Es gibt Steuergeräte, die Teilfunktionen eines technischen Systems, z.B. eines Fahrzeugs, steuern. Diese steuern jeweils bestimmte Teilfunktionen und/oder zugehörige Applikationen.There are control units that control sub-functions of a technical system, e.g. a vehicle. These each control specific sub-functions and/or associated applications.
Offenbarung der ErfindungDisclosure of Invention
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 einer Dienstgüte, QoS, Quality of Service, und/oder wenigstens einer die Dienstgüte charakterisierenden Größe, beispielsweise um Partitionen bzw. (z.B. durch die Vorrichtung ausführbare) Applikationen zumindest zeitweise voneinander zu trennen, wobei wenigstens eine Applikation eine Dienstgüte, z.B. charakterisierbar durch Latenz und/oder Bandbreite, für wenigstens eine Peripheriekomponente einstellt.Preferred embodiments relate to a method, for example a computer-implemented method, for operating a device for controlling a technical system, in particular a motor vehicle or for a motor vehicle, comprising: using a quality of service, QoS, quality of service, and/or at least one of the Size characterizing the quality of service, for example in order to at least temporarily separate partitions or applications (e.g. executable by the device) from one another, with at least one application setting a quality of service, e.g. characterizable by latency and/or bandwidth, for at least one peripheral component.
Bei weiteren bevorzugten Ausführungsformen weist das Verfahren weiter auf: Trennen von Zugriffen von Partitionen bzw. Applikationen auf die wenigstens eine Peripheriekomponente basierend auf der Dienstgüte und/oder der wenigstens einen die Dienstgüte charakterisierenden Größe.In further preferred embodiments, the method also includes: separating accesses by partitions or applications to the at least one peripheral component based on the quality of service and/or the at least one variable characterizing the quality of service.
Bei weiteren bevorzugten Ausführungsformen weist das Verfahren weiter auf: Vorgeben einer ersten Dienstgüte für eine erste Peripheriekomponente, Vorgeben einer zweiten Dienstgüte für eine zweite Peripheriekomponente.In further preferred embodiments, the method also includes: specifying a first quality of service for a first peripheral component, specifying a second quality of service for a second peripheral component.
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Vorgeben der ersten Dienstgüte bezüglich einer Bandbreite und/oder einer Latenz erfolgt, und/oder dass das Vorgeben der zweiten Dienstgüte bezüglich einer Bandbreite und/oder einer Latenz erfolgt.In further preferred embodiments, it is provided that the first quality of service is specified with regard to a bandwidth and/or a latency, and/or that the second quality of service is specified with regard to a bandwidth and/or a latency.
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Emulieren der Dienstgüte und/oder der wenigstens einen die Dienstgüte charakterisierenden Größe mittels wenigstens eines Zählers, und/oder Verwenden einer hardwarebasierten Verwaltung der Dienstgüte bzw. der die Dienstgüte charakterisierenden Größe.In further preferred embodiments it is provided that the method further comprises: emulating the quality of service and/or the at least one variable characterizing the quality of service using at least one counter, and/or using hardware-based management of the quality of service or the variable characterizing the quality of service.
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter wenigstens eines der folgenden Elemente aufweist: a) Verwenden wenigstens eines ersten Zählers für eine mit einer ersten Peripheriekomponente assoziierte Latenz, b) Verwenden eines zweiten Zählers für eine mit der ersten Peripheriekomponente assoziierte Bandbreite, c) Verwenden wenigstens eines dritten Zählers für eine mit einer zweiten Peripheriekomponente assoziierte Latenz, d) Verwenden eines vierten Zählers für eine mit der zweiten Peripheriekomponente assoziierte Bandbreite.In further preferred embodiments it is provided that the method further comprises at least one of the following elements: a) using at least a first counter for a latency associated with a first peripheral component, b) using a second counter for a bandwidth associated with the first peripheral component, c ) using at least a third counter for a latency associated with a second peripheral component, d) using a fourth counter for a bandwidth associated with the second peripheral component.
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Auswerten des wenigstens einen Zählers, beispielsweise durch eine Softwarekomponente und/oder eine Hardwarekomponente, wobei beispielsweise die Softwarekomponente eine höhere Priorität bezüglich der Ausführung durch die Recheneinrichtung aufweist als wenigstens eine Applikation, und, optional, Betreiben bzw. Weiterbetreiben der Vorrichtung bzw. wenigstens einer Applikation der Vorrichtung basierend auf dem wenigstens einen Zähler.In further preferred embodiments it is provided that the method further comprises: evaluating the at least one counter, for example by a software component and/or a hardware component, the software component for example having a higher priority with regard to execution by the computing device than at least one application, and optionally operating or continuing to operate the device or at least one application of the device based on the at least one counter.
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Verfahren weiter aufweist: Vergleichen eines Zählerwerts des wenigstens einen Zählers mit einem Vergleichswert, und, falls der Zählerwert größer ist als der Vergleichswert, Signalisieren, beispielsweise des Überschreitens des Vergleichswerts, an die wenigstens eine Applikation und/oder eine mit der wenigstens einen Applikation assoziierte Partition.In further preferred embodiments it is provided that the method further comprises: comparing a counter value of the at least one counter with a comparison value and, if the counter value is greater than the comparison value, signaling, for example that the comparison value has been exceeded, to the at least one application and/or or a partition associated with the at least one application.
Weitere bevorzugte Ausführungsformen beziehen sich auf eine Vorrichtung zur Ausführung des Verfahrens gemäß den Ausführungsformen.Further preferred embodiments relate to a device for carrying out the method according to the embodiments.
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.In further preferred embodiments, it is provided that the device has: a computing device (“computer”) having at least one computing core, a memory device assigned to the computing device for at least temporarily storing at least one of the following elements: a) data, b) computer program, in particular for execution of a method according to the embodiments. In further preferred embodiments, the computer program can also characterize at least one application (hereinafter also referred to as “application”) that is executed on the computing device, e.g. for controlling the technical system.
Bei weiteren bevorzugten Ausführungsformen weist die Vorrichtung bzw. die Recheneinrichtung mehrere Rechenkerne auf.In further preferred embodiments, the device or the arithmetic unit has a plurality of arithmetic cores.
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).In further preferred embodiments, the storage device comprises a volatile memory (e.g. random access memory (RAM)) and/or a non-volatile memory (e.g. 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.In further preferred embodiments, the computing device has at least one of the following elements: microprocessor (μP), microcontroller (μC), application-specific integrated circuit (ASIC), system on chip (SoC), programmable logic module (e.g. FPGA, field programmable gate array), hardware circuit, or any combination thereof.
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.Further preferred embodiments relate to a computer-readable storage medium comprising instructions which, when executed by a computer, cause it to carry out the method according to the embodiments.
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.Further preferred embodiments relate to a computer program comprising instructions which, when the program is executed by a computer, cause the computer to carry out the method according to the embodiments.
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.Further preferred embodiments relate to a data carrier signal which characterizes and/or transmits the computer program according to the embodiments. The data carrier signal can be received, for example, via an optional data interface of the device.
Weitere bevorzugte Ausführungsformen 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, Partitionen bzw. Applikation zumindest zeitweise voneinander zu trennen, also zu separieren.Further preferred embodiments relate to a method for controlling a technical system, e.g. a vehicle, in which a quality of service (QoS, Quality of Service) or at least one variable characterizing the quality of service is used to separate partitions or applications from one another at least temporarily , i.e. to separate.
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.According to further preferred embodiments, it can be advantageous in devices or systems in which several applications can run simultaneously, in particular to achieve the same runtimes of the applications or a definable distribution of resources (in particular independently of other applications), to also take into account one or more buses , which can be used in particular for data transmissions between components.
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, ...Since the runtime of applications is influenced by a number of factors in further preferred embodiments, these factors can also be addressed individually or in combination with one another in further preferred embodiments: core itself (hypervisor mechanism), access to memory (QoS), access to Modules in the computer - such as 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.According to further preferred embodiments, it is proposed to use a mechanism for separating accesses to memory, such as can be provided in bus systems or bus architectures of the device or the computing device, for separating accesses to the (peripheral) modules.
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. 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.
- a)
Application 1 sets a latency of 15 cycles and 20% bus bandwidth for access to a peripheral component, - b) Application 2 sets 40 clocks latency and 70% bus bandwidth on the same peripheral component.
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 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.In other words, in further preferred embodiments, the QoS or QoS mechanisms (e.g. implemented using hardware) can be used to control the bandwidth and/or latency of individual applications, in particular to separate peripheral accesses (applications accessing peripheral modules) and not to memory, whereby in particular it can also be used for the deterministic separation of applications and to reduce the effort involved in implementing a number of applications in one device or computing device, e.g. in a control unit.
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.In further preferred embodiments, it is proposed to use at least one counter to emulate a quality of service (QoS), which according to further preferred embodiments can be particularly useful when QoS cannot be implemented using hardware.
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.In further preferred embodiments it is proposed to emulate one or more QoS mechanisms, eg using at least one of the following elements: a) counters for latency and/or bandwidth are implemented, b) at a high priority level (eg above applications) evaluates a software these counters. A possible implementation according to further preferred embodiments provides, for example: x * 2 many registers (e.g. 32 bits wide) are implemented as counters per bus, with x characterizing a number of the partitions to be supported, and preferably in which or counts the register(s) per clock access of the respective assigned application. More preferably, the counter value is compared with an expected counter value every z ms, and if the counter value is greater than the expected counter value, the application and Eg the Partition Manager informs, in particular to initiate an alternative measure.
Bei weiteren bevorzugten Ausführungsformen kann - je nach Typ der Vorrichtung bzw. Steuerung bzw. je nach dem Typ des Zielsystems 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).In further preferred embodiments - depending on the type of device or control or depending on the type of target system for the device or control - a time-synchronous grid or an angle-synchronous grid (e.g. with regard to one revolution of a crankshaft of an internal combustion engine) can be used. in particular for the QoS emulation described above by way of example using counter(s).
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.In further preferred embodiments, each time an action is pending on the bus with a (particularly predeterminable) partition ID, a counter is incremented by a predeterminable value, e.g. one, as a result of which a measure characterizing a bandwidth can be determined, for example.
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.In further preferred embodiments, starting with a request (request) on the bus of a (particularly specifiable) partition, the clock pulses are counted until the partition gets the bus (access granted). If, for example, the counted number of clocks is less than a specified latency, it is o.k. - if the value of the counted clock pulses is greater than the specifiable latency, this can be stored in further preferred embodiments and e.g. at the end of the set time interval it can be read out whether the latency in the considered time interval was ever larger than the preset time, and optionally, if so, by how much higher.
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.In further preferred embodiments, a preset, automatic comparison using hardware and/or the triggering of an interrupt is possible as an alternative or in addition.
Bei weiteren bevorzugten Ausführungsformen können an wenigstens einem Bus der Vorrichtung bzw. Recheneinrichtung ein oder mehrere Zähler vorgesehen werden.In further preferred embodiments, one or more counters can be provided on at least one bus of the device or computing device.
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.In further preferred embodiments, the counters can be used in conjunction with appropriate software (and/or hardware) to evaluate, for example, a met allocated bandwidth and/or (meshed) latency.
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, c) deterministische Trennung von Anwendungen, beispielsweise bezüglich Zugriffen auf die wenigstens eine Peripheriekomponente.Further preferred embodiments relate to use of the method according to the embodiments and/or the device according to the embodiments and/or the computer-readable storage medium according to the embodiments and/or the computer program according to the embodiments and/or the data carrier signal according to the embodiments for at least one of the following elements: a) enabling a deterministic runtime behavior of at least some, preferably all, applications of the device, b) avoidance of a new homologation for a first application, in particular when changing at least one further application, c) deterministic separation of applications, for example with regard to access to the at least one peripheral component.
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.Further features, application possibilities and advantages of the invention result from the following description of exemplary embodiments of the invention, which are illustrated in the figures of the drawing. All of the described or illustrated features form the subject matter of the invention, either alone or in any combination, regardless of how they are summarized in the claims or their back-reference and regardless of their wording or representation in the description or in the drawing.
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 ,3l jeweils schematisch ein vereinfachtes Flussdiagramm mit Bezug auf Verfahrensaspekte gemäß weiteren bevorzugten Ausführungsformen, -
4A schematisch ein vereinfachtes Flussdiagramm mit Bezug auf Verfahrensaspekte gemäß weiteren bevorzugten Ausführungsformen, -
4B schematisch ein vereinfachtes Flussdiagramm mit Bezug auf Verfahrensaspekte gemäß weiteren bevorzugten Ausführungsformen, -
4C schematisch ein vereinfachtes Flussdiagramm mit Bezug auf Verfahrensaspekte gemäß weiteren bevorzugten Ausführungsformen, -
4D schematisch ein vereinfachtes Flussdiagramm mit Bezug auf Verfahrensaspekte gemäß weiteren bevorzugten Ausführungsformen, -
4E schematisch ein vereinfachtes Flussdiagramm mit Bezug auf Verfahrensaspekte gemäß weiteren bevorzugten Ausführungsformen, -
4F schematisch ein vereinfachtes Flussdiagramm mit Bezug auf Verfahrensaspekte gemäß weiteren bevorzugten Ausführungsformen.
-
1 schematically a simplified block diagram of a technical system according to preferred embodiments, -
2 schematically a simplified block diagram of a device according to further preferred embodiments, -
3A schematically a simplified flow chart with reference to method aspects according to further preferred embodiments, -
3B ,3C ,3D ,3E ,3F ,3G ,3H ,3l each schematically a simplified flow chart with reference to method aspects according to further preferred embodiments, -
4A schematically a simplified flow chart with reference to method aspects according to further preferred embodiments, -
4B schematically a simplified flow chart with reference to method aspects according to further preferred embodiments, -
4C schematically a simplified flow chart with reference to method aspects according to further preferred embodiments, -
4D schematically a simplified flow chart with reference to method aspects according to further preferred embodiments, -
4E schematically a simplified flow chart with reference to method aspects according to further preferred embodiments, -
4F schematically shows a simplified flow chart with reference to method aspects according to further preferred embodiments.
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.
Bei weiteren bevorzugten Ausführungsformen, vgl.
Bei weiteren bevorzugten Ausführungsformen weist die Vorrichtung 200 bzw. die Recheneinrichtung 202 mehrere Rechenkerne 202a, 202b, 202c auf. Mehr als die in
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).In further preferred embodiments, the
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.In further preferred embodiments,
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.Further preferred embodiments relate to a computer-readable storage medium SM, comprising instructions PRG which, when executed by a
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.Further preferred embodiments relate to a computer program PRG, comprising instructions which, when the program is executed by a
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.Further preferred embodiments relate to a data carrier signal DCS, which characterizes and/or transmits the computer program PRG according to the embodiments. The data carrier signal DCS can be received via an
Weitere bevorzugte Ausführungsformen,
Bei weiteren bevorzugten Ausführungsformen weist das Verfahren weiter auf: Trennen 1302 (
Bei weiteren bevorzugten Ausführungsformen,
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass das Vorgeben 1310 der ersten Dienstgüte DG1 bezüglich einer Bandbreite und/oder einer Latenz erfolgt, und/oder dass das Vorgeben 1311 der zweiten Dienstgüte DG2 bezüglich einer Bandbreite und/oder einer Latenz erfolgt.In further preferred embodiments it is provided that the
Bei weiteren bevorzugten Ausführungsformen,
Bei weiteren bevorzugten Ausführungsformen,
Bei weiteren bevorzugten Ausführungsformen,
Bei weiteren bevorzugten Ausführungsformen,
Weitere bevorzugte Ausführungsformen beziehen sich auf eine Vorrichtung 200 zur Ausführung des Verfahrens gemäß den Ausführungsformen.Further preferred embodiments relate to a
Weitere bevorzugte Ausführungsformen, vgl.
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.In further preferred embodiments, a
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.In further preferred embodiments, the
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.In further preferred embodiments, several areas or clusters can be provided, which are characterized, for example, by at least one
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.In further preferred embodiments, at least one cluster can also have at least one circuit component or circuit part, for example a phase-locked loop (PLL, phased locked loop). In further preferred embodiments, when resetting the at least one cluster, the at least one circuit component can also be reset.
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.In further preferred embodiments, any peripheral modules that may be present, which can be assigned to the individual applications APP1, APP2, APP3, for example, can be reset in a supervisor mode and/or at least one application.
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 input 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.In further preferred embodiments, optionally present external components such as external logic can be reset via at least one separate data line, for example separate GPIO (general purpose input output), the resetting being performed according to further preferred embodiments, for example, by a supervisor mode or by an application APP1, APP2, APP3 is running. In other preferred embodiments, the GPIO (signal) can be routed to a reset input of the external component (e.g. external component or circuit) as a reset signal, for example.
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.In further preferred embodiments, a plurality of reset connections (“pins”) can be provided for any external components or circuits that may be present, so that, for example, the external circuits belonging to each application can be reset separately.
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.In further preferred embodiments, the resetting can be carried out by at least one of the sources mentioned below, which are in particular independent of one another: a) a signal, in particular hardware signal, which is triggered, for example, by a supervisor and/or a monitoring logic, b) by a bit which, when described, performs the reset function, c) by having software, particularly an application, set the bits to reflect the reset state.
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“).In further preferred embodiments, specific functions can still be maintained in a targeted manner in the variant c) mentioned above. An example according to further preferred embodiments is an optional timer module (“timer”) which, for example, outputs a pulse width modulated (PWM) signal and which should not be interrupted, in particular not by the reset. According to further preferred embodiments, the other instances or parameters of the timer, in particular in the same module, which according to further preferred embodiments could also be reset by hardware, can be brought into a state via the register settings (writing or setting the bits), which, for example, corresponds to the reset values (“reinitialization”).
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.In further preferred embodiments, it is possible with the circuit functions listed above as examples according to further preferred embodiments, both by a supervisor and at least one application APP1 itself, the components or circuit parts necessary for operation of the application, in particular independently of the state and / or operation of other applications APP2, APP3 (these can be in reset, startup, ramp-down or normal function).
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.Further preferred embodiments relate to a method for resetting a
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.In further preferred embodiments, a plurality of applications APP1, APP2, APP3, in particular independent or at least partially dependent on one another, are operated on the
Bei weiteren bevorzugten Ausführungsformen können optional vorgesehene weitere Komponenten 208 bzw. Schaltungen, insbesondere externe Komponenten bzw. Schaltungen, beispielsweise Peripheriekomponenten 208, 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.In further preferred embodiments,
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. In further preferred embodiments, the assignment of the components to the at least one application can also be carried out dynamically, ie while the device or the application is running.
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.In further preferred embodiments, the optionally provided further components or circuits can be reset, in particular separately from a supervisor and/or at least one application, in particular without affecting the runtime behavior of at least one, preferably several, in particular all further applications of the device.
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.In further preferred embodiments, the runtime behavior is characterized in that the same execution times are maintained, in particular with regard to a bandwidth and/or with regard to latency boundary conditions, with further preferred embodiments not requiring the same clock-exact behavior.
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.In further preferred embodiments, further applications APP3 of the
Weitere bevorzugte Ausführungsformen, vgl.
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass wenigstens ein NVM Speicherbereich SB1 wenigstens einer, insbesondere genau einer, Applikation APP1 zugeordnet werden kann.In further preferred embodiments it is provided that at least one NVM memory area SB1 can be assigned to at least one, in particular precisely one, application APP1.
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.In further preferred embodiments, the NVM memory area is arranged in such a way that it is assigned to the at least one application, e.g. via a) an MPU (memory protection unit, memory protection device), and/or b) via a supervisor, in particular via an assignment of a partition ID can be.
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äß
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.In further preferred embodiments, a plurality of memory modules are provided in the
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.In further preferred embodiments, the submodules have at least partially the same properties as a memory module to be assigned, e.g. with regard to common word line controls and/or common bit line readout circuits and/or common programming voltage supplies.
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.In further preferred embodiments,
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.In further preferred embodiments, the one application or the memory area assigned to it can be reprogrammed from a supervisor and/or a partition manager and/or an application.
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.In further preferred embodiments, in particular by providing the resources described above, the method can also be carried out in an external memory (in particular with regard to the computing device or device), in particular NVM memory, which, for example, has several blocks and which, for example, has a separate Word line drive for the blocks and/or separate bit line readout circuits for the blocks. In further preferred embodiments, the NVM memory can be in the form of an LPDDR (low power double data rate) memory type.
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.
- a) the method is carried out, for example in a motor vehicle, during operation (for example in one of the various operating states of the motor vehicle).
- b) on or by means of the device or controller, several independent or dependent applications are operated simultaneously or at least partially overlapping in time,
- c) different memory areas in and/or outside the computing device can be assigned to the applications, in particular flexibly and/or dynamically,
- d) different memory areas in and/or outside of the computing device can be reprogrammed, in particular separately or independently of one another, by a supervisor and/or at least one (in particular an assigned) application, in particular without affecting the runtime behavior of at least one other application or several or to influence all other applications of the device or computing device (the runtime behavior is characterized, for example, by the fact that the same execution times (in particular with regard to a specifiable bandwidth and/or specifiable latency boundary conditions are observed, whereby in particular a clock-exactly the same behavior is not required according to further preferred embodiments),
- e) at least one other, preferably all other, applications of the device or computing device continue to be functional if one or more of the applications are reprogrammed.
Weitere bevorzugte Ausführungsformen, vgl.
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.In further preferred embodiments, it is provided that the FCCU is designed to ensure independent (further) operation of applications of the device or computing device, whereby, for example, functionally deterministically separate reactions (in particular related to functional safety, "safety") e.g. for hardware errors. In other words, it can be made possible in further preferred embodiments that applications not affected by the hardware error, for example, can continue to be executed.
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 (
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.In further preferred embodiments, error input signals are assigned to one or more applications, with error reactions (see e.g. the embodiments described above as examples) being able to be generated or output to the partitions and/or applications and/or assigned error pins.
Sobald beispielsweise bei einem ersten Rechenkern („Core 1“) 202a (
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. According to further preferred embodiments, an error can be detected, for example, in a
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,
- a) the method is carried out, e.g. in a motor vehicle, during operation (e.g. in one of the various operating states of the motor vehicle),
- b) on or by means of the device or controller, several independent or dependent applications are operated simultaneously or at least partially overlapping in time,
- c) Various errors or error events (“error events”) (e.g. RAM, core, NVM, ...), which can occur in and/or outside (external NVM or RAM) of the computing device, can each be assigned to at least one application will,
- d) at least one, preferably several, in particular all, applications can, at least within their resources, evaluate one or the error and/or initiate a corresponding error reaction and/or inform at least one other application, e.g. about possible safety errors, in particular in the resources assigned to them,
- e) at least one, preferably several, in particular all, applications can be informed about an error or the error by at least one other application,
- f) Other applications, in particular those not affected by an error or the error, can continue to run, in particular in such a way that the runtime behavior, especially the latency boundary conditions, are observed, whereby in particular the same clock-accurate behavior is not required,
Weitere bevorzugte Ausführungsformen, vgl.
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.In further preferred embodiments, it is provided, in particular with regard to functionally deterministically separate safety reactions to hardware errors, that the unaffected application(s) continue to operate independently and, if applicable, the external unit(s) optionally connected thereto (such as a control of drivers, e.g. PHY for signals that carry a safety load and the conversion of the connections of the computing device ("computer pins") e.g. to a physical bus protocol) or also the activation of components such as ignition/injection in an internal combustion engine) to be able to guarantee, that these circuits assigned externally (with respect to the computing device) to the applications signal, for example, the safety status "Error" (can also be "Reset" in further preferred embodiments, but also in addition to the reset), in particular around the circuit parts assigned to the applications, that are not affected, not to influence.
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.In further preferred embodiments, three computing cores (3 cores) are provided by way of example, with 3 applications, one of the three applications running on each core. Furthermore, e.g. three error pins (connections, e.g. for signaling error states) are provided. In further preferred embodiments, external interfaces for a VCU (vehicle control unit) (
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.In further preferred embodiments, the combustion application would like to switch off the injection, for example, in order to reduce the torque of the engine. For this purpose, for example, the error pin 3 (which, for example, has been assigned to application 3 during startup (i.e. when the device is started up)) is activated, which is preferably connected to the (external) injection circuit (IC) in such a way that this, in particular, is independent is switched off by the impulses that specify the injection timing and does not control the injection valves, for example. In further preferred embodiments, the VCU function continues to run on
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“).
- a) The signaling of the safety status can preferably be used, for example, as a switch-off signal for the external components ("peripheral modules"),
- b) The signaling can be assigned to individual applications that run in parallel on the computing device, for example, with peripheral modules assigned to an application being able to be reset independently of the status of other applications or their peripheral modules,
- c) an assignment can be made, preferably unchangeable, after a reset,
- d) Aspects of these embodiments can also be used for external security components such as external crypto components (cryptography accelerator, hardware security module), interfaces,
- e) Use both in relation to aspects of functional safety (“FUSI”, “Safety”) and in relation to aspects of security, eg against manipulation (“Security”).
Weitere bevorzugte Ausführungsformen, vgl.
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).In further preferred embodiments, the at least one
Hierdurch kann bevorzugt erreicht werden, dass sich mehrere Applikationen APP1, APP2, APP3 bei einem Betrieb auf der Recheneinrichtung 202 nicht gegenseitig beeinflussen.In this way, it can preferably be achieved that a number of applications APP1, APP2, APP3 do not mutually influence one another when they are operated on the
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.
- 1. Operation of an analog/digital converter (ADC): If several applications access the resources of the ADC (e.g. channels/inputs and/or control registers), then one application can, for example, overwrite the settings of another application - e.g. channel assignment, sample Time (sampling rate), Conversion Time (conversion time), ...
- 2. CAN (Controller Area Network): If CAN identifiers are used in several applications on the same CAN bus, queue entries can be made in a CAN module, for example, whereby the software of a partition (ie, for example an application) changes the settings of a can be overwritten by another application.
Bei weiteren bevorzugten Ausführungsformen ist vorgesehen, dass wenigstens ein Peripheriemodul, bevorzugt vollständig, einer Partition bzw. Applikation zugeordnet werden kann.In further preferred embodiments it is provided that at least one peripheral module, preferably completely, can be assigned to a partition or application.
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.In further preferred embodiments, modules are provided in the device or computing device, such as SPI (serial peripheral interface), LIN (local interconnect network), CAN, ADC, which, for example, can preferably be completely assigned to an application, in particular because the resources of these modules either be used completely by the partition or application (application), or these modules are present several times, in particular so frequently, that corresponding individual modules can be completely assigned to a partition or application (application).
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.
- - Assignment of at least one, preferably several or all modules to a partition or application (in particular in the module), with the module in particular only receiving write and/or read commands from a bus (e.g. data bus for connecting the module to component(s). ) of the computing device or device) that come with a definable identifier, eg “Partition ID”, which has been assigned to the module beforehand in the system setup by a partition manager.
Bei weiteren bevorzugten Ausführungsformen werden somit Module, bevorzugt komplette Module, insbesondere fest (also statisch), zu Partitionen, insbesondere einer Partition bzw. Applikation, zugeordnet.In further preferred embodiments, modules, preferably complete modules, are thus assigned, in particular permanently (that is to say statically), to partitions, in particular to a partition or application.
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.In further preferred embodiments it can be provided that (peripheral) modules can be assigned to a number of applications, for example predeterminable or controllable by at least one hardware function such as an address range restriction.
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.In further preferred embodiments, there are e.g can become.
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.
- - Assignment of the modules to the partitions or applications via address ranges, and/or
- - Arrangement of the resources in a module so that the resources that are assigned to a partition (or application) that they are close to each other (eg adjacent) in an address range, and/or
- - The address range or ranges can be assigned externally via a bus bridge, for example, and/or via a memory protection device (MPU), which ensures, for example, that the internal master/slave(s) that are not assigned to the partition or application, cannot read and/or write to this address range.
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.In further preferred embodiments, (peripheral) modules can therefore be assigned to applications or partitions via a restriction of the address areas, preferably internal to the module.
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.In further preferred embodiments, there are also modules, for example, which can be separated from one another via software (SW) mechanisms, these modules being used, for example, by a number of partitions or applications. An example according to further preferred embodiments is e.g. Ethernet without using implemented queues, another example according to further preferred embodiments is a bus for interprocessor communication, or also a CAN module in which a SW assignment, in particular of the individual ID(s) , makes sense because, for example, there are not enough CAN modules in the system.
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.
- a) To configure these modules, in particular during startup, using a configuration tool in such a way that the boundary conditions of all partitions or applications that use these resources are taken into account,
- b) E.g. CAN/Ethernet: bandwidth and/or latency from the request is implemented in such a way that the requirements are met - allocation of the message ID to the queues of the modules with the corresponding priorities to be assigned,
- c) During operation, writing/reading to these resources is regulated via the Partition Manager (SW that runs in a rights mode via the partitions or applications) - here there are preferably several options for calling the Partition Manager - e.g via a call or via trap/emulate (a resource that is locked is deliberately written to and the higher privilege level is called up to solve the access conflict,
- d) A further possibility according to further preferred embodiments is to regulate the writing and/or reading by setting up DMA channels during operation—these DMA channels are then, for example, preferably only activated with specific triggers, and the reading and/or Writing then includes, for example, only special resources in the module, and then, for example, writing/reading the data from address areas permanently assigned to the individual partitions.
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 werdenIn further preferred embodiments it is therefore proposed: allocation of resources (e.g. peripheral modules) of the device or computing device to a plurality of partitions or applications, with SW functions and HW functions being used
Weitere bevorzugte Ausführungsformen, vgl.
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.According to further preferred embodiments, it can be advantageous in devices or systems in which several applications can run simultaneously, in particular to achieve the same runtimes of the applications or a definable distribution of resources (in particular independently of other applications), to also take into account one or more buses , which can be used in particular for data transmissions between components.
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, ...Since the runtime of applications is influenced by a number of factors in further preferred embodiments, these factors can also be addressed individually or in combination with one another in further preferred embodiments: core itself (hypervisor mechanism), access to memory (QoS), access to Modules in the computer - such as 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.According to further preferred embodiments, it is proposed to use a mechanism for separating accesses to memory, such as can be provided in bus systems or bus architectures of the device or the computing device, for separating accesses to the (peripheral) modules.
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äß
- 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.
- a)
Application 1 sets a latency of 15 cycles and 20% bus bandwidth for access to a peripheral component, - b) Application 2 sets 40 clocks latency and 70% bus bandwidth on the same peripheral component.
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.In other words, in other preferred embodiments, the QoS or QoS mechanisms (e.g. implemented using hardware) can be used to control the bandwidth and/or latency of individual applications APP1, in particular to separate peripheral access (application access to peripheral modules ) and not to memory, whereby in particular it can also be used for the deterministic separation of applications and to reduce the effort involved in implementing a number of applications in one device or computing device, e.g. in a control unit.
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.In further preferred embodiments, it is proposed to use at least one counter to emulate a quality of service (QoS), which according to further preferred embodiments can be particularly useful when QoS cannot be implemented using hardware.
Bei weiteren bevorzugten Ausführungsformen wird vorgeschlagen, einen oder mehrere QoS-Mechanismen zu emulieren (vgl. auch Block 1320 gemäß
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.A possible implementation according to further preferred embodiments provides, for example: per bus x * 2 many registers (e.g. 32 bits wide) are implemented as counters, where x characterizes a number of the partitions to be supported, and preference is given to the counts the register(s) per clock access of the respective assigned application. More preferably, for example, the counter value is compared with an expected counter value every z ms, and if the counter value is greater than the expected counter value, the application and, for example, the partition manager are informed, in particular in order to initiate an alternative measure.
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).In further preferred embodiments--depending on the type of
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.In further preferred embodiments, each time an action is pending on the bus with a (particularly predeterminable) partition ID, a counter is incremented by a predeterminable value, e.g. one, as a result of which a measure characterizing a bandwidth can be determined, for example.
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.In further preferred embodiments, starting with a request (request) on the bus of a (particularly specifiable) partition, the clock pulses are counted until the partition gets the bus (access granted). If, for example, the counted number of clocks is less than a specified latency, it is o.k. - if the value of the counted clock pulses is greater than the specifiable latency, this can be stored in further preferred embodiments and e.g. at the end of the set time interval it can be read out whether the latency in the considered time interval was ever larger than the preset time, and optionally, if so, by how much higher.
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.In further preferred embodiments, a preset, automatic comparison using hardware and/or the triggering of an interrupt is possible as an alternative or in addition.
Bei weiteren bevorzugten Ausführungsformen können an wenigstens einem Bus der Vorrichtung bzw. Recheneinrichtung ein oder mehrere Zähler vorgesehen werden.In further preferred embodiments, one or more counters can be provided on at least one bus of the device or computing device.
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.In further preferred embodiments, the counters can be used in conjunction with appropriate software (and/or hardware) to evaluate, for example, a met allocated bandwidth and/or (meshed) latency.
Weitere bevorzugte Ausführungsformen, vgl.
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.An advantage of operating several applications on one device or computing device according to further preferred embodiments is a short latency of data exchange and a high bandwidth of the exchange, which means that controllers, for example, can be calculated in shorter time frames than specified in conventional systems, since the data from the other Applications are available relatively quickly.
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.In further preferred embodiments, in order to make this possible and in particular to ensure that multiple applications do not impermissibly influence one another, it is proposed to use an MPU within the computing device or outside of the computing device, e.g. in the area of the bus system, to restrict access rights.
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.In further preferred embodiments, the following sequence can be used as an example: A core-external MPU is provided, e.g. in a bus interface, with two applications being provided, each of which runs on a core.
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.In further preferred embodiments, the MPU can be configured in such a way, e.g. during a system start, that regions in the local memory assigned to the other core are allocated for writing and regions in its own memory are released for reading. This means that each application can then, for example, read the data of the other core and write data to it locally, in particular without other (memory) areas being overwritten.
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.In further preferred embodiments, the following is therefore proposed: a method for using a memory area allocation by means of an MPU to ensure a deterministic data exchange between a number of applications running on the computing device or the device.
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.In other preferred embodiments, the following is therefore proposed: a method for ensuring deterministic memory accesses and/or data exchanges between different applications using at least one MPU. In this context, “deterministic” is particularly preferably related to the application timing (ie the temporal behavior of the application(s)), and in particular not to a specific number of cycles for accessing the respective resources.
Weitere bevorzugte Ausführungsformen, vgl.
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.In modern (particularly automotive) systems, it happens that the existing software of a device is replaced by other software (“tuning”), e.g. to have more power available in the application (e.g. more power, PS). One method of detecting and, if necessary, preventing this is to check the software code before booting (starting or booting up) the system to see whether it is the code that is actually supposed to be executed or whether the Code has been manipulated, for example as part of a tuning measure.
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.A method according to further preferred embodiments for checking the SW code provides for determining or calculating at least one checksum (checksum) over a predefinable memory area or the (in particular entire) memory. A problem can be that the determination or calculation of the checksum takes a comparatively long time, which means that the boot process is lengthened. In further preferred embodiments, a boot process should be completed in 30 ms - 100 ms, for example. However, the checksum calculation may add a significant number of milliseconds.
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.It is therefore proposed in further preferred embodiments to provide at least one hardware accelerator unit HSM and to calculation of the checksum(s) ("HW Checksum Accelerator"). In further preferred embodiments, a plurality of hardware accelerator units can also be provided which, if necessary, each process a part of the memory to be checked or form a checksum for the corresponding part. More preferably, the checksum is calculated using the at least one hardware accelerator unit before starting the application(s) APP1, APP2, APP3.
Bei weiteren bevorzugten Ausführungsformen können Hardware-Beschleunigereinheiten auch unterschiedlichen Partitionen bzw. Applikationen zugeordnet werden.In further preferred embodiments, hardware accelerator units can also be assigned to different partitions or applications.
Weitere bevorzugte Ausführungsformen, vgl.
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.In further preferred embodiments, the HW module (or a controller of the module such as a microcontroller of the module) or the peripheral component is designed to process these orders according to a predetermined rule, e.g. in a round robin process, which is advantageous for the (external) applications a deterministic time behavior is shown.
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.
- a) The address range of the transfer window can be assigned to different applications/partitions,
- b) The tasks are processed in the module, for example by means of software, according to a predefinable method, for example a round-robin method.
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.Further preferred embodiments relate to use of the method according to the embodiments and/or the device according to the embodiments and/or the computer-readable storage medium according to the embodiments and/or the computer program according to the embodiments and/or the data carrier signal according to the embodiments for at least one of the following elements: a) enabling a deterministic runtime behavior of at least some, preferably all, applications of the device, b) avoidance of a new homologation for a first application, in particular when changing at least one further application.
Claims (13)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102020213371.9A DE102020213371A1 (en) | 2020-10-22 | 2020-10-22 | Device and method for controlling a technical system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102020213371.9A DE102020213371A1 (en) | 2020-10-22 | 2020-10-22 | Device and method for controlling a technical system |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102020213371A1 true DE102020213371A1 (en) | 2022-04-28 |
Family
ID=81076897
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102020213371.9A Pending DE102020213371A1 (en) | 2020-10-22 | 2020-10-22 | Device and method for controlling a technical system |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102020213371A1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102014019531A1 (en) | 2014-12-23 | 2016-06-23 | Liebherr-Aerospace Lindenberg Gmbh | Method for operating an aircraft control component and control component |
-
2020
- 2020-10-22 DE DE102020213371.9A patent/DE102020213371A1/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102014019531A1 (en) | 2014-12-23 | 2016-06-23 | Liebherr-Aerospace Lindenberg Gmbh | Method for operating an aircraft control component and control component |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE68920929T2 (en) | Timer channel with multiple timer reference features. | |
DE68924810T2 (en) | Timer channel for use in a multi-channel time system. | |
DE102017214068B4 (en) | Method, device and computer program for dynamic resource allocation in a multiprocessor computer system | |
DE68915074T2 (en) | Integrated timer circuit with several channels and assigned operating processor. | |
DE102014002181B4 (en) | Chip and method of operating a chip | |
DE68922545T2 (en) | Assigned service processor with transmission options between channels. | |
DE102013113262A1 (en) | Trigger-routing unit | |
WO2021122734A1 (en) | Method and device for operating a computing device | |
DE102020213378A1 (en) | Device and method for controlling a technical system | |
WO2021213821A1 (en) | Device and method for controlling a technical system | |
EP3186710B1 (en) | Microcontroller system and method for safety-critical motor vehicle systems and the use thereof | |
DE102020213371A1 (en) | Device and method for controlling a technical system | |
DE102020213372A1 (en) | Device and method for controlling a technical system | |
DE102020213373A1 (en) | Device and method for controlling a technical system | |
DE102020213370A1 (en) | Device and method for controlling a technical system | |
DE102020213377A1 (en) | Device and method for controlling a technical system | |
DE102020213369A1 (en) | Device and method for controlling a technical system | |
DE102020213374A1 (en) | Device and method for controlling a technical system | |
DE102020213375A1 (en) | Device and method for controlling a technical system | |
WO2011134762A1 (en) | Coprocessor having task sequence control | |
DE102017209856A1 (en) | Arithmetic unit and operating method for this | |
DE112013007143T5 (en) | Computer system and control method | |
DE102020116959A1 (en) | WATCHDOG CIRCUIT, CIRCUIT, SYSTEM-ON-CHIP, METHOD FOR OPERATING A WATCHDOG CIRCUIT, METHOD FOR OPERATING A CIRCUIT AND METHOD FOR OPERATING A SYSTEM-ON-CHIP | |
DE102007018777A1 (en) | Control device for vehicles | |
DE102009009730B4 (en) | Local timer cell its use and method of operating a module |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R163 | Identified publications notified |