DE102013209152A1 - Vorrichtung und Verfahren zur Zustandsumschaltung - Google Patents

Vorrichtung und Verfahren zur Zustandsumschaltung Download PDF

Info

Publication number
DE102013209152A1
DE102013209152A1 DE102013209152.4A DE102013209152A DE102013209152A1 DE 102013209152 A1 DE102013209152 A1 DE 102013209152A1 DE 102013209152 A DE102013209152 A DE 102013209152A DE 102013209152 A1 DE102013209152 A1 DE 102013209152A1
Authority
DE
Germany
Prior art keywords
task
priority level
active
tasks
state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102013209152.4A
Other languages
English (en)
Inventor
Wolfgang Romes
Markus Ferch
Holger Broede
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102013209152.4A priority Critical patent/DE102013209152A1/de
Publication of DE102013209152A1 publication Critical patent/DE102013209152A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

Die Erfindung betrifft eine Vorrichtung zur Zustandsumschaltung in einer Steuerung von einem Ist-Zustand, der eine Vielzahl von Tasks mit jeweils zugeordneter Prioritätsstufe umfasst, in einen Ziel-Zustand, umfassend: eine erste Bestimmungseinrichtung zum Bestimmen (220) einer niedrigsten aktiven Prioritätsstufe aus aktiven Tasks der Vielzahl von Tasks, eine Vergleichseinrichtung zum Vergleichen (230) der Prioritätsstufe eines Tasks der Vielzahl von Tasks mit der niedrigsten aktiven Prioritätsstufe, eine Aktivierungseinrichtung zum Aktivieren (240) des Tasks, wenn die Prioritätsstufe des Tasks größer ist als die niedrigste aktive Prioritätsstufe (232), eine erste Aktivierungsverhinderungseinrichtung zum Verhindern (250) einer Aktivierung des Tasks, wenn die Prioritätsstufe des Tasks gleich der niedrigsten aktiven Prioritätsstufe ist (234), eine zweite Aktivierungsverhinderungseinrichtung zum Verhindern (260) einer Aktivierung des Tasks, wenn die Prioritätsstufe des Tasks kleiner ist als die niedrigste aktive Prioritätsstufe (236), eine zweite Bestimmungseinrichtung zum Bestimmen (270), ob noch mindestens ein Task der Vielzahl von Tasks aktiv ist, eine Setzeinrichtung zum Setzen des Ziel- Zustands, wenn kein Task aktiv ist (274), und eine Ausführungseinrichtung zum Ausführen der Steuerung in dem Ziel-Zustand, sowie ein Verfahren, ein Computerprogramm und ein Computerprogrammprodukt.

Description

  • Stand der Technik
  • Die Erfindung geht aus von einer Vorrichtung oder einem Verfahren nach Gattung der unabhängigen Ansprüche.
  • Gegenstand der Erfindung sind auch eine Steuerungs¬einrichtung (Steuer¬gerät, Electronic Control Unit, ECU), die zur Steuerung und / oder Regelung von Komponenten eines Kraftfahrzeugs eingesetzt wird, ein Computerprogramm und ein Computerprogrammprodukt.
  • Aus DE 103 32 700 A1 ist bereits ein Verfahren zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit mit wenigstens zwei Ausführungseinheiten bekannt, wobei ein Wechsel von einem ersten Betriebsmodus in einen zweiten Betriebsmodus dadurch ausgelöst wird, dass durch die Prozessoreinheit auf eine vorgegebene Speicheradresse zugegriffen wird.
  • Offenbarung der Erfindung
  • Vorteile der Erfindung
  • Die erfindungsgemäße Vorrichtung und das erfindungsgemäße Verfahren mit den Merkmalen den unabhängigen Ansprüche haben demgegenüber den Vorteil, dass sie einen konsistenten und / oder synchronisierten Zustandsübergang zwischen verschiedenen Zuständen bereitstellen. Sie basieren auf einem expliziten Mechanismus.
  • Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen der im unabhängigen Anspruch 1 angegebenen Vorrichtung und des im unabhängigen Anspruch 5 angegebenen Verfahrens möglich.
  • Besonders vorteilhaft ist, dass die Vorrichtung eine Verzweigungseinrichtung zum Verzweigen zur ersten Bestimmungseinrichtung umfassen kann, wenn noch mindestens ein Task aktiv ist.
  • Besonders vorteilhaft ist weiterhin, dass die Vorrichtung eine erste Aktivierungsverhinderungseinrichtung umfassen kann, die das Ausführen des Tasks nicht verhindert, wenn der Task bereits aktiv ist.
  • Besonders vorteilhaft ist weiterhin, dass die Vorrichtung eine Aktivierungsverhinderungseinrichtung umfassen kann, die das Aktivieren des Tasks nicht verhindert, wenn ein anderer Task der Vielzahl von Tasks von dem Task abhängig ist.
  • Besonders vorteilhaft ist weiterhin, dass die Vorrichtung einen Mehrkernprozessor oder mehrere Prozessoren umfassen kann.
  • Besonders vorteilhaft ist weiterhin, dass die Vorrichtung eine kleinste Prioritätsstufe umfassen kann.
  • Besonders vorteilhaft ist weiterhin, dass die Vorrichtung eine Leerlaufbedingung berücksichtigen kann.
  • Besonders vorteilhaft ist weiterhin, dass das Verfahren zum Bestimmen der niedrigsten aktiven Prioritätsstufe verzweigt, wenn noch mindestens ein Task aktiv ist.
  • Besonders vorteilhaft ist weiterhin, dass das Verfahren den Task ausführt, wenn die Prioritätsstufe des Tasks gleich der niedrigsten aktiven Prioritätsstufe ist und der Task bereits aktiv ist.
  • Besonders vorteilhaft ist weiterhin, dass das Verfahren den Task aktiviert, wenn die Prioritätsstufe des Tasks gleich der niedrigsten aktiven Prioritätsstufe ist und ein anderer Task der Vielzahl von Tasks von dem Task abhängig ist.
  • Besonders vorteilhaft ist weiterhin, dass das Verfahren auf einem Mehrkernprozessor oder mehreren Prozessoren ausgeführt werden kann.
  • Besonders vorteilhaft ist weiterhin, dass das Verfahren eine kleinste Prioritätsstufe umfassen kann.
  • Besonders vorteilhaft ist weiterhin, dass das Verfahren eine Leerlaufbedingung berücksichtigen kann.
  • Kurze Beschreibung der Zeichnungen
  • Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert.
  • Es zeigen:
  • 1 eine Vorrichtung zur Zustandsumschaltung gemäß einer bevorzugten Ausführungs¬form der Erfindung,
  • 2 ein Verfahren zur Zustandsumschaltung gemäß einer bevorzugten Ausführungs¬form der Erfindung, und
  • 3 einen beispiel¬haften zeit¬lichen Verlauf einer Zustandsumschaltung anhand von Tasks eines Prozessors gemäß der bevorzugten Ausführungs¬form der Erfindung.
  • Ausführungsformen der Erfindung
  • In der 1 ist eine Vorrichtung 10 zur Zustandsumschaltung gemäß einer bevorzugten Ausführungsform der Erfindung gezeigt. Die Vorrichtung 10 umfasst eine Prozessorschicht 110, eine Betriebssystemschicht 120 und eine Anwendungsschicht 130.
  • Die Prozessorschicht 110 umfasst einen Prozessor (Hardware). Der Prozessor kann ein Einkernprozessor (Single Core Processor), zum Beispiel ein Prozessor mit einem mehrfädigen Hauptprozessor (multi-threaded Central Processing Unit (CPU)), oder ein Mehrkernprozessor (Multi-core Processor), zum Beispiel ein Zweikernprocessor (Dual-core Processor), Dreikernprozessor (Triple-core Processor), Vierkernprocessor (Quad-core Processor), Sechskernprozessor (Hexa-core Processor), Achtkernprozessor (Octa-core Processor) oder Vielkernprozessor (Many-core processor). Der Prozessor kann symmetrische, d. h. gleiche, Rechenkerne oder asymmetrische, d. h. unterschiedliche, Rechenkerne, zum Beispiel einen Hauptprozessor und einen Ko-Prozesssor (Co-processor) umfassen. Der Prozessor kann ein Mikroprozessor oder ein Mikrocontroller, d. h. Prozessor mit einen, zwei, drei, vier oder mehr Peripheriefunktionsbausteinen sein. Wie in 1 beispielhaft angedeutet, kann der Prozessor eine Vielzahl von Rechenkernen 112 1... 112 n umfassen. Alternativ kann die Prozessorschicht 110 eine Vielzahl von Prozessoren umfassen (Multiprozesssystem).
  • Die Betriebssystemschicht 120 umfasst ein Betriebssystem, zum Beispiel eine Echtzeitbetriebssytem wie OSEK (Offene Systeme und deren Schnittstellen für die Elektronik im Kraftfahrzeug) beispielsweise OSEK/VDX, FreeOSEK oder openOSEK, oder AUTOSAR (AUTomotive Open System ARchitecture). Wie in 1 beispielhaft und vereinfacht gezeigt, umfasst das Betriebssystem eine Steuerung 122, die eine Prozesssteuerung (Prozesssteuerprogramm, Scheduler) 124 umfasst, Ressourcen 126, die zum Beispiel Bibliotheken für Schnittstellen, Berechnungen, Verschlüsselung usw. bereitstellen, und Dienste (Services) 128 1...128 n, zum Beispiel in Form einer Laufzeitumgebung (Run Time Environment, RTE), die mit den Rechenkernen 112 1...112 n verbunden sind. Dabei kann ein (gemeinsamer) Scheduler für mehrere Kerne oder Prozessoren vorgesehen sein. Alternativ kann ein Scheduler je Kern oder Prozessor vorgesehen sein.
  • Die Anwendungsschicht 130 umfasst ein Anwendungsprogramm (Software). Das Anwendungsprogramm kann eine Vielzahl von Bausteinen 132, 134, 136, 138, zum Beispiel Funktionen, Bibliotheken, Routinen, Parameter, Tabellen usw. umfassen. Die Bausteine können in einer Programmiersprache, oder unterschiedlichen Programmiersprachen, wie C, C# oder Java implementiert sein. Das Anwendungsprogramm ist bzw. die Bausteine 132, 134, 136, 138 sind über die Dienste 128 1...128 n mit den Rechenkernen 112 1...112 n verbunden.
  • Somit ermöglichen die Dienste 128 1...128 n eine Verarbeitung der Prozesse mittels der Rechenkerne 112 1...112 n.
  • Die Vorrichtung 10 kann von einem Computer, zum Beispiel einer Steuerungseinrichtung wie einer Steuerungseinrichtung (Steuergerät, Motorsteuergerät, ESP-Steuergerät) für ein Kraftfahrzeug, einem Rechner wie einem Arbeitsplatzrechner (Desktop-Computer), einem tragbaren Rechner (Laptop Computer, Notebook Computer, Tablet Computer), einem Endgerät wie einem Telekommunikationsendgerät (Mobile Phone, Smart Phone), umfasst sein.
  • Zum Steuern des Prozessors regelt (schedult) der Scheduler 124, zum Beispiel mittels einer Arbitrationslogik, die zeitliche Ausführung mehrerer Prozesse (Tasks).
  • Somit kann die in das Anwendungsprogramm implementierte Funktionalität auf verschiedene Aufgaben (Tasks) und / oder Unterbrechungsroutinen (Interrupt Service Routines, ISRs) aufgeteilt werden, die unterschiedliche Wichtigkeiten (Prioritäten) aufweisen können und von dem Betriebssystem verwaltet werden. Die Tasks und ISRs können ihrerseits Funktionen der Software aufrufen. Somit können verschiedenste, funktional begründete zeitliche Randbedingungen und Einschränkungen bezüglich der verfügbaren Hardware berücksichtigt werden.
  • Die Vorrichtung 10 kann verschiedene Betriebszustände (Zustände, Modi) umfassen. Beispielsweise können die Betriebszustände bei einem Antiblockiersystem (ABS) einen ersten Zustand, in dem sich ein Rad dreht, und einen zweiten Zustand, die dem das Rad blockiert, umfassen. Die Vorrichtung 10 kann die Zustände auf verschiedene Arten berücksichtigen. Beispielsweise kann die Zustands-Abhängigkeit innerhalb der Prozesse oder durch separate Zustands-spezifische Prozesse berücksichtigt werden. Weiterhin kann die Vorrichtung 10 Mischformen der Zustands-Abhängigkeiten verwenden.
  • Die Vorrichtung 10 kann die Prozesse auf verschiedene Arten aufrufen. Beispielsweise kann die Vorrichtung 10 nur einen Satz (Set) von Tasks und ISRs oder eine Vielzahl von Sätzen verwenden, wobei jeder Satz der Vielzahl von Sätzen einem Zustand zugeordnet ist und jeweils der Satz der Vielzahl von Sätzen, der einem betreffenden (gewünschten) Zustand (Ziel-Zustand) zugeordnet ist, zur Ausführung aufgerufen wird. Weiterhin kann die Vorrichtung 10 Mischformen der Zustands-Aufrufe verwenden.
  • Die Vorrichtung 10 kann eine Umschaltung (Wechsel) von einem aktiven Zustand (Ist-Zustand) in den Ziel-Zustand auf verschiedene Arten erreichen. Beispielsweise kann die Vorrichtung 10 direkt oder über einen separaten Übergangszustand (Transitions-Modus) oder über einen synchronisierten Übergang oder über eine Koexistenz zweier Zustände umschalten. Der synchronisierte Übergang kann beispielsweise von dem aktiven Zustand direkt in den Ziel-Zustand oder von dem aktiven Zustand über den Übergangszustand in den Ziel-Zustand erfolgen. Die Koexistenz kann beispielsweise von dem aktiven Zustand über die Koexistenz des aktiven Zustands und des Ziel-Zustands in den Ziel-Zustand oder von dem aktiven Zustand über die Koexistenz des Übergangszustands und des Ziel-Zustands in den Ziel-Zustand erfolgen.
  • Eine Zustandsumschaltung kann durch einen externen Vorgang bzw. ein externes Signal, das an einen Anschluss (Terminal) der Vorrichtung 10 angelegt, zum Beispiel ein Bremssignal des ABS, ausgelöst werden (Umschaltungsanforderung). Die Vorrichtung 10 muss die Zustandsumschaltung innerhalb einer vorbestimmten Zeit (Intervall) bereitstellen, um ihre ordnungsgemäße Funktion sicherzustellen. Dazu kann die Vorrichtung 10 eine Einrichtung zur Erkennung des Ziel-Zustands und eine Einrichtung zur Steuerung des Übergangs von dem aktiven Zustand in den (erkannten) Ziel-Zustand umfassen. Die Einrichtungen können, beispielsweise, als Ressourcen 126 oder Bausteine 132, 134, 136, 138 ausgebildet sein.
  • Für einen synchronisierten Zustandsübergang verwendet die Vorrichtung 10 einen expliziten Mechanismus. Dabei blendet die Vorrichtung 10 Aufgaben und / oder Unterbrechungsroutinen bzw. Sets nach aufsteigender Priorität aus. Dabei kann eine Koexistenz von verschiedenen Zuständen verhindert werden und eine synchronisierte Zustandsumschaltung innerhalb der vorbestimmten Zeit sichergestellt werden.
  • Wie im Folgenden beschrieben, kann die Vorrichtung 10 die synchronisierte Zustandsumschaltung auch sicherstellen, wenn sie einen Mehrkernprozessor oder mehrere Prozessoren umfasst und Aufgaben und / oder Unterbrechungsroutinen in verschiedenen Kernen oder Prozessoren (Recheneinheiten) ausgeführt werden. Die Vorrichtung 10 kann in den Kernen bzw. Prozessoren eine Vielzahl von Sets ausführen, wobei jedes Set Tasks und / oder ISRs einer selben Prioritätsstufe (Prioritätslevel, Priority Level, PL) in allen Recheneinheiten umfasst. Somit umfasst auch jedes Set seine Prioritätsstufe. Vorzugsweise umfasst jedes Set (nur) zustandsabhängige Tasks und / oder ISRs. Allerdings kann ein Set auch nicht-zustandsabhängige Tasks und / oder ISRs umfassen. Ein Set ist aktiv, wenn einer seiner Tasks bzw. ISRs aktiviert ist oder gestartet worden ist und ausgeführt wird. Die Vorrichtung 10 ermittelt wiederholt und / oder kontinuierlich eine niedrigste aktive Prioritätsstufe (Lowest Acitve PL, LAPL) aus der Prioritätsstufe des Tasks mit der niedrigsten Prioritätsstufe von allen zu einem bestimmten Zeitpunkt aktiven Tasks. Wenn der Vorrichtung 10 eine Umschaltungsanforderung vorliegt, blendet sie eine Anzahl der aktiven Sets in der Reihenfolge ihrer Prioritätsstufe, d. h. beginnend mit der niedrigsten Priorität nach aufsteigender Priorität, aus, d. h. die Vorrichtung 10 deaktiviert die Anzahl der aktiven Sets und damit zumindest die zugeordneten zustandsabhängigen Tasks und / oder ISRs. Die Anzahl kann eine vorbestimmte Zahl von aktiven Sets oder alle aktiven Sets umfassen. Dabei verhindert die Vorrichtung 10 eine Aktivierung von Tasks mit einer Prioritätsstufe kleiner LAPL. Die Vorrichtung 10 kann bereits aktivierte Tasks mit einer Prioritätsstufe gleich LAPL weiter ausführen, bis sie regulär enden. Die Vorrichtung 10 kann eine Aktivierung von Tasks mit einer Prioritätsstufe gleich LAPL verhindern, wobei sie Tasks mit einer Prioritätsstufe gleich LAPL nochmals aktivieren kann, wenn für diese Tasks eine Abhängigkeit, zum Beispiel eine Datenabhängigkeit oder eine logische Abhängigkeit, besteht, d. h. beispielsweise ein anderer Task auf ein Ergebnis eines Tasks mit einer Prioritätsstufe gleich LAPL wartet. Die Vorrichtung 10 erlaubt weiterhin eine Aktivierung von Tasks mit einer Prioritätsstufe größer LAPL. Wenn die Vorrichtung 10 die Anzahl der aktivierten Sets deaktiviert hat, schaltet sie auf den Ziel-Zustand als aktiven Zustand um. Wenn die Umschaltung erfolgt ist, kann die Vorrichtung 10 das Ende der Umschaltung signalisieren und die Steuerung im Ziel-Zustand ausführen und entsprechende Set bzw. Tasks aktivieren. Bei einer erneuten Umschaltungsanforderung führt die Vorrichtung 10 die beschriebene Umschaltung erneut aus.
  • Da die Vorrichtung 10 im Beispiel mehrere Recheneinheiten umfasst, umfasst sie eine Einrichtung zur Speicherung und Verwaltung der Zustände, die die Zustände über die mehrerer Recheneinheiten hinweg verfügbar macht. Die Einrichtung kann, beispielsweise, als Ressource 126 oder Baustein 132, 134, 136, 138 ausgebildet sein.
  • Die Vorrichtung 10 kann, beispielsweise, als Steuergerät wie Motorsteuergerät für ein Kraftfahrzeug ausgebildet sein.
  • In 2 ist ein Verfahren 20 zur Zustandsumschaltung gemäß einer bevorzugten Ausführungs¬form der Erfindung gezeigt. Das Verfahren 20 zum Umschalten von einem aktiven Zustand in einen Ziel-Zustand umfasst die Schritte: Starten des Verfahrens 200. Bestimmen, ob eine Umschaltungsanforderung in den Ziel-Zustand vorliegt 210. Wenn keine Umschaltungsanforderung vorliegt 212, Verzweigen zum Bestimmen, ob eine Umschaltungsanforderung vorliegt 210. Wenn eine Umschaltungsanforderung vorliegt 214, Bestimmen einer niedrigsten aktiven Prioritätsstufe 220 aus allen aktiven Prioritätsstufen. Vergleichen einer Prioritätsstufe eines Tasks mit der niedrigsten aktiven Prioritätsstufe 230. Wenn die Prioritätsstufe des Tasks größer ist als die niedrigste aktive Prioritätsstufe 232, Aktivieren des Tasks 240. Wenn die Prioritätsstufe des Tasks gleich der niedrigsten aktiven Prioritätsstufe 234 ist, eine Aktivierung des Tasks verhindern, wenn er jedoch bereits aktiv ist, den Task bis zur Beendigung ausführen oder wenn eine Abhängigkeit besteht, den Task nochmals aktivieren 250. Wenn die Prioritätsstufe des Tasks kleiner ist als die niedrigste aktive Prioritätsstufe 236, eine Aktivierung des Tasks verhindern 260. Bestimmen, ob noch mindestens ein Task aktiv ist 270. Wenn ein Task oder mehrere Tasks aktiv sind 272, Verzweigen zum Bestimmen der niedrigsten aktiven Prioritätsstufe 220 aus allen aktiven Prioritätsstufen. Wenn kein Task aktiv ist 274, Setzen des Ziel-Zustands als (neuen) aktiven Zustand 280 und ggf. Signalisieren eines Endes der Umschaltung. Ausführen der Steuerung in dem Ziel-Zustand (neuen aktiven Zustand).
  • Zur Verkürzung der Übergangszeit kann in der Vorrichtung und /oder dem Verfahren eine kleinste Prioritätsstufe (Minimum PL, MPL) ergänzt werden. In einer modifizierten Ausführungsform können dann alle aktivierten Sets mit einer Prioritätsstufe kleiner MPL regulär beendet werden und alle nicht-aktivierten Sets mit Tasks mit einer Prioritätsstufe kleiner MPL unterdrückt werden. In einer weiter modifizierten Ausführungsform kann weiterhin die Ausführung aller aktivierten Sets mit einer Prioritätsstufe kleiner MPL abgebrochen werden.
  • Zur Verkürzung der Übergangszeit kann in der Vorrichtung und /oder dem Verfahren eine Leerlaufbedingung berücksichtigt werden. Wenn der LAPL signalisiert, dass sich jede der Recheneinheiten in einem Leerlaufprozess (Idle Task), der die niedrigste Priorität aufweist, befindet, kann die Umschaltung von dem aktiven Zustand in den Ziel-Zustand sofort erfolgen. In einer modifizierten Ausführungsform kann die Überprüfung beispielsweise beim Bestimmen der niedrigsten aktiven Prioritätsstufe 220 erfolgen.
  • In 3 ist ein beispiel¬hafter zeit¬licher Verlauf einer Zustandsumschaltung anhand von Tasks eines Prozessors gemäß der bevorzugten Ausführungs¬form der Erfindung gezeigt. Entlang einer waagrechten Zeitachse t sind Zeitpunkte t0, t1 und t2 aufgetragen. Entlang von zwei senkrechten Prioritätenachsen P1 und P2 sind die Tasks 300 11, 300 12, 300 14, 300 15, 300 16, 300 17, 300 18, 300 19 eines ersten Rechenkerns 112 1 und 300 23, 300 25, 300 26, 300 27, 300 28 und 300 29 eines zweiten Rechenkerns 112 2 von oben nach unten aufgetragen. Die Gestaltung der Prioritäten und Zeitscheiben berücksichtigt vorliegende regelungstechnische Vorgaben und Erfordernisse und ermöglicht einen deterministischen Austausch von Daten. Der Task 300 11, der zum Beispiel im Abstand von 1 ms läuft, kann ein System-Task sein und ist unabhängig von den anderen Tasks. Der Task 300 12 läuft zum Beispiel im Abstand von 2 ms. Der Task 300 23 läuft zum Beispiel im Abstand von 5 ms. Der Task 300 14 läuft zum Beispiel im Abstand von 10 ms. Die Tasks 300 15, 300 25 laufen zum Beispiel im Abstand von 20 ms. Die Tasks 300 16, 300 26 laufen zum Beispiel im Abstand von 50 ms. Die Tasks 300 17, 300 27 laufen zum Beispiel im Abstand von 100 ms. Die Tasks 300 18, 300 28 laufen zum Beispiel im Abstand von 200 ms. Die Tasks 300 19, 300 29 laufen zum Beispiel im Abstand von 1000 ms. Die Tasks bilden mehrere Sets. Die Tasks sind umrandet dargestellt, wenn sie aktiv sind, und zusätzlich schraffiert dargestellt, wenn sie laufen, d. h. ausgeführt werden Aufgrund eines Laufs eines Tasks, zum Beispiel 300 11, dessen Priorität höher ist als die eines anderen Tasks, zum Beispiel 300 12, wird der Lauf des anderen Tasks 300 12 unterbrochen, d. h. der andere Task ist, wie mit Bezugszeichen 302 12 gekennzeichnet, aktiviert, aber nicht-laufend, damit der Tasks 300 11 laufen kann.
  • 3 veranschaulicht den zeitlichen Verlauf des synchronisierten Zustandsübergangs zwischen zwei Zuständen, dem aktiven Zustand und dem Ziel-Zustand (neuer aktiver Zustand). Zum Zeitpunkt t0 wird, beispielsweise durch den Task 300 14, eine Umschaltungsanforderung signalisiert 310 1. Zum Zeitpunkt t0 wird LAPL durch die Prioritätsstufen der aktiven Tasks 300 18 bzw. 300 28 bestimmt. Da die Tasks 300 19 und 300 29 zu diesem Zeitpunkt nicht aktiv sind, wird die Aktivierung dieser Tasks verhindert 311 1, 311 2. Da die Prioritätsstufen der aktivierten Tasks 300 18 bzw. 300 28 gleich LAPL sind, werden die Tasks weiter ausgeführt bis sie regulär enden 312 1, 312 2. Zum Zeitpunkt t1 wird LAPL durch die Prioritätsstufen der aktiven Tasks 300 16 bzw. 300 26 bestimmt. Da die Tasks 300 17 und 300 27 zu diesem Zeitpunkt nicht aktiv sind, wird die Aktivierung dieser Tasks verhindert 313 1, 313 2. Da die Prioritätsstufe des aktivierten Tasks 300 16 gleich LAPL ist, wird der Task weiter ausgeführt bis er regulär endet 314 1. Da die Prioritätsstufe des Tasks 300 26 gleich LAPL ist, kann der Task nochmals aktiviert werden, da für diesen Task das Bestehen einer Abhängigkeit angenommen wird, und der Task wird weiter ausgeführt bis er regulär endet 314 2. Dann wird LAPL durch die Prioritätsstufe des aktiven Tasks 300 23 bestimmt. Da die Tasks 300 15, 300 14 und 300 25 zu diesem Zeitpunkt nicht aktiv sind, wird die Aktivierung dieser Tasks verhindert 315 1, 316 1 und 315 2. Nach regulärer Beendigung 316 2 des aktiven Tasks 300 23 wird LAPL durch die Prioritätsstufe des aktiven Tasks 300 11 bestimmt. Da der Task 300 12 zu diesem Zeitpunkt nicht aktiv ist, wird die Aktivierung dieses Tasks verhindert 317 1. Schließend wird nach regulärer Beendigung 318 1 des verbliebenen Task 300 11 LAPL null. Somit sind über den zeitlichen Verlauf die Tasks von der niedrigeren Prioritätsstufe zur höheren Prioritätsstufe hin ausgeblendet worden, sodass schließlich, zum Zeitpunkt t2, auf den Ziel-Zustand als neuen aktiven Zustand umgeschaltet werden kann und der Ziel-Zustand ausgeführt werden kann.
  • Die erfindungsgemäße Vorrichtung und das erfindungsgemäße Verfahren basieren auf einem expliziten Mechanismus und können somit einen konsistenten und / synchronisierten Zustandsübergang zwischen verschiedenen Zuständen bereitstellen. Dabei kann die Vorrichtung einen Mehrkernprozessor oder mehrere Prozessoren umfassen. Weiterhin kann das Verfahren auf einem Mehrkernprozessor oder mehreren Prozessoren ausgeführt werden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • DE 10332700 A1 [0003]

Claims (10)

  1. Vorrichtung zur Zustandsumschaltung in einer Steuerung von einem Ist-Zustand, der eine Vielzahl von Tasks (300 11, ... 300 19; 300 23, ... 300 29) mit jeweils zugeordneter Prioritätsstufe umfasst, in einen Ziel-Zustand, umfassend: – eine erste Bestimmungseinrichtung zum Bestimmen (220) einer niedrigsten aktiven Prioritätsstufe aus aktiven Tasks der Vielzahl von Tasks (300 11, ... 300 19; 300 23, ... 300 29), – eine Vergleichseinrichtung zum Vergleichen (230) der Prioritätsstufe eines Tasks der Vielzahl von Tasks (300 11, ... 300 19; 300 23, ... 300 29) mit der niedrigsten aktiven Prioritätsstufe, – eine Aktivierungseinrichtung zum Aktivieren (240) des Tasks, wenn die Prioritätsstufe des Tasks größer ist als die niedrigste aktive Prioritätsstufe (232), – eine erste Aktivierungsverhinderungseinrichtung zum Verhindern (250) einer Aktivierung des Tasks, wenn die Prioritätsstufe des Tasks gleich der niedrigsten aktiven Prioritätsstufe ist (234), – eine zweite Aktivierungsverhinderungseinrichtung zum Verhindern (260) einer Aktivierung des Tasks, wenn die Prioritätsstufe des Tasks kleiner ist als die niedrigste aktive Prioritätsstufe (236), – eine zweite Bestimmungseinrichtung zum Bestimmen (270), ob noch mindestens ein Task der Vielzahl von Tasks (300 11, ... 300 19; 300 23, ... 300 29) aktiv ist, – eine Setzeinrichtung zum Setzen des Ziel-Zustands, wenn kein Task aktiv ist (274), und – eine Ausführungseinrichtung zum Ausführen der Steuerung in dem Ziel-Zustand.
  2. Vorrichtung nach Anspruch 1, weiterhin umfassend: – eine Verzweigungseinrichtung zum Verzweigen zur ersten Bestimmungseinrichtung, wenn noch mindestens ein Task aktiv ist (272).
  3. Vorrichtung nach Anspruch 1 oder 2, wobei: – die erste Aktivierungsverhinderungseinrichtung das Ausführen (250) des Tasks nicht verhindert, wenn der Task bereits aktiv ist.
  4. Vorrichtung nach Anspruch 1, 2 oder 3, wobei: – die erste Aktivierungsverhinderungseinrichtung das Aktivieren (250) des Tasks nicht verhindert, wenn ein anderer Task der Vielzahl von Tasks (300 11, ... 300 19; 300 23, ... 300 29) von dem Task abhängig ist.
  5. Verfahren zur Zustandsumschaltung in einer Steuerung von einem Ist-Zustand, der eine Vielzahl von Tasks (300 11, ... 300 19; 300 23, ... 300 29) mit jeweils zugeordneter Prioritätsstufe umfasst, in einen Ziel-Zustand, umfassend: – Bestimmen (220) einer niedrigsten aktiven Prioritätsstufe aus aktiven Tasks der Vielzahl von Tasks (300 11, ... 300 19; 300 23, ... 300 29), – Vergleichen (230) der Prioritätsstufe eines Tasks der Vielzahl von Tasks (300 11, ... 300 19; 300 23, ... 300 29) mit der niedrigsten aktiven Prioritätsstufe, – Wenn die Prioritätsstufe des Tasks größer ist als die niedrigste aktive Prioritätsstufe (232), Aktivieren (240) des Tasks, – Wenn die Prioritätsstufe des Tasks gleich der niedrigsten aktiven Prioritätsstufe ist (234), Verhindern (250) einer Aktivierung des Tasks, – Wenn die Prioritätsstufe des Tasks kleiner ist als die niedrigste aktive Prioritätsstufe (236), Verhindern (260) einer Aktivierung des Tasks, – Bestimmen (270), ob noch mindestens ein Task der Vielzahl von Tasks (300 11, ... 300 19; 300 23, ... 300 29) aktiv ist, – Wenn kein Task aktiv ist (274), Setzen des Ziel-Zustands, und – Ausführen der Steuerung in dem Ziel-Zustand.
  6. Verfahren nach Anspruch 5, weiterhin umfassend: – Wenn noch mindestens ein Task aktiv ist (272), Verzweigen zum Bestimmen (220) der niedrigsten aktiven Prioritätsstufe.
  7. Verfahren nach Anspruch 5 oder 6, weiterhin umfassend: – Wenn die Prioritätsstufe des Tasks gleich der niedrigsten aktiven Prioritätsstufe ist (234), Ausführen (250) des Tasks, wenn der Task bereits aktiv ist.
  8. Verfahren nach Anspruch 5, 6 oder 7, weiterhin umfassend: – Wenn die Prioritätsstufe des Tasks gleich der niedrigsten aktiven Prioritätsstufe ist (234), Aktivieren (250) des Tasks, wenn ein anderer Task der Vielzahl von Tasks (300 11, ... 300 19; 300 23, ... 300 29) von dem Task abhängig ist.
  9. Computerprogramm, das alle Schritte eines Verfahrens nach einem der Ansprüche 5 bis 8 ausführt, wenn es auf einem Rechengerät abläuft.
  10. Computerprogrammprodukt mit Programmcode, der auf einem maschinenlesbaren Träger gespeichert ist, zur Durchführung des Verfahrens nach einem der Ansprüche 5 bis 8, wenn das Programm auf einem Computer oder Steuergerät ausgeführt wird.
DE102013209152.4A 2013-05-16 2013-05-16 Vorrichtung und Verfahren zur Zustandsumschaltung Pending DE102013209152A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102013209152.4A DE102013209152A1 (de) 2013-05-16 2013-05-16 Vorrichtung und Verfahren zur Zustandsumschaltung

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102013209152.4A DE102013209152A1 (de) 2013-05-16 2013-05-16 Vorrichtung und Verfahren zur Zustandsumschaltung

Publications (1)

Publication Number Publication Date
DE102013209152A1 true DE102013209152A1 (de) 2014-11-20

Family

ID=51831384

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013209152.4A Pending DE102013209152A1 (de) 2013-05-16 2013-05-16 Vorrichtung und Verfahren zur Zustandsumschaltung

Country Status (1)

Country Link
DE (1) DE102013209152A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10332700A1 (de) 2003-06-24 2005-01-13 Robert Bosch Gmbh Verfahren zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit sowie entsprechende Prozessoreinheit

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10332700A1 (de) 2003-06-24 2005-01-13 Robert Bosch Gmbh Verfahren zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit sowie entsprechende Prozessoreinheit

Similar Documents

Publication Publication Date Title
DE4410775C2 (de) Steuergerät und Arbeitsverfahren eines Betriebssystems für dieses Steuergerät
DE112009001700B4 (de) Multikernsystem, fahrzeugseitige elektronische Steuerungseinheit und Aufgabenumschaltverfahren
DE102014201682A1 (de) Verfahren zur Koexistenz von Software mit verschiedenen Sicherheitsstufen in einem Multicore-Prozessorsystem
DE68924810T2 (de) Zeitgeberkanal für die Verwendung in einem Mehrkanal-Zeitsystem.
WO1996002883A1 (de) Verfahren zur steuerung von technischen vorgängen oder prozessen
DE102015002191A1 (de) Sicherheits-Hypervisor-Funktion
DE102012009482A1 (de) Funktional erweiterbares Fahrzeugsteuergerät und Verfahren zum Ergänzen der Funktionalität eines Fahrzeugsteuergeräts
DE102013202774A1 (de) Vorrichtung, Verfahren und System zum Steuern eines Prozessors
DE68922545T2 (de) Zugeordneter Dienstprozessor mit Übertragungsmöglichkeiten zwischen Kanälen.
EP1700211B1 (de) Laden von software-modulen
WO1996019759A1 (de) Verfahren zur steuerung von technischen vorgängen
DE102012209789A1 (de) Fahrzeuggebundene elektrische steuervorrichtung
DE102006048173A1 (de) Verfahren zum Umschalten eines Systems mit mehreren Ausführungseinheiten
DE102013021231A1 (de) Verfahren zum Betrieb eines Assistenzsystems eines Fahrzeugs und Fahrzeugsteuergerät
DE102013209152A1 (de) Vorrichtung und Verfahren zur Zustandsumschaltung
WO2022084176A1 (de) Datenverarbeitungsnetzwerk zur datenverarbeitung
DE102020133748A1 (de) Fahrzeugsteuergerät mit synchronem treiber
DE102016224206A1 (de) Fahrzeugsteuervorrichtung
EP2126700B1 (de) Steuerung des laufzeitverhaltens von prozessen
EP2338111B1 (de) Verfahren und vorrichtung zum testen eines rechnerkerns in einer mindestens zwei rechnerkerne aufweisenden recheneinheit
DE2507405A1 (de) Verfahren und anordnung zum synchronisieren der tasks in peripheriegeraeten in einer datenverarbeitungsanlage
EP1917587B1 (de) Verfahren und vorrichtung zur steuerung eines rechnersystems
DE102007018777A1 (de) Steuervorrichtung für Fahrzeuge
DE102017217217A1 (de) Elektronische steuereinheit
DE112018003505T5 (de) Zugriffssteuereinrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed