DE102016220340A1 - Parallelisierungsverfahren, parallelisierungswerkzeug und fahrzeugverbaute einrichtung - Google Patents

Parallelisierungsverfahren, parallelisierungswerkzeug und fahrzeugverbaute einrichtung Download PDF

Info

Publication number
DE102016220340A1
DE102016220340A1 DE102016220340.1A DE102016220340A DE102016220340A1 DE 102016220340 A1 DE102016220340 A1 DE 102016220340A1 DE 102016220340 A DE102016220340 A DE 102016220340A DE 102016220340 A1 DE102016220340 A1 DE 102016220340A1
Authority
DE
Germany
Prior art keywords
program
processes
processing patterns
core
single program
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.)
Ceased
Application number
DE102016220340.1A
Other languages
English (en)
Inventor
Kenichi Mineda
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 DE102016220340A1 publication Critical patent/DE102016220340A1/de
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/451Code distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

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)

Abstract

Ein Parallelisierungsverfahren zum Erzeugen eines parallelen Programms (21a1) für einen Mehrkern-Mikrocomputer (21) aus mehreren Prozessen in einem Einzelprogramm für einen Einkern-Mikrocomputer wird bereitgestellt. In dem Einzelprogramm gibt es mehrere Arten der Prozesse, und eine Kombination der Arten von Prozessen, die auszuführen ist, variiert in Übereinstimmung mit einem Zustand. Das Parallelisierungsverfahren beinhaltet ein Extrahieren von Verarbeitungsmustern, die jeweils die Kombinationen von Arten in den Zuständen repräsentieren, aus dem Einzelprogramm und ein Allokieren der Prozesse zu den Kernen für jedes der extrahierten Verarbeitungsmuster, um das parallele Programm zu erzeugen.

Description

  • Die Erfindung betrifft ein Parallelisierungsverfahren und ein Parallelisierungswerkzeug zum Erzeugen eines parallelen Programms für einen Mehrkern-Mikrocomputer aus einem Programm für einen Einkern-Mikrocomputer, und eine fahrzeugverbaute Einrichtung, die das durch das Parallelisierungsverfahren erzeugte parallele Programm implementiert.
  • Bis jetzt gibt es, als ein Beispiel des Parallelisierungsverfahrens zum Erzeugen des parallelen Programms für dem Mehrkern-Mikrocomputer aus dem Programm für den Einzelkern-Mikrocomputer, ein Parallelisierungskompilierungs- verfahren, das in einer Patentliteratur 1 offenbart ist.
  • In dem Parallelisierungskompilierungsverfahren werden, nachdem ein sequenzielles Programm für ein eingebettetes System, das von einem Einzelprozessor auszuführen ist, in mehrere Makroaufgaben (nachstehend als ”MTs” bezeichnet) unterteilt worden ist, die MTs mit einer Steuerungsabhängigkeit zu einer MT zusammengefasst. Danach werden in dem Parallelisierungskompilierungs- verfahren parallelisierbare MTs auf der Grundlage einer Datenabhängigkeit extrahiert, und wird eine statische Ablaufplanung durchgeführt, um ein paralleles Programm zu erzeugen.
    Patentliteratur 1: JP 2015-1807 A entsprechend US 2014 372 995 (A1) and DE 10 2014 211 047 (A1)
  • Das Folgende beschreibt verwandte Technik, welche nicht notwendigerweise Stand der Technik bildet. In manchen Einzelprogrammen sind mehrere Arten von MTs bereitgestellt, und variiert eine Kombination von MT-Arten, die auszuführen sind, in Übereinstimmung mit einer Bedingung bzw. einem Zustand. Ein Beispiel eines solchen Einzelprogramms ist wie folgt. Eine MT einer ersten Art und eine MT einer dritten Art werden unter einer Bedingung bzw. unter einem Zustand ausgeführt, und die MT der ersten Art und eine MT einer zweiten Art werden unter einer anderen Bedingung bzw. einem anderen Zustand ausgeführt. Spezieller beinhaltet das Einzelprogramm mehrere Verarbeitungsmuster, welche sich in der Kombination von MT-Arten unterscheiden, und die MTs der Arten, die in dem Verarbeitungsmuster entsprechend der Bedingung enthalten sind, werden ausgeführt. In diesem Einzelprogramm sind die MTs aller Arten nicht in jedem Verarbeitungsmuster enthalten.
  • Wenn es in dem Einzelprogramm eine bedingte Zweigverarbeitung gibt, kann das in der Patentliteratur 1 offenbarte Verfahren nicht erkennen, wie eine Verzweigung während einer tatsächlichen Programmausführung eintreten wird. Daher kann in dem parallelen Programm, das in der Patentliteratur 1 erzeugt wurde, eine MT, die nicht tatsächlich unter einer bestimmten Bedingung ausgeführt wird, wenn die Kerne des Mehrkern-Mikrocomputers die MTs ausführen, zu bzw. für den Kern allokiert werden. Aus diesem Grund führt der Kern die allokierte MT in manchen Fällen nicht aus, und erzeugt das in der Patentliteratur 1 offenbarte Verfahren ein paralleles Programm derart, dass die Effizienz bzw. der Wirkungsgrad des Mehrkern-Mikrocomputers reduziert wird.
  • In Anbetracht der vorangehenden Schwierigkeiten liegt der Erfindung als eine Aufgabe zugrunde, ein Parallelisierungsverfahren, ein Parallelisierungswerkzeug, das in der Lage ist, ein paralleles Programm zu erzeugen, das eine Verringerung in der Mehrkern-Mikrocomputer-Effizienz zu unterdrücken, und eine fahrzeugverbaute Einrichtung, die in der Lage ist, die Verringerung in der Mehrkern-Mikrocomputer-Effizienz zu unterdrücken, bereitzustellen.
  • In einem ersten Aspekt der Erfindung wird ein Parallelisierungsverfahren bereitgestellt zum Erzeugen eines parallelen Programms, das für einen Mehrkern-Mikrocomputer mit einer Vielzahl von Kernen parallelisiert ist, aus einer Vielzahl von Prozessen in einem Einzelprogramm für einen Einkern-Mikrocomputer mit einem Kern. In dem Einzelprogramm gibt es mehrere Arten der Prozesse, und eine Kombination der Arten von Prozessen, die auszuführen ist, variiert in Übereinstimmung mit einem Zustand und eine Vielzahl der Zustände sind bereitgestellt. Das Parallelisierungsverfahren beinhaltet: eine Extraktionsprozedur des Extrahierens von Verarbeitungsmustern aus dem Einzelprogramm, wobei die Verarbeitungsmuster jeweils die Kombinationen von Arten in der Vielzahl von Zuständen sind; und eine Erzeugungsprozedur des, für jedes der extrahierten Verarbeitungsmuster, Allokierens der Prozesse für die Kerne, um das parallele Programm zu erzeugen.
  • Wie vorstehend beschrieben wurde, erzeugt das Parallelisierungsverfahren das parallele Programm aus dem Einzelprogramm, in welchem es mehrere Arten der Prozesse gibt und in welchem eine Kombination der Arten von Prozessen, die auszuführen sind, in Übereinstimmung mit einer Bedingung bzw. einem Zustand bzw. bedingungsgemäß bzw. zustandsgemäß variiert. Aus dem Einzelprogramm extrahiert das Parallelisierungsverfahren Verarbeitungsmuster, die die Kombinationen der Arten unter den jeweils mehreren Bedingungen bzw. Zuständen repräsentieren. Infolge dessen werden die unter jeder Bedingung bzw. jedem Zustand auszuführenden Prozesse erkannt. Ferner allokiert das Parallelisierungsverfahren für jedes der extrahierten Verarbeitungsmuster die Prozesse zu den Kernen, um das parallele Programm zu erzeugen. Aus diesem Grund werden Prozesse, die nicht tatsächlich unter einer bestimmten Bedingung bzw. einem bestimmten Zustand während der Ausführung des parallelen Programms durch den Mehrkern-Mikrocomputer daran gehindert, den Kernen allokiert bzw. zugeteilt zu werden. Daher kann das Parallelisierungsverfahren das parallele Programm erzeugen, das eine Verringerung der Effizienz des Mehrkern-Mikrocomputers unterdrücken kann.
  • In einem zweiten Aspekt der Erfindung wird ein Parallelisierungswerkzeug mit einem Computer zum Erzeugen eines parallelen Programms, das für einen Mehrkern-Mikrocomputer mit einer Vielzahl von Kernen parallelisiert ist, aus einer Vielzahl von Prozessen in einem Einzelprogramm für einen Einkern-Mikrocomputer mit einem Kern, bereitgestellt. In dem Einzelprogramm gibt es mehrere Arten der Prozesse, und eine Kombination der Arten von Prozessen, die auszuführen ist, variiert in Übereinstimmung mit einem Zustand und eine Vielzahl der Zustände ist bereitgestellt. Das Parallelisierungswerkzeug beinhaltet: eine Extraktionseinheit, die Verarbeitungsmuster aus dem Einzelprogramm extrahiert, wobei die Verarbeitungsmuster jeweils die Kombinationen von Arten in der Vielzahl von Zuständen sind; und eine Erzeugungseinheit, die für jedes der extrahierten Verarbeitungsmuster die Prozesse für die Kerne allokiert, um das parallele Programm zu erzeugen.
  • Dieses Parallelisierungswerkzeug kann ebenfalls das parallele Programm erzeugen, das in der Lage ist, die Verringerung der Effizienz des Mehrkern-Mikrocomputers zu unterdrücken.
  • In einem dritten Aspekt der Erfindung wird eine fahrzeugverbaute Einrichtung bereitgestellt, beinhaltend: 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 ist. In dem Einzelprogramm gibt es mehrere Arten der Prozesse gibt und eine Kombination der Arten von Prozessen, die auszuführen ist, variiert in Übereinstimmung mit einem Zustand und eine Vielzahl der Zustände ist bereitgestellt. Das parallele Programm wird derart erzeugt, dass Verarbeitungsmuster, welche jeweils die Kombinationen der Arten in den Zuständen sind, aus dem Einzelprogramm extrahiert werden, und die Prozesse für die Kerne für jedes der extrahierten Verarbeitungsmuster allokiert werden. Die Kerne führen die für sie allokierten Prozesse aus.
  • Wie vorstehend beschrieben wurde, wird das parallele Programm erzeugt, um eine Verringerung in dem Wirkungsgrad des Mehrkern-Mikrocomputers zu unterdrücken, und die mehreren Kerne führen die Prozesse aus, die für die jeweiligen Kerne allokiert wurden. Daher kann die Verringerung in der Effizienz bzw. dem Wirkungsgrad des Mehrkern-Mikrocomputers unterdrückt werden.
  • Die vorstehend beschriebene Aufgabe sowie weitere Ziele, Merkmale und Vorteile der Erfindung sind der folgenden detaillierten Beschreibung unter Bezugnahme auf die beigefügten Zeichnungen besser entnehmbar. Es zeigen:
  • 1 ein Blockdiagramm, das eine schematische Konfiguration eines Computers 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 Quellcode darstellt, der eine schematische Konfiguration eines Einzelprogramms gemäß dem Ausführungsbeispiel zeigt.
  • 4 ein Diagramm, das Verarbeitungsmuster gemäß dem Ausführungsbeispiel darstellt.
  • 5 ein Blockdiagramm, das eine Funktion des Computers gemäß dem Ausführungsbeispiel darstellt.
  • 6 ein Diagramm, das ein Quellcodediagramm darstellt, das ein paralleles Programm für jedes der Verarbeitungsmuster gemäß dem Ausführungsbeispiel zeigt.
  • 7 ein Diagramm, das ein paralleles Programm eines ersten Verarbeitungsmusters gemäß dem Ausführungsbeispiel darstellt.
  • 8 ein Diagramm, das einen Quellcode des parallelen Programms gemäß dem Ausführungsbeispiel darstellt.
  • Nachstehend wird ein Ausführungsbeispiel unter Bezugnahme auf die Zeichnungen beschrieben. Das vorliegende Ausführungsbeispiel ist auf ein Beispiel des Erzeugens eines parallelen Programms 21a1, das für einen Mehrkern-Mikrocomputer 21 mit einem ersten Kern 21c und einem zweiten Kern 21d parallelisiert ist, aus mehreren Prozessen in einem Einzelprogramm für einen Einkern-Mikrocomputer mit einem Kern gerichtet. Die Prozesse können auch als ”Verarbeitungsblöcke” oder ”Makroaufgaben” bezeichnet werden. Der Mehrkern-Mikrocomputer kann auch als ”Mehrkern-Prozessor” bezeichnet werden.
  • Ein Hintergrund zum Erzeugen des parallelen Programms 21a1 aus dem Einzelprogramm besteht darin, dass sich der Mehrkern-Prozessor 21 aus den Gesichtspunkten einer Zunahme einer Wärmeerzeugungsmenge, einem Anstieg eines Leistungsverbrauchs des Mikrocomputers, eines Begrenzungsproblems einer Taktfrequenz und dergleichen etabliert. Der Mehrkern-Prozessor 21 muss sogar auf ein Gebiet der fahrzeugverbauten Einrichtungen angewandt werden. Das parallele Programm 21a1 muss den Prozess mit hoher Verlässlichkeit und mit hoher Geschwindigkeit ausführbar machen, während eine Entwicklungszeitdauer und Entwicklungskosten von Software unterdrückt werden.
  • Bei dem Erzeugen des parallelen Programms 21a1 wird eine Abhängigkeit der mehreren Prozesse in dem Einzelprogrammanalysiert und wird eine Ablaufplanung durchgeführt, um die mehreren Prozesse den verschiedenen Kernen 21c und 21d des Mehrkern-Prozessors 21 zuzuteilen. Diesbezüglich sei auf die Patentliteratur 1 verwiesen, welche hierin durch Bezugnahme einbezogen wird.
  • In dem vorliegenden Ausführungsbeispiel wird ein in 3 dargestellter Quellcode als ein Beispiel des Einzelprogramms verwendet. Das Einzelprogramm beinhaltet mehrere Arten von Prozessen. Eine Kombination von Arten von auszuführenden Prozessen variiert in Übereinstimmung einer Bedingung bzw. einem Zustand. Mehrere Bedingungen bzw. Zustände sind bereitgestellt. Genauer beinhaltet das Einzelprogramm die Prozesse mehrerer Ausführungszyklen als die Prozesse mehrerer Arten. Spezieller beinhaltet das Einzelprogramm einen Prozess mit einem ersten Ausführungszyklus, welcher ein kürzester Zyklus ist, und beinhaltet weiter Prozesse mit Ausführungszyklen, von welchen jeder ein ganzzahliges Vielfaches des ersten Ausführungszyklus ist. In anderen Worten beinhaltet das Einzelprogramm eine Konfiguration des Durchführens einer Frequenzteilung auf Prozesse innerhalb einer Aufgabe. Durch die Frequenzteilung wird der Prozess, der auch dann akzeptabel ist, wenn sein Ausführungszyklus lang ist, in einer ausgedünnten Art und Weise, wie beispielsweise einmalig alle zwei Mal oder zweimalig alle drei Mal, ausgeführt. Das vorliegende Ausführungsbeispiel verwendet ein Beispiel, in welchem der erste Ausführungszyklus 1 ms ist, und die Ausführungszyklen der ganzzahligen Vielfachen 2 ms, 4 ms und 8 ms sind.
  • Darüber hinaus ist das Einzelprogramm ein Programm für den Einkern-Mikrocomputer, konfiguriert zum Beschaffen von Zählwerten. Die Kombination von Arten von auszuführenden Prozessen variiert in Übereinstimmung mit dem Zählwert. Die Zählwerte bilden die mehreren Bedingungen bzw. Zustände. Spezieller ist das Einzelprogramm dazu konfiguriert, zu der Kombination verzweigt zu werden, die dem Zählwert entspricht. In dem Einzelprogramm sind Verzweigungsrichtungen der Frequenzteilung regelmäßig, und variiert der Verarbeitungsumfang in Übereinstimmung mit der Verzweigungsrichtung.
  • Wie in 4 dargestellt, verwendet das vorliegende Ausführungsbeispiel das Einzelprogramm, in welchem Ausführungszyklen in Zählwerten 0 bis 7 unterschiedlich sind. Das Einzelprogramm beinhaltet ein erstes Verarbeitungsmuster Pt0 bis ein achtes Verarbeitungsmuster Pt7 als die mehreren Kombinationen.
  • Bei dem Zählwert 0 werden der Prozess mit dem 1 ms-Zyklus und der Prozess mit dem 4 ms-Zyklus ausgeführt. Daher beinhaltet das erste Verarbeitungsmuster Pt0 den Prozess des Zyklus von 1 ms und den Prozess des Zyklus von 4 ms, in bzw. bei dem Zählwert 0 auszuführen sind. Bei dem Zählwert 1 werden der Prozess des Zyklus von 1 ms und der Prozess des Zyklus von 2 ms ausgeführt. Daher beinhaltet das zweite Verarbeitungsmuster Pt1 den Prozess des 1 ms-Zyklus und den Prozess des 2 ms-Zyklus, die in bzw. bei dem Zählwert 1 auszuführen sind.
  • Bei dem Zählwert 2 werden der Prozess des 1 ms-Zyklus und der Prozess des 8 ms-Zyklus ausgeführt. Daher beinhaltet das dritte Verarbeitungsmuster Pt2 den Prozess des 1 ms-Zyklus und den Prozess des 8 ms-Zyklus, die bei dem Zählwert 2 auszuführen sind. Bei dem Zählwert 3 werden der Prozess des 1 ms-Zyklus und der Prozess des 2 ms-Zyklus ausgeführt. Daher beinhaltet das vierte Verarbeitungsmuster Pt3 den Prozess des 1 ms-Zyklus und den Prozess des 2 ms-Zyklus, die bei dem Zählwert 3 auszuführen sind.
  • Bei dem Zählwert 4 werden der Prozess des 1 ms-Zyklus und der Prozess des 4 ms-Zyklus ausgeführt. Daher beinhaltet das fünfte Verarbeitungsmuster Pt4 den Prozess des 1 ms-Zyklus und den Prozess des 4 ms-Zyklus, die bei dem Zählwert 4 auszuführen sind. Bei dem Zählwert 5 werden der Prozess des 1 ms-Zyklus und der Prozess des 2 ms-Zyklus ausgeführt. Daher beinhaltet das sechste Verarbeitungsmuster Pt5 den Prozess des 1 ms-Zyklus und den Prozess des 2 ms-Zyklus, die bei dem Zählwert 5 auszuführen sind.
  • Bei dem Zählwert 6 wird der Prozess des 1 ms-Zyklus ausgeführt. Daher beinhaltet das siebte Verarbeitungsmuster Pt6 den Prozess des 1 ms-Zyklus, der bei dem Zählwert 4 auszuführen ist. Bei dem Zählwert 7 werden der Prozess des 1 ms-Zyklus und der Prozess des 2 ms-Zyklus ausgeführt. Daher beinhaltet das siebte Verarbeitungsmuster Pt7 den Prozess des 1 ms-Zyklus und den Prozess des 2 ms-Zyklus, die bei dem Zählwert 7 auszuführen sind.
  • Die mehreren Prozesse beinhalten Prozesse mit einer Abhängigkeit voneinander. Die Abhängigkeit repräsentiert zum Beispiel eine Beziehung, in welcher ein Prozess auf Daten Bezug nimmt, die von einem anderen Prozess aktualisiert wurden, der früher als der eine Prozess ausgeführt worden ist. Spezieller beinhalten die mehreren Prozesse einen vorangehenden Prozess bzw. Vorprozess, der in der Ausführungsreihenfolge in dem Einzelprogramm vorangehend auszuführen ist, und einen folgenden Prozess bzw. Folgeprozess, der auszuführen ist, nachdem der vorangehende Prozess ausgeführt worden ist. Der folgende Prozess ist ein Prozess, der durch den vorangehenden Prozess beeinflusst wird, und verwendet Daten, deren Inhalte in dem vorangehenden Prozess wahrscheinlich zu aktualisieren sind.
  • Eine Konfiguration des Computers 10 wird nachstehend unter Bezugnahme auf 1 beschrieben. Der Computer 10 entspricht einem Parallelisierungswerkzeug, das ein Parallelisierungsverfahren ausführt und das parallele Programm 21a1 erzeugt. Der Computer 10 beinhaltet 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. Ein automatischer Parallelisierungskompilierer 1 ist in dem Speichermedium 18 gespeichert. Der Computer 10 hat verschiedene Funktionen, welche später unter Bezugnahme auf 5 beschrieben werden.
  • HDD ist eine Abkürzung für ein Festplattenlaufwerk. CPU ist eine Abkürzung für eine zentrale Verarbeitungseinheit. ROM ist eine Abkürzung für einen Festspeicher bzw. Nurlesespeicher. RAM ist eine Abkürzung für einen Speicher mit wahlfreiem Zugriff bzw. Direktzugriffsspeicher. Für die Konfigurationen des Computers 10 und des Speichermediums 18 sei auf einen Personal Computer 100 und ein Speichermedium 180 verwiesen, die in der Patentliteratur 1 offenbart sind.
  • Der automatische Parallelisierungskompilierer 1 beinhaltet Prozeduren zum Erzeugen des parallelen Programms 21a1. Daher entspricht der automatische Parallelisierungskompilierer 1 einem Parallelisierungsverfahren. In anderen Worten ist der automatische Parallelisierungskompilierer 1 eine Extraktionsprozedur und eine Koppelprozedur zusätzlich zu den Prozeduren, die in der Patentliteratur 1 offenbart sind. Ferner unterscheidet sich der automatische Parallelisierungskompilierer 1 von dem in der Patentliteratur 1 offenbarten darin, dass das parallele Programm 21a1 für jedes der Verarbeitungsmuster Pt0 bis Pt7 erzeugt wird. Die Extraktionsprozedur und die Koppelprozedur werden später beschrieben.
  • Als Nächstes wird eine Konfiguration der fahrzeugverbauten Einrichtung 20 beschrieben. Wie in 2 dargestellt, beinhaltet die fahrzeugverbaute Einrichtung 20 den Mehrkern-Prozessor 21, eine Kommunikationseinheit 22, eine Sensoreinheit 23 und einen Eingabe/Ausgabe-Port 24. Der Mehrkern-Prozessor 21 beinhaltet ein ROM 21a, ein RAM 21b, den ersten Kern 21c und den zweiten Kern 21d. Die fahrzeugverbaute Einrichtung 20 kann auf eine Motorsteuereinrichtung oder eine Hybridsteuereinrichtung, die in einem Fahrzeug verbaut sind, angewandt sein. In diesem Beispiel ist die fahrzeugverbaute Einrichtung 20 auf die Motorsteuereinrichtung angewandt. In diesem Fall ist die fahrzeugverbaute Einrichtung 20 auf die Motorsteuereinrichtung angewandt. In diesem Fall kann das parallele Programm 21a1 als ein automobiles Steuerprogramm wie beispielsweise eine Motorsteuerung betrachtet werden. Das parallele Programm 21a1 ist jedoch nicht auf das Vorstehende beschränkt. Die Kerne können auch als ”Prozessorelemente PE” bezeichnet werden. Daher gibt PE0 in dem parallelen Programm 21a1, welches später beschrieben wird, den ersten Kern 21c an. Andererseits gibt PE1 den zweiten Kern 21d an.
  • Was das RAM 21b, die Kommunikationseinheit 22, die Sensoreinheit 23 und den Eingabe/Ausgabe-Port 24 anbelangt, sei auf ein RAM 420, eine Kommunikationseinheit 430, eine Sensoreinheit 450 und eine Eingabe/Ausgabe-Port 460, die in der Patentliteratur 1 offenbart sind, verwiesen.
  • Das parallele Programm 21a1, das mithilfe des automatischen Parallelisierungskompilierers 1 erzeugt wurde, wird in dem ROM 21a gespeichert. Der erste Kern 21c und der zweite Kern 21d führen das parallele Programm 21a1 aus, um eine Motorsteuerung durchzuführen. Der erste Kern 21c und der zweite Kern 21d sind dazu konfiguriert, den Zählwert eines nicht gezeigten Zählers zu beschaffen.
  • Als Nächstes wird der Verarbeitungsbetriebsablauf dann, wenn der Computer 10 den automatischen Parallelisierungskompilierer 1 ausführt, unter Bezugnahme auf 5 und 6 beschrieben. Der Computer 10 führt den automatischen Parallelisierungskompilierer 1 aus, um das parallele Programm 21a1 zu erzeugen.
  • 5 ist eine Zeichnung, die die Verarbeitung des Computers 10 durch funktionelle Blöcke darstellt. Der Computer 10 beinhaltet eine Musterextraktionseinheit 10a, eine Definitionseinheit 10b, eine Analyseeinheit 10c, eine Kernallokierungseinheit 10d, eine Planungseinheit 10e und eine Koppeleinheit 10f.
  • Die Musterextraktionseinheit 10a extrahiert aus dem Einzelprogramm die Verarbeitungsmuster Pt0 bis Pt7m, welche jeweils die Kombinationen der Arten in den mehreren Bedingungen bzw. Zuständen sind (Extraktionseinheit). Die Musterextraktionseinheit 10a extrahiert aus dem Einzelprogramm die Verarbeitungsmuster Pt0 bis Pt7, welche jeweils die Kombinationen der Ausführungszyklen in den jeweils mehreren Bedingungen bzw. Zuständen repräsentieren. Darüber hinaus extrahiert die Musterextraktionseinheit 10a aus dem Einzelprogramm die Verarbeitungsmuster Pt0 bis Pt7 in bzw. bei den Zählwerten, die jeweils die mehreren Bedingungen bzw. Zustände bilden.
  • Kurz gesagt extrahiert die Musterextraktionseinheit 10a die vorstehend beschriebenen mehreren Verarbeitungsmuster Pt0 bis Pt7 aus dem Einzelprogramm. Der Computer 10 führt den automatischen Parallelisierungskompilierer 1 aus, um die Verarbeitungsmuster Pt0 bis Pt7 aus dem Einzelprogramm in dieser Weise zu extrahieren. Daher beinhaltet der automatische Parallelisierungskompilierer 1 eine Extraktionsprozedur des Extrahierens der Verarbeitungsmuster, welche jeweils die Kombinationen der Arten in den mehreren Bedingungen bzw. Zuständen sind, aus dem Einzelprogramm. Aus diesem Grund entspricht die Musterextraktionseinheit 10a der Extraktionsprozedur.
  • Die Definitionseinheit 10b definiert Bereiche, in welchen die Parallelisierung unter Verwendung des Einzelprogramms und der extrahierten Verarbeitungsmuster Pt0 bis pt7 durchgeführt wird. Spezieller definiert die Definitionseinheit 10b die Bereiche, die jeweils den Verarbeitungsmustern Pt0 bis Pt7 entsprechen, in Quellcodes des Einzelprogramms als Bereiche zum Durchführen einer Analyse zur Parallelisierung. Zum Beispiel definiert die Definitionseinheit 10b acht Bereiche zum Durchführen der Analyse für die Parallelisierung. Es kann gesagt werden, dass die Definitionseinheit 10b Quellcodes entsprechend den mehreren Verarbeitungsmustern Pt0 bis Pt7 aus den Quellcodes des Einzelprogramms auswählt. Zum Beispiel werden das Einzelprogramm und Information über die mehreren Verarbeitungsmuster Pt0 bis Pt7 der Definitionseinheit 10b zugeführt.
  • Die Analyseeinheit 10c analysiert die Abhängigkeit des Einzelprogramms und extrahiert die parallelisierbaren Prozesse (Erzeugungseinheit) in solchen Weisen, dass die Analyse und die Extraktion für jeden der Bereiche separat durchgeführt wird. In anderen Worten analysiert die Analyseeinheit 10c die Abhängigkeit des Einzelprogramms und extrahiert die parallelisierbaren Prozesse für jedes der extrahierten Verarbeitungsmuster Pt0 bis Pt7. Zum Beispiel extrahiert die Analyseeinheit 10c die parallelisierbaren Prozesse in dem Bereich entsprechend dem ersten Verarbeitungsmuster Pt0, und extrahiert die Analyseeinheit 10c die parallelisierbaren Prozesse in jedem der Bereiche entsprechend dem zweiten Verarbeitungsmuster Pt1 bis achten Verarbeitungsmuster Pt7. Es kann gesagt werden, dass die Extraktion der parallelisierbaren Prozesse, durchgeführt in derselben Weise wie der in der Patentliteratur 1, separat für jeden der Bereiche durchgeführt wird.
  • Die Analyseeinheit 10c entspricht einer Datenabhängigkeitsanalyseeinheit. Die Analyseeinheit 10c kann eine Verarbeitungszeit jedes Prozesses, d. h. eine Zeit, die zur Ausführung jedes Prozesses erforderlich ist, separat für jeden der Bereiche analysieren.
  • Die Kernallokierungseinheit 10d allokiert die Prozesse zu den Kernen 21c und 21d in solchen Weisen, dass die Allokation bzw. Zuteilung separat für jeden der Bereiche durchgeführt wird (Erzeugungseinheit). In anderen Worten teilt die Kernallokierungseinheit bzw. Kernzuteilungseinheit 10d die Prozesse für jedes der extrahierten Verarbeitungsmuster Pt0 bis Pt7 den Kernen 21c und 21d zu. Es kann gesagt werden, dass die Allokation der Prozesse, die in derselben Weise durchgeführt wird wie der in der Patentliteratur 1, separat für jeden der Bereiche durchgeführt wird.
  • Die Planungseinheit 10e plant die Prozesse, um dadurch die Prozesse in solchen Weisen neu anzuordnen, dass die Planung für jeden der Bereiche separat durchgeführt wird (Erzeugungseinheit). In anderen Worten plant die Planungseinheit 10e die Prozesse für jedes der extrahierten Verarbeitungsmuster Pt0 bis Pt7. Zum Beispiel ordnet die Planungseinheit die mehreren Prozesse in einer Ausführungsreihenfolge des Einzelprogramms an, für jeden der Bereiche. Es kann gesagt werden, dass die Planung, die in derselben Weise wie der in der Patentliteratur 1 durchgeführt wird, separat für jeden einzelnen Bereich durchgeführt wird.
  • Mit der vorstehenden Konfiguration erzeugt der Computer 10 ein vorgekoppeltes Programm 21a2. Wie in 6 dargestellt, beinhaltet das vorgekoppelte Programm 21a2 mehrere Vorprogramme Pg0 bis Pg7. Die Vorprogramme Pg0 bis Pg7 repräsentieren Quellcodes, die für die jeweiligen Verarbeitungsmuster Pt0 bis Pt7 parallelisiert sind. Die Vorprogramme Pg0 bis Pg7 repräsentieren die parallelen Programme entsprechend den Verarbeitungsmustern Pt0 bis Pt7. Spezieller erzeugt der Computer 10 die Vorprogramme Pg0 bis Pg7 so, dass die Anzahl von Vorprogrammen Pg0 bis Pg7 gleich der Anzahl von Verarbeitungsmustern Pt0 bis Pt7 ist.
  • Das erste Vorprogramm Pg0 ist ein Quellcode, in welchem die Prozesse, die in dem ersten Verarbeitungsmuster Pt0 enthalten sind, im Hinblick auf Abhängigkeit analysiert werden, den jeweiligen Kernen 21c und 21d zugeteilt werden, und wie vorstehend beschrieben geplant werden. Das erste Vorprogramm Pg0 beinhaltet einen ersten Quellcode Pt01 für den ersten Kern 21c und einen zweiten Quellcode Pt02 für den zweiten Kern 21d.
  • Ebenso ist das zweite Vorprogramm Pg1 ein Quellcode, der mit den Prozessen assoziiert ist, die in dem zweiten Verarbeitungsmuster Pt1 enthalten sind. Das dritte Vorprogramm Pg2 ist ein Quellcode, der mit den Prozessen assoziiert ist, die in dem dritten Verarbeitungsmuster Pt2 enthalten sind. Das vierte Vorprogramm Pg3 ist ein Quellcode, der mit den Prozessen assoziiert ist, die in dem vierten Verarbeitungsmuster Pt3 enthalten sind. Das fünfte Vorprogramm Pg4 ist ein Quellcode, der mit den Prozessen assoziiert ist, die in dem fünften Verarbeitungsmuster Pt4 enthalten sind. Das sechste Vorprogramm Pg5 ist ein Quellcode, der mit den Prozessen assoziiert ist, die in dem sechsten Verarbeitungsmuster Pt5 enthalten sind. Das siebte Vorprogramm Pg6 ist ein Quellcode, der mit den Prozessen assoziiert ist, die in dem siebten Verarbeitungsmuster Pt6 enthalten sind. Das achte Vorprogramm Pg7 ist ein Quellcode, der mit den Prozessen assoziiert ist, die in dem achten Verarbeitungsmuster Pt7 enthalten sind.
  • Zum Beispiel beinhaltet das erste Vorprogramm Pg0 einen ersten Prozess MT1 und einen dritten Prozess MT3, welche Prozesse von 1 ms Zyklus sind, die in dem ersten Verarbeitungsmuster Pt0 enthalten sind. Das erste Vorprogramm Pg0 beinhaltet ferner einen zweiten Prozess MT2 und einen vierten Prozess MT4, welche Prozesse von 4 ms Zyklus sind, die in dem ersten Verarbeitungsmuster Pt0 enthalten sind. Der erste Prozess MT1 bis vierte Prozess MT4 sind den Kernen 21c und 21d zugeteilt. Wie in 6 und 7 dargestellt, sind im dem ersten Vorprogramm Pg0 der erste Prozess MT1 und der zweite Prozess MT2 dem ersten Kern 21c zugeteilt, und sind der dritte Prozess MT3 und der vierte Prozess MT4 dem zweiten Kern 21d zugeteilt. In dieser Weise wird das erste Vorprogramm Pg0 durch nur die Prozesse geplant, die tatsächlich auszuführen sind. Aus diesem Grund können dann, wenn das erste Vorprogramm Pg0 durch zum Beispiel den Mehrkern-Prozessor 21 ausgeführt wird, Lasten auf den ersten Kern 21c und den zweiten Kern 21d zum Ausführen der Prozesse daran gehindert werden, unausgeglichen zu sein. Dasselbe hat für die anderen Vorprogramme Pg1 bis Pg7 Gültigkeit.
  • Die Koppeleinheit 10f koppelt die Vorprogramme Pg0 bis Pg7 miteinander und erzeugt das parallele Programm 21a1 (Erzeugungseinheit). Spezieller koppelt die Koppeleinheit 10f die Quellcodes für den ersten Kern 21c in den Vorprogrammen Pg0 bis Pg7 miteinander, und koppelt die Quellcodes für den zweiten Kern 21d in den Vorprogrammen Pg0 bis Pg7 miteinander. Infolge dessen erzeugt die Koppeleinheit 10f das parallele Programm 21a1 wie in 8 dargestellt.
  • Das parallele Programm 21a1 beinhaltet ein Programm für den ersten Kern 21c und ein Programm für den zweiten Kern 21d. Das Programm für den ersten Kern 21c beinhaltet die Quellcodes für den ersten Kern 21c in den Vorprogrammen Pg0 bis Pg7, wie beispielsweise den ersten Quellcode Pt01. Ebenso beinhaltet das Programm für den zweiten Kern 21d die Quellcodes für den zweiten Kern 21d in den Vorprogrammen Pg0 bis Pg7, wie beispielsweise den zweiten Quellcode Pt02.
  • In 8 ist ein Symbol Pt11 der Quellcode für den ersten Kern 21c in dem zweiten Vorprogramm Pg1. Ein Symbol Pt12 ist der Quellcode für den zweiten Kern 21d in dem zweiten Vorprogramm Pg1. Ein Symbol Pt71 ist der Quellcode für den ersten Kern 21c in dem achten Vorprogramm Pg7. Ein Symbol Pt72 ist der Quellcode für den zweiten Kern 21d in dem achten Vorprogramm Pg7.
  • Durch Ausführen des automatischen Parallelisierungskompilierers 1 allokiert der Computer 10 die mehreren Prozesse für die Kerne 21c und 21d für jedes der extrahierten Verarbeitungsmuster Pt0 bis Pt7 und erzeugt das parallele Programm 21a1. Daher beinhaltet der automatische Parallelisierungskompilierer 1 eine Erzeugungsprozedur des Allokierens der mehreren Prozesse zu den Kernen 21c und 21d für jedes der extrahierten Verarbeitungsmuster Pt0 bis Pt7, um das parallele Programm 21a1 zu erzeugen. Aus diesem Grund entsprechen die Analyseeinheit 10c, die Kernallokierungseinheit 10d, die Planungseinheit 10e und die Koppeleinheit 10f der Erzeugungsprozedur.
  • Darüber hinausführt der Computer 10 den automatischen Parallelisierungskompilierer 1 aus, um die Vorprogramme Pg0 bis Pg7 miteinander zu koppeln. Daher beinhaltet der automatische Parallelisierungskompilierer 1 die Koppelprozedur des Koppelns der Vorprogramme Pg0 bis Pg7 miteinander.
  • Wie vorstehend beschrieben wurde, erzeugt der Computer 10d das parallele Programm 21a1 aus dem Einzelprogramm, wobei das Einzelprogramm Prozesse beinhaltet, die verschiedene Ausführungszyklen haben und eine Kombination auszuführender Prozesse in Übereinstimmung mit dem Zählwert variiert. Aus dem Einzelprogramm extrahiert der Computer 10 die Verarbeitungsmuster Pt0 bis Pt7, welche jeweils die Kombinationen der Ausführungszyklen in den Zählwerten repräsentieren. Infolge dessen kann der Computer 10 die in bzw. bei jedem Zählwert auszuführenden Prozesse erfassen. Ferner allokiert der Computer 10 die Prozesse zu den Kernen 21c und 21d für jedes der extrahierten Verarbeitungsmuster Pt0 bis Pt7 und erzeug das parallele Programm 21a1. Aus diesem Grund werden Prozesse, die während der Ausführung des parallelen Programms 21a1 durch den Mehrkern-Prozessor 21 unter einem bestimmten Zählwert nicht tatsächlich ausgeführt werden, daran gehindert, den Kernen 21c und 21d zugeteilt zu werden. Daher kann das Parallelisierungsverfahren das parallele Programm erzeugen, das eine Verringerung der Effizienz des Mehrkern-Mikrocomputers unterdrücken kann. Daher kann der Computer 10 das parallele Programm 21a1 erzeugen, das eine Verringerung in der Effizienz des Mehrkern-Prozessors 21 unterdrücken kann. Ferner kann der Computer 10 ein Ungleichgewicht der Verarbeitungslasten auf den ersten Kern 21c und den zweiten Kern 21d hemmen.
  • Indessen führt der Computer 10 den automatischen Parallelisierungskompilierer 1 aus, um die vorstehenden Vorteile zu erhalten. Aus diesem Grund kann der automatische Parallelisierungskompilierer 1 dieselben Vorteile erhalten.
  • Wie vorstehend beschrieben wurde, speichert das ROM 21a der fahrzeugverbauten Einrichtung 20 das parallele Programm 21a1, das unter Verwendung des automatischen Parallelisierungskompilierers 1 erzeugt wurde, spezieller 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 ausführt, und der zweite Kern 21d das Programm für den zweiten Kern 21d in dem parallelen Programm 21a1 ausführt. Aus diesem Grund kann die fahrzeugverbaute Einrichtung 20 die Verringerung in der Effizienz des Mehrkern-Prozessors 21 unterdrücken.
  • Das Ausführungsbeispiel wurde vorstehend beschrieben. Das vorstehend beschriebene Ausführungsbeispiel ist jedoch darstellend und nicht beschränkend. Ohne den Rahmen der Erfindung zu verlassen, gibt es verschiedenartige Modifikationen, von welchen nachstehend Beispiele beschrieben werden.
  • Zum Beispiel kann in einem anderen Ausführungsbeispiel ein Arbeiter die Extraktionsprozedur und die Erzeugungsprozedur zusätzlich zu dem in der Patentliteratur 1 offenbarten Parallelisierungsverfahren ausführen, um dadurch das parallele Programm 21a1 zu erzeugen.
  • Das Einzelprogramm kann ein Programm für den Einkern-Mikrocomputer repräsentieren, das bzw. der dazu konfiguriert ist, mehrere Sensorwerte zu beschaffen, welche Erfassungsergebnisse mehrerer Sensoren sind. Eine Kombination von Arten von Prozessen, die auszuführen sind, kann in Übereinstimmung mit dem Sensorwert variieren. Die Sensorwerte können die mehreren Bedingungen bzw. Zustände bilden. Zum Beispiel kann der Sensor ein Rotationssensor zum Erfassen einer Motordrehzahl, ein Spannungssensor zum Erfassen einer Spannung an einer Batterie, oder dergleichen sein. Das Einzelprogramm kann so konfiguriert sein, dass sich die Kombination von Prozessen abhängig von dem Sensorwert des Rotationssensors oder dem Sensorwert des Spannungssensors unterscheidet. Als die Arten können die Ausführungszyklen wie in dem vorstehenden Ausführungsbeispiel verwendet werden. In diesem Fall extrahiert der Computer 10 aus dem Einzelprogramm die Verarbeitungsmuster in bzw. bei den jeweiligen Sensorwerten entsprechend den mehreren Bedingungen bzw. Zuständen. Auch in diesen Beispielen kann der Computer 10 dieselben Vorteile wie die vorstehend beschriebenen erhalten. Ferner kann, weil der automatische Parallelisierungskompilierer 1 durch den Computer 10 ausgeführt wird, der automatische Parallelisierungskompilierer 1 dieselben Vorteile wie die vorstehend beschriebenen erhalten.
  • 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 (15)

  1. Parallelisierungsverfahren zum Erzeugen eines parallelen Programms (21a1), das für einen Mehrkern-Mikrocomputer (21) mit einer Vielzahl von Kernen (21c, 21d) parallelisiert ist, aus einer Vielzahl von Prozessen in einem Einzelprogramm für einen Einkern-Mikrocomputer mit einem Kern, wobei es in dem Einzelprogramm mehrere Arten der Prozesse gibt und eine Kombination der Arten von Prozessen, die auszuführen ist, in Übereinstimmung mit einem Zustand variiert und eine Vielzahl der Zustände bereitgestellt ist, wobei das Parallelisierungsverfahren beinhaltet: eine Extraktionsprozedur (10a) des Extrahierens von Verarbeitungsmustern aus dem Einzelprogramm, wobei die Verarbeitungsmuster jeweils die Kombinationen von Arten in der Vielzahl von Zuständen sind; und eine Erzeugungsprozedur (10c bis 10f) des, für jedes der extrahierten Verarbeitungsmuster, Allokierens der Prozesse für die Kerne, um das parallele Programm zu erzeugen.
  2. Parallelisierungsverfahren nach Anspruch 1, bei dem: das Einzelprogramm die Prozesse mehrerer Ausführungszyklen als die Prozesse mehrerer Arten beinhaltet, einschließlich eines Prozesses eines ersten Ausführungszyklus, welcher unter den mehreren Ausführungszyklen der kürzeste ist, und eines Prozesses eines Ausführungszyklus, welcher ein ganzzahliges Vielfaches des ersten Ausführungszyklus ist; und die Extraktionsprozedur aus dem Einzelprogramm die Verarbeitungsmuster extrahiert, die jeweils die Kombinationen der Ausführungszyklen in den Zuständen sind.
  3. Parallelisierungsverfahren nach Anspruch 1 oder 2, bei dem: das Einzelprogramm ein Programm für den Einkern-Mikrocomputer beinhaltet und dazu konfiguriert ist, einen Zählwert zu beschaffen; in dem Einzelprogramm die Kombination der Arten von auszuführenden Prozessen in Übereinstimmung mit dem Zählwert variiert; und die Extraktionsprozedur die Verarbeitungsmuster in den jeweiligen Zählwerten, die die Zustände bilden, aus dem Einzelprogramm extrahiert.
  4. Parallelisierungsverfahren nach Anspruch 1 oder 2, bei dem: das Einzelprogramm ein Programm für den Einkern-Mikrocomputer beinhaltet, das dazu konfiguriert ist, eine Vielzahl von Sensorwerten zu beschaffen, welche Erfassungsergebnisse eines Sensors sind; die Sensorwerte die Bedingungen bilden; und in dem Einzelprogramm die Kombination der Arten von auszuführenden Prozessen in Übereinstimmung mit dem Sensorwert variiert; und die Extraktionsprozedur die Verarbeitungsmuster in den jeweiligen Sensorwerten aus dem Einzelprogramm extrahiert.
  5. Parallelisierungsverfahren nach einem der Ansprüche 1 bis 4, bei dem die Erzeugungsprozedur eine Abhängigkeit der Prozesse analysiert und die Prozesse in einer Ausführungsreihenfolge des Einzelprogramms anordnet, für jedes der extrahierten Verarbeitungsmuster.
  6. Parallelisierungswerkzeug mit einem Computer zum Erzeugen eines parallelen Programms (21a1), das für einen Mehrkern-Mikrocomputer (21) mit einer Vielzahl von Kernen (21c, 21d) parallelisiert ist, aus einer Vielzahl von Prozessen in einem Einzelprogramm für einen Einkern-Mikrocomputer mit einem Kern, wobei es in dem Einzelprogramm mehrere Arten der Prozesse gibt und eine Kombination der Arten von Prozessen, die auszuführen ist, in Übereinstimmung mit einem Zustand variiert und eine Vielzahl der Zustände bereitgestellt ist, wobei das Parallelisierungswerkzeug beinhaltet: eine Extraktionseinheit (10a), die Verarbeitungsmuster aus dem Einzelprogramm extrahiert, wobei die Verarbeitungsmuster jeweils die Kombinationen von Arten in der Vielzahl von Zuständen sind; und eine Erzeugungseinheit (10c bis 10f), die für jedes der extrahierten Verarbeitungsmuster die Prozesse für die Kerne allokiert, um das parallele Programm zu erzeugen.
  7. Parallelisierungswerkzeug nach Anspruch 6, bei dem: das Einzelprogramm die Prozesse mehrerer Ausführungszyklen als die Prozesse mehrerer Arten beinhaltet, einschließlich eines Prozesses eines ersten Ausführungszyklus, welcher unter den mehreren Ausführungszyklen der kürzeste ist, und eines Prozesses eines Ausführungszyklus, welcher ein ganzzahliges Vielfaches des ersten Ausführungszyklus ist; und die Extraktionseinheit aus dem Einzelprogramm die Verarbeitungsmuster extrahiert, die jeweils die Kombinationen der Ausführungszyklen in den Zuständen sind.
  8. Parallelisierungswerkzeug nach Anspruch 6, bei dem: das Einzelprogramm ein Programm für den Einkern-Mikrocomputer beinhaltet und dazu konfiguriert ist, einen Zählwert zu beschaffen; in dem Einzelprogramm die Kombination der Arten von auszuführenden Prozessen in Übereinstimmung mit dem Zählwert variiert; und die Extraktionseinheit die Verarbeitungsmuster in den jeweiligen Zählwerten, die die Zustände bilden, aus dem Einzelprogramm extrahiert.
  9. Parallelisierungswerkzeug nach Anspruch 6 oder 7, bei dem: das Einzelprogramm ein Programm für den Einkern-Mikrocomputer beinhaltet, das dazu konfiguriert ist, eine Vielzahl von Sensorwerten zu beschaffen, die Erfassungsergebnisse eines Sensors sind; in dem Einzelprogramm die Kombination der Arten von auszuführenden Prozessen in Übereinstimmung mit dem Sensorwert variiert; und die Extraktionseinheit die Verarbeitungsmuster in den jeweiligen Sensorwerten, die die Zustände bilden, aus dem Einzelprogramm extrahiert.
  10. Parallelisierungswerkzeug nach einem der Ansprüche 6 bis 9, bei dem: die Erzeugungseinheit eine Abhängigkeit der Prozesse analysiert und die Prozesse in einer Ausführungsreihenfolge des Einzelprogramms anordnet, für jedes der extrahierten Verarbeitungsmuster.
  11. Fahrzeugverbaute Einrichtung, beinhaltend: einen Mehrkern-Mikrocomputer (21) mit einer Vielzahl von Kernen (21c, 21d) und ein paralleles Programm (21a1), das für den Mehrkern-Mikrocomputer aus einer Vielzahl von Prozessen in einem Einzelprogramm für einen Einkern-Mikrocomputer mit einem Kern parallelisiert ist, wobei: es in dem Einzelprogramm mehrere Arten der Prozesse gibt und eine Kombination der Arten von Prozessen, die auszuführen ist, in Übereinstimmung mit einem Zustand variiert und eine Vielzahl der Zustände bereitgestellt ist, das parallele Programm derart erzeugt wird, dass Verarbeitungsmuster, welche jeweils die Kombinationen der Arten in den Zuständen sind, aus dem Einzelprogramm extrahiert werden, und die Prozesse für die Kerne für jedes der extrahierten Verarbeitungsmuster allokiert werden; und die Kerne die für sie allokierten Prozesse ausführen.
  12. Fahrzeugverbaute Einrichtung nach Anspruch 11, bei der: das Einzelprogramm die Prozesse mehrerer Ausführungszyklen als die Prozesse mehrerer Arten beinhaltet, einschließlich eines Prozesses eines ersten Ausführungszyklus, welcher unter den mehreren Ausführungszyklen der kürzeste ist, und eines Prozesses eines Ausführungszyklus, welcher ein ganzzahliges Vielfaches des ersten Ausführungszyklus ist; und in dem parallelen Programm die Verarbeitungsmuster, die die Kombinationen der Ausführungszyklen in den Zuständen sind, aus dem Einzelprogramm extrahiert werden.
  13. Fahrzeugverbaute Einrichtung nach Anspruch 11 oder 12, bei der: das Einzelprogramm ein Programm für den Einkern-Mikrocomputer beinhaltet und dazu konfiguriert ist, einen Zählwert zu beschaffen; in dem Einzelprogramm die Kombination der Arten von auszuführenden Prozessen in Übereinstimmung mit dem Zählwert variiert; und in dem parallelen Programm die Verarbeitungsmuster in den jeweiligen Zählwerten, die die Zustände bilden, aus dem Einzelprogramm extrahiert werden.
  14. Fahrzeugverbaute Einrichtung nach Anspruch 11 oder 12, bei der: das Einzelprogramm ein Programm für den Einkern-Mikrocomputer beinhaltet, das dazu konfiguriert ist, eine Vielzahl von Sensorwerten zu beschaffen, welche Erfassungsergebnisse eines Sensors sind; in dem Einzelprogramm die Kombination der Arten von auszuführenden Prozessen in Übereinstimmung mit dem Sensorwert variiert; und in dem parallelen Programm die Verarbeitungsmuster in den jeweiligen Sensorwerten, die die Zustände bilden, aus dem Einzelprogramm extrahiert werden.
  15. Fahrzeugverbaute Einrichtung nach einem der Ansprüche 11 bis 14, bei der in dem parallelen Programm die Prozesse basierend auf einer Analyse einer Abhängigkeit der Prozesse in einer Ausführungsreihenfolge des Einzelprogramms angeordnet werden, für jedes der extrahierten Verarbeitungsmuster.
DE102016220340.1A 2015-10-20 2016-10-18 Parallelisierungsverfahren, parallelisierungswerkzeug und fahrzeugverbaute einrichtung Ceased DE102016220340A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2015-206200 2015-10-20
JP2015206200A JP6481585B2 (ja) 2015-10-20 2015-10-20 並列化方法、並列化ツール、車載装置

Publications (1)

Publication Number Publication Date
DE102016220340A1 true DE102016220340A1 (de) 2017-04-20

Family

ID=58456714

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016220340.1A Ceased DE102016220340A1 (de) 2015-10-20 2016-10-18 Parallelisierungsverfahren, parallelisierungswerkzeug und fahrzeugverbaute einrichtung

Country Status (3)

Country Link
US (1) US10255119B2 (de)
JP (1) JP6481585B2 (de)
DE (1) DE102016220340A1 (de)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017107448A (ja) * 2015-12-10 2017-06-15 株式会社デンソー 並列化方法、並列化ツール、車載装置
US10671361B2 (en) * 2016-10-25 2020-06-02 Paypal, Inc. Automatically determining data dependencies to facilitate code execution
CN113723618B (zh) * 2021-08-27 2022-11-08 南京星环智能科技有限公司 一种shap的优化方法、设备及介质

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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07141300A (ja) * 1993-11-18 1995-06-02 Nippon Telegr & Teleph Corp <Ntt> マルチプロセッサを用いた周期処理方法
JP4936517B2 (ja) * 2006-06-06 2012-05-23 学校法人早稲田大学 ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ
US9043795B2 (en) * 2008-12-11 2015-05-26 Qualcomm Incorporated Apparatus and methods for adaptive thread scheduling on asymmetric multiprocessor
US9367357B2 (en) * 2013-01-18 2016-06-14 Nec Corporation Simultaneous scheduling of processes and offloading computation on many-core coprocessors
US10108445B2 (en) * 2014-09-22 2018-10-23 The Boeing Company Parallelization in virtual machine operation

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
US10255119B2 (en) 2019-04-09
JP6481585B2 (ja) 2019-03-13
US20170109216A1 (en) 2017-04-20
JP2017078938A (ja) 2017-04-27

Similar Documents

Publication Publication Date Title
EP0689694B1 (de) Verfahren zur maschinellen erzeugung von nebenläufig bearbeitbaren befehlsgruppen aus einem programm für superskalare mikroprozessoren
EP0894304B1 (de) Verfahren zur automatischen diagnose technischer systeme unter berücksichtigung eines effizienten wissenserwerbs und einer effizienten bearbeitung zur laufzeit
DE102016220340A1 (de) Parallelisierungsverfahren, parallelisierungswerkzeug und fahrzeugverbaute einrichtung
DE102016014152A1 (de) Numerische Steuervorrichtung
DE102016223939A1 (de) Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeugeigene Vorrichtung
DE102016204963A1 (de) Parallelisierungskompilierverfahren, Parallelisierungskompilierer und Fahrzeugvorrichtung
DE112019005584T5 (de) Arithmetiksteuervorrichtung
DE102018104188A1 (de) Kombiniertes Rendering- und Berechnungs-Ressourcenzuweisungsverwaltungssystem
DE102017210126A1 (de) Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeuginterne Vorrichtung
DE102012209789A1 (de) Fahrzeuggebundene elektrische steuervorrichtung
DE102016204970A1 (de) Parallelisierungskompilierverfahren, Parallelisierungskomplierer und Fahrzeugvorrichtung
DE112019004391T5 (de) Grossmodellunterstützung für deep learning
EP3529723A1 (de) Vorrichtungen, verfahren und computerprogramme für ein fahrzeug und eine zentralstelle
DE102016201612A1 (de) Parallelisierungskompilierungsverfahren, Parallelisierungskompilierer und elektronische Vorrichtung
DE102015112250A1 (de) Trennung von Kernen
DE102016219449A1 (de) Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeugverbaute Einrichtung
DE102016201614A1 (de) Parallelisierungskompilierungsverfahren, Parallelisierungskompilierer und elektronische Vorrichtung
DE102019202228A1 (de) Parallelisierungsverfahren, Parallelisierungswerkzeug, Mehrkernmikrocomputer und fahrzeuginterne Vorrichtung
DE102019202870A1 (de) Parallelisierungsverfahren, Parallelisierungswerkzeug und Multikernmikrocomputer
DE102014016884A1 (de) Datenflußsteuerung und Loadbalancing in Fahrzeugsteuergeräten mit Mehrkernprozessoren
DE102018123563A1 (de) Verfahren zur Zwischenkernkommunikation in einem Mehrkernprozessor
DE102016221570A1 (de) Parallelisierungsverfahren, parallelisierungswerkzeug und fahrzeugverbaute einrichtung
DE102022212057A1 (de) Verfahren zur Analyse von funktionalen Pfaden für ein eingebettetes System, Vorrichtung zur Datenverarbeitung, Computerprogramm und computerlesbarer Datenträger
DE102017222292A1 (de) Parallelisierungsverfahren, parallelisierungs-tool und fahrzeuginterne steuervorrichtung
EP3385834A1 (de) Hardwaretreiber für effiziente arithmetik

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R002 Refusal decision in examination/registration proceedings
R006 Appeal filed
R008 Case pending at federal patent court
R003 Refusal decision now final
R011 All appeals rejected, refused or otherwise settled