-
HINTERGRUND DER ERFINDUNG
-
Eine Ausführungsform bezieht sich auf einen Satz von Aufgaben auf einem elektronischen Steuermodul.
-
Ein Mehrkernprozessor, der innerhalb eines einzigen Chips integriert ist und typischerweise als eine einzige Recheneinheit mit zwei oder mehreren unabhängigen Datenverarbeitungseinheiten bezeichnet wird, die im Allgemeinen als Kerne bezeichnet werden. Die Kerne führen typischerweise Lesebefehle und programmierte Anweisungen aus. Beispiele solcher Anweisungen sind das Hinzufügen von Daten und das Verschieben von Daten. Eine Leistung des Mehrkernprozessors ist, dass die Kerne mehrere Anweisungen gleichzeitig, parallel ausführen können.
-
Die Speicherlayouts beeinflussen die Speicherbandbreite der cacheaktivierten Architektur für elektronische Steuermodule (ECU). Wenn zum Beispiel ein Mehrkernprozessor ineffizient ausgelegt ist, können Engstellen beim Abrufen von Daten auftreten, wenn die Aufgaben nicht korrekt auf mehrere Kerne verteilt sind, was auch die Kommunikationskosten beeinflusst.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Ein Vorteil einer Ausführungsform ist die Optimierung des Zugriffs auf Daten in einem globalen Speicher, sodass Daten, die an einer entsprechenden Stelle gespeichert werden, und auf die durch eine entsprechende Aufgabe zugegriffen werden kann, durch einen entsprechenden gleichen Kern verarbeitet werden können. Zusätzlich wird die Arbeitsbelastung zwischen den Kernen unter der jeweiligen Anzahl der Kerne des Mehrkernprozessors ausgeglichen, sodass jeder der jeweiligen Kerne eine ähnliche Verarbeitung der Arbeitsbelastung durchführt. Die hierin beschriebenen Ausführungsformen erzeugen eine Vielzahl von Permutationen, basierend auf Umordnungstechniken zur Paarung der entsprechenden Aufgaben mit entsprechenden Speicherplätzen, basierend auf dem Zugriff auf die Speicherplätze. Permutationen sind basierend auf der Anzahl der gewünschten Kerne gegliedert und unterteilt, bis eine jeweilige Permutation identifiziert ist, die eine ausgeglichene Arbeitsbelastung der Kerne erzeugt und die Kommunikationskosten minimiert.
-
Eine Ausführungsform betrachtet ein Verfahren zum Aufteilen von Aufgaben in einem mehrkernigen elektronischen Steuermodul (ECU). Eine Signalliste einer Link-Map-Datei wird in einen Speicher extrahiert. Die Link-Map-Datei beinhaltet eine Textdatei, in der beschrieben wird, wo auf die Daten innerhalb einer globalen Speichervorrichtung zugegriffen wird. Es werden Speicherzugrifflinien bezüglich der ausgeführten Aufgaben der Signalliste erhalten. Eine Anzahl von Malen griff jede Aufgabe auf einen Speicherplatz zu und die zugehörige Arbeitsbelastung im ECU wird erkannt. Zwischen jeder Aufgabe und jedem aufgerufenem Speicherplatz wird ein Korrelationsdiagramm erstellt. Das Korrelationsdiagramm identifiziert einen Grad einer verknüpfenden Beziehung zwischen jeder Aufgabe und jedem Speicherplatz. Das Korrelationsdiagramm wird neu geordnet, sodass die entsprechenden Aufgaben und die dazugehörigen Speicherplätze mit einem größeren Grad verknüpfender Beziehungen benachbart sind. Der Mehrkernprozessor ist in eine jeweilige Anzahl von Kernen aufgeteilt, worin zugewiesene Aufgaben und Speicherplätze unter der jeweiligen Anzahl der Kerne als eine Funktion des wesentlichen Ausgleichs der Arbeitsbelastungen unter den jeweiligen Kernen ausgeführt wird.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Blockschaltbild von Hardware zur Optimierung der Aufgabenaufteilung.
-
2 ist eine beispielhafte gewichtete Korrelationsmatrix.
-
3 ist eine exemplarische, bipartite graphische Darstellung für eine erste Permutation.
-
4 ist eine exemplarische, bipartite graphische Darstellung für eine neu geordnete Permutation und Aufteilung.
-
5 ist ein Flussdiagramm eines Verfahrens zum Optimieren der Aufgabenaufteilung.
-
DETAILLIERTE BESCHREIBUNG
-
1 ist ein Blockschaltbild von Hardware zur Optimierung der Aufgabenaufteilung. Die entsprechenden Algorithmen, die Anwendungscodes ausführen, werden auf einem elektronischen Steuermodul (ECU) 10 ausgeführt. Die ausgeführten Algorithmen sind die Programme, die bei der Herstellung ausgeführt werden (z. B.
-
Motorsteuerung eines Fahrzeugs, Computer, Spiele, Betriebseinrichtung, oder jegliche andere elektronische Steuerungen, die ein elektronisches Steuermodul umfassen). Daten werden geschrieben und an verschiedene Adressen innerhalb einer globalen Speichervorrichtung 12 ausgelesen.
-
Eine Map-Link-Datei 14 ist eine Textdatei, die beschreibt, wo Daten und Codes in den ausführbaren Programmen innerhalb der globalen Speichervorrichtung 12 gespeichert werden. Die Map-Link-Datei 14 beinhaltet Trace-Dateien, in denen ein Ereignisprotokoll gespeichert ist, das die innerhalb der globalen Speichereinrichtung 12 erfolgten Transaktionen sowie Codes und Daten beschreibt. Daraus kann eine Map-Link-Datei 14 zur Identifizierung aller Aufgaben und der zugehörigen Speicheradressen resultieren, auf die während der Ausführung des Anwendungscodes durch die ECU 10 zugegriffen wurde.
-
Ein Mining-Prozessor 16 wird zum Data-Mining 18 aus der globalen Speichereinrichtung 12, zum Neuordnen von Aufgaben und den zugehörigen Speicherplätzen 20, zum Identifizieren von Arbeitsbelastungen einer Permutation 22 und zum Aufteilen von Aufgaben und den zugehörigen Speicherplätzen 24 verwendet, um den Mehrkernprozessor zu entwickeln.
-
In Bezug zum Daten-Mining, wird für jede Aufgabe (z. B. A, B, C, D) eine Trefferzahl-Tabelle für den Speicherzugriff konstruiert, wie in 2 veranschaulicht. Der Begriff 'Trefferzahl' bezieht sich auf die Anzahl von Malen, mit der eine entsprechende Aufgabe ein Signal überträgt, um auf eine entsprechende Speicheradresse des globalen Speichers zuzugreifen. Eine Matrix X wird basierend auf der Trefferzahl erstellt. Wie in 2 veranschaulicht, sind Aufgaben in den horizontalen Zeilen der Matrix aufgeführt, und die Signale, die den Zugriff auf die Speicherplätze der globalen Speichervorrichtung repräsentieren, sind in den Spalten der Matrix aufgeführt. Wie in der Matrix dargestellt, greift Aufgabe A fünf Mal auf sa und zwanzig Mal auf sd zu. Aufgabe B greift zehn Mal auf sa, ein Mal auf sb, sechs Mal auf sd, ein Mal auf se und ein Mal auf sf zu. Die Matrix setzt jede Aufgabe mit jedem Speicherplatz in Beziehung, und identifiziert, wie oft von der entsprechenden Aufgabe auf den entsprechenden Speicherplatz zugegriffen wurde, um Daten zu speichern und auszulesen.
-
Nachdem die Matrix X erstellt wurde, erzeugt der Mining-Prozessor Permutationen, die verwendet werden, um die entsprechende Permutation zu identifizieren, die die effizienteste Verteilung bietet, um die Arbeitsbelastung der ECU gleichmäßig zu verteilen.
-
Permutationen sind verschiedene Listen von Sortieraufgaben und Speicherplätzen. Wie in 3 dargestellt, wird ein Korrelationsdiagramm konstruiert, wie beispielsweise eine bipartite graphische Darstellung. Es ist zu beachten, dass andere graphische Darstellungen oder Werkzeuge verwendet werden können, ohne vom Umfang der Erfindung abzuweichen. Wie in 3 dargestellt, werden die Aufgaben in einer Spalte (z. B. in alphabetischer Reihenfolge) auf der linken Seite der bipartiten graphischen Darstellung aufgeführt. Auf der rechten Seite der bipartiten graphischen Darstellung, werden die aufgerufenen Speicherplätze in einer zweiten Spalte aufgeführt. Zu Zwecken der bipartiten graphischen Darstellung werden die Aufgaben als Aufgabenknoten und die aufgerufenen Speicherplätze als Speicherknoten bezeichnet. Es werden Linien gezogen, die bei einem Treffer zwischen einem entsprechenden Aufgabenknoten und einem entsprechenden Speicherknoten einen entsprechenden Aufgabeknoten mit einem entsprechenden Speicherknoten verbinden. Die Verbindungslinien zwischen den Aufgabenknoten und den Speicherknoten werden gewichtet, wie in 3 auf Grundlage der Trefferanzahl dargestellt. In der bipartiten graphischen Darstellung ist die Anzahl der Treffer zwischen den Aufgabenknoten und Speicherknoten umso größer, je dicker die Linie ist. In der anfänglichen, in 3 dargestellten Permutation, können Linien, die Aufgabenknoten und Speicherknoten verbinden, distal sein, was bedeutet, dass ein Aufgabenknoten am oberen Ende der ersten Spalte mit einem Speicherknoten am unteren Ende der zweiten Spalte verbunden sein kann. Wenn diese Permutation am Mittelpunkt beider Spalten gleichmäßig aufgeteilt wurde, dann würde eine erhebliche Menge der Kommunikation zwischen den beiden Kernen auftreten (z. B. Querkommunikation), was ineffizient wäre und die Kommunikationskosten erhöhen würde, und insbesondere würde daraus ein größeres Maß an Ineffizienz resultieren, wenn jene jeweiligen Querkommunikationsverbindungen zwischen beiden Kernen stark gewichtete Kommunikationsverbindungen wären. Zusätzlich kann ein entsprechender Kern einen größeren Teil der Arbeitsbelastungsverteilung tragen, wenn die Aufgaben, die rechenintensiv sind, einem entsprechenden Kern zugeordnet sind. Deshalb werden verschiedene Permutationen durchgeführt, in dem die Aufgabenknoten und Speicherknoten neu geordnet werden.
-
4 veranschaulicht eine entsprechende Permutation, in der die Speicherplätze neu geordnet wurden. Verschiedene Techniken können verwendet werden, um die Speicherknoten neu zu ordnen, um Effizienz zu erzielen und die Kommunikationskosten zu minimieren. Ein solches Verfahren kann umfassen, ist aber nicht darauf beschränkt, das Neuordnen der Aufgaben- und Speicherknoten, sodass ein entsprechender Aufgabenknoten und der dazugehörige Speicherknoten, durch eine Linie mit hoher Gewichtung verbunden sind (z. B. zahlreiche Treffer), im Vergleich zu allen anderen Paaren, und in der bipartiten graphischen Darstellung zueinander benachbart sind.
-
Die Neuordnung der Eckpunkte der bipartiten graphischen Darstellung wird unter Verwendung einer gewichteten benachbarten Matrix
durchgeführt, die mittels der Matrix X in
2 erstellt wird. Mit Matrix W wird die gewünschte Reihenfolge der Aufgaben- und Speicherknoten durch Suchen einer Permutation {π
1, ..., π
N} von Eckpunkten erreicht, sodass benachbarte Eckpunkte in der graphischen Darstellung die am meisten zueinander in Beziehung stehenden Eckpunkte sind. Eine solche Permutation weist darauf hin, dass die durch denselben Satz von Aufgaben häufig aufgerufenen Daten in einen lokalen Daten-Cache passen. Mathematisch kann die gewünschte Neuordnung der Permutation in Form von
ausgedrückt werden.
-
Dies entspricht dem Auffinden der inversen Permutation π
–1, derart dass folgende Energiefunktion minimiert wird:
-
Das Lösen des obigen Problems wird durch Berechnen des Eigenvektors (q
2) mit dem zweiten kleinsten Eigenwert für die folgende Eigengleichung angenähert:
(D – W)q = λDq wobei die Laplace'sche Matrix L = D – W, die Gradmatrix D eine Diagonale ist und definiert ist als
-
Das so erhaltene q2 wird in aufsteigender Reihenfolge sortiert. Der Index der Eckpunkte nach einer Sortierung entspricht der gewünschten Permutation {π1, ..., πN}. Die Reihenfolge der Aufgabenknoten und Speicherknoten wird dann aus dieser Permutation abgeleitet, indem die Aufgabenknoten und Speicherknoten in der bipartiten graphischen Darstellung gemäß dem Permutationergebnis abgeleitet werden.
-
Wie in 4 veranschaulicht, wurde die Liste effizient neu geordnet. Aufgabenknoten A und Speicherknoten sd zählen zu den höchsten Treffern (z. B. 20) und sind deshalb einander benachbart. Desgleichen wird in 4 gezeigt, dass Aufgabenknoten B benachbart zum Speicherknoten sa ist, und die Aufgabenknoten C und D benachbart zum Speicherknoten sb sind. Zusätzlich hat der Aufgabenknoten A zahlreiche Treffer mit dem Speicherknoten sa und der Aufgabenknoten B hat zahlreiche Treffer mit dem Speicherknoten sd. Dadurch ergibt sich, da die Aufgabenknoten A und B in der ersten Spalte zueinander benachbart sind, die Speicherknoten sa und sb in der zweiten Spalte zueinander benachbart positioniert sind. Diese Neuordnung bietet eine effiziente Kommunikation durch Eliminieren einer Querkommunikation zwischen Kernen.
-
Vergewissern Sie sich zum Ausgleich der Arbeitsbelastung, dass die Arbeitsbelastung der Kerne gleichmäßig verteilt ist, die ersten beiden Paare der Aufgabenknoten und der dazugehörigen Speicherknoten, die eine höchste Arbeitsbelastung unter der Vielzahl von Aufgabenknoten haben, aufgeteilt und an entgegengesetzten Enden der bipartiten graphischen Darstellung positioniert werden. Damit ist sichergestellt, dass diese beiden entsprechenden Aufgabenknoten mit der höchsten Arbeitsbelastung unter der Vielzahl von Aufgaben nicht innerhalb des gleichen Kerns sind, was ansonsten die Arbeitsbelastung für einen einzigen Kern überlasten würde. Nachdem diese beiden Aufgabenpaare neu geordnet sind, wird ein nächstes Paar von Aufgaben und dazugehörigen Speicherknoten mit einer nächsthöheren Arbeitsbelastung unter den verbleibenden Aufgabenknoten und Speicherknoten aufgeteilt, und neben den kürzlich aufgeteilten Aufgabenknoten und Speicherknoten positioniert. Diese Vorgehensweise wird mit einem nächsten entsprechenden Paar von Aufgabenknoten und dazugehörigen Speicherknoten mit einer nächsthöheren Arbeitsbelastung unter den verfügbaren Aufgabenknoten und dazugehörigen Speicherknoten fortgesetzt, bis alle verfügbaren Aufgabenknoten und dazugehörigen Speicherknoten innerhalb der bipartiten graphischen Darstellung zugeordnet sind. Daraus resultiert eine gleichmäßige Verteilung der Arbeitsbelastungen, sodass die zweiteilige graphische Darstellung, wie dargestellt, in der Mitte gleichmäßig geteilt werden kann und die Verteilung der Arbeitsbelastung zwischen den entsprechenden Kernen weitgehend ähnlich ist. Wie in der bipartiten graphischen Darstellung in 4 gezeigt, werden die entsprechenden Aufgabenknoten und dazugehörigen Speicherknoten der bipartiten graphischen Darstellung durch eine Partition 26 geteilt, um zu identifizieren, welche Aufgaben den entsprechenden Kernen zugeordnet werden. Exemplarische prozentuale Arbeitsbelastungen sind für jeden entsprechenden Aufgabenknoten veranschaulicht. Aufgabe A repräsentiert eine 15%-Nutzung der Arbeitsbelastung, Aufgabe B repräsentiert eine 40%-Nutzung der Arbeitsbelastung, Aufgabe C repräsentiert eine 30%-Nutzung der Arbeitsbelastung und Aufgabe D repräsentiert eine 15%-Nutzung der Arbeitsbelastung. Daher würde in diesem Beispiel, eine 55%-Nutzung der Arbeitsbelastung durch einen ersten Kern und eine 45%-Nutzung der Arbeitsbelastung durch den zweiten Kern durchgeführt werden. Es wird darauf hingewiesen, dass die jeweilige stärkste Arbeitsbelastung eines Aufgabenknotens und einem zugeordneten Speicherknoten in einem entsprechenden Kern bleiben würde, im Gegensatz zur Querkommunikation zwischen Kernen. Das heißt, diejenigen Aufgabenknoten und dazugehörigen Speicherknoten, die mehr Treffer haben, wären innerhalb des gleichen Kerns. Es versteht sich, dass einige Aufgabenknoten mit Speicherknoten in verschiedenen Kernen querkommunizieren; solche Kommunikationen sind jedoch im Vergleich zu den stark gewichteten Kommunikationen, die in einem Kern aufrechterhalten werden, selten.
-
Nachdem die beiden Kerne aufgeteilt wurden, können die aufgeteilten Kerne außerdem, wenn eine weitere Aufteilung der Kerne erforderlich ist (z. B. 4-Kern), erneut unterteilt werden, ohne diese neu zu ordnen, basierend auf einem Ausgleich der Arbeitsbelastung und einer Minimierung der Kommunikationskosten. Alternativ kann die Neuordnungstechnik, wenn gewünscht, auf einen bereits aufgeteilten Kern angewendet werden, um die jeweiligen Aufgaben und Speicher darin neu zu ordnen und dann die Kerne weiter zu unterteilen.
-
Verschiedene Permutationen der Aufteilung können angewendet werden, um die effizienteste Partition zu finden, die den besten Ausgleich der Arbeitsbelastung zwischen den Kernen des Prozessors ergibt und auch die Kommunikationskosten minimiert.
-
5 stellt ein Flussdiagramm der Technik zur Aufteilung der Aufgaben auf dem mehrkernigen ECU dar. In Schritt 30 werden Anwendungscodes für ein Softwareprogramm durch ein entsprechendes elektronisches Steuermodul als Ausgaben ausgeführt. Sowohl Lese- als auch Schreibvorgänge werden in der globalen Speichervorrichtung ausgeführt (z. B. Speicher nicht auf dem Mining-Prozessor).
-
In Schritt 31 wird eine Signalliste aus einer Link-Map-Datei in einem globalen Speicher extrahiert. Die Signalliste identifiziert Linien von Speicherplatztreffern anhand der von den Anwendungscodes ausgeführten Aufgaben.
-
In Schritt 32 werden die Speicherzugriffslinien durch einen Mining-Prozessor gesammelt.
-
In Schritt 33 wird eine Matrix erstellt, die die Trefferzahl des Speicherzugriffs der Aufgabe (d. h. die Treffer) für jeden Speicherplatz beinhaltet. Es sollte verstanden werden, dass entsprechende Aufgaben und entsprechende Speicherplätze keine Treffer ergeben würden, und der Eintrag unter solchen Umständen in Form einer „0” oder einem leeren Feld angezeigt wird, und dies ein Hinweis ist, dass die Aufgabe keinen Zugriff auf den entsprechenden Speicherplatz hatte.
-
In Schritt 34 werden verschiedene Permutationen erzeugt, die Korrelationsdiagramme beinhalten (z. B. bipartite Diagramme), die die verknüpfenden Beziehungen zwischen den vom Anwendungscode ausgeführten Aufgabenknoten und den von den Aufgabenknoten aufgerufenen entsprechenden Speicherknoten zeigen. Jede der Permutationen nutzt optimale Sortieralgorithmen zur Ermittlung der jeweiligen Reihenfolge der Aufgabenknoten und der dazugehörigen Speicherknoten. Die Aufgabenknoten sind mit denjenigen Speicherknoten korreliert, zwischen denen Treffer auftreten und sind nebeneinander angeordnet. Die Aufgabenknoten und dazugehörigen Speicherknoten sind im Korrelationsdiagramm optimal positioniert, sodass nach der Aufteilung die Nutzung der Arbeitsbelastung innerhalb der Kerne des Prozessors im Wesentlichen ausgeglichen ist.
-
In Schritt 35 ist die Korrelation aufgeteilt, um zu Identifizieren, welche Aufgaben mit welchem Kern verbunden sind, wenn die Aufgaben im ECU ausgeführt werden. Die Partition wählt eine Aufteilung bezüglich des entsprechenden Aufgabenknotens und den dazugehörigen Speicherknoten aus, basierend auf einer ausgeglichenen Arbeitsbelastung und minimierten Kommunikationskosten. Zusätzliche Aufteilung erfolgt auf der Basis der erforderlichen Anzahl der Kerne im ECU.
-
In Schritt 36 wird die ausgewählte Permutation verwendet, um die Aufgabenaufteilung der mehrkernigen ECU zu entwickeln und zu erstellen.
-
Während bestimmte Ausführungsformen der vorliegenden Erfindung in Einzelheiten beschrieben wurden, werden Fachleute auf dem Gebiet, auf das sich diese Erfindung bezieht, verschiedene alternative Entwürfe und Ausführungsformen für die Durchführung der Erfindung erkennen, wie durch die folgenden Patentansprüche bestimmt.