DE102016107646A1 - Optimierungstechnologie für Single- zu Multi-Core Portierungen von Steuerungssoftware - Google Patents

Optimierungstechnologie für Single- zu Multi-Core Portierungen von Steuerungssoftware Download PDF

Info

Publication number
DE102016107646A1
DE102016107646A1 DE102016107646.5A DE102016107646A DE102016107646A1 DE 102016107646 A1 DE102016107646 A1 DE 102016107646A1 DE 102016107646 A DE102016107646 A DE 102016107646A DE 102016107646 A1 DE102016107646 A1 DE 102016107646A1
Authority
DE
Germany
Prior art keywords
schedule
execution
worst case
expiration
control software
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
DE102016107646.5A
Other languages
English (en)
Inventor
Sebastian Kehr
Bert Böddeker
Günter Schäfer
Eduardo Quinones
Dominik Langen
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.)
Denso Automotive Deutschland GmbH
Barcelona Supercomputing Center
Original Assignee
Denso Automotive Deutschland GmbH
Barcelona Supercomputing Center
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 Denso Automotive Deutschland GmbH, Barcelona Supercomputing Center filed Critical Denso Automotive Deutschland GmbH
Priority to DE102016107646.5A priority Critical patent/DE102016107646A1/de
Publication of DE102016107646A1 publication Critical patent/DE102016107646A1/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Die Erfindung betrifft eine Technologie zur Optimierung der Portierung (21) von bestehender Steuerungssoftware (10), die für Single-Core Architekturen (15) entwickelt wurde, auf Multi-Core Fahrzeugsteuergeräte (16). In einem MC-Ablaufplan (13, 13a) wird das Zeitverhalten auf einem Eingang-zu-Ausgang Informationsverarbeitungswerg (Wirkkette) (P) durch Instanzen (A1, B3, C2) der Ablaufteile (A, B, C) analysiert. Es wird die worst case Reaktionsverzögerung (La, Lb, Lc) ab dem Auftreten (I) einer physikalischen Änderung einer sensierten Größe oder ab dem Auftreten eines auslösenden Signals bis zur Erzeugung (O) eines davon abhängigen Steuerkommandos als Bewertungsparameter berechnet. Die worst case Reaktionsverzögerung (La, Lb, Lc) dient als Auswahlparameter oder Optimierungsparameter. Die Ausführungsdynamik wird angepasst, um einen effizienteren MC-Ablaufplan (13c) zu erzeugen.

Description

  • Die Erfindung betrifft eine Technologie zur Optimierung der Portierung von bestehender Steuerungssoftware, die für Single-Core Architekturen entwickelt wurde, auf Multi-Core Systeme, insbesondere auf elektronische Steuereinheiten von Kraftfahrzeugen mit mehreren Prozessorkernen.
  • Aus DE 10 2014 103 139 ist bekannt, dass bestehende Steuerungssoftware, die für Single-Core Steuergeräte entwickelt wurde, mit einem teil- oder vollautomatisierten Verfahren in einzelne Ablaufteile (sog. runnables, ausführbare Codeabschnitte) zerlegbar ist, von denen einige oder alle bei festgelegten Periodizitäten ausgeführt werden. Gemäß der DE 10 2014 103 139 ist weiterhin bekannt, dass starke und schwache Abhängigkeiten (Lese-Schreib-Verknüpfungen, auch Lese-Schreib-Datenabhängigkeiten genannt) zwischen (Information) produzierenden und (diese Information) konsumierenden Ablaufteilen identifiziert werden können, die auf eine gemeinsame Speichervariable zugreifen. Um ein möglichst hohes Maß an Parallelisierung zu erreichen, werden nach der DE 10 2014 103 139 im Fall von schwachen Abhängigkeiten produzierende und konsumierende Ablaufteile, die auf dem Single-Core System zwangsweise sequentiell ausgeführt wurden, auf dem Multi-Core System zeitlich parallel ausgeführt, d.h. parallelisiert. Der konsumierende Ablaufteil kann in einem solchen Fall auf die gemeinsame Speichervariable lesend zugreifen, während oder bevor der produzierende Ablaufteil in die Speichervariable geschrieben bzw. diese überschrieben hat. Um trotzdem bei der MC-Ausführung einen funktionsfähigen Informationsfluss zwischen den parallelisierten Ablaufteilen zu ermöglichen, wird die Speichervariable in einem externen (außerhalb der Prozessorkerne) verwalteten Speicher abgelegt, der beispielsweise als Ring-Puffer ausgeführt ist. Die von einem produzierenden Ablaufteil erzeugte Information wird beispielsweise durch die Verwaltung mit einer Information über den Zeitpunkt des Schreibzugriffs verknüpft und zusammen mit einem entsprechenden Zeit-Label in den Pufferspeicher geschrieben. Einem konsumierenden Ablaufteil, der auf diese Information zugreifen muss, wird durch die Verwaltung der jeweils zeitgerechte und bspw. aktuellste Wert aus dem Pufferspeicher übergeben. Der konsumierende Ablaufteil kann auf Basis der übergebenen Information eine Steueraufgabe auslösen, beispielsweise einen Aktuator in einer bestimmten Stärke betätigen.
  • Daneben können andere Methoden verwendet werden, durch eine Single-Core Steuerungssoftware unter Parallelisierung von Ablaufteilen in eine Multi-Core Steuerungssoftware portiert wird.
  • Durch die Parallelisierung wird die Portierung einer großen Zahl alter Steuerungsprogramme auf Multi-Prozessor Systeme ermöglicht. Infolge der Parallelisierung von Ablaufteilen, die über Lese-Schreib-Verknüpfungen Informationen austauschen, wird ein Effizienzgewinn erreicht.
  • Es besteht nun weiterhin der Wunsch, die Portierung auf ein Multi-Prozessor System möglichst effizient durchzuführen, ohne dass es zu unzulässigen Veränderungen des Steuerverhaltens kommt. Ferner sollen eine möglichst vorteilhafte Verteilungsstruktur der Ablaufteile auf die zwei oder mehr Prozessorkerne sowie eine Ausführungsdynamik für die MC-Ausführung erreicht werden, die möglichst geringe Anforderungen an die Rechenleistung stellen oder eine Verarbeitung bei möglichst geringer Energieaufnahme erlauben.
  • Es ist daher Aufgabe der vorliegenden Erfindung, eine Optimierungstechnologie für die Portierung von Alt-Steuerungssoftware auf ein Multi-Core Fahrzeugsteuergerät aufzuzeigen, durch die ein MC-Ablaufplan für die portierte Steuerungssoftware erreicht wird, der zumindest eine zulässige Reaktionsgeschwindigkeit bei der MC-Ausführung der Steuerungssoftware gewährleistet und bevorzugt weiterhin eine möglichst vorteilhafte Verteilungsstruktur und Ausführungsdynamik für die Ablaufteile der Steuerungssoftware erreicht.
  • Diese Aufgabe wird durch verschiedene Aspekte der vorliegenden Offenbarung gelöst, die einzeln oder in Kombination verwendbar sind.
  • Der vorliegenden Offenbarung liegt das gemeinsame Konzept zu Grunde, einen MC-Ablaufplan für die Multicore-Ausführung (MC-Ausführung) einer portierten Steuerungssoftware zu erstellen und diesen hinsichtlich des Zeitverhaltens einer Eingang-Zu-Ausgang-Informationsverarbeitung durch Instanzen der enthaltenen Ablaufteile zu analysieren und dabei die worst case-Reaktionsverzögerung zu bestimmen, die ab dem Auftreten einer physikalischen Änderung einer sensierten Größe oder ab dem Auftreten eines auslösenden Signals bis hin zur Erzeugung eines davon abhängigen Steuerkommandos vergeht. Die Eingang-zu-Ausgang Informationsverarbeitung wird im Folgenden als Wirkkette bezeichnet.
  • Durch die Bestimmung der worst case-Reaktionsverzögerung kann weitgehend ohne Kenntnis über die inhaltliche Ausgestaltung der Informationsverarbeitung erfasst werden, ob die portierte Steuerungssoftware das Steuerungsergebnis bei der erforderlichen bzw. bei einer zulässigen Reaktionsgeschwindigkeit erbringen wird.
  • Nachfolgend werden die Abkürzungen „SC“ für Single-Core und „MC“ für Multi-Core verwendet.
  • In einem Modell für die Instantiierung und Ausführung der Softwarebestandteile (Ablaufteile) – dem sog. Ablaufplan – kann das Eingang-zu-Ausgabe-Verhalten der Steuerungssoftware auf Basis der Ordnung und des Zeitverhaltens eines Informationsflusses zwischen Instanzen der Ablaufteile spezifiziert werden, und zwar ohne genauere Beschreibung der internen Verarbeitung. Ein solches Modell gibt es bspw. bei einer AUTOSAR-konformen Anwendung.
  • Ein besonderer Vorteil der offenbarten Optimierungstechnologie besteht darin, dass die hier offenbarten Verarbeitungsschritte und Verfahren teil- oder vollautomatisiert ausgeführt werden können, insbesondere auf einer Datenverarbeitungseinrichtung. Somit kann ein robuster und hinsichtlich des Portierungserfolgs quantifizierbarer Gesamtprozess geschaffen werden, mit dem eine große Anzahl von bestehenden SC-Steuerungsprogrammen für die MC-Ausführung auf modernen Multicore-Fahrzeugsteuergeräten umwandelbar ist. Ferner kann durch die Bewertung der Portierung ein analytischer Nachweis für die Erzeugung eines korrekten Zeit- und Steuerverhaltens in der MC-Ausführung erbracht werden, wobei zusätzlich eine Bewertung der Verteilungsstruktur und/oder der Ausführungsdynamik erfolgen kann.
  • Gemäß einem ersten Aspekt der vorliegenden Offenbarung wird die Portierung einer bestehenden Steuerungssoftware, die für die Ausführung auf einem Steuergerät mit einem Einzel-Rechenkern entwickelt ist (Single-Core-Ausführung / SC-Ausführung), in eine portierte Steuerungssoftware, die auf einem Fahrzeugsteuergerät mit mindestens zwei Rechenkernen ausführbar ist (MC-Ausführung) bewertet. Für die portierte Steuerungssoftware liegt ein MC-Ablaufplan vor, durch den die Ablaufteile der bestehenden Steuerungssoftware bei einem vorgegebenen Zeitverhalten auf die mindestens zwei Rechenkerne des Fahrzeugsteuergeräts verteilt und dabei zumindest teilweise parallelisiert werden. Der MC-Ablaufplan gibt insbesondere eine Verteilungsstruktur und eine Ausführungsdynamik für die MC-Ausführung der Ablaufteile aus der bestehenden Steuerungssoftware vor.
  • Die Verteilungsstruktur umfasst Definitionen darüber, welche Ablaufteile auf welchen Rechenkernen ausgeführt werden sollen sowie welche Ablaufteile parallelisiert werden. Aus der Verteilungsstruktur geht ferner etwaig eine grundsätzliche Reihenfolge für die Instanziierung der Ablaufteile hervor, im Sinne einer Vorgänger-Nachfolger Verkettung.
  • Die Ausführungsdynamik umfasst Definitionen darüber, wie lange die Ausführung einer Instanz der jeweiligen Ablaufteile dauern darf/wird und zu welchen konkreten Zeitpunkten bzw. Periodizitäten die Instanziierungen der Ablaufteile stattfinden sollen. Die Ausführungsdynamik wird insbesondere durch die Vorgabe einer Prozessorfrequenz und die Werte der Periodizitäten festgelegt.
  • In dem Verfahren gemäß dem ersten Aspekt (nachfolgend auch Bewertungsverfahren genannt) wird das Zeitverhalten auf einem Eingang-Zu-Ausgang Informationsverarbeitungsweg (der sog. Wirkkette) durch zwei oder mehr Instanzen der Ablaufteile auf Basis des MC-Ablaufplans analysiert. Es wird die worst case-Reaktionsverzögerung berechnet, d.h. die Zeit, die unter worst case Bedingungen ab dem Auftreten einer physikalischen Änderung einer sensierten Größe oder ab dem Auftreten eines auslösenden Signals bis hin zur Erzeugung eines davon abhängigen Steuerkommandos verstreicht. Die Berechnung kann vorteilhafter Weise ausschließlich auf Grund einer formellen Analyse des MC-Ablaufplans bzw. der Wirkkette erfolgen, ohne dass es einer tatsächlichen Ausführung der portierten Steuerungssoftware auf einem Fahrzeugsteuergerät zu Test- oder Simulationszwecken bedarf. Der Beginn der Ausführung einer bzw. jeder Instanz eines Ablaufteils, d.h. der Zeitpunkt der Instantiierung, kann (ggfs. ausschließlich) durch die Definition der Periodizitäten bestimmt sein. Die Dauer der Ausführung einer Instanz eines Ablaufteils kann als Schätz- oder Rechenwert vorliegen. Insbesondere kann für jedes Codefragment eine worst case Ausführungsdauer (sog. worst case execution time) berechnet werden. Die Berechnung kann auf einer bekannten Zahl an Prozessorschritten, die für die Ausführung eines Ablaufteils erforderlich sind, und eines Prozessortaktes erfolgen. Die Dauer der Ausführung entspricht der Anzahl der auszuführenden Prozessorschritte geteilt durch die Prozessorfrequenz.
  • Es bedarf für die Ausführung der vorgenannten Schritte vorteilhafter Weise keiner genauen Kenntnis des konkreten Steuerungsverfahrens, sondern lediglich einer analytischen Auswertung des Zeitverhaltens (Verteilungsstruktur und Ausführungsdynamik) von vorgesehenen Zugriffen der Ablaufteile auf einen Eingang, einen Ausgang und ggfs. zwischengeschalteter Lese-Schreib-Verknüpfungen für den Zugriff auf gemeinsame Speichervariablen.
  • Gemäß einem zweiten Aspekt der vorliegenden Offenbarung wird aus einem bestehenden MC-Ablaufplan, der eine bestimmte Struktur der Verteilung der Ablaufteile auf die Prozessorkerne und eine bestimmte Ausführungsdynamik für die Instanziierung und Ausführung der Ablaufteile vorsieht, ein abgewandelter Ablaufplan erzeugt werden (nachfolgend auch Transformationsverfahren genannt). Der abgewandelte MC-Ablaufplan kann bevorzugt die Verteilungsstruktur des bestehenden MC-Ablaufplans übernehmen, jedoch eine optimierte Ausführungsdynamik vorsehen.
  • Für den bestehenden MC-Ablaufplan wird bevorzugt die worst case Reaktionsverzögerung berechnet. Die Ausführungsdynamik für den abgewandelten MC-Ausführungsplan wird zumindest derart geändert, dass dessen worst case Reaktionsverzögerung kleiner oder gleich einem Zulässigkeits-Schwellenwert wird. Die Prozessorfrequenz des abgewandelten MC-Ablaufplans wird gegenüber der Prozessorfrequenz des bestehenden MC-Ablaufplans bzw. der Prozessorfrequenz für die SC-Ausführung verringert, insbesondere bis die worst case Reaktionsverzögerung gemäß dem abgewandelten MC-Ablaufplan den Zulässigkeits-Schwellenwert erreicht. Darüber hinaus können die Periodizitäten des abgewandelten MC-Ausführungsplans gegenüber den Periodizitäten in dem bestehenden MC-Ablaufplan beschleunigt werden, was eine Verkürzung der worst case Reaktionsverzögerung ermöglicht.
  • Als besonders effizient hat es sich erwiesen, in einem ersten Schritt die Prozessorfrequenz des des abgewandelten MC-Ablaufplans bis auf eine Grenz-Prozessorfrequenz abzusenken und zwar bevorzugt unter Beibehaltung der Verteilungsstruktur sowie Beibehaltung der Periodizitäten des bestehenden MC-Ausführungsplans.
  • Die Grenz-Prozessorfrequenz ist die minimale Frequenz, bei welcher die Arbeitszeit zumindest eines Prozessors durch die Arbeitszeit für das Ausführen der Instanzen eines oder mehrerer Ablaufteile, die diesem Prozessor zugeordnet ist/sind, maximal oder vollständig ausgefüllt ist. Dies ist insbesondere bei dem Prozessor erreichbar, bei dem in dem bestehenden MC-Ausführungsplan die höchste Verteilungsdichte vorliegt.
  • Durch den ersten Schritt wird die Verteilungsdichte in dem abgewandelten MC-Ablaufplan auf das Maximum erhöht. Hierbei kann es allerdings zu einer Verlängerung der worst case Reaktionsverzögerung kommen.
  • In einem weiteren Schritt werden die Periodizitäten des abgewandelten MC-Ablaufplans gegenüber den Periodizitäten des bestehenden MC-Ablaufplans beschleunigt, bis die worst case Reaktionsverzögerung des abgewandelten MC-Ablaufplans kleiner oder gleich einem Zulässigkeits-Schwellenwert ist, insbesondere kleiner oder gleich der worst case Reaktionsverzögerung bei SC-Ausführung. Das Maß der Beschleunigung der Periodizitäten wird als Verhältniszahl erfasst wird, die das Verhältnis der beschleunigten Periodizitäten gegenüber den Periodizitäten des bestehenden MC-Ablaufplans angibt.
  • Parallel wird die Prozessorfrequenz des abgewandelten MC-Ablaufplans gegenüber der Grenz-Prozessorfrequenz wieder erhöht. Das Maß der Erhöhung der Prozessorfrequenz entspricht dabei mindestens dem Kehrwert der Verhältniszahl, sodass die Prozessorfrequenz des abgewandelten MC-Ablaufplans größer oder bevorzugt gleich der Grenz-Frequenz geteilt durch die Verhältniszahl ist.
  • Durch den zweiten Schritt wird unter Beibehaltung der maximalen Verteilungsdichte eine zeitliche Skalierung des MC-Ablaufplans vorgenommen, um die worst case Reaktionsverzögerung wieder auf eine zulässige Dauer zu verkürzen. Es wird somit ein abgewandelter MC-Ausführungsplan ermittelt, der sowohl eine zulässige worst case Reaktionsverzögerung für die portierte Steuerungssoftware bei MC-Ausführung und damit ein korrektes Steuerergebnis gewährleistet, als auch (bei gegebener Verteilungsstruktur) die minimalen Anforderungen an die Rechenleistung des Multi-Core Fahrzeugsteuergerätes stellt.
  • Bei der Änderung der Ausführungsdynamik für den abgewandelten MC-Ausführungsplan kann alternativ eine Prozessorfrequenz gegenüber der Prozessorfrequenz des bestehenden MC-Ablaufplans nach anderen Vorgaben beschleunigt werden. Beschleunigung bedeutet, dass die Dauer der Periodizitäten verringert wird. Besonders bevorzugt wird eine gleichmäßige Beschleunigung für alle Periodizitäten des MC-Ablaufplans vorgesehen.
  • Gemäß einem dritten Aspekt der vorliegenden Offenbarung, der für sich allein verwendbar oder bevorzugt mit dem ersten und/oder zweiten Aspekt kombinierbar ist, wird die Auswahl eines günstigeren Ablaufplans für eine portierte Steuerungssoftware aus einer Menge von mindestens zwei alternativen MC-Ablaufplänen getroffen. Die MC-Ablaufpläne werden bei der Portierung einer bestehenden Steuerungssoftware in eine MC-Steuerungssoftware analog zu den obigen Ausführungen erzeugt und ggfs. gemäß dem zweiten Aspekt der Offenbarung in abgewandelte MC-Ausführungspläne transformiert. Durch jeden der MC-Ablaufpläne werden die Ablaufteile der bestehenden Steuerungssoftware bei einem vorgegebenen Zeitverhalten (Verteilungsstruktur und Ausführungsdynamik) auf die mindestens zwei Rechenkerne des MC-Fahrzeugsteuergeräts verteilt und dabei zumindest teilweise parallelisiert.
  • Die zwei oder mehr alternativen Ablaufpläne werden bewertet, und zwar bevorzugt durch das Verfahren gemäß dem ersten Aspekt, unter Berechnung der jeweiligen worst case Reaktionsverzögerung und dem (ggfs. gewichteten) Produkt aus der worst case Reaktionsverzögerung und einer für die Ausführung des MC-Ablaufplans vorgesehenen Prozessorfrequenz. Es wird derjenige Ablaufplan als günstiger bewertet und/oder ausgewählt, der ein geringeres oder das geringste Produkt aus der worst case Reaktionsverzögerung und einer für die Ausführung des MC-Ablaufplans vorgesehenen Prozessorfrequenz aufweist. Alternativ oder zusätzlich wird ein MC-Ablaufplan ausgewählt, dessen Produkt aus der worst case Reaktionsverzögerung und einer für die Ausführung des MC-Ablaufplans vorgesehenen Prozessorfrequenz kleiner oder gleich einem Zulässigkeits-Schwellenwert für dieses Produkt ist. Weiterhin sollte die worst case Reaktionsverzögerung des ausgewählten MC-Ablaufplans kleiner oder gleich einem Zulässigkeits-Schwellenwert für die Reaktionsverzögerung sein, insbesondere kleiner oder gleich der worst case Reaktionsverzögerung bei SC-Ausführung.
  • Darüber hinaus können in dem Auswahlverfahren bei Vorliegen von mindestens zwei Ablaufplänen mit im Wesentlichen gleichem Auswahlrang weitere Auswahlkriterien berücksichtigt werden. Insbesondere kann aus einem Satz von MC-Ablaufplänen mit im Wesentlichen gleichem Auswahlrang ein solcher MC-Ablaufplan ausgewählt werden, der eine besonders günstige Ausführungsdynamik hat. Das kann beispielsweise derjenige Ablaufplan sein, der eine geringste minimale Prozessorfrequenz für die MC-Ausführung erfordert, und/oder derjenige Ablaufplan, der die dichteste Verteilungsstruktur aufweist und damit eine besonders effiziente Ausnutzung der zur Verfügung gestellten Rechenzeit bietet. Daneben können weitere Auswahlkriterien vorgesehen sein. Insbesondere kann die (weitere) Auswahl nach mindestens einem der folgenden Auswahlparameter erfolgen:
    Dauer der worst case Reaktionsverzögerung (kurze Dauer ist besser)
    Dichte der Verteilungsstruktur (hohe Dichte ist besser),
    Erforderliche Rechenleistung (geringe erforderliche Leistung ist besser);
    Die Dauer der worst case Reaktionsverzögerung kann als Absolutwert berechnet und als solcher zur Auswahl herangezogen sein. Alternativ kann das Verhältnis der worst case Reaktionsverzögerung bei MC-Ausführung in Relation zu der worst case Reaktionsverzögerung bei SC-Ausführung zur Bewertung herangezogen werden, wobei eine Verhältniszahl größer 1 bzw. ein höherer Faktor positiv ist. Wiederum alternativ kann das Verhältnis der worst case Reaktionsverzögerung bei MC-Ausführung in Relation zu einem Zulässigkeits-Schwellenwert für die Reaktionsverzögerung zur Bewertung herangezogen werden, wobei eine Verhältniszahl größer 1 notwendig und ein höherer Faktor positiv ist. Natürlich können Kehrwerte der vorgenannten Verhältnisse berechnet werden, wobei eine jeweiliger Verhältniszahl kleiner 1 notwendig und ein geringerer Wert positiv ist.
  • Die Dichte der Verteilungsstruktur kann auf Basis beliebiger Parameter berechnet werden. Insbesondere kann der Anteil der nicht durch Instanzen der Ablaufteile genutzten Arbeitszeit (ungenutzte Rechenleistung) insgesamt oder pro Prozessor berechnet werden, wobei eine geringer Anteil an ungenutzter Arbeitszeit positiv ist.
  • Es kann eine Mischung der vorgenannten Auswahlparameter, insbesondere mit einer Gewichtung, zur Bildung eines Gesamt-Auswahlkriteriums erfolgen.
  • Das Maß der erforderlichen Rechenleistung kann mit beliebigen Parametern quantifiziert werden. Insbesondere kann eine gemäß der Ausführungsdynamik (mindestens) erforderliche Prozessorfrequenz für die MC-Ausführung als Absolutwert berechnet oder aus dem MC-Ablaufplan ausgelesen und als solche zur Auswahl herangezogen werden. Alternativ oder zusätzlich kann ein Verhältnis zwischen der (mindestens) erforderlichen Prozessorfrequenz bei SC-Ausführung in Relation zu der der (mindestens) erforderlichen Prozessorfrequenz bei MC-Ausführung zur Bewertung herangezogen werden, wobei eine Verhältniszahl größer 1 bzw. ein höherer Faktor positiv ist. Auch hier können Kehrwerte der vorgenannten Verhältnisse berechnet werden, wobei eine jeweilige Verhältniszahl kleiner 1 und ein jeweils geringerer Wert positiv sind.
  • Gemäß einem vierten Aspekt der vorliegenden Offenbarung, der für sich allein nutzbar oder bevorzugt mit dem ersten und/oder dem zweiten und/oder dem dritten Aspekt kombinierbar ist, wird die Portierung einer bestehenden Steuerungssoftware in eine portierte Steuerungssoftware durch ein Verfahren optimiert, das bevorzugt iterativ ausgeführt wird. Für die portierte Steuerungssoftware wird durch einen Ablaufplan-Generator gemäß vorgegebenen Portierungs-Parametern ein MC-Ablaufplan erzeugt, durch den die Ablaufteile der bestehenden Steuerungssoftware bei einem vorgegebenen Zeitverhalten auf die mindestens zwei Rechenkerne verteilt und zumindest teilweise parallelisiert werden. Der Ablaufplan-Generator arbeitet bevorzugt nach einem deterministischen Verfahren, so dass er für eine bestimmte bestehende Steuerungssoftware bei einem bestimmten Satz von Portierungs-Parametern genau einen MC-Ablaufplan für die MC-Ausführung erstellt. Eine Änderung der Portierungs-Parameter führt zu der Erstellung eines anderen MC-Ablaufplans. Somit kann über die Änderung der Portierungs-Parameter eine gezielte bzw. steuerbare Optimierung der Portierung erreicht werden.
  • In dem Verfahren gemäß dem vierten Aspekt (auch Optimierungsverfahren genannt) wird ein erster MC-Ablaufplan erzeugt und durch ein Bewertungsverfahren gemäß dem ersten Aspekt der Offenbarung bewertet. Es wird geprüft, ob die berechnete worst case-Reaktionsverzögerung größer ist als ein Unzulässigkeits-Schwellenwert für die Reaktionsverzögerung. Wenn die worst case-Reaktionsverzögerung des geprüften MC-Ablaufplans den Unzulässigkeits-Schwellenwert überschreitet, wird zumindest ein zweiter oder weiterer MC-Ablaufplan auf Basis geänderter Portierungs-Parameter erzeugt und erneut hinsichtlich der Zulässigkeit der worst case-Reaktionsverzögerung geprüft. Bevorzugt wird die Erzeugung eines jeweils weiteren MC-Ablaufplans zumindest solange wiederholt, bis ein MC-Ablaufplan mit einer zulässigen Reaktionsverzögerung gefunden ist. Die Änderung der Portierungs-Parameter kann dabei nach einem beliebigen geeigneten Optimierungsschema vorgenommen werden.
  • Durch das Optimierungsverfahren können insbesondere MC-Ablaufpläne mit unterschiedlichen Verteilungsstrukturen erzeugt werden, die ggfs. anschließend durch das Verfahren gemäß dem zweiten Aspekt (Transformationsverfahren) in noch effizientere MC-Ablaufpläne abwandelbar sind. Alternativ können durch das Verfahren gemäß dem zweiten Aspekt vorgesehene Änderungen an der Ausführungsdynamik (Verringerung der Prozessorfrequenz, Beschleunigung der Periodizitäten) durch eine Änderung der Portierungs-Parameter erfolgen.
  • Es ist ferner eine Kombination des Optimierungsverfahrens mit dem Auswahlverfahren möglich. Beispielsweise können in dem Optimierungsverfahren zunächst mehrere MC-Ablaufpläne auf Basis von Portierungs-Parametern erzeugt werden, die nach Zufalls-Kriterien vorgegeben sind. Die Portierungs-Parameter können dabei jeweils größere Unterschiede aufweisen. Es wird somit ein Satz an ersten MC-Ablaufplänen mit unterschiedlichen Verteilungsstrukturen erzeugt. Diese MC-Ablaufpläne können ggfs. durch das Verfahren nach dem zweiten Aspekt abgewandelt werden, wobei für jede Verteilungsstruktur effizientere abgewandelte MC-Ablaufpläne erzeugt werden. Anschließend kann durch das Auswahlverfahren ein Satz von besonders günstigen MC-Ablaufplänen ausgewählt werden, der dann die Ausgangsbasis für eine iterative Optimierung bildet. In der jeweils nächsten Iteration können ausgehend von den Portierungs-Parametern des ausgewählten MC-Ablaufplans Varianten mit demgegenüber gering veränderten Portierungs-Parametern erzeugt werden.
  • In den Unteransprüchen, den beigefügten Zeichnungen sowie der nachfolgenden Beschreibung sind weitere vorteilhafte Ausbildungen der Erfindung angegeben.
  • Die Erfindung ist in den Zeichnungen beispielhaft und schematisch dargestellt. Es zeigen:
  • 1: Eine Schemadarstellung zur Erläuterung der Erstellung, Bewertung, Transformation, sowie Auswahl oder Optimierung eines MC-Ablaufplans für eine portierte Steuerungssoftware;
  • 2A und 2B: eine beispielhafte Darstellung einer bestehenden Steuerungssoftware sowie eines SC-Ablaufplans für die Singlecore-Ausführung;
  • 3: einen ersten MC-Ablaufplan für die Multicore-Ausführung der portierten Steuerungssoftware sowie einen Eingang-Zu-Ausgang-Informationsverarbeitungsweg zur Ermittlung der worst case-Reaktionsverzögerung;
  • 4: einen zweiten MC-Ablaufplan analog zu 3, nach einer Verringerung der Prozessorfrequenz bis zur Erreichung der maximalen Verteilungsdichte am ersten Prozessor;
  • 5: einen dritten MC-Ablaufplan analog zu 4 nach einer Beschleunigung der Periodizitäten für die Instanziierung der Ablaufteile und einer kongruenten Erhöhung der Prozessorfrequenz.
  • Der Begriff Ablaufteil (A, B, C, D) bezeichnet im Rahmen der vorliegenden Offenbarung eine Gesamtheit von Anweisungen, die einen separierbaren Bestandteil der bestehenden Steuerungssoftware (10) bildet, und die in der bestehenden Steuerungssoftware (10) bei vorgegebenen Periodizitäten (T1, T2, T3, T4) wiederholt ausgeführt wird. Jede einzelne Ausführung eines Ablaufteils (A, B, C, D) wird als Instanz (A1–A8, B1–B4, C1–C4, D1–D4) dieses Ablaufteils (A, B, C, D) bezeichnet.
  • Um die Wirkungsweise der Verfahren gemäß der vorliegenden Offenbarung besser verständlich zu machen, werden zunächst anhand von 2A und 2B eine bestehende Steuerungssoftware (10), ein Informationsfluss (Wirkkette) innerhalb der bestehenden Steuerungssoftware (10) bei SC-Ausführung sowie eine Ausführungsdynamik bei SC-Ausführung erläutert.
  • 2A zeigt beispielhaft eine bestehende Steuerungssoftware, die beispielsweise eine Alt-Steuerungssoftware für ein Steuergerät, insbesondere für ein Fahrzeugsteuergerät ist.
  • Die bestehende Steuerungssoftware enthält mehrere Ablaufteile (A, B, C, D), die bei vorgegebenen Periodizitäten (T1, T2, T3, T4) ausgeführt werden. Die Periodizitäten (T1, T2, T3) sind ein maßgeblicher Parameter für die Ausführungsdynamik der bestehenden Steuerungssoftware auf einem Single-Core System. Sie geben in dem gezeigten Beispiel vor, dass der Ablaufteil (A) alle 1 ms zur Ausführung vorgesehen ist. Der zweite Ablaufteil (B) ist alle 2 ms zur Ausführung vorgesehen und der dritte Ablaufteil (C) ist alle 4 ms zur Ausführung vorgesehen. Ein weiterer Ablaufteil (D) ist ebenfalls alle 4 ms zur Ausführung vorgesehen.
  • Weiterhin sind in der bestehenden Steuerungssoftware Vorrang-Bedingungen (V) vorgesehen. Diese Vorrang-Bedingungen definieren, welcher der Ablaufteile (A, B, C, D) in welcher Reihenfolge auszuführen ist, wenn gemäß den Periodizitäten (T1, T2, T3, T4) zwei oder mehr Ablaufteile in einem gemeinsamen Intervall zur Ausführung vorgesehen sind.
  • In dem gezeigten Beispiel hat der erste Ablaufteil (A) den höchsten Rang, so dass dessen Instanzen (A1–A8) (in einem Intervall von einem Periodenbeginn zum nächsten) jeweils zuerst ausgeführt werden. Die weiteren Ablaufteile (B, C, D) haben jeweils niedrigere Ränge, so dass Instanzen (C1–C2) des dritten Ablaufteils (C) (in einem Intervall) jeweils nach Instanzen (A1–A8) des ersten Ablaufteils (A) und nach Instanzen (B1–B4) des zweiten Ablaufteils (B) ausgeführt werden.
  • Da die bestehende Steuerungssoftware (10) für ein Fahrzeuggerät mit nur einem Prozessor vorgesehen ist, wird zwangsweise eine sequentielle Ausführung der jeweiligen Instanzen (A1–A8, B1–B4, C1–C2, D1–D2) erfolgen, was in 2A für die gemeinsame Ausführung auf einem Einzel-Prozessor dargestellt ist.
  • In 2B ist die Ausführung derselben Instanzen (A1–A8, B1–B4, C1–C2, D1–D2) der jeweiligen Ablaufteile (A, B, C, D) separiert in jeweils einer eigenen Zeile dargestellt, um einen besseren Vergleich mit den weiter unten beschriebenen Ablaufplänen (13) für eine MC-Ausführung zu ermöglichen. Oben in 2B ist eine erste Skala dargestellt, die das Zeitverhalten in Prozessorschritten (ct) (clock tick) quantifiziert. Weiter unten ist eine Zeitskala (t) dargestellt, die das Zeitverhalten in Millisekunden quantifiziert. Die Prozessorfrequenz (F) für die SC-Ausführung ist in dem Beispiel von 2A und 2B mit 5ct/1ms festgelegt, was ein rein beispielhafter Ausgangswert ist, der zur Vereinfachung der Darstellung gewählt wurde. Alternativ kann ein beliebiger anderer Ausgangswert für die Prozessorfrequenz bei SC-Ausführung vorgesehen sein.
  • Ausgehend von einem Startzeitpunkt bei t = 0 ms bzw. ct = 0 wird der Ablaufteil (A) alle 1 ms neu instanziiert (A1–A8). Der zweite Ablaufteil (B) wird alle 2 ms und gemäß der Vorrang-Folge (V) jeweils sequentiell zu der vorherigen Instanz des ersten Ablaufteils (A1, A3, A5, A7) instanziiert (B1–B4). Der dritte Ablaufteil (C) wird analog alle 4 ms und gemäß der Vorrang-Folge (V) jeweils sequentiell zu der vorherigen Instanz (B1, B3) des zweiten Ablaufteils instanziiert (C1, C2).
  • In 2B ist weiterhin eine Wirkkette (P) (Eingang-Zu-Ausgang-Informationsverarbeitungsweg) für die SC-Ausführung als Referenzwert dargestellt. Weiter unten wird erläutert, wie eine solche Wirkkette (P) durch die Instanzen der Ablaufteile (A–D) identifiziert werden kann.
  • Der vierte Ablaufteil (D) nimmt nicht an der Eingang-Zu-Ausgang-Informationsverarbeitung gemäß der Wirkkette (P) teil, die zur Erzeugung (O) eines Steuerkommandos führt. Instanzen (D1, D2) des vierten Ablaufteils (D) sind daher in 2B ganz unten dargestellt. Der Ablaufteil (D) kann bei der Portierung im Wesentlichen ohne Auswirkung auf die worst case Reaktionsverzögerung (La, Lb, Lc) bei der MC-Ausführung zu einem der mehreren Prozessorkerne zugeordnet und parallelisiert oder sequenziell zu den anderen Ablaufteilen (A, B, C) ausgeführt werden. Die Zuordnung solcher Ablaufteile (D) und deren Instanzen kann nach beliebigen Kriterien optimiert werden, beispielsweise zur Erreichung einer gleichmäßig verteilten Prozessorauslastung oder zur Erhöhung der Dichte der Verteilungsstruktur. Aus diesem Grund wird auf den Ablaufteil (D) und dessen Instanzen (D1–D4) im Weiteren nur am Rande eingegangen.
  • Jede Instanz (A1–A8) des ersten Ablaufteils (A) nimmt eine Eingabe-Information auf und schreibt diese in eine Speichervariable, auf die auch jeweils eine Instanz (B1–B4) des zweiten Ablaufteils (B) lesend zugreift. Der erste Ablaufteil (A) und der zweite Ablaufteil (B) sind somit durch eine Schreib-Lese-Verknüpfung (M1) (Auch Schreib-Lese-Datenabhängigkeit genannt) korreliert.
  • Jede Instanz (B1–B4) des zweiten Ablaufteils (B) schreibt ein Ergebnis einer internen Verarbeitung, die auf dem eingelesenen Wert aus der Schreib-Lese-Verknüpfung (M1) basieren kann, in eine weitere Speichervariable, auf die auch jeweils eine Instanz (C1, C2) des dritten Ablaufteils (C) lesend zugreift. Somit sind auch der zweite Ablaufteil (B) und der dritte Ablaufteil (C) bzw. deren Instanzen durch eine Schreib-Lese-Verknüpfung (M2) korreliert.
  • Bei der in 2B dargestellten SC-Ausführung wird – bedingt durch die Vorrang-Folgen (V) – jeweils eine Instanz (B1–B4) des zweiten Ablaufteils (B) sequentiell zu einer Instanz (A1–A8) des ersten Ablaufteils (A) ausgeführt. Somit findet in der Lese-Schreib-Verknüpfung (M1) zwischen diesen Ablaufteilen (A, B) jeweils der Lese-Zugriff durch den zweiten Ablaufteil (B) zeitlich nach einem Schreib-Zugriff durch den ersten Ablaufteil (A) statt. Analog dazu findet auch in der Lese-Schreib-Verknüpfung (M2) jeweils ein lesender Zugriff durch eine Instanz (C1, C2) des dritten Ablaufteils (C) zeitlich nach einem schreibenden Zugriff einer Instanz (B1–B4) des zweiten Ablaufteils (B) statt. Mit anderen Worten ist in der bestehenden Steuerungssoftware eine Informationsweitergabe von einem produzierenden Ablaufteil zu einem konsumierenden Ablaufteil (A–B, B–C) auf Grund der vorgegebenen Periodizitäten (T1, T2, T3) sowie auf Grund der Vorrang-Folgen (V) derart geordnet, dass ein Schreib-Zugriff auf eine gemeinsame Speichervariable jeweils zeitlich vor einem Lese-Zugriff erfolgt.
  • 3 zeigt einen (ersten) MC-Ablaufplan (13, 13a) für die MC-Ausführung der portierten Steuerungssoftware (11). Die Darstellung in 3 ist analog zu 2B ausgeführt, um die Änderungen im Zeitverhalten zu verdeutlichen. Der erste MC-Ablaufplan (13) gemäß 3 kann auf beliebige Weise erzeugt sein. Er kann insbesondere von einem Ablaufplan-Generator (20) auf Basis gezielt vorgegebener oder zufällig ausgewählter Portierungs-Parameter (K1, K2, K3) erstellt sein.
  • Bei der MC-Ausführung gemäß dem ersten Ablaufplan (13a) werden Instanzen (A1–A7, B1–B6, C1–C3) des ersten, zweiten und dritten Ablaufteils (A, B, C) parallelisiert (22) ausgeführt. Mit anderen Worten wird jeder der Ablaufteile (A, B, C) auf einem separaten Prozessor ausgeführt, so dass der Beginn der jeweiligen Instanzen (A1–A7, B1–B6, (C1–C3) zeitlich parallel stattfinden kann. In 2B ist die Auswirkung der Parallelisierung (22) beispielhaft für die erste Instanz (B1) des ersten Ablaufteils (B) dargestellt. Die Parallelisierung (22) führt dazu, dass diese Instanz (B1) in der MC-Ausführung im Vergleich zur SC-Ausführung (vgl. 2B) früher ausgeführt wird.
  • Die Ablaufteile (A, B, C) werden bei der MC-Ausführung gemäß dem ersten MC-Ablaufplan (13a) also unter Beachtung der Periodizitäten, die für die SC-Ausführung vorgeschrieben sind (T1a = T1, T2a = T2, T3a = T3), auf die mehreren Prozessoren verteilt. Jedoch werden zumindest für die Ablaufteile (A, B, C) die Vorrang-Folgen (V) ignoriert, so dass jetzt eine Instanz (B1–B6) des konsumierenden Ablaufteils (B) zeitgleich zu einer Instanz (A1, A3, A5, A7) des produzierenden Ablaufteils (A) ausgeführt wird und weiterhin eine Instanz (C1, C2, C3) des konsumierenden Ablaufteils (C) zeitgleich zu einer Instanz (B1, B3, B5) des produzierenden Ablaufteils (B) ausgeführt wird. Dies stellt eine bevorzugte Form der Erstellung eines ersten Ablaufplans (13a) dar.
  • Um eine erfolgreiche Informationsverarbeitung von Eingang-zu-Ausgang, insbesondere von Sensor-zu-Aktuator, zu ermöglichen, werden die in der SC-Ausführung vorgesehenen Schreib-Lese-Verknüpfungen (M1, M2) bei der MC-Ausführung bevorzugt als gepufferte Schreib-Lese-Verknüpfungen (M1‘, M2‘) vorgesehen. Mit anderen Worten wird nach dem sog. Timed Implicit Communication(TIC)-Schema kommuniziert.
  • Zwischen dem ersten Ablaufteil (A) und dem zweiten Ablaufteil (B) ist eine erste gepufferte Schreib-Lese-Verknüpfung (M1‘) dargestellt. Eine Instanz (A1–A7) des ersten Ablaufteils (A) schreibt bei der MC-Ausführung eine Information in einen Pufferspeicher, der beispielsweise als Ring-Puffer ausgeführt und von einer externen Kommunikationsüberwachung verwaltet ist. Eine solche externe Kommunikationsüberwachung kann beispielsweise die AUTOSAR RTE sein. Eine Instanz (B1–B6) des zweiten Ablaufteils (B) greift lesend auf diese gepufferte Speichervariable zu, wobei durch die Kommunikationsüberwachung der jeweiligen Instanz (B1–B6) ein geeigneter Wert aus dem Ring-Puffer weitergegeben wird. Dies kann beispielsweise der momentan zeitlich aktuellste Wert in dem Ring-Puffer sein. Alternativ kann es ein anderer und insbesondere ein in Abhängigkeit von dem Steuerverfahren gezielt ausgewählte Wert sein. Entsprechend analog ist eine gepufferte Schreib-Lese-Verknüpfung (M2‘) zwischen dem zweiten Ablaufteil (B) und dem dritten Ablaufteil (C) vorgesehen.
  • Durch die Pufferung der gemeinsamen Speichervariablen wird bei der MC-Ausführung der Zeitbezug einer von einem konsumierenden Ablaufteil (B / C) eingelesenen Information gegenüber der SC-Ausführung verändert. Der lesende Zugriff findet – aufgrund der Parallelisierung (22) / Ignorierung von Vorrang-Folgen (V) – nicht mehr (sicher) sequenziell nach einem schreibenden Zugriff statt, sondern etwaig zeitlich parallel oder sogar vorgelagert. D.h. es kann sein, dass eine Instanz (B2, B3, B4, B5, B6) eines konsumierenden Ablaufteils (B) einen lesenden Zugriff auf die gemeinsame gepufferte Speichervariable ausführt (M1‘), bevor die parallelisierte Instanz (A3, A5, A7) des produzierenden Ablaufteils (A) den schreibenden Zugriff ausführt oder abgeschlossen hat.
  • Es kann also sein, dass eine Instanz (B3) bei der MC-Ausführung (3) im Vergleich zur SC-Ausführung (2B) eine etwas ältere Information verarbeitet, was grundsätzlich zu einer Verlängerung der Reaktionsverzögerung führen könnte.
  • In dem Beispiel von 3 schreiben die ersten beiden Instanzen des ersten Ablaufteils (A1, A2) bei t = 0ms und t = 1ms jeweils in die gemeinsame Speichervariable und erst die zweite Instanz (B2) des zweiten Ablaufteils liest diese gespeicherte Information zum Zeitpunkt t = 2ms aus. Die von der zweiten Instanz (B2) verarbeitete Information stammt also vom Zeitpunkt t = 1ms. Das relative Alter der von der zweiten Instanz (B2) des zweiten Ablaufteils eingelesenen Information beträgt also ca. 1ms.
  • Bei der SC-Ausführung gemäß 2B wurde hingegen bereits von der dritten Instanz (A3) des ersten Ablaufteils bei t = 2ms eine Information in die gemeinsame Speichervariable geschrieben, die direkt im Anschluss von der zweiten Instanz (B2) des zweiten Ablaufteils bei t = 2,2ms eingelesen worden ist. Das relative Alter der von der zweiten Instanz (B2) des zweiten Ablaufteils eingelesenen Information beträgt bei SC-Ausführung also ca. 0,2ms.
  • Die Veränderung des Zeitbezugs bzw. des Alters einer eingelesenen Information wird in 3 mit Bezugsziffer (TIC) (timed implicit communication) dargestellt.
  • Durch die Veränderung des Zeitbezugs (TIC) bei der Informationsverarbeitung von Eingang (Sensor / Trigger) zu Ausgang (Steuerkommando) kann es zu einer unzulässigen Verminderung der Reaktionsgeschwindigkeit der portierten Steuerungssoftware kommen. Gemäß dem ersten Aspekt der vorliegenden Offenbarung wird vorgeschlagen, die worst case Reaktionsverzögerung (L, La, Lb, Lc) auf der Wirkkette (P) als relevantes Maß zur Quantifizierung der Reaktionsgeschwindigkeit der portierten Steuerungssoftware zu verwenden. Diese Form der im Zeitverlauf vorwärts gerichteten Bewertung der Steuerdynamik hat sich gegenüber anderen Ansätze als vorteilhaft herausgestellt.
  • Die worst case-Reaktionsverzögerung (L, La, Lb, Lc) kann auf beliebige Weise bestimmt werden. Bevorzugt wird sie durch Analyse der Wirkkette (P) ermittelt. Die Wirkkette (P) beginnt bei einem Ablaufteil (A), der auf einen Eingang, insbesondere einen Sensor- oder Trigger-Eingang zugreift und einen Wert in eine erste Speichervariable schreibt (M1‘). Die Wirkkette (P) endet bei einem Ablaufteil, der (direkt oder indirekt) auf Basis der eingelesenen Information ein Steuerkommando erzeugt (O) und an einen Ausgang übergibt. Ein solches Steuerkommando kann beispielsweise die Betätigung eines Aktuators sein. Ein oder mehrere Zwischenteile de Wirkkette (P) können über die vorerwähnten Schreib-Lese-Verknüpfungen (M1‘, M2‘) auf gemeinsame gepufferte oder nicht gepufferte Speichervariable ermittelt werden.
  • Es wird bevorzugt die zeitlich längste Wirkkette (P) durch die Instanzen der Ablaufteile (A, B, C) ermittelt, die die Erzeugung (O) eines Steuerkommandos in Abhängigkeit von dem Auftreten (I) einer physikalischen Änderung einer sensierten Größe oder ab dem Auftreten (I) eines auslösenden Signals vorsieht. Durch diese zeitlich längste Wirkkette (P) wird die worst case Bedingung zur Bewertung der Reaktionsgeschwindigkeit umgesetzt. Die zeitlich längste Wirkkette (P) kann auf beliebige Weise ermittelt werden, wobei nachfolgend eine bevorzugte Form der Ermittlung aufgezeigt wird.
  • In dem Beispiel von 3 erzeugt die dritte Instanz (C3) des dritten Ablaufteils das Steuerkommando (O). Im worst case Fall ist die Information, auf der gemäß der gepufferten Schreib-Lese-Verknüpfung (M2‘) die Erzeugung der Ausgabe in der Instanz (C3) beruht, bereits von der dritten Instanz (B3) des zweiten Ablaufteils erzeugt worden (ältestes mögliches Alter der Information in Schreib-Lese-Verknüpfung). Diese Instanz (B3) hat im worst case Fall über die gepufferte Schreib-Leseverknüpfung (M1‘) eine Information eingelesen, die bereits von der dritten Instanz (A3) des ersten Ablaufteils geschrieben worden ist (ältestes mögliches Alter der Information in Schreib-Lese-Verknüpfung). Das Auftreten (I) der physikalischen Änderung bzw. des auslösenden Signals kann weiterhin im worst case Fall bereits während oder direkt nach dem Zugriff der zweiten Instanz (A2) des ersten Ablaufteils auf den Eingang erfolgt sein (längste mögliche Dauer zwischen physikalischem Auftreten und wirksamer Verarbeitung).
  • In dem Bewertungsverfahren (30) gemäß dem ersten Aspekt der vorliegenden Offenbarung wird bevorzugt diejenige Wirkkette (P) bestimmt, die für jeden lesenden Zugriff eines Ablaufteils (A, B, C) das höchste mögliche Informationsalter vorsieht. Die Bestimmung erfolgt bevorzugt analytisch und rein auf Basis des MC-Ablaufplans, insbesondere der Verteilungsstruktur und Ausführungsdynamik.
  • Die Wirkkette (P) in dem Beispiel von 3 lautet: I–A3–B3–C3–O. Die worst case Reaktionsverzögerung (La) (auch als Anfang-Zu-Ende-Latenz oder als Auslöser/Sensor-zu-Aktuator-Latenz bezeichnet) beträgt in dem Beispiel von 3 circa 8,7 ms.
  • In 2B ist beispielhaft die analog erzeugte worst case Wirkkette (P) für die SC-Ausführung der bestehenden Steuerungssoftware dargestellt. Diese ist unter denselben Bedingungen (älteste mögliche Information) erstellt wie in dem Beispiel von 3 und lautet: I–A2–B3–C2–O. Das Auftreten (I) am Eingang ist beispielhaft als sprunghafte Änderung der sensierten Größe bzw. des auslösenden Signals bei t = 0,1ms dargestellt, was genauso für die Analyse der MC-Ablaufpläne gelten kann.
  • Bei der SC-Ausführung beträgt die worst case-Reaktionsverzögerung (L) ca. 4,9 ms. Diese Dauer kann als Referenzwert für eine relationale Bewertung eines MC-Ausführungsplans (13a, 13b, 13c) verwendet werden, insbesondere zur Bestimmung der Verkürzung oder Verlängerung der worst case Rekationsverzögerung bei MC-Ausführung gegenüber der SC-Ausführung als Verhältniszahl La/L, Lb/L, Lc/L.
  • Eine Erhöhung der worst case-Reaktionsverzögerung (L) im Rahmen der Portierung (21) muss nicht unbedingt ein unzulässiges Steuerverhalten begründen. In der Regel ist für eine bestehende Steuerungssoftware (10) bekannt, welche worst case-Reaktionsverzögerung (L) als zulässig zu betrachten ist. Sie kann beispielsweise aus der Spezifikation der bestehenden Steuerungssoftware oder aus Angaben (bspw. der Kommentierung) im Quellcode hervorgehen. Alternativ kann sie manuell vorgegeben werden.
  • Gemäß der vorliegenden Offenbarung wird bevorzugt (manuell oder automatisiert) ein Zulässigkeits-Schwellenwert (L*) für die Reaktionsverzögerung festgelegt, mit dem eine aus einem Ablaufplan (13, 13a, 13b, 13c) für die MC-Ausführung berechnete worst case-Reaktionsverzögerung (L) verglichen wird. Im Zweifelsfall kann die worst case-Reaktionsverzögerung (L) der bestehenden Steuerungssoftware (10) bei SC-Ausführungen (vgl. 2B) als Zulässigkeits-Schwellenwert (L*) festgelegt werden.
  • Der Zulässigkeits-Schwellenwert (L*) kann auch als Referenzwert für eine relationale Bewertung eines MC-Ausführungsplans (13a, 13b, 13c) verwendet werden, insbesondere zur Bestimmung der Verkürzung der worst case Rekationsverzögerung (La, Lb, Lc) bei MC-Ausführung gegenüber dem Zulässigkeits-Schwellenwert als Verhältniszahl La/L*, Lb/L*, Lc/L*.
  • 1 zeigt ein Blockdiagramm zur Erläuterung verschiedener Vorgehen für die Optimierung der Portierung einer bestehenden Steuerungssoftware (10), die für die Ausführung auf einem Steuergerät (15) mit einem Einzel-Rechenkern (CPU) entwickelt ist, in eine portierte Steuerungssoftware (11), die auf einem Fahrzeugsteuergerät (16) mit mindestens zwei Rechenkernen (CPUs) ausführbar ist. Grundsätzlich können die vier Aspekte der vorliegenden Offenbarung und deren Fortbildungsvarianten in beliebiger Weise miteinander kombiniert werden.
  • Die bestehende Steuerungssoftware (10) wird durch einen Ablaufplan-Generator (20) (Portierungsmittel) in eine portierte Steuerungssoftware (11) umgewandelt. Dabei wird insbesondere ein (erster) MC-Ablaufplan (13, 13a, 13b, 13c) erstellt, durch den die Ablaufteile (A, B, C, D) der bestehenden Steuerungssoftware (10) bei einem vorgegebenen Zeitverhalten auf die mindestens zwei Rechenkerne verteilt und zumindest teilweise parallelisiert (22) werden.
  • Ein Verfahren gemäß dem ersten Aspekt der Offenbarung (Bewertungsverfahren 30) bewertet die Portierung (21) für einen und bevorzugt für jeden der Ablaufpläne (13, 13a, 13b, 13c) unter Berechnung der worst case-Reaktionsverzögerung (La, Lb, Lc). In Abhängigkeit von dem Bewertungsergebnis und ggfs. der weiteren Auswahlparameter können das oder die Verfahren nach dem zweiten, dritten oder vierten Aspekt einzeln oder in Kombination ausgeführt werden. Insbesondere können das Transformations- und oder das Optimierungsverfahren zur Erzeugung mindestens eines weiteren MC-Ablaufplans (13b, 14c) ausgeführt werden.
  • Es sind verschiedene Ansätze zur Optimierung der Portierung in die MC-Steuerungssoftware (11) denkbar. Gemäß einer ersten Alternative kann eine Mehrzahl und insbesondere eine Vielzahl von MC-Ablaufplänen (13, 13a) erstellt werden (beispielsweise auf Zufalls-Basis), wobei bevorzugt für jeden dieser MC-Ablaufpläne die worst case-Reaktionsverzögerung (L) ermittelt wird. Die Erstellung eines MC-Ablaufplans (13a) kann durch einen Ablaufplan-Generator (20) und ggfs. durch nachgeschaltete Transformation zur Erzeugung eines oder mehrerer abgewandelter Ablaufpläne (13b, 13c) erfolgen.
  • Durch ein Verfahren gemäß dem zweiten Aspekt (Auswahlverfahren 40) kann derjenige MC-Ablaufplan als günstigster MC-Ablaufplan (13c) ausgewählt werden, der ein geringeres oder das geringste Produkt aus der worst case Reaktionsverzögerung (La, Lb, Lc) und einer für die Ausführung des MC-Ablaufplans (13a, 13b, 13c) vorgesehenen Prozessorfrequenz (Fa, Fb, Fc) aufweist.
  • Alternativ oder zusätzlich kann mindestens ein MC-Ablaufplan und insbesondere ein Satz von MC-Ablaufplänen ausgewählt werden, dessen bzw. deren Produkt aus der worst case Reaktionsverzögerung (La, Lb, Lc) und einer für die Ausführung des MC-Ablaufplans (13a, 13b, 13c) vorgesehenen Prozessorfrequenz (Fa, Fb, Fc) kleiner oder gleich einem Zulässigkeits-Schwellenwert (Q*) für dieses Produkt ist. Wiederum alternativ oder zusätzlich kann derjenige Ablaufplan (13c) als günstiger bewertet und/oder ausgewählt werden, der eine zulässige worst case Reaktionsverzögerung (Lc) und weiterhin eine geringste Prozessorfrequenz (Fc) und/oder eine höchste Verteilungsdichte aufweist.
  • Innerhalb dieses Satzes kann dann eine weitere Auswahl vorgenommen werden, beispielsweise nach den oben erwähnten Auswahlparametern.
  • Bei Fahrzeugsteuergeräten steigt in der Regel die Energieaufnahme überproportional mit der Erhöhung der Prozessorfrequenz. Ein MC-Ablaufplan mit einer besonders geringen und bestenfalls der minimalen Prozessorfrequenz (Fc) bietet daher ein gutes Potential zur Senkung des Energiebedarfs. Wenn der MC-Ablaufplan ferner eine geringe worst case Reaktionsverzögerung (Lc) aufweist, bietet er eine hohe Reaktionsgeschwindigkeit und damit eine gute Steuerdynamik. Ferner stellt ein MC-Ablaufplan (13c) mit einer geringen Prozessorfrequenz (Fc) auch geringe Anforderungen an die Rechenleistung des MC-Fahrzeugsteuergeräts, auf dem die portierte Steuerungssoftware (11) ausgeführt wird.
  • Andererseits kann die worst case-Reaktionsverzögerung (La, Lb, Lc) einer portierten Steuerungssoftware (11) allenfalls kürzer werden, wenn die portierte Steuerungssoftware (11) auf dem MC-Fahrzeugsteuergerät mit einer höheren Prozessorfrequenz ausgeführt wird, als der in dem MC-Ablaufplan (13c) definierten Prozessorfrequenz (Fc). Ein gemäß den vorgenannten Kriterien ausgewählter MC-Ablaufplan (mit der geringsten erforderlichen minimalen Prozessorfrequenz) kann also bei beliebigen höheren Frequenzen ausgeführt werden und bietet somit eine maximale Einsatzvariabilität.
  • Gemäß einer zweiten Alternative kann ein Optimierungsverfahren (40) zur gezielten Optimierung der Portierung (21) der bestehenden Steuerungssoftware (10) in eine portierte Steuerungssoftware (11) vorgesehen sein. In dem Optimierungsverfahren wird für die portierte Steuerungssoftware (11) durch den Ablaufplan-Generator (20) gemäß vorgegebenen Portierungs-Parametern (K1, K2, K3) ein Ablaufplan (13, 13a) erzeugt. Insbesondere wird zunächst ein erster Ablaufplan (13a) erzeugt, der durch das Bewertungsverfahren (30) bewertet wird, wobei die worst case-Reaktionsverzögerung (La) für diesen ersten Ablaufplan (13a) berechnet wird.
  • In dem Optimierungsverfahren wird dann geprüft, ob die berechnete worst case-Reaktionsverzögerung (L) größer ist als ein Unzulässigkeits-Schwellenwert (L*) für die Reaktionsverzögerung. Wenn dies der Fall ist, d.h. wenn in dem ersten Ablaufplan (13a) eine unzulässige worst case-Reaktionsverzögerung (L) vorliegt, wird zumindest ein zweiter oder weiterer Ablaufplan (13b, 13c) auf Basis geänderter Portierungs-Parameter (K1‘, K2‘, K3‘) erzeugt und erneut hinsichtlich der Zulässigkeit der worst case-Reaktionsverzögerung (L) geprüft.
  • Der Unzulässigkeits-Schwellenwert (L*) kann in dem Optimierungs-Verfahren und in dem Auswahlverfahren identisch oder unterschiedlich vorgegeben sein.
  • Gemäß einer ersten Ausführungsvariante wird das Optimierungsverfahren solange einen zweiten oder weiteren Ablaufplan (13b, 13c) erstellen, bis ein Ablaufplan mit einer zulässigen worst case-Reaktionsverzögerung (La, Lb, Lc) aufgefunden ist. Dabei können die Portierungs-Parameter (K1, K2, K3) von einer Durchführung zur nächsten nach Zufalls-Prinzip oder zielgerichtet verändert werden.
  • Gemäß einer zweiten Ausführungsvariante kann parallel oder nachfolgend eine zusätzliche Optimierung hinsichtlich weiterer Bewertungs-Kriterien erfolgen. Insbesondere kann eine Optimierung dahingehend ausgeführt werden, dass ein Ablaufplan (13c) mit einer zulässigen Reaktionsverzögerung (Lc) sowie mit einer möglichst geringen Prozessorfrequenz (Fc) aufgefunden wird. Auch hierbei können die Portierungs-Parameter (K1, K2, K3) von einer Durchführung zur nächsten nach Zufalls-Prinzip oder zielgerichtet verändert werden.
  • Aus dem Beispiel der 3 ist ersichtlich, dass jede gepufferte Schreib-Lese-Verknüpfung (M1‘, M2‘) bei ansonsten gleichen Bedingungen die zeitliche Länge des worst case-Informationsverarbeitungspfads (P) erhöhen kann, weil sie im Vergleich zur SC-Ausführung ggfs. zur Verarbeitung von älteren Informationen führt. Mit anderen Worten kann jede Parallelisierung von zwei Ablaufteilen (A–B, B–C) die zeitliche Länge des worst case-Informationsverarbeitungspfads (P) erhöhen.
  • Während in dem Beispiel der 2B bis 5 eine Wirkkette (P) mit lediglich zwei Lese-Schreib-Verknüpfungen (M1, M2 bzw. M1‘, M2‘) dargestellt ist, können in der Praxis Verarbeitungswege mit deutlich größeren Anzahlen von Schreib-Lese-Verknüpfungen vorliegen. Ferner können deutlich größere Unterschiede zwischen den Periodizitäten (T1, T2, T3) der schreibenden und konsumierenden Ablaufteile (A–B, B–C) vorliegen.
  • Ein erster Portierungs-Parameter (K1) kann bevorzugt die Tiefe der Parallelisierung (22) von Ablaufteilen (A, B, C) beschränken, die an einer Wirkkette (P) beteiligt sind. In dem Beispiel von 3 könnte die Parallelisierung der Instanzen (B1–B6, C1–C3) des zweiten und dritten Ablaufteils (B, C) unterbunden werden, so dass jeweils eine Instanz (C1, C2, C3) gemäß der Vorrangfolge (V) aus der bestehenden Steuerungssoftware (10) sequenziell nach der Ausführung einer zugehörigen Instanz (B1, B3, B5) der zweiten Ablaufvariable (B) ausgeführt würde. Durch diese Maßnahme, würde keine Veränderung des Zeitbezugs (TIC) für die zweite Lese-Schreibverknüpfung (M2) mehr erzeugt und gegenüber dem Beispiel in 3 würde der Informationsverarbeitungspfad (P) lauten: I–A2–B3–C2–O. Es würde also durch die Änderung des Portierungs-Parameters (K1) eine andere Verteilungsstruktur geschaffen, die zu einer anderen Wirkkette (P) führt. Die Beschränkung der Anzahl an Parallelisierungen (22) zwischen Ablaufteilen (A–B, B–C) stellt eine erste Möglichkeit dar, die Tiefe der Parallelisierung zu beschränken.
  • Ferner kann zielgerichtet eine Parallelisierung von solchen Ablaufteilen (B–C) unterbunden werden, bei denen ein lesender Zugriff auf eine gemeinsame Speichervariable (M2) durch einen Ablaufteil (C) mit besonders hoher Periodizität (T3 = 4ms) erfolgt. Die (schrittweise) Unterbindung der Parallelisierung (22) von konsumierenden Ablaufteilen (C), insbesondere solchen mit hoher Periodizität (T3), stellt eine weitere Alternative zur Beschränkung der Tiefe der Parallelisierung dar.
  • Nachfolgend werden unter Bezugnahme auf die 3 bis 5 MC-Ablaufpläne (13a, 13b, 13c) erläutert, wobei die Unterschiede zwischen diesen Plänen sowohl durch ein (Transformations-)Verfahren gemäß dem zweiten Aspekt der vorliegenden Offenbarung als auch durch Vorgabe geänderter Portierungs-Parameter (K2, K3) an den Ablaufplan-Generator (20) in dem (Optimierungs-)Verfahren (40) gemäß dem vierten Aspekt der vorliegenden Offenbarung erzielbar sind.
  • In dem Beispiel von 3 waren für den ersten MC-Ablaufplan (13, 13a) der portierten Steuerungssoftware (11) derselbe Prozessortakt und dieselben Periodizitäten (T1a = T1, T2a = T2, T3a = T3) vorgesehen worden, wie sie in dem Ablaufplan (12) für die SC-Ausführung gemäß 2B definiert sind, d.h. es wurde die Ausführungsdynamik der SC-Ausführung für die MC-Ausführung übernommen. Dies stellt eine bevorzugte Vorgabe für die Erstellung eines ersten MC-Ablaufplans (13a) dar.
  • In dem Beispiel von 4 ist ein abgewandelter MC-Ablaufplan (13b) für die portierte Steuerungssoftware (11) gezeigt. In diesem Beispiel wurde die Prozessorfrequenz (Fb) unter Beibehaltung der Verteilungsstruktur aus dem ersten MC-Ablaufplan (13a) auf die minimal mögliche Grenz-Prozessorfrequenz reduziert, sodass die Ausführungen der Instanzen (A1–A7) des ersten Ablaufteils (A) die gesamte Arbeitszeit des ersten Prozessorkerns ausfüllen. Hierdurch ändert sich das Verhältnis zwischen der Prozessortakt-Skala (oben in 2B, 3 und 4 dargestellt, gemessen in Prozessorschritten ct) und der Zeitskala (t, gemessen in ms). In dem Beispiel von 3 wies der erste Prozessor im Vergleich zu den anderen Prozessoren bereits die relativ höchste Verteilungsdichte (Z = Ablaufdauer W / verfügbare Arbeitszeit W + U) auf. In dem zweiten MC-Ablaufplan (13b) gemäß 4 wurde die Prozessorfrequenz (Fb) so weit gesenkt, bis die Arbeitszeit dieses ersten Prozessors durch die Arbeitszeit für das Ausführen (W) der Instanzen (A1–A7) des Ablaufteils (A), die vorliegend als einzige dem ersten Prozessor zugeordnet sind, vollständig ausgefüllt ist. Natürlich muss bei der Verringerung der Prozessorfrequenz (Fb) darauf geachtet werden, dass die zur Verfügung stehende Arbeitszeit jedes Prozessors für die Ausführung (W) aller geplanten Instanzen ausreicht, d.h. dass die Ausführungsdauer (W) keiner Instanz der Ablaufteile (A, B, C, D) die dem jeweils ausführenden Prozessorkern zur Verfügung stehende Arbeitszeit überschreiten darf.
  • Im Beispiel von 3 beträgt die Verteilungsdichte Za ca. 0,2. Im Beispiel von 4 wurde die Verteilungsdichte Zb auf das Maximum 1,0 erhöht. Dies stellt lediglich ein optimales Beispiel dar. Wenn jedem Prozessor mehr als ein Ablaufteil zugeordnet ist, kann es trotzdem sinnvoll sein, zunächst denjenigen Prozessor in dem bestehenden MC-Ablaufplan auszuwählen, der bereits eine höchste relative Verteilungsdichte (Za) aufweist. Es kann weiterhin auf Basis dieses ausgewählten Prozessors diejenige Grenz-Frequenz ermittelt werden, bei der (unter Beibehaltung der Periodizitäten des bestehenden MC-Ablaufplans) eine maximale Verteilungsdichte Z erreicht wird.
  • Je geringer die Prozessorfrequenz (Fa, Fb, Fc) gewählt wird, desto mehr Zeit (Ausführungsdauer W absolut, in ms) wird für die Ausführung einer Instanz eines Ablaufteils benötigt. In dem Beispiel von 2B bzw. 3 beträgt die Prozessorfrequenz (F, Fa) jeweils ca. 5 Prozessorschritte pro Millisekunde (beispielhafter Ausgangswert). Die Ausführungsdauer (W) einer Instanz (A1–A8) des ersten Ablaufteils (A) dauert hier jeweils ca. 0,2 ms.
  • In dem Beispiel von 4 wurde die Prozessorfrequenz (Fb) auf ein Fünftel reduziert, d.h. auf einen Prozessorschritt pro Millisekunde (1 ct/ms, beispielhafter Wert). Dementsprechend dauert die Ausführung (W) einer Instanz (A1–A7) des ersten Ablaufteils (A) in dem Beispiel von 4 etwa fünf Mal so lang, nämlich 1 ms.
  • Durch die Verringerung der Prozessorfrequenz (Fb) wird in dem Beispiel von 4 die Struktur des Informationsverarbeitungswegs (P) im Vergleich zur 3 nicht verändert, was bevorzugt als Randbedingung für das Verfahren gemäß dem zweiten Aspekt der Offenbarung vorgesehen sein kann. Die Wirkkette (P) lautet also auch hier: I–A3–B3–C3–O. Da allerdings die Ausführungsdauer (W) einer Instanz (C1–C3) der dritten Ablaufvariable (C) nun 4 ms in Anspruch nimmt (statt circa 0,8 ms in 2B) wird die worst case Reaktionsverzögerung (Lb) in dem zweiten Ablaufplan (13b) auf circa 10 ms erhöht.
  • Es ist ersichtlich, dass durch die Verringerung der Prozessorfrequenz (Fb) tendenziell eine Erhöhung der worst case Reaktionsverzögerung (Lb) erzeugt wird. Andererseits weist der zweite Ablaufplan (13b) gemäß 4 eine besonders hohe Verteilungsdichte (Z) und damit eine sehr geringe erforderliche Rechenleistung auf. Wenn der Zulässigkeits-Schwellenwert (L*) für die Reaktionsverzögerung größer oder gleich 10 ms ist, könnte der zweite Ablaufplan (13b) gemäß 4 ein gutes Optimierungsergebnis sein.
  • Soweit eine berechnete worst case-Reaktionsverzögerung (La, Lb, Lc) um ein ausreichendes Maß geringer ist als der Zulässigkeits-Schwellenwert (L*) kann die Verringerung der Prozessorfrequenz (Fa, Fb, Fc) vorgenommen werden und es kann insbesondere diejenige minimale Prozessorfrequenz (analytisch oder durch ein iteratives Verfahren) ermittelt werden, bei der noch eine zulässige worst case-Reaktionsverzögerung (La, Lb, Lc) erreichbar ist.
  • Wird alternativ davon ausgegangen, dass der Zulässigkeits-Schwellenwert (L*) gleich der worst case Reaktionsverzögerung (L) bei SC-Ausführung ist, so ist eine andere oder weitere Optimierung notwendig, die nachfolgend erläutert wird. Ein einem solchen Fall wäre die für den MC-Ablaufplan (13b) gemäß 4 ermittelte worst case Reaktionsverzögerung (Lb) unzulässig.
  • In dem Beispiel von 5 ist ein dritter MC-Ablaufplan (13c) für die portierte Steuerungssoftware (11) gezeigt, der im Vergleich zu dem ersten MC-Ablaufplan (13a) der 3 und im Vergleich zu dem zweiten MC-Ablaufplan (13c) gemäß 4 erläutert wird. Der dritte MC-Ablaufplan (13c) hat erneut dieselbe Verteilungsstruktur wie der erste MC-Ablaufplan (13a) aus 3. Er kann also entweder durch das Transformationsverfahren auf Basis des bestehenden ersten und/oder zweiten MC-Ablaufplans (13a, 13b) oder durch Vorgabe geänderter Portierungs-Parameter (K2‘, K3‘) in dem Optimierungsverfahren (40) erzeugt sein.
  • In dem Beispiel von 5 wurde einerseits die Prozessorfrequenz (Fc) auf etwa die Hälfte der Ausgangsfrequenz (F) für SC-Ausführung gesenkt, nämlich auf etwa 2,5 Prozessschritte pro Millisekunde (2,5ct/ms, beispielhafter Wert). Hierdurch ist die Dauer (W) für die Ausführung einer Instanz (A1–A7) der ersten Ablaufvariable (A) gegenüber der SC-Ausführung auf das Doppelte erhöht, hier auf etwa 0,5 ms.
  • Andererseits wurden die Periodizitäten (T1c, T2c, T3c) auf etwa die Hälfte der Ausgangsperiodizitäten (T1, T2, T3) bei der SC-Ausführung bzw. auf die Hälfte der Ausgangsperiodizitäten (T1b, T2b, T3b) gemäß dem zweiten Ablaufplan (13b) verringert. Der erste Ablaufteil (A) wird nun alle 0,5 ms ausgeführt, der zweite Ablaufteil (B) alle 1 ms und der dritte Ablaufteil (C) alle 1,5 ms.
  • Aus dem Vergleich der 3, 4 und 5 ist ersichtlich, dass die Wirkkette (P) in 5 erneut die übereinstimmende Struktur hat, wie in 3 und 5. Er lautet: I–A2–B4–C3–O. Dies folgt aus der übereinstimmenden Verteilungsstruktur in den MC-Ablaufplänen (13a, 13b, 13c).
  • Allerdings wurde durch die Beschleunigung der Periodizitäten (T1c = 1/2T1, T2c = 1/2T2, T3c = 1/2T3) trotz der Reduktion der Prozessorfrequenz (Fc) die Länge der worst case-Reaktionsverzögerung (Lc) auf 5 ms reduziert, d.h. auf etwa dieselbe Dauer, die bei der SC-Ausführung auf einem Singlecore-Steuergerät (15) erreicht wird (vgl. 2B). Das Maß (G) der Beschleunigung der Periodizitäten (T1c = G·T1 bzw. G·T1a bzw. G·T1b) kann durch iterative Veränderung der Portierungs-Parameter (K2, K3) in einem (Optimierungs-)Verfahren gemäß dem vierten Aspekt aufgefunden werden. Alternativ und bevorzugt kann es durch eine Ausbildung des (Transformations-) Verfahrens gemäß dem zweiten Aspekt und damit auf deutlich kürzerem Wege gefunden werden. Die Herleitungsformeln sind oben in 4 und rechts in 5 dargestellt.
  • Zunächst gemäß dem Beispiel von 4 bei gegebener Verteilungsstruktur die Grenz-Prozessorfrequenz (Fb) ermittelt, bei der die maximale Verteilungsdichte (Zb) zu erreichen ist. Diese Ermittlung kann rein analytisch auf Basis des ersten MC-Ablaufplans (13a) erfolgen, d.h. ohne dass der in 4 dargestellte MC-zweite Ablaufplan (13b) tatsächlich generiert werden muss. Die Periodizitäten (T1c, T2c, T3c) werden so weit beschleunigt, bis die worst case Reaktionsverzögerung (Lc) abgewandelten MC-Ausführungsplans (13c) kleiner oder bevorzugt gleich dem Zulässigkeits-Schwellenwert (L*) und insbesondere gleich der worst case Reaktionsverzögerung (L) bei SC-Ausführung ist. Hieraus ergibt sich ein Beschleunigungsfaktor (G) als quantitatives Maß der Beschleunigung. Er kann beispielsweise durch folgende Gleichung ermittelt werden: Beschleunigungsfaktor (G) ist gleich verkürzter Periodizität (T1c, T2c, T3c) im abgewandelten MC-Ausführungsplan (13c) geteilt durch Ausgangsperiodizität (T1b, T2b, T2c / T1, T2, T3) im bestehenden MC-Ablaufplan (bzw. bei SC-Ausführung).
  • Wenn die Prozessorfrequenz (Fc) in dem abgewandelten MC-Ablaufplan (13c) um den Kehrwert (1/G) des Beschleunigungsfaktors erhöht wird, erfolgt eine proportionale Skalierung der Ausführungsdynamik unter Beibehaltung der Verteilungsdichte /Zc = Zb). Somit kann bei gegebener Verteilungsstruktur durch das Verfahren gemäß dem zweiten Aspekt derjenige MC-Ablaufplan (13c) aufgefunden werden, der die höchste Verteilungsdichte (Zc) und die geringste minimal erforderliche Prozessorfrequenz (Fc) aufweist.
  • Die vorbeschriebenen Schritte können auch als Bestandteil des (Optimierungs-)Verfahrens gemäß dem vierten Aspekt genutzt werden. Insbesondere kann ein zweiter Portierungs-Parameter (K2‘) das Maß einer Beschleunigung (G) der für die Ablaufteile (A, B, C, D) vorgesehenen Periodizitäten (T1–T4) vorgeben.
  • Mit anderen Worten können in dem Optimierungsverfahren und/oder in dem Transformationsverfahren die Beschleunigung (G) der Periodizitäten und die Reduzierung der Prozessorfrequenz unter gegenseitiger Anpassung verändert werden, um zu einem optimalen Ablaufplan (13c) zu gelangen.
  • Die gegenseitige Anpassung kann insbesondere auf Basis der oben genannten Auswahlparameter erfolgen, insbesondere auf Basis der Verteilungsdichte (Z).
  • Die in der vorliegenden Offenbarung enthaltenen Verfahren können bevorzugt einzeln oder gemeinsam als Software auf einer geeigneten Datenverarbeitungseinrichtung ausgeführt werden. Sie können einzeln oder gemeinsam teil- oder vollautomatisiert ausgeführt werden, insbesondere um aus einer bestehenden SC-Steuerungssoftware (10) eine hinsichtlich der zulässigen worst case-Reaktionsverzögerung (L*) sowie der erforderlichen minimalen Prozessorfrequenz (Fc) optimierte portierte Steuerungssoftware (11) zu erzeugen. Es kann insbesondere ein Softwareprodukt vorgesehen sein, das Anweisungen zur Umsetzung von mindestens einem der offenbarten Verfahren umfasst. Das Softwareprodukt kann bevorzugt auf einem Datenträger gespeichert und für die Installation auf einer Datenverarbeitungseinrichtung, insbesondere einem Personalcomputer vorgesehen sein.
  • Abwandlungen der Erfindung sind in verschiedener Weise möglich. Insbesondere können die zu den einzelnen Ausführungsbeispielen gezeigten, beschriebenen, beanspruchten oder in sonstiger Weise offenbarten Merkmale beliebig miteinander kombiniert, gegeneinander ersetzt, ergänzt oder weggelassen werden.
  • In den Beispielen der 2B bis 5 wurde angenommen, dass die Zeitdauer (W, in ms) der Ausführung einer Instanz (A1–A8), (B1–B4), (C1–C4) der Ablaufteile (A, B, C) jeweils der sogenannten worst case execution time (WCET) entspricht. Die WCET kann auf Basis bekannter Verfahren aus dem kompilierten oder unkompilierten Quellcode der bestehenden Steuerungssoftware und Basisinformationen über das System, auf das die Portierung erfolgen soll, berechnet werden, insbesondere auf Basis der vorgesehenen Prozessorfrequenz (Fa, Fb, Fc) und der Anzahl der Verarbeitungsschritte in einem Ablaufteil (A, B, C, D). Ferner wurde beispielhaft davon ausgegangen, dass in jeder Instanz ein lesender Zugriff auf einen Eingang oder eine Speichervariable zum frühesten möglichen Zeitpunkt, d.h. zum Beginn der Ausführung der jeweiligen Instanz erfolgt. Ferner wurde davon ausgegangen, dass ein schreibender Zugriff auf eine Speichervariable oder einen Ausgang zum spätesten möglichen Zeitpunkt, d.h. zum Ende der Ausführung einer Instanz (= Startzeitpunkt + WCET) erfolgt. Alternativ kann für einzelne oder alle Zugriffe auf Eingang, Ausgang oder Speichervariablen der jeweils tatsächliche Zeitpunkt berücksichtigt werden, beispielsweise auf Basis einer Analyse des kompilierten oder unkompilierten Codes für jeden der Ablaufteile (A, B, C, D).
  • In dem Beispiel der 2B bis 3 wurde weiterhin vereinfachend angenommen, dass nur eine einzelne Wirkkette (P) betrachtet und demensprechend nur eine einzelne worst case-Reaktionsverzögerung (La, Lb, Lc) für einen MC-Ablaufplan (13, 13a, 13b, 13c) berechnet wird. Alternativ können zwei oder mehr Wirkketten (P) für verschiedene Steuerkommandos und/oder verschiedene zu sensierende Größen bzw. auslösende Signale berechnet werden. Gegebenenfalls können ein, zwei oder mehr kritische Pfade (manuell oder automatisiert) ausgewählt werden, die (ausschließlich) für die Optimierung der Portierung relevant sind. Entsprechend können zwei oder mehr Zulässigkeits-Schwellenwerte (L*, Q*) definiert sein.
  • In dem Optimierungsverfahren gemäß einer bevorzugten Variante wird ein erster MC-Ablaufplan (13a) erzeugt und bewertet. Ferner wird ein Verhältnis zwischen der ermittelten worst case Reaktionsverzögerung (La) für diesen Ablaufplan und einem Entscheidungs-Schwellenwert berechnet. Der Entscheidungs-Schwellenwert kann um einen vorgegebenen Faktor länger sein, als die worst case Reaktionsverzögerung (L) bei SC-Ausführung. Der Faktor kann anhand von Erfahrungswerten oder analysierten Werten darüber festgelegt sein, um welches Maß die worst case Reaktionsverzögerung (Lb, Lc) durch das Transformationsverfahren unter Erstellung eines abgewandelten MC-Ablaufplans (13b, 13c) verringerbar ist. Mit anderen Worten stellt der Faktor einen Schätzwert für die Erfolgswahrscheinlichkeit der Durchführung des Transformationsverfahrens dar. Wenn der so festgelegte Entscheidungs-Schwellenwert durch die worst case Reaktionsverzögerung (La) des ersten MC-Ablaufplans (13a) überschritten wird, ist davon auszugehen, dass eine ausreichende Verkürzung der worst case Reaktionsverzögerung nur auf Basis einer geänderten Verteilungsstruktur und insbesondere durch Beschränkung der Parallelisierung zu erreichen ist. Also wird der erste Portierungs-Parameter (K1) geändert und ein neuer MC-Ablaufplan erzeugt, der anschließend erneut mit dem Entscheidungs-Schwellenwert der vorgenannten Art verglichen wird. Erscheint nun eine erfolgreiche Transformation unter Beibehaltung der Verteilungsstruktur möglich, wird das Transformationsverfahren ausgeführt.
  • Gemäß einer bevorzugten Variante wird wie folgt vorgegangen: Es wird ein Satz von MC-Ablaufplänen (13a) erzeugt. Zu jedem der so erzeugten MC-Ablaufpläne (13a) wird ein geänderter MC-Ablaufplan (13b) erzeugt, dessen Verteilungsstruktur dieselbe ist und wobei die Prozessorfrequenz (Fb) soweit reduziert wurde, dass ein erster Ablaufteil gerade die zur Verfügung stehende Arbeitszeit des jeweils ausführenden Prozessorkerns ausfüllt (in 4 ist dies der Ablaufteil A). Dies ist der geschwindigkeitsbestimmende Ablaufteil. Es ist unerheblich, ob dies bei einem oder mehreren Ablaufteilen gleichzeitig auftritt. Ferner kann eine geringfügige Marge für ungenutzte Prozessorzeit angesetzt werden, sodass die zur Verfügung stehende Arbeitszeit des betreffenden Prozessorkerns nicht vollständig, sondern z.B. nur zu 99% der Arbeitszeit durch den Ablaufteil oder die Ablaufteile in Anspruch genommen wird (nicht dargestellt). Im Folgenden wird für jeden so geänderten Ablaufplan (13b) die worst case Reaktionsverzögerung (Lb), individuell ermittelt. Ferner wird zur Wiederherstellung der ursprünglichen Latenzzeit (L) der SC-Ausführung sowohl die Periodizität (T1b–T3b) als auch die Prozessorfrequenz (Fb) mit dem Quotienten der beiden Latenzzeiten (L/Lb) re-skaliert, d.h. der Beschleunigungsfaktor (G) wird gemäß der Gleichung G = Lb/L berechnet und die beschleunigten Periodizitäten werden gemäß den folgenden Gleichungen berechnet: T1c = G·T1b, T2c = G·T2b, T3c = G·T3b. Gleichzeitig wird die Prozessorfrequenz Z um den Kehrwert des Beschleunigungsfaktors (1/G) erhöht, d.h. gemäß der Gleichung: Fc = 1/G·Fb. Der so re-skalierte MC-Ablaufplan (13c), siehe 5, weist nun eine Prozessorfrequenz (Fc) auf, die typischerweise geringer als die Prozessorfrequenz (F) bei der SC-Ausführung ist. Abschließend werden MC-Ablaufpläne mit möglichst niedrigen Prozessorfrequenzen (Fc) als gut bewertet, wobei auch andere Kriterien zur endgültigen Auswahl des MC-Auswahlplans berücksichtigt werden können. Das Verfahren kann nach an sich bekannten Methoden iteriert werden. Bezugszeichenliste
    10 Bestehende Steuerungssoftware / Alt-Steuerungssoftware Legacy control software
    11 Portierte Steuerungssoftware Ported control software
    12 Ablaufplan für SC-Ausführung Schedule / Processing plan for SC-execution
    13a Ablaufplan für SC-Ausführung Schedule / Processing plan for SC-execution
    13b Ablaufplan für SC-Ausführung Schedule / Processing plan for SC-execution
    13c Ablaufplan für SC-Ausführung Schedule / Processing plan for SC-execution
    13 Ablaufplan für MC-Ausführung Schedule / Processing plan for SC-execution
    20 Ablaufplan-Generator Schedule generator
    21 Portierung Porting
    22 Parallelisierung Parallelization
    30 Bewertungsverfahren / Bewertungsmittel Evaluation method / Evaluation means
    40 Optimierungsverfahren /Optimierungsmittel Optimization method / Optimization means
    ct Prozessorschritt / clock tick Processor step / clock tick
    t Zeit (in Millisekunden) Time (in Milliseconds)
    A Erster Ablaufteil First Runnable
    B Zweiter Ablaufteil Second Runnable
    C Dritter Ablaufteil Third Runnable
    D Vierter Ablaufteil Forth Runnable
    A1, Erste Instanz / First instance /
    B1... Ausführung des jeweiligen Ablaufteils execution of respective runnable
    A2, Zweite Instanz / Second instance /
    B2... Ausführung des jeweiligen Ablaufteils execution of respective runnable
    F (Minimale) Prozessorfrequenz bei SC-Ausführung (Minimum) Processor frequency for SC-execution
    Fa, (Minimale) (Minimum) Processor
    Fb, Prozessorfrequenz bei MC- frequency for MC-
    Fc Ausführung execution
    I Worst case Auftrittszeitpunkt für Eingangsgröße Worst case occurrence time for input factor
    K1 Erster Portierungs-Parameter First porting parameter
    K2 Zweiter Portierungs-Parameter Second porting parameter
    K3 Dritter Portierungs-Parameter Third porting parameter
    L Worst case Eingang-zu-Ausgang Reaktionsverzögerung bei SC-Ausführung Worst Case input-to-output reaction delay for SC-execution
    La, Worst case Eingang-zu- Worst Case input-to-
    Lb, Ausgang output reaction delay
    Lc Reaktionsverzögerung bei MC-Ausführung for MC-execution
    L* Zulässigkeits-Schwellenwert Admissibility threshold
    M1 Erste nicht gepufferte Schreib-Lese-Verknüpfung First non-buffered write-read-connection
    M2 Zweite nicht gepufferte Schreib-Lese-Verknüpfung Second non-buffered write-read-connection
    M1’ Erste gepufferte Schreib-Lese-Verknüpfung First buffered write-read-connection
    M2’ Zweite gepufferte Schreib-Lese-Verknüpfung Second buffered write-read-connection
    O Spätester Ausgabezeitpunkt für Steuerkommando Latest output time for control command
    P Wirkkette /(Informations-)Verarbeitungsweg Effect chain / (Information) Processing Path
    Q* Zulässigkeits-Schwellenwert für Produkt R Admissibility threshold for product R
    R (gewichtetes) Produkt aus worst case Reaktionsverzögerung und Prozessorfrequenz (weighed) product of worst case reaction delay and processor frequency
    T1- Periodizitäten der Periodicities of
    T4 Ablaufteile A–D bei SC-Ausführung runnables A–D in SC-execution
    T1a- Periodizitäten der Periodicities of
    T4a Ablaufteile A–D bei MC-Ausführung runnables A–D in MC-execution
    T1b- Periodizitäten der Periodicities of
    T4b Ablaufteile A–D bei MC-Ausführung runnables A–D in MC-execution
    T1c- Periodizitäten der Periodicities of
    T4c Ablaufteile A–D bei MC-Ausführung runnables A–D in MC-execution
    TIC Veränderter Zeitbezug für Schreib-Lese-Verknüpfung (timed implicit communication) Changed time relation for write-read-connection (timed implicit communication)
    U Nicht genutzte Arbeitszeit eines Prozessors Non-used processing time of a processor
    V Vorrang-Beschränkung Precedence Constraint
    W Ablaufdauer einer Instanz Processing duration of one instance
    Z Verteilungsdichte Distribution density
  • 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 102014103139 [0002, 0002, 0002]

Claims (13)

  1. Verfahren zur Bewertung des Erfolgs einer Portierung (21) einer bestehenden Steuerungssoftware (10), die für die Ausführung auf einem Steuergerät mit einem Einzel-Rechenkern entwickelt ist (SC-Ausführung), in eine portierte Steuerungssoftware (11), die auf einem Fahrzeugsteuergerät mit mindestens zwei Rechenkernen ausführbar ist (MC-Ausführung), wobei für die portierte Steuerungssoftware (11) ein MC-Ablaufplan (13, 13a, 13b, 13c) vorliegt, durch den Ablaufteile (runnables, A, B, C, D) der bestehenden Steuerungssoftware (10) bei einem vorgegebenen Zeitverhalten auf die mindestens zwei Rechenkerne verteilt und zumindest teilweise parallelisiert (22) werden, dadurch gekennze ich net, dass in dem Verfahren (30) das Zeitverhalten der Informationsverarbeitung auf einer Wirkkette (P) durch Instanzen (A1, B3, C2) der Ablaufteile (A, B, C) auf Basis des MC-Ablaufplans (13, 13a, 13b, 13c) analysiert wird und dass die worst case Reaktionsverzögerung (La, Lb, Lc) ab dem Auftreten (I) einer physikalischen Änderung einer sensierten Größe oder ab dem Auftreten eines auslösenden Signals bis zur Erzeugung (O) eines davon abhängigen Steuerkommandos als (erster) Bewertungsparameter berechnet wird.
  2. Verfahren nach Anspruch 1, wobei zusätzlich ein Produkt aus der worst case Reaktionsverzögerung (La, Lb, Lc) und einer für die Ausführung des MC-Ablaufplans (13b, 13c) vorgesehenen Prozessorfrequenz (Fb, Fc) als (weiterer) Bewertungsparameter berechnet wird, wobei das Produkt insbesondere ein gewichtetes Produkt ist.
  3. Verfahren nach Anspruch 1 oder 2, wobei in dem MC-Ablaufplan (13, 13a, 13b, 13c) zumindest zwei Ablaufteile (A–B, B–C) enthalten sind, deren Instanzen einerseits schreibend (produzierender Ablaufteil) und andererseits lesend (konsumierender Ablaufteil) auf eine gemeinsame gepufferte Speichervariable zugreifen (M1‘, M2‘), um eine Information in der Wirkkette (P) weiterzugeben.
  4. Verfahren nach einem der Ansprüche 1, 2 oder 3, wobei für einige oder alle Ablaufteile (A, B, C, D) in dem Ablaufplan Periodizitäten (T1a–T4a, T1b–T4b, T1c–T4c) vorgesehen sind, bei denen die Ablaufteile (A, B, C, D) wiederholt ausgeführt bzw. instantiiert werden.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei zumindest zwei parallelisierte Ablaufteile (A, B, C) in der Wirkkette (P) schreibende und lesende Zugriffe (M1‘, M2‘) mit einem gegenüber der SC-Ausführung verändertem Zeitbezug (TIC) auf eine persistente Speichervariable ausführen, die in einer getrennt verwalteten Datenbasis gepuffert ist.
  6. Verfahren zur Erzeugung eines abgewandelten MC-Ablaufplans (13b, 13c) aus einem bestehenden MC-Ablaufplan (13a), wobei das Verfahren die folgenden Schritte aufweist: – Verringerung der Prozessorfrequenz (Fb) des abgewandelten MC-Ablaufplans (13b) gegenüber der Prozessorfrequenz (Fa) des bestehenden MC-Ablaufplans (13a) bzw. der Prozessorfrequenz (F) für die SC-Ausführung, insbesondere bis zu einer Grenz-Prozessorfrequenz (Fb), bei welcher die Arbeitszeit zumindest eines Prozessors durch die Arbeitszeit für das Ausführen der Instanzen (A1–A7) eines oder mehrerer Ablaufteile (A), die diesem Prozessor zugeordnet ist/sind, maximal oder vollständig ausgefüllt ist.
  7. Verfahren nach Anspruch 6, umfassend die folgenden Schritte: – Ermitteln der Grenz-Prozessorfrequenz (Fb); – Beschleunigen der Periodizitäten (T1c–T3c) des abgewandelten MC-Ablaufplans (13c) gegenüber den Periodizitäten (T1a–T3y, T1b–T3b) des bestehenden MC-Ablaufplans (13a, 13b), bis die worst case Reaktionsverzögerung (Lc) des abgewandelten MC-Ablaufplans (13c) kleiner oder gleich einem Zulässigkeits-Schwellenwert (L*) ist, insbesondere kleiner oder gleich der worst case Reaktionsverzögerung (L) bei SC-Ausführung, und – wobei das Maß der Beschleunigung der Periodizitäten als Faktor (G) erfasst wird, der das Verhältnis der beschleunigten Periodizitäten (T1c–T3c) gegenüber den Periodizitäten (T1b–T3b) des bestehenden MC-Ablaufplans (13b) angibt (G = T1c/T2c = T2c/T2b = T3c/T3b), und – wobei parallel die Prozessorfrequenz (Fc) des abgewandelten MC-Ablaufplans (13c) gegenüber der Grenz-Prozessorfrequenz (Fb) erhöht wird, wobei das Maß der Erhöhung der Prozessorfrequenz mindestens oder bevorzugt genau dem Kehrwert des Beschleunigungsfaktors (G) entspricht, sodass die Prozessorfrequenz (Fc) des abgewandelten MC-Ablaufplans (13c) größer oder oder bevorzugt gleich der Grenz-Frequenz (Fb) geteilt durch die Verhältniszahl (G) ist (Fc >= Fb/G).
  8. Verfahren zur Auswahl eines günstigeren MC-Ablaufplans (13c) für eine portierte Steuerungssoftware (11) aus einer Menge von mindestens zwei MC-Ablaufplänen (13a, 13b, 13c), dadurch gekenn zeichnet, dass – derjenige MC-Ablaufplan (13c) als günstiger bewertet und/oder ausgewählt wird, der ein geringeres oder das geringste Produkt aus der worst case Reaktionsverzögerung (La, Lb, Lc) und einer für die Ausführung des MC-Ablaufplans (13a, 13b, 13c) vorgesehenen Prozessorfrequenz (Fa, Fb, Fc) aufweist, UND/ODER, dass – ein MC-Ablaufplan (13c) ausgewählt wird, dessen Produkt aus der worst case Reaktionsverzögerung (La, Lb, Lc) und einer für die Ausführung des MC-Ablaufplans (13a, 13b, 13c) vorgesehenen Prozessorfrequenz (Fa, Fb, Fc) kleiner oder gleich einem Zulässigkeits-Schwellenwert (Q*) für dieses Produkt ist, UND/ODER, dass – derjenige MC-Ablaufplan (13c) als günstiger bewertet und/oder ausgewählt wird, der eine zulässige worst case Reaktionsverzögerung (Lc) und weiterhin eine geringste Prozessorfrequenz (Fc) und/oder eine höchste Verteilungsdichte aufweist.
  9. Verfahren nach Anspruch 8, wobei zusätzlich eine gegebenenfalls gewichtete Auswahl nach mindestens einem der folgenden Parameter erfolgt: – Verkürzung der worst case Reaktionsverzögerung (La, Lb, Lc) bei MC-Ausführung gegenüber der worst case Reaktionsverzögerung (L) bei SC-Ausführung und/oder gegenüber einem Zulässigkeits-Schwellenwert (L*) für die worst case Reaktionsverzögerung, – Dichte der Verteilungsstruktur, – erforderliche Rechenleistung.
  10. Verfahren zur Optimierung der Portierung (21) einer bestehenden Steuerungssoftware (10), die für die Ausführung auf einem Steuergerät mit einem Einzel-Rechenkern entwickelt ist (SC-Ausführung), in eine portierte Steuerungssoftware (11), die auf einem Fahrzeugsteuergerät mit mindestens zwei Rechenkernen ausführbar ist (MC-Ausführung), wobei für die portierte Steuerungssoftware (11) durch einen Ablaufplan-Generator (20) gemäß vorgegebenen Portierungs-Parametern (K1, K2, K3) ein MC-Ablaufplan (13) erzeugt wird, durch den die Ablaufteile (runnables, A, B, C, D) der bestehenden Steuerungssoftware (10) bei einem vorgegebenen Zeitverhalten auf die mindestens zwei Rechenkerne verteilt und zumindest teilweise parallelisiert (22) werden, dadurch gekennze ich net, dass in dem Optimierungsverfahren – Ein erster MC-Ablaufplan (13a) erzeugt und durch ein Verfahren (30) gemäß einem der vorhergehenden Ansprüche bewertet wird, und dass – geprüft wird, ob die berechnete worst case Reaktionsverzögerung (La) gemäß dem ersten MC-Ablaufplan (13a) größer ist als ein Unzulässigkeits-Schwellenwert (L*), und dass – Wenn die worst case Reaktionsverzögerung (La) den Unzulässigkeits-Schwellenwert (L*) überschreitet zumindest ein zweiter oder weiterer Ablaufplan (13b, 13c) auf Basis geänderter Portierungs-Parameter (K1‘, K2‘, K3‘) erzeugt und bewertet wird.
  11. Verfahren nach dem vorhergehenden Anspruch, wobei ein erster Portierungs-Parameter (K1, K1‘) die Tiefe der Parallelisierung (22) von Ablaufteilen (A, B, C) beschränkt, die an der Wirkkette (P) beteiligt sind, zu dem eine unzulässige worst-case Reaktionsverzögerung (La) ermittelt worden ist.
  12. Verfahren nach einem der vorhergehenden Ansprüche, wobei ein zweiter Portierungs-Parameter (K2, K2‘) eine Beschleunigung (G) der für die Ablaufteile (A, B, C, D) vorgesehenen Periodizitäten (T1, T2, T3, T4) und/oder ein dritter Portierungs-Parameter (K3, K3‘) eine Prozessorfrequenz (Fb, Fc) für die MC-Ausführung vorgibt.
  13. Softwareprodukt umfassend Anweisungen zur Umsetzung eines Verfahrens gemäß einem der vorhergehenden Ansprüche.
DE102016107646.5A 2016-04-25 2016-04-25 Optimierungstechnologie für Single- zu Multi-Core Portierungen von Steuerungssoftware Pending DE102016107646A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102016107646.5A DE102016107646A1 (de) 2016-04-25 2016-04-25 Optimierungstechnologie für Single- zu Multi-Core Portierungen von Steuerungssoftware

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102016107646.5A DE102016107646A1 (de) 2016-04-25 2016-04-25 Optimierungstechnologie für Single- zu Multi-Core Portierungen von Steuerungssoftware

Publications (1)

Publication Number Publication Date
DE102016107646A1 true DE102016107646A1 (de) 2017-10-26

Family

ID=60020789

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016107646.5A Pending DE102016107646A1 (de) 2016-04-25 2016-04-25 Optimierungstechnologie für Single- zu Multi-Core Portierungen von Steuerungssoftware

Country Status (1)

Country Link
DE (1) DE102016107646A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017124105A1 (de) 2016-10-24 2018-04-26 Denso Corporation Verfahren zur Portierung einer Single-Core Steuerungssoftware auf ein Multi-Core Steuergerät oder zur Optimierung einer Multi-Core Steuerungssoftware

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014103139A1 (de) 2014-03-10 2015-10-08 Denso Automotive Deutschland Gmbh Parallelisierte Ausführung von Single-Core Steuerungssoftware auf Multi-Core Fahrzeugsteuergeräten

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014103139A1 (de) 2014-03-10 2015-10-08 Denso Automotive Deutschland Gmbh Parallelisierte Ausführung von Single-Core Steuerungssoftware auf Multi-Core Fahrzeugsteuergeräten

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Eitschberger, P. et al.: Energy-Efficient Task Scheduling in Manycore Processors with Frequency Scaling Overhead. In: Proceedings of the 23rd Euromicro International Conference on Parallel, Distributed, and Network-Based Processing, 2015. pp. 541 - 548 *
Kenji Funaoka et al.: Energy-Efficient Optimal Real-Time Scheduling on Multiprocessors. In: Proceedings of the 11th IEEE Symposium on Object Oriented Real-Time Distributed Computing (ISORC), 2008. pp. 23 - 30 *
Manousakis, I. et al.: TProf: An energy profiler for task-parallel programs. In: Sustainable Computing: Informatics and Systems 5, 2015. S. 1–13
Manousakis, I. et al.: TProf: An energy profiler for task-parallel programs. In: Sustainable Computing: Informatics and Systems 5, 2015. S. 1–13 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017124105A1 (de) 2016-10-24 2018-04-26 Denso Corporation Verfahren zur Portierung einer Single-Core Steuerungssoftware auf ein Multi-Core Steuergerät oder zur Optimierung einer Multi-Core Steuerungssoftware
US10372445B2 (en) 2016-10-24 2019-08-06 Denso Corporation Method for porting a single-core control software to a multi-core control device or for optimizing a multi-core control software

Similar Documents

Publication Publication Date Title
DE112006001004T5 (de) Erweiterbare Planung von Tasks in zeitgetriggerten, verteilten, eingebetteten Systemen
DE112006001011T5 (de) Erweiterbare Planung von Nachrichten auf zeitgetriggerten Bussen
DE102014103139B4 (de) Parallelisierte Ausführung von Single-Core Steuerungssoftware auf Multi-Core Fahrzeugsteuergeräten
DE102007051803A1 (de) Verfahren und Vorrichtung zur Datenverarbeitung
DE102007029133A1 (de) Verfahren zum rechnergestützten Ermitteln der Abhängigkeiten einer Vielzahl von Modulen eines technischen Systems, insbesondere eines Softwaresystems
DE102018110018A1 (de) Verfahren zum Bereitstellen eines integrierten Prozesses für die Steuergerätentwicklung und Simulationsvorrichtung für die Steuergerätentwicklung
DE102018116911A1 (de) Verfahren zur Erzeugung von Quellcode
DE112019002778T5 (de) Simulationsvorrichtung, simulationsverfahren und elektronische steuereinheitsvorrichtung
DE69128908T2 (de) Verfahren zum Durchführen von erlässlichen Befehlen in einem Rechner
DE102009055752A1 (de) Verfahren zum Ermöglichen einer sequentiellen, nicht blockierenden Abarbeitung von Anweisungen in nebenläufigen Tasks in einer Steuereinrichtung
DE102016202305A1 (de) Verfahren und Vorrichtung zum Betreiben eines Steuergeräts
DE102018204514A1 (de) Handhaben einer signalsättigung in gepulsten neuronalen netzen
DE69712687T2 (de) Sprachbearbeitende Einheit und Verfahren zur Übersetzung eines Quellprogrammes in einer Objektmoduldatei
EP2363809B1 (de) Verfahren zur Optimierung eines Steuerprogramms für Aktuatoren
DE102016221526A1 (de) Vorrichtung und Verfahren zum Bearbeiten einer Mehrzahl Aufgaben
DE102016107646A1 (de) Optimierungstechnologie für Single- zu Multi-Core Portierungen von Steuerungssoftware
WO2012062595A1 (de) Verfahren und vorrichtung zum bewerten von software-parallelisierung
DE102016204970A1 (de) Parallelisierungskompilierverfahren, Parallelisierungskomplierer und Fahrzeugvorrichtung
WO2016198046A1 (de) Verfahren für die auswahl eines simulationsmodells zur abbildung wenigstens eines funktionalen prozesses einer antriebsstrangkomponente aus einer optimierten modellmenge
DE202019103862U1 (de) Vorrichtung zum Erstellen einer Strategie für einen Roboter
DE102019210372A1 (de) Verfahren, Vorrichtung und Computerprogramm zum Erstellen einer Strategie für einen Roboter
DE102004059972A1 (de) Thread-Scheduling-Verfahren, und Einrichtung zur Verwendung bei einem Thread-Scheduling-Verfahren
CN110807241B (zh) 工业产品设计过程建模优化方法及系统
DE102012102373A1 (de) Verfahren zur Abschätzung eines Ressourcenverbrauchs bei der Erzeugung eines Steuergeräteprogrammcodes
EP3073375A1 (de) Verfahren zur ermittlung einer maximalen laufzeit für ein tasksystem

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: ERNICKE & ERNICKE, DE

Representative=s name: ERNICKE PATENT- UND RECHTSANWAELTE, DE

R163 Identified publications notified
R012 Request for examination validly filed