DE102015013116A1 - Verfahren zur Übertragung einer Mehrzahl von datenverarbeitenden Software-Modulen auf einen Mehrkernprozessor - Google Patents

Verfahren zur Übertragung einer Mehrzahl von datenverarbeitenden Software-Modulen auf einen Mehrkernprozessor Download PDF

Info

Publication number
DE102015013116A1
DE102015013116A1 DE102015013116.8A DE102015013116A DE102015013116A1 DE 102015013116 A1 DE102015013116 A1 DE 102015013116A1 DE 102015013116 A DE102015013116 A DE 102015013116A DE 102015013116 A1 DE102015013116 A1 DE 102015013116A1
Authority
DE
Germany
Prior art keywords
software modules
core processor
modules
data
data processing
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.)
Withdrawn
Application number
DE102015013116.8A
Other languages
English (en)
Inventor
Hermann Von Hasseln
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.)
Mercedes Benz Group AG
Original Assignee
Daimler AG
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 Daimler AG filed Critical Daimler AG
Priority to DE102015013116.8A priority Critical patent/DE102015013116A1/de
Publication of DE102015013116A1 publication Critical patent/DE102015013116A1/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/451Code distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis

Landscapes

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

Abstract

Die Erfindung betrifft ein Verfahren zur Übertragung einer Mehrzahl von datenverarbeitenden Softwaremodulen (S1 bis S18) auf einen Mehrkernprozessor (P), wobei – eine vorgegeben Anzahl der Softwaremodule (S1 bis S18) über Vorwärtsverbindungen (V1 bis Vn) und Rückwärtsverbindungen (R1 bis Rn) abhängig voneinander Daten verarbeiten, und – eine Datenverarbeitung durch die Softwaremodule (S1 bis S18) in einer festgelegten Reihenfolge durchgeführt wird dadurch gekennzeichnet, dass eine Anzahl an Teilmodulen (C1 bis Cn) mit jeweils einer Anzahl an Softwaremodulen (S1 bis S18) gebildet wird, wobei – die Softwaremodule (S1 bis S18) innerhalb eines Teilmoduls (C1 bis Cn) unabhängig voneinander Daten verarbeiten, – zur Bildung der Teilmodule (C1 bis Cn) die festgelegte Verarbeitungsreihenfolge der Softwaremodule (S1 bis S18) mit einer bestimmten Anzahl an Schritten unter Berücksichtigung einer Aufrechterhaltung der Vorwärtsverbindungen (V1 bis Vn) modifiziert wird – die gebildeten Teilmodule (C1 bis Cn) auf Prozessorkerne (P1 bis P3) des Mehrkernprozessors (P) verteilt werden.

Description

  • Die Erfindung betrifft ein Verfahren zur Übertragung einer Mehrzahl von datenverarbeitenden Software-Modulen auf einen Mehrkernprozessor gemäß dem Oberbegriff des Anspruchs 1.
  • In elektronischen Fahrzeugsteuergeräten werden zunehmend Mehrkernprozessoren eingesetzt. Dabei ist eine effiziente und prozessorientierte Erstellung von komplexen Softwareprogrammen mit einer Mehrzahl von datenverarbeitenden und miteinander kommunizierenden Software-Modulen, die ursprünglich für einen Einkernprozessor vorgesehen sind, auf eingebetteten Systemen mit Mehrkernprozessoren eine enorme Herausforderung hinsichtlich der Umsetzung von Echtzeitfähigkeit, Determinismus und Richtigkeit des funktionalen Verhaltens.
  • Aus dem Stand der Technik ist, wie in WO 2012/027907 A1 beschrieben, ein Verfahren zur Parallelisierung automatischer Steuerprogramme bekannt. Hierbei wird ein serielles automatisches Steuerprogramm mittels eines programmierbaren Mehrkern-Logikcontrollers in eine Mehrzahl von Programmblöcken geteilt. Das automatische Steuerprogramm wird anschließend als ein Parallelisierungsmodell unter Verwendung der Mehrzahl von Programmblöcken abgebildet und die Parallelisierung anhand des Parallelisierungsmodell durchgeführt, wobei jeweils mehrere Programmblöcke für einen Kern des Mehrkernprozessors bereitgestellt und entsprechend einer jeweiligen Ausführung im Kern in Maschinencodes umgewandelt werden.
  • Der Erfindung liegt die Aufgabe zu Grunde, ein gegenüber dem Stand der Technik verbessertes Verfahren zur Übertragung einer Mehrzahl von datenverarbeitenden Software-Modulen auf einen Mehrkernprozessor anzugeben.
  • Die Aufgabe wird erfindungsgemäß mit den in Anspruch 1 angegebenen Merkmalen gelöst.
  • Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der Unteransprüche.
  • Verfahren zur Übertragung einer Mehrzahl von datenverarbeitenden Software-Modulen auf einen Mehrkernprozessor, wobei die Softwaremodule über eine vorgegebene Anzahl an Vorwärtsverbindungen und Rückwärtsverbindungen miteinander kommunizieren, dadurch gekennzeichnet, dass eine zuvor festgelegte Verarbeitungsreihenfolge der Software-Module in mindestens einem Schritt unter Berücksichtigung einer Aufrechterhaltung der Vorwärtsverbindungen verändert wird.
  • Bei einem Verfahren zur Übertragung einer Mehrzahl von datenverarbeitenden Softwaremodulen auf einen Mehrkernprozessor, wobei eine vorgegeben Anzahl der Softwaremodule über Vorwärtsverbindungen und Rückwärtsverbindungen abhängig voneinander Daten verarbeiten und wobei eine Datenverarbeitung durch die Softwaremodule in einer festgelegten Reihenfolge durchgeführt wird, ist erfindungsgemäß vorgesehen, dass eine Anzahl an Teilmodulen mit jeweils einer Anzahl an Softwaremodulen gebildet wird, wobei die Softwaremodule innerhalb eines Teilmoduls unabhängig voneinander Daten verarbeiten. Zur Bildung der Teilmodule wird die festgelegte Verarbeitungsreihenfolge der Softwaremodule mit einer bestimmten Anzahl an Schritten unter Berücksichtigung einer Aufrechterhaltung der Vorwärtsverbindungen modifiziert. Anschließend werden die gebildeten Teilmodule auf Prozessorkerne des Mehrkernprozessors verteilt.
  • Das erfindungsgemäße Verfahren ermöglicht eine einfache Übertragung einer Mehrzahl von datenverarbeitenden Softwaremodulen auf einen Mehrkernprozessor, wobei aufgrund der Aufrechterhaltung der Vorwärtsverbindungen eine Echtzeitfähigkeit, ein Determinismus sowie eine Datenkonsistenz, Richtigkeit und Skalierbarkeit über eine Vielzahl von Prozessorkernen hinweg erfüllt werden können. Das Verfahren ist mittels eines geeigneten Algorithmus durchführbar, so dass die Übertragung der Software-Module auf einen Mehrkernprozessor vorzugsweise automatisierbar ist.
  • Ausführungsbeispiele der Erfindung werden im Folgenden anhand von Zeichnungen näher erläutert.
  • Dabei zeigen:
  • 1 schematisch eine Mehrzahl von datenverarbeitenden und über Vorwärts- und Rückwärtsverbindungen kommunizierende Software-Module in einer festgelegten Verarbeitungsreihenfolge,
  • 2 schematisch die Mehrzahl von datenverarbeitenden und über Vorwärts- und Rückwärtsverbindungen kommunizierende Software-Module gemäß 1 in einer modifizierten Verarbeitungsreihenfolge und
  • 3 schematisch ein Dreikernprozessor, auf den die Mehrzahl von datenverarbeitenden und über Vorwärts- und Rückwärtsverbindungen kommunizierenden Software-Modulen gemäß 1 verteilt sind.
  • Einander entsprechende Teile sind in allen Figuren mit den gleichen Bezugszeichen versehen.
  • 1 zeigt schematisch eine Mehrzahl von datenverarbeitenden Softwaremodulen S1 bis S18 einer modularen, seriellen Softwarekomponente, die zur Verarbeitung von Daten und zur Implementierung in einen Einkernprozessor vorgesehen ist und dabei als ein sogenannter Datenflussgraph ausgebildet ist. Die Softwaremodule S1 bis S18 können hierbei einzelne Programmteile oder Module von Programmteilen der Softwarekomponente darstellen.
  • Eine zur Verarbeitung der Daten notwendige Funktionalität ist dabei auf die Softwaremodule S1 bis S18 aufgeteilt. Die Kommunikation der Softwaremodule S1 bis S18 untereinander erfolgt über eine Anzahl an Vorwärtsverbindungen V1 bis Vn und über eine Anzahl an Rückwärtsverbindungen R1 bis Rn, die im vorliegenden Ausführungsbeispiel anhand einer Pfeilrichtung zu unterscheiden sind.
  • Die Verarbeitung der Daten mittels der Softwaremodule S1 bis S18 erfolgt in der gezeigten Reihenfolge ausgehend von einem ersten Softwaremodul S1 bis zu einem letzten Softwaremodul S18. Beispielsweise verarbeitet das erste Softwaremodul S1 eine erste Anzahl von Arbeitsschritten für jeden Datensatz einer Eingangsdatei und erzeugt jeweils einen Ausgangsdatensatz, der in einer Ausgangsdatei gespeichert wird. Diese Ausgangsdatei des ersten Softwaremoduls S1 dient als Eingangsdatei eines weiteren der Softwaremodule S1 bis S18, z. B. wird über zwei Vorwärtsverbindungen V1, V2 des ersten Softwaremoduls S7, S8 jeweils eine Ausgangsdatei für die Softwaremodule S7 und S8 erzeugt, die den Softwaremodulen S7 und S8 als Eingangsdatei dienen. Somit wird in dem mittels der Softwaremodule S1 bis S18 gebildeten Datenflussgraph jeweils eine Datei von einem der Softwaremodule S1 bis S18 erzeugt und einem weiteren der Softwaremodule S1 bis S18 zur weiteren Verarbeitung zur Verfügung gestellt.
  • Zur besseren Verarbeitung großer Datenmengen werden zunehmend Mehrkernprozessoren eingesetzt, z. B. in Fahrzeugsteuergeräten, die eine Mehrzahl von Prozessorkernen aufweisen, die weitestgehend unabhängig voneinander sind.
  • Zur Implementierung der in 1 beschriebenen seriellen Softwarekomponente in einen Mehrkernprozessor ist ein erfindungsgemäßes Verfahren vorgesehen, welches nachfolgend in den 2 und 3 näher beschrieben wird.
  • 2 zeigt dazu die Mehrzahl von Software-Modulen S1 bis S18 in einer modifizierten Verarbeitungsreihenfolge.
  • Die in 1 gezeigte Verarbeitungsreihenfolge wird dabei unter Aufrechterhaltung der Vorwärtsverbindungen V1 bis Vn derart modifiziert, dass Teilmodule C1 bis Cn entstehen, in denen jeweils die Softwaremodule S1 bis S18 unabhängig voneinander sind. Mit anderen Worten: In jedem Teilmodul C1 bis Cn ist eine bestimmte Anzahl der Softwaremodule S1 bis S18 enthalten, die untereinander weder über eine Vorwärtsverbindung V1 bis Vn noch über eine Rückwärtsverbindung R1 bis Rn miteinander verbunden sind.
  • Im vorliegenden Ausführungsbeispiel weisen die Softwaremodule S1 bis S3 untereinander keine Vorwärtsverbindung V1 bis Vn und Rückwärtsverbindung R1 bis Rn auf, so dass ein erstes Teilmodul C1, umfassend die Softwaremodule S1 bis S3, gebildet wird. Ebenso weisen die Softwaremodule S4 und S5 untereinander keine Vorwärtsverbindung V1 bis Vn und Rückwärtsverbindung R1 bis Rn auf, so dass ein zweites Teilmodul C2, umfassend die Softwaremodule S4 und S5, gebildet wird.
  • Zur Bildung der gezeigten weiteren Teilmodule C3 bis C7 wird die Verarbeitungsreihenfolge der Softwaremodule S8 bis S18 vertauscht, so dass sich eine modifizierte Reihenfolge in der gezeigten Art und Weise ergibt. Die Vorwärtsverbindungen V1 bis Vn sind dabei vollständig aufrecht erhalten, während sich beispielhaft eine der Rückwärtsverbindungen R1 bis Rn, hierbei zwischen den Softwaremodulen S16 und S18, zu einer Vorwärtsverbindung V1 bis Vn transformiert. Die Aufrechterhaltung der Rückwärtsverbindungen R1 bis Rn ist dabei weniger kritisch als die Aufrechterhaltung der Vorwärtsverbindungen V1 bis Vn, so dass die Transformierung einer der Rückwärtsverbindungen R1 bis Rn zu einer Vorwärtsverbindung V1 bis Vn keinen signifikanten Einfluss auf die Funktion der Datenverarbeitung mittels der Softwaremodule S1 bis S18 hat.
  • Die Modifizierung der Verarbeitungsreihenfolge und die daraus resultierende Bildung der Teilmengen C1 bis C7 werden mittels eines geeigneten Algorithmus automatisiert durchgeführt. 2 zeigt dabei einen Teilschritt während der Modifizierung der Verarbeitungsreihenfolge, der weitere Modifizierungen folgen können, wie es 3 zeigt.
  • 3 zeigt dazu beispielhaft einen Mehrkernprozessor P, welcher als Dreikernprozessor mit drei Prozessorkernen P1 bis P3 ausgebildet ist, wobei gebildete Teilmodule C1 bis C7 auf die Prozessorkerne P1 bis P3 unter Aufrechterhaltung aller Vorwärts- und Rückwärtsverbindungen V1 bis Vn, R1 bis Rn zwischen den Softwaremodulen S1 bis S18 aufgeteilt sind.
  • Im vorliegenden Ausführungsbeispiel ist somit das erste Teilmodul C1, umfassend die Softwaremodule S1 bis S3, auf alle Prozessorkernen P1 bis P3 verteilt. Ebenso das zweite Teilmodul C2, umfassend die Softwaremodule S4 und S5. Die weiteren gezeigten Teilmodule C3 bis C7 sind zum Teil gegenüber den in 2 gezeigten Teilmodulen C3 bis C7 aus anderen Softwaremodulen S1 bis S18 zusammengesetzt, da zwischen 2 und 3 nicht gezeigte weitere Modifizierungsschritte durchgeführt wurden.
  • Die Verarbeitung der Daten erfolgt innerhalb der Prozessorkerne P1 bis P3 jeweils sequentiell, wohingegen die Verarbeitung der Daten zwischen den Prozessorkernen P1 bis P3 parallel erfolgt.
  • Bezugszeichenliste
    • C1 bis Cn
      Teilmodul
      P
      Mehrkernprozessor
      P1 bis P3
      Prozessorkern
      R1 bis Rn
      Rückwärtsverbindung
      S1 bis S18
      Softwaremodul
      V1 bis Vn
      Vorwärtsverbindung
  • 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
    • WO 2012/027907 A1 [0003]

Claims (2)

  1. Verfahren zur Übertragung einer Mehrzahl von datenverarbeitenden Softwaremodulen (S1 bis S18) auf einen Mehrkernprozessor (P), wobei – eine vorgegebene Anzahl der Softwaremodule (S1 bis S18) über Vorwärtsverbindungen (V1 bis Vn) und Rückwärtsverbindungen (R1 bis Rn) abhängig voneinander Daten verarbeiten, und – eine Datenverarbeitung der Daten durch die Softwaremodule (S1 bis S18) in einer festgelegten Reihenfolge durchgeführt wird dadurch gekennzeichnet, dass eine Anzahl an Teilmodulen (C1 bis Cn) mit jeweils einer Anzahl an Softwaremodulen (S1 bis S18) gebildet wird, wobei – die Softwaremodule (S1 bis S18) innerhalb eines Teilmoduls (C1 bis Cn) unabhängig voneinander Daten verarbeiten, – zur Bildung der Teilmodule (C1 bis Cn) die festgelegte Verarbeitungsreihenfolge der Softwaremodule (S1 bis S18) mit einer bestimmten Anzahl an Schritten unter Berücksichtigung einer Aufrechterhaltung der Vorwärtsverbindungen (V1 bis Vn) modifiziert wird und – die gebildeten Teilmodule (C1 bis Cn) auf Prozessorkerne (P1 bis P3) des Mehrkernprozessors (P) verteilt werden.
  2. Verfahren nach Anspruch 1 dadurch gekennzeichnet, dass die Modifizierung der Verarbeitungsreihenfolge automatisiert durchgeführt wird.
DE102015013116.8A 2015-10-09 2015-10-09 Verfahren zur Übertragung einer Mehrzahl von datenverarbeitenden Software-Modulen auf einen Mehrkernprozessor Withdrawn DE102015013116A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102015013116.8A DE102015013116A1 (de) 2015-10-09 2015-10-09 Verfahren zur Übertragung einer Mehrzahl von datenverarbeitenden Software-Modulen auf einen Mehrkernprozessor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102015013116.8A DE102015013116A1 (de) 2015-10-09 2015-10-09 Verfahren zur Übertragung einer Mehrzahl von datenverarbeitenden Software-Modulen auf einen Mehrkernprozessor

Publications (1)

Publication Number Publication Date
DE102015013116A1 true DE102015013116A1 (de) 2016-05-04

Family

ID=55753856

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015013116.8A Withdrawn DE102015013116A1 (de) 2015-10-09 2015-10-09 Verfahren zur Übertragung einer Mehrzahl von datenverarbeitenden Software-Modulen auf einen Mehrkernprozessor

Country Status (1)

Country Link
DE (1) DE102015013116A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012027907A1 (en) 2010-09-03 2012-03-08 Siemens Aktiengesellschaft Method for parallelizing automatic control programs and compiler

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012027907A1 (en) 2010-09-03 2012-03-08 Siemens Aktiengesellschaft Method for parallelizing automatic control programs and compiler

Similar Documents

Publication Publication Date Title
EP3444997A1 (de) Vorrichtungen zum bereitstellen einer menge von kryptographisch geschützten und gefilterten sowie sortierten transaktionsdatensätzen eines gliedes einer blockkette
EP0048767A1 (de) Prioritätsstufengesteuerte Unterbrechungseinrichtung
EP2520991B1 (de) Verfahren zum steuernden Eingriff in das Verhalten eines Submoduls
DE102018110018A1 (de) Verfahren zum Bereitstellen eines integrierten Prozesses für die Steuergerätentwicklung und Simulationsvorrichtung für die Steuergerätentwicklung
DE112019004391T5 (de) Grossmodellunterstützung für deep learning
DE102008054354A1 (de) Sichere Codierung von Spannungsdaten vieler Zellen bei Hybridfahrzeugen
DE102011107646A1 (de) Verfahren und System zur dynamischen Verteilung von Programmfunktionen in verteilten Steuerungssystemen
EP2466406A1 (de) Verfahren zur automatischen Erzeugung von Dynamic Frame Packgruppen
EP2126644B1 (de) Verfahren zur umwandlung von kontaktplänen
DE102013108910B4 (de) Elektromagnetventilsteuervorrichtung
DE102015013116A1 (de) Verfahren zur Übertragung einer Mehrzahl von datenverarbeitenden Software-Modulen auf einen Mehrkernprozessor
DE102019208729A1 (de) Verfahren zum Sicherstellen und Aufrechterhalten der Funktion eines sicherheitskritischen Gesamtsystems
EP3028182B1 (de) Verfahren und system zur synchronisation von daten
EP3267271A1 (de) Automatisierungssystem und verfahren zum betrieb
EP3726319A1 (de) Verfahren, vorrichtungen und system zum bearbeiten eines werkstücks
DE3609925A1 (de) Einrichtung zur simulation von neuronensystemen
DE102014016884A1 (de) Datenflußsteuerung und Loadbalancing in Fahrzeugsteuergeräten mit Mehrkernprozessoren
DE102020103349B4 (de) Lastangleichung zweier prozessoren beim ausführen diversitär-redundanter anweisungssequenzen
DE102010026495A1 (de) System zur Verkabelung der Automatisierungs- und Leittechnik einer technischen Anlage
DE10252109A1 (de) Verfahren zur Parametrierung
EP3343476A1 (de) Verfahren und vorrichtung zum rechnergestützten entwurf eines produktionsprozesses zum produzieren eines produkts
EP3002652B1 (de) Verfahren zur Zustandsüberwachung innerhalb eines industriellen Automatisierungssystems und Steuerungsprogramm
DE102021126271A1 (de) Verfahren und System zur Verknüpfung von Fehlermeldungen
WO2022128556A1 (de) Verfahren zum bestimmen eines anschlussschemas einer recheneinheit an eine menge von funktionsmodulen
WO2000054146A2 (de) Verfahren zur impliziten projektierung von kommunikationsverbindungen

Legal Events

Date Code Title Description
R230 Request for early publication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee