-
Die Erfindung betrifft eine elektronische Steuereinheit, die es ermöglicht, mehrere Aufgaben parallel auszuführen.
-
Herkömmlich wird eine exklusive Steuerung, die vorübergehend eine Aufgabenunterbrechung verhindert, um die Konsistenz gemeinsamer Daten aufrechtzuerhalten, durchgeführt, wenn es mehrere Aufgaben ermöglichen, auf die gemeinsamen Daten Bezug zu nehmen bzw. zuzugreifen und diese zu aktualisieren (vergleiche beispielsweise die Patentliteratur 1).
Patentliteratur 1:
JP-2003-131893 A
-
Jedoch kann in einem Fall, in dem mehrere Aufgaben parallel ausgeführt werden können, dann, wenn zumindest eine der mehreren Aufgaben, die parallel ausgeführt werden, daran gehindert wird, ausgeführt zu werden, um die Konsistenz gemeinsamer Daten zu bewahren, die Effizienz der Aufgabenausführung abnehmen.
-
Der Erfindung liegt als eine Aufgabe zugrunde, eine Technologie bereitzustellen, die verhindert, dass die Effizienz der Aufgabenausführung abnimmt.
-
Eine elektronische Steuereinheit gemäß der Erfindung beinhaltet eine erste Aufgabenausführungseinrichtung, eine zweite Ausgabenausführungseinrichtung und eine Ausführungsreihenfolgeänderungseinrichtung.
-
Die erste Aufgabenausführungseinrichtung führt mehrere Aufgaben in einer vorbestimmten ersten Ausführungsreihenfolge aus. Die zweite Aufgabenausführungseinrichtung führt mehrere Aufgaben in einer vorbestimmten zweiten Ausführungsreihenfolge parallel zu bzw. mit der ersten Aufgabenausführungseinrichtung aus.
-
Eine Aufgabe, die die erste Aufgabenausführungseinrichtung ausführt, entspricht einer ersten Aufgabe. Eine Aufgabe, die die zweite Aufgabenausführungseinrichtung ausführt, entspricht einer zweiten Aufgabe. Die Ausführungsreihenfolgeänderungseinrichtung ändert die erste Ausführungsreihenfolge und die zweite Ausführungsreihenfolge in einem Fall, in dem eine erste Aufgabenausführungszeit dann, wenn die erste Aufgabenausführungseinrichtung die erste Aufgabe ausführt, zumindest teilweise mit einer zweiten Aufgabenausführungszeit dann, wenn die zweite Aufgabenausführungseinrichtung die zweite Aufgabe ausführt, überlappt, so dass die erste Aufgabe und die zweite Aufgabe, deren Ausführungszeiten einander überlappen, eine vorbestimmte Ausführungserlaubnisbeziehung aufweisen, die eine parallele Ausführung erlaubt.
-
In Übereinstimmung mit der elektronischen Steuereinheit kann es möglich sein, die zweite Aufgabe, die parallel zu bzw. mit der ersten Aufgabe ausgeführt werden darf, anstelle einer zweiten Aufgabe auszuführen, deren Ausführung parallel zu bzw. mit der ersten Ausgabe nicht erlaubt ist, während die erste Aufgabe ausgeführt wird. Auf ähnliche Art und Weise kann es möglich sein, die erste Aufgabe, die parallel zu bzw. mit der zweiten Aufgabe ausgeführt werden darf, anstelle einer ersten Aufgabe auszuführen, deren Ausführung parallel zu bzw. mit der zweiten Aufgabe nicht erlaubt ist, während die zweite Aufgabe ausgeführt wird.
-
Daher kann es möglich sein, zumindest einen Fall zu verhindern, in dem die zweite Aufgabe nicht ausgeführt wird, während die erste Aufgabe ausgeführt wird, und/oder einen Fall zu verhindern, in dem die erste Aufgabe nicht ausgeführt wird, während die zweite Aufgabe ausgeführt wird, und kann es möglich sein, zu verhindern, dass die Effizienz der Aufgabenausführung abnimmt.
-
Die vorstehenden und weitere Ziele, Merkmale und Vorteile der Erfindung sind der nachfolgenden detaillierten Beschreibung unter Bezugnahme auf die beigefügten Zeichnungen deutlicher zu entnehmen. Es zeigen:
-
1 ein Blockdiagramm, das eine Konfiguration einer elektronischen Steuereinheit darstellt;
-
2 ein Ablaufdiagramm, das eine Aufgabenausführungsverarbeitung darstellt;
-
3 ein Diagramm, das ein eine Aufgabenausführungsreihenfolge in der Aufgabenausführungsverarbeitung änderndes Beispiel darstellt;
-
4 ein Diagramm, das ein einen Betriebsablauf von CPU-Kernen darstellendes erstes Zeitverlaufsdiagramm zeigt; und
-
5 ein Diagramm, das ein einen Betriebsablauf von CPU-Kernen darstellendes zweites Zeitverlaufsdiagramm zeigt; Nachstehend wird ein Ausführungsbeispiel der Erfindung unter Bezugnahme auf die Zeichnungen beschrieben.
-
Eine elektronische Steuereinheit 1 (die nachstehend als eine ECU 1 bezeichnet wird) in dem vorliegenden Ausführungsbeispiel ist in einem Fahrzeug verbaut, um einen (nicht gezeigten) Motor des Fahrzeugs zu steuern. Die elektronische Steuereinheit 1 bzw ECU 1 kann auch als eine elektronische Steuervorrichtung bezeichnet werden.
-
Die ECU 1 beinhaltet einen Mikrocomputer 2 wie in 1 gezeigt.
-
Der Mikrocomputer 2 steuert den Motor und gibt ein Steuersignal zum Steuern einer an dem Fahrzeug vorgesehenen elektrischen Last (beispielsweise ein Injektor) aus.
-
Der Mikrocomputer 2 beinhaltet CPU-Kerne (bzw. Kerne einer zentralen Verarbeitungseinheit) 11, 12, ein Flash-ROM 13, ein RAM 14 und einen Bus 15. Der Bus 15 verbindet die CPU-Kerne 11, 12, das Flash-ROM 13 und das RAM 14 miteinander.
-
Die CPU-Kerne 11, 12 beinhalten eine arithmetische Einheit bzw. Recheneinheit, ein Register oder dergleichen, um ein Programm durchzuführen.
-
Das Flash-ROM 13 ist ein nicht flüchtiger Speicher, der es ermöglicht, Daten neu einzuschreiben. Das Flash-ROM 13 speichert ein Betriebssystemprogramm 21, das ein Echtzeitbetriebssystem (nachstehend als ein RTOS bezeichnet) steuert, und ein Fahrzeugsteuerprogramm 22, das den in einem Fahrzeug verbauten Motor oder dergleichen steuert.
-
Das RAM 14 ist ein flüchtiger Speicher und speichert vorübergehend ein Betriebsablaufergebnis oder dergleichen der CPU-Kerne 11, 12. Das RAM 14 beinhaltet einen Warteschlangenspeicher 31, einen Warteschlangenspeicher 32, einen Ausführungsaufgabeinformationsspeicher 41 und einen Ausführungsaufgabeinformationsspeicher 42.
-
Das Fahrzeugsteuerprogramm 22 beinhaltet mehrere Aufgaben 50. Jede Aufgabe 50 beinhaltet ein Aufgabenprogramm 51 zum Ausführen einer entsprechenden Aufgabe, eine Aufgabenabhängigkeitsbeziehungsidentifikationsnummer 52, welche festgelegt ist, um eine Aufgabenabhängigkeitsbeziehung zu bestimmen, und eine Ausführungskerneinschränkungsinformation 53. Die Ausführungskerneinschränkungsinformation 53 stellt dar, ob ein eine entsprechende Aufgabe ausführender CPU-Kern (diesbezüglich) eingeschränkt ist bzw. ob Einschränkungen dahingehend bestehen, ob ein zur Ausführung einer Aufgabe vorgesehener CPU-Kern die Aufgabe ausführen muss bzw. darf.
-
Die Aufgabenabhängigkeitsbeziehungsidentifikationsnummer 52 in mehreren Aufgaben mit derselben Aufgabenabhängigkeitsbeziehung hat eine identische Nummer. Wenn zum Beispiel eine Aufgabe A die Aufgabenabhängigkeitsbeziehung mit einer Aufgabe B hat, ist die Aufgabenabhängigkeitsbeziehungsidentifikationsnummer 52 in der Aufgabe A und der Aufgabe B auf beispielsweise 0x00001234 festgelegt. Wenn die Aufgaben A, B keine Aufgabenabhängigkeitsbeziehung mit einer Aufgabe C haben, ist die Aufgabenabhängigkeitsbeziehungsidentifikationsnummer 52 der Aufgabe C auf beispielsweise 0x00005678 festgelegt.
-
Die Aufgabenabhängigkeitsbeziehung bestimmt, ob mehrere Aufgaben wechselseitig auf gemeinsame Daten Bezug nehmen bzw. zugreifen und diese aktualisieren. Wenn zum Beispiel die Aufgabe A und die Aufgabe B wechselseitig auf gemeinsame Daten zugreifen und diese aktualisieren, wird ermittelt, dass die Aufgabe A die Aufgabenabhängigkeitsbeziehung mit der Aufgabe B hat.
-
Nebenbei bemerkt kann hierin die Aufgabenabhängigkeitsbeziehungsidentifikationsnummer 52 ein Beispiel einer Erlaubnisbeziehungsidentifikationsinformation sein, und kann hierin die Aufgabenabhängigkeitsbeziehung ein Beispiel einer Ausführungserlaubnisbeziehung sein.
-
Die Ausführungskerneinschränkungsinformation 53 ist zum Beispiel auf 1 festgelegt, wenn ein CPU-Kern, der eine entsprechende Aufgabe ausführt, eingeschränkt bzw. limitiert ist, und ist auf zum Beispiel 0 festgelegt, wenn ein CPU-Kern, der die entsprechende Aufgabe ausführt, nicht eingeschränkt bzw. nicht limitiert ist.
-
Die CPU-Kerne 11, 12 führen ein Betriebssystemprogramm 21 aus, das in dem Flash-ROM 13 gespeichert ist, um das RTOS auszuführen.
-
Wenn eine Aufgabenverarbeitungsanforderung, die eine Ausführung einer das Fahrzeugsteuerprogramm 22 konfigurierenden Aufgabe anfordert, auftritt, führt das RTOS einen Ablaufplan durch, um eine Ausführungsreihenfolge von Aufgaben derart zu bestimmen, dass eine Aufgabe mit einer hohen Aufgabenpriorität auf der Grundlage einer Aufgabenpriorität vorrangig ausgeführt wird. Die Aufgabenpriorität wird für die Aufgabe im Voraus festgelegt.
-
Im Einzelnen stellt die Aufgabenadressinformation eine Anfangs- bzw. Kopfadresse dar, die bzw. an der ein entsprechendes Aufgabenprogramm 51 speichert bzw. abgelegt ist. Das RTOS ordnet die Aufgabenadressinformation in absteigender Reihenfolge der Aufgabenprioritäten an. Das RTOS speichert die Aufgabenadressinformation in den Warteschlangenspeicher 31 oder den Warteschlangenspeicher 32 und bestimmt eine Ausführungsreihenfolge der auf die Ausführung wartenden Aufgaben. Folglich ist es durch Extrahieren der Aufgabenadressinformation mit der frühesten Ausführungsreihenfolge bzw. dem frühesten Ausführungszeitpunkt aus dem Warteschlangenspeicher 31 oder dem Warteschlangenspeicher 32 möglich, eine Aufgabe in der Ausführungsreihenfolge auszuführen, welche durch das RTOS festgelegt ist.
-
In der ECU 1 führen die CPU-Kerne 11, 12 eine Aufgabenausführungsverarbeitung aus.
-
Die durch den CPU-Kern 11 (12) ausgeführte Aufgabenausführungsverarbeitung wird nachstehend erklärt. Die Aufgabenausführungsverarbeitung wird jedes Mal dann ausgeführt, wenn die Aufgabenadressinformation mit der frühesten Ausführungsreihenfolge aus dem Warteschlangenspeicher 31 (32) extrahiert wird.
-
Wenn die Aufgabenausführungsverarbeitung ausgeführt wird, führt der CPU-Kern 11 (12) eine Verarbeitung wie in 2 beschrieben durch. In einem Schritt S10 liest der CPU-Kern 11 (12) die Aufgabenabhängigkeitsbeziehungsidentifikationsnummer 52 des in einer Kopfadresse gespeicherten Aufgabenprogramms 51 (nachstehend als eine extrahierte Aufgabenadresse oder Extraktionsaufgabenadresse bezeichnet), die die extrahierte Aufgabenadressinformation darstellt, aus dem Flash-ROM 13 auf der Grundlage der extrahierten Aufgabenadresse. Die Aufgabenabhängigkeitsbeziehungsidentifikationsnummer 52 wird in eine Adresse gespeichert, die dem Additionswert entspricht, der durch Addieren eines vorbestimmten Identifikationsnummersuchwerts zu einem Wert der Kopfadresse erhalten wird. Alle Aufgaben 50, die das Fahrzeugsteuerprogramm 22 konfigurieren bzw. bilden, verwenden in dem vorliegenden Ausführungsbeispiel den identischen Identifikationsnummersuchwert. Die Aufgabenabhängigkeitsbeziehungsidentifikationsnummer 52, welche aus dem Flash-ROM 13 gelesen wird, wird als eine Bestimmungsobjektaufgabenidentifikationsnummer 52 bezeichnet.
-
In einem Schritt S20 wird die in dem Ausführungsaufgabeninformationsspeicher 42 (41) gespeicherte Aufgabenabhängigkeitsbeziehungsidentifikationsnummer 52 gelesen. Die Aufgabenabhängigkeitsbeziehungsidentifikationsnummer 52, die in Schritt S20 gelesen wird, wird als eine Ausführungsaufgabenidentifikationsnummer 52 bezeichnet.
-
In einem Schritt S30 wird ermittelt, ob die Aufgabenabhängigkeitsbeziehungsidentifikationsnummer 52 (entsprechend zu einer neuesten Bestimmungsobjektaufgabenidentifikationsnummer 52), welche als letzte aus dem Flash-ROM 13 gelesen wird, mit der Aufgabenabhängigkeitsbeziehungsidentifikationsnummer 52 (entsprechend zu der Ausführungsaufgabenidentifikationsnummer 52), welche in Schritt S20 gelesen wird, übereinstimmt.
-
Wenn die neueste Bestimmungsobjektaufgabenidentifikationsnummer 52 mit der Ausführungsaufgabenidentifikationsnummer 52 übereinstimmt (S30: JA), wird in einem Schritt S40 die in der Kopfadresse gespeicherte Ausführungskerneinschränkungsinformation 53 des Aufgabenprogramms 51 aus dem Flash-ROM 13 auf der Grundlage einer neuesten Extraktionsaufgabenadresse gelesen. Die Ausführungskerneinschränkungsinformation 53 wird an eine Adresse eines Additionswerts, der durch Addieren eines vorbestimmten Einschränkungsinformationssuchwerts zu dem Wert der Kopfadresse erhalten wurde, gespeichert. Alle das Fahrzeugsteuerprogramm 22 konfigurierenden Aufgaben 50 verwenden denselben Einschränkungsinformationssuchwert.
-
In einem Schritt S50 wird auf der Grundlage der in Schritt S40 gelesenen Ausführungskerneinschränkungsinformation 53 ermittelt, ob der CPU-Kern 11 (12) es erfordert, eine Aufgabe (nachstehend als eine Bestimmungsobjektaufgabe bezeichnet) auszuführen, die durch ein an der neuesten Extraktionsaufgabenadresse gespeichertes Aufgabenprogramm 51 ausgeführt wird. Im Einzelnen wird dann, wenn die Ausführungskerneinschränkungsinformation 53, welche ausgelesen wurde, auf 1 gesetzt ist, ermittelt, dass der CPU-Kern 11 (12) die Aufgabe ausführt. Wenn die Ausführungskerneinschränkungsinformation 53 auf 0 gesetzt ist, wird ermittelt, dass der CPU-Kern 11 (12) die Aufgabe nicht ausführen muss bzw. darf, d. h., es wird ermittelt, dass die Aufgabe durch den CPU-Kern 11 (12) nicht auszuführen ist.
-
Wenn der CPU-Kern 11 (12) die Bestimmungsobjektaufgabe nicht ausführt (S50: NEIN), wird (zur Bezugnahme auf einen anderen CPU-Kern) eine Anderkernspeicheranweisung i in einem Schritt S60 inkrementiert (d. h., 1 wird zu der Anderkernspeicheranweisung i addiert). Die Anderkernspeicheranweisung i kann auch als eine andere Kern-Speicheranweisung i bezeichnet werden. Darüber hinaus wird in einem Schritt S70, damit eine Aufgabe, die der durch die neueste Extraktionsaufgabenadresse dargestellte Aufgabenadressinformation entsprechenden Aufgabe entspricht, in einer durch die Anderkernspeicheranweisung i dargestellten Ausführungsreihenfolge ausgeführt wird, die Aufgabenadressinformation in den Warteschlangenspeicher 32 (31) gespeichert. Die Ausführungsreihenfolge der auf Ausführung wartenden Aufgabe in dem CPU Kern 12 (11) wird neu bestimmt, und die Verarbeitung schreitet zu einem Schritt S100 fort. Wenn zum Beispiel der Anderkernspeicheranweisungswert i gleich 1 ist, wird die die neueste Extraktionsaufgabenadresse darstellende Aufgabenadressinformation in den Warteschlangenspeicher 32 (31) gespeichert, so dass die Ausführungsreihenfolge in der auf Ausführung wartenden Aufgaben in dem CPU Kern 12 (11) die erste wird bzw. als erste zur Ausführung kommt.
-
Die Anderkernspeicheranweisung kann auch als eine anderer-Kern-Speicheranweisung bezeichnet werden.
-
Wenn der CPU-Kern 11 (12) (als ein Subjekt-Kern bzw. aktuell betrachteter Kern) die Bestimmungsobjektaufgabe (als ein Ziel der Ausführung) ausführen muss (S50: JA), wird ein Subjektkernspeicheranweisungswert j in einem Schritt S80 inkrementiert. In einem Schritt S90 wird, damit eine Aufgabe, die der die neueste Extraktionsaufgabenadresse darstellenden Aufgabenadresseninformation entspricht, nächstliegend zu der durch den Subjektkernspeicheranweisungswert j dargestellten Ausführungsreihenfolge ausgeführt wird, die Aufgabenadressinformation in dem Warteschlangenspeicher 31 (32) gespeichert. Die Ausführungsreihenfolge der auf Ausführung wartenden Aufgaben in dem CPU Kern 11 (12) wird neu bestimmt, und die Verarbeitung schreitet zu Schritt S100 fort. Wenn zum Beispiel der Subjektkernspeicheranweisungswert j gleich 1 ist, wird die Aufgabenadressinformation, die die neueste Extraktionsaufgabenadresse darstellt, in den Warteschlangenspeicher 31 (32) gespeichert, so dass die Ausführungsreihenfolge in den auf Ausführung wartenden Aufgaben in dem CPU-Kern 11 (12) die zweitnächste wird bzw. als zweite zur Ausführung kommt.
-
Wenn die Verarbeitung zu Schritt S100 fortschreitet, wird die Aufgabenadressinformation, die zurzeit die früheste Ausführungsreihenfolge hat, aus dem Warteschlangenspeicher 31 (32) gelesen. Dann schreitet die Verarbeitung zu Schritt S30 fort.
-
Nebenbei bemerkt schreitet in Schritt S30 dann, wenn die neueste Bestimmungsobjektaufgabenidentifikationsnummer 52 nicht mit der Ausführungsaufgabenidentifikationsnummer 52 übereinstimmt (S30: NEIN), die Verarbeitung zu einem Schritt S110 fort. In Schritt S110 werden der Anderkernspeicheranweisungswert i und der Subjektkernspeicheranweisungswert j auf 0 gesetzt. In einem Schritt S120 speichert der Ausführungsaufgabeninformationsspeicher 41 (42) die neueste Bestimmungsobjektaufgabenidentifikationsnummer 52, so dass der Ausführungsaufgabeninformationsspeicher 41 (42) Information überschreibt. In einem Schritt S130 wird auf der Grundlage der neuesten Extraktionsaufgabenadresse das Aufgabenprogramm 51 aus dem Flash-ROM 13 gelesen, wird eine Aufgabe ausgeführt, und wird eine Aufgabenausführungsverarbeitung abgeschlossen.
-
Nachstehend wird ein Beispiel dahingehend, dass die Warteschlangenspeicher 31, 32 die Aufgabenadressinformation speichern, erklärt.
-
Zum Beispiel speichert der Warteschlangenspeicher 31 die Aufgabenadressinformation einer Aufgabe B, einer Aufgabe C, und einer Aufgabe D in der Reihenfolge einer frühen Ausführung der auf Ausführung wartenden Aufgaben wie in 3 gezeigt. Der Warteschlangenspeicher 32 speichert die Aufgabenadressinformation einer Aufgabe P, eine Aufgabe Q, einer Aufgabe R, einer Aufgabe S und einer Aufgabe T in der Reihenfolge einer frühen Ausführung von auf Ausführung wartenden Aufgaben.
-
Darüber hinaus wird angenommen, dass der CPU-Kern 11 eine Aufgabe A ausführt, und der CPU-Kern 12 damit beginnt, eine neue Aufgabe auszuführen.
-
Zu diesem Zeitpunkt liest der CPU-Kern 12 initial die Aufgabenadressinformation der Aufgabe P aus dem Warteschlangenspeicher 32. Es sei angenommen, dass die Aufgabe P die Aufgabenabhängigkeitsbeziehung mit der Aufgabe A hat, und dass der CPU-Kern 12 die Aufgabe P nicht ausführen muss bzw. darf. Die Aufgabenadressinformation der Aufgabe P wird in den Warteschlangenspeicher 31 gespeichert (vergleiche einen Pfeil AL1), so dass die Ausführungsreihenfolge in den auf Ausführung wartenden Aufgaben in dem CPU Kern 11 die erste wird bzw. als erste zur Ausführung kommt. Demgemäß speichert der Warteschlangenspeicher 31 die Aufgabenadressinformation der Aufgabe P, der Aufgabe B, der Aufgabe C und der Aufgabe D in der Reihenfolge einer frühen Ausführung der auf Ausführung wartenden Aufgaben (vergleiche einen Pfeil AL1). Der Warteschlangenspeicher 32 speichert die Aufgabe Q, die Aufgabe R, die Aufgabe S und die Aufgabe P in der Reihenfolge einer frühen Ausführung der auf Ausführung wartenden Aufgaben (vergleiche einen Pfeil AL11).
-
Darauffolgend liest der CPU Kern 12 die Aufgabenadressinformation der Aufgabe Q aus dem Warteschlangenspeicher 32. Es sei angenommen, dass die Aufgabe Q die Aufgabenabhängigkeitsbeziehung mit der Aufgabe A hat, und dass der CPU-Kern 12 die Aufgabe Q nicht ausführen muss. Daher wird die Aufgabenadressinformation der Aufgabe Q in den Warteschlangenspeicher 31 gespeichert (vergleiche einen Pfeil AL2), so dass die Ausführungsreihenfolge in den auf Ausführung wartenden Aufgaben in dem CPU Kern 11 die zweite wird bzw. als zweite zur Ausführung kommt. Demgemäß speichert der Warteschlangenspeicher 31 die Aufgabenadressinformation der Aufgabe P, der Aufgabe Q, der Aufgabe B, der Aufgabe C und der Aufgabe D in der Reihenfolge einer frühen Ausführung der auf Ausführung wartenden Aufgaben (vergleiche einen Pfeil AL12). Der Warteschlangenspeicher 32 speichert die Aufgabe R, die Aufgabe S und die Aufgabe T in der Reihenfolge einer frühen Ausführung der auf Ausführung wartenden Aufgaben (vergleiche einen Pfeil AL12).
-
Darauf folgend liest der CPU Kern 12 die Aufgabenadressinformation der Aufgabe R aus dem Warteschlangenspeicher 32. Es sei angenommen, dass die Aufgabe R die Aufgabenabhängigkeitsbeziehung mit der Aufgabe A hat, und dass der CPU-Kern 12 die Aufgabe R ausführen muss. Daher wird die Aufgabenadressinformation der Aufgabe R in den Warteschlangenspeicher 32 gespeichert (vergleiche einen Pfeil AL3), so dass die Ausführungsreihenfolge in den auf Ausführung wartenden Aufgaben in dem CPU-Kern 12 die zweite wird bzw. als zweite zur Ausführung kommt. Folglich speichert der Warteschlangenspeicher 32 die Aufgabe S, die Aufgabe R und die Aufgabe T in der Reihenfolge einer frühen Ausführung der auf Ausführung wartenden Aufgaben (vergleiche einen Pfeil AL13).
-
Der CPU-Kern 12 liest die Aufgabenadressinformation der Aufgabe S aus dem Warteschlangenspeicher 32. Es sei angenommen, dass die Aufgabe S die Aufgabenabhängigkeitsbeziehung mit der Aufgabe A hat, und dass der CPU-Kern 12 die Aufgabe S ausführen muss. Daher wird die Aufgabenadressinformation der Aufgabe S in den Warteschlangenspeicher 32 gespeichert (vergleiche einen Pfeil AL4), so dass die Ausführungsreihenfolge in den auf Ausführung wartenden Aufgaben in dem CPU-Kern 12 die dritte wird bzw. als dritte zur Ausführung kommt. Folglich speichert der Warteschlangenspeicher 32 die Aufgabe T, die Aufgabe R und die Aufgabe S in der Reihenfolge einer frühen Ausführung der auf Ausführung wartenden Aufgaben (vergleiche einen Pfeil AL13).
-
Der CPU-Kern 12 liest die Aufgabenadressinformation der Aufgabe T aus dem Warteschlangenspeicher 32. Es sei angenommen, dass die Aufgabe T keine Aufgabenabhängigkeitsbeziehung mit der Aufgabe A hat. Daher liest der CPU-Kern 12 das Aufgabenprogramm 51 der Aufgabe T aus dem Flash-ROM 13 und führt die Aufgabe T aus.
-
In Übereinstimmung mit der ECU 1 führt der CPU-Kern 11 sequenziell mehrere Aufgaben in einer Ausführungsreihenfolge (die als eine erste Ausführungsreihenfolge bezeichnet wird), die durch den Warteschlangenspeicher 31 bestimmt wird, aus (S130). Darüber hinaus führt der CPU-Kern 12 sequenziell mehrere Aufgaben in einer Ausführungsreihenfolge (die als eine zweite Ausführungsreihenfolge bezeichnet wird), die durch den Warteschlangenspeicher 32 bestimmt wird, aus (S130).
-
Die ECU 1 ändert die erste Ausführungsreihenfolge und die zweite Ausführungsreihenfolge dann, wenn eine Ausführungszeit dann, wenn der CPU-Kern 11 eine Aufgabe ausführt, mit einer Ausführungszeit dann, wenn der CPU-Kern 12 eine Aufgabe ausführt, überlappt, so dass die durch den CPU-Kern 11 ausgeführte Aufgabe keine Abhängigkeit mit der durch den CPU-Kern 12 ausgeführten Aufgabe aufweist (S10 bis S100).
-
Es kann möglich sein, dass während der CPU-Kern 11 eine Aufgabe ausführt, der CPU-Kern 12 eine Aufgabe ausführt, die parallel zu der durch den CPU-Kern 11 ausgeführten Aufgabe ausgeführt werden darf, anstelle einer Aufgabe, die nicht parallel zu der durch den CPU-Kern 11 ausgeführten Aufgabe ausgeführt werden darf. Es kann möglich sein, dass während der CPU-Kern 12 eine Aufgabe ausführt, der CPU-Kern 11 eine Aufgabe ausführt, die parallel zu der durch den CPU-Kern 12 ausgeführten Aufgabe ausgeführt werden darf, anstelle einer Aufgabe, die nicht parallel zu der durch den CPU-Kern 12 ausgeführten Aufgabe ausgeführt werden darf.
-
Daher kann es möglich sein, einen Fall zu verhindern, in dem der CPU-Kern 12 keine Aufgabe ausführt, während der CPU-Kern 11 eine Aufgabe ausführt, und einen Fall zu verhindern, in dem der CPU-Kern 11 keine Aufgabe ausführt, während der CPU-Kern 12 eine Aufgabe ausführt, und kann es möglich sein, zu verhindern, dass sich die Effizienz der Aufgabenausführung verringert.
-
Der CPU-Kern 11 ermittelt, ob eine primäre Aufgabe in der ersten Ausführungsreihenfolge die Aufgabenabhängigkeitsbeziehung mit bzw. zu einer Aufgabe aufweist, die der CPU-Kern 12 ausführt (S30). Wenn der CPU-Kern 11 ermittelt, dass die Aufgabenabhängigkeitsbeziehung vorliegt (S30: JA), ändert der CPU-Kern 11 die erste Ausführungsreihenfolge so, dass die Ausführungsreihenfolge der Aufgabe, die einem Bestimmungsobjekt entspricht, später liegt als erste (S90). Der CPU-Kern 12 ermittelt, ob eine primäre Aufgabe in der zweiten Ausführungsreihenfolge die Aufgabenabhängigkeitsbeziehung mit einer Aufgabe aufweist, die der CPU-Kern 11 ausführt (S30). Wenn der CPU-Kern 12 ermittelt, dass die Aufgabenabhängigkeitsbeziehung vorliegt (S30: JA), ändert der CPU-Kern 12 die zweite Ausführungsreihenfolge so, dass eine Ausführungsreihenfolge der Aufgabe, die einem Bestimmungsobjekt entspricht, später liegt als die erste (S90).
-
Nebenbei bemerkt entspricht die primäre Aufgabe in jeder der ersten Ausführungsreihenfolge und der zweiten Ausführungsreihenfolge einer Aufgabe, die in jeder der Reihenfolgen an der ersten Stelle platziert ist.
-
Es kann möglich sein, dass die ECU 1 den CPU-Kern 11 veranlasst, eine Aufgabe auszuführen, die die Aufgabenabhängigkeitsbeziehung mit einer Aufgabe aufweist, die der CPU-Kern 12 ausgeführt hat, nach dem der CPU-Kern 12 eine Ausführung der Aufgabe beendet. Es kann möglich sein, dass die ECU 1 den CPU-Kern 12 veranlasst, eine Aufgabe auszuführen, die die Aufgabenabhängigkeitsbeziehung mit einer Aufgabe aufweist, die der CPU-Kern 11 ausgeführt hat, nach dem der CPU-Kern 11 eine Ausführung der Aufgabe beendet.
-
Zum Beispiel sei wie in 4 gezeigt angenommen, dass der CPU-Kern 11 eine Aufgabe A ausführt, und der CPU-Kern 12 damit beginnt, eine neue Aufgabe auszuführen. Zu diesem Zeitpunkt führt der CPU-Kern 12 eine Aufgabe G aus, die die Aufgabenabhängigkeitsbeziehung mit der Aufgabe A nicht aufweist, anstelle einer Aufgabe F, die die Aufgabenabhängigkeitsbeziehung mit der Aufgabe A aufweist. Der CPU-Kern 12 führt die Aufgabe F aus, nachdem die Aufgabe A und die Aufgabe G abgeschlossen sind.
-
Der CPU-Kern 11 ermittelt, ob eine primäre Aufgabe in der ersten Ausführungsreihenfolge die Aufgabenabhängigkeitsbeziehung mit einer Aufgabe aufweist, die der CPU-Kern 12 ausführt (S30). Wenn der CPU-Kern 11 ermittelt, dass die Aufgabenabhängigkeitsbeziehung vorliegt (S30: JA), ändert der CPU-Kern 11 die erste Ausführungsreihenfolge und die zweite Ausführungsreihenfolge so, dass der CPU-Kern 12 die Aufgabe entsprechend einem Bestimmungsobjekt ausführt (S70). Der CPU-Kern 12 ermittelt, ob eine primäre Aufgabe in der zweiten Ausführungsreihenfolge die Aufgabenabhängigkeitsbeziehung mit einer Aufgabe aufweist, die der CPU-Kern 11 ausführt (S30). Wenn der CPU-Kern 12 ermittelt, dass die Aufgabenabhängigkeitsbeziehung vorliegt (S30: JA), ändert der CPU-Kern 12 die erste Ausführungsreihenfolge und die zweite Ausführungsreihenfolge so, dass der CPU-Kern 11 die einem Bestimmungsobjekt entsprechende Aufgabe ausführt (S70).
-
Es kann möglich sein, dass die ECU 1 den CPU-Kern 12 veranlasst, eine Aufgabe auszuführen, die die Aufgabenabhängigkeitsbeziehung mit einer Aufgabe aufweist, die der CPU-Kern 12 ausgeführt hat, nach dem der CPU-Kern 12 eine Ausführung der Aufgabe beendet. Es kann möglich sein, dass die ECU 1 den CPU-Kern 12 veranlasst, eine Aufgabe auszuführen, die die Aufgabenabhängigkeitsbeziehung mit einer Aufgabe aufweist, die der CPU-Kern 11 ausgeführt hat, nach dem der CPU-Kern 11 eine Ausführung der Aufgabe beendet.
-
Zum Beispiel sei wie in 5 gezeigt angenommen, dass der CPU-Kern 11 eine Aufgabe A ausführt, und der CPU-Kern 12 damit beginnt, eine neue Aufgabe auszuführen. Zu diesem Zeitpunkt führt der CPU-Kern 12 eine Aufgabe G aus, die die Aufgabenabhängigkeitsbeziehung mit der Aufgabe A nicht aufweist, anstelle einer Aufgabe F, die die Aufgabenabhängigkeitsbeziehung mit der Aufgabe A aufweist. Nachdem die Aufgabe A abgeschlossen ist, führt der CPU-Kern 11 die Aufgabe F aus.
-
Wenn der CPU-Kern 11 ermittelt, dass eine primäre Aufgabe in der ersten Ausführungsreihenfolge die Aufgabenabhängigkeitsbeziehung mit einer Aufgabe aufweist, die der CPU-Kern 12 ausführt (S30: JA), ermittelt der CPU-Kern 11, ob der CPU-Kern 12 die dem Bestimmungsobjekt entsprechende Aufgabe nicht ausführen darf (S50). Wenn der CPU-Kern 11 ermittelt, dass der CPU-Kern 12 die Aufgabe nicht ausführen darf (S50: JA), ändert der CPU-Kern 11 die erste Ausführungsreihenfolge so, dass die Ausführungsreihenfolge der dem Bestimmungsobjekt entsprechenden Aufgabe später liegt als erste (S90). Wenn der CPU-Kern 11 ermittelt, dass der CPU-Kern 12 nicht daran gehindert ist, die Aufgabe auszuführen (S50: NEIN), ändert der CPU-Kern 11 die erste Ausführungsreihenfolge und die zweite Ausführungsreihenfolge so, dass der CPU-Kern 12 die dem Bestimmungsobjekt entsprechende Aufgabe ausführt (S70).
-
Wenn der CPU-Kern 12 ermittelt, dass eine primäre Aufgabe in der zweiten Ausführungsreihenfolge die Aufgabenabhängigkeitsbeziehung mit einer Aufgabe aufweist, die der CPU-Kern 11 ausführt (S30: JA), ermittelt der CPU-Kern 12, ob der CPU-Kern 12 die dem Bestimmungsobjekt entsprechende Aufgabe nicht ausführen darf (S50). Wenn der CPU-Kern 12 ermittelt, dass der CPU-Kern 11 die Aufgabe nicht ausführen darf (S50: JA), ändert der CPU-Kern 12 die zweite Ausführungsreihenfolge so, dass die Ausführungsreihenfolge der dem Bestimmungsobjekt entsprechenden Aufgabe später liegt als erste (S90). Wenn der CPU-Kern 12 ermittelt, dass der CPU-Kern 11 nicht daran gehindert ist, die Aufgabe auszuführen (S50: NEIN), ändert der CPU-Kern 12 die erste Ausführungsreihenfolge und die zweite Ausführungsreihenfolge so, dass der CPU-Kern 11 die dem Bestimmungsobjekt entsprechende Aufgabe ausführt (S70).
-
Demgemäß kann es möglich sein, dass die ECU 1 den CPU-Kern 11 veranlasst, sicher eine Aufgabe auszuführen, welche der CPU-Kern 12 nicht ausführen darf. Es kann möglich sein, dass die ECU 1 den CPU-Kern 12 veranlasst, sicher eine Aufgabe auszuführen, welche der CPU-Kern 11 nicht ausführen darf.
-
Mehrere Aufgaben, die nicht wechselseitig die Aufgabenabhängigkeitsbeziehung aufweisen, haben unterschiedliche Aufgabenabhängigkeitsbeziehungsidentifikationsnummern 52. Die ECU 1 vergleicht die Aufgabenabhängigkeitsbeziehungsidentifikationsnummer 52, die für eine durch den CPU-Kern 11 ausgeführte Aufgabe festgelegt ist, mit der Aufgabenabhängigkeitsbeziehungsidentifikationsnummer 52, die für eine durch den CPU-Kern 12 ausgeführte Aufgabe festgelegt ist, so dass die ECU 1 ermittelt, ob die Aufgabenabhängigkeitsbeziehung vorliegt.
-
Demgemäß kann es möglich sein, dass die ECU 1 in einer einfachen Art und Weise dadurch, ob die Aufgabenabhängigkeitsbeziehungsidentifikationsnummern 52 identisch zueinander sind, ermittelt, ob die Aufgabenabhängigkeitsbeziehung vorliegt.
-
In dem vorliegenden Ausführungsbeispiel entspricht eine Verarbeitung in Schritt S130 durch den CPU-Kern 11 einer ersten Aufgabenausführungseinrichtung, entspricht eine Verarbeitung in Schritt S130 durch den CPU-Kern 12 einer zweiten Aufgabenausführungseinrichtung, und entspricht eine Verarbeitung in den Schritten S10 bis S100 durch die CPU-Kerne 11, 12 einer Ausführungsreihenfolgeänderungseinrichtung.
-
Eine Verarbeitung in Schritt S30 durch den CPU-Kern 11 entspricht einer ersten Beziehungsermittlungseinrichtung, eine Verarbeitung in Schritt S90 durch den CPU-Kern 11 entspricht einer ersten Änderungseinrichtung, eine Verarbeitung in Schritt S30 durch den CPU-Kern 12 entspricht einer zweiten Beziehungsermittlungseinrichtung, eine Verarbeitung in Schritt S90 durch den CPU-Kern 12 entspricht einer zweiten Änderungseinrichtung, eine Verarbeitung in Schritt S70 durch den CPU-Kern 11 entspricht einer dritten Änderungseinrichtung, und eine Verarbeitung in Schritt S70 durch den CPU-Kern 12 entspricht einer vierten Änderungseinrichtung.
-
Eine Verarbeitung in Schritt S50 durch den CPU-Kern 11 entspricht einer ersten Verhinderungsbestimmungseinrichtung, eine Verarbeitung in Schritt S90 durch den CPU-Kern 11 entspricht einer ersten Ausführungsreihenfolgeänderungseinrichtung, eine Verarbeitung in Schritt S70 durch den CPU-Kern 11 entspricht einer zweiten Ausführungsreihenfolgeänderungseinrichtung, eine Verarbeitung in Schritt S50 durch den CPU-Kern 12 entspricht einer zweiten Verhinderungsbestimmungseinrichtung, eine Verarbeitung in Schritt S90 durch den CPU-Kern 12 entspricht einer dritten Ausführungsreihenfolgeänderungseinrichtung, und eine Verarbeitung in Schritt S70 durch den CPU-Kern 12 entspricht einer vierten Ausführungsreihenfolgeänderungseinrichtung.
-
In dem vorliegenden Ausführungsbeispiel beinhaltet der Mikrocomputer zwei CPU-Kerne als Beispiel. Der Mikrocomputer kann drei oder mehr CPU-Kerne beinhalten.
-
Der Mikrocomputer in dem vorliegenden Ausführungsbeispiel beinhaltet mehrere CPU-Kerne. Der Mikrocomputer kann jedoch einen CPU-Kern beinhalten, und kann unter Verwendung einer Ressource des einen CPU-Kerns in zeitlicher Aufteilung als mehrere CPU-Kerne arbeiten, die virtuell existieren.
-
Während die Erfindung unter Bezugnahme auf bevorzugte Ausführungsbeispiele derselben beschrieben wurde, versteht sich, dass die Offenbarung nicht auf die bevorzugten Ausführungsbeispiele und Anordnungen beschränkt ist. Die Offenbarung zielt darauf ab, verschiedene Modifikationen und äquivalente Anordnungen abzudecken. Während verschiedene Kombinationen und Konfigurationen bevorzugt sind, liegen darüber hinaus andere Kombinationen und Konfigurationen mit mehr, weniger oder nur einem einzelnen Element ebenfalls innerhalb des Schutzumfangs der Erfindung.
-
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
-