DE102016219449A1 - Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeugverbaute Einrichtung - Google Patents

Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeugverbaute Einrichtung Download PDF

Info

Publication number
DE102016219449A1
DE102016219449A1 DE102016219449.6A DE102016219449A DE102016219449A1 DE 102016219449 A1 DE102016219449 A1 DE 102016219449A1 DE 102016219449 A DE102016219449 A DE 102016219449A DE 102016219449 A1 DE102016219449 A1 DE 102016219449A1
Authority
DE
Germany
Prior art keywords
priority
processes
program
execution order
factor
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
DE102016219449.6A
Other languages
English (en)
Inventor
Takayuki Nagai
Noriyuki Suzuki
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 Corp
Original Assignee
Denso Corp
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 Corp filed Critical Denso Corp
Publication of DE102016219449A1 publication Critical patent/DE102016219449A1/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/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • 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/456Parallelism detection
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

Ein Parallelisierungsverfahren, das in der Lage ist, ein paralleles Programm zu erzeugen, in welchem eine Prioritätsverarbeitung früh ausführbar ist, wird bereitgestellt. Das Verfahren beinhaltet eine Zuweisungsprozedur (S10, S11) des Zuweisens von Verwaltungsnummern zu Prioritätsprozessen in einer Ausführungsreihenfolge eines Einzelprogramms und eine Anordnungsprozedur (S20 bis S25, S30 bis S33) des Anordnens der Prozesse, während die Abhängigkeit der Prozesse erfüllt wird, basierend auf den Verwaltungsnummern und der Prioritätsinformation so, dass die Prioritätsprozesse, die in einer Ausführungsreihenfolge des Einzelprogramms früher liegen, in einer Ausführungsreihenfolge des parallelen Programms früher angeordnet sind.

Description

  • Die Erfindung betrifft ein Parallelisierungsverfahren und ein Parallelisierungswerkzeug zum Erzeugen eines Programms für einen Mehrkern-Mikrocomputer aus einem Programm für einen Einkern-Mikrocomputer, und eine fahrzeugverbaute Einrichtung, die das Programm für den Mehrkern-Mikrocomputer implementiert, welches durch das Parallelisierungsverfahren implementiert wird.
  • Bisher gibt es als ein Beispiel des Parallelisierungsverfahrens zum Erzeugen des Programms für den Mehrkern-Mikrocomputer aus dem Programm für den Einzelkern-Mikrocomputer ein Parallelisierungskompilierungsverfahren, das in einer Patentliteratur 1 offenbar ist.
  • In dem Parallelisierungskompilierungsverfahren werden, nachdem ein sequenzielles Programm für ein eingebettetes System, das von einem Einprozessorsystem auszuführen ist, in mehrere Makroaufgaben (nachstehend als ”MTs” bezeichnet) unterteilt wurde, die MTs mit einer Steuerungsabhängigkeit in eine bzw. zu einer MT zusammengefasst. Danach werden in dem Parallelisierungskompilierungsverfahren parallelisierbare MTs auf der Grundlage einer Datenabhängigkeit extrahiert, und wird eine statische Ablaufplanung durchgeführt, um ein paralleles Programm zu generieren.
    • Patentliteratur 1: JP-2015-1807A , entsprechend der US 2014 372 995 (A1) und der DE 10 2014 211 047 (A1)
  • Im Übrigen ist denkbar, dass die MT (nachstehend als eine ”Prioritätsverarbeitung” bezeichnet), deren letzte bzw. späteste Ausführungszeit als ein Erfordernis definiert ist, in den MTs enthalten ist. Weil die MTs sequenziell ausgeführt werden, kann jedoch in dem Programm für den Einkern-Mikrocomputer eine Zeit, zu der die Beendigung des Prioritätsprozesses am stärksten verzögert ist, abgeschätzt werden, und ist leicht ermittelbar, ob die Prioritätsverarbeitung innerhalb einer spätesten Ausführungszeit abgeschlossen ist oder nicht. Aus diesem Grund ist in dem Programm für den Einkern-Mikrocomputer ein Detail, das die späteste Ausführungszeit angibt, nicht notwendigerweise in der MT enthalten. Daher kann in dem parallelen Programm, das in der Patentliteratur 1 generiert wird, die späteste Ausführungszeit der Prioritätsverarbeitung nicht eingehalten werden.
  • In Anbetracht des Vorangehenden liegt der Erfindung als eine Aufgabe zugrunde, ein Parallelisierungsverfahren und ein Parallelisierungswerkzeug bereitzustellen, welche in der Lage sind, ein paralleles Programm zu generieren, das Prioritätsprozesse früh ausführen kann und späteste Ausführungszeiten der Prioritätsverarbeitung einhalten kann. Darüber hinaus soll eine fahrzeugverbaute Einrichtung einschließlich des parallelen Programms bereitgestellt werden.
  • In einem ersten Aspekt der Erfindung erzeugt ein Parallelisierungsverfahren aus einer Vielzahl von Prozessen in einem Einzelprogramm für einen Einkern-Mikrocomputer mit einem Kern ein paralleles Programm, das für einen Mehrkern-Mikrocomputer mit einer Vielzahl von Kernen parallelisiert ist, durch Analysieren einer Abhängigkeit der Vielzahl von Prozessen in dem Einzelprogramm und Allokieren der Vielzahl von Prozessen für verschiedene Kerne des Mehrkern-Mikrocomputers. Das Verfahren beinhaltet: eine Zuweisungsprozedur des Zuweisens von Verwaltungsnummern zu Prioritätsprozessen in einer Ausführungsreihenfolge des Einzelprogramms und Zuweisen von Prioritätsinformation, die die Prioritätsprozesse angibt, zu den Prioritätsprozessen, wobei die Prioritätsprozesse Prozesse sind, von denen jeder ein Erfordernis für einen späteste Ausführungszeit unter der Vielzahl von Prozessen hat; und eine Anordnungsprozedur des, für jede von Prozessgruppen, die für die jeweiligen Kerne allokiert sind, Anordnens der Prozesse, während die Abhängigkeit erfüllt wird, basierend auf den Verwaltungsnummern und der Prioritätsinformation so, dass die Prioritätsprozesse, die in einer Ausführungsreihenfolge des Einzelprogramms früher liegen, in einer Ausführungsreihenfolge des parallelen Programms früher angeordnet sind.
  • In Übereinstimmung mit dem Parallelisierungsverfahren können aufgrund der Zuweisungsprozedur die Prioritätsprozesse in der Vielzahl von Prozessen und die Ausführungsreihenfolge der Prioritätsprozesse in dem Einzelprogramm erfasst werden. In Übereinstimmung mit dem Parallelisierungsverfahren werden die Prioritätsprozesse, die in der Ausführungsreihenfolge des Einzelprogramms früher liegen, in der früheren Ausführungsreihenfolge der Prioritätsprozesse des parallelen Programms angeordnet, während die Abhängigkeit auf der Grundlage der Verwaltungsnummern und der Prioritätsinformation erfüllt wird. Aus diesem Grund kann das erzeugte parallele Programm die Prioritätsprozesse früh ausführen und die späteste Ausführungszeit der Prioritätsprozesse einhalten.
  • In einem zweiten Aspekt der Erfindung beinhaltet ein Parallelisierungswerkzeug einen Computer zum Erzeugen, aus einer Vielzahl von Prozessen in einem Einzelprogramm für einen Einkern-Mikrocomputer mit einem Kern, eines parallelen Programms, das für einen Mehrkern-Mikrocomputer mit einer Vielzahl von Kernen parallelisiert ist, durch Analysieren einer Abhängigkeit der Vielzahl von Prozessen in dem Einzelprogramm und Allokieren der Vielzahl von Prozessen für verschiedene Kerne des Mehrkern-Mikrocomputers. Das Parallelisierungswerkzeug ist dazu konfiguriert, durchzuführen: einen Zuweisungsschritt des Zuweisens von Verwaltungsnummern zu Prioritätsprozessen in einer Ausführungsreihenfolge des Einzelprogramms und Zuweisen von Prioritätsinformation, die die Prioritätsprozesse angibt, zu den Prioritätsprozessen, wobei die Prioritätsprozesse Prozesse sind, von denen jeder ein Erfordernis für eine späteste Ausführungszeit unter der Vielzahl von Prozessen hat; und einen Anordnungsschritt des, für jede von Prozessgruppen, die für die jeweiligen Kerne allokiert sind, Anordnens der Prozesse, während die Abhängigkeit erfüllt wird, basierend auf den Verwaltungsnummern und der Prioritätsinformation so, dass die Prioritätsprozesse, die in einer Ausführungsreihenfolge des Einzelprogramms früher liegen, in einer Ausführungsreihenfolge des parallelen Programms früher angeordnet sind.
  • In Übereinstimmung mit dem vorstehenden Parallelisierungswerkzeug kann das erzeugte parallele Programm die Prioritätsprozesse früh ausführen und die späteste Ausführungszeit der Prioritätsprozesse einhalten.
  • In einem dritten Aspekt der Erfindung beinhaltet eine fahrzeugverbaute Einrichtung einen Mehrkern-Mikrocomputer mit einer Vielzahl von Kernen; und ein paralleles Programm, das für den Mehrkern-Mikrocomputer aus einer Vielzahl von Prozessen in einem Einzelprogramm für einen Einkern-Mikrocomputer mit einem Kern parallelisiert wurde. In dem parallelen Programm: werden die Vielzahl von Prozessen für verschiedene Kerne des Mehrkern-Mikrocomputers basierend auf einer Analyse einer Abhängigkeit der Vielzahl von Prozessen in dem Einzelprogramm allokiert; werden Verwaltungsnummern zu Prioritätsprozessen in einer Ausführungsreihenfolge des Einzelprogramms zugewiesen und wird Prioritätsinformation, die die Prioritätsprozesse angeben, den Prioritätsprozessen zugewiesen, und sind die Prioritätsprozesse unter der Vielzahl von Prozessen Prozesse, von denen jeder ein Erfordernis für eine späteste Ausführungszeit hat; und für jede von Prozessgruppen, die für die jeweiligen Kerne allokiert sind, werden die Prozesse basierend auf den Verwaltungsnummern und der Prioritätsinformation so angeordnet, dass die Prioritätsprozesse, die in einer Ausführungsreihenfolge des Einzelprogramms früher liegen, in einer Ausführungsreihenfolge des parallelen Programms früher angeordnet sind, während die Abhängigkeit erfüllt wird. Jeder Kern des Mehrkern-Mikrocomputers ist dazu konfiguriert, in Übereinstimmung mit den Prozessen des parallelen Programms, die für den jeden Kern allokiert sind, zu arbeiten.
  • In Übereinstimmung mit der vorstehenden fahrzeugverbauten Einrichtung ermöglicht das parallele Programm die frühe Ausführung der Prioritätsprozesse und das Einhalten der spätesten Ausführungszeit der Prioritätsprozesse. Aus diesem Grund kann in der fahrzeugverbauten Einrichtung jeder Kern früh die Prioritätsprozesse ausführen und die späteste Ausführungszeit der Prioritätsprozesse einhalten.
  • Die vorstehenden und andere Ziele, Merkmale und Vorteile der Erfindung sind der nachfolgenden detaillierten Beschreibung unter Bezugnahme auf die beigefügten Ausführungsbeispiele besser entnehmbar. Es zeigen:
  • 1 ein Blockdiagramm, das eine schematische Konfiguration eines Parallelisierungswerkzeugs gemäß einem ersten Ausführungsbeispiel darstellt;
  • 2 ein Blockdiagramm, das eine schematische Konfiguration einer fahrzeugverbauten Einrichtung gemäß dem ersten Ausführungsbeispiel darstellt;
  • 3 ein Diagramm, das einen Teil eines Parallelisierungsverfahrens gemäß dem ersten Ausführungsbeispiel darstellt;
  • 4 ein Diagramm, das ein Einzelprogramm darstellt, in welchem ein Zuweisungsprozess des Parallelisierungsverfahrens gemäß dem ersten Ausführungsbeispiel durchgeführt wird;
  • 5 ein Diagramm, das Makroaufgaben darstellt, die in einem Extraktionsprozess des Parallelisierungsverfahrens gemäß dem ersten Ausführungsbeispiel neu angeordnet werden;
  • 6 ein Diagramm, das die Makroaufgaben darstellt, die für jeweilige Kerne in einem Anordnungsprozess des Parallelisierungsverfahrens gemäß dem ersten Ausführungsbeispiel angeordnet sind;
  • 7 ein Diagramm, das die Makroaufgaben darstellt, die für jeweilige Kerne in einem Neuanordnungsprozess des Parallelisierungsverfahrens gemäß dem ersten Ausführungsbeispiel angeordnet sind;
  • 8 ein Ablaufdiagramm, das einen Zuweisungsprozess des Parallelisierungsverfahrens gemäß dem ersten Ausführungsbeispiel darstellt;
  • 9 ein Ablaufdiagramm, das einen Neuanordnungsprozess des Parallelisierungsverfahrens gemäß dem ersten Ausführungsbeispiel darstellt;
  • 10 ein Ablaufdiagramm, das einen Anordnungsprozess eines Parallelisierungsverfahrens gemäß einem zweiten Ausführungsbeispiel darstellt;
  • 11 ein Diagramm, das die Makroaufgaben darstellt, die für jeweilige Kerne in dem Anordnungsprozess des Parallelisierungsverfahrens gemäß dem zweiten Ausführungsbeispiel angeordnet werden;
  • 12 ein Ablaufdiagramm, das einen Eliminationsprozess eines Parallelisierungsverfahrens gemäß einem dritten Ausführungsbeispiel darstellt;
  • 13 ein Diagramm, das die Makroaufgaben darstellt, die für jeweilige Kerne durch den Eliminationsprozess des Parallelisierungsverfahrens gemäß dem dritten Ausführungsbeispiel angeordnet werden;
  • 14 ein Blockdiagramm, das eine schematische Konfiguration einer fahrzeugverbauten Einrichtung gemäß einem vierten Ausführungsbeispiel darstellt;
  • 15 ein Diagramm, das ein Einzelprogramm gemäß dem vierten Ausführungsbeispiel darstellt;
  • 16 ein Diagramm, das ein Einzelprogramm darstellt, in welchem ein Zuweisungsprozess eines Parallelisierungsverfahrens in Übereinstimmung mit dem vierten Ausführungsbeispiel durchgeführt wird;
  • 17 ein Diagramm, das die Makroaufgaben darstellt, die für jeweilige Kerne in dem Anordnungsprozess des Parallelisierungsverfahrens gemäß dem vierten Ausführungsbeispiel angeordnet sind;
  • 18 ein Diagramm, das die Makroaufgaben darstellt, die für jeweilige Kerne in einem Neuanordnungsprozess des Parallelisierungsverfahrens gemäß dem vierten Ausführungsbeispiel angeordnet werden;
  • 19 ein Diagramm, das Makroaufgaben darstellt, die für jeweilige Kerne in einem Anordnungsprozess eines Parallelisierungsverfahrens gemäß einem fünften Ausführungsbeispiel angeordnet werden; und
  • 20 ein Diagramm, das Makroaufgaben darstellt, die für jeweilige Kerne durch einen Eliminationsprozess eines Parallelisierungsverfahrens gemäß einem sechsten Ausführungsbeispiel angeordnet werden.
  • Nachstehend werden mehrere Ausführungsbeispiele unter Bezugnahme auf die Zeichnungen beschrieben. In Ausführungsbeispielen werden gleiche Bezugszeichen dazu verwendet, auf gleiche Teile Bezug zu nehmen, und kann eine redundante Beschreibung für solche Teile weggelassen sein. Wenn nur ein Teil einer Konfiguration in einem Ausführungsbeispiel beschrieben ist, kann für die anderen Teile der Konfiguration das vorangehende Ausführungsbeispiel Bezug genommen werden.
  • (Erstes Ausführungsbeispiel)
  • Das vorliegende Ausführungsbeispiel stellt ein Erzeugen eines parallelen Programms 21a1, das für einen Mehrkern-Mikrocomputer mit einem ersten Kern 21c und einem zweiten Kern 21d parallelisiert ist, aus mehreren Makroaufgaben A1 bis A3 in einem Einzelprogramm für einen Einkern-Mikrocomputer mit einem Kern dar. Bei dem Erzeugen des parallelen Programms 21a1, wie in der Patentliteratur 1 offenbart, wird eine Abhängigkeit der mehreren Makroaufgaben in dem Einzelprogramm analysiert, und werden die mehreren Makroaufgaben für verschiedene Kerne des Mehrkern-Mikrocomputers allokiert. Diesbezüglich sei auf die Patentliteratur 1 verwiesen. Der Mikrocomputer kann auch als ein Prozessor bezeichnet werden.
  • Wie in 3 dargestellt, beinhaltet, als ein Beispiel, das Einzelprogramm Makroaufgaben A1 bis A3, B1, B2, C1, D1 bis D3 und E1 bis E3. Die Makroaufgaben entsprechen Prozessen in den Ansprüchen. Jede Makroaufgabe kann als zum Beispiel ”MT” abgekürzt werden, wie in 3 dargestellt. Darüber hinaus kann die Makroaufgabe als ein ”Verarbeitungsblock” bezeichnet werden. Das Einzelprogramm wird auch als ”sequenzielles Programm” bezeichnet.
  • Die mehreren Makroaufgaben beinhalten Makroaufgaben, von denen jede eine späteste Ausführungszeit hat. Die Ausführung jeder Makroaufgabe mit der spätesten Ausführungszeit muss bis zu der spätesten Ausführungszeit beendet bzw. abgeschlossen sein. Die späteste Ausführungszeit wird auch als eine Zeitgrenze bezeichnet, die erfordert, dass der Mikrocomputer eine frühe Ausführung durchführt. Die Makroaufgaben in jedem dann, wenn die späteste Ausführungszeit als ein Erfordernis definiert ist, entsprechen Prioritätsprozessen in den Ansprüchen. Das vorliegende Ausführungsbeispiel zeigt ein Beispiel, in welchem die MTA3, die MTC1 und die MTD2 Prioritätsprozesse sind. In den Zeichnungen sind die Prioritätsprozesse schraffiert, um die Prioritätsprozesse von normalen Prozessen, die nicht die Prioritätsprozesse sind, zu unterscheiden. In der folgenden Beschreibung wird der Prioritätsprozess auch als ”Prioritätsmakroaufgabe (Prioritäts-MT)” bezeichnet, und wird der normale Prozess auch als ”normale Makroaufgabe (normale MT)” bezeichnet.
  • Konfigurationen eines Computers 10 und einer fahrzeugverbauten Einrichtung 20 werden beschrieben. Der Computer 10 entspricht einem Parallelisierungswerkzeug, das ein Parallelisierungsverfahren ausführt. Wie in 1 dargestellt, beinhaltet der Computer 10 eine Anzeige 11, eine HDD 12, eine CPU 13, ein ROM 14, ein RAM 15, eine Eingabeeinrichtung 16 und eine Leseeinheit 17. Der Computer 10 kann Speicherinhalte lesen, die in einem Speichermedium 18 gespeichert sind. Die HDD ist eine Abkürzung für ein Festplattenlaufwerk. Die CPU ist eine Abkürzung für eine zentrale Verarbeitungseinheit. Das ROM ist eine Abkürzung für einen Nurlesespeicher. Das RAM ist eine Abkürzung für einen Speicher mit wahlfreiem Zugriff. Für die Konfigurationen des Computers 10 und des Speichermediums 18 wird auf einen Personal Computer 101 und ein Speichermedium 118, die in der Patentliteratur 1 offenbart sind, verwiesen.
  • Ein automatischer Parallelisierungskompilierer 1 entspricht einem Parallelisierungsverfahren. Speziell ist der automatische Parallelisierungskompilierer 1 ein Programm, das das Parallelisierungsverfahren beinhaltet. Der automatische Parallelisierungskompilierer 1 beinhaltet eine Zuweisungsprozedur und eine Anordnungsprozedur zusätzlich zu den Prozeduren, die in der Patentliteratur 1 offenbart sind. Die Zuweisungsprozedur und die Anordnungsprozedur werden später beschrieben. Insbesondere beinhaltet das vorliegende Ausführungsbeispiel eine Neuanordnungsprozedur als die Anordnungsprozedur.
  • Wie in 2 dargestellt, beinhaltet die fahrzeugverbaute Einrichtung 20 einen Mehrkernprozessor 21, ein ROM 21a, ein RAM 21b, den ersten Kern 21c, den zweiten Kern 21d, eine Kommunikationseinheit 22, eine Sensoreinheit 23 und einen Eingabe/Ausgabe-Port bzw. Anschluss 24. Die fahrzeugverbaute Einrichtung 20 kann auf eine Motorsteuereinrichtung oder eine hybride Steuereinrichtung, welche in einem Automobil verbaut ist, angewandt sein. In diesem Beispiel wird ein Beispiel verwendet, in welchem die fahrzeugverbaute Einrichtung 20 auf die Motorsteuereinrichtung angewandt ist. In diesem Fall kann das parallele Programm 21a1 als ein Automobil-Steuerungsprogramm wie beispielsweise eine Motorsteuerung betrachtet werden. Das parallele Programm 21a1 ist jedoch nicht auf die vorstehende Konfiguration beschränkt. Der Mehrkernprozessor entspricht dem Mehrkern-Mikrocomputer. Die Kerne können ebenfalls als ”Prozessorelemente” bezeichnet werden.
  • Für das RAM 21b, die Kommunikationseinheit 22, die Sensoreinheit 23 und den Eingabe/Ausgabe-Port 24 sei auf ein RAM 420, eine Kommunikationseinheit 430, eine Sensoreinheit 450 und einen Eingabe/Ausgabe-Port 460, die in der Patentliteratur 1 offenbart sind, verwiesen.
  • Das parallele Programm 21a1, das mithilfe des automatischen Parallelisierungskompilierers erzeugt bzw. generiert wurde, ist in dem ROM 21a gespeichert. Der erste Kern 21c und der zweite Kern 21b führen das parallele Programm 21a1 aus, um eine Motorsteuerung durchzuführen.
  • Nachfolgend wird der Verarbeitungsbetriebsablauf für den Computer 10 zum Ausführen des automatischen Parallelisierungskompilierers 1 unter Bezugnahme auf die 3 bis 9 beschrieben.
  • Wie in 3 dargestellt, ist die Ausführungsreihenfolge des Einzelprogramms MTA1 bis MTA3, MTB1, MTB2, MTC1, MTD1 bis MTD3, und MTE1 bis MTE3. Spezieller wird das Einzelprogramm in der angegebenen Reihenfolge ausgeführt. Der Computer 10 analysiert eine Abhängigkeit von Daten auf einer MT-für-MT-Basis des Einzelprogramms. Die Abhängigkeit ist eine Beziehung, in welcher eine MT sich auf Daten bezieht, die durch eine andere MT aktualisiert wurden, die früher als die eine MT ausgeführt worden ist. Spezieller beinhalten die mehreren MTA1 bis MTE3 vorangehende MTs, deren Ausführungsreihenfolge früher liegt, und nachfolgende MTs, welche auszuführen sind, nachdem die Ausführung der vorangehenden MTs beendet worden ist. Jede nachfolgende MT ist eine MT, die durch die vorangehende MT beeinflusst wird, und zum Beispiel eine MT, die Daten verwendet, deren Inhalt wahrscheinlich durch die vorangehende MT aktualisiert wird. Die Abhängigkeit beinhaltet einen Fall, in welchem eine Reihenfolge von Aktualisierung und Bezugnahme umgekehrt ist. Pfeile in 3 geben die Abhängigkeit an. Für die Analyse der Abhängigkeit wird auf die Patentliteratur 1 verwiesen.
  • Wenn die Analyse der Abhängigkeit abgeschlossen worden ist, führt der Computer 10 ein Ablaufdiagramm von 8 aus. In Schritt S10 werden den jeweiligen MTs Verwaltungsnummern zugewiesen (Zuweisungsschritt). In Schritt S11 wird den jeweiligen Prioritäts-MTs Prioritätsinformation zugewiesen (Zuweisungsschritt). Spezieller weist der Computer 10 Verwaltungsnummern 0 bis 11 allen MTs einschließlich der normalen MTs zusätzlich zu den Prioritäts-MTs in der Ausführungsreihenfolge des Einzelprogramms zu, und weist darüber hinaus die Prioritätsinformation den Prioritäts-MTs zu. Die Verwaltungsnummern in dem vorliegenden Ausführungsbeispiel sind serielle Nummern, und kleinere Nummern geben an, dass die Ausführungsreihenfolge des Einzelprogramms früher liegt. Mit der vorstehenden Konfiguration werden, wie in 4 dargestellt, in dem Einzelprogramm die Verwaltungsnummern 0 bis 11 allen der MTs zugewiesen, und wird die Prioritätsinformation den Prioritäts-MTs zugewiesen. Mit den den jeweiligen MTs zugewiesenen Verwaltungsnummern, zum Beispiel in 2 MTs, ist es möglich, zu erfassen, welche dieser MTs in der Ausführungsreihenfolge des Einzelprogramms früher liegt. Darüber hinaus ist es mit der den Prioritäts-MTs zugewiesenen Prioritätsinformation möglich, zu erfassen, ob jede MT die Prioritäts-MT ist oder nicht. In den Zeichnungen ist die Prioritätsinformation als ”Priorität” angegeben.
  • Wie vorstehend beschrieben wurde, führt der Computer 10 den automatischen Parallelisierungskompilierer 1 aus, um den Zuweisungsschritt durchzuführen. Daher beinhaltet der automatische Parallelisierungskompilierer 1 eine Prozedur (Zuweisungsprozedur) des: in der Ausführungsreihenfolge des Einzelprogramms, Zuweisens der Verwaltungsnummern zu, von den mehreren MTs, den Prioritäts-MTs, von denen jede ein Erfordernis einer spätesten Ausführungszeit hat; und Zuweisen der Prioritätsinformation, die die Prioritäts-MT angibt, zu den Prioritäts-MTs. In einer anderen Sicht beinhaltet der automatische Parallelisierungskompilierer 1 gemäß dem vorliegenden Ausführungsbeispiel eine Prozedur (Zuweisungsprozedur) des, in der Ausführungsreihenfolge des Einzelprogramms, Zuweisens der Verwaltungsnummern zu allen der MTs einschließlich der normalen MTs zusätzlich zu den Prioritäts-MTs. Spezieller entsprechen die Schritte S10 und S11 der Zuweisungsprozedur.
  • Ferner extrahiert der Computer 10 Parallelisierungsprozesse aus dem Einzelprogramm. In dieser Situation ordnet zum Beispiel der Computer 10, wie in 5 dargestellt, die Blöcke so neu an, dass die parallelisierbaren MTs lateral bzw. seitwärts ausgerichtet sind. Bezüglich der Extraktion sei auf die Patentliteratur 1 verwiesen. Die Extraktion in dem vorliegenden Ausführungsbeispiel unterscheidet sich von der der Patentliteratur 1 nur darin, dass die Verwaltungsnummern und die Prioritätsinformation den MTs zugewiesen werden.
  • Der Computer 10 allokiert die mehreren MTs für den ersten Kern 21c und den zweiten Kern 21d auf der Grundlage der Abhängigkeit und der Verarbeitungszeit. Spezieller ordnet der Computer 10 die mehreren MTs für den ersten Kern 21a an, und ordnet die mehreren MTs für den zweiten Kern 21d an. Mit dem vorstehenden Betriebsablauf, wie in 6 dargestellt, werden alle MTs des Einzelprogramms für den ersten Kern 21c und den zweiten Kern 21d allokiert. Spezieller werden die MTA2, die MTB1, die MTD1, die MTD3 und die MTE1 für den ersten Kern 21c bereitgestellt, und werden die MTA1, die MTA3, die MTB2, die MTD2, die MTE2, die MTE3 und die MTC1 für den zweiten Kern 21d bereitgestellt.
  • Die MTA2, die MTB1, die MTD1, die MTD3 und die MTE1, und die MTA1, die MTA3, die MTB2, die MTD2, die MTE2, die MTE3 und die MTC1 sind die jeweiligen Kollektionen von MTs, die für die jeweiligen Kerne 21c und 21d allokiert sind, und werden daher auch als ”MT-Gruppen” bezeichnet. In der folgenden Beschreibung werden die MTA2, die MTB1, die MTD1, die MTD3 und die MTE1, die für den ersten Kern 21c allokiert sind, auch als eine ”erste MT-Gruppe” bezeichnet, und werden die MTA1, die MTA3, die MTB2, die MTD2, die MTE2, die MTE3 und die MTC1, die für den zweiten Kern 21d allokiert sind, auch als eine ”zweite MT-Gruppe” bezeichnet.
  • Bezüglich der Allokation sei auf die Patentliteratur 1 verwiesen. Die Allokation in dem vorliegenden Ausführungsbeispiel unterscheidet sich von der der Patentliteratur 1 nur darin, dass die Verwaltungsnummern und die Prioritätsinformation den MTs zugewiesen werden.
  • Wie in 6 dargestellt, können, weil die für den ersten Kern 21c allokierte MTA2 und die für den zweiten Kern 21d allokierte MTA1 als ein paralleles Programm verwendet werden können, die MTA2 und die MTA1 als ein vorläufiges paralleles Programm verwendet werden. Das vorläufige parallele Programm kann durch ein Parallelisierungsverfahren erzeugt werden, das in der Patentliteratur 1 offenbart ist. Spezieller erzeugt der Computer 10 das vorläufige parallele Programm in Übereinstimmung mit dem Parallelisierungsverfahren, das in der Patentliteratur 1 offenbart ist, einmal.
  • Da es jedoch ausreichend sein kann, dass die MTC1 nach der MTA2 durchgeführt wird, ist es wahrscheinlich, dass die Ausführungsreihenfolge der MTC1 die letzte bzw. späteste in dem vorläufigen parallelen Programm ist. In diesem Fall liegt die Ausführungsreihenfolge der MTC1 in dem vorläufigen parallelen Programm später als die Ausführungsreihenfolge in der Einzelkernsoftware.
  • In Anbetracht dessen führt, nachdem der Computer 10 die MTs für den ersten Kern 21c und den zweiten Kern 21d wie vorstehend beschrieben allokiert hat, der Computer 10 ein Ablaufdiagramm von 9 aus. Der Computer 10 führt das Ablaufdiagramm von 9 auf einer MT-weisen bzw. MTs-für-MTs-Basis, die für die jeweiligen Kerne 21c und 21d allokiert ist, d. h. auf einer MT-Gruppenbasis, individuell aus. Der Computer 10 führt das Ablaufdiagramm von 9 über nur die MT-Gruppe aus, die die Prioritäts-MT enthält, während die Abhängigkeit zwischen den Kernen erfüllt wird. Daher führt in dem vorliegenden Ausführungsbeispiel der Computer 10 das Ablaufdiagramm von 9 über nicht die erste MT-Gruppe, die keine Prioritäts-MT enthält, sondern nur über die zweite MT-Gruppe aus. Normalerweise führt dann, wenn die Prioritäts-MT in jeder der ersten MT-Gruppe und der zweiten MT-Gruppe enthalten ist, der Computer 10 das Ablaufdiagramm von 9 über die erste MT-Gruppe aus, und führt das Ablaufdiagramm von 9 über zweite MT-Gruppe aus. Darüber hinaus wird in einem noch zu beschreibenden Schritt S24, um die Abhängigkeit zwischen den Kernen zu erfüllen, ermittelt, ob die Abhängigkeit für alle MT-Gruppen aufrechterhalten werden kann oder nicht.
  • Die vorstehende Konfiguration ist jedoch nicht beschränkend. Der Computer 10 braucht das Ablaufdiagramm von 9 nicht auf einer MTs-für-MTs-Basis auszuführen, sondern kann das Ablaufdiagramm von 9 für bzw. über alle der MTs ausführen, während die Abhängigkeit zwischen den Kernen erfüllt wird.
  • In Schritt S20 werden die Verwaltungsnummern der Prioritäts-MTs als Soll- bzw. Ziel-MT-Nummern festgelegt (Anordnungsschritt). Der Computer 10 extrahiert die Prioritäts-MTs aus der MT-Gruppe und legt die jeweiligen Verwaltungsnummern der Prioritäts-MTs als die Soll- bzw. Ziel-MT-Nummern fest.
  • In Schritt S21 wird die Verwaltungsnummer eines Prozesses ein Prozess vor der Prioritäts-MT, d. h. eine Prioritäts-Prä-MT, als eine Vergleichsziel-MT-Nummer festgelegt (Anordnungsschritt). Aus der MT-Gruppe extrahiert der Computer 10 die Prioritäts-Prä-MT, welche eine MT vor der Prioritäts-MT platziert ist, und legt die Verwaltungsnummer der Prioritäts-Prä-MT als die Vergleichsziel-MT-Nummer fest. Die Prioritäts-Prä-MT kann auch als eine ”Vergleichsziel-MT” bezeichnet werden.
  • In Schritt S22 wird ermittelt, ob die Soll- bzw. Ziel-MT-Nummer < die Vergleichszielnummer MT erfüllt ist oder nicht (Anordnungsschritt). Der Computer 10 vergleicht die Soll- bzw. Ziel-MT-Nummer mit der Vergleichsziel-MT-Nummer und ermittelt, ob die Prioritäts-MT in der Ausführungsreihenfolge des Einzelprogramms früher liegt als die Prioritäts-Prä-MT oder nicht. Wenn der Computer 10 ermittelt, dass die Soll- bzw. Ziel-MT-Nummer < die Vergleichszielnummer MT erfüllt ist, schreitet der Computer 10 zu Schritt S24 fort, berücksichtigend, dass die Prioritäts-MT in der Ausführungsreihenfolge des Einzelprogramms früher liegt als die Prioritäts-Prä-MT. Zum Beispiel, wie in 6 dargestellt, schreitet dann, wenn die gegenwärtige Prioritäts-MT die MTC1 ist, der Computer 10 zu Schritt S24 fort.
  • Wenn der Computer 10 ermittelt, dass die Soll- bzw. Ziel-MT-Nummer < die Vergleichszielnummer MT nicht erfüllt ist, schreitet der Computer 10 zu Schritt S23 fort, berücksichtigend, dass die Prioritäts-Prä-MT in der Ausführungsreihenfolge des Einzelprogramms früher liegt als die Prioritäts-MT. Wenn der Computer 10 annimmt, dass die Prioritäts-Prä-MT in der Ausführungsreihenfolge des Einzelprogramms früher liegt als die Prioritäts-MT, schreitet der Computer 10 zu Schritt S23 fort, ohne eine Position der Prioritäts-MT in der MT-Gruppe zu ändern. Zum Beispiel, wie in 6 dargestellt, schreitet dann, wenn die gegenwärtige Prioritäts-MT die MTA3 oder die MTD2 ist, der Computer 10 zu Schritt S23 fort. Daher werden Positionen der MTA3 und der MTD2 in der MT-Gruppe nicht geändert, wie in 6 und 7 dargestellt. Ferner bewirkt dann, wenn die MTC1 neu angeordnet und verlagert wird, wie in 7 dargestellt, der Computer 10 eine verneinende bzw. negative Ermittlung in Schritt S22 durch und schreitet zu Schritt S23 fort. Die Neuanordnung wird später unter Bezugnahme auf die Schritte S24 und S25 beschrieben.
  • In Schritt S23 wird ermittelt, ob die Neuanordnung in allen der Prioritäts-MTs abgeschlossen worden ist oder nicht (Anordnungsschritt). Wenn der Computer 10 die verneinende bzw. negative Ermittlung in allen der Prioritäts-MTs in Schritt S22 bewirkt, beendet der Computer 10 das Ablaufdiagramm von 9, berücksichtigend, dass die Neuanordnung in allen der Prioritäts-MTs abgeschlossen worden ist. Wenn es irgendeine Prioritäts-MT gibt, die nicht der negativen Ermittlung in Schritt S22 unterliegt, kehrt der Computer 10 zu Schritt S20 zurück, berücksichtigend, dass die Neuanordnung noch nicht in allen der Prioritäts-MTs abgeschlossen worden ist.
  • In Schritt S24 wird ermittelt, ob die Abhängigkeit aufrechterhalten werden kann oder nicht (Anordnungsschritt). Der Computer 10 schreitet zu Schritt S25 fort, wenn ermittelt wird, dass die Abhängigkeit auch dann nicht zusammenbricht, wenn die gegenwärtige Prioritäts-MT und die Prioritäts-Prä-MT neu angeordnet werden. Der Computer 10 schreitet zu Schritt S23 fort, dass die Abhängigkeit zusammenbricht, falls die gegenwärtige Prioritäts-MT und die Prioritäts-Prä-MT neu angeordnet werden. Zum Beispiel dann, wenn die gegenwärtige Priorität die MTC1 ist, und die Position von MTC1 unmittelbar nach der MTE3, unmittelbar nach der MTE2 oder unmittelbar nach der MTD2 in 6 liegt, schreitet der Computer 10 zu Schritt S25 fort.
  • In Schritt S25 werden die Soll- bzw. Ziel-MT und die Prioritäts-Prä-MT durch einander ersetzt (Anordnungsschritt). Der Computer 10 ordnet die Soll- bzw. Ziel-MT und die Prioritäts-Prä-MT neu an. Wenn die gegenwärtige Prioritäts-MT die MTC1 ist, führt der Computer 10 wiederholt die Schritte S21, S22, S24 und S25 aus. Daher ordnet der Computer 10 die MTC1 und die MTE3 neu an, ordnet dann die MTC1 und die MTE2 neu an, und ordnet danach die MTC1 und die MTD2 neu an. Infolge dessen verlagert der Computer 10 die MTC1 von einer in 6 dargestellten Position an eine in 7 dargestellte Position. Wenn die Neuanordnung wie vorstehend beschrieben durchgeführt wird, bewirkt der Computer 10 die negative Ermittlung in Schritt S22.
  • In der vorstehend beschriebenen Weise erzeugt der Computer 10 das parallele Programm 21a1. Spezieller ordnet der Computer 10 auf der Grundlage der Verwaltungsnummern und der Prioritätsinformation die Prozesse so an, dass die Prioritätsprozesse, die in der Ausführungsreihenfolge des Einzelprogramms früher liegen, in der Ausführungsreihenfolge des parallelen Programms 21a1 früher platziert sind, während die Abhängigkeit erfüllt wird. In dem parallelen Programm 21a1 liegen alle Prioritäts-MTs in der Ausführungsreihenfolge früher als in dem Einzelprogramm. Wie in 7 dargestellt, ist die MT-Gruppe, die in der Ausführungsreihenfolge von MTA2, MTB1, MTD1, MTD3 und MTE1 angeordnet ist, ein Programm, das für den ersten Kern 21c beabsichtigt ist. Die MT-Gruppe, die in der Ausführungsreihenfolge von MTA1, MTA3, MTB2, MTC1, MTD2, MTE2 und MTE3 angeordnet ist, ein Programm, das für den zweiten Kern 21d beabsichtigt ist.
  • Der Computer 10 führt den automatischen Parallelisierungskompilierer 1 aus, um den Anordnungsschritt durchzuführen. Daher beinhaltet der automatische Parallelisierungskompilierer 1 eine Prozedur (Anordnungsprozedur) des Vergleichens der Verwaltungsnummer, die jeder Prioritäts-MT zugewiesen ist, mit der Verwaltungsnummer, die einer normalen MT zugewiesen ist, die eine MT vor der Prioritäts-MT platziert ist. Ferner beinhaltet der automatische Parallelisierungskompilierer 1 eine Prozedur (Anordnungsprozedur) des Neuanordnens der normalen MT und der Prioritäts-MT, wenn die Prioritäts-MT in der Ausführungsreihenfolge des Einzelprogramms früher liegt als die normale MT und die Abhängigkeit auch dann nicht zusammenbricht, wenn die Verarbeitungsreihenfolge der normalen MT und der Prioritäts-MT umgekehrt wird. Spezieller entsprechen die Schritte S20 bis S25 der Anordnungsprozedur.
  • Wie vorstehend beschrieben wurde, kann, weil der automatische Parallelisierungskompilierer 1 die Zuweisungsprozedur bereitstellt, der automatische Parallelisierungskompilierer 1 die Prioritäts-MTs in den mehreren Prozessen und die Ausführungsreihenfolge der Prioritäts-MTs in dem Einzelprogramm erfassen. Der automatische Parallelisierungskompilierer 1 beinhaltet eine Prozedur, in welcher, auf der Grundlage der Verwaltungsnummern und der Prioritätsinformation, die Prioritäts-MTs, die in der Ausführungsreihenfolge des Einzelprogramms früher liegen, in der früheren Ausführungsreihenfolge der Prioritäts-MTs des parallelen Programms 21a1 angeordnet werden, während die Abhängigkeit erfüllt wird. Aus diesem Grund kann der automatische Parallelisierungskompilierer 1 das parallele Programm 21a1 erzeugen, in welchem die Prioritäts-MTs wahrscheinlich früh ausgeführt werden. Daher kann der automatische Parallelisierungskompilierer 1 das parallele Programm 21a1 erzeugen, in welchem verhindert werden kann, dass die Ausführungsreihenfolge der Prioritäts-MTs später liegt als in der Einzelkern-Software, und die späteste Ausführungszeit der Prioritäts-MTs wahrscheinlich eingehalten wird.
  • Darüber hinaus kann durch Ausführen des automatischen Parallelisierungskompilierers 1 der Computer 10 das parallele Programm 21a1, in welchem die Prioritäts-MTs früh ausgeführt werden, erzeugen, und die späteste Ausführungszeit der Prioritäts-MTs wird wahrscheinlich eingehalten. Daher kann der Computer 10 das parallele Programm 21a1 erzeugen, in welchem das Erfordernis für die späteste Ausführungszeit wahrscheinlich erfüllt wird.
  • Ferner kann der automatische Parallelisierungskompilierer 1 die Neuanordnung leicht durchführen, während die Abhängigkeit erfüllt wird, weil der automatische Parallelisierungskompilierer 1 eine Prozedur des Vergleichens der Verwaltungsnummer jeder Prioritäts-MT mit der Verwaltungsnummer einer MT eine MT vor der Prioritäts-MT beinhaltet, um die MT und die Prioritäts-MT wie vorstehend beschrieben neu anzuordnen. Der Computer 10 kann leicht das parallele Programm 21a1 erzeugen.
  • Es kann ausreichen, dass der automatische Parallelisierungskompilierer 1 eine Prozedur des Neuanordnens der MTs auf einer MT-Gruppen-Basis so beinhaltet, dass die Prioritäts-MTs, die in der Ausführungsreihenfolge des Einzelprogramms früher liegen, in der früheren Ausführungsreihenfolge des parallelen Programms 21a1 neu angeordnet werden, während die Abhängigkeit erfüllt wird. Gleichfalls kann es ausreichen, dass der Computer 10 die MTs auf einer MT-Gruppen-Basis so neu anordnet, dass die Prioritäts-MTs, die in der Ausführungsreihenfolge des Einzelprogramms früher liegen, in der früheren Ausführungsreihenfolge des parallelen Programms 21a1 neu angeordnet werden, während die Abhängigkeit erfüllt wird. Es kann ausreichen, dass die fahrzeugverbaute Einrichtung 20 das parallele Programm beinhaltet, in welchem auf einer MT-Gruppen-Basis die Prioritäts-MTs, die in der Ausführungsreihenfolge des Einzelprogramms früher liegen, in der früheren Ausführungsreihenfolge des parallelen Programms 21a1 neu angeordnet wurden, während die Abhängigkeit erfüllt wird.
  • Wie vorstehend beschrieben wurde, speichert das ROM 21a der fahrzeugverbauten Einrichtung 20 das parallele Programm 21a1, das mit der Verwendung des automatischen Parallelisierungskompilierers 1 erzeugt wurde, speziell das durch den Computer 10 erzeugte parallele Programm 21a1. Die fahrzeugverbaute Einrichtung 20 führt die Motorsteuerung durch, während der erste Kern 21c das Programm für den ersten Kern 21c in dem parallelen Programm 21a1 aus, und führt der zweite Kern 21d das Programm für den zweiten Kern 21d in dem parallelen Programm 21a1 aus. Aus diesem Grund führen in der fahrzeugverbauten Einrichtung 20 die jeweiligen Kerne 21c und 21d wahrscheinlich die Prioritäts-MTs früh aus, und halten wahrscheinlich die späteste Ausführungszeit der Prioritäts-MTs ein.
  • Es ist denkbar, dass in eingebetteter Software zum Zweck des Verbesserns einer Verarbeitungsantwort den Prioritäts-MTs kein Ausführungserfordernis zugewiesen sein kann, um die Verarbeitung zu minimieren. In einem solchen Fall besteht eine Möglichkeit, dass das parallele Programm, das in dem Parallelisierungsverfahren erzeugt wurde, das in der Patentliteratur 1 offenbart ist, die späteste Ausführungszeit der Prioritäts-MTs nicht einhalten kann. Jedoch können der automatische Parallelisierungskompilierer 1, der Computer 10 und die fahrzeugverbaute Einrichtung 20 die herausragenden Vorteile wie vorstehend beschrieben erzielen.
  • Obwohl das Ausführungsbeispiel vorstehend dargestellt wurde, gibt es verschiedenartige Modifikationen und anderen Ausführungsbeispiel, ohne den Rahmen und den Schutzumfang zu verlassen. Nachstehend werden zweite bis sechste Ausführungsbeispiel beschrieben. Das vorstehende Ausführungsbeispiel und die zweiten bis sechsten Ausführungsbeispiele können unabhängig voneinander implementiert werden, und können darüber hinaus in geeigneter Kombination implementiert werden. Die Kombinationen sind nicht auf diejenigen beschränkt, die explizit beschrieben werden, und verschiedenartige andere Kombinationen sind möglich.
  • (Zweites Ausführungsbeispiel)
  • Ein automatischer Parallelisierungskompilierer 1 gemäß dem vorliegenden Ausführungsbeispiel unterscheidet sich von dem in dem ersten Ausführungsbeispiel darin, dass eine Prozedur zum Erzeugen eines parallelen Programms 21a1 ohne Erzeugen eines vorläufigen parallelen Programms enthalten ist. Gleichfalls unterscheidet sich ein Computer 10 gemäß dem vorliegenden Ausführungsbeispiel von demjenigen in dem ersten Ausführungsbeispiel darin, dass das parallele Programm 21a1 ohne Erzeugen des vorläufigen parallelen Programms produziert wird. Eine fahrzeugverbaute Einrichtung 20 gemäß dem vorliegenden Ausführungsbeispiel unterscheidet sich von der in dem ersten Ausführungsbeispiel darin, dass das ohne Erzeugen des vorläufigen parallelen Programms produzierte parallele Programm 21a1 installiert bzw. verbaut ist. In dem vorliegenden Ausführungsbeispiel und den folgenden Ausführungsbeispielen werden zweckmäßig gleiche Bezugszeichen zur Bezugnahme auf gleiche Teile verwendet.
  • Der automatische Parallelisierungskompilierer 1 gemäß dem vorliegenden Ausführungsbeispiel beinhaltet eine Prozedur (Zuweisungsprozedur) des Zuweisens von Verwaltungsnummern zu zumindest Prioritäts-MTs in einer Ausführungsreihenfolge eines einzelnen Programms bzw. Einzelprogramms. Gleichfalls weist der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel die Verwaltungsnummern zu zumindest den Prioritäts-MTs in der Ausführungsreihenfolge des Einzelprogramms zu (Zuweisungsschritt). Die fahrzeugverbaute Einrichtung 20 gemäß dem vorliegenden Ausführungsbeispiel beinhaltet das parallele Programm 21a1, in welchem die Verwaltungsnummern zu zumindest den Prioritäts-MTs in der Ausführungsreihenfolge des Einzelprogramms zugewiesen sind.
  • Wie vorstehend unter Bezugnahme auf 5 beschrieben wurde, führt, nach dem der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel parallelisierbare Prozesse extrahiert und die Blöcke so neu anordnet, dass die parallelisierbaren MTs lateral bzw. seitwärts ausgerichtet sind, der Computer 10 ein Ablaufdiagramm von 10 aus. Spezieller erzeugt der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel das unter Bezugnahme auf 6 beschriebene vorläufige parallele Programm nicht. Durch die Ausführung des Ablaufdiagramms in 10 produziert der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel das parallele Programm 21a1, ohne das vorläufige parallele Programm zu erzeugen.
  • In Schritt S30 wird die Prioritäts-MP, die in den nicht angeordneten Prioritäts-MTs die kleinste Verwaltungsnummer hat, als eine Soll- bzw. Ziel-Prioritäts-MT ausgewählt (Zuweisungsschritt). Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel wählt die Prioritäts-MT mit der kleinsten Verwaltungsnummer als die Soll- bzw. Ziel-Prioritäts-MT aus den Prioritäts-MTs, die nicht angeordnet worden sind, als die Programme für die jeweiligen Kerne 21c und 21d aus. Wenn die nicht angeordnete Prioritäts-MT fehlt, schreitet der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel zu Schritt S34 fort, ohne zu Schritt S31 fortzuschreiten.
  • In Schritt S31 wird ermittelt, ob eine Abhängigkeit aufrechterhalten werden kann, wenn die MT an der gegenwärtigen obersten Position platziert wird, oder nicht (Anordnungsschritt). Die gegenwärtige oberste Position ist eine Position, an der eine MT platziert ist und die Ausführungsreihenfolge in dem Programm für den Kern 21c, 21d die früheste ist. Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel schreitet zu Schritt S32 fort, falls ermittelt wird, dass die Abhängigkeit aufrechterhalten werden kann, wenn die Ziel-Prioritäts-MT an der gegenwärtigen obersten Position platziert wird, spezieller falls ermittelt wird, dass die Abhängigkeit nicht zusammenbricht. Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel schreitet zu Schritt S34 fort, falls ermittelt wird, dass die Abhängigkeit aufrechterhalten werden kann.
  • In Schritt S32 ordnet der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel die Ziel-Prioritäts-MT an der zu dieser Zeit obersten Position an (Anordnungsschritt). In Schritt S33 ermittelt der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel, ob die Anordnung aller MTs abgeschlossen worden ist oder nicht (Anordnungsschritt). Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel kehrt zu Schritt S30 zurück, falls ermittelt wird, dass die Anordnung aller MTs nicht abgeschlossen worden ist, und beendet das Ablaufdiagramm von 10, falls ermittelt wird, dass die Anordnung aller MTs abgeschlossen worden ist.
  • In Schritt S34 ordnet der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel die MTs in einem Verfahren an, das in der Patentliteratur 1 offenbart ist.
  • Wie vorstehend beschrieben wurde, ordnet der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel die Prioritäts-MTs und die normalen MTs so an, dass die Prioritäts-MTs, die in der Ausführungsreihenfolge des Einzelprogramms früher liegen, in der früheren Ausführungsreihenfolge des parallelen Programms 21a1 angeordnet sind, während die Prioritäts-MTs und die normalen MTs für die Kerne 21c und 21b so allokiert werden, dass die Abhängigkeit erfüllt wird. Mit der vorstehenden Konfiguration kann der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel das in 11 dargestellte parallele Programm 21a1 erzeugen. Das parallele Programm 21a1 unterscheidet sich in der Ausführungsreihenfolge von MTs von dem vorläufigen parallelen Programm in 7. In dem Programm für den zweiten Kern 21d ist die Ausführungsreihenfolge der MTC1 und der MTB2 umgekehrt. Das parallele Programm 21a1 kann in der Ausführungsreihenfolge früher als das vorläufige parallele Programm MTC1, dargestellt in 6, festgelegt werden. In dem Programm für den ersten Kern 21c tritt ein Warten auf Beendigung W1 zwischen der MTD11 und der MTD3 auf. Dies ist deshalb so, weil die MTD3 eine Abhängigkeit von der MTB2 aufweist. Das Warten auf Beendigung kann als ein ”Warteprozess” oder ein ”Warteschlangenprozess” bezeichnet werden.
  • Ferner beinhaltet der automatische Parallelisierungskompilierer 1 eine Prozedur des Anordnens der MTs so, dass die Prioritäts-MTs, die in der Ausführungsreihenfolge des Einzelprogramms früher liegen, in der früheren Ausführungsreihenfolge des parallelen Programms 21a1 liegen, während die Prioritäts-MTs und die normalen MTs so für die Kerne 21c und 21b so allokiert werden, dass die Abhängigkeit erfüllt wird. Spezieller entsprechen die Schritte S30 bis S33 der Anordnungsprozedur. Der automatische Parallelisierungskompilierer 1 gemäß dem vorliegenden Ausführungsbeispiel beinhaltet die Anordnungsprozedur. Daher beinhaltet die fahrzeugverbaute Einrichtung 20 gemäß dem vorliegenden Ausführungsbeispiel das parallele Programm 21a1, das wie vorstehend beschrieben produziert wurde.
  • Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel kann dieselben Vorteile wie diejenigen in dem Computer 10 des ersten Ausführungsbeispiels erzielen. Der automatische Parallelisierungskompilierer 1 gemäß dem vorliegenden Ausführungsbeispiel kann dieselben Vorteile wie diejenigen in dem automatischen Parallelisierungskompilierer 1 des ersten Ausführungsbeispiels erzielen. Ferner kann die fahrzeugverbaute Einrichtung 20 gemäß dem vorliegenden Ausführungsbeispiel dieselben Vorteile wie diejenigen in der fahrzeugverbauten Einrichtung 20 des ersten Ausführungsbeispiels erzielen.
  • In Schritt S34 kann der normale Prozess so angeordnet werden, dass die Abhängigkeit erfüllt wird (Anordnungsschritt). Zum Beispiel kann in Schritt S34 die normale MT, die in den nicht angeordneten normalen MTs die kleinste Verwaltungsnummer hat, als eine normale Soll- bzw. Ziel-MT ausgewählt werden, und kann die ausgewählte normale Soll- bzw. Ziel-MT an der obersten Position zu dieser Zeit angeordnet werden (Anordnungsschritt). Demgemäß kann gesagt werden, dass der automatische Parallelisierungskompilierer 1 gemäß dem vorliegenden Ausführungsbeispiel eine Prozedur (Anordnungsschritt) des Anordnens der normalen MTs so, dass die Abhängigkeit erfüllt wird, beinhaltet, wenn die Anordnung der Prioritäts-MTs die Abhängigkeit zusammenbrechen lässt. Darüber hinaus kann gesagt werden, dass die fahrzeugverbaute Einrichtung 20 gemäß dem vorliegenden Ausführungsbeispiel das parallele Programm 21a1 beinhaltet, in welchem die normalen MTs so angeordnet sind, dass die Abhängigkeit erfüllt wird, wenn die Anordnung der Prioritäts-MTs die Abhängigkeit zusammenbrechen lässt.
  • In diesem Fall beinhaltet der automatisierte Parallelisierungskompilierer 1 gemäß dem vorliegenden Ausführungsbeispiel eine Prozedur (Zuweisungsprozedur) des Zuweisens der Verwaltungsnummern zu den Prioritäts-MTs und den normalen MTs, d. h. allen der MTs in der Ausführungsreihenfolge des Einzelprograms. Ebenso weist der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel die Verwaltungsnummern allen der MTs in der Ausführungsreihenfolge des Einzelprogramms zu (Zuweisungsschritt). Die fahrzeugverbaute Einrichtung 20 gemäß dem vorliegenden Ausführungsbeispiel beinhaltet das parallele Programm 21a1, in welchem die Verwaltungsnummern zu allen der MTs in der Ausführungsreihenfolge des Einzelprogramms zugewiesen sind.
  • (Drittes Ausführungsbeispiel)
  • Wie in 4 dargestellt, hat die MTD3 eine Abhängigkeit von der MTB2. Aus diesem Grund tritt dann, wenn ein erster Kern 21c ein Programm für den ersten Kern 21a, dargestellt in 11, ausführt, ein Warten auf Beendigung W1 zum Warten darauf, dass ein zweiter Kern 21d die Ausführung der MTB2 beendet, nach der Ausführung der MTD1 auf.
  • In Anbetracht dessen beinhaltet ein automatischer Parallelisierungskompilierer 1 gemäß dem vorliegenden Ausführungsbeispiel eine Prozedur des Reduzierens des Wartens auf Beendigung W1. Ebenso beinhaltet ein Computer 10 gemäß dem vorliegenden Ausführungsbeispiel einen Schritt des Erzeugens eines parallelen Programms 21a1, das das Warten auf Beendigung W1 reduzieren kann. Eine fahrzeugverbaute Einrichtung 20 gemäß dem vorliegenden Ausführungsbeispiel beinhaltet ein paralleles Programm 21a1, das in einem Parallelisierungsverfahren des automatischen Parallelisierungskompilierers 1 erzeugt wurde, spezieller das parallele Programm 21a1, das durch den Computer 10 gemäß dem vorliegenden Ausführungsbeispiel erzeugt wurde. Das vorliegende Ausführungsbeispiel unterscheidet sich von dem zweiten Ausführungsbeispiel in denjenigen Konfigurationen, die vorstehend beschrieben wurde.
  • Der automatische Parallelisierungskompilierer 1 gemäß dem vorliegenden Ausführungsbeispiel beinhaltet eine Prozedur (Zuweisungsprozedur) des Zuweisens von Verwaltungsnummern zu allen von Prioritäts-MTs einschließlich der Prioritäts-MTs in der Ausführungsreihenfolge eines Einzelprogramms. Demgemäß weist der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel Verwaltungsnummern zu allen der MTs einschließlich der Prioritäts-MTs in der Ausführungsreihenfolge des Einzelprogramms zu (Zuweisungsschritt). Die fahrzeugverbaute Einrichtung 20 gemäß dem vorliegenden Ausführungsbeispiel beinhaltet das parallele Programm 21a1, in welchem die Verwaltungsnummern zu allen der Prioritäts-MTs einschließlich der Prioritäts-MT in der Ausführungsreihenfolge des Einzelprogramms zugewiesen sind.
  • Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel führt den automatischen Parallelisierungskompilierer 1 aus, um das parallele Programm 21a1 zu erzeugen, wie in dem zweiten Ausführungsbeispiel beschrieben, und führt danach ein Ablaufdiagramm von 12 aus.
  • In Schritt S40 wird ermittelt, ob das Warten auf Beendigung W1 vorliegt oder nicht (Reduzierschritt). Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel ermittelt, ob das Warten auf Beendigung W1 in dem erzeugten parallelen Programm 21a1 auftritt oder nicht. Genauer ermittelt der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel, ob das Warten auf Beendigung W1 zum Warten auf Beendigung der Ausführung der MTs in einem anderen Kern in einem Kern auftritt oder nicht. Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel schreitet zu Schritt S41 fort, falls ermittelt wird, dass das Warten auf Beendigung W1 auftritt, und beendet das Ablaufdiagramm von 12, falls ermittelt wird, dass das Warten auf Beendigung W1 nicht auftritt. In dem Fall des in 11 dargestellten parallelen Programms 21a1 ermittelt der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel, dass das Warten auf Beendigung W1 zum Warten auf die Beendigung der MTB2 in dem zweiten Kern 21d in dem ersten Kern 21c auftritt, und schreitet zu Schritt S41 fort.
  • In Schritt S41 wird eine Verwaltungsnummer einer Einflussfaktor- bzw. Faktor-MT als eine Soll- bzw. Ziel-MT-Nummer festgelegt (Reduzierschritt). Die Faktor-MT ist eine MT, die das Warten auf Beendigung W1 verursacht. Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel extrahiert die Faktor-MT aus der MT-Gruppe und legt die Verwaltungsnummer der Faktor-MT als die Soll- bzw. Ziel-MT fest. In dem Fall des parallelen Programms 21a1, dargestellt in 11, extrahiert der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel die MTB2 als die Faktor-MT, und legt eine Verwaltungsnummer 4 der MTB2 als eine Soll- bzw. Ziel-MT-Nummer fest.
  • In Schritt S42 wird die Verwaltungsnummer der MT ein Prozess vor der Faktor-MT, d. h. einer Prä-Faktor-MT bzw. Faktor-Prä-MT, als eine Vergleichsziel-MT-Nummer festgelegt (Reduzierschritt). Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel extrahiert die Faktor-Prä-MT, welche eine MT vor der Faktor-MT platziert ist, aus der MT-Gruppe und legt die Verwaltungsnummer der Faktor-Prä-MT als die Vergleichsziel-MT-Nummer fest. In dem Fall des parallelen Programms 21a1, dargestellt in 11, extrahiert der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel die MTC1 als die Faktor-Prä-MT und legt eine Verwaltungsnummer 5 der MTC1 als die Vergleichsziel-MT-Nummer fest.
  • Um die Soll- bzw. Ziel-MT-Nummer in diesem Beispiel von der Soll- bzw. Ziel-Nummer in dem ersten Ausführungsbeispiel zu unterscheiden, kann die Soll- bzw. Ziel-MT-Nummer als eine ”Faktor-MT-Nummer” bezeichnet werden. Ebenso kann, um die Vergleichsziel-MT-Nummer in diesem Beispiel von der Vergleichsziel-MT-Nummer in dem ersten Ausführungsbeispiel zu unterscheiden, die Vergleichs-Prä-MT-Nummer als eine ”Faktor-Prä-MT-Nummer” bezeichnet werden.
  • In Schritt S43 wird ermittelt, ob die Soll-MT-Nummer < die Vergleichsziel-MT-Nummer erfüllt ist oder nicht (Reduzierschritt). Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel vergleicht die Soll- bzw. Ziel-MT-Nummer mit der Vergleichsziel-MT-Nummer und ermittelt, ob die Faktor-MT in der Ausführungsreihenfolge des Einzelprogramms früher liegt als die Faktor-Prä-MT oder nicht. Wenn der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel ermittelt, dass die Soll- bzw. Ziel-MT-Nummer < die Vergleichsziel-MT-Nummer erfüllt ist, schreitet der Computer 10 zu Schritt S44 fort, berücksichtigend, dass die Faktor-MT in der Ausführungsreihenfolge des Einzelprogramms früher liegt als die Faktor-Prä-MT. Zum Beispiel, wie in 11 dargestellt, schreitet dann, wenn die gegenwärtige Faktor-MT die MTB2 ist, der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel zu Schritt S44 fort.
  • Wenn der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel ermittelt, dass die Soll- bzw. Ziel-MT-Nummer < die Vergleichsziel-MT-Nummer nicht erfüllt ist, kehrt der Computer 10 zu Schritt S40 zurück, berücksichtigend, dass die Faktor-Prä-MT in der Ausführungsreihenfolge des Einzelprogramms früher liegt als die Faktor-MT. Wenn der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel annimmt, dass die Faktor-Prä-MT in der Ausführungsreihenfolge des Einzelprogramms früher liegt als die Faktor-MT, kehrt der Computer 10 zu Schritt S40 zurück, ohne eine Position der Faktor-MT in der MT-Gruppe zu ändern.
  • In Schritt S44 wird ermittelt, ob die Abhängigkeit aufrechterhalten werden kann oder nicht, auch wenn die Faktor-MT und die Faktor-Prä-MT neu angeordnet werden (Reduzierschritt). Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel schreitet zu Schritt S45 fort, falls ermittelt wird, dass die Abhängigkeit auch dann nicht zusammenbricht, wenn die Faktor-MT und die Faktor-Prä-MT neu angeordnet werden. Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel kehrt zu Schritt S40 zurück, falls ermittelt wird, dass die Abhängigkeit zusammenbricht, wenn die Faktor-MT und die Faktor-Prä-MT neu angeordnet werden.
  • In Schritt S45 werden die Faktor-MT und die Faktor-Prä-MT durch einander ersetzt (Reduzierschritt). Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel ordnet die Faktor-MT und die Faktor-Prä-MT neu an. Wenn die Faktor-MT die MTB2 ist, führt der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel Schritt S45 aus, und ordnet daher die MTB2 und die MTC1 neu an. Infolge dessen ordnet der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel die MTB2 von einer Position, die in 11 dargestellt ist, neu an eine in 13 dargestellte Position an.
  • In Schritt S46 wird ermittelt, ob die Neuanordnung in allen der Faktor-MTs abgeschlossen worden ist oder nicht (Reduzierschritt). Falls ermittelt wird, dass die Neuanordnung über alle der Faktor-MTs abgeschlossen worden ist, beendet der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel das Ablaufdiagramm von 12. Falls ermittelt wird, dass die Neuanordnung über alle der Faktor-MTs nicht abgeschlossen worden ist, kehrt der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel zu Schritt S40 zurück.
  • Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel erzeugt das parallele Programm 21a1 wie vorstehend beschrieben wurde. Spezieller erzeugt der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel das parallele Programm 21a1, aus welchem das Warten auf Beendigung W1 entfernt wurde, wie in 13 dargestellt.
  • Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel führt den automatischen Parallelisierungskompilierer 1 aus, um den Reduzierschritt durchzuführen. Daher beinhaltet der automatische Parallelisierungskompilierer 1 eine Prozedur des Vergleichens der Verwaltungsnummer, die der Faktor-MT zugewiesen ist, mit der Verwaltungsnummer, die der Faktor-Prä-MT zugewiesen ist, wenn das Warten auf Beendigung W1 auftritt. Ferner beinhaltet der automatische Parallelisierungskompilierer 1 eine Prozedur des Neuanordnens der Faktor-MT und der Faktor-Prä-MT, wenn die Faktor-MT in der Ausführungsreihenfolge des Einzelprogramms früher liegt als die Faktor-Prä-MT, und die Abhängigkeit auch dann nicht zusammenbricht, wenn die Ausführungsreihenfolge der Faktor-Prä-MT und der Faktor-MT umgekehrt wird. Die vorstehende Prozedur dient dazu, das Warten auf Beendigung W1 zu reduzieren. Wie vorstehend beschrieben wurde, entsprechen die Schritte S40 bis S46 der Reduktionsprozedur. Der automatische Parallelisierungskompilierer 1 beinhaltet die Reduktionsprozedur. Daher beinhaltet die fahrzeugverbaute Einrichtung 20 gemäß dem vorliegenden Ausführungsbeispiel das parallele Programm 21a1, das wie vorstehend beschrieben produziert wurde.
  • Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel kann dieselben Vorteile erzielen wie diejenigen in dem Computer 10 gemäß dem zweiten Ausführungsbeispiel. Ferner kann der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel das Warten auf Beendigung W1 stärker reduzieren bzw. verringern als das parallele Programm 21a1, das in dem Computer 10 gemäß dem zweiten Ausführungsbeispiel erzeugt wurde.
  • Der automatische Parallelisierungskompilierer 1 gemäß dem vorliegenden Ausführungsbeispiel kann dieselben Vorteile erzielen wie diejenigen in dem automatischen Parallelisierungskompilierer 1 des zweiten Ausführungsbeispiels. Ferner kann der automatische Parallelisierungskompilierer 1 gemäß dem vorliegenden Ausführungsbeispiel das parallele Programm 21a1 erzeugen, in welchem das Warten auf Beendigung W1 stärker reduziert ist als dasjenige des parallelen Programms 21a1, das in dem Computer 10 des zweiten Ausführungsbeispiels erzeugt wurde.
  • Die fahrzeugverbaute Einrichtung 20 gemäß dem vorliegenden Ausführungsbeispiel kann dieselben Vorteile erzielen wie diejenigen in der fahrzeugverbauten Einrichtung 20 des zweiten Ausführungsbeispiels. Ferner kann die fahrzeugverbaute Einrichtung 20 gemäß dem vorliegenden Ausführungsbeispiel im Vergleich zu der fahrzeugverbauten Einrichtung 20 in dem zweiten Ausführungsbeispiel das Warten auf Beendigung W1 reduzieren, wenn die jeweiligen Kerne 21c uns 21d das parallele Programm 21a1 ausführen.
  • (Viertes Ausführungsbeispiel)
  • Das vorliegende Ausführungsbeispiel ist auf ein Beispiel gerichtet, in welchem eine fahrzeugmontierte Einrichtung 20 auf eine Fahrzeugbremssystemsteuereinrichtung angewandt ist. Daher ist das Einzelprogramm ein Programm für ein Bremssystem. Ein automatischer Parallelisierungskompilierer 1 gemäß dem vorliegenden Ausführungsbeispiel beinhaltet eine Prozedur des Erzeugens eines parallelen Programms 21a1 nach dem Erzeugen eines vorläufigen parallelen Programms wie in dem ersten Ausführungsbeispiel. Aus diesem Grund erzeugt ein Computer 10 gemäß dem vorliegenden Ausführungsbeispiel das parallele Programm 21a1 nach dem Erzeugen des vorläufigen parallelen Programms.
  • Wie in 14 dargestellt, ist eine Konfiguration der fahrzeugverbauten Einrichtung 20 gemäß dem vorliegenden Ausführungsbeispiel allgemein identisch mit der in dem ersten Ausführungsbeispiel. Die fahrzeugverbaute Einrichtung 20 gemäß dem vorliegenden Ausführungsbeispiel unterscheidet sich von der des ersten Ausführungsbeispiels darin, dass eine Sensoreinheit 23 einen Sensorwert beschafft, der von zumindest einem Bremspedalsensor ausgegeben wurde, und der Sensorwert des Bremspedals in einem RAM 21b gespeichert wird. Darüber hinaus unterscheidet sich die fahrzeugverbaute Einrichtung 20 gemäß dem vorliegenden Ausführungsbeispiel von der des ersten Ausführungsbeispiels darin, dass ein Ansteuersignal über einen Eingabe/Ausgabe-Port 24 an einen Bremsmechanismus ausgegeben wird, ein Fahrzeugantriebssignal wie beispielsweise ein Zündsignal an einen Motormechanismus ausgegeben wird, und ein Nothaltsignal an den Motormechanismus ausgegeben wird. Das Nothaltsignal ist ein Signal zum Anhalten des Fahrzeugs und zum Verwerfen aller der Fahrzeugantriebssignale.
  • Wie in 15 dargestellt, beinhaltet das Einzelprogramm die MT1 bis MT9. Eine Abhängigkeit der jeweiligen MT1 bis MT9 ist durch Pfeile in 15 angegeben.
  • Eine Bremspedalsensoreingabeeinheit der MT1 ist ein Prozess des Anwendens einer AD-Umwandlung auf eine Sensorausgangsspannung, die in Übereinstimmung mit einem Pedalbetätigungsausmaß durch einen Benutzer geändert wird, und des Speicherns der Ausgangsspannung in dem RAM 21b als den Sensorwert.
  • Eine Bremspedalfehlerermittlungseinheit der MT2 und eine Nothaltsteuereinheit der MT3 sind Prozesse des Ermittelns eines Fehlers des Bremspedals auf der Grundlage des Sensorwerts, und des Implementierens einer Steuerung des notweisen Anhaltens des Fahrzeugs unter Ignorieren der normalen Steuerung, wenn der Fehler auftritt. Falls der Fehler auftritt, muss der Prozess bis zu der Ausführung einer Nothaltsteuereinheit MT3 schnell beendet werden. Daher hat jede der MT1 bis MT3 ein Erfordernis für eine späteste Ausführungszeit DL1.
  • Eine Datenspeichereinheit bei dem Auftreten eines Fehlers in der MT4 und eine Fehleranzeigeeinheit (für den Benutzer) in der MT5 sind Prozesse des Speicherns verschiedenartiger Daten, wenn der Fehler auftritt, und des Durchführens einer Anzeige zum Benachrichtigen des Benutzers darüber, dass sich die Fahrzeugsteuerung von der normalen Steuerung unterscheiden und das Bremspedal fehlerhaft ist. Die gespeicherten verschiedenartigen Daten werden für eine kooperative Steuerung mit einer anderen fahrzeugverbauten Einrichtung verwendet, und für eine Fehleranalyse verwendet. Weil eine Verzögerung der Anzeige zu Verwirrung des Benutzers führt, hat die MT5 ein Erfordernis einer spätesten Ausführungszeit DL2.
  • Eine Bremspedalbetätigungsabschätzeinheit der MT6, eine Sollfahrzeuggeschwindigkeitsberechnungseinheit der MT7 und eine Bremsansteuereinheit der MT8 sind Prozesse des Abschätzens der Bremsbetätigung durch den Benutzer auf der Grundlage des Sensorwerts, Berechnens einer Sollfahrzeuggeschwindigkeit, die von dem Benutzer verlangt wird, und Ansteuerns der Bremse auf der Grundlage eines berechneten Werts. Wenn jedoch das Pedal fehlerhaft ist, tritt wahrscheinlich eine große Abweichung zwischen dem Sensorwert und der Benutzerbetätigung auf. Aus diesem Grund wird dann, wenn das Pedal fehlerhaft ist, ein Wert der Sollfahrzeuggeschwindigkeit durch einen bestimmten Wert ersetzt. Die abgeschätzte Bremsbetätigung repräsentiert das Ausmaß eines Niederdrückens oder eine Auftrittsgeschwindigkeit.
  • Eine Datenübertragungseinheit der MT9 ist ein Prozess des Übertragens eines Antriebs- bzw. Ansteuerzustands der Bremse oder von Daten, wenn ein Fehler auftritt, zum Zweck des Durchführens der kooperativen Steuerung mit einer anderen fahrzeugverbauten Einrichtung.
  • Wie in dem ersten Ausführungsbeispiel analysiert der Computer 10 gemäß dem ersten Ausführungsbeispiel eine Abhängigkeit an den jeweiligen MT1 bis MT9, und führt danach einen Zuweisungsschritt durch. Infolge dessen werden, wie in 16 dargestellt, Verwaltungsnummern und Prioritätsinformation den MT1 bis MT9 zugewiesen.
  • Danach erzeugt, wie in dem ersten Ausführungsbeispiel, der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel ein vorläufiges paralleles Programm. Infolge dessen erzeugt der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel das in 17 dargestellte vorläufige parallele Programm. Wie in 17 dargestellt, halten die MT1 und die MT2 die späteste Ausführungszeit DL1 ein. Die MT5 hält eine späteste Ausführungszeit DL2 ein. Die MT3 jedoch hält eine späteste Ausführungszeit DL1 nicht ein.
  • Wie in dem ersten Ausführungsbeispiel führt jedoch der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel das Ablaufdiagramm von 9 aus. Infolge dessen erzeugt der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel ein paralleles Programm 21a1, das in 18 dargestellt ist. Spezieller ordnet der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel die MT3 neu an, und ist dadurch in der Lage, das parallele Programm 21a1 zu generieren, in welchem die MT3 in der Ausführungsreihenfolge früher als die MT4 und die MT5 liegt bzw. früher als diese ausgeführt wird. Mit der vorstehenden Konfiguration hält die MT3 die späteste Ausführungszeit DL1 ein. Wie vorstehend beschrieben wurde, kann der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel das parallele Programm 21a1 generieren bzw. erzeugen, in welchem die MT1 bis MT3 die späteste Ausführungszeit DL1 einhalten und die MT5 die späteste Ausführungszeit DL2 einhält. Es wird angemerkt, dass ein Warten auf Beendigung W2 in diesem parallelen Programm 21a1 auftritt.
  • Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel kann dieselben Vorteile erzielen wie diejenigen in dem Computer 10 des ersten Ausführungsbeispiels. Der automatische Parallelisierungskompilierer 1 gemäß dem vorliegenden Ausführungsbeispiel kann dieselben Vorteile erzielen wie diejenigen in dem automatischen Parallelisierungskompilierer 1 des ersten Ausführungsbeispiels. Ferner kann die fahrzeugverbaute Einrichtung 20 gemäß dem vorliegenden Ausführungsbeispiel dieselben Vorteile erzielen wie diejenigen in der fahrzeugverbauten Einrichtung 20 des ersten Ausführungsbeispiels.
  • (Fünftes Ausführungsbeispiel)
  • Wie in dem vierten Ausführungsbeispiel ist das vorliegende Ausführungsbeispiel auf ein Beispiel gerichtet, in welchem eine fahrzeugverbaute Einrichtung 20 auf eine Fahrzeugbremssystemsteuereinrichtung angewandt ist. Daher ist ein Einzelprogramm identisch mit demjenigen in dem vierten Ausführungsbeispiel. Ein automatischer Parallelisierungskompilierer 1 gemäß dem vorliegenden Ausführungsbeispiel beinhaltet eine Prozedur des Erzeugens eines parallelen Programms 21a1 wie in dem zweiten Ausführungsbeispiel. Aus diesem Grund erzeugt ein Computer 10 gemäß dem vorliegenden Ausführungsbeispiel das parallele Programm 21a1, ohne ein vorläufiges paralleles Programm zu erzeugen.
  • Spezieller führt, wie in dem zweiten Ausführungsbeispiel, der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel das Ablaufdiagramm von 10 aus. Infolge dessen erzeugt der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel das in 19 dargestellte parallele Programm 21a1. Wie in 19 dargestellt, kann der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel das parallele Programm 21a1 erzeugen, in welchem die MT1 bis MT3 die späteste Ausführungszeit DL1 einhalten, und die MT5 die späteste Ausführungszeit DL2 einhält. Es wird angemerkt, dass ein Warten auf Beendigung W3 bis W5 in diesem parallelen Programm 21a1 auftritt.
  • Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel kann dieselben Vorteile erzielen wie diejenigen in dem Computer 10 des zweiten Ausführungsbeispiels. Der automatische Parallelisierungskompilierer 1 gemäß dem vorliegenden Ausführungsbeispiel kann dieselben Vorteile erzielen wie diejenigen in dem automatischen Parallelisierungskompilierer des zweiten Ausführungsbeispiels. Gerner kann die fahrzeugverbaute Einrichtung 20 gemäß dem vorliegenden Ausführungsbeispiel dieselben Vorteile erzielen wie diejenigen in der fahrzeugverbauten Einrichtung 20 des zweiten Ausführungsbeispiels.
  • (Sechstes Ausführungsbeispiel)
  • Wie in dem vierten Ausführungsbeispiel ist das vorliegende Ausführungsbeispiel auf ein Beispiel gerichtet, in welchem eine fahrzeugverbaute Einrichtung 20 auf eine Fahrzeugbremssystemsteuereinrichtung angewandt ist. Daher ist ein Einzelprogramm identisch zu bzw. mit dem in dem vierten Ausführungsbeispiel. Ein automatischer Parallelisierungskompilierer 1 gemäß dem vorliegenden Ausführungsbeispiel beinhaltet eine Prozedur des Verringerns bzw. Reduzierens eines Wartens auf Beendigung W5, das in einem parallelen Programm 21a1 auftritt, das in dem fünften Ausführungsbeispiel erzeugt wurde, wie in dem dritten Ausführungsbeispiel. Daher erzeugt ein Computer 10 gemäß dem vorliegenden Ausführungsbeispiel ein paralleles Programm 21a1, das in der Lage ist, das Warten auf Beendigung zu verringern, das in dem parallelen Programm 21a1 auftritt, das in dem fünften Ausführungsbeispiel erzeugt wurde, wie in dem dritten Ausführungsbeispiel. Das parallele Programm 21a1 ist in der fahrzeugverbauten Einrichtung 20 gemäß dem vorliegenden Ausführungsbeispiel installiert.
  • Wie in dem dritten Ausführungsbeispiel führt der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel das Ablaufdiagramm von 12 aus. Infolge dessen ordnet der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel die MT4 und die MT5 in dem parallelen Programm 21a1 des fünften Ausführungsbeispiels wie in 20 dargestellt neu an. Aus diesem Grund kann der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel das Warten auf Beendigung W5 in dem parallelen Programm 21a1 des fünften Ausführungsbeispiels Daher erzeugt der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel das in 20 dargestellte parallele Programm 21a1.
  • Der Computer 10 gemäß dem vorliegenden Ausführungsbeispiel kann dieselben Vorteile erzielen wie diejenigen in dem Computer 10 des dritten Ausführungsbeispiels. Der automatische Parallelisierungskompilierer 1 gemäß dem vorliegenden Ausführungsbeispiel kann dieselben Vorteile erzielen wie diejenigen in dem automatischen Parallelisierungskompilierer 1 des dritten Ausführungsbeispiels. Ferner kann die fahrzeugverbaute Einrichtung 20 gemäß dem vorliegenden Ausführungsbeispiel dieselben Vorteile erzielen wie diejenigen in der fahrzeugverbauten Einrichtung 20 des dritten Ausführungsbeispiels.
  • 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
    • JP 2015-1807 A [0003]
    • US 2014372995 (A1) [0003]
    • DE 102014211047 (A1) [0003]

Claims (18)

  1. Parallelisierungsverfahren zum Erzeugen, aus einer Vielzahl von Prozessen (A1 bis A3, B2, C1, D1 bis D3, E1 bis E3, MT1 bis MT9) in einem Einzelprogramm für einen Einkern-Mikrocomputer mit einem Kern, eines parallelen Programms, das für einen Mehrkern-Mikrocomputer mit einer Vielzahl von Kernen parallelisiert ist, durch Analysieren einer Abhängigkeit der Vielzahl von Prozessen in dem Einzelprogramm und Allokieren der Vielzahl von Prozessen für verschiedene Kerne des Mehrkern-Mikrocomputers, wobei das Verfahren beinhaltet: eine Zuweisungsprozedur (S10, S11) des Zuweisens von Verwaltungsnummern zu Prioritätsprozessen in einer Ausführungsreihenfolge des Einzelprogramms und Zuweisen von Prioritätsinformation, die die Prioritätsprozesse angibt, zu den Prioritätsprozessen, wobei die Prioritätsprozesse Prozesse sind, von denen jeder ein Erfordernis für einen späteste Ausführungszeit unter der Vielzahl von Prozessen hat; und eine Anordnungsprozedur (S20 bis S25, S30 bis S33) des, für jede von Prozessgruppen, die für die jeweiligen Kerne allokiert sind, Anordnens der Prozesse, während die Abhängigkeit erfüllt wird, basierend auf den Verwaltungsnummern und der Prioritätsinformation so, dass die Prioritätsprozesse, die in einer Ausführungsreihenfolge des Einzelprogramms früher liegen, in einer Ausführungsreihenfolge des parallelen Programms früher angeordnet sind.
  2. Parallelisierungsverfahren nach Anspruch 1, bei dem: in der Zuweisungsprozedur die Verwaltungsnummern allen der Prozesse in der Ausführungsreihenfolge des Einzelprogramms zugewiesen werden; und die Anordnungsprozedur (S20 bis S25, S30 bis S33) beinhaltet: eine Prozedur (S20 bis S25) des, für jede von Prozessgruppen, die für die jeweiligen Kerne allokiert sind, Neuanordnens der Prozesse, während die Abhängigkeit erfüllt wird, so, dass die Prioritätsprozesse, die in der Ausführungsreihenfolge des Einzelprogramms früher liegen, neu in eine frühere Ausführungsreihenfolge des parallelen Programms angeordnet werden.
  3. Parallelisierungsverfahren nach Anspruch 2, bei dem: die Prozedur (S20 bis S25) der Anordnungsprozedur (S20 bis S25) beinhaltet: Vergleichen der Verwaltungsnummer, die dem Prioritätsprozess zugewiesen ist, mit der Verwaltungsnummer, die einem Prioritätspräprozess, welcher der Prozess ein Prozess vor dem Prioritätsprozess ist, zugewiesen ist, und Neuanordnen des Prioritätspräprozesses und des Prioritätsprozesses, falls: der Prioritätsprozess in der Ausführungsreihenfolge des Einzelprogramms früher liegt als der Prioritätspräprozess; und die Abhängigkeit auch dann nicht zusammenbricht, wenn der Prioritätspräprozess und der Prioritätsprozess in der Ausführungsreihenfolge durch einander ersetzt werden.
  4. Parallelisierungsverfahren nach Anspruch 1, bei dem die Prozesse außer dem Prioritätsprozess normale Prozesse sind, und die Anordnungsprozedur (S20 bis S25, S30 bis S33) beinhaltet: eine Prozedur (S30 bis S33) des, während die Prioritätsprozesse und die normalen Prozesse für die Kerne so allokiert werden, um die Abhängigkeit zu erfüllen, Anordnens der Prozesse so, dass die Prioritätsprozesse, die in der Ausführungsreihenfolge des Einzelprogramms früher liegen, in der früheren Ausführungsreihenfolge des parallelen Programms angeordnet werden.
  5. Parallelisierungsverfahren nach Anspruch 4, bei dem die Anordnungsprozedur beinhaltet: eine Prozedur des dann, wenn die Abhängigkeit durch Anordnen des Prioritätsprozesses zusammenbricht, Anordnens der normalen Prozesse so, dass die Abhängigkeit erfüllt wird.
  6. Parallelisierungsverfahren nach Anspruch 5, bei dem die Zuweisungsprozedur beinhaltet: eine Prozedur des Zuweisens der Verwaltungsnummern zu allen der Prozesse einschließlich der Prioritätsprozesse in der Ausführungsreihenfolge des Einzelprogramms, und das Verfahren ferner beinhaltet: eine Reduktionsprozedur, die durchgeführt wird, wenn ein Warten auf Beendigung in einem Kern auftritt, wobei das Warten auf Beendigung in dem einen Kern ein Warten auf eine Ausführungsbeendigung des Prozesses in einem anderen Kern ist, die Reduktionsprozedur beinhaltet: Vergleichen der Verwaltungsnummer, die einem Faktorprozess zugewiesen ist, welcher der Prozess ist, der das Warten auf Beendigung verursacht, mit der Verwaltungsnummer, die einem Faktorpräprozess zugewiesen ist, welcher der Prozess ein Prozess vor dem Faktorprozess ist; und Neuanordnen des Faktorpräprozesses und des Faktorprozesses zum Reduzieren des Wartens auf Beendigung, falls: der Faktorprozess in der Ausführungsreihenfolge des Einzelprogramms früher als der Faktorpräprozess liegt; und die Abhängigkeit auch dann nicht zusammenbricht, wenn der Faktorpräprozess und der Faktorprozess in der Ausführungsreihenfolge durch einander ersetzt werden.
  7. Parallelisierungswerkzeug mit einem Computer zum Erzeugen, aus einer Vielzahl von Prozessen (A1 bis A3, B2, C1, D1 bis D3, E1 bis E3, MT1 bis MT9) in einem Einzelprogramm für einen Einkern-Mikrocomputer mit einem Kern, eines parallelen Programms, das für einen Mehrkern-Mikrocomputer mit einer Vielzahl von Kernen parallelisiert ist, durch Analysieren einer Abhängigkeit der Vielzahl von Prozessen in dem Einzelprogramm und Allokieren der Vielzahl von Prozessen für verschiedene Kerne des Mehrkern-Mikrocomputers, wobei das Parallelisierungswerkzeug dazu konfiguriert ist, durchzuführen: einen Zuweisungsschritt (S10, S11) des Zuweisens von Verwaltungsnummern zu Prioritätsprozessen in einer Ausführungsreihenfolge des Einzelprogramms und Zuweisen von Prioritätsinformation, die die Prioritätsprozesse angibt, zu den Prioritätsprozessen, wobei die Prioritätsprozesse Prozesse sind, von denen jeder ein Erfordernis für eine späteste Ausführungszeit unter der Vielzahl von Prozessen hat; und einen Anordnungsschritt (S20 bis S25, S30 bis S33) des, für jede von Prozessgruppen, die für die jeweiligen Kerne allokiert sind, Anordnens der Prozesse, während die Abhängigkeit erfüllt wird, basierend auf den Verwaltungsnummern und der Prioritätsinformation so, dass die Prioritätsprozesse, die in einer Ausführungsreihenfolge des Einzelprogramms früher liegen, in einer Ausführungsreihenfolge des parallelen Programms früher angeordnet sind.
  8. Parallelisierungswerkzeug nach Anspruch 7, bei dem in dem Zuweisungsschritt die Verwaltungsnummern allen der Prozesse in der Ausführungsreihenfolge des Einzelprogramms zugewiesen werden; und der Anordnungsschritt (S20 bis S25, S30 bis S33) beinhaltet: einen Schritt (S20 bis S25) des, für jede von Prozessgruppen, die für die jeweiligen Kerne allokiert sind, Neuanordnens der Prozesse, während die Abhängigkeit erfüllt wird, so, dass die Prioritätsprozesse, die in der Ausführungsreihenfolge des Einzelprogramms früher liegen, neu in eine frühere Ausführungsreihenfolge des parallelen Programms angeordnet werden.
  9. Parallelisierungswerkzeug nach Anspruch 8, bei dem der Schritt (S20 bis S25) des Anordnungsschritts (S20 bis S25) beinhaltet: Vergleichen der Verwaltungsnummer, die dem Prioritätsprozess zugewiesen ist, mit der Verwaltungsnummer, die einem Prioritätspräprozess, welcher der Prozess ein Prozess vor dem Prioritätsprozess ist, zugewiesen ist, und Neuanordnen des Prioritätspräprozesses und des Prioritätsprozesses, falls: der Prioritätsprozess in der Ausführungsreihenfolge des Einzelprogramms früher liegt als der Prioritätspräprozess; und die Abhängigkeit auch dann nicht zusammenbricht, wenn der Prioritätspräprozess und der Prioritätsprozess in der Ausführungsreihenfolge durch einander ersetzt werden.
  10. Parallelisierungswerkzeug nach Anspruch 7, bei dem die Prozesse außer dem Prioritätsprozess normale Prozesse sind, und der Anordnungsschritt (S20 bis S25, S30 bis S33) beinhaltet: einen Schritt (S30 bis S33) des, während die Prioritätsprozesse und die normalen Prozesse für die Kerne so allokiert werden, um die Abhängigkeit zu erfüllen, Anordnens der Prozesse so, dass die Prioritätsprozesse, die in der Ausführungsreihenfolge des Einzelprogramms früher liegen, in der früheren Ausführungsreihenfolge des parallelen Programms angeordnet werden.
  11. Parallelisierungswerkzeug nach Anspruch 10, bei dem der Anordnungsschritt beinhaltet: einen Schritt des dann, wenn die Abhängigkeit durch Anordnen des Prioritätsprozesses zusammenbricht, Anordnens der normalen Prozesse so, dass die Abhängigkeit erfüllt wird.
  12. Parallelisierungswerkzeug nach Anspruch 11, bei dem der Zuweisungsschritt beinhaltet: einen Schritt des Zuweisens der Verwaltungsnummern zu allen der Prozesse einschließlich der Prioritätsprozesse in der Ausführungsreihenfolge des Einzelprogramms, und das Parallelisierungswerkzeug ferner dazu konfiguriert ist, durchzuführen: einen Reduktionsschritt, der durchgeführt wird, wenn ein Warten auf Beendigung in einem Kern auftritt, wobei das Warten auf Beendigung in dem einen Kern ein Warten auf eine Ausführungsbeendigung des Prozesses in einem anderen Kern ist, der Reduktionsschritt beinhaltet: Vergleichen der Verwaltungsnummer, die einem Faktorprozess zugewiesen ist, welcher der Prozess ist, der das Warten auf Beendigung verursacht, mit der Verwaltungsnummer, die einem Faktorpräprozess zugewiesen ist, welcher der Prozess ein Prozess vor dem Faktorprozess ist; und Neuanordnen des Faktorpräprozesses und des Faktorprozesses zum Reduzieren des Wartens auf Beendigung, falls: der Faktorprozess in der Ausführungsreihenfolge des Einzelprogramms früher als der Faktorpräprozess liegt; und die Abhängigkeit auch dann nicht zusammenbricht, wenn der Faktorpräprozess und der Faktorprozess in der Ausführungsreihenfolge durch einander ersetzt werden.
  13. Fahrzeugverbaute Einrichtung, beinhaltend: einen Mehrkern-Mikrocomputer mit einer Vielzahl von Kernen; und ein paralleles Programm, das für den Mehrkern-Mikrocomputer aus einer Vielzahl von Prozessen (A1 bis A3, B1, B2, C1, D1 bis D3, E1 bis E3, MT1 bis MT9) in einem Einzelprogramm für einen Einkern-Mikrocomputer mit einem Kern parallelisiert wurde, wobei in dem parallelen Programm: die Vielzahl von Prozessen für verschiedene Kerne des Mehrkern-Mikrocomputers basierend auf einer Analyse einer Abhängigkeit der Vielzahl von Prozessen in dem Einzelprogramm allokiert werden; Verwaltungsnummern zu Prioritätsprozessen in einer Ausführungsreihenfolge des Einzelprogramms zugewiesen werden und Prioritätsinformation, die die Prioritätsprozesse angeben, den Prioritätsprozessen zugewiesen wird, und die Prioritätsprozesse unter der Vielzahl von Prozessen Prozesse sind, von denen jeder ein Erfordernis für eine späteste Ausführungszeit hat; und für jede von Prozessgruppen, die für die jeweiligen Kerne allokiert sind, die Prozesse basierend auf den Verwaltungsnummern und der Prioritätsinformation so angeordnet werden, dass die Prioritätsprozesse, die in einer Ausführungsreihenfolge des Einzelprogramms früher liegen, in einer Ausführungsreihenfolge des parallelen Programms früher angeordnet sind, während die Abhängigkeit erfüllt wird, wobei jeder Kern des Mehrkern-Mikrocomputers dazu konfiguriert ist, in Übereinstimmung mit den Prozessen des parallelen Programms, die für den jeden Kern allokiert sind, zu arbeiten.
  14. Fahrzeugverbaute Einrichtung nach Anspruch 13, bei der in dem parallelen Programm: die Verwaltungsnummern allen der Prozesse in der Ausführungsreihenfolge des Einzelprogramms zugewiesen werden; und für jede der Prozessgruppen, die für die jeweiligen Kerne allokiert sind, die Prozesse, während die Abhängigkeit erfüllt wird, so neu angeordnet werden, dass die Prioritätsprozesse, die in der Ausführungsreihenfolge des Einzelprogramms früher liegen, in einer früheren Ausführungsreihenfolge des parallelen Programms neu angeordnet werden.
  15. Fahrzeugverbaute Einrichtung nach Anspruch 14, bei der in dem parallelen Programm der Prioritätspräprozess und der Prioritätsprozess neu angeordnet werden, falls als Ergebnis des Vergleichs zwischen der Verwaltungsnummer, die dem Prioritätsprozess zugewiesen ist, und der Verwaltungsnummer, die einem Prioritätspräprozess, welcher der Prozess ein Prozess vor dem Prioritätsprozess ist, zugewiesen ist, der Prioritätsprozess in der Ausführungsreihenfolge des Einzelprogramms früher liegt als der Prioritätspräprozess; und die Abhängigkeit auch dann nicht zusammenbricht, wenn der Prioritätspräprozess und der Prioritätsprozess in der Verarbeitungsreihenfolge durch einander ersetzt werden.
  16. Fahrzeugverbaute Einrichtung nach Anspruch 13, bei der in dem parallelen Programm: die Prozesse außer den Prioritätsprozessen normale Prozesse sind; und die Prioritätsprozesse und die normalen Prozesse für die Kerne allokiert sind, um die Abhängigkeit zu erfüllen, und so angeordnet sind, dass die Prioritätsprozesse, die in der Ausführungsreihenfolge des Einzelprogramms früher liegen, in der früheren Ausführungsreihenfolge des parallelen Programms angeordnet sind.
  17. Fahrzeugverbaute Einrichtung nach Anspruch 16, bei der in dem parallelen Programm: dann, wenn die Abhängigkeit durch Anordnen der Prioritätsprozesse zusammenbricht, die normalen Prozesse so angeordnet sind, dass die Abhängigkeit erfüllt wird.
  18. Fahrzeugverbaute Einrichtung nach Anspruch 17, bei der in dem parallelen Programm: die Verwaltungsnummern allen der Prozesse einschließlich des Prioritätsprozesses in der Ausführungsreihenfolge des Einzelprogramms zugewiesen sind; und dann, wenn in einem Kern ein Warten auf Beendigung auftritt zum Warten auf eine Ausführungsbeendigung in einem anderen Kern, ein Faktorprozess, welches der Prozess ist, der das Warten auf Beendigung verursacht, und ein Faktorpräprozess, welches der Prozess ein Prozess vor dem Faktorprozess ist, neu angeordnet werden, um das Warten auf Beendigung zu reduzieren, wenn als Ergebnis eines Vergleichs zwischen der Verwaltungsnummer, die dem Faktorprozess zugewiesen ist, und der Verwaltungsnummer, die dem Faktorprozess zugewiesen ist, der Faktorprozess in der Ausführungsreihenfolge des Einzelprogramms früher liegt als der Faktorpräprozess; und die Abhängigkeit auch dann nicht zusammenbricht, wenn der Faktorpräprozess und der Faktorprozess in der Ausführungsreihenfolge durch einander ersetzt werden.
DE102016219449.6A 2015-10-09 2016-10-07 Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeugverbaute Einrichtung Pending DE102016219449A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015-201423 2015-10-09
JP2015201423A JP6428557B2 (ja) 2015-10-09 2015-10-09 並列化方法、並列化ツール

Publications (1)

Publication Number Publication Date
DE102016219449A1 true DE102016219449A1 (de) 2017-04-13

Family

ID=58405388

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016219449.6A Pending DE102016219449A1 (de) 2015-10-09 2016-10-07 Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeugverbaute Einrichtung

Country Status (2)

Country Link
JP (1) JP6428557B2 (de)
DE (1) DE102016219449A1 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021012601A (ja) * 2019-07-08 2021-02-04 株式会社デンソー 並列化方法、半導体制御装置、車載制御装置
CN115220990B (zh) * 2021-12-09 2024-04-19 广州汽车集团股份有限公司 一种多核系统程序流监测方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014211047A1 (de) 2013-06-14 2014-12-18 Denso Corporation Parallelisierungskompilierverfahren, Parallelisierungskompilierer, Parallelisierungskompiliervorrichtung und Bordvorrichtung

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3039953B2 (ja) * 1989-04-28 2000-05-08 株式会社日立製作所 並列化装置
JP5614699B2 (ja) * 2009-04-07 2014-10-29 日本電気株式会社 マルチコアシステムのためのタスク割り当て関連方法、その装置、そのシステム、及びそのプログラム
WO2011104823A1 (ja) * 2010-02-23 2011-09-01 富士通株式会社 マルチコアプロセッサシステム、スレッド制御方法、およびスレッド制御プログラム
JP2014225137A (ja) * 2013-05-16 2014-12-04 株式会社デンソー タスクスケジューラ,マイクロプロセッサ及びタスクスケジューリング方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014211047A1 (de) 2013-06-14 2014-12-18 Denso Corporation Parallelisierungskompilierverfahren, Parallelisierungskompilierer, Parallelisierungskompiliervorrichtung und Bordvorrichtung
US20140372995A1 (en) 2013-06-14 2014-12-18 Denso Corporation Parallelizing compile method, parallelizing compiler, parallelizing compile apparatus, and onboard apparatus
JP2015001807A (ja) 2013-06-14 2015-01-05 株式会社デンソー 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置

Also Published As

Publication number Publication date
JP2017073083A (ja) 2017-04-13
JP6428557B2 (ja) 2018-11-28

Similar Documents

Publication Publication Date Title
DE102010043569B4 (de) Verfahren und Vorrichtung zum Planen von Aufgaben zur Steuerung von Hardwareeinrichtungen
DE112019005584T5 (de) Arithmetiksteuervorrichtung
DE102018104188A1 (de) Kombiniertes Rendering- und Berechnungs-Ressourcenzuweisungsverwaltungssystem
DE102016219403A1 (de) Parallelisierungsverarbeitung, parallelisierungswerkzeug und fahrzeuggebundene vorrichtung
DE102017210126A1 (de) Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeuginterne Vorrichtung
DE102018114322A1 (de) Architektur und Dienste zur Unterstützung der rekonfigurierbaren Synchronisation in einem Multiprozessorsystem
DE102012209789B4 (de) Fahrzeuggebundene elektrische steuervorrichtung
DE112010004037T5 (de) Simulationsverfahren, -system und -programm
DE102020214951A1 (de) Verfahren zum dynamischen Zuweisen von Speicherbandbreite
DE102016219449A1 (de) Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeugverbaute Einrichtung
DE102016204970A1 (de) Parallelisierungskompilierverfahren, Parallelisierungskomplierer und Fahrzeugvorrichtung
DE102016221526A1 (de) Vorrichtung und Verfahren zum Bearbeiten einer Mehrzahl Aufgaben
DE102006046717A1 (de) Dynamisch migrierende Kanäle
DE102015100566A1 (de) Verfahren und leichter Mechanismus für gemischte kritische Anwendungen
WO2018073230A1 (de) Vorrichtungen, verfahren und computerprogramme für ein fahrzeug und eine zentralstelle
DE102021131057A1 (de) System und Verfahren zur Ausführung einer Aufgabe eines Betriebssystems für ein Fahrzeug
DE102018123563B4 (de) Verfahren zur Zwischenkernkommunikation in einem Mehrkernprozessor
EP3705993B1 (de) System und verfahren zum auffinden und identifizieren von rechenknoten in einem netzwerk
DE102020205720A1 (de) Computerimplementiertes Verfahren und Vorrichtung zur Planung von Ressourcen
DE102016219721A1 (de) Parallelisierungsverfahren, parallelisierungswerkzeug und fahrzeugverbaute einrichtung
DE102015218589A1 (de) Verfahren und Vorrichtung zum Betreiben eines Many-Core-System
DE102015203695A1 (de) Elektronische steuereinheit
DE102014016884A1 (de) Datenflußsteuerung und Loadbalancing in Fahrzeugsteuergeräten mit Mehrkernprozessoren
DE102017211564A1 (de) Elektronische steuereinheit
DE102022209700A1 (de) Gerät mit ausschließlicher Zuordnung von Ressourcen an neuronale Netze

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence
R016 Response to examination communication