-
Die vorliegende Erfindung betrifft ein Verfahren zur Ausführung einer Vielzahl von Tasks bzw. Prozessen auf der Grundlage yon Prioritätsstufen, die den Tasks bzw. Prozessen zugewiesen sind.
-
Bei einer elektronischen Steuerungseinheit (ECU), die in einem Fahrzeug eingebaut ist, sollen einige in einem zugehörigen Steuerungsprogramm beinhaltete Verarbeitungen bzw. Prozesse in Echtzeit ausgeführt werden, um eine ausreichende Steuerungsansprechempfindlichkeit bereitzustellen sowie die Sicherheit des Fahrers zu gewährleisten. Dementsprechend umfasst das Steuerungsprogramm eine Vielzahl von Prozessen, von denen jeder eine Laufeinheit darstellt, wobei eine von drei Prioritätsstufen jedem Prozess zugewiesen ist. Genauer gesagt umfasst das Steuerungsprogramm drei Aufgaben bzw. Tasks, d. h. eine Task hoher Priorität, eine Task mittlerer Priorität und eine Task niedriger Priorität, wobei die Prozesse in die drei Tasks aufgeteilt sind. Das Steuerungsprogramm wird zwischen diesen Tasks umschaltend ausgeführt, so dass Prozesse höherer Priorität bevorzugt ausgeführt werden. Somit werden die Prozesse hoher Priorität in Echtzeit ausgeführt.
-
Wenn Prozesse, die unterschiedliche Prioritätsstufen aufweisen, den selben Speicherbereich manipulieren bzw. bearbeiten, stören sich diese Prozesse in diesem Fall, wie es nachstehend beschrieben ist. Unter Bezugnahme auf 5 liest ein Prozess niedriger Priorität ein Byte (8 Bit) Daten ”0000 0000” aus dem geteilten Speicherbereich in einem Schritt A aus. Daraufhin wird ein Umschalten von der Task niedrigerer Priorität zu der Task höherer Priorität ausgeführt, und ein Prozess höherer Priorität liest ein Byte Daten ”0000 0000” aus dem geteilten Speicherbereich in einem Schritt C aus. Dann bearbeitet der. Prozess höherer Priorität die Daten ”0000 0000” (d. h., er setzt das niedrigstwertige Bit (LSB)) und schreibt die resultierenden Daten ”0000 0001” in den geteilten Speicherbereich in Schritt D. Daraufhin bearbeitet der Prozess niedrigerer Priorität die abgerufenen Daten ”0000 0000” (d. h., er setzt das zweite LSB) und schreibt die resultierenden Daten ”0000 0010” in den geteilten Speicherbereich in Schritt B. Somit überschreibt der Prozess niedrigerer Priorität das LSB oder setzt das LSB zurück, das durch den Prozess höherer Priorität gesetzt worden ist.
-
Ferner ändern sich in dem Fall, dass der Prozess niedrigerer Priorität wiederholt Daten aus dem geteilten Speicherbereich ausliest, die durch den Prozess niedrigerer Priorität auszulesenden Daten auf halben Wege, wenn der Prozess höherer Priorität zwischenzeitlich Daten in den geteilten Speicherbereich schreibt.
-
Die ECU weist üblicherweise ein Selbstdiagnosenmerkmal zur automatischen Überprüfung des Betriebszustands von Computern und darin enthaltenen Sensoren bei geeigneten Zeitabständen auf. Falls ein Fehler erfasst wird, werden Informationen über den Fehler gespeichert, so dass ein zuständiger Werkstattmitarbeiter den Fehlertyp erkennen kann.
-
Die Fehlererfassung wird für verschiedene Sensoren ausgeführt, die beispielsweise einen Kurbelwinkelsensor, einen Nockenwinkelsensor und einen Kühlmitteltemperatursensor. Die Gegenstände für eine Fehlererfassung zählen beinahe 200. Folglich ist, wenn Speicherbereiche zur Speicherung von Fehlerinformationen entsprechend den jeweiligen Gegenständen byteweise zugeteilt sind, insgesamt ein großer Speicherbereichplatz erforderlich. Folglich ist es zu bevorzugen, dass Speicherbereiche für eine effektive Verwendung der Ressourcen bitweise zugeteilt werden.
-
Die ECU verwendet jedoch üblicherweise einen Computer mit reduziertem Befehlsvorrat (reduced instruction set computer bzw. RISC), der keinen Bitmanipulationsbefehl bzw. Bitbearbeitungsbefehl aufweist. Folglich werden in der ECU Speicherbereiche zur Speicherung von Fehlerinformationen bitweise zugeteilt, aber eine Speichermanipulation bzw. Speicherbearbeitung wird byteweise ausgeführt. Folglich besteht jede Möglichkeit, dass eine Vielzahl von Prozessen den selben Speicherbereich manipuliert bzw. bearbeitet, und folglich besteht die Möglichkeit, dass sich die Prozesse einander stören.
-
Um derartige Störungen zu überwinden, ist vorgeschlagen worden, dass ein Umschalten von der Task niedrigerer Priorität zu der Task höherer Priorität verhindert wird, während der Prozess niedrigerer Priorität eine Speicherbearbeitung ausführt. In diesem Fall werden alle Prozesse höherer Priorität an einer Ausführung, die die Ausführung des Prozesses niedrigerer Priorität unterbricht, gehindert, während der Prozess niedrigerer Priorität die Speicherbearbeitung ausführt. Das heißt, selbst Prozesse höherer Priorität, die die Prozesse niedrigerer Priorität nicht stören, werden gehindert, die Ausführung der Prozesse niedrigerer Priorität zu unterbrechen, während der Prozess niedrigerer Priorität die Speicherbearbeitung ausführt. Folglich würde eine Ausführung von Prozessen höherer Priorität, die in Echtzeit ausgeführt werden sollen, verzögert; und folglich ist die ausreichende Steuerungsansprechempfindlichkeit oder die Sicherheit des Fahrers in diesem Fall nicht sichergestellt.
-
Die Druckschrift
US 6 182 196 B1 beschreibt ein Verfahren und ein Gerät zum schiedsrichterlichen Verhandeln von Zugangsanforderungen zu einem Speicher.
-
Die Druckschrift
US 6 199 127 B1 beschreibt ein Verfahren und ein Gerät zur Drosselung von Speicherzugriffen hoher Priorität, um zumindest zeitweise die Präferenz bezüglich Speicherzugriffsbefehlen mit hoher Priorität zu verringern.
-
Die Druckschrift
JP 05 289949 A beschreibt ein Fahrzeugsteuerungsgerät, das periodisch Daten in zwei Speichern vergleicht und gegebenenfalls in einem Speicher aktualisiert.
-
Die Druckschrift
JP 11 096022 A beschreibt einen Echtzeitverarbeitungscomputer, in dem Betriebssysteme mit unterschiedlichen Prioritätsstufen auf einen Speicher zugreifen.
-
Es ist die Aufgabe der vorliegenden Erfindung, eine Prozessstörung zu verhindern, ohne eine Ausführung von Prozessen hoher Priorität in einer Verarbeitungseinheit zu verzögern, in der Prozesse unterschiedlicher Prioritätsstufen den gleichen Speicherbereich bearbeiten.
-
Diese Aufgabe wird durch die in den Patentansprüchen angegebenen Maßnahmen gelöst, insbesondere durch ein Verfahren zur Ausführung einer Vielzahl von Tasks zur Implementierung einer Reihe von Funktionen bei einem Computer gemäß Patentanspruch 1, eine dieses Verfahren ausführende Verarbeitungseinheit (Patentanspruch 7) und ein dieses Verfahren ausführendes System (Patentanspruch 8), sowie ein entsprechendes computerlesbares Medium (Patentanspruch 9).
-
Vorteilhafte Weiterbildungen sind in den abhängigen Patentansprüchen angegeben.
-
Gemäß einem Beispiel umfasst eine Verarbeitungseinheit ein Programm, das zur Ausführung einer Reihe von Funktionen auszuführen ist. Das Programm umfasst eine Vielzahl von Prozessen, von denen jeder eine Laufeinheit ist. Prioritätsstufen werden den jeweiligen Prozessen zugewiesen, und die Verarbeitungseinheit führt das Programm zwischen den Prozessen auf der Grundlage der Prioritätsstufen der Prozesse umschaltend aus. Einige Prozesse unterschiedlicher Prioritätsstufen bearbeiten den selben Speicherbereich während der Ausführung des Programms. Das Programm umfasst einen Speicherbearbeitungsprozess zur Implementierung einer Speicherbearbeitung als einen der Prozesse. Jeder der Prozesse mit Ausnahme des Speicherbearbeitungsprozesses fordert eine Speicherbearbeitung durch Ausgeben eines Speicherbearbeitungsbefehls an, wenn sich ein Bedarf ergibt, und der Speicherbearbeitungsprozess führt die angeforderte Speicherbearbeitung in Reaktion auf den Speicherbearbeitungsbefehl aus, wenn er aktiviert ist.
-
Eine spezifische Prioritätsstufe ist dem Speicherbearbeitungsprozess zugewiesen, so dass die Ausführung einer durch einen ersten Prozess angeforderten Speicherbearbeitung nicht durch die Ausführung einer durch einen zweiten Prozess angeforderten Speicherbearbeitung, ungeachtet der Prioritätsstufen des ersten und des zweiten Prozesses, unterbrochen wird. Der Speicherbearbeitungsprozess führt vorzugsweise die angeforderte Speicherbearbeitung in der gleichen Reihenfolge aus, wie sie angefordert wird.
-
Die Erfindung ist zusammen mit zusätzlichen Aufgaben, Merkmalen und zugehörigen Vorteilen am einfachsten aus der nachstehenden Beschreibung, den beigefügten Patentansprüchen und der beigefügten Zeichnung ersichtlich. Es zeigen:
-
1 ein Blockschaltbild einer Verarbeitungseinheit gemäß einem Ausführungsbeispiel der vorliegenden Erfindung, das in einem Fahrzeug als Motorssteuerungseinheit eingebaut ist,
-
2 ein Blockschaltbild eines Motorssteuerungsprogramms, das in einem ROM der Verarbeitungseinheit gespeichert ist,
-
3 ein Blockschaltbild einer Ereignistabelle und von Warteschlangen, die zur Ausführung des Motorssteuerungsprogramms verwendet werden,
-
4A eine schematische Darstellung, die zeigt, wie Speicherbearbeitungsanforderungen (Speichermanipulationsanforderungen) in der Warteschlange einer Stufe C gespeichert werden,
-
4B einen Graphen der die Reihenfolge zeigt, in der die in 4A gezeigten Speicherbearbeitungsanforderungen (Speichermanipulationsanforderungen) gemäß dem Ausführungsbeispiel der vorliegenden Erfindung gehandhabt werden, und
-
5 einen Graphen, der zeigt, wie Prozesse unterschiedlicher Prioritätsstufen sich einander stören, wenn eine Speicherbearbeitung gemäß dem Stand der Technik ausgeführt wird.
-
Die vorliegende Erfindung ist unter Bezugnahme ein Ausführungsbeispiel sowie Modifikationen beschrieben. Eine Verarbeitungseinheit gemäß dem Ausführungsbeispiel der vorliegenden Erfindung ist in einem Fahrzeug als Motorsteuerungseinheit (ECU) eingebaut. Die ECU steuert einen in dem Fahrzeug eingebauten Verbrennungsmotor. Unter Bezugnahme auf 1 umfasst die ECU 1 einen Mikrocomputer 10, eine Eingangsschaltung 21 und eine Ausgangsschaltung 22. Die Eingangsschaltung 21 empfängt analoge Signale von verschiedenen Sensoren 30, die den Betriebszustand des Motors erfassen. Die Sensoren 30 umfassen einen Kurbelwinkelsensor, einen Bezugspunktsensor, einen Kühlmitteltemperatursensor, einen Sauerstoffsensor und dergleichen.
-
Der Kurbelwinkelsensor erzeugt ein Impulssignal, wann immer sich. die Kurbelwelle um einen vorbestimmten Winkel weiter dreht. Der Bezugspunktsensor erzeugt ein Impulssignal, wann immer der Kolben eines spezifischen Zylinders einen vorbestimmten Punkt (beispielsweise TDC) erreicht. Der Kühlmitteltemperatursensor erfasst die Temperatur eines Kühlmittels. Der Sauerstoffsensor misst die Sauerstoffkonzentration in Abgasen. Die Eingangsschaltung 21 bringt den Signalverlauf der empfangenen analogen Signale in Form und wandelt die geformten analogen Signale in digitale Signale um. Die resultierenden Signale werden an den Mikrocomputer 10 ausgegeben.
-
Der Mikrocomputer 10 umfasst eine CPU 11, ein ROM 12, ein RAM 13 sowie ein Eingabe-/Ausgabe-(I/O-)Untersystem 14. Die CPU 11 führt verschiedene Programme auf der Grundlage der von der Eingangsschaltung 21 empfangenen Signale zur Steuerung des Motors aus. Das ROM 12 speichert die Programme, die durch die CPU 11 ausgeführt werden. Die Programme umfassen hauptsächlich ein Motorsteuerungsprogramm. Das RAM 13 speichert die Operationsergebnisse und dergleichen während der Ausführung der Programme.
-
Das I/O-Untersystem 14 ermöglicht es dem Mikrocomputer 10, Signale von der Eingangsschaltung 21 zu empfangen und Signale zu der Ausgangsschaltung 22 auszugeben. Der Mikrocomputer 10 umfasst ferner verschiedene Register, einen freilaufenden Zähler und dergleichen. Der Mikrocomputer 10 gibt Steuerungsdaten als Ergebnis der Ausführung der Programme an die Ausgangsschaltung 22 aus. Die Ausgangsschaltung 22 steuert in dem Motor installierte Betätigungsglieder 40 in Reaktion auf die von dem Mikrocomputer 10 empfangenen Steuerungsdaten an. Die Betätigungsglieder 40 umfassen das für eine Düse (Krafteinspritzsystem), das für einen Zünder (Zündvorrichtung) und dergleichen. Somit steuert die ECU 1 den Motor auf der Grundlage der Signale von den Sensoren 30.
-
Unter Bezugnahme auf 2 umfasst das Motorsteuerungsprogramm eine Plattform (PF) 50 sowie Tasks 61, 62, 63. Die PF 50 umfasst ein RTOS 51, das die Tasks 61, 62, 63 ausführt, wobei es zwischen den Tasks 61, 62, 63 umschaltet. Eine von drei unterschiedlichen Prioritätsstufen (Taskstufen), d. h. eine hohe Prioritätsstufe A, eine mittlere Prioritätsstufe B und eine niedrige Prioritätsstufe C, wird jeder der Tasks 61, 62, 63 zugewiesen. Jede der Tasks 61, 62, 63 umfasst eine Vielzahl von Ereignisprozessen, von denen jeder eine Laufeinheit ist. Eine Task einer höheren Prioritätsstufe wird bevorzugt zu einer Task einer niedrigeren Prioritätsstufe ausgeführt.
-
Das Motorsteuerungsprogramm umfasst ein Fehlererfassungsprogramm. Das Fehlererfassungsprogramm umfasst drei Ereignisprozesse, d. h. einen ersten Fehlererfassungsprozess der Stufe A, einen zweiten Fehlererfassungsprozess der Stufe B und einen Speicherbearbeitungsprozess (Speichermanipulationsprozess) der Stufe C. Entsprechend den zugewiesenen Prioritätsstufen sind, wie es in 2 gezeigt ist, der erste Fehlererfassungsprozess, der zweite Fehlererfassungsprozess und der Speicherbearbeitungsprozess in der A-Task 61, der B-Task 62 bzw. der C-Task 63 beinhaltet. Der Speicherbearbeitungsprozess ist zur Speicherung von Fehlerinformationen in Speicherbereichen bereitgestellt. Die Speicherbereiche werden den jeweiligen Teilen der Fehlerinformationen bitweise zugeteilt.
-
Unter Bezugnahme auf die 2 und 3 identifiziert, wenn die PF 50 das Auftreten eines Ereignisses erfasst, diese die Task 61, 62, 63, die einen dem erfassten Ereignis entsprechenden Ereignisprozess umfasst, durch Bezugnahme auf eine Ereignistabelle 70. Das Auftreten des Ereignisses wird beispielsweise auf der Grundlage der Signale von den Sensoren 30 erfasst. Ferner kann das Auftreten des Ereignisses auf der Grundlage des Werts des freilaufenden Zählers in dem Mikrocomputer 10 oder auf der Grundlage von Informationen, die durch einen sich in der Ausführung befindenden Prozess bereitgestellt werden, erfasst werden.
-
Die Plattform 50 speichert eine Anforderung zur Ausführung des Ereignisprozesses in einer Warteschlange 81, 82, 83, die der identifizierten Task 61, 62, 63 entspricht. Das heißt, wenn die identifizierte Task die A-Task 61 ist, wird die Anforderung in der Warteschlange 81 gespeichert, die zur Speicherung von Anforderungen zur Ausführung von Prozessen der Stufe A bereitgestellt ist. Jede der Warteschlangen 81, 82, 83 ist eine FIFO-Warteschlange (first-in first-out), die einen Zwischenspeicher darstellt, von dem die Anforderungen in der gleichen Reihenfolge abgerufen werden, wie sie gespeichert werden. Jede der gespeicherten Anforderungen kann Daten umfassen, die zur Ausführung des Ereignisprozesses erforderlich sind.
-
Das RTOS 51 identifiziert die zu aktivierende Task 61, 62, 63 durch Bezugnahme auf die Warteschlangen 81, 82, 83 und aktiviert die identifizierte Task 61, 62, 63. Das RTOS 51 gibt ferner die erforderlichen Daten, die in der in der Warteschlange 81, 82, 83 gespeicherten Anforderungen beinhaltet sind, an die aktivierte Task 61, 62, 63 weiter. Daraufhin führt die aktivierte Task 61, 62, 63 den Ereignisprozess aus.
-
Jeder der ersten und zweiten Fehlererfassungsprozesse erzeugt ein Ereignis zur Anweisung einer Speicherbearbeitung (Speichermanipulation) während der Ausführung des Prozesses, wenn die Speicherbearbeitung ausgeführt werden soll. Das Ereignis zur Anweisung einer Speicherbearbeitung umfasst eine ID des anfordernden Prozesses, der das Ereignis erzeugt hat. Die PF 50 erfasst das erzeugte Ereignis. Daraufhin speichert die PF 50 eine Anforderung zur Speicherbearbeitung in der Warteschlange 83 der Stufe C als Ergebnis der Bezugnahme auf die Ereignistabelle 70, wie es vorstehend beschrieben ist, da der Speicherbearbeitungsprozess zu der C-Task 63 gehört.
-
In dem Fall, dass der zweite Fehlererfassungsprozess ein Ereignis zur Anweisung einer Speicherbearbeitung erzeugt und danach der erste Fehlererfassungsprozess ein Ereignis zur Anweisung einer Speicherbearbeitung erzeugt, werden Speicherbearbeitungsanforderungen entsprechend den erzeugten Ereignissen in der Warteschlange 83 der Stufe C gespeichert, wie es in 4A gezeigt ist. Die in der Warteschlange 83 gespeicherten Speicherbearbeitungsanforderungen umfassen die ID des zweiten Fehlererfassungsprozesses bzw. des ersten Fehlererfassungsprozesses.
-
Wenn die C-Task 63 nicht aktiv ist, aber aktiviert werden soll, aktiviert das RTOS 51 die C-Task 63 lediglich dann, wenn Tasks höherer Priorität 61, 62 nicht aktiv sind und nicht aktiviert werden müssen. Wenn die C-Task 63 aktiviert ist, ruft das RTOS 51 eine Anforderung nach der anderen von der Warteschlange 83 ab und gibt die in der Anforderung beinhalteten Daten als Parameter an die C-Task 63 weiter. Daraufhin führt die C-Task 63 den angeforderten Prozess unter Verwendung der empfangenen Parameter aus. Folglich führt, wenn eine Ausführung des Speicherbearbeitungsprozesses angefordert ist, die C-Task 63 den Speicherbearbeitungsprozess unter Verwendung der empfangenen Parameter aus.
-
Genauer gesagt identifiziert der Speicherbearbeitungsprozess zuerst den Fehlererfassungsprozess, der die Speicherbearbeitung angefordert hat, auf der Grundlage der als einen der Parameter empfangenen ID. Daraufhin identifiziert der Speicherbearbeitungsprozess ferner den zu bearbeitenden Speicherbereich auf der Grundlage des identifizierten Fehlererfassungsprozesses. Danach liest der Speicherbearbeitungsprozess Daten aus dem identifizierten Speicherbereich byteweise aus. Dann setzt der Speicherbearbeitungsprozess ein spezifisches Bit der abgerufenen Byte-Daten oder setzt es zurück und schreibt die resultierenden Daten in den Speicherbereich.
-
Somit werden Fehlerinformationen, für die Speicherbereiche bitweise zugeteilt sind, byteweise bearbeitet. Der Speicherbearbeitungsprozess kann als einige der Parameter Informationen über die Position des zu setzenden oder zurückzusetzenden spezifischen Bits und darüber empfangen, ob dass spezifische Bit gesetzt oder zurückgesetzt werden soll.
-
In dem Fall, dass die Speicherbearbeitungsanforderungen in der Warteschlange 83 gespeichert sind, wie es in 4A gezeigt ist, wird eine durch den zweiten Fehlererfassungsprozess der Stufe B angeforderte Speicherbearbeitung zuerst ausgeführt, und danach wird eine durch den ersten Fehlererfassungsprozess der Stufe A angeforderte Speicherbearbeitung ausgeführt, wie es in 4B gezeigt ist. Somit wird eine Speicherbearbeitung durch den Speicherbearbeitungsprozess in der gleichen Reihenfolge ausgeführt, wie sie angefordert wird, ungeachtet der Prioritätsstufen der Fehlererfassungsprozesse, die die Speicherbearbeitung angefordert haben.
-
Das Motorsteuerungsprogramm kann als ein computerlesbarer Träger, wie beispielsweise als FD, MO, CD-ROM, DVD oder als Festplatte bereitgestellt sein, die es speichert. In diesem Fall wird das Motorsteuerungsprogramm von dem computerlesbaren Träger in das RAM 13 geladen und dann ausgeführt. Ferner kann das Motorsteuerungsprogramm als ein computerlesbarer Träger, wie beispielsweise als ROM oder als Reserve- bzw. Backup-RAM bereitgestellt sein, das es speichert. In diesem Fall ist der computerlesbare Träger in der ECU 1 eingegliedert.
-
Gemäß dem vorliegendem Ausführungsbeispiel sind die nachstehenden Vorteile bereitgestellt. Eine Ausführung einer Speicherbearbeitung, die durch einen Prozess angefordert wird, wird durch die Ausführung der durch einen anderen Prozess angeforderten Speicherbearbeitung nicht unterbrochen, da der Speicherbearbeitungsprozess einer spezifischen Prioritätsstufe zur Ausführung einer Speicherbearbeitung zugehörig bereitgestellt ist. Zu der A-Task 61 oder der B-Task 62 gehörende Prozesse können jedoch die Ausführung des Speicherbearbeitungsprozesses unterbrechend ausgeführt werden, da der Speicherbearbeitungsprozess eine Prioritätsstufe von C aufweist. Das heißt, Prozesse höherer Priorität können in Echtzeit ausgeführt werden.
-
Ferner wird in dem vorliegenden Ausführungsbeispiel die erfindungsgemäße Verarbeitungseinheit zur Ausführung des Fehlererfassungsprogramms in der ECU 1 verwendet. In diesem Fall besteht, wenn Speicherbereiche zur Speicherung der jeweiligen Teile von Fehlerinformationen bitweise zugeteilt sind und ein RISC-Computer, der Daten byteweise bearbeitet, als die ECU 1 verwendet wird, jede Möglichkeit, dass eine Vielzahl von Prozessen den selben Speicherbereich bearbeiten, wie es vorstehend beschrieben ist. Folglich ist die erfindungsgemäße Verarbeitungseinheit insbesondere in diesem Fall effektiv. Anders ausgedrückt, die Verwendung der vorliegenden Verarbeitungseinheit zur Ausführung des Fehlererfassungsprogramms ermöglicht die Verwendung des RISC-Computers als die ECU 1.
-
Gemäß dem vorliegendem Ausführungsbeispiel umfasst jede der Speicherbearbeitungsanforderungen die ID des anfordernden Prozesses, der die Speicherbearbeitung angefordert hat, und der Speicherbearbeitungsprozess empfängt die ID als einen der Parameter von dem RTOS 51. Folglich kann auf der Grundlage der empfangenen ID der Speicherbearbeitungsprozess den anfordernden Fehlererfassungsprozess und ferner den zu bearbeitenden Speicherbereich identifizieren. Dementsprechend kann in diesem Fall ein Speicherbearbeitungsprozess durch beide Fehlererfassungsprozesse geteilt werden. Das heißt, zugehörige Speicherbearbeitungsprozesse sind für die jeweiligen Fehlererfassungsprozesse nicht erforderlich. Als Ergebnis kann das gesamte Motorsteuerungsprogramm kompakt sein.
-
Das Motorsteuerungsprogramm entspricht einem Programm der vorliegenden Erfindung. Das durch die Fehlererfassungsprozesse erzeugte Ereignis zur Anweisung einer Speicherbearbeitung entspricht einem Speicherbearbeitungsbefehl, und die in dem Ereignis beinhaltete ID entspricht Identifikationsinformationen über einen anfordernden Prozess.
-
(Modifikationen)
-
Gemäß dem vorstehend beschriebenen Ausführungsbeispiel kann der Speicherbearbeitungsprozess in der B-Task 62 oder der A-Task 61 anstelle der C-Task 63 beinhaltet sein. In diesem Fall wird die Speicherbearbeitung in der gleichen Reihenfolge ausgeführt, wie sie angefordert wird, ähnlich zu dem vorstehend beschriebenen Ausführungsbeispiel.
-
Gemäß den vorstehend beschriebenen Ausführungsbeispiel kann die PF 50 die in der Warteschlange 83 der Stufe C gespeicherten Speicherbearbeitungsanforderungen in eine Vorzugsreihenfolge auf der Grundlage eines vorbestimmten Kriteriums sortieren, so dass eine Speicherbearbeitung, die in Echtzeit ausgeführt werden soll, bevorzugt ausgeführt werden kann.
-
Ferner können gemäß den vorstehend beschrieben Ausführungsbeispiel zugehörige Speicherbearbeitungsprozesse für die jeweiligen Fehlererfassungsprozesse vorbereitet werden. In diesem Fall muss nicht jede der Speicherbearbeitungsanforderungen die ID des anfordernden Prozesses beinhalten.
-
Die vorliegende Erfindung ist nicht auf das vorstehend beschriebene Ausführungsbeispiel und die Modifikationen begrenzt, sondern kann auf verschiedene Weise innerhalb des Bereichs der Erfindung ausgeführt werden.
-
Wie es vorstehend beschrieben ist, führt eine Verarbeitungseinheit 1 ein Fehlererfassungsprogramm 50, 51, 61, 62, 63, das einen ersten Fehlererfassungsprozess einer hohen Prioritätsstufe A, einen zweiten Fehlererfassungsprozess einer mittleren Prioritätsstufe B und einen Speicherbearbeitungsprozess einer niedrigen Prioritätsstufe C umfasst, für ein Fahrzeug aus. Jeder der Fehlererfassungsprozesse fordert eine Speicherbearbeitung durch Erzeugung eines Ereignisses an, wenn sich ein Bedarf ergibt. Wenn der Speicherbearbeitungsprozess aktiviert ist, führt er die angeforderte Speicherbearbeitung in der gleichen Reihenfolge aus, wie die Speicherbearbeitung angefordert ist, so dass eine Ausführung einer durch einen der Fehlererfassungsprozesse angeforderten Speicherbearbeitung nicht durch eine Ausführung einer durch den anderen der Fehlererfassungsprozesse angeforderten Speicherbearbeitung unterbrochen wird. Jeder der Fehlererfassungsprozesse selbst kann jedoch auf Grund der zugehörigen höheren Prioritätsstufe die Ausführung des Speicherbearbeitungsprozesses unterbrechend ausgeführt werden.