DE102005013913A1 - Unterbrechungsanforderungsprogramm und Mikrocomputer - Google Patents

Unterbrechungsanforderungsprogramm und Mikrocomputer Download PDF

Info

Publication number
DE102005013913A1
DE102005013913A1 DE102005013913A DE102005013913A DE102005013913A1 DE 102005013913 A1 DE102005013913 A1 DE 102005013913A1 DE 102005013913 A DE102005013913 A DE 102005013913A DE 102005013913 A DE102005013913 A DE 102005013913A DE 102005013913 A1 DE102005013913 A1 DE 102005013913A1
Authority
DE
Germany
Prior art keywords
interrupt
priority
task
program
interrupt signal
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.)
Withdrawn
Application number
DE102005013913A
Other languages
English (en)
Inventor
Tadaharu Kariya Nishimura
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 DE102005013913A1 publication Critical patent/DE102005013913A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Abstract

Eine Unterbrechungssteuereinrichtung (14) bestimmt das am höchsten priorisierte Unterbrechungssignal einer Vielzahl von zur Ausgabe angeforderten Unterbrechungssignalen und gibt es aus. Eine CPU (15) führt einen einem Unterbrechungssignal von der Unterbrechungssteuereinrichtung entsprechenden Prozeß aus und führt durch ein OS bereitgestellte Programme aus. Basierend auf einem Empfang einer Anforderung zum Ausführen eines Aufgabenebenenprozesses fordert die CPU die Unterbrechungssteuereinrichtung zum Ausgeben eines dem Aufgabenebenenprozeß entsprechenden Unterbrechungssignals auf.

Description

  • Die vorliegende Erfindung bezieht sich auf ein Programm, das eine Mehrfachunterbrechungseinheit zum Vergleichen von Aufgabenebenenprozeßprioritäten bei einer Aufgabenplanung veranlaßt, und bezieht sich auf einen Mikrocomputer zum Ausführen des Programms.
  • Herkömmlich sind bekannte Spezifikationen über allgemeine RTOS' (Echtzeitbetriebssysteme) wie beispielsweise OSEK-OS und ITRON, die auf einer Anweisungsausführungseinheit wie beispielsweise einer CPU arbeiten, vorhanden. Die Spezifikationen schreiben einen Interruptebenenprozeß bzw. Unterbrechungsebenenprozeß und einen Taskebenenprozeß bzw. Aufgabenebenenprozeß als Kategorien von auf dem Betriebssystem ausgeführten Prozessen vor.
  • Genauer schreibt die RTOS-Spezifikation eine Schnittstelle zum Annehmen von Ausführungsanforderungen für Aufgabenebenenprozesse vor. Wenn ein Programmentwickler ein Anwendungsprogramm erzeugt, das ein bestimmtes Programm als einen Aufgabenebenenprozeß aufruft, programmiert der Programmentwickler das Anwendungsprogramm zum Aufrufen des bestimmten Programms unter Verwendung der Schnittstelle.
  • Die CPU kann einen Prozeß durch ein Annehmen eines Unterbrechungssignals von einer Unterbrechungssteuereinrichtung ausführen. Die RTOS-Spezifikation schreibt einen derartigen Prozeß als einen Unterbrechungsebenenprozeß vor. Wenn die CPU eine bestimmte Unterbrechungsanweisung ausführt, kann die Anweisung in einer Art und Weise ähnlich dem Fall, in dem die CPU ein Unterbrechungssignal empfängt, ausgeführt werden. In diesem Fall kann ein Prozeß basierend auf einer Ausführung der bestimmten Unterbrechungsanweisung ausgeführt werden. Die RTOS-Spezifikation schreibt auch diesen Prozeß als den Unterbrechungsebenenprozeß vor.
  • Ob ein auf dem RTOS ausgeführter Prozeß der Aufgabenebenenprozeß ist oder nicht, kann basierend darauf festgestellt werden, wie der Prozeß ausgeführt wird. Genauer wird festgestellt, daß ein Prozeß der Aufgabenebenenprozeß ist, wenn der Prozeß unter Verwendung einer Schnittstelle (auf die nachstehend als eine Aufgabenaktivierungsschnittstelle Bezug genommen ist) zum Annehmen einer Anforderung zur Aufgabenebenenprozeßausführung ausgeführt wird. Es wird nicht festgestellt, daß ein Prozeß der Aufgabenebenenprozeß ist, wenn der Prozeß ausgeführt wird, indem die Schnittstelle zum Annehmen einer Anforderung zur Aufgabenebenenprozeßausführung nicht verwendet wird.
  • Es wird erwogen, daß das bekannte RTOS eine Anforderung zum Ausführen des Aufgabenebenenprozesses über die vorstehend angeführte Aufgabenaktivierungsschnittstelle annimmt. In diesem Fall vergleicht die CPU dem Aufgabenebenenprozeß, dessen Ausführungsanforderung angenommen wird, einem derzeit ausgeführten Prozeß und einem Aufgabenebenprozeß, dessen Ausführungsanforderung in der Vergangenheit angenommen wurde und dessen Ausführung gegenwärtig noch nicht abgeschlossen ist, zugewiesene Prioritäten. Die CPU führt den Prozeß mit der höchsten Priorität aus. In dieser Art und Weise vergleicht das RTOS Prioritäten und stellt einen auszuführenden Prozeß basierend auf einem Vergleichsergebnis fest. Dies wird als RTOS-Aufgabenplanung bezeichnet.
  • Wenn der derzeit auf dem RTOS ausgeführte Prozeß endet, führt die CPU während der RTOS-Aufgabenplanung das folgende aus. Die CPU vergleicht Prioritäten von Aufgabenebenenprozessen, deren Ausführungsanforderungen in der Vergangenheit angenommen wurden und deren Ausführung gegenwärtig noch nicht abgeschlossen ist. Die CPU führt den Prozeß mit der höchsten Priorität aus.
  • Im allgemeinen ist der Unterbrechungsebenenprozeß derart konfiguriert, daß er mit einer höheren Priorität als für den Aufgabenebenenprozeß ausgeführt wird. Während der Aufgabenebenenprozeß auf dem RTOS ausgeführt wird, kann die CPU ein Unterbrechungssignal von der Unterbrechungssteuereinrichtung empfangen. In einem derartigen Fall unterbricht die CPU den derzeit ausgeführten Aufgabenebenenprozeß und führt den dem empfangenen Unterbrechungssignal entsprechenden Unterbrechungsebenenprozeß aus.
  • Eine bekannte Unterbrechungssteuereinrichtung weist die Mehrfachunterbrechungsfunktion auf. Die Mehrfachunterbrechungsfunktion wählt aus einer Vielzahl von zur Ausgabe angeforderten Unterbrechungssignalen und gibt das am höchsten priorisierte Unterbrechungssignal aus. Genauer gibt die Unterbrechungssteuereinrichtung mit der Mehrfachunterbrechungsfunktion ein Unterbrechungssignal zu der CPU aus. Wenn die CPU einen dem Unterbrechungssignal entsprechenden Prozeß ausführt, kann die CPU eine Ausgabeanforderung von einem anderen Unterbrechungssignal empfangen. Zu dieser Zeit vergleicht die Steuereinrichtung die Priorität des zur Ausgabe angeforderten Unterbrechungssignals mit der des vorher ausgegebenen Unterbrechungssignals. Nur wenn die Priorität des zur Ausgabe angeforderten Unterbrechungssignals höher als die des vorher ausgegebenen Unterbrechungssignals ist, gibt die Steuereinrichtung den angeforderten Unterbrechungsprozeß zu der CPU aus.
  • Während die CPU die vorstehend angeführte Aufgabenplanung unter dem bekannten RTOS ausführt, wird viel von der CPU-Verarbeitungszeit für den Aufgabenplanungsprozeß selbst verbraucht. Folglich beschränkt dies die CPU-Zeit, die tatsächlich für den Aufgabenebenenprozeß und den Unterbrechungsebenenprozeß verfügbar ist.
  • Die vorliegende Erfindung ist in Anbetracht des Vorstehenden ausgebildet worden. Es ist daher ein Ziel der vorliegenden Erfindung, die Mehrfachunterbrechungsfunktion zum Vermindern der durch eine CPU, die eine Vielzahl von Aufgaben selektiv ausführt, zur Aufgabenplanung verbrauchten Zeit zu verwenden.
  • Zum Erreichen des vorstehend angeführten Ziels veranlaßt ein Unterbrechungsanforderungsprogramm gemäß der vorliegenden Erfindung eine Anweisungsausführungseinheit zum Fungieren als eine Unterbrechungsanforderungseinrichtung basierend auf einem Empfang einer Anforderung zum Ausführen eines Aufgabenebenenprozesses. In diesem Fall führt die Anweisungsausführungseinheit einen einem Unterbrechungssignal von einer Mehrfachunterbrechungseinheit zum Bestimmen und Ausgeben eines am höchsten priorisierten Unterbrechungssignals einer Vielzahl von zur Ausgabe angeforderten Unterbrechungssignalen entsprechenden Prozeß aus. Die Unterbrechungsanforderungseinrichtung fordert die Mehrfachunterbrechungseinheit zum Ausgeben eines dem Aufgabenebenenprozeß entsprechenden Unterbrechungssignals auf.
  • Basierend auf einem Empfang einer Anforderung zum Ausführen eines Aufgabenebenenprozesses führt die Anweisungsausführungseinheit das Unterbrechungsanforderungsprogramm aus und fordert die Mehrfachunterbrechungseinheit zum Ausgeben eines dem Aufgabenebenenprozeß entsprechenden Unterbrechungssignals auf. Die Mehrfachunterbrechungseinheit empfängt die Anforderungen, bestimmt die am höchsten priorisierte Anforderung der empfangenen Anforderungen und gibt ein der bestimmten Anforderung entsprechendes Unterbrechungssignal aus. Die Anweisungsausführungseinheit führt einen dem von der Mehrfachunterbrechungseinheit empfangenen Unterbrechungssignal entsprechenden Prozeß aus. Daher veranlaßt die Anweisungsausführungseinheit die Mehrfachunterbrechungseinheit zum Vergleichen von Prioritäten der Aufgabenebenenprozesse. Die Verwendung der Mehrfachunterbrechungsfunktion kann die durch die Anweisungsausführungseinheit, die über eine Vielzahl von Aufgaben zur Ausführung wechselt, zur Aufgabenplanung verbrauchte Zeit vermindern.
  • Die vorstehenden und andere Ziele, Merkmale und Vorteile der vorliegenden Erfindung werden anhand der unter Bezugnahme auf die beigefügten Zeichnungen ausgebildeten folgenden ausführlichen Beschreibung ersichtlicher. In den Zeichnungen zeigen:
  • 1 die Konfiguration einer Motor-ECU;
  • 2 Datenstrukturen von Speicherträgern in einer Unterbrechungssteuereinrichtung, einer CPU, einem RAM und einem ROM;
  • 3 ein Datenspeicherformat von nullten bis siebten Unterbrechungsregistern;
  • 4 eine Entsprechung zwischen einer Unterbrechungspriorität und einem der Unterbrechungspriorität zugewiesenen Programm;
  • 5 ein Zeitablaufdiagramm, das Ausführungszeitabläufe für Aufgaben A, B und C sowie eine Unterbrechung X in der CPU zeigt;
  • 6 ein Flußdiagramm der Aufgabe A;
  • 7 ein Flußdiagramm der Aufgabe B;
  • 8 ein Flußdiagramm der Aufgabe C;
  • 9 ein Flußdiagramm der Unterbrechung X;
  • 10 ein Flußdiagramm eines Aufgabenunterbrechungsprogramms;
  • 11 ein Flußdiagramm eines Aufgabenaktivierungsprogramms;
  • 12 ein Flußdiagramm eines Aufgabenbeendungsprogramms;
  • 13 ein Flußdiagramm eines Betriebsmittelaneignungsprogramms gemäß einem zweiten Ausführungsbeispiel;
  • 14 ein Flußdiagramm eines Betriebsmittelzugriffsfreigabeprogramms gemäß dem zweiten Ausführungsbeispiel;
  • 15 ein Flußdiagramm eines Betriebsmittelaneignungsprogramms gemäß einem dritten Ausführungsbeispiel;
  • 16 ein Flußdiagramm eines Betriebsmittelzugriffsfreigabeprogramms gemäß dem dritten Ausführungsbeispiel; und
  • 17 ein Datenspeicherformat für nullte bis siebte Unterbrechungsregister gemäß einem vierten Ausführungsbeispiel.
  • (Erstes Ausführungsbeispiel)
  • Das folgende beschreibt ein erstes Ausführungsbeispiel der vorliegenden Erfindung. 1 zeigt die Konfiguration einer Motor-ECU 1 gemäß dem Ausführungsbeispiel. Die Motor-ECU 1 steuert einen Motor 2. Der Motor-ECU 1 wird ein Impulssignal von einem Kurbelsensor 23 zugeführt. Dieses Signal meldet, daß eine Kurbel des Motors 2 einen bestimmten Kurbelwinkel erreicht hat. Der Motor-ECU 1 werden von einem Wassertemperatursensor 31 Informationen über eine Temperatur von Motorkühlwasser 3 zugeführt. Ferner werden der Motor-ECU 1 von einem Drosselsensor 41 Informationen über einen Drosselwinkel zugeführt. Basierend auf den eingegebenen Informationen berechnet die Motor-ECU 1 einen Zündzeitpunkt, eine Einspritzmenge, ein Drosseleinstellungsausmaß und dergleichen des Motors 2. Basierend auf Berechnungsergebnissen steuert die Motor-ECU 1 eine Zündvorrichtung 21 zum Zünden von Kraftstoff, eine Einspritzvorrichtung 22 zum Einspritzen von Kraftstoff und eine elektronische Drossel 4.
  • Für diese Operationen weist die Motor-ECU 1 eine Schaltung für externe Eingabe/Ausgabe 11 und einen Mikrocomputer 12 auf. Der Mikrocomputer 12 weist eine Unterbrechungssteuereinrichtung 14, eine CPU 15 als eine Anweisungsausführungseinheit sowie ein RAM 16 und ein ROM 17 als Speicherträger auf.
  • Die Schaltung für externe Eingabe/Ausgabe 11 empfängt Informationen von dem Wassertemperatursensor 31 und dem Drosselsensor 41 und gibt die empfangenen Informationen zu der CPU 15 aus. Basierend auf einem von dem Kurbelsensor 23 empfangenen Impulssignal fordert die Schaltung für externe Eingabe/Ausgabe 11 die Unterbrechungssteuereinrichtung 14 zum Ausgeben eines Unterbrechungssignals auf. Die Schaltung für externe Eingabe/Ausgabe 11 empfängt Steuersignale von der CPU 15 und gibt die Signale zu der Zündvorrichtung 21, der Einspritzvorrichtung 22 und der elektronischen Drossel 4 aus.
  • Die CPU 15 liest verschiedene in dem ROM 17 gespeicherte Programme und führt sie aus. Die CPU 15 empfängt Signale von dem Wassertemperatursensor 31 und dem Drosselsensor 41. Basierend auf diesen Signalen berechnet die CPU 15 einen Zündzeitpunkt, eine Einspritzmenge, ein Drosseleinstellungsausmaß und dergleichen. Während der Berechnung liest und schreibt die CPU 15 Informationen aus dem und in das RAM 16 wie benötigt. Alternativ liest die CPU 15 Informationen aus dem ROM 17. Ferner empfängt die CPU 15 ein Unterbrechungssignal von der Unterbrechungssteuereinrichtung 14 und führt basierend auf dem empfangenen Unterbrechungssignal bestimmte Programme aus.
  • Die CPU 15 führt eine Vielzahl von Programmen auf einer Zeitanteilsgrundlage aus. Das heißt, die CPU 15 führt jeweils nur ein Programm aus. Basierend auf vorbestimmten Programmprioritäten schaltet die CPU 15 wie benötigt zwischen auszuführenden Programmen um. Ferner führt die CPU 15 OSEK-OS als ein Echtzeitbetriebssystem aus und führt verschiedene Programme auf dem OSEK-OS aus.
  • Genauer schaltet die CPU 15 basierend auf Unterbrechungssignalen von der Unterbrechungssteuereinrichtung 14 zwischen Programmen um.
  • 2 zeigt Datenstrukturen von Speicherträgern in einer Unterbrechungssteuereinrichtung 14, einer CPU 15, einem RAM 16 und einem ROM 17, um Operationen zum Umschalten zwischen Programmen für die CPU 15 zu erläutern.
  • Die CPU 15 weist eine Vielzahl von Registern wie beispielsweise Berechnungsergebnisregister 151, 152 und dergleichen zum Speichern von Berechnungsergebnissen auf.
  • Das RAM 16 weist Speicherbereiche wie beispielsweise einen Stapel 161, eine Bereit-Warteschlange 162 und einen Steuervariablenbereich 163 zum Steuern des Motors 2 auf. Die Bereit-Warteschlange 162 weist fünf FIFO-Zwischenspeicher (Zuerst-Hinein-Zuerst-Hinaus-Zwischenspeicher) auf, das heißt dritte bis siebte Unterbrechungsregister 143 bis 147 für die nachstehend zu beschreibende Unterbrechungssteuereinrichtung 14.
  • Das ROM 17 enthält einen Unterbrechungsvektor 171, eine Vielzahl von Programmen 172 zur Ausführung in der CPU 15 und eine Steuerkonstante 173 zum Steuern des Motors 2. Der Unterbrechungsvektor 171 stellt Entsprechungsinformationen zwischen einem Unterbrechungssignal von der Unterbrechungssteuereinrichtung 14 und einem Programm, dessen Ausführung die CPU 15 basierend auf dem Unterbrechungssignal beginnt, bereit.
  • Die Unterbrechungssteuereinrichtung 14 enthält acht Unterbrechungsregister 140 bis 147 (nulltes bis siebtes), ein Sperrflagregister bzw. Sperrzustandsmerkerregister 148, ein IntLvl-Register 149 und ein Vorheriges-IntLvl-Register 150.
  • Die nullten bis siebten Unterbrechungsregister 140 bis 147 verwenden das gleiche Datenspeicherformat. 3 zeigt ein Datenspeicherformat der nullten bis siebten Unterbrechungsregister 140 bis 147. Jedes der nullten bis siebten Unterbrechungsregister 140 bis 147 speichert Daten von dem Anfang des Datenspeicherbereichs aus in der Reihenfolge eines Unterbrechungszustandsmerkers 51, eines Unterbrechungsmaskenzustandsmerkers 52 und einer Unterbrechungspriorität 53.
  • Das folgende beschreibt Operationen der Unterbrechungssteuereinrichtung 14. Die Unterbrechungssteuereinrichtung 14 gemäß dem Ausführungsbeispiel ist eine bekannte Mehrfachunterbrechungssteuereinrichtung oder -einheit.
  • Die Unterbrechungssteuereinrichtung 14 empfängt eine Anforderung zum Ausgeben eines mit einem der nullten bis siebten Unterbrechungsregister 140 bis 147 bestimmten Unterbrechungssignals. Die Unterbrechungssteuereinrichtung 14 stellt einen Wert des Unterbrechungszustandsmerkers 51 des bestimmten Unterbrechungsregisters auf 1 (ein) ein. Die Unterbrechungssteuereinrichtung 14 stellt einen Wert des Unterbrechungsmaskenzustandsmerkers 52 des bestimmten Unterbrechungsregisters auf 0 (aus) ein. Gemäß dem Ausführungsbeispiel wird ein Unterbrechungssignal von der CPU 15 für einen nachstehend zu beschreibenden Aufgabenebenenprozeß verwendet.
  • Darüber hinaus empfängt die Unterbrechungssteuereinrichtung 14 eine Anforderung zum Ausgeben eines mit einem der nullten bis siebten Unterbrechungsregister 140 bis 147 bestimmten Unterbrechungssignals von der Schaltung für externe Eingabe/Ausgabe 11. In diesem Fall stellt die Unterbrechungssteuereinrichtung 14 einen Wert des Unterbrechungszustandsmerkers 51 des bestimmten Unterbrechungsregisters auf 1 (ein) ein.
  • In dieser Art und Weise verwendet die Unterbrechungssteuereinrichtung 14 den Speicherträger zum Speichern, daß die CPU 15 oder die Schaltung für externe Eingabe/Ausgabe 11 ein Ausgeben von bestimmten Unterbrechungssignalen anfordert.
  • Wenn sie die Anforderung zum Ausgeben eines Unterbrechungssignals empfängt, dann bestimmt die Unterbrechungssteuereinrichtung 14 ein dem derzeit angeforderten Unterbrechungssignal entsprechendes Unterbrechungsregister aus den nullten bis siebten Unterbrechungsregistern 140 bis 147. Das heißt, ein derartiges Unterbrechungsregister enthält den auf 1 eingestellten Unterbrechungszustandsmerker 51 und den auf 0 eingestellten Unterbrechungsmaskenzustandsmerker 52. Das dem derzeit angeforderten Unterbrechungssignal entsprechende Unterbrechungsregister kann ein Unterbrechungsregister mit freigegebener Unterbrechung sein. Die Unterbrechungssteuereinrichtung 14 bestimmt daraufhin ein Unterbrechungsregister mit der höchsten Unterbrechungspriorität aus den bestimmten Unterbrechungsregistern.
  • Die Priorität des Unterbrechungsregisters wird durch einen Wert der Unterbrechungspriorität 53 festgesetzt. Der Unterbrechungsprioritätswert wird auf eine von ganzen Zahlen 0 bis 7 eingestellt. Je kleiner der Wert, desto höher die Priorität. Gemäß dem Ausführungsbeispiel werden die folgenden Werte im voraus gespeichert. Der Wert 0 wird in der Unterbrechungspriorität 53 des nullten Unterbrechungsregisters 140 gespeichert. Der Wert 1 wird in der Unterbrechungspriorität 53 des ersten Unterbrechungsregisters 141 gespeichert. Der Wert 2 wird in der Unterbrechungspriorität 53 des zweiten Unterbrechungsregisters 142 gespeichert. Der Wert 3 wird in der Unterbrechungspriorität 53 des dritten Unterbrechungsregisters 143 gespeichert. Der Wert 4 wird in der Unterbrechungspriorität 53 des vierten Unterbrechungsregisters 144 gespeichert. Der Wert 5 wird in der Unterbrechungspriorität 53 des fünften Unterbrechungsregisters 145 gespeichert. Der Wert 6 wird in der Unterbrechungspriorität 53 des sechsten Unterbrechungsregisters 146 gespeichert. Der Wert 7 wird in der Unterbrechungspriorität 53 des siebten Unterbrechungsregisters 147 gespeichert.
  • Wie vorstehend angeführt wird das Unterbrechungsregister mit der höchsten Unterbrechungspriorität aus den dem derzeit angeforderten Unterbrechungssignal entsprechenden Unterbrechungsregistern bestimmt. Die Unterbrechungssteuereinrichtung 14 vergleicht den Wert der Unterbrechungspriorität 53 des Unterbrechungsregisters mit einem Wert des IntLvl-Registers 149. Der Wert der Unterbrechungspriorität 53 kann kleiner als der Wert des IntLvl-Registers 149 sein. Das heißt, die Priorität der Unterbrechungspriorität 53 kann höher als die Priorität des IntLvl-Registers 149 sein. In diesem Fall gibt die Unterbrechungssteuereinrichtung 14 ein dem bestimmten Unterbrechungsregister vorzugewiesenes Unterbrechungssignal zu der CPU 15 aus.
  • In einem Fall kann kein zum Ausgeben eines Unterbrechungssignals aufgefordertes Unterbrechungsregister vorhanden sein. In einem anderen Fall kann ein Wert größer als oder gleich dem Wert des IntLvl-Registers 149 bei allen Unterbrechungsprioritäten 53 für die zum Ausgeben eines Unterbrechungssignals aufgeforderten Unterbrechungsregister eingestellt sein. In diesen Fällen gibt die Unterbrechungssteuereinrichtung 14 kein Unterbrechungssignal aus.
  • Den nullten bis siebten Unterbrechungsregistern 140 bis 147 werden vorher verschiedene Unterbrechungssignale zugewiesen.
  • Nach dem Ausgeben des Unterbrechungssignals ändert die Unterbrechungssteuereinrichtung 14 den Wert des Vorheriges-IntLvl-Registers 150 zu einem derzeit in dem IntLvl-Register 149 gespeicherten Wert. Danach gibt die Unterbrechungssteuereinrichtung 14 einen dem zuletzt ausgegebenen Unterbrechungssignal entsprechenden Prioritätswert zu dem Vorheriges-IntLvl-Register 150 aus. Das heißt, der Prioritätswert ist äquivalent zu einem Wert der dem Unterbrechungssignal zugewiesenen Unterbrechungspriorität 53 des Unterbrechungsregisters.
  • In dieser Art und Weise bestimmt die Unterbrechungssteuereinrichtung 14 dann, wenn sie eine Anforderung zum Ausgeben eines Unterbrechungssignals empfängt, ein Unterbrechungssignal mit der höchsten Priorität aus zur Ausgabe angeforderten Unterbrechungssignalen. Wenn die Priorität des bestimmten Unterbrechungssignals höher ist als die in dem IntLvl-Register 149, das die Priorität des zuletzt ausgegebenen Unterbrechungssignals speichert, gespeicherte Priorität, gibt die Unterbrechungssteuereinrichtung 14 das Unterbrechungssignal aus.
  • Jedes Unterbrechungsregister mit der Unterbrechungspriorität 53 fungiert als ein Unterbrechungsprioritätsspeicherträger zum Speichern von Informationen über die Entsprechung zwischen einem Unterbrechungssignal und seiner Priorität. Das IntLvl-Register 149 fungiert als ein Speicherträger für die derzeitige Priorität, der die Priorität des zuletzt ausgegebenen Unterbrechungssignals speichert.
  • Die Unterbrechungssteuereinrichtung 14 kann ein Unterbrechungsanforderungslöschungssignal von der CPU 15 oder der Schaltung für externe Eingabe/Ausgabe 11 zum Bestimmen eines der nullten bis siebten Unterbrechungsregister 140 bis 147 empfangen. In diesem Fall stellt die Unterbrechungssteuereinrichtung 14 einen Wert des Unterbrechungsmaskenzustandsmerkers 52 für das bestimmte Unterbrechungsregister auf 1 (ein) ein. Die Unterbrechungssteuereinrichtung 14 wird derart konditioniert, daß sie eine Anforderung für das dem Unterbrechungsregister entsprechende Unterbrechungssignal nicht annimmt.
  • Das IntLvl-Register 149 der Unterbrechungssteuereinrichtung 14 ist zum Neuschreiben seines Werts unter einer Neuschreibsteuerung der CPU 15 konfiguriert. Wenn die Unterbrechungssteuereinrichtung 14 erfaßt, daß der Wert des IntLvl-Registers 149 unter der Steuerung der CPU 15 neu geschrieben wird, führt die Unterbrechungssteuereinrichtung 14 eine zu der Operation nach dem Neuschreiben des Unterbrechungszustandsmerkers 51 und dergleichen wie vorstehend angeführt äquivalente Operation aus. Diese Neuschreiboperation tritt infolge des Empfangens eines eine Anforderung zum Ausgeben eines Unterbrechungssignals darstellenden Signals von der CPU 15 oder der Schaltung für externe Eingabe/Ausgabe 11 auf.
  • Das Sperrzustandsmerkerregister 148 ist zum Neuschreiben seines Werts unter einer Neuschreibsteuerung der CPU 15 konfiguriert. Wenn das Sperrzustandsmerkerregister 148 einen auf 1 (ein) eingestellten Wert enthält, gibt die Unterbrechungssteuereinrichtung 14 ungeachtet der Beschreibung der vorstehend angeführten Operationen keines von den nullten bis siebten Unterbrechungsregistern 140 bis 147 entsprechenden Unterbrechungssignalen zu der CPU 15 aus. Wenn das Sperrzustandsmerkerregister 148 einen auf 0 (aus) eingestellten Wert enthält, gibt die Unterbrechungssteuereinrichtung 14 den nullten bis siebten Unterbrechungsregistern 140 bis 147 entsprechende Unterbrechungssignale gemäß der Beschreibung der vorstehend angeführten Operationen aus.
  • Das Betriebssystem gemäß dem Ausführungsbeispiel weist jedem der Unterbrechungssignale, das heißt jeder der Unterbrechungsprioritäten, ein Programm zu, das die CPU 15 ausführt. 4 zeigt die Entsprechung zwischen einer Unterbrechungspriorität und einem der Unterbrechungspriorität zugewiesenen Programm.
  • In 4 entspricht jedes von Rechtecken 70 bis 77 einer Unterbrechungspriorität. Einem in 4 zu dem oberen Ende hin plazierten Rechteck ist ein kleinerer Unterbrechungsprioritätswert, das heißt eine höhere Unterbrechungspriorität, zugewiesen.
  • Jeder der Unterbrechungsprioritäten, deren Wert 3 oder größer ist, ist ein Aufgabenebenenprozeßprogramm zugewiesen. Das OSEK-OS schreibt einen Systemaufruf vor, der zum Aufrufen eines Programms von einem anderen Programm aus verwendet werden kann. Dieser Systemaufruf ist eine Schnittstelle zum Annehmen einer Anforderung zum Ausführen des Aufgabenebenenprozesses. Wie nachstehend beschrieben wird, wird diese Schnittstelle bei dem Ausführungsbeispiel als eine Aktivierungsaufgabe bezeichnet. Das Aufgabenebenenprozeßprogramm ist zum Beginnen der Ausführung unter Verwendung der Aktivierungsaufgabe konfiguriert.
  • Es sind fünf Unterbrechungsprioritäten vorhanden, denen Aufgabenebenenprozeßprogramme zugewiesen sind: eine Aufgabe mit höchster Priorität (Unterbrechungspriorität = 3), eine Aufgabe mit hoher Priorität (Unterbrechungspriorität = 4), eine Aufgabe mit mittlerer Priorität (Unterbrechungspriorität = 5), eine Aufgabe mit niedriger Priorität (Unterbrechungspriorität = 6) und eine Leerlaufaufgabe (Unterbrechungspriorität = 7). Jeder Unterbrechungspriorität ist eine Vielzahl von Aufgabenebenenprozeßprogrammen zugewiesen.
  • Einem Aufgabenebenenprozeßprogramm sind Informationen beigefügt, die angeben, welcher Unterbrechungspriorität das Aufgabenebenenprozeßprogramm zugewiesen ist. Die Informationen sind in dem ROM 17 gespeichert. Diese Informationen können zum Bestimmen der Priorität des Aufgabenebenenprozeßprogramms verwendet werden.
  • Unterbrechungsprioritäten, deren Wert 2 oder kleiner ist, sind Unterbrechungsebenenprozeßprogramme zugewiesen. Ein Unterbrechungsebenenprozeßprogramm beginnt die Ausführung ohne Vermittlung der vorstehend angeführten Aktivierungsaufgabe und basierend auf einem Unterbrechungssignal von der Unterbrechungssteuereinrichtung 14. Wenn zum Beispiel die Unterbrechungssteuereinrichtung 14 ein Signal von einer externen Vorrichtung wie beispielsweise dem Kurbelsensor 23 über die Schaltung für externe Eingabe/Ausgabe 11 empfängt, gibt die Unterbrechungssteuereinrichtung 14 ein Unterbrechungssignal zu der CPU 15 aus, die dann die Ausführung eines Programms beginnt. Dieses Programm ist äquivalent zu dem Unterbrechungsebenenprozeßprogramm. Wenn ein Ausführen einer bestimmten Unterbrechungsanweisung in der CPU es der CPU ermöglicht, eine der Operation, die bei einem Empfangen eines Unterbrechungssignals ausgeführt wird, ähnelnde Operation auszuführen, wird ferner ein Programm basierend auf einer Ausführung der bestimmten Unterbrechungsanweisung ausgeführt. Dieses Programm ist ebenfalls äquivalent zu dem Unterbrechungsebenenprozeßprogramm.
  • Es sind drei Unterbrechungsprioritäten vorhanden, denen Unterbrechungsebenenprozeßprogramme zugewiesen sind: eine Unterbrechung mit hoher Priorität (Unterbrechungspriorität = 0), eine Unterbrechung mit mittlerer Priorität (Unterbrechungspriorität = 1) und eine Unterbrechung mit niedriger Priorität (Unterbrechungspriorität = 2).
  • Das folgende beschreibt den Übergang zwischen Ausführungsprogrammen für die CPU 15 unter Verwendung der Unterbrechungssteuereinrichtung 14, die die vorstehend angeführten Operationen ausführt.
  • 5 zeigt Ausführungszeitabläufe für Aufgaben A, B und C sowie eine Unterbrechung X in der CPU 15, die nachstehend zu beschreiben sind. Die Aufgabe A ist ein der Aufgabe mit hoher Priorität (Unterbrechungspriorität 4) zugewiesenes Aufgabenebenenprozeßprogramm. Die Aufgabe B ist ein der Aufgabe mit mittlerer Priorität (Unterbrechungspriorität 5) zugewiesenes Aufgabenebenenprozeßprogramm. Die Aufgabe C ist ein der Aufgabe mit niedriger Priorität (Unterbrechungspriorität 6) zugewiesenes Aufgabenebenenprozeßprogramm. Die Unterbrechung X ist ein der Unterbrechung mit mittlerer Priorität zugewiesenes Unterbrechungsebenenprozeßprogramm.
  • 5 nimmt an, daß die Zeit von der linken Seite zu der rechten Seite abläuft. Ein Rechteck stellt eine zu jeder Zeit ausgeführte Aufgabe dar.
  • Wie nachstehend beschrieben wird, ruft die Aufgabe C während der Ausführung der Aufgabe C die Aufgabe A auf (zu dem einem Pfeil 61 entsprechenden Zeitpunkt). Folglich wird die Aufgabe C unterbrochen, um die Ausführung der Aufgabe A zu beginnen (zu dem einem Pfeil 62 entsprechenden Zeitpunkt). Wenn die Aufgabe A die Ausführung beendet, beginnt die Aufgabe C wieder die Ausführung (zu dem einem Pfeil 63 entsprechenden Zeitpunkt). Danach wird die Ausführung der Aufgabe C wieder unterbrochen, um die Ausführung der Unterbrechung X zu beginnen (zu dem einem Pfeil 64 entsprechenden Zeitpunkt).
  • Danach ruft die Unterbrechung X die Aufgabe B auf (zu dem einem Pfeil 65 entsprechenden Zeitpunkt). Nach der Ausführung der Unterbrechung X beginnt die Aufgabe B die Ausführung (zu dem einem Pfeil 66 entsprechenden Zeitpunkt). Wenn die Aufgabe B die Ausführung beendet, beginnt die Aufgabe C wieder die Ausführung (zu dem einem Pfeil 67 entsprechenden Zeitpunkt).
  • 6 bis 9 zeigen Flußdiagramme der Aufgaben A bis C und der Unterbrechung X, die die vorstehend erwähnten Operationen ausführen. 6 zeigt ein Flußdiagramm der Aufgabe A. In einem Schritt S110 führt die Aufgabe A einen Aufgabe-A-Prozeß aus. Der Aufgabe-A-Prozeß ist einer von Prozessen zum Steuern des Motors 2 wie beispielsweise ein Prozeß zum Speichern von von dem Drosselsensor 41 empfangenen Informationen in einem bestimmten Bereich des RAM 16. In einem Schritt S120 ruft die Aufgabe A eine Beendungsaufgabe auf, um den Prozeß zu beenden. Die Beendungsaufgabe ist eine durch das OSEK-OS bereitgestellte Schnittstelle und wird zum Beenden der Programmausführung und zum Beginnen der Ausführung des nächsten Programms verwendet. Die Beendungsaufgabe wird im einzelnen beschrieben.
  • 7 zeigt ein Flußdiagramm der Aufgabe B. In einem Schritt S130 führt die Aufgabe B einen Aufgabe-B-Prozeß aus. Der Aufgabe-B-Prozeß ist einer von Prozessen zum Steuern des Motors 2 wie beispielsweise ein Prozeß zum Ausgeben von Steuersignalen zur Zündsteuerung, Kraftstoffeinspritzsteuerung und Drosselwinkeleinstellung zu der Zündvorrichtung 21, der Einspritzvorrichtung 22 bzw. der elektronischen Drossel 4. In einem Schritt S140 ruft die Aufgabe B die Beendungsaufgabe auf, um den Prozeß zu beenden.
  • 8 zeigt ein Flußdiagramm der Aufgabe C. In einem Schritt S150 führt die Aufgabe C einen ersten Aufgabe-C-Prozeß aus. Der erste Aufgabe-C-Prozeß ist einer von Prozessen zum Steuern des Motors 2 wie beispielsweise ein Teil eines Prozesses zum Berechnen der Einspritzmenge, des Kraftstoffzündzeitpunkts, des Drosseleinstellungsausmaßes und dergleichen. Eine derartige Berechnung wird basierend auf Informationen, die von dem Kurbelsensor 23, dem Wassertemperatursensor 31 und dem Drosselsensor 41 zugeführt werden und in dem RAM 16 gespeichert sind, ausgeführt.
  • In einem Schritt S160 ruft die Aufgabe C die vorstehend erwähnte Aktivierungsaufgabe auf. Während des Aufrufs übergibt die Aufgabe C Informationen zum Bestimmen der Aufgabe A als ein Argument an die Aktivierungsaufgabe. Der Aktivierungsaufgabenprozeß wird im einzelnen beschrieben.
  • In einem Schritt S170 führt die Aufgabe C einen zweiten Aufgabe-C-Prozeß aus. Wie der erste Aufgabe-C-Prozeß ist der zweite Aufgabe-C-Prozeß einer von Prozessen zum Steuern des Motors 2 wie beispielsweise ein Teil eines Prozesses zum Berechnen der Einspritzmenge, des Kraftstoffzündzeitpunkts, des Drosseleinstellungsausmaßes und dergleichen.
  • In einem Schritt S180 ruft die Aufgabe C die Beendungsaufgabe auf, um den Prozeß zu beenden.
  • 9 zeigt ein Flußdiagramm der Unterbrechung X. Die Unterbrechung X ist ein Programm in dem Unterbrechungsvektor 171, das dem dem zweiten Unterbrechungsregister 142 zugewiesenen Unterbrechungssignal entspricht. Wenn sie ein Unterbrechungssignal von der Unterbrechungssteuereinrichtung 14 empfängt, bestimmt die CPU 15 ein dem empfangenen Unterbrechungssignal entsprechendes Programm aus dem Unterbrechungsvektor 171. Die CPU 15 beginnt die Ausführung des bestimmten Programms. Entsprechend empfängt die CPU 15 das dem ersten Unterbrechungsregister 141 zugewiesene Unterbrechungssignal, um die Ausführung der Unterbrechung X zu beginnen.
  • Die CPU 15 sichert einen Kontext unmittelbar vor dem Beginnen der Ausführung von Unterbrechungsebenenprozeßprogrammen wie beispielsweise der Unterbrechung X. Genauer schreibt die CPU 15 temporäre Daten in ihrem Berechnungsergebnisregister und in dem RAM 16 in einen Teil des Stapels 161. Die temporären Daten bezeichnen Arbeitsdaten wie beispielsweise eine durch das zuletzt ausgeführte Programm verwendete temporäre Variable.
  • Die CPU 15 stellt den Kontext wieder her, wenn das Unterbrechungsebenenprozeßprogramm die Ausführung beendet. Genauer schreibt die CPU 15 die in dem Stapel 161 gespeicherten Daten in die ursprünglichen Bereiche in dem Berechnungsergebnisregister und dem RAM 16 zurück. Die Daten in dem Stapel 161 werden durch die unmittelbar vor dem Beginnen der Ausführung des Unterbrechungsebenenprozeßprogramms ausgeführte Kontextsicherung geschrieben.
  • Wenn das Unterbrechungsebenenprozeßprogramm die Ausführung beendet, schreibt die CPU 15 einen Wert des Unterbrechungszustandsmerkers 51 für das entsprechende Unterbrechungsregister in der Unterbrechungssteuereinrichtung 14 neu, um den Wert zu 0 zu ändern.
  • Während der Ausführung der Unterbrechung X wird in einem Schritt S210 ein erster Unterbrechung-X-Prozeß ausgeführt. Der erste Unterbrechung-X-Prozeß ist einer von Prozessen zum Steuern des Motors 2 wie beispielsweise ein Teil eines Prozesses zum Speichern der derzeitigen Zeit in dem RAM 16 als die Zeit zum Empfangen eines Signals von dem Kurbelsensor 23.
  • In einem Schritt S220 ruft die Unterbrechung X die Aktivierungsaufgabe auf. Während des Aufrufs übergibt die Unterbrechung X Informationen zum Bestimmen der Aufgabe B als ein Argument an die Aktivierungsaufgabe.
  • In einem Schritt S230 führt die Unterbrechung X einen zweiten Unterbrechung-X-Prozeß aus. Wie der erste Unterbrechung-X-Prozeß ist der zweite Unterbrechung-X-Prozeß einer von Prozessen zum Steuern des Motors 2 wie beispielsweise ein Teil eines Prozesses zum Speichern der derzeitigen Zeit in dem RAM 16 als die Zeit zum Empfangen eines Signals von dem Kurbelsensor 23.
  • In einem Schritt S240 endet die Unterbrechung X. Genauer führt die Unterbrechung X eine RTI-Anweisung (Rücksprungunterbrechungsanweisung) aus, um den Wert des IntLvl-Registers 149 in der Unterbrechungssteuereinrichtung 14 zu dem in dem Vorheriges-IntLvl-Register 150 gespeicherten Wert neu zu schreiben. Darüber hinaus schreibt die Unterbrechung X Werte eines Programmzählerzwischenspeichers und eines Statusregisterzwischenspeichers in dem RAM 16 in einen Programmzähler bzw. ein Statusregister in der CPU 15.
  • Es ist eine Steuerung zum Neuschreiben des Werts des IntLvl-Registers 149 der Unterbrechungssteuereinrichtung 14 zu dem in dem Vorheriges-IntLvl-Register 150 gespeicherten Wert bereitgestellt. Diese Steuerung ist äquivalent zum Ausgeben einer Prozeßabschlußmeldung zu der Unterbrechungssteuereinrichtung 14.
  • Der Programmzähler stellt einen Speicherbereich zum Speichern von die Adresse einer derzeit durch die CPU 15 ausgeführten Anweisung angebenden Daten bereit. Das Statusregister stellt einen Speicherbereich zum Speichern von Informationen über Ausführungszustände (Fehler, Unterbrechung, normaler Betrieb und dergleichen) eines auf der CPU laufenden Programms bereit.
  • 10 zeigt ein Flußdiagramm eines Aufgabenunterbrechungsprogramms. Die CPU 15 führt dieses Programm über den Unterbrechungsvektor 171 aus, wenn sie ein dem Aufgabenebenenprozeßprogramm entsprechendes Unterbrechungssignal empfängt.
  • In einem Schritt S310 sperrt das Aufgabenunterbrechungsprogramm Unterbrechungen. Genauer gibt das Aufgabenunterbrechungsprogramm eine Anweisung zu der Unterbrechungssteuereinrichtung 14 aus, um das Sperrzustandsmerkerregister 148 zu 1 neu zu schreiben. Die Unterbrechungssteuereinrichtung 14 gibt anschließend keine den nullten bis siebten Unterbrechungsregistern 140 bis 147 entsprechenden Unterbrechungssignale aus, bis der Wert des Sperrzustandsmerkerregisters 148 wieder zu 0 neu geschrieben wird.
  • In einem Schritt S320 sichert das Aufgabenunterbrechungsprogramm den Kontext. Genauer schreibt das Aufgabenunterbrechungsprogramm den derzeitigen Inhalt des Berechnungsergebnisregisters und temporäre Daten in dem RAM 16 in einen Teil des Stapels 161. Die temporären Daten bezeichnen Arbeitsdaten wie beispielsweise eine durch das zuletzt ausgeführte Programm verwendete temporäre Variable. Dieser Sicherungsprozeß schreibt den Stapelzeigerwert zu einer Adresse an dem Ende, an dem Daten des Stapels 161 geschrieben werden, neu.
  • In einem Schritt S330 speichert das Aufgabenunterbrechungsprogramm insbesondere den derzeitigen Stapelzeigerwert in einem Stapelzeigerzwischenspeicher des RAM 16.
  • In einem Schritt S340 erhält das Aufgabenunterbrechungsprogramm die älteste Aufgaben-ID aus der Bereit-Warteschlange 162.
  • Wie vorstehend angeführt weist die Bereit-Warteschlange 162 so viele FIFO-Zwischenspeicher auf wie die dritten bis siebten Unterbrechungsregister 143 bis 147, denen Aufgabenebenenprozeßprogramme zugewiesen sind. Die FIFO-Zwischenspeicher entsprechen Unterbrechungssignalen für die dritten bis siebten Unterbrechungsregister 143 bis 147. Daher weist die Bereit-Warteschlange 162 Ausführungswarteaufgabeninformationen auf, die eine Entsprechung zwischen einem Aufgabenebenenprozeß und seiner Priorität bewahren.
  • Wie nachstehend beschrieben wird speichert jeder FIFO-Zwischenspeicher eine Aufgaben-ID auf einer Zuerst-Hinein-Zuerst-Hinaus-Grundlage. Bei der Aufgaben-ID handelt es sich um Informationen zum Identifizieren eines dem entsprechenden Unterbrechungsregister zugewiesenen Aufgabenebenenprozeßprogramms.
  • Genauer liest in einem Schritt S340 das Aufgabenunterbrechungsprogramm Informationen über die früheste gespeicherte Aufgaben-ID aus dem einem Unterbrechungssignal, das die Ausführung dieser Aufgabenunterbrechung veranlaßt hat, entsprechenden FIFO-Zwischenspeicher. Das Aufgabenunterbrechungsprogramm löscht die Informationen aus dem FIFO-Zwischenspeicher.
  • In einem Schritt S350 gibt das Aufgabenunterbrechungsprogramm eine Unterbrechung frei. Genauer gibt das Aufgabenunterbrechungsprogramm eine Anweisung zum Neuschreiben des Sperrzustandsmerkerregisters 148 zu 0 zu der Unterbrechungssteuereinrichtung 14 aus. Der Unterbrechungssteuereinrichtung 14 wird es anschließend ermöglicht, den nullten bis siebten Unterbrechungsregistern 140 bis 147 entsprechende Unterbrechungssignale auszugeben.
  • In einem Schritt S360 springt das Aufgabenunterbrechungsprogramm zu der Aufgabe, um die Ausführung der Aufgabenunterbrechung zu beenden. Genauer führt das Aufgabenunterbrechungsprogramm ein der in dem Schritt S340 gelesenen Aufgaben-ID entsprechendes Aufgabenebenenprozeßprogramm aus, um die Ausführung der Aufgabenunterbrechung zu beenden.
  • Die CPU 15 führt eine derartige Aufgabenunterbrechung aus, um das zu der in dem FIFO-Zwischenspeicher in der Bereit-Warteschlange 162 gespeicherten ältesten Aufgaben-ID äquivalente Aufgabenebenenprozeßprogramm entsprechend dem zuletzt empfangenen Unterbrechungssignal auszuführen.
  • Die Unterbrechung wird in dem Schritt S310 gesperrt und wird in dem Schritt S350 freigegeben. Folglich wird die Programmausführung zwischen den Schritten 310 und 360 nicht wegen eines Unterbrechungssignals von den nullten bis siebten Unterbrechungsregistern 140 bis 147 geändert.
  • Wenn sie ein Unterbrechungssignal von der Unterbrechungssteuereinrichtung 14 empfängt, führt die CPU 15 nicht nur das Aufgabenunterbrechungsprogramm aus, sondern stellt auch einen Hardwareprozeß bereit. Das heißt, die CPU 15 schreibt den Programmzählerwert in den vorstehend angeführten Programmzählerzwischenspeicher. Ferner schreibt die CPU 15 den Statusregisterwert in den vorstehend angeführten Statusregisterzwischenspeicher.
  • 11 zeigt ein Flußdiagramm eines Aufgabenaktivierungsprogramms, einer durch das OSEK-OS bereitgestellten Schnittstelle zum Annehmen von Anforderungen zur Ausführung von Aufgabenebenenprozeßprogrammen.
  • In einem Schritt S410 sperrt das Aufgabenaktivierungsprogramm eine Unterbrechung. Dieser Prozeß ist äquivalent zu dem Schritt S310 in 10.
  • In einem Schritt S420 trägt das Aufgabenaktivierungsprogramm eine relevante Aufgaben-ID in die Bereit-Warteschlange 162 ein. Die relevante Aufgaben-ID entspricht einer in dem von dem Programm, das die Aktivierungsaufgabe aufgerufen hat, übergebenen Argument enthaltenen Aufgabenspezifikation. Wenn die Aktivierungsaufgabe in dem vorstehend angeführten Schritt S160 der Aufgabe C aufgerufen wird, wird zum Beispiel angenommen, daß die Aufgaben-ID der Aufgabe A die relevante Aufgaben-ID ist. Die Eintragung in der Bereit-Warteschlange 162 wird insbesondere durch ein Speichern der relevanten Aufgaben-ID in einem der FIFO-Zwischenspeicher in der Bereit-Warteschlange 162 realisiert. Das folgende beschreibt, wie festzustellen ist, welcher FIFO-Zwischenspeicher zum Speichern der relevanten Aufgaben-ID verwendet werden soll. Das ROM 17 speichert Informationen über die dem der relevanten Aufgaben-ID entsprechenden Aufgabenprogramm beigefügte Unterbrechungspriorität. Diese Informationen werden aus dem ROM 17 gelesen, um den FIFO-Zwischenspeicher basierend darauf, welchem Unterbrechungssignal die Unterbrechungspriorität entspricht, zu bestimmen.
  • In einem Schritt S430 fordert das Aufgabenaktivierungsprogramm die entsprechende Aufgabenunterbrechung an. Genauer gibt das Aufgabenaktivierungsprogramm ein Steuersignal zu einem der Aufgabe entsprechenden Unterbrechungsregister aus, so daß der Wert des Unterbrechungszustandsmerkers 51 auf 1 (ein) eingestellt wird und der Wert des Unterbrechungsmaskenzustandsmerkers 52 auf 0 (aus) eingestellt wird. Diese Operation ist äquivalent zur Ausgabe einer Anforderung zum Ausgeben eines Unterbrechungssignals mit den Informationen zum Bestimmen des Unterbrechungsregisters zu der Unterbrechungssteuereinrichtung 14.
  • In einem Schritt S440 gibt das Aufgabenaktivierungsprogramm eine Unterbrechung frei. Dieser Prozeß ist äquivalent zu dem Schritt S350 in 10. Nach dem Schritt S440 endet der Aktivierungsaufgabenprozeß. Die CPU 15 fährt mit der Ausführung des Programms, das die Aktivierungsaufgabe aufgerufen hat, fort.
  • Die CPU 15 führt das vorstehend angeführte Aufgabenaktivierungsprogramm aus, um eine Anforderung zum Ausführen des Aufgabenebenenprozeßprogramms von dem Aufruferprogramm bzw. Aufrufprogramm zu empfangen. Basierend auf dieser Anforderung speichert die CPU 15 die Aufgaben-ID des Aufgabenebenenprozesses in dem der Unterbrechungspriorität des Aufgabenebenenprozesses entsprechenden FIFO-Zwischenspeicher (siehe Schritt S420). In dieser Art und Weise speichert die Bereit-Warteschlange 162 den Aufgabenebenenprozeß und seine Unterbrechungspriorität einander zugeordnet.
  • Ferner fordert die CPU 15 die Unterbrechungssteuereinrichtung 14 zum Ausgeben eines dem Aufgabenebenenprozeß entsprechenden Unterbrechungssignals auf (siehe Schritt S430).
  • 12 zeigt ein Flußdiagramm des zum Beenden der Ausführung des Aufgabenebenenprozeßprogramms und Beginnen der Ausführung des nächsten Programms verwendeten Aufgabenbeendungsprogramms.
  • In einem Schritt S510 sperrt das Aufgabenbeendungsprogramm eine Unterbrechung. Dieser Prozeß ist äquivalent zu dem Schritt S310 in 10.
  • In 520 schreibt das Aufgabenbeendungsprogramm einen Stapelzeigerzwischenspeicherwert in den Stapelzeiger. Dies führt den Stapelzeigerwert zu dem Wert vor dem Beginnen der Ausführung des Programms, das die Beendungsaufgabe aufgerufen hat, zurück. Genauer kehrt der Stapelzeigerwert zu dem Wert unmittelbar nach dem Schritt S320 in dem Aufgabenunterbrechungsprogramm zurück.
  • In einem Schritt S530 stellt das Aufgabenbeendungsprogramm fest, ob die Bereit-Warteschlange 162 Aufgaben-IDs mit der gleichen Unterbrechungspriorität enthält oder nicht. Genauer wird es angenommen, daß der FIFO-Zwischenspeicher in der Bereit-Warteschlange 162 die Aufgaben-ID des Aufgabenebenenprozesses, der die Beendungsaufgabe aufgerufen hat, speichert. Das Aufgabenbeendungsprogramm stellt fest, ob der FIFO-Zwischenspeicher derzeit die anderen Aufgaben-IDs speichert oder nicht. Wenn die anderen Aufgaben-IDs gespeichert sind, führt das Aufgabenbeendungsprogramm den Prozeß in einem Schritt S570 aus. Andernfalls führt das Aufgabenbeendungsprogramm den Prozeß in einem Schritt S540 aus.
  • In dem Schritt S540 gibt das Aufgabenbeendungsprogramm ein Unterbrechungsanforderungslöschungssignal zu der Unterbrechungssteuereinrichtung 14 aus. Das Unterbrechungsanforderungslöschungssignal enthält Informationen zum Bestimmen eines der Unterbrechungspriorität des Aufgabenebenenprozesses, der die Beendungsaufgabe aufgerufen hat, entsprechenden Unterbrechungsregisters.
  • In einem Schritts S550 stellt das Aufgabenbeendungsprogramm den Kontext wieder her. Genauer speichert der Stapel 161 einen Berechnungsergebnisregisterwert und temporäre Daten über einen unmittelbar vor der Ausführung des Aufgabenebenenprozesses, der die Beendungsaufgabe aufgerufen hat, ausgeführten Aufgabenebenenprozeß. Das Aufgabenbeendungsprogramm liest den Berechnungsergebnisregisterwert und die temporären Daten aus dem Stapel 161 und führt sie zu den ursprünglichen Positionen in dem Berechnungsergebnisregister und dem RAM 16 zurück.
  • In einem Schritt S560 gibt das Aufgabenbeendungsprogramm eine Unterbrechung frei. Dieser Prozeß ist äquivalent zu dem Schritt S350 in 10.
  • In einem Schritt S565 führt das Aufgabenbeendungsprogramm wie in dem Schritt S240 in 9 eine RTI-Anweisung aus und beendet daraufhin den Beendungsaufgabenprozeß.
  • In dem Schritt S570 erhält das Aufgabenbeendungsprogramm die älteste Aufgaben-ID mit der gleichen Priorität aus der Bereit-Warteschlange 162. Genauer speichert der FIFO-Zwischenspeicher der Bereit-Warteschlange 162 Aufgaben-IDs für den Aufgabenebenenprozeß, der die Beendungsaufgabe aufgerufen hat. Das Aufgabenbeendungsprogramm liest die früheste gespeicherte Aufgaben-ID aus dem FIFO-Zwischenspeicher und löscht die Aufgaben-ID aus dem FIFO-Zwischenspeicher.
  • In einem Schritt S580 gibt das Aufgabenbeendungsprogramm wie in dem Schritt S550 eine Unterbrechung frei.
  • In einem Schritt S590 springt das Aufgabenbeendungsprogramm zu der Aufgabe, um die Ausführung der Beendungsaufgabe zu beenden. Genauer führt das Aufgabenbeendungsprogramm ein zu der in dem Schritt S570 gelesenen Aufgaben-ID äquivalentes Aufgabenebenenprozeßprogramm aus, um die Ausführung der Aufgabenunterbrechung zu beenden.
  • Die CPU 15 führt das vorstehend angeführte Aufgabenbeendungsprogramm aus, um die Ausführung des Aufgabenebenenprozesses zu beenden. Es kann ein Fall vorhanden sein, in dem die Bereit-Warteschlange 162 den der gleichen Priorität wie der des Aufgabenebenenprozesses zugeordneten Aufgabenebenenprozeß speichert. In diesem Fall führt die CPU 15 einen der frühesten gespeicherten Aufgabenebenenprozesse aus (siehe Schritte 570 und 590). Andernfalls führt die CPU 15 eine RTI-Anweisung aus (siehe Schritt S565).
  • Das folgende beschreibt, wie das Ausführen der vorstehend angeführten Programme einen Wechsel zwischen Ausführungsprogrammen für die CPU 15 wie in 5 gezeigt realisiert.
  • Es wird das folgende angenommen. Die CPU 15 führt die Aufgabe C aus. Die nullten bis siebten Unterbrechungsregister 140 bis 147 der Unterbrechungssteuereinrichtung 14 enthalten alle 1en als Werte der Unterbrechungsmaskenzustandsmerker 52 mit Ausnahme von 0 für das sechste Unterbrechungsregister 146. Das IntLvl-Register 149 enthält den Wert 6 (Aufgabe mit niedriger Priorität). Die Bereit-Warteschlange 162 speichert nur die Aufgaben-ID der Aufgabe C in dem entsprechenden FIFO-Zwischenspeicher.
  • Das Ausführen des Schritts S160 in 8 führt die Aktivierungsaufgabe aus. Das Ausführen der Aktivierungsaufgabe speichert die Aufgaben-ID der Aufgabe A (siehe Schritt S420 in 11) in dem der der Aufgabe A zugewiesenen Unterbrechungspriorität entsprechenden FIFO-Zwischenspeicher der Bereit-Warteschlange 162. Ferner werden der Unterbrechungszustandsmerker 51 und der Unterbrechungsmaskenzustandsmerker 52 des der Unterbrechungspriorität entsprechenden vierten Unterbrechungsregisters 144 zu 1 bzw. 0 geändert. Dieses Stadium ist äquivalent zu dem durch den Pfeil 61 in 5 angegebenen Zeitpunkt.
  • In dieser Art und Weise wird die Unterbrechungssteuereinrichtung 14 zum Empfangen einer Anforderung der dem vierten Unterbrechungsregister 144 entsprechenden Unterbrechungspriorität konditioniert. Die Unterbrechungssteuereinrichtung 14 stellt fest, daß das vierte Unterbrechungsregister 144 und das sechste Unterbrechungsregister 146 den auf 1 eingestellten Unterbrechungszustandsmerker 51 und den auf 0 eingestellten Unterbrechungsmaskenzustandsmerker 52 beibehalten. Die Unterbrechungssteuereinrichtung 14 vergleicht die Unterbrechungsprioritäten 53 dieser Unterbrechungsregister, um festzustellen, daß das vierte Unterbrechungsregister 144 die höchste Priorität aufweist. Ferner stellt die Unterbrechungssteuereinrichtung 14 fest, daß die Unterbrechungspriorität 53 des vierten Unterbrechungsregisters 144 einen kleineren Wert als den des IntLvl-Registers 149 enthält. Basierend auf dieser Feststellung schreibt die Unterbrechungssteuereinrichtung 14 den Wert des Vorheriges-IntLvl-Registers 150 zu 6, dem derzeitigen Wert des IntLvl-Registers 149, neu. Die Unterbrechungssteuereinrichtung 14 schreibt den Wert des IntLvl-Registers 149 zu 4, dem derzeitigen Wert der Unterbrechungspriorität 53 des vierten Unterbrechungsregisters 144, neu. Ferner gibt die Unterbrechungssteuereinrichtung 14 das dem vierten Unterbrechungsregister 144 entsprechende Unterbrechungssignal zu der CPU 15 aus.
  • Während sie die Aufgabe C ausführt, empfängt die CPU 15 das Unterbrechungssignal, um Werte des Programmzählers und des Statusregisters in dem Programmzählerzwischenspeicher bzw. dem Statusregisterzwischenspeicher zu sichern. Darüber hinaus führt die CPU 15 das Aufgabenunterbrechungsprogramm wie in 10 gezeigt über den Unterbrechungsvektor 171 aus. Die CPU 15 gewinnt die Aufgaben-ID der Aufgabe A wieder und löscht sie. Diese Aufgaben-ID ist die älteste in dem dem Unterbrechungssignal entsprechenden FIFO-Zwischenspeicher der Bereit-Warteschlange 162 gespeicherte Aufgaben-ID. Die CPU 15 führt daraufhin die Aufgabe A aus, das heißt die der relevanten Aufgaben-ID entsprechende Aufgabe. Dieses Stadium ist äquivalent zu dem durch den Pfeil 62 in 5 angegebenen Zeitpunkt.
  • Wenn die Aufgabe A die Ausführung beendet, wird der Schritt S140 in 7 ausgeführt, um die Ausführung der Beendungsaufgabe zu beginnen. Die Beendungsaufgabe stellt fest, ob der der aufrufenden Aufgabe A entsprechende FIFO-Zwischenspeicher leer ist oder nicht (siehe Schritt S530 in 12). Basierend auf dieser Feststellung stellt die Beendungsaufgabe den Kontext wieder her (siehe Schritt S550). Dieser Prozeß stellt das Berechnungsergebnisregister und dergleichen der CPU 15 und temporäre Daten in dem RAM 16 zu denjenigen, die bei der Unterbrechung der Aufgabe C verwendet wurden, wieder her. Die CPU 15 gibt daraufhin ein Unterbrechungsanforderungslöschungssignal zu der Unterbrechungssteuereinrichtung 14 aus (siehe Schritt S540). Folglich plaziert die Unterbrechungssteuereinrichtung 14 1 in dem Unterbrechungsmaskenzustandsmerker 52 des vierten Unterbrechungsregisters 144.
  • Die CPU 15 führt eine RTI-Anweisung aus (siehe Schritt S565). Dies führt die Werte des Programmzählers und des Statusregisters zu denjenigen zurück, die bei der Unterbrechung der Aufgabe C verwendet wurden. Der Wert des IntLvl-Registers 149 kehrt zu 6 zurück, das heißt dem Wert des Vorheriges-IntLvl-Registers 150. Die Unterbrechungssteuereinrichtung 14 stellt daraufhin fest, daß nur das sechste Unterbrechungsregister 146 den auf 1 eingestellten Unterbrechungszustandsmerker 51 und den auf 0 eingestellten Unterbrechungsmaskenzustandsmerker 52 beibehält. Ferner gibt die Unterbrechungssteuereinrichtung 14 basierend auf der Tatsache, daß der gleiche Wert für die Unterbrechungspriorität 53 des sechsten Unterbrechungsregisters 146 und die des IntLvl-Registers 149 verwendet wird, kein Unterbrechungssignal zu der CPU 15 aus.
  • Die CPU 15 beginnt die Ausführung der Aufgabe C wieder von der dem Programmzählerwert entsprechenden Position aus. Dieses Stadium ist äquivalent zu dem durch den Pfeil 63 in 5 angegebenen Zeitpunkt.
  • Während die Aufgabe C ausgeführt wird, kann die Unterbrechungssteuereinrichtung 14 zum Beispiel ein Impulssignal von dem Kurbelsensor 23 empfangen. Die Unterbrechungssteuereinrichtung 14 plaziert den Wert 1 (ein) in dem Unterbrechungszustandsmerker 51 für das dem Impulssignal entsprechende Unterbrechungsregister (zum Beispiel das erste Unterbrechungsregister 141).
  • In dieser Art und Weise wird die Unterbrechungssteuereinrichtung 14 zum Empfangen einer Anforderung der dem ersten Unterbrechungsregister 141 entsprechenden Unterbrechungspriorität konditioniert. Die Unterbrechungssteuereinrichtung 14 stellt fest, daß das erste Unterbrechungsregister 141 und das sechste Unterbrechungsregister 146 den auf 1 eingestellten Unterbrechungszustandsmerker 51 und den auf 0 eingestellten Unterbrechungsmaskenzustandsmerker 52 beibehalten. Die Unterbrechungssteuereinrichtung 14 vergleicht die Unterbrechungsprioritäten 53 dieser Unterbrechungsregister, um festzustellen, daß das erste Unterbrechungsregister 141 die höchste Priorität aufweist. Ferner stellt die Unterbrechungssteuereinrichtung 14 fest, daß die Unterbrechungspriorität 53 des ersten Unterbrechungsregisters 141 einen kleineren Wert als den des IntLvl-Registers 149 enthält. Basierend auf dieser Feststellung schreibt die Unterbrechungssteuereinrichtung 14 den Wert des Vorheriges-IntLvl-Registers 150 zu 6, dem derzeitigen Wert des IntLvl-Registers 149, neu. Die Unterbrechungssteuereinrichtung 14 schreibt den Wert des IntLvl-Registers 149 zu 1, dem derzeitigen Wert der Unterbrechungspriorität 53 des ersten Unterbrechungsregisters 141, neu. Ferner gibt die Unterbrechungssteuereinrichtung 14 das dem ersten Unterbrechungsregister 141 entsprechende Unterbrechungssignal zu der CPU 15 aus.
  • Während sie die Aufgabe C ausführt, empfängt die CPU 15 das Unterbrechungssignal, um Werte des Programmzählers und des Statusregisters in dem Programmzählerzwischenspeicher bzw. dem Statusregisterzwischenspeicher zu sichern. Darüber hinaus beginnt die CPU 15 die Ausführung des Unterbrechung-X-Programms über den Unterbrechungsvektor 171. Dieses Stadium ist äquivalent zu dem durch den Pfeil 64 in 5 angegebenen Zeitpunkt.
  • Danach führt die Unterbrechung X den Schritt S220 in 9 aus, um die Aktivierungsaufgabe auszuführen. Das Ausführen der Aktivierungsaufgabe speichert die Aufgaben-ID der Aufgabe B in dem der der Aufgabe B zugewiesenen Unterbrechungspriorität entsprechenden FIFO-Zwischenspeicher der Bereit-Warteschlange 162 (siehe Schritt S420 in 11). Ferner ändert die Aktivierungsaufgabe den Unterbrechungszustandsmerker 51 und den Unterbrechungsmaskenzustandsmerker 52 in dem der Unterbrechungspriorität entsprechenden fünften Unterbrechungsregister 145 zu 1 bzw. 0. Dieses Stadium ist äquivalent zu dem durch den Pfeil 65 in 5 angegebenen Zeitpunkt.
  • In dieser Art und Weise wird die Unterbrechungssteuereinrichtung 14 zum Empfangen einer Anforderung der dem fünften Unterbrechungsregister 145 entsprechenden Unterbrechungspriorität konditioniert. Die Unterbrechungssteuereinrichtung 14 stellt fest, daß das erste Unterbrechungsregister 141, das fünfte Unterbrechungsregister 145 und das sechste Unterbrechungsregister 146 den auf 1 eingestellten Unterbrechungszustandsmerker 51 und den auf 0 eingestellten Unterbrechungsmaskenzustandsmerker 52 beibehalten. Die Unterbrechungssteuereinrichtung 14 vergleicht die Unterbrechungsprioritäten 53 dieser Unterbrechungsregister, um festzustellen, daß das erste Unterbrechungsregister 141 die höchste Priorität aufweist. Ferner stellt die Unterbrechungssteuereinrichtung 14 fest, daß der gleiche Wert für die Unterbrechungspriorität 53 des ersten Unterbrechungsregisters 141 und die des IntLvl-Registers 149 verwendet wird. Zu dieser Zeit gibt die Unterbrechungssteuereinrichtung 14 daher kein Unterbrechungssignal zu der CPU 15 aus. Da die Unterbrechung X höher priorisiert ist als die Aufgabe B, wird die Aufgabe B während der Ausführung der Unterbrechung X nicht ausgeführt.
  • Wenn die Unterbrechung X die Ausführung beendet, führt die CPU 15 eine RTI-Anweisung aus (siehe Schritt S240 in 9). In dieser Art und Weise kehren die Werte des Programmzählers und des Statusregisters zu denjenigen zurück, die bei der zweiten Unterbrechung der Aufgabe C verwendet wurden. Der Wert des IntLvl-Registers 149 kehrt zu 6 zurück, das heißt dem Wert des Vorheriges-IntLvl-Registers 150.
  • Die Unterbrechungssteuereinrichtung 14 stellt daraufhin fest, daß nur das fünfte Unterbrechungsregister 145 und das sechste Unterbrechungsregister 146 den auf 1 eingestellten Unterbrechungszustandsmerker 51 und den auf 0 eingestellten Unterbrechungsmaskenzustandsmerker 52 beibehalten. Ferner stellt die Unterbrechungssteuereinrichtung 14 fest, daß die Unterbrechungspriorität 53 des fünften Unterbrechungsregisters 145 einen kleineren Wert als die Unterbrechungspriorität 53 des sechsten Unterbrechungsregisters 146 enthält. Die Unterbrechungspriorität 53 des fünften Unterbrechungsregisters 145 enthält einen kleineren Wert als den Wert des IntLvl-Registers 149. Darauf basierend gibt die Unterbrechungssteuereinrichtung 14 ein dem fünften Unterbrechungsregister 145 entsprechendes Unterbrechungssignal zu der CPU 15 aus.
  • Die CPU 15 empfängt das Unterbrechungssignal, um Werte des Programmzählers und des Statusregisters in dem Programmzählerzwischenspeicher bzw. dem Statusregisterzwischenspeicher zu sichern. Darüber hinaus beginnt die CPU 15 die Ausführung des Aufgabenunterbrechungsprogramms wie in 10 gezeigt über den Unterbrechungsvektor 171. Die CPU 15 gewinnt die Aufgaben-ID der Aufgabe B wieder und löscht sie. Diese Aufgaben-ID ist die älteste in dem dem Unterbrechungssignal entsprechenden FIFO-Zwischenspeicher der Bereit-Warteschlange 162 gespeicherte Aufgaben-ID. Die CPU 15 führt daraufhin die Aufgabe B aus, das heißt die der relevanten Aufgaben-ID entsprechende Aufgabe. Dieses Stadium ist äquivalent zu dem durch den Pfeil 66 in 5 angegebenen Zeitpunkt.
  • Wenn die Aufgabe B die Ausführung beendet, wird die Beendungsaufgabe ausgeführt. Zu dem durch den Pfeil 67 angegebenen Zeitpunkt endet der Prozeß für die Aufgabe B, um den Prozeß für die Aufgabe C wieder zu beginnen. Dieser Prozeß ähnelt dem Prozeß, der ausgeführt wird, wenn die Aufgabe A zu dem durch den Pfeil 63 angegebenen Zeitpunkt endet, um die Ausführung der Aufgabe C zu beginnen.
  • Es ist die Realisierung des Wechsels zwischen den Ausführungsprogrammen für die CPU 15 wie in 5 gezeigt beschrieben worden.
  • In 5 wechselt die Aufgabe C zu der Aufgabe A, wenn die Aktivierungsaufgabe die Unterbrechungssteuereinrichtung 14 zu dem durch den Pfeil 61 angegebenen Zeitpunkt zum Ausgeben eines Unterbrechungssignals auffordert. Gemäß einer bekannten Aktivierungsaufgabe führt die CPU 15 einen Softwareprozeß aus, um Prioritäten zwischen Aufgabenebenenprozessen zu vergleichen. Basierend auf dem Ergebnis realisiert die CPU 15 einen auszuführenden Aufgabenebenenprozeß. Im Gegensatz dazu ermöglicht es das Ausführungsbeispiel der Unterbrechungssteuereinrichtung 14, Unterbrechungsprioritäten miteinander zu vergleichen.
  • In einem Fall kehrt die Aufgabe A zu der Aufgabe C zur Ausführung zurück. In einem anderen Fall wechselt die Unterbrechung X zu der Aufgabe B zur Ausführung. In noch einem anderen Fall kehrt die Aufgabe B zu der Aufgabe C zur Ausführung zurück. In diesen Fällen führt die CPU 15 eine RTI-Anweisung in der Beendungsaufgabe (siehe Schritt S565 in 12) oder direkt (siehe Schritt S240 in 9) aus. In dieser Art und Weise vergleicht die Unterbrechungssteuereinrichtung 14 Unterbrechungsprioritäten miteinander. Basierend auf dem Vergleichsergebnis wechselt die CPU 15 die Ausführungsaufgaben. Gemäß einer bekannten Beendungsaufgabe führt die CPU 15 wie bei der bekannten Aktivierungsaufgabe einen Softwareprozeß zum Vergleichen von Prioritäten zwischen Aufgabenebenenprozessen aus. Basierend auf dem Ergebnis realisiert die CPU 15 einen auszuführenden Aufgabenebenenprozeß. Im Gegensatz dazu ermöglicht es das Ausführungsbeispiel der Unterbrechungssteuereinrichtung 14, Unterbrechungsprioritäten miteinander zu vergleichen.
  • Wenn sie zum Ausführen des Aufgabenebenenprozesses aufgefordert wird, führt die CPU 15 die Aktivierungsaufgabe aus, um die Unterbrechungssteuereinrichtung 14 zum Ausgeben eines dem Aufgabenebenenprozeß entsprechenden Unterbrechungssignals aufzufordern. Wenn sie Anforderungen annimmt, bestimmt die Unterbrechungssteuereinrichtung 14 die am höchsten priorisierte Anforderung der angenommenen Anforderungen. Wenn die bestimmte Anforderung einen kleineren Wert der Unterbrechungspriorität 53 als den Wert des IntLvl-Registers 149 aufweist, gibt die Unterbrechungssteuereinrichtung 14 ein die bestimmte Anforderung betreffendes Unterbrechungssignal aus. Die CPU führt einen dem Unterbrechungssignal von der Unterbrechungssteuereinrichtung 14 entsprechenden Prozeß aus. Mit anderen Worten ermöglicht es die CPU 15 der Unterbrechungssteuereinrichtung 14, Prioritäten der Aufgabenebenenprozesse zu vergleichen. Die Verwendung der Mehrfachunterbrechungsfunktion der Unterbrechungssteuereinrichtung 14 kann die durch die CPU 15, die über eine Vielzahl von Aufgaben zur Ausführung wechselt, zur Aufgabenplanung verbrauchte Zeit vermindern.
  • Wenn der Aufgabenebenenprozeß die Ausführung abschließt, führt die CPU 15 eine RTI-Anweisung aus. Die Unterbrechungssteuereinrichtung 14 bestimmt das am höchsten priorisierte Unterbrechungssignal der zur Ausgabe angeforderten Unterbrechungssignale. Die Unterbrechungssteuereinrichtung 14 gibt das bestimmte Unterbrechungssignal aus, wenn sein Wert der Unterbrechungspriorität 53 kleiner als der Wert des IntLvl-Registers 149 ist. Entsprechend ermöglicht es die CPU der Unterbrechungssteuereinrichtung 14, Prioritäten der Aufgabenebenenprozesse zu vergleichen.
  • Nachstehend auf das Beispiel in 5 Bezug nehmend beschreibt das folgende einen Fall, in dem während der Ausführung der Aufgabe B eine Aktivierungsaufgabe aufgerufen wird. Es wird angenommen, daß diese Aktivierungsaufgabe ein Argument in Form von einer der gleichen Unterbrechungspriorität wie für die Aufgabe B zugewiesenen Aufgabe D aufweist. In diesem Fall speichert die Ausführung der Aktivierungsaufgabe die Aufgaben-ID der Aufgabe D in dem der Aufgabe B entsprechenden FIFO-Zwischenspeicher. Wenn die Aufgabe B endet, wird die Beendungsaufgabe in dem Schritt S530 in 12 ausgeführt, um festzustellen, daß eine andere Aufgaben-ID in dem FIFO-Zwischenspeicher für die gleiche Unterbrechungspriorität wie bei Aufgabe B enthalten ist. In dem Schritt S570 liest die Beendungsaufgabe die entsprechende Aufgaben-ID der Aufgabe D aus dem FIFO-Zwischenspeicher. In dem Schritt S590 beginnt die Aufgabe D die Ausführung.
  • Wenn ein Aufgabenverarbeitungsprogramm endet, kann der FIFO-Zwischenspeicher mit der gleichen Unterbrechungspriorität aufeinanderfolgend eine Aufgaben-ID eines anderen Aufgabenverarbeitungsprogramms speichern. In einem derartigen Fall wird das andere Aufgabenverarbeitungsprogramm aufeinanderfolgend ausgeführt, ohne den Kontext des vorigen Aufgabenverarbeitungsprogramms zu sichern, eine Unterbrechung für die Unterbrechungssteuereinrichtung 14 anzufordern oder eine Unterbrechungsanforderung zu löschen. Der Grund folgt. Der FIFO-Zwischenspeicher enthält die Aufgaben-ID für ein Aufgabenverarbeitungsprogramm mit der gleichen Priorität wie für das derzeit ausgeführte Aufgabenverarbeitungsprogramm. Dies bedeutet, daß Aufgabenverarbeitungsprogramme in dem FIFO-Zwischenspeicher die Ausführung immer von Anfang an beginnen. In dieser Art und Weise ist es möglich, Prozeßlasten bei der CPU wie beispielsweise das Sichern von Kontexten zu vermindern.
  • Gemäß dem Ausführungsbeispiel wird entweder der Wert 1 oder 0 für den Unterbrechungsmaskenzustandsmerker 52 der Unterbrechungssteuereinrichtung 14 verwendet. Es wird angenommen, daß die Unterbrechungssteuereinrichtung 14 eine Anforderung zum Ausgeben eines Unterbrechungssignals für den Aufgabenebenenprozeß mit einer gegebenen Unterbrechungspriorität empfängt. Selbst wenn die Unterbrechungssteuereinrichtung 14 eine andere Anforderung zum Ausgeben eines Unterbrechungssignals für den Aufgabenebenenprozeß mit der gleichen Unterbrechungspriorität empfängt, wird der Wert des Unterbrechungsmaskenzustandsmerkers 52 nicht geändert. Es wird angenommen, daß dann, wenn jedesmal einer von Aufgabenebenenprozessen mit der Unterbrechungspriorität endet, ein zu dem Schritt S540 in 12 äquivalenter Prozeß immer den Unterbrechungsmaskenzustandsmerker 52 des entsprechenden Unterbrechungsregisters zu 1 ändert. In diesem Fall scheint es, daß die Unterbrechungssteuereinrichtung 14 nicht zur Ausgabe von nachfolgenden Unterbrechungssignalen aufgefordert wird.
  • Das Ausführungsbeispiel löst dieses Problem, das auftritt, wenn Aufgabenebenenprozesse mit der gleichen Unterbrechungspriorität in einer mehrfachen Art und Weise angefordert werden, durch das folgende. Selbst wenn einer der Aufgabenebenenprozesse abgeschlossen ist, wird kein Unterbrechungsregister gelöscht, und daraufhin wird der später angeforderte Aufgabenebenenprozeß aufeinanderfolgend ausgeführt.
  • (Zweites Ausführungsbeispiel)
  • Das folgende beschreibt ein zweites Ausführungsbeispiel der vorliegenden Erfindung. Das zweite Ausführungsbeispiel unterscheidet sich in dem folgenden von dem ersten Ausführungsbeispiel. Die CPU 15 schreibt das IntLvl-Register 149 der Unterbrechungssteuereinrichtung 14 neu, um die Priorität des derzeit ausgeführten Aufgabenebenenprozesses künstlich auf eine bestimmte Priorität zu erhöhen.
  • Es kann notwendig werden, die Priorität des derzeit ausgeführten Aufgabenebenenprozesses künstlich auf eine bestimmte Priorität zu erhöhen. Es sind zum Beispiel Aufgabenebenenprozesse mit verschiedenen Prioritäten zum Verwenden des gleichen Betriebsmittels der Motor-ECU 1 konfiguriert. Das heißt, das Betriebsmittel wird durch Aufgabenebenenprozesse mit verschiedenen Prioritäten gemeinsam genutzt. Das Betriebsmittel der Motor-ECU 1 bezeichnet eine durch die CPU 15 verwendete physikalische Vorrichtung in der Motor-ECU 1. Das Betriebsmittel umfaßt das RAM 16 des Mikrocomputers 12, einen bestimmten Bereich in EEPROM (nicht gezeigt), die Schaltung für externe Eingabe/Ausgabe 11 und eine Kommunikationsvorrichtung zum Kommunizieren mit einer anderen ECU in einem Fahrzeug (nicht gezeigt).
  • Während in diesem Fall ein Aufgabenebenenprozeß mit einer niedrigen Unterbrechungspriorität ausgeführt wird, kann angefordert werden, einen anderen Aufgabenebenenprozeß mit einer höheren Unterbrechungspriorität auszuführen. Es kann ein Bedarf daran bestehen, zu verhindern, daß das durch den niedrig priorisierten Aufgabenebenenprozeß verwendete Betriebsmittel durch den anderen Aufgabenebenenprozeß mit Unterbrechungen verwendet wird. Das heißt, ein Aufgabenebenenprozeß kann das gemeinsam genutzte Betriebsmittel ausschließlich verwenden müssen.
  • Zum Lösen dieses Problems stellt das OSEK-OS gemäß dem Ausführungsbeispiel ein Betriebsmittelaneignungsprogramm und ein Betriebsmittelfreigabeprogramm bzw. Betriebsmittelzugriffsfreigabeprogramm bereit. Diese Programme fungieren als eine Schnittstelle zum ausschließlichen Verwenden des Betriebsmittels, indem ein konkurrierender Zugriff auf das Betriebsmittel zwischen Aufgabenebenenprozessen vermieden wird.
  • Der Aufgabenebenenprozeß mit einer niedrigen Unterbrechungspriorität ruft das Betriebsmittelaneignungsprogramm auf, um mit einem ausschließlichen Verwenden des Betriebsmittels zu beginnen. Der Aufgabenebenenprozeß ruft das Betriebsmittelzugriffsfreigabeprogramm auf, um das verwendete Betriebsmittel für die anderen Aufgabenebenenprozesse verfügbar zu machen. Es wird ein Argument an das Betriebsmittelaneignungsprogramm und das Betriebsmittelzugriffsfreigabeprogramm übergeben. Das Argument bestimmt ein Betriebsmittel, dessen ausschließliche Verwendung zu beginnen oder zu beenden ist.
  • 13 zeigt ein Flußdiagramm des Betriebsmittelaneignungsprogramms.
  • Wenn das Betriebsmittelaneignungsprogramm aufgerufen wird, sperrt die CPU 15 in einem Schritt S610 eine Unterbrechung. Dieser Prozeß ist äquivalent zu dem Schritt S310 in 10.
  • In einem Schritt S620 ermöglicht es der Prozeß dem RAM 16, den derzeitigen Wert in dem IntLvl-Register 149 der Unterbrechungssteuereinrichtung 14 zu speichern.
  • In einem Schritt S630 schreibt der Prozeß den Wert des IntLvl-Registers 149 zu einer Ebene des zu erhaltenden Betriebsmittels neu. Das zu erhaltende Betriebsmittel ist eines, das derzeit zur ausschließlichen Verwendung vorgesehen ist, und wird als ein Argument von einem Aufrufer des Betriebsmittelaneignungsprogramms übergeben. Die Betriebsmittelebene ist ein jedem Betriebsmittel der Motor-ECU 1 zugewiesener Wert der Unterbrechungspriorität. Dieser Wert ist gleich der höchsten Unterbrechungspriorität von Unterbrechungsprioritäten für Aufgabenebenenprozesse, die das Betriebsmittel gemeinsam nutzen. Die Betriebsmittelebenen werden in dem Entwurfsstadium der Motor-ECU 1 vorbestimmt. Das ROM 17 speichert die Informationen über die Betriebsmittelebenen.
  • In einem Schritt S640 gibt der Prozeß eine Unterbrechung frei. Dieser Prozeß ist äquivalent zu dem Schritt S350 in 10. Das Programm beendet daraufhin die Ausführung. Die CPU 15 beginnt wieder die Ausführung des Aufrufprogramms.
  • Die CPU 15 führt das Betriebsmittelaneignungsprogramm aus. Folglich speichert das IntLvl-Register 149 einen eine höhere Priorität als die Unterbrechungspriorität des tatsächlich ausgeführten Aufgabenebenenprozesses angebenden Wert.
  • Zu dieser Zeit wird es berücksichtigt, daß die CPU 15 eine Anforderung zu der Unterbrechungssteuereinrichtung 14 ausgibt, um ein dem anderen das Betriebsmittel verwendenden Aufgabenebenenprozeß entsprechendes Unterbrechungssignal auszugeben. Der Wert des IntLvl-Registers 149 gibt eine Priorität an, die höher als die oder gleich der Unterbrechungspriorität des Unterbrechungssignals ist. Dies liegt daran, daß der Wert des IntLvl-Registers 149 die höchste Priorität von Prioritäten für das Betriebsmittel gemeinsam nutzende Aufgabenebenenprozesse angibt. Es ist kein Aufgabenebenenprozeß vorhanden, der eine höhere Priorität als die höchste Priorität angibt und das Betriebsmittel verwendet.
  • Infolge des Vergleichs zwischen dem IntLvl-Register 149 und dem Wert der Unterbrechungspriorität 53 für das dem Unterbrechungssignal entsprechende Unterbrechungsregister gibt die Unterbrechungssteuereinrichtung 14 kein Unterbrechungssignal aus. Der Aufgabenebenenprozeß, der das Betriebsmittelaneignungsprogramm aufgerufen hat, wird dazu in die Lage versetzt, das Betriebsmittel zu verwenden, indem die Verwendung durch die anderen Aufgabenebenenprozesse ausgeschlossen wird.
  • 14 zeigt ein Flußdiagramm des Betriebsmittelzugriffsfreigabeprogramms.
  • Wenn das Betriebsmittelzugriffsfreigabeprogramm aufgerufen wird, sperrt die CPU 15 in einem Schritt S650 eine Unterbrechung. Dieser Prozeß ist äquivalent zu dem Schritt S310 in 10.
  • Wenn das Betriebsmittel erhalten wird, speichert das RAM 16 den Wert des IntLvl-Registers 149. In einem Schritt S660 schreibt der Prozeß den Wert in das IntLvl-Register 149.
  • In einem Schritt S670 gibt der Prozeß eine Unterbrechung frei. Dieser Prozeß ist äquivalent zu dem Schritt S350 in 10. Das Programm beendet daraufhin die Ausführung. Die CPU 15 beginnt wieder die Ausführung des Aufrufprogramms.
  • Die Ausführung des Betriebsmittelzugriffsfreigabeprogramms führt den Wert des IntLvl-Registers 149 zu dem vor der Betriebsmittelaneignung verwendeten Wert zurück. Es kann eine Anforderung zum Ausgeben eines dem das Betriebsmittel verwendenden Aufgabenebenenprozeß entsprechenden Unterbrechungssignals zwischen einem Aufruf des Betriebsmittelaneignungsprogramms und einem Aufruf des Betriebsmittelzugriffsfreigabeprogramms vorhanden sein. In einem derartigen Fall kann der Aufgabenebenenprozeß unmittelbar nach der Ausführung des Betriebsmittelzugriffsfreigabeprogramms ausgeführt werden. Das heißt, die anderen Aufgabenebenenprozesse werden dazu in die Lage versetzt, das Betriebsmittel zu verwenden.
  • (Drittes Ausführungsbeispiel)
  • Das folgende beschreibt ein drittes Ausführungsbeispiel der vorliegenden Erfindung. Die folgende Beschreibung deckt nur einen Unterschied des dritten Ausführungsbeispiels gegenüber dem zweiten Ausführungsbeispiel ab. Gemäß dem dritten Ausführungsbeispiel stellt das OSEK-OS wie bei dem zweiten Ausführungsbeispiel das Betriebsmittelaneignungsprogramm und das Betriebsmittelzugriffsfreigabeprogramm als Schnittstellen zum künstlichen Erhöhen der Priorität des derzeit ausgeführten Aufgabenebenenprozesses auf eine bestimmte Priorität bereit.
  • Das Betriebsmittelaneignungsprogramm gemäß dem dritten Ausführungsbeispiel unterscheidet sich jedoch in dem folgenden von dem gemäß dem zweiten Ausführungsbeispiel. Das Betriebsmittelaneignungsprogramm ermöglicht eine ausschließliche Verwendung des Betriebsmittels, indem ein Wert der Unterbrechungspriorität 53 für das Unterbrechungsregister in der Unterbrechungssteuereinrichtung 14 zu einer Priorität, die niedriger als die oder gleich der Priorität des derzeit ausgeführten Aufgabenebenenprozesses ist, neu geschrieben wird.
  • Unter einer Neuschreibsteuerung der CPU 15 schreibt die Unterbrechungssteuereinrichtung 14 gemäß dem Ausführungsbeispiel Werte der Unterbrechungsprioritäten 53 für die dritten bis siebten Unterbrechungsregister 143 bis 147 neu. Die Unterbrechungssteuereinrichtung 14 kann erfassen, daß der Wert der Unterbrechungspriorität 53 unter der Steuerung der CPU 15 neu geschrieben wird. Wie bei dem ersten Ausführungsbeispiel beschrieben führt die Unterbrechungssteuereinrichtung 14 infolge des Empfangens eines eine Anforderung zum Ausgeben eines Unterbrechungssignals darstellenden Signals von der CPU 15 oder der Schaltung für externe Eingabe/Ausgabe 11 eine zu der Operation nach dem Neuschreiben des Unterbrechungszustandsmerkers 51 und dergleichen äquivalente Operation aus.
  • 15 zeigt ein Flußdiagramm des Betriebsmittelaneignungsprogramms.
  • Wenn das Betriebsmittelaneignungsprogramm aufgerufen wird, sperrt die CPU 15 in einem Schritt S705 eine Unterbrechung. Dieser Prozeß ist äquivalent zu dem Schritt S310 in 10.
  • In einem Schritt S710 speichert das Programm die Unterbrechungspriorität des derzeit ausgeführten Aufgabenebenenprozesses in dem RAM 16.
  • In einem Schritt S715 stellt das Programm fest, ob das zu erhaltende Betriebsmittel einen Prioritätswert von 7 (äquivalent zu der Priorität der Leerlaufaufgabe) aufweist oder nicht. Wenn die Priorität 7 ist, führt das Programm den Prozeß in einem Schritt S775 aus. Wenn die Priorität nicht 7 ist, führt das Programm den Prozeß in einem Schritt S720 aus.
  • In dem Schritt S720 stellt das Programm fest, ob das zu erhaltende Betriebsmittel einen Prioritätswert von 6 (äquivalent zu der Priorität der Aufgabe mit niedriger Priorität) aufweist oder nicht. Wenn die Priorität 6 ist, führt das Programm den Prozeß in einem Schritt S765 aus. Wenn die Priorität nicht 6 ist, führt das Programm den Prozeß in einem Schritt S725 aus.
  • In dem Schritt S725 stellt das Programm fest, ob das zu erhaltende Betriebsmittel einen Prioritätswert von 5 (äquivalent zu der Priorität der Aufgabe mit mittlerer Priorität) aufweist oder nicht. Wenn die Priorität 5 ist, führt das Programm den Prozeß in einem Schritt S755 aus. Wenn die Priorität nicht 5 ist, führt das Programm den Prozeß in einem Schritt S730 aus.
  • In dem Schritt S730 stellt das Programm fest, ob das zu erhaltende Betriebsmittel einen Prioritätswert von 4 (äquivalent zu der Priorität der Aufgabe mit hoher Priorität) aufweist oder nicht. Wenn die Priorität 4 ist, führt das Programm den Prozeß in einem Schritt S745 aus. Wenn die Priorität nicht 4 ist, führt das Programm den Prozeß in einem Schritt S735 aus.
  • In dem Schritt S710 speichert das RAM 16 den Unterbrechungsprioritätswert für den derzeit ausgeführten Aufgabenebenenprozeß. In dem Schritt S735 stellt das Programm fest, ob der in dem RAM 16 gespeicherte Unterbrechungsprioritätswert größer als 3 (eine niedrigere Priorität als die Aufgabe mit höchster Priorität) ist oder nicht. Wenn der Unterbrechungsprioritätswert größer als 3 ist, führt das Programm den Prozeß in einem Schritt S740 aus. Wenn der Unterbrechungsprioritätswert kleiner als oder gleich 3 ist, führt das Programm den Prozeß in dem Schritt S775 aus.
  • In dem Schritt S740 weist das Programm der Unterbrechungspriorität für die Aufgabe mit höchster Priorität den Wert 7 zu. Genauer stellt das Programm eine Steuerung zum Neuschreiben des Werts der Unterbrechungspriorität 53 für das dritte Unterbrechungsregister 143 zu 7 bereit.
  • In dem Schritt S710 speichert das RAM 16 den Unterbrechungsprioritätswert für den derzeit ausgeführten Aufgabenebenenprozeß. In dem Schritt S745 stellt das Programm fest, ob der in dem RAM 16 gespeicherte Unterbrechungsprioritätswert größer als 4 (geringer priorisiert als die Aufgabe mit hoher Priorität) ist oder nicht. Wenn der Unterbrechungsprioritätswert größer als 4 ist, führt das Programm den Prozeß in einem Schritt S750 aus. Wenn der Unterbrechungsprioritätswert kleiner als oder gleich 4 ist, führt das Programm den Prozeß in dem Schritt S775 aus.
  • In dem Schritt S750 weist das Programm der Unterbrechungspriorität für die Aufgabe mit hoher Priorität den Wert 7 zu. Genauer stellt das Programm eine Steuerung zum Neuschreiben des Werts der Unterbrechungspriorität 53 für das dritte Unterbrechungsregister 144 zu 7 bereit.
  • In dem Schritt S710 speichert das RAM 16 den Unterbrechungsprioritätswert für den derzeit ausgeführten Aufgabenebenenprozeß. In dem Schritt S755 stellt das Programm fest, ob der in dem RAM 16 gespeicherte Unterbrechungsprioritätswert größer als 5 (geringer priorisiert als die Aufgabe mit mittlerer Priorität) ist oder nicht. Wenn der Unterbrechungsprioritätswert größer als 5 ist, führt das Programm den Prozeß in einem Schritt S760 aus. Wenn der Unterbrechungsprioritätswert kleiner als oder gleich 5 ist, führt das Programm den Prozeß in dem Schritt S775 aus.
  • In dem Schritt S760 weist das Programm der Unterbrechungspriorität für die Aufgabe mit mittlerer Priorität den Wert 7 zu. Genauer stellt das Programm eine Steuerung zum Neuschreiben des Werts der Unterbrechungspriorität 53 für das dritte Unterbrechungsregister 145 zu 7 bereit.
  • In dem Schritt S710 speichert das RAM 16 den Unterbrechungsprioritätswert für den derzeit ausgeführten Aufgabenebenenprozeß. In dem Schritt S765 stellt das Programm fest, ob der in dem RAM 16 gespeicherte Unterbrechungsprioritätswert größer als 6 (geringer priorisiert als die Aufgabe mit niedriger Priorität) ist oder nicht. Wenn der Unterbrechungsprioritätswert größer als 6 ist, führt das Programm den Prozeß in einem Schritt S770 aus. Wenn der Unterbrechungsprioritätswert kleiner als oder gleich 5 ist, führt das Programm den Prozeß in dem Schritt S775 aus.
  • In dem Schritt S770 weist das Programm der Unterbrechungspriorität für die Aufgabe mit niedriger Priorität den Wert 7 zu. Genauer stellt das Programm eine Steuerung zum Neuschreiben des Werts der Unterbrechungspriorität 53 für das dritte Unterbrechungsregister 146 zu 7 bereit.
  • In dem Schritt S775 gibt das Programm eine Unterbrechung frei. Dieser Prozeß ist äquivalent zu dem Schritt S350 in 10. Nach dem Schritt S775 beendet das Programm die Ausführung. Die CPU 15 beginnt wieder mit der Ausführung des Aufrufaufgabenebenenprozesses.
  • Es wird ein Unterbrechungssignal mit einer Priorität, die höher als die Unterbrechungspriorität des derzeit ausgeführten Aufgabenebenenprozesses (das heißt, des Aufgabenebenenprozesses, der das Betriebsmittelaneignungsprogramm aufgerufen hat) ist und niedriger als die oder gleich der Priorität des zu erhaltenden Betriebsmittels ist, angenommen. Die CPU 15 führt das vorstehend angeführte Betriebsmittelaneignungsprogramm aus, um den Wert der Unterbrechungspriorität 53 für das dem Unterbrechungssignal entsprechende Unterbrechungsregister zu 7 (eine Leerlaufaufgabe mit der niedrigsten Priorität) zu ändern.
  • Es wird ein Fall betrachtet, in dem die CPU 15 die Unterbrechungssteuereinrichtung 14 zum Ausgeben eines dem anderen das Betriebsmittel verwendenden Aufgabenebenenprozeß entsprechenden Unterbrechungssignals auffordert. Zu dieser Zeit wird der Wert 7 in der Unterbrechungspriorität 53 des dem Unterbrechungssignal entsprechenden Unterbrechungsregisters plaziert. Der Wert des IntLvl-Registers 149 entspricht der Priorität für den Aufgabenebenenprozeß, der das Betriebsmittelaneignungsprogramm aufgerufen hat.
  • Infolge des Vergleichs zwischen dem IntLvl-Register 149 und dem Wert der Unterbrechungspriorität 53 für das dem Unterbrechungssignal entsprechende Unterbrechungsregister gibt die Unterbrechungssteuereinrichtung 14 kein Unterbrechungssignal aus. Der Aufgabenebenenprozeß, der das Betriebsmittelaneignungsprogramm aufgerufen hat, wird dazu in die Lage versetzt, das Betriebsmittel zu verwenden, indem die Verwendung durch die anderen Aufgabenebenenprozesse ausgeschlossen wird.
  • 16 zeigt ein Flußdiagramm des Betriebsmittelzugriffsfreigabeprogramms gemäß dem Ausführungsbeispiel. Wenn das Betriebsmittelzugriffsfreigabeprogramm aufgerufen wird, sperrt die CPU 15 in einem Schritt S805 eine Unterbrechung. Dieser Prozeß ist äquivalent zu dem Schritt S310 in 10.
  • In einem Schritt S810 stellt das Programm fest, ob die bei der Betriebsmittelaneignung gespeicherte Priorität 3 (die Aufgabe mit höchster Priorität angebend) ist oder nicht. Das heißt, die Priorität ist äquivalent zu dem in dem Schritt S710 des letzten Betriebsmittelzugriffsfreigabeprogramms in dem RAM 16 gespeicherten Wert des IntLvl-Registers 149. Wenn die Priorität 3 ist, führt das Programm den Prozeß in einem Schritt S850 aus. Andernfalls führt das Programm den Prozeß in einem Schritt S815 aus.
  • In dem Schritt S815 stellt das Programm fest, ob die bei der Betriebsmittelaneignung gespeicherte Priorität 4 (die Aufgabe mit hoher Priorität angebend) ist oder nicht. Wenn die Priorität 4 ist, führt das Programm den Prozeß in einem Schritt S845 aus. Andernfalls führt das Programm den Prozeß in einem Schritt S820 aus.
  • In dem Schritt S820 stellt das Programm fest, ob die bei der Betriebsmittelaneignung gespeicherte Priorität 5 (die Aufgabe mit mittlerer Priorität angebend) ist oder nicht. Wenn die Priorität 5 ist, führt das Programm den Prozeß in einem Schritt S840 aus. Andernfalls führt das Programm den Prozeß in einem Schritt S825 aus.
  • In dem Schritt S825 stellt das Programm fest, ob die bei der Betriebsmittelaneignung gespeicherte Priorität 6 (die Aufgabe mit niedriger Priorität angebend) ist oder nicht. Wenn die Priorität 6 ist, führt das Programm den Prozeß in einem Schritt S835 aus. Andernfalls führt das Programm den Prozeß in einem Schritt S830 aus.
  • In dem Schritt S830 schreibt das Programm den Wert der Unterbrechungspriorität für die Aufgabe mit niedriger Priorität zu 6 neu. Das heißt, die Priorität ist äquivalent zu der Unterbrechungspriorität 53 für das sechste Unterbrechungsregister 146.
  • In dem Schritt S835 schreibt das Programm den Wert der Unterbrechungspriorität für die Aufgabe mit mittlerer Priorität zu 5 neu. Das heißt, die Priorität ist äquivalent zu der Unterbrechungspriorität 53 für das fünfte Unterbrechungsregister 145.
  • In dem Schritt S840 schreibt das Programm den Wert der Unterbrechungspriorität für die Aufgabe mit hoher Priorität zu 4 neu. Das heißt, die Priorität ist äquivalent zu der Unterbrechungspriorität 53 für das vierte Unterbrechungsregister 144.
  • In dem Schritt S845 schreibt das Programm den Wert der Unterbrechungspriorität für die Aufgabe mit höchster Priorität zu 3 neu. Das heißt, die Priorität ist äquivalent zu der Unterbrechungspriorität 53 für das dritte Unterbrechungsregister 143.
  • In dem Schritt S850 gibt der Prozeß eine Unterbrechung frei. Dieser Prozeß ist äquivalent zu dem Schritt S350 in 10. Das Programm beendet daraufhin die Ausführung. Die CPU 15 beginnt wieder mit der Ausführung des Aufrufaufgabenebenenprozesses.
  • Es wird ein Unterbrechungssignal mit einer Priorität, die höher als die Unterbrechungspriorität des das Betriebsmittelzugriffsfreigabeprogramm aufrufenden Aufgabenebenenprozesses ist und niedriger als die oder gleich der Priorität des zu erhaltenden Betriebsmittels ist, angenommen. Die CPU 15 führt das vorstehend angeführte Betriebsmittelaneignungsprogramm aus, um den Wert der Unterbrechungspriorität 53 für das dem Unterbrechungssignal entsprechende Unterbrechungsregister zu dem Wert zurückzuführen, der verwendet wurde, bevor das Betriebsmittelaneignungsprogramm aufgerufen wurde. Folglich enthalten die Unterbrechungsprioritäten 53 der dritten bis siebten Unterbrechungsregister 143 bis 147 Werte 3, 4, 5, 6 bzw. 7. Der Aufgabenebenenprozeß weist zum Beispiel eine höhere Unterbrechungspriorität auf und verwendet das Betriebsmittel. Es kann eine Anforderung zum Ausgeben eines einem derartigen Aufgabenebenenprozeß entsprechenden Unterbrechungssignals zwischen einem Aufruf des Betriebsmittelaneignungsprogramms und einem Aufruf des Betriebsmittelzugriffsfreigabeprogramms vorhanden sein. In diesem Fall wird der Aufgabenebenenprozeß unmittelbar nach der Ausführung des Betriebsmittelzugriffsfreigabeprogramms ausgeführt. Das heißt, die anderen Aufgabenebenenprozesse werden dazu in die Lage versetzt, das Betriebsmittel zu verwenden.
  • (Viertes Ausführungsbeispiel)
  • Das folgende beschreibt ein viertes Ausführungsbeispiel der vorliegenden Erfindung. Die folgende Beschreibung deckt nur einen Unterschied des vierten Ausführungsbeispiels gegenüber dem ersten Ausführungsbeispiel ab. Gemäß dem ersten Ausführungsbeispiel ist dem gleichen Unterbrechungssignal eine Vielzahl von Typen von Aufgabenebenenprozessen zugewiesen. Gemäß dem vierten Ausführungsbeispiel ist einem Unterbrechungssignal nur ein Aufgabenebenenprozeß zugewiesen. Darüber hinaus ist einer Priorität nur ein Aufgabenebenenprozeß zugewiesen. Daher ist die gesamte Anzahl von in der CPU 15 ausgeführten Aufgabenebenenprozessen gleich der Anzahl von Unterbrechungsregistern für die Aufgabenebenenprozesse.
  • Wenn jeder Aufgabenebenenprozeß in dieser Art und Weise mit der Priorität und dem Unterbrechungssignal versehen ist, wird die Aufgabenplanung unter Verwendung der Mehrfachunterbrechungsfunktion ausgeführt. 17 zeigt ein Datenspeicherformat für Unterbrechungsregister in der Unterbrechungssteuereinrichtung 14 gemäß dem vierten Ausführungsbeispiel.
  • Die Unterbrechungssteuereinrichtung 14 enthält ein Unterbrechungsregister für Aufgabenebenenprozesse. Das Unterbrechungsregister umfaßt Datenbereiche wie beispielsweise einen Unterbrechungszustandsmerker 51, einen Unterbrechungsmaskenzustandsmerker 52, eine Unterbrechungspriorität 53 und einen Zähler 54. Die gleichen Daten wie bei dem ersten Ausführungsbeispiel beschrieben sind in dem Unterbrechungszustandsmerker 51, dem Unterbrechungsmaskenzustandsmerker 52 und der Unterbrechungspriorität 53 enthalten.
  • Die Operationen der Unterbrechungssteuereinrichtung 14 gemäß dem vierten Ausführungsbeispiel sind die gleichen wie die der Unterbrechungssteuereinrichtung 14 gemäß dem ersten Ausführungsbeispiel. Die Unterbrechungssteuereinrichtung 14 schreibt jedoch die in dem Unterbrechungsregister gespeicherten Werte wie folgt neu, wenn sie eine Anforderung zum Ausgeben eines Unterbrechungssignals empfängt und ein Unterbrechungsanforderungslöschungssignal empfängt.
  • Es wird angenommen, daß die Unterbrechungssteuereinrichtung 14 ein eine Anforderung zum Ausgeben eines Unterbrechungssignals für den Aufgabenebenenprozeß darstellendes Signal von der CPU 15 empfängt. Basierend auf in dem Anforderungssignal enthaltenen Informationen stellt die Unterbrechungssteuereinrichtung 14 fest, welches der nullten bis siebten Unterbrechungsregister 140 bis 147 das Anforderungssignal bestimmt. Der Zähler 54 des bestimmten Unterbrechungsregisters speichert einen Wert. Die Unterbrechungssteuereinrichtung 14 erhöht diesen Wert um eine Stufe (zum Beispiel 1). Basierend auf der Anforderung zum Ausgeben des Unterbrechungssignals zu dieser Zeit werden der Unterbrechungszustandsmerker 51 und der Unterbrechungsmaskenzustandsmerker 52 auf Werte 1 (ein) bzw. 0 (aus) eingestellt.
  • Die Unterbrechungssteuereinrichtung 14 empfängt ein Unterbrechungsanforderungslöschungssignal von der CPU 15 oder der Schaltung für externe Eingabe/Ausgabe 11. Basierend auf in dem Anforderungssignal enthaltenen Informationen stellt die Unterbrechungssteuereinrichtung 14 fest, welches der nullten bis siebten Unterbrechungsregister 140 bis 147 das Anforderungssignal bestimmt. Der Zähler 54 des bestimmten Unterbrechungsregisters speichert einen Wert. Die Unterbrechungssteuereinrichtung 14 erniedrigt diesen Wert um eine Stufe (zum Beispiel 1). Der Zähler 54 kann einen Wert (zum Beispiel 0) enthalten, der den Zustand angibt, daß die Anforderung für das dem Unterbrechungsregister entsprechende Unterbrechungssignal nicht angenommen wird. In einem derartigen Fall schreibt die Unterbrechungssteuereinrichtung 14 den Wert des Unterbrechungszustandsmerkers 51 zu 0 neu.
  • Diese Operationen der Unterbrechungssteuereinrichtung 14 ermöglichen dem Zähler 54, als ein Zählwertspeicherträger zum Speichern von Zähldaten für jedes Unterbrechungssignal zu fungieren.
  • Gemäß dem Ausführungsbeispiel weist das RAM 16 keinen Bereich für die Bereit-Warteschlange 162 auf.
  • Mit Bezug darauf führt gemäß dem Ausführungsbeispiel während der Ausführung der Aufgabenunterbrechung wie in 10 gezeigt die CPU 15 den Prozeß in dem Schritt S340 nicht aus. Statt dessen beginnt die CPU 15 in dem Schritt S360 nur die Ausführung der dem empfangenen Unterbrechungssignal entsprechenden Aufgabe.
  • Ferner führt die CPU 15 während der Ausführung der Aktivierungsaufgabe wie in 11 gezeigt den Prozeß in dem Schritt S420 nicht aus.
  • Überdies führt die CPU 15 während der Ausführung der Beendungsaufgabe wie in 12 gezeigt den Prozeß in den Schritten 530, 570, 580 und 590 nicht aus. Statt dessen führt die CPU 15 den Prozeß in dem Schritt S520 und daraufhin in dem Schritt S540 aus.
  • Bei diesem Aufbau empfängt die Unterbrechungssteuereinrichtung 14 eine Anforderung zum Ausgeben des einem Aufgabenebenenprozeß entsprechenden Unterbrechungssignals. Die Unterbrechungssteuereinrichtung 14 erhöht einen Zähldatenwert für das Unterbrechungssignal um eine Stufe. Die Unterbrechungssteuereinrichtung 14 wird dazu konfiguriert, den Zähldatenwert für das Unterbrechungssignal zu einem bestimmten Zeitpunkt nach der Ausgabe eines gegebenen Unterbrechungssignals zu der Anweisungsausführungseinheit um eine Stufe zu erniedrigen. Genauer wird der bestimmte Zeitpunkt zum Ausführen des Prozesses in dem Schritt S540 in 12 verwendet.
  • In dieser Art und Weise spiegelt der Zähler 54 selbst dann die Anzahl von Ausführungsanforderungen wider, wenn eine Anforderung zum Beginnen einer Vielzahl von Vorkommen des gleichen Aufgabenebenenprozeßprogramms ausgegeben wird.
  • Daher kann die CPU 15 die Aufgabenplanung für eine Vielzahl von Vorkommen des gleichen Aufgabenebenenprozesses ohne Verwendung der Bereit-Warteschlange 162 realisieren. Gemäß dem Ausführungsbeispiel muß die CPU 15 Anforderungen nicht durch Software (genauer den vorstehend angeführten Prozeß in den Schritten 340, 360 und 570) zählen, um den gleichen Aufgabenebenenprozeß auszuführen. Verarbeitungslasten bei der CPU 15 werden vermindert. Es besteht kein Bedarf daran, festzustellen (genauer dem vorstehend angeführten Prozeß in 530), ob ein Unterbrechungssignal angefordert werden muß oder nicht. Verarbeitungslasten bei der CPU 15 werden weiter vermindert.
  • Es kann vorzuziehen sein, den bestimmten Zeitpunkt nach dem Ausgeben eines Unterbrechungssignals zu der Anweisungsausführungseinheit derart festzusetzen, daß der Zeitpunkt einem Zeitpunkt zum Ausgeben des Unterbrechungssignals entspricht.
  • (Andere Ausführungsbeispiele)
  • Bei den vorstehend angeführten Ausführungsbeispielen führen der Kontextsicherungsprozeß in dem Schritt S320 in 10 und der Kontextwiederherstellungsprozeß in dem Schritt S550 in 12 Lese- und Schreibprozesse zum Bewegen von Daten zwischen den Registern der CPU 15 und dem RAM 16 aus. Die vorliegende Erfindung muß jedoch nicht immer darauf beschränkt sein.
  • Ein bekannter Mikrocomputer weist zum Beispiel eine Vielzahl von CPU-Registersätzen zum Sichern oder Wiederherstellen von Kontexten, wenn ein Unterbrechungssignal auftritt, auf. Zum Sichern von Kontexten, wenn eine Unterbrechung auftritt, ändert der Mikrocomputer den zu verwendenden derzeitigen Registersatz zu einem anderen Registersatz. Zum Wiederherstellen von Kontexten nimmt der Mikrocomputer die Verwendung des ursprünglichen Registersatzes wieder auf.
  • Es kann vorzuziehen sein, einen derartigen Mikrocomputer mit einer Vielzahl von Registersätzen als den Mikrocomputer 12 gemäß den vorstehend angeführten Ausführungsbeispielen zu verwenden. In dem vorstehend beschriebenen Schritt S320 kann der derzeit verwendete Registersatz zu einem anderen nicht verwendeten Registersatz geändert werden. In dem Schritt S570 kann der derzeit verwendete Registersatz zu dem zuletzt verwendeten Registersatz geändert werden. In dieser Art und Weise ist es möglich, den Bedarf für den Prozeß daran zu beseitigen, Daten zwischen dem RAM 16 und den Registern zu bewegen, wenn Kontexte gesichert und wiederhergestellt werden.
  • Es wird für den Fachmann offensichtlich sein, daß verschiedene Änderungen bei den vorstehend beschriebenen Ausführungsbeispielen der vorliegenden Erfindung ausgebildet werden können. Der Schutzbereich der vorliegenden Erfindung soll jedoch durch die folgenden Patentansprüche festgelegt werden.
  • Eine Unterbrechungssteuereinrichtung (14) bestimmt das am höchsten priorisierte Unterbrechungssignal einer Vielzahl von zur Ausgabe angeforderten Unterbrechungssignalen und gibt es aus. Eine CPU (15) führt einen einem Unterbrechungssignal von der Unterbrechungssteuereinrichtung entsprechenden Prozeß aus und führt durch ein OS bereitgestellte Programme aus. Basierend auf einem Empfang einer Anforderung zum Ausführen eines Aufgabenebenenprozesses fordert die CPU die Unterbrechungssteuereinrichtung zum Ausgeben eines dem Aufgabenebenenprozeß entsprechenden Unterbrechungssignals auf.

Claims (11)

  1. Unterbrechungsanforderungsprogramm, das durch ein Veranlassen einer Anweisungsausführungseinheit (15) zum Fungieren als eine Unterbrechungsanforderungseinrichtung (S410 bis S440) basierend auf einem Empfang einer Anforderung zum Ausführen eines Aufgabenebenenprozesses gekennzeichnet ist, wobei die Anweisungsausführungseinheit einen einem Unterbrechungssignal von einer Mehrfachunterbrechungseinheit (14) zum Bestimmen und Ausgeben eines am höchsten priorisierten Unterbrechungssignals einer Vielzahl von zur Ausgabe angeforderten Unterbrechungssignalen entsprechenden Prozeß ausführt, und wobei die Unterbrechungsanforderungseinrichtung die Mehrfachunterbrechungseinheit zum Ausgeben eines dem Aufgabenebenenprozeß entsprechenden Unterbrechungssignals auffordert.
  2. Unterbrechungsanforderungsprogramm nach Anspruch 1, wobei die Unterbrechungsanforderungseinrichtung dem gleichen Unterbrechungssignal eine Vielzahl von Typen von Aufgabenebenenprozessen zuweist.
  3. Unterbrechungsanforderungsprogramm nach Anspruch 2 zum Veranlassen der Anweisungsausführungseinheit zum Fungieren als eine einer Unterbrechung zugeordnete Einrichtung (S310 bis S360) zum Ausführen eines einem Unterbrechungssignal von der Mehrfachunterbrechungseinheit entsprechenden Prozesses, wobei die Unterbrechungsanforderungseinrichtung einen Speicherträger zum Speichern von Ausführungswarteaufgabeninformationen über eine Entsprechung zwischen dem Aufgabenebenenprozeß und seiner Priorität basierend auf einem Empfang einer Anforderung zur Aufgabenebenenprozeßausführung veranlaßt und ein Ausgeben eines der Priorität des Aufgabenebenenprozesses entsprechenden Unterbrechungssignals anfordert, und wobei die einer Unterbrechung zugeordnete Einrichtung einen frühesten gespeicherten Aufgabenebenenprozeß von einer Priorität eines Unterbrechungssignals von der Mehrfachunterbrechungseinheit entsprechenden Aufgabenebenenprozessen basierend auf den in dem Speicherträger gespeicherten Ausführungswarteaufgabeninformationen ausführt.
  4. Unterbrechungsanforderungsprogramm nach einem der Ansprüche 1 bis 3 zum Veranlassen der Anweisungsausführungseinheit zum Fungieren als eine Beendungsprozeßeinrichtung (S510 bis S590) zum Versehen der Mehrfachunterbrechungseinheit mit einer Prozeßabschlußmeldung, wenn die Anweisungsausführungseinheit eine Ausführung eines Aufgabenebenenprozesses beendet, wobei die Mehrfachunterbrechungseinheit das am höchsten priorisierte Unterbrechungssignal einer Vielzahl von zur Ausgabe angeforderten Unterbrechungssignalen basierend auf einem Empfang der Prozeßabschlußmeldung von der Anweisungsausführungseinheit bestimmt und ausgibt.
  5. Unterbrechungsanforderungsprogramm nach Anspruch 2 oder 3 zum Veranlassen der Anweisungsausführungseinheit zum Fungieren als eine Beendungsprozeßeinrichtung (S510 bis S590) bei einem Abschluß der Aufgabenebenenprozeßausführung durch die Anweisungsausführungseinheit, wobei dann, wenn der Speicherträger einen Aufgabenebenenprozeß mit der gleichen Priorität wie der abgeschlossene Aufgabenebenenprozeß als die Ausführungswarteaufgabeninformationen speichert, die Beendungsprozeßeinrichtung aufeinanderfolgend einen der gespeicherten Aufgabenebenenprozesse ausführt; andernfalls stellt die Beendungsprozeßeinrichtung eine Prozeßabschlußmeldung für die Mehrfachunterbrechungseinheit bereit, wobei die Mehrfachunterbrechungseinheit das am höchsten priorisierte Unterbrechungssignal einer Vielzahl von zur Ausgabe angeforderten Unterbrechungssignalen basierend auf einem Empfang der Prozeßabschlußmeldung von der Anweisungsausführungseinheit bestimmt und ausgibt.
  6. Unterbrechungsanforderungsprogramm nach einem der Ansprüche 1 bis 5, wobei die Mehrfachunterbrechungseinheit einen Speicherträger für die derzeitige Priorität (149) zum Speichern einer Priorität eines zuletzt ausgegebenen Unterbrechungssignals aufweist, das am höchsten priorisierte Unterbrechungssignal einer Vielzahl von zur Ausgabe angeforderten Unterbrechungssignalen bestimmt und das bestimmte Unterbrechungssignal ausgibt, wenn seine Priorität höher als die in dem Speicherträger für die derzeitige Priorität gespeicherte Priorität ist, und wobei die Anweisungsausführungseinheit zum Fungieren als eine Neuschreibeinrichtung für die derzeitige Priorität (S610 bis S670) zum Neuschreiben der in dem Speicherträger für die derzeitige Priorität der Mehrfachunterbrechungseinheit gespeicherten Priorität zu einer höheren Priorität zum künstlichen Erhöhen einer Priorität eines derzeit ausgeführten Aufgabenebenenprozesses veranlaßt wird.
  7. Unterbrechungsanforderungsprogramm nach einem der Ansprüche 1 bis 5, wobei die Mehrfachunterbrechungseinheit einen Speicherträger für die derzeitige Priorität (149) zum Speichern einer Priorität eines zuletzt ausgegebenen Unterbrechungssignals aufweist, einen Unterbrechungsprioritätsspeicherträger (53) zum Speichern von Informationen über eine Entsprechung zwischen einem Unterbrechungssignal und seiner Priorität aufweist, das am höchsten priorisierte Unterbrechungssignal einer Vielzahl von zur Ausgabe angeforderten Unterbrechungssignalen bestimmt, und das bestimmte Unterbrechungssignal ausgibt, wenn seine Priorität höher als die in dem Speicherträger für die derzeitige Priorität gespeicherte Priorität ist, wobei die Anweisungsausführungseinheit zum Fungieren als eine Unterbrechungsprioritätsneuschreibeinrichtung (S705 bis S775, S805 bis S850) zum künstlichen Erhöhen einer Priorität eines derzeit ausgeführten Aufgabenebenenprozesses auf eine bestimmte Priorität veranlaßt wird, und wobei die Unterbrechungsprioritätsneuschreibeinrichtung gegebene Informationen mit einer Priorität höher als oder gleich wie die bestimmte Priorität zu einer Priorität niedriger als oder gleich wie die Priorität des derzeit ausgeführten Aufgabenebenenprozesses neu schreibt, wobei die gegebenen Informationen in dem Unterbrechungsprioritätsspeicherträger der Mehrfachunterbrechungseinheit gespeichert sind.
  8. Unterbrechungsanforderungsprogramm nach Anspruch 1, wobei die Unterbrechungsanforderungseinrichtung einem Unterbrechungssignal einen Typ von Aufgabenebenenprozeß zuweist, und wobei die Mehrfachunterbrechungseinheit einen Zählspeicherträger (54) zum Speichern von Zähldaten für jedes Unterbrechungssignal aufweist, eine Anforderung zum Ausgeben eines einem gegebenen Typ von Aufgabenebenenprozeß entsprechenden Unterbrechungssignals empfängt, einen Zähldatenwert für das Unterbrechungssignal um eine Stufe erhöht, ein gegebenes Unterbrechungssignal zu einer Anweisungsausführungseinheit ausgibt, und einen Zähldatenwert für das Unterbrechungssignal zu einem bestimmten Zeitpunkt nach der Ausgabe um eine Stufe erniedrigt.
  9. Mikrocomputer (12), gekennzeichnet durch: eine einer Unterbrechung zugeordnete Einheit (15, S310 bis S360) zum Ausführen eines einem Unterbrechungssignal von einer Mehrfachunterbrechungseinheit (14), die ein am höchsten priorisiertes Unterbrechungssignal einer Vielzahl von zur Ausgabe angeforderten Unterbrechungssignalen bestimmt und ausgibt, entsprechenden Prozesses; und eine Unterbrechungsanforderungseinheit (15, S410 bis S440) zum Auffordern der Mehrfachunterbrechungseinheit zum Ausgeben eines einem Aufgabenebenenprozeß entsprechenden Unterbrechungssignals basierend auf einem Empfang einer Anforderung zum Ausführen des Aufgabenebenenprozesses.
  10. Computerprogrammerzeugnis in einem durch einen Computer lesbaren Träger zur Verwendung bei einer Unterbrechungsanforderung zum Veranlassen einer Anweisungsausführungseinheit (15) zum Fungieren als eine Unterbrechungsanforderungseinrichtung, wobei das Computerprogrammerzeugnis umfaßt: Anweisungen (S410 bis S440) zum Veranlassen der Anweisungsausführungseinheit zum auf einem Empfang einer Anforderung zum Ausführen eines Aufgabenebenenprozesses basierenden Auffordern einer Mehrfachunterbrechungseinheit (14) zum Ausgeben eines dem Aufgabenebenenprozeß entsprechenden Unterbrechungssignals, wobei die Mehrfachunterbrechungseinheit ein am höchsten priorisiertes Unterbrechungssignal einer Vielzahl von zur Ausgabe angeforderten Unterbrechungssignalen bestimmt und ausgibt, und Anweisungen (S310 bis S360) zum Veranlassen der Anweisungsausführungseinheit zum Ausführen eines dem Unterbrechungssignal von der Mehrfachunterbrechungseinheit entsprechenden Prozesses.
  11. Verfahren zur Ausführung einer Unterbrechungsanforderung, das eine Anweisungsausführungseinheit zum Fungieren als eine Unterbrechungsanforderungseinrichtung veranlaßt, wobei das Verfahren gekennzeichnet ist durch die Schritte: Veranlassen (S410 bis S440) der Anweisungsausführungseinheit zum auf einem Empfang einer Anforderung zum Ausführen eines Aufgabenebenenprozesses basierenden Auffordern einer Mehrfachunterbrechungseinheit zum Ausgeben eines dem Aufgabenebenenprozeß entsprechenden Unterbrechungssignals, wobei die Mehrfachunterbrechungseinheit ein am höchsten priorisiertes Unterbrechungssignal einer Vielzahl von zur Ausgabe angeforderten Unterbrechungssignalen bestimmt und ausgibt; und Veranlassen (S310 bis S360) der Anweisungsausführungseinheit zum Ausführen eines dem Unterbrechungssignal von der Mehrfachunterbrechungseinheit entsprechenden Prozesses.
DE102005013913A 2004-03-26 2005-03-24 Unterbrechungsanforderungsprogramm und Mikrocomputer Withdrawn DE102005013913A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPP2004/92067 2004-03-26
JP2004092067A JP4241462B2 (ja) 2004-03-26 2004-03-26 制御ユニットおよびマイクロコンピュータ

Publications (1)

Publication Number Publication Date
DE102005013913A1 true DE102005013913A1 (de) 2005-11-10

Family

ID=34991490

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005013913A Withdrawn DE102005013913A1 (de) 2004-03-26 2005-03-24 Unterbrechungsanforderungsprogramm und Mikrocomputer

Country Status (3)

Country Link
US (1) US7269678B2 (de)
JP (1) JP4241462B2 (de)
DE (1) DE102005013913A1 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7260663B2 (en) * 2005-04-07 2007-08-21 International Business Machines Corporation System and method for presenting interrupts
US7925815B1 (en) * 2006-06-29 2011-04-12 David Dunn Modifications to increase computer system security
US20080189487A1 (en) * 2007-02-06 2008-08-07 Arm Limited Control of cache transactions
US8125243B1 (en) * 2007-03-12 2012-02-28 Cypress Semiconductor Corporation Integrity checking of configurable data of programmable device
JP4685053B2 (ja) * 2007-03-28 2011-05-18 株式会社野村総合研究所 ジョブの実行順序制御装置、方法及びプログラム
JP2009147102A (ja) * 2007-12-14 2009-07-02 Tecdia Kk 光通信用デバイスの制御方式及び光通信用デバイスの制御方法
JP4624448B2 (ja) * 2008-07-30 2011-02-02 株式会社オートネットワーク技術研究所 制御装置、制御システム及びコンピュータプログラム
US9454737B2 (en) * 2008-08-29 2016-09-27 International Business Machines Corporation Solution that leverages an instant messaging system to manage ad hoc business process workflows
DE102008062692B4 (de) * 2008-12-17 2013-11-14 Texas Instruments Deutschland Gmbh Eingebettetes Mikrocontrollersystem und Verfahren zur Konfiguration eines eingebetteten Mikrocontrollersystems mit gesteuertem Schaltmodus
US8484648B2 (en) 2009-10-19 2013-07-09 International Business Machines Corporation Hardware multi-threading co-scheduling for parallel processing systems
US8560750B2 (en) 2011-05-25 2013-10-15 Lsi Corporation Systems and methods for advanced interrupt scheduling and priority processing in a storage system environment
JP5590069B2 (ja) * 2012-04-27 2014-09-17 株式会社デンソー マイクロコンピュータ
US10248463B2 (en) * 2015-02-13 2019-04-02 Honeywell International Inc. Apparatus and method for managing a plurality of threads in an operating system
JP6771272B2 (ja) * 2015-07-01 2020-10-21 日立オートモティブシステムズ株式会社 車載電子制御装置及びスタック使用方法
US10069949B2 (en) 2016-10-14 2018-09-04 Honeywell International Inc. System and method for enabling detection of messages having previously transited network devices in support of loop detection
US10810086B2 (en) 2017-10-19 2020-10-20 Honeywell International Inc. System and method for emulation of enhanced application module redundancy (EAM-R)
US10783026B2 (en) 2018-02-15 2020-09-22 Honeywell International Inc. Apparatus and method for detecting network problems on redundant token bus control network using traffic sensor
CN118245199A (zh) * 2024-05-30 2024-06-25 四川华鲲振宇智能科技有限责任公司 一种基于信号技术的rtos软件中断实现方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4001783A (en) * 1975-03-26 1977-01-04 Honeywell Information Systems, Inc. Priority interrupt mechanism
US5613128A (en) * 1990-12-21 1997-03-18 Intel Corporation Programmable multi-processor interrupt controller system with a processor integrated local interrupt controller
JPH0588916A (ja) 1991-09-30 1993-04-09 Ricoh Co Ltd 割込制御装置
JPH06202887A (ja) 1992-12-28 1994-07-22 Matsushita Electric Ind Co Ltd マイクロコンピュータ
JPH06309179A (ja) 1993-04-20 1994-11-04 Oki Electric Ind Co Ltd 割り込み制御装置
US6418496B2 (en) * 1997-12-10 2002-07-09 Intel Corporation System and apparatus including lowest priority logic to select a processor to receive an interrupt message
US6298410B1 (en) * 1997-12-31 2001-10-02 Intel Corporation Apparatus and method for initiating hardware priority management by software controlled register access
JP3600095B2 (ja) * 1999-12-07 2004-12-08 松下電器産業株式会社 割り込み管理装置及び割り込み管理方法
US6983339B1 (en) * 2000-09-29 2006-01-03 Intel Corporation Method and apparatus for processing interrupts of a bus
JP2004234643A (ja) 2003-01-07 2004-08-19 Matsushita Electric Ind Co Ltd プロセススケジューリング装置、プロセススケジューリング方法、プロセススケジューリングのためのプログラム、及びプロセススケジューリングのためのプログラムを記録した記録媒体

Also Published As

Publication number Publication date
US7269678B2 (en) 2007-09-11
JP2005276097A (ja) 2005-10-06
JP4241462B2 (ja) 2009-03-18
US20050216635A1 (en) 2005-09-29

Similar Documents

Publication Publication Date Title
DE102005013913A1 (de) Unterbrechungsanforderungsprogramm und Mikrocomputer
DE4410775C2 (de) Steuergerät und Arbeitsverfahren eines Betriebssystems für dieses Steuergerät
DE3751164T2 (de) Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten.
DE112013006452B4 (de) Audioausgabesteuerungsvorrichtung
DE60004886T2 (de) System und verfahren zum bereitstellen einer sammlung von wiederverwendbaren fäden zum behandeln von gepufferten aufgaben
DE68919975T2 (de) Verfahren für die simultane Ablaufverwaltung eines verteilten Anwenderprogramms in einem Hostrechner und in einer grossen Anzahl von intelligenten Benutzerstationen in einem SNA-Netzwerk.
DE69130630T2 (de) Synchrones Verfahren und Gerät für Prozessoren
DE69622832T2 (de) Vorrichtung und verfahren für kooperative unterbrechungen in einer preemptiven prozessablauffolgeplanungsumgebung
DE3879947T2 (de) Verteilte dateiserver-architektur.
DE3689394T2 (de) Informationsverarbeitungsanlage mit einem Allzweckprozessor und einem Sonderzweckprozessor.
DE68924810T2 (de) Zeitgeberkanal für die Verwendung in einem Mehrkanal-Zeitsystem.
DE69114321T2 (de) Zum Durchführen der Unterbrechungsverschachtelungsfunktion geeignetes Unterbrechungssteuerungsgerät.
DE68920929T2 (de) Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen.
DE69222468T2 (de) Vorrichtung zur Steigerung der Leistung eines einer Multiprozessorstruktur mit einer möglicherweise hohen Anzahl von Prozessoren zugeordneten Echtzeitsteuerprogrammkerns
DE3650165T2 (de) Buszustandssteuerungsschaltung.
DE68919018T2 (de) Zeitgeberkanal mit Übereinstimmungserkennungsmerkmalen.
DE68922545T2 (de) Zugeordneter Dienstprozessor mit Übertragungsmöglichkeiten zwischen Kanälen.
EP0701204A2 (de) Verfahren zur Überlastvermeidung bei einem Systemanlauf eines Mehrrechnersystems und Mehrrechnersystem dafür
DE60027357T2 (de) Eine Unterbrechungssteuerung und ein Mikrorechner, der diese Unterbrechungssteuerung beinhaltet
DE2721623A1 (de) System zur bearbeitung eines zielsystemprogrammes
DE3432524A1 (de) Mehrfach genutzter datenschreiberregler und verfahren
DE19957594B4 (de) Verfahren zum Synchronisieren von threads eines Computerprogramms
EP0799441B1 (de) Verfahren zur steuerung von technischen vorgängen
DE69418082T2 (de) System und Verfahren zur Vermeidung von Verklemmung in einem Rechner
DE202004021684U1 (de) Einrichtungen und Vorrichtungen zur Verwendung bei einem Scheduling

Legal Events

Date Code Title Description
R012 Request for examination validly filed

Effective date: 20110407

R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee