-
Die vorliegende Erfindung betrifft einen Mikrocomputer, der mehrere Programme ausführt.
-
Ein typischer Mikrocomputer ist mit einer peripheren Schaltung und einer Interrupt-Steuerung (Unterbrechungssteuerung) zusätzlich zu einer CPU und einem Speicher ausgerüstet (siehe beispielsweise
JP 3209144 B ). Die Interrupt-Steuerung verwaltet Interrupt-Anforderungen (Interrupt-Aufrufe) von peripheren Schaltungen mittels Massenverwaltung. Wenn mehrere Interrupt-Anforderungen gleichzeitig erzeugt werden, gibt die Interrupt-Steuerung ein Interrupt-Anforderungssignal, das der Interrupt-Anforderung mit der höchsten Priorität entspriqht, an die CPU auf der Grundlage von voreingestellten Prioritäten der Interrupt-Anforderungen, die auf einer Interrupt-Anforderungum-Interrupt-Anforderung-Basis voreingestellt werden, aus. Wenn die CPU das Interrupt-Anforderungssignal in einem Interrupt-Freigabezustand (enabled) empfängt, gibt die CPU den Interrupt frei. Wenn die CPU das Interrupt-Anforderungssignal in einem Interrupt-Sperrzustand (disabled) empfängt, sperrt bzw. verhindert die CPU den Interrupt.
-
Wenn die CPU eine Freigabe-Interrupt-Anweisung (auch als EI-Anweisung bezeichnet) ausführt, gelangt die CPU in den Interrupt-Freigabezustand, in dem Interrupts mit der Ausnahme einiger Interrupts wie beispielsweise eines nicht maskierbaren Interrupts (auch als NMI bezeichnet) und Ähnlichem freigegeben sind. Wenn die CPU eine Sperr-Interrupt-Anweisung (auch als DI-Anweisung bezeichnet) ausführt, gelangt die CPU in den Interrupt-Sperrzustand, in dem Interrupts mit der Ausnahme einiger Interrupts wie beispielsweise eines NMI und Ähnlichem gesperrt sind.
-
In einem typischen Mikrocomputer werden jedoch die Interrupts mit der Ausnahme einiger Interrupts wie beispielsweise des NMI und Ähnlichem als Antwort auf die Ausführung der EI-Anweisung und der DI-Anweisung gemeinsam freigegeben und gesperrt. Somit wird es unmöglich, die Interrupts derart einzustellen, dass die Interrupts wahlweise auf einer Programmbasis freigegeben und gesperrt werden.
-
-
Im Hinblick auf das obige Problem ist es eine Aufgabe der vorliegenden Erfindung, eine Technik zu schaffen, die Interrupts derart einstellen kann, dass die Interrupts wahlweise auf einer Programmbasis freigegeben und gesperrt werden.
-
Die Lösung der Aufgabe erfolgt durch die Merkmale des Anspruchs 1.
-
Gemäß einer beispielhaften Ausführungsform enthält ein Mikrocomputer zum Ausführen mehrerer Programme einen ersten Speicher, einen Interrupt-Freigabeabschnitt, einen Interrupt-Sperrabschnitt und einen Interrupt-Prozessausführungsabschnitt. Der erste Speicher speichert eine Interrupt-Einstelltabelle, die Interrupt-Einstellinformationen für mehrere Ursachen eines Interrupts speichert. Jede Interrupt-Einstellinformation gibt auf einer Programm-um-Programm-Basis an, ob eine Interrupt-Einstellung, die eine Einstellung zum Freigeben oder Sperren eines Interrupts in Bezug auf eine jeweilige Ursache eines Interrupts ist, konfigurierbar ist. Als Antwort auf die Eingabe einer Freigabe-Interrupt-Anweisung, die die Einstellung zum Freigeben des Interrupts anweist, nimmt der Interrupt-Freigabeabschnitt Bezug auf die Interrupt-Einstelltabelle, die in dem ersten Speicher gespeichert ist, spezifiziert die Ursache eines Interrupts, in Bezug auf die die Interrupt-Einstellung konfigurierbar ist, auf der Grundlage der Interrupt-Einstellinformation, die dem Programm entspricht, das derzeitig ausgeführt wird, und gibt den Interrupt für die spezifizierte Ursache eines Interrupts frei. Als Antwort auf die Eingabe einer Sperr-Interrupt-Anweisung, die die Einstellung zum Sperren des Interrupts anweist, nimmt der Interrupt-Sperrabschnitt Bezug auf die Interrupt-Einstelltabelle, die in dem ersten Speicher gespeichert ist, spezifiziert die Ursache eines Interrupts, in Bezug auf die die Interrupt-Einstellung konfigurierbar ist, auf der Grundlage der Interrupt-Einstellinformation, die dem Programm entspricht, das derzeitig ausgeführt wird, und sperrt den Interrupt für die spezifizierte Ursache eines Interrupts. Als Antwort auf die Erzeugung der Ursache eines Interrupts während einer Programmausführung unterbricht der Interrupt-Prozessausführungsabschnitt die Programmausführung und führt einen Interrupt-Prozess, der der erzeugten Ursache eines Interrupts entspricht, aus, wenn der Interrupt für die erzeugte Ursache eines Interrupts von dem Interrupt-Freigabeabschnitt freigegeben wird, und verhindert bzw. sperrt den Interrupt-Prozess, der der erzeugten Ursache eines Interrupts entspricht, wenn der Interrupt für die erzeugte Ursache eines Interrupts von dem Interrupt-Sperrabschnitt gesperrt wird.
-
Gemäß Obigem kann der Mikrocomputer durch Bezugnahme auf die Interrupt-Einstelltabelle die Ursache eines Interrupts, in Bezug auf die die Interrupt-Einstellung (die Einstellung zum Freigeben und Sperren des Interrupts) konfigurierbar ist, in Bezug auf das Programm, das derzeitig ausgeführt wird, spezifizieren. Dann kann der Interrupt für die spezifizierte Ursache eines Interrupts, in Bezug auf die die Interrupt-Einstellung konfigurierbar ist, bei Eingabe der EI-Anweisung freigegeben werden und bei Eingabe der DI-Anweisung gesperrt werden. Daher ist es möglich, Interrupts derart einzustellen, dass die Interrupts wahlweise auf einer Programm-um-Programm-Basis freigegeben und gesperrt werden.
-
Der obige Mikrocomputer kann außerdem einen zweiten Speicher und einen Informationsbewegungsabschnitt enthalten und wie folgt aufgebaut sein. Der zweite Speicher enthält einen Interrupt-Freigabezustandsspeicherbereich, der Interrupt-Freigabezustandsinformationen für mehrere Ursachen von Interrupts speichert. Für das Programm, das derzeitig ausgeführt wird, gibt jede Interrupt-Freigabezustandsinformation an, ob der Interrupt für eine jeweilige Ursache eines Interrupts freigegeben oder gesperrt wird. Der Interrupt-Freigabeabschnitt gibt den Interrupt für die spezifizierte Ursache eines Interrupts durch Konfigurieren der Interrupt-Freigabezustandsinformation, die der spezifizierten Ursache eines Interrupts entspricht, von den Interrupt-Freigabezustandsinformationen, die in dem Interrupt-Freigabezustandsspeicherbereich gespeichert sind, frei, so dass der Interrupt für die spezifizierte Ursache eines Interrupts freigegeben wird. Der Interrupt-Sperrabschnitt sperrt den Interrupt für die spezifizierte Ursache eines Interrupts durch Konfigurieren der Interrupt-Freigabezustandsinformation, die der spezifizierten Ursache eines Interrupts entspricht, von den Interrupt-Freigabezustandsinformationen, die in dem Interrupt-Freigabezustandsspeicherbereich gespeichert sind, so dass der Interrupt für die spezifizierte Ursache eines Interrupts gesperrt wird. Der Interrupt-Prozessausführungsabschnitt bestimmt durch Bezugnahme auf die Interrupt-Freigabezustandsinformationen, die in dem Interrupt-Freigabezustandsspeicherbereich gespeichert sind, ob der Interrupt-Prozess, der der erzeugten Ursache eines Interrupts entspricht, ausgeführt oder verhindert wird. Als Antwort auf eine Änderung des ausgeführten Programms in ein bestimmtes Programm sichert der Informationsbewegungsabschnitt die Interrupt-Freigabezustandsinformation durch Aufzeichnen der Interrupt-Freigabezustandsinformation, die vor der Änderung des ausgeführten Programms in das bestimmte Programm vorhanden ist, stellt die Interrupt-Freigabezustandsinformation durch Aufzeichnen der Interrupt-Freigabezustandsinformation von den gespeicherten Interrupt-Freigabezustandsinformationen, die dem bestimmten Programm entspricht, das das Programm nach der Änderung ist, wieder her.
-
Gemäß der obigen Konfiguration wird die Interrupt-Freigabezustandsinformation als Antwort auf die Änderung des ausgeführten Programms gesichert, und anschließend wird als Antwort auf die Änderung des ausgeführten Programms in ein bestimmtes Programm eine spezielle Interrupt-Freigabezustandsinformation aus den gesicherten Interrupt-Freigabezustandsinformationen wiederhergestellt, wobei die spezielle Interrupt-Freigabezustandsinformation die Interrupt-Freigabezustandsinformation ist, die dem bestimmten Programm (dem Programm nach der Änderung) entspricht. Wenn das ausgeführte Programm geändert wird und dann das ausgeführte Programm ein oder mehrere Male geändert wird und als Ergebnis dessen das ausgeführte Programm zu dem anfänglichen Programm zurückkehrt, kann der Anfangszustand der Interrupt-Freigabezustandsinformation sogar dann wiederhergestellt werden, wenn es eine Änderung der Interrupt-Freigabezustandsinformation während der Ausführung eines anderen Programms gibt.
-
Der obige Mikrocomputer kann wie folgt aufgebaut sein. Der Informationsbewegungsabschnitt sichert die Interrupt-Freigabezustandsinformation durch Spezifizieren der Ursache eines Interrupts, in Bezug auf die die Interrupt-Einstellung konfigurierbar ist, auf der Grundlage der Interrupt-Freigabezustandsinformation, die vor der Änderung des ausgeführten Programms vorhanden ist, und Aufzeichnen der Interrupt-Freigabezustandsinformation, die der spezifizierten Ursache eines Interrupts entspricht, in Bezug auf die die Interrupt-Einstellung konfigurierbar ist, von den Interrupt-Freigabezustandsinformationen, die in dem Interrupt-Freigabezustandsspeicherbereich gespeichert sind.
-
Gemäß der obigen Konfiguration des Mikrocomputers sichert der Informationsbewegungsabschnitt als Antwort auf eine Änderung des ausgeführten Programms diejenige Interrupt-Freigabezustandsinformation für die Ursache eines Interrupts, in Bezug auf die die Interrupt-Einstellung konfigurierbar ist, von den Interrupt-Freigabezustandsinformationen, die dem Programm entsprechen, das vor der Änderung ausgeführt wurde. Danach stellt der Informationsbewegungsabschnitt als Antwort auf eine Änderung des ausgeführten Programms diejenige Interrupt-Freigabezustandsinformation, die dem Programm entspricht, das vor der Änderung ausgeführt wurde, aus den gesicherten Interrupt-Freigabezustandsinformationen wieder her. Daher kann hinsichtlich der Interrupt-Freigabezustandsinformation, die der Interrupt-Ursache entspricht, in Bezug auf die die Interrupt-Einstellung nicht konfigurierbar ist, die Interrupt-Freigabezustandsinformation, die durch ein anderes Programm geändert wurde, sogar dann gehalten bzw. gespeichert werden, wenn das ausgeführte Programm geändert wird und dann das ausgeführte Programm ein oder mehrere Male weiter geändert wird und als Ergebnis dessen das ausgeführte Programm zu dem anfänglichen Programm zurückkehrt. Dieses basiert auf der Idee, dass es hinsichtlich der Interrupt-Ursache, in Bezug auf die die Interrupt-Einstellung nicht konfigurierbar ist, nicht notwendig ist, die Interrupt-Freigabezustandsinformation zu halten bzw. speichern, wenn das ausgeführte Programm wieder zu dem anfänglichen Programm zurückkehrt. Da es nicht notwendig ist, sämtliche Interrupt-Freigabezustandsinformationen, die in dem Interrupt-Freigabezustandsspeicherbereich des zweiten Speichers gespeichert sind, zu sichern und wiederherzustellen, können der benötigte Speicherbereich und die Verarbeitungslast zum Sichern der Interrupt-Freigabezustandsinformationen verringert werden.
-
Die Aufgabe, Merkmale und Vorteile der vorliegenden Erfindung werden anhand der folgenden detaillierten Beschreibung mit Bezug auf die zugehörigen Zeichnungen deutlich. Es zeigen:
- 1 ein Blockdiagramm, das einen Mikrocomputer gemäß einer ersten Ausführungsform darstellt;
- 2 ein Flussdiagramm, das einen Interrupt-Einstellprozess darstellt;
- 3 ein Flussdiagramm, das einen Interrupt-Anforderungsbestimmungsprozess darstellt;
- 4 ein Zeitdiagramm, das eine Änderung einer Interrupt-Freigabezustandsinformation gemäß der ersten Ausführungsform darstellt;
- 5 ein Blockdiagramm, das einen Mikrocomputer gemäß einer zweiten Ausführungsform darstellt;
- 6 ein Zeitdiagramm, das eine Änderung einer Interrupt-Freigabezustandsinformation gemäß der zweiten Ausführungsform darstellt;
- 7 ein Zeitdiagramm, das eine Änderung einer Interrupt-Freigabezustandsinformation gemäß einer dritten Ausführungsform darstellt;
- 8 eine Interrupt-Einstelltabelle gemäß einer vierten und fünften Ausführungsform;
- 9 ein Zeitdiagramm, das eine Änderung einer Interrupt-Freigabezustandsinformation gemäß der vierten Ausführungsform darstellt; und
- 10 ein Zeitdiagramm, das eine Änderung einer Interrupt-Freigabezustandsinformation gemäß der fünften Ausführungsform darstellt.
-
(Erste Ausführungsform)
-
Im Folgenden wird eine erste Ausführungsform mit Bezug auf die Zeichnungen beschrieben.
-
Ein Mikrocomputer 1 ist in einem Fahrzeug montiert. Wie es in 1 gezeigt ist, enthält der Mikrocomputer 1 eine CPU 2, einen ROM 3, einem RAM 4, Peripherievorrichtungen 5, 6, 7, 8, 9, eine Interrupt-Steuerung 10 und einen Bus 11, der diese Komponenten miteinander verbindet. In dem Mikrocomputer 1 führt die CPU 2 Programme, die in dem ROM 3 gespeichert sind, aus, wodurch verschiedene Verarbeitungen durchgeführt werden.
-
Die Peripherievorrichtungen 5, 6, 7, 8, 9 sind periphere Schaltungen in Bezug auf die CPU 2. Die Peripherievorrichtungen 5, 6, 7, 8, 9 können ein AD-Wandler, eine I/O oder Ähnliches sein. Die Peripherievorrichtungen 5, 6, 7,8, 9 sind mit Sensoren (nicht gezeigt) zum Erfassen verschiedener Fahrzeugzustände und/oder einem Betriebsschalter bzw. Betätigungsschalter (nicht gezeigt) zum Eingeben eines Befehls von einem Fahrzeuginsassen verbunden. Eine Erfassungsinformation von dem Sensor und/oder eine Betriebsinformation von dem Betriebsschalter werden/wird von den Peripherievorrichtungen 5, 6, 7, 8, 9 ausgegeben.
-
Die Interrupt-Steuerung 10 weist eine Funktion zum Empfangen von Signalen auf, die die Erzeugung verschiedener Ursachen von Interrupts angeben. Man beachte, dass Prioritäten für jeweilige Ursachen von Interrupts voreingestellt sind. Auf der Grundlage der Prioritäten jeweiliger Ursachen von Interrupts, die durch die eingegebenen Signale angegeben werden, gibt die Interrupt-Steuerung 10 ein Interrupt-Anforderungssignal, das der Ursache eines Interrupts mit der höchsten Priorität entspricht, an die CPU 2 aus. Wenn die Peripherievorrichtung 5, 6, 7, 8, 9 die Erfassungsinformation und/oder die Betriebsinformation ausgibt, bestimmt die Interrupt-Steuerung 10, dass eine Ursache eines Interrupts #1, #2, #3, #4, #5 erzeugt wurde. Die Ursachen von Interrupts #1, #2, #3, #4, #5 entsprechen jeweils den Peripherievorrichtungen 5, 6, 7, 8, 9. Im Folgenden werden aus Vereinfachungsgründen die Ursachen von Interrupts #1, #2, #3, #4, #5 jeweils als Interrupt-Ursachen #1, #2, #3, #4, #5 bezeichnet.
-
Der ROM 3 ist ein nichtflüchtiger Speicher und speichert verschiedene Verarbeitungsprogramme. In der vorliegenden Ausführungsform speichert der ROM 3 ein Fahrzeugsteuerprogramm 31, ein OS-Programm 32 (Betriebssystem-Programm) und ein Hypervisor-Programm 33. Das Fahrzeugsteuerprogramm 31 ist vorgesehen, um einen Verbrennungsmotor oder Ähnliches des Fahrzeugs zu steuern. Das OS-Programm 32 ist vorgesehen, um ein Betriebssystem (OS), das als eine Basis zum Ausführen des Fahrzeugsteuerprogramms 31 dient, zu steuern. Das Hypervisor-Programm 33 ist vorgesehen, um das OS zu verwalten, so dass von der CPU 2 mehrere OS parallel ausgeführt werden können. Vorrechtsniveaus (Prioritäten) des Fahrzeugsteuerprogramms 31, des OS-Programms 32 und des Hypervisor-Programms 33 sind jeweils „niedrig“, „mittel“ und „hoch“. Man beachte, dass, wenn das Vorrechtsniveau niedriger ist, die Anweisung, die von dem Programm ausführbar ist, und der Zugriff auf den RAM 4 durch das Programm eingeschränkt sind.
-
Das Fahrzeugsteuerprogramm 31 enthält mehrere Programme 311, 312, 313. Es sind den Programmen 311, 312, 313, 32, 33 jeweilige Identifikationsnummern (ID-Nummern) 001, 002, 003, 004, 005 zugeordnet.
-
Der ROM 3 speichert eine Interrupt-Einstelltabelle 34. Für jede der Interrupt-Ursachen #1, #2, #3, #4, #5 legt die Interrupt-Einstelltabelle 34 auf einer Programm-um-Programm-Basis fest, ob eine Freigabe-Interrupt-Anweisung (auch als EI-Anweisung bezeichnet) und eine Sperr-Interrupt-Anweisung (auch als DI-Anweisung bezeichnet) akzeptabel bzw. annehmbar sind. Die EI-Anweisung ist eine Anweisung zum gemeinsamen Freigeben von Interrupts mit der Ausnahme einiger Interrupts wie beispielsweise eines nicht maskierbaren Interrupts (NMI) und Ähnlichem. Die DI-Anweisung ist eine Anweisung zum gemeinsamen Sperren von Interrupts mit der Ausnahme einiger Interrupts wie beispielsweise eines nicht maskierbaren Interrupts (NMI) und Ähnlichem.
-
Wenn in der vorliegenden Ausführungsform die ID-Nummer „001“ ist, werden die EI-Anweisung und die DI-Anweisung in Bezug auf die Interrupt-Ursache #1 akzeptiert. Wenn die ID-Nummer „002“ ist, werden die EI-Anweisung und die DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2 akzeptiert. Wenn die ID-Nummer „003“ ist, werden die EI-Anweisung und die DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2, #3 akzeptiert. Wenn die ID-Nummer „004“ ist, werden die EI-Anweisung und die DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2, #3, #4 akzeptiert. Wenn die ID-Nummer „005“ ist, werden die EI-Anweisung und die DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2, #3, #4, #5 akzeptiert.
-
Die CPU 2 enthält eine Verarbeitungseinheit 21 zur Programmausführung und eine Registergruppe 22 zum Speichern von Daten, die von der Verarbeitungseinheit 21 verwendet werden. Insbesondere besteht die Registergruppe 22 aus mehreren Registern zum Speichern von Daten, die von der Verarbeitungseinheit 21 verwendet werden. Die CPU 2 führt eine Verarbeitung auf der Grundlage eines vorbestimmten Verarbeitungsprogramms durch. Ein Identifikationsnummernspeicherbereich SR1, ein Interrupt-Einstellspeicherbereich SR2 und ein Interrupt-Freigabezustandsspeicherbereich SR3 sind in den Registern der Registergruppe 22 vorgesehen.
-
Der Identifikationsnummernspeicherbereich SR1 speichert eine Identifikationsnummerinformation, die die ID-Nummer des Programms, das derzeitig von der CPU 2 ausgeführt wird, angibt. Der Interrupt-Einstellspeicherbereich SR2 speichert Interrupt-Einstellinformationen für jeweilige Interrupt-Ursachen #1, #2, #3, #4, #5. Die Interrupt-Einstellinformation für eine jeweilige Interrupt-Ursache gibt an, ob eine Interrupt-Einstellung zu dem derzeitigen Zeitpunkt konfigurierbar ist. Der Interrupt-Freigabezustandsspeicherbereich SR3 speichert Interrupt-Einstellinformationen für jeweilige Interrupt-Ursachen #1, #2, #3, #4, #5. Die Interrupt-Einstellinformation für eine jeweilige Interrupt-Ursache gibt an, ob die EI-Anweisung und die DI-Anweisung in Bezug auf die jeweilige Interrupt-Ursache zu dem derzeitigen Zeitpunkt akzeptiert bzw. angenommen werden.
-
Bei Empfang eines Interrupt-Anforderungssignals entsprechend den jeweiligen Interrupt-Ursachen #1, #2, #3, #4, #5 von der Interrupt-Steuerung 10 bestimmt die CPU 2 auf der Grundlage der Interrupt-Freigabezustandsinformationen, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 gespeichert sind, ob der Interrupt zu akzeptieren ist.
-
Ein Interrupt-Einstellprozess und ein Interrupt-Anforderungsbestimmungsprozess, die von der CPU 2 des Mikrocomputers 1 durchgeführt werden, werden im Folgenden mit Bezug auf die 2 und 3 beschrieben. Die CPU 2 führt während ihres Betriebs den Interrupt-Einstellprozess und den Interrupt-Anforderungsbestimmungsprozess wiederholt durch.
-
In dem Interrupt-Einstellprozess bestimmt die CPU 2 zunächst, ob eine Änderung einer ID-Nummer des Programms, das von der CPU 2 ausgeführt wird, vorliegt, wie es in 2 gezeigt ist. Wenn keine Änderung der ID-Nummer vorliegt (NEIN in S10), schreitet der Prozess zu S40. Wenn eine Änderung der ID-Nummer vorliegt (JA in S10), führt die CPU 2 S20 durch. In S20 speichert die CPU 2 die Identifikationsnummerinformation, die die ID-Nummer des Programms angibt, das von der CPU 2 ausgeführt wird, in dem Identifikationsnummernspeicherbereich SR1. In S30 speichert die CPU 2 die Interrupt-Einstellinformation, die der Identifikationsnummer des ausgeführten Programms entspricht, in dem Interrupt-Einstellspeicherbereich SR2. Wenn die CPU 2 beispielsweise das Programm 312 ausführt, speichert die CPU 2 die Identifikationsnummerinformation, die angibt, dass die ID-Nummer „002“ ist, in dem Identifikationsnummernspeicherbereich SR1, und außerdem speichert die CPU 2 die Interrupt-Einstellinformation, die angibt, dass die EI-Anweisung und die DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2 akzeptiert werden und dass die EI-Anweisung und die DI-Anweisung in Bezug auf die Interrupt-Ursachen #3, #4, #5 nicht akzeptiert werden, in dem Interrupt-Einstellspeicherbereich SR2.
-
In S40 bestimmt die CPU 2, ob die EI-Anweisung in die CPU 2 eingegeben wurde. Wenn die EI-Anweisung nicht eingegeben wurde (NEIN in S40), schreitet der Prozess zu S60. Wenn die EI-Anweisung eingegeben wurde (JA in S40), schreitet der Prozess zu S50. In S50 spezifiziert die CPU 2 mit Bezug auf die Interrupt-Einstellinformationen, die in dem Interrupt-Einstellspeicherbereich SR2 gespeichert sind, von den Interrupt-Ursachen #1, #2, #3, #4, #5 diejenige Interrupt-Ursache, in Bezug auf die die Annahme (das Akzeptieren) der EI-Anweisung und der DI-Anweisung freigegeben wird. Außerdem schreibt die CPU 2 die Interrupt-Freigabezustandsinformation, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 gespeichert ist, neu, so dass der Interrupt in Bezug auf die spezifizierte Interrupt-Ursache freigegeben wird. Nach S50 schreitet der Prozess zu S60. Wenn die ID-Nummer beispielsweise „002“ ist, wird die Annahme der EI-Anweisung und der DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2 freigegeben. Somit wird die Interrupt-Freigabezustandsinformation neu geschrieben, so dass der Interrupt in Bezug auf die Interrupt-Ursachen #1, #2 freigegeben wird.
-
In S60 bestimmt die CPU 2, ob die DI-Anweisung in die CPU 2 eingegeben wurde. Wenn die DI-Anweisung nicht eingegeben wurde (NEIN in S60), beendet die CPU 2 den Interrupt-Einstellprozess. Wenn die DI-Anweisung eingegeben wurde (JA in S60), schreitet der Prozess zu S70. In S70 spezifiziert die CPU 2 mit Bezug auf die Interrupt-Einstellinformationen, die in dem Interrupt-Einstellspeicherbereich SR2 gespeichert sind, von den Interrupt-Ursachen #1, #2, #3, #4, #5 diejenige Interrupt-Ursache, in Bezug auf die die Annahme der EI-Anweisung und der DI-Anweisung freigegeben ist. Außerdem schreibt die CPU 2 die Interrupt-Freigabezustandsinformation, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 gespeichert ist, neu, so dass der Interrupt für die spezifiziert Interrupt-Ursache freigegeben wird. Nach S70 wird der Interrupt-Einstellprozess beendet. Wenn die ID-Nummer beispielsweise „002“ ist, wird, da die Annahme der EI-Anweisung und der DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2 freigegeben ist, die Interrupt-Freigabezustandsinformation derart neu geschrieben, dass der Interrupt in Bezug auf die Interrupt-Ursachen #1, #2 freigegeben wird.
-
Wie es in 3 gezeigt ist, bestimmt die CPU 2 in dem Interrupt-Anforderungsbestimmungsprozess zunächst, ob das Interrupt-Anforderungssignal in die CPU 2 eingegeben wurde. Wenn das Interrupt-Anforderungssignal nicht eingegeben wurde (S110: NEIN), wird der Interrupt-Anforderungsbestimmungsprozess beendet. Wenn das Interrupt-Anforderungssignal eingegeben wurde (S110: JA), schreitet der Prozess zu S120. Durch Bezugnahme auf die Interrupt-Freigabezustandsinformation, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 gespeichert ist, bestimmt die CPU 2, ob die Ursache eines Interrupts, die durch das Interrupt-Anforderungssignal (d. h. eine der Interrupt-Ursachen #1, #2, #3, #4, #5) angegeben wird, freigegeben ist. Wenn die Ursache eines Interrupts, die durch das Interrupt-Anforderungssignal angegeben wird, nicht freigegeben ist (NEIN in S120), wird der Interrupt-Anforderungsbestimmungsprozess beendet. Wenn die Ursache eines Interrupts, die durch das Interrupt-Anforderungssignal angegeben wird, freigegeben ist (JA in S120), schreitet der Prozess zu S130. In S130 unterbricht die CPU 2 das Programm, das ausgeführt wird (d. h. eines der Programme 311, 312, 313, 32, 33), und außerdem führt die CPU 2 einen Interrupt-Prozess aus, der der Ursache eines Interrupts, die durch das Interrupt-Anforderungssignal angegeben wird, entspricht. Nach S130 wird der Interrupt-Anforderungsbestimmungsprozess beendet.
-
Im Folgenden wird mit Bezug auf 4 ein Beispiel einer Änderung einer Interrupt-Freigabezustandsinformation beschrieben. In diesem Beispiel ändert sich die ID-Nummer aus Vereinfachungsgründen nur zwischen „001“, „002“ und „003“.
-
Wie es in 4 gezeigt ist, wird zu einem Zeitpunkt t0 angenommen, dass die ID-Nummer „001“ ist und die Interrupt-Freigabezustandsinformation in Bezug auf das Programm 311 auf ihren Anfangszustand eingestellt ist, bei dem „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt ist und „Interrupt gesperrt“ für die Interrupt-Ursache #3 eingestellt ist (siehe 4 für die Interrupt-Freigabezustandsinformation „IPOO“). Wenn die EI-Anweisung in die CPU 2 zu einem Zeitpunkt t1 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursache #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP01 “). Dieses kommt daher, dass, wenn die ID-Nummer „001“ ist, die EI-Anweisung in Bezug auf die Interrupt-Ursache #1 akzeptiert bzw. angenommen wird.
-
Danach ändert sich die ID-Nummer von „001“ in „002“ zu einem Zeitpunkt t2, und die Interrupt-Freigabezustandsinformation in Bezug auf das Programm 312 wird auf ihren Anfangszustand eingestellt, bei dem „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt ist und „Interrupt gesperrt“ für die Interrupt-Ursache #3 eingestellt ist (siehe Interrupt-Freigabezustandsinformation „IP02“ in 4). Wenn die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t3 eingegeben wird, wird „Interrupt gesperrt“ für die Interrupt-Ursachen #1, #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP03“). Dieses kommt daher, dass, wenn die ID-Nummer „002“ ist, die DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2 akzeptiert bzw. angenommen wird.
-
Danach ändert sich die ID-Nummer von „002“ in „003“ zu einem Zeitpunkt t4, und die Interrupt-Freigabezustandsinformation in Bezug das Programm 313 wird auf ihren Anfangszustand eingestellt, bei dem „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt ist und „Interrupt gesperrt“ für die Interrupt-Ursache #3 eingestellt ist (siehe Interrupt-Freigabezustandsinformation „IP04“ in 4). Wenn die EI-Anweisung in die CPU 2 zu einem Zeitpunkt t5 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP05“). Dieses kommt daher, dass, wenn die ID-Nummer „003“ ist, die EI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2, #3 akzeptiert bzw. angenommen wird.
-
Wenn sich die ID-Nummer von „003“ in „002“ zu einem Zeitpunkt t6 ändert und die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t7 eingegeben wird, wird „Interrupt gesperrt“ für die Interrupt-Ursachen #1, #2 eingestellt und „Interrupt freigegeben“ wird für die Interrupt-Ursache #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP06“). Dieses kommt daher, dass, wenn die ID-Nummer „002“ ist, die DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2 akzeptiert bzw. angenommen wird.
-
Wenn sich die ID-Nummer von „002“ in „001“ zu einem Zeitpunkt t8 ändert und die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t9 eingegeben wird, wird „Interrupt gesperrt“ für die Interrupt-Ursachen #1, #2 eingestellt und „Interrupt freigegeben“ wird für die Interrupt-Ursache #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP07“). Dieses kommt daher, dass, wenn die ID-Nummer „001“ ist, die DI-Anweisung in Bezug auf die Interrupt-Ursache #1 akzeptiert bzw. angenommen wird. Wenn die EI-Anweisung in die CPU 2 zu einem Zeitpunkt t10 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #3 eingestellt und „Interrupt gesperrt“ wird für Interrupt-Ursache #2 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP08“). Dieses kommt daher, dass, wenn die ID-Nummer „001“ ist, die EI-Anweisung in Bezug auf die Interrupt-Ursache #1 akzeptiert bzw. angenommen wird.
-
Wenn sich danach die ID-Nummer von „001“ in „003“ zu einem Zeitpunkt t11 ändert und die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t12 eingegeben wird, wird „Interrupt gesperrt“ für die Interrupt-Ursachen #1, #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP09“). Dieses kommt daher, dass, wenn die ID-Nummer „003“ ist, die DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2, #3 akzeptiert bzw. angenommen wird.
-
In der obigen Konfiguration ist der Mikrocomputer 1 in der Lage, mehrere Programme 311, 312, 313, 32, 33 auszuführen. Der Rom 3 speichert die Interrupt-Einstelltabelle 34, die Interrupt-Einstellinformationen für mehrere Ursachen von Interrupts #1, #2, #3, #4, #5 (Interrupt-Ursachen #1, #2, #3, #4, #5) speichert. Jede Interrupt-Einstellinformation gibt auf einer Programm-um-Programm-Basis (Programme 311, 312, 313, 32, 33) an, ob eine Interrupt-Einstellung, die eine Einstellung zum Freigeben oder Sperren eines Interrupts in Bezug auf eine jeweilige Ursache eines Interrupts ist, konfigurierbar ist. Als Antwort auf die Eingabe der Freigabe-Interrupt-Anweisung (EI-Anweisung) nimmt die CPU 2 Bezug auf die Interrupt-Einstelltabelle 34, die in dem ROM 3 gespeichert ist, spezifiziert die Ursache eines Interrupts, in Bezug auf die die Interrupt-Einstellung konfigurierbar ist, auf der Grundlage der Interrupt-Einstellinformation, die dem Programm entspricht, das derzeitig ausgeführt wird, und gibt den Interrupt in Bezug auf die spezifizierte Ursache eines Interrupts frei (S40, S50). Als Antwort auf die Eingabe der Sperr-Interrupt-Anweisung (DI-Anweisung) nimmt die CPU 2 Bezug auf die Interrupt-Einstelltabelle 34, die in dem ROM 3 gespeichert ist, spezifiziert die Ursache eines Interrupts, in Bezug auf die die Interrupt-Einstellung konfigurierbar ist, auf der Grundlage der Interrupt-Einstellinformation, die dem Programm entspricht, das derzeitig ausgeführt wird, und sperrt den Interrupt in Bezug auf die spezifizierte Ursache eines Interrupts. Danach unterbricht die CPU 2 als Antwort auf die Erzeugung der Ursache eines Interrupts während der Programmausführung die Programmausführung und führt einen Interrupt-Prozess aus, der der erzeugten Ursache eines Interrupts entspricht (S130), wenn der Interrupt für die erzeugte Ursache eines Interrupts freigegeben ist (JA in S120), und verhindert den Interrupt-Prozess, der der erzeugten Ursache eines Interrupts entspricht, wenn der Interrupt für die erzeugte Ursache eines Interrupts gesperrt ist (NEIN in S120).
-
Gemäß der obigen Konfiguration kann der Mikrocomputer 1 durch Bezugnahme auf die Interrupt-Einstelltabelle 34 die Ursache eines Interrupts, in Bezug auf die die Interrupt-Einstellung (die Einstellung zum Freigeben und Sperren des Interrupts) konfigurierbar ist, für das Programm, das derzeitig ausgeführt wird, spezifizieren. Dann kann der Interrupt für die spezifizierte Ursache eines Interrupts, in Bezug auf die die Interrupt-Einstellung konfigurierbar ist, auf die Eingabe der EI-Anweisung hin freigegeben werden und auf die Eingabe der DI-Anweisung hin gesperrt werden. Daher ist es möglich, Interrupts derart einzustellen, dass die Interrupts wahlweise auf einer Programm-um-Programm-Basis freigegeben und gesperrt werden.
-
In der vorliegenden Ausführungsform kann der ROM 3 einem Beispiel einer ersten Speichereinrichtung und außerdem einem Beispiel eines ersten Speichers entsprechen. Die CPU 2, die S40, S50 durchführt, kann einem Beispiel einer Interrupt-Freigabeeinrichtung und ebenfalls einem Beispiel eines Interrupt-Freigabeabschnitts entsprechen. Die CPU 2, die S60, S70 durchführt, kann einem Beispiel einer Interrupt-Sperrein-richtung und ebenfalls einem Beispiel eines Interrupt-Sperrabschnitts entsprechen. Die CPU 2, die S110 bis S130 durchführt, kann einem Beispiel einer Interrupt-Prozessausführungseinrichtung und außerdem einem Beispiel eines Interrupt-Prozessausführungsabschnitts entsprechen.
-
(Zweite Ausführungsform)
-
Im Folgenden wird eine zweite Ausführungsform mit Bezug auf die Zeichnungen beschrieben. Hier wird der Unterschied der vorliegenden Ausführungsform zu der ersten Ausführungsform beschrieben.
-
Wie es in 5 gezeigt ist, unterscheiden sich der Mikrocomputer 1 der zweiten Ausführungsform und derjenige der ersten Ausführungsform in dem Vorhandensein einer Informationsbewegungseinheit 23 und sind hinsichtlich der anderen Punkte gleich. Die Informationsbewegungseinheit 23 ist eine Hardware, die als eine Funktion zum Sichern und Wiederherstellen der Interrupt-Freigabezustandsinformation ist, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 gespeichert ist. Insbesondere speichert die Informationsbewegungseinheit 23 als Antwort auf eine Änderung der ID-Nummer des derzeitig ausgeführten Programms eine bestimmte Interrupt-Freigabezustandsinformation, die die Interrupt-Freigabezustandsinformation ist, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer gespeichert ist, in einem Informationsspeicherbereich der Informationsbewegungseinheit 23 durch Zuordnen der bestimmten Interrupt-Freigabezustandsinformation zu der ID-Nummer. Danach extrahiert die Informationsbewegungseinheit 23 als Antwort auf eine Änderung der ID-Nummer des derzeitig ausgeführten Programms in eine spezielle ID-Nummer die Interrupt-Freigabezustandsinformation, die derselben ID-Nummer (spezielle ID-Nummer, d. h. ID-Nummer nach der Änderung) zugeordnet ist, aus dem Informationsspeicherbereich der Informationsbewegungseinheit 23 und speichert außerdem die extrahierte Interrupt-Freigabezustandsinformation.
-
Im Folgenden wird ein Beispiel einer Änderung einer Interrupt-Freigabezustandsinformation mit Bezug auf 6 beschrieben. In diesem Beispiel ändert sich die ID-Nummer aus Vereinfachungsgründen nur zwischen „001“, „002“ und „003“.
-
Wie es in 6 gezeigt ist, wird angenommen, dass zu einem Zeitpunkt t0 die ID-Nummer „001“ ist und die Interrupt-Freigabezustandsinformation in Bezug auf das Programm 311 auf ihren Anfangszustand eingestellt ist, bei dem „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt ist und „Interrupt gesperrt“ für die Interrupt-Ursache #3 eingestellt ist (siehe Interrupt-Freigabezustandsinformation „IP20“). Wenn die EI-Anweisung in die CPU 2 zu einem Zeitpunkt t1 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt und „Interrupt gesperrt“ wird die Interrupt-Ursache #2 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP21“). Dieses kommt daher, dass, wenn die ID-Nummer „001“ ist, die EI-Anweisung in Bezug auf die Interrupt-Ursache #1 akzeptiert wird.
-
Danach ändert sich die ID-Nummer von „001“ in „002“ zu einem Zeitpunkt t2, und die Interrupt-Freigabezustandsinformation in Bezug auf das Programm 312 wird auf ihren Anfangszustand eingestellt, bei dem „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt wird und „Interrupt gesperrt“ für die Interrupt-Ursache #3 eingestellt wird (siehe Interrupt-Freigabezustandsinformation „IP22“). Außerdem wird die Interrupt-Freigabezustandsinformation „IP21 “, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer in „002“ gespeichert wurde, in der Informationsbewegungseinheit 23 gesichert. Wenn die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t3 eingegeben wird, wird „Interrupt gesperrt“ für die Interrupt-Ursachen #1, #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP23“). Dieses kommt daher, dass, wenn die ID-Nummer „002“ist, die DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2 akzeptiert wird.
-
Danach ändert sich die ID-Nummer von „002“ in „003“ zu einem Zeitpunkt t4, und die Interrupt-Freigabezustandsinformation in Bezug auf das Programm 313 wird auf ihren Anfangszustand eingestellt, bei dem „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt wird und „Interrupt gesperrt“ für die Interrupt-Ursache #3 eingestellt wird (siehe Interrupt-Freigabezustandsinformation „IP24“). Außerdem wird die Interrupt-Freigabezustandsinformation „IP23“), die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer in „003“ gespeichert wurde, in der Informationsbewegungseinheit 23 gesichert. Wenn die EI-Anweisung in die CPU 2 zu einem Zeitpunkt t5 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP25“). Dieses kommt daher, dass, wenn die ID-Nummer „003“ ist, die EI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2, #3 akzeptiert wird.
-
Wenn sich danach die ID-Nummer von „003“ in „002“ zu einem Zeitpunkt t6 ändert, wird die Interrupt-Freigabezustandsinformation „IP23“, die in der Informationsbewegungseinheit 23 gesichert wurde, in dem Interrupt-Freigabezustandsspeicherbereich SR3 wiederhergestellt (siehe Pfeil AL11). Dementsprechend wird „gesperrt“ für die Interrupt-Ursachen #1, #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP26“). Außerdem wird die Interrupt-Freigabezustandsinformation „IP25“, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer in „002“ gespeichert wurde, in der Informationsbewegungseinheit 23 gesichert. Wenn die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t7 eingegeben wird, wird „Interrupt gesperrt“ für die Interrupt-Ursachen #1, #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP27“). Dieses kommt daher, dass, wenn die ID-Nummer „002“ ist, die DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2 akzeptiert wird.
-
Wenn sich danach die ID-Nummer von „002“ in „001“ zu einem Zeitpunkt t8 ändert, wird die Interrupt-Freigabezustandsinformation „IP21“, die in der Informationsbewegungseinheit 23 gesichert wurde, in dem Interrupt-Freigabezustandsspeicherbereich SR3 wiederhergestellt (siehe Pfeil AL12). Dementsprechend wird „freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt und „gesperrt“ wird für die Interrupt-Ursache #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP28“). Außerdem wird die Interrupt-Freigabezustandsinformation „IP27“, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer in „001“ gespeichert wurde, in der Informationsbewegungseinheit 23 gesichert. Wenn die EI-Anweisung in die CPU 2 zu einem Zeitpunkt t9 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursache #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP29“). Dieses kommt daher, dass, wenn die ID-Nummer „001“ ist, die EI-Anweisung in Bezug auf die Interrupt-Ursache #1 akzeptiert wird. Wenn die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t10 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursache #2 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursachen #1, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP30“). Dieses kommt daher, dass, wenn die ID-Nummer „001“ ist, die DI-Anweisung in Bezug auf die Interrupt-Ursache #1 akzeptiert wird.
-
Wenn sich danach die ID-Nummer von „001“ in „003“ zu einem Zeitpunkt t11 ändert, wird die Interrupt-Freigabezustandsinformation „IP25“, die in der Informationsbewegungseinheit 23 gesichert wurde, in dem Interrupt-Freigabezustandsspeicherbereich SR3 wiederhergestellt (siehe Pfeil AL13). Dementsprechend wird „freigegeben“ für die Interrupt-Ursachen #1, #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP31“). Außerdem wird die Interrupt-Freigabezustandsinformation „IP30“, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer in „003“ gespeichert wurde, in der Informationsbewegungseinheit 23 gesichert. Wenn die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t12 eingegeben wird, wird „Interrupt gesperrt“ für die Interrupt-Ursachen #1, #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP32“). Dieses kommt daher, dass, wenn die ID-Nummer „003“ ist, die DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2, #3 akzeptiert wird.
-
In der obigen Konfiguration des Mikrocomputers 1 enthält die Registergruppe 22 den Interrupt-Freigabezustandsspeicherbereich SR3, der Interrupt-Freigabezustandsinformationen für mehrere Interrupt-Ursachen #1, #2, #3, #4, #5 speichert. In Bezug auf das Programm, das derzeitig ausgeführt wird, gibt jede Interrupt-Freigabezustandsinformation an, ob der Interrupt in Bezug auf eine jeweilige Ursache eines Interrupts freigegeben oder gesperrt wird. Der Mikrocomputer 1 (S50) gibt den Interrupt in Bezug auf die spezifizierte Interrupt-Ursache durch Konfigurieren derjenigen Interrupt-Freigabezustandsinformation, die der spezifizierten Ursache eines Interrupts entspricht, von den Interrupt-Freigabezustandsinformationen, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 gespeichert sind, frei, so dass der Interrupt in Bezug auf die spezifizierte Ursache eines Interrupts freigegeben wird. Auf ähnliche Weise sperrt der Mikrocomputer 1 (S70) den Interrupt in Bezug auf die spezifizierte Ursache eines Interrupts durch Konfigurieren derjenigen Interrupt-Freigabezustandsinformation, die der spezifizierten Ursache eines Interrupts entspricht, von den Interrupt-Freigabezustandsinformationen, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 gespeichert sind, so dass der Interrupt in Bezug auf die spezifizierte Ursache eines Interrupts gesperrt wird. Außerdem bestimmt der Mikrocomputer 1 (S120), ob der Interrupt-Prozess, der der erzeugten Ursache eines Interrupts entspricht, auszuführen oder zu verhindern ist, durch Bezugnahme auf die Interrupt-Freigabezustandsinformationen, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 gespeichert sind.
-
Als Antwort auf eine Änderung des ausgeführten Programms in ein bestimmtes Programm sichert die Informationsbewegungseinheit 23 die Interrupt-Freigabezustandsinformation durch Aufzeichnen der Interrupt-Freigabezustandsinformation, die vor der Änderung des ausgeführten Programms in das bestimmte Programm vorhanden ist, und stellt die Interrupt-Freigabezustandsinformation durch Aufzeichnen derjenigen Interrupt-Freigabezustandsinformation, die dem bestimmten Programm entspricht, das das Programm nach der Änderung ist, von den gespeicherten Interrupt-Freigabezustandsinformationen wieder her.
-
Gemäß der obigen Konfiguration wird die Interrupt-Freigabezustandsinformation als Antwort auf die Änderung des ausgeführten Programms gesichert. Danach wird als Antwort auf die Änderung des ausgeführten Programms in ein bestimmtes Programm eine spezielle Interrupt-Freigabezustandsinformation von den gesicherten Interrupt-Freigabezustandsinformationen wiederhergestellt, wobei die spezielle Interrupt-Freigabezustandsinformation diejenige Interrupt-Freigabezustandsinformation ist, die dem bestimmten Programm (dem Programm nach der Änderung) entspricht. Wenn das ausgeführte Programm geändert wird und dann das ausgeführte Programm ein oder mehrere Male weiter geändert wird und als Ergebnis dessen das ausgeführte Programm zu dem anfänglichen Programm zurückkehrt, kann daher der Anfangszustand der Interrupt-Freigabezustandsinformation sogar dann wiederhergestellt werden, wenn eine Änderung der Interrupt-Freigabezustandsinformation während der Ausführung eines anderen Programms vorliegt.
-
In der vorliegenden Ausführungsform kann die Registergruppe 22 einem Beispiel eines zweiten Speichers und außerdem einem Beispiel einer zweiten Speichereinrichtung entsprechen. Die Informationsbewegungseinheit 23 kann einem Beispiel einer Informationsbewegungseinrichtung und ebenfalls einem Beispiel eines Informationsbewegungsabschnitts entsprechen.
-
(Dritte Ausführungsform)
-
Im Folgenden wird eine dritte Ausführungsform mit Bezug auf die Zeichnungen beschrieben. Im Folgenden wird der Unterschied zu der zweiten Ausführungsform beschrieben.
-
Der Mikrocomputer 1 der dritten Ausführungsform und derjenige der ersten Ausführungsform unterscheiden sich in der Funktion der Informationsbewegungseinheit 23 und sind hinsichtlich der anderen Punkte gleich. Insbesondere weist die Informationsbewegungseinheit 23 die folgende Funktion auf. Auf der Grundlage der Interrupt-Einstellinformation, die in dem Interrupt-Einstellspeicherbereich SR2 gespeichert ist, spezifiziert die Informationsbewegungseinheit 23 von den Interrupt-Ursachen #1, #2, #3, #4, #5 diejenige Interrupt-Ursache, in Bezug auf die die Interrupt-Einstellung konfigurierbar ist. Danach sichert die Informationsbewegungseinheit 23 von den Interrupt-Freigabezustandsinformationen, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 gespeichert sind, nur diejenige Interrupt-Freigabezustandsinformation, die der spezifizierten Interrupt-Ursache entspricht, und stellt diese wieder her. Als Antwort auf die Änderung der ID-Nummer von „001“ in „002“ sichert die Informationsbewegungseinheit 23 beispielsweise von den Interrupt-Freigabezustandsinformationen, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 gespeichert sind, nur diejenige Interrupt-Freigabezustandsinformation, die der Interrupt-Ursache #1 entspricht. Als Antwort auf die Änderung der ID-Nummer von „002“ in „003“ sichert die Informationsbewegungseinheit 23 nur diejenigen Interrupt-Freigabezustandsinformationen, die den Interrupt-Ursachen #1, #2 entsprechen. Außerdem stellt die Informationsbewegungseinheit 23 beispielsweise als Antwort auf die Änderung der ID-Nummer von „001“ in „002“ nur diejenigen Interrupt-Freigabezustandsinformationen wieder her, die den Interrupt-Ursachen #1, #2 entsprechen.
-
Im Folgenden wird ein Beispiel einer Änderung einer Interrupt-Freigabezustandsinformation mit Bezug auf 7 beschrieben. In diesem Beispiel ändert sich die ID-Nummer aus Vereinfachungsgründen nur zwischen „001“, „002“ und „003“.
-
Wie es in 7 gezeigt ist, wird angenommen, dass zu einem Zeitpunkt t0 die ID-Nummer „001“ ist und die Interrupt-Freigabezustandsinformation in Bezug auf das Programm 311 auf ihren Anfangszustand eingestellt wird, bei dem „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt ist und „Interrupt gesperrt“ für die Interrupt-Ursache #3 eingestellt ist (siehe Interrupt-Freigabezustandsinformation „IP40“). Wenn die EI-Anweisung in die CPU 2 zu einem Zeitpunkt t1 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursache #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP41“). Dieses kommt daher, dass, wenn die ID-Nummer „001“ ist, die EI-Anweisung in Bezug auf die Interrupt-Ursache #1 akzeptiert wird.
-
Danach ändert sich die ID-Nummer von „001“ in „002“ zu einem Zeitpunkt t2, und die Interrupt-Freigabezustandsinformation in Bezug auf das Programm 312 wird auf ihren Anfangszustand eingestellt, bei dem „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt ist und „Interrupt gesperrt“ für die Interrupt-Ursache #3 eingestellt ist (siehe Interrupt-Freigabezustandsinformation „IP42“). Außerdem wird von der Interrupt-Freigabezustandsinformation „IP41 “, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung in die ID-Nummer „002“ gespeichert wurde, nur diejenige Interrupt-Freigabezustandsinformation, die der Interrupt-Ursache #1 entspricht, in der Informationsbewegungseinheit 23 gesichert. Wenn die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t3 eingegeben wird, wird „Interrupt gesperrt“ für die Interrupt-Ursachen #1, #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP43“). Dieses kommt daher, dass, wenn die ID-Nummer „002“ ist, die DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2 akzeptiert wird.
-
Danach ändert sich die ID-Nummer von „002“ in „003“ zu einem Zeitpunkt t4, und die Interrupt-Freigabezustandsinformation in Bezug auf das Programm 313 wird auf ihren Anfangszustand eingestellt, bei dem „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt ist und „Interrupt gesperrt“ für die Interrupt-Ursache #3 eingestellt ist (siehe Interrupt-Freigabezustandsinformation „IP44“). Außerdem werden von der Interrupt-Freigabezustandsinformation „IP43“, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer „003“ gespeichert wurde, nur diejenigen Interrupt-Freigabezustandsinformationen, die den Interrupt-Ursachen #1, #2 entsprechen, in der Informationsbewegungseinheit 23 gesichert. Wenn die EI-Anweisung in die CPU 2 zu einem Zeitpunkt t5 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP45“). Dieses kommt daher, dass, wenn die ID-Nummer „003“ ist, die EI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2, #3 akzeptiert wird.
-
Wenn sich danach die ID-Nummer von „003“ in „002“ zu einem Zeitpunkt t6 ändert, wird die Interrupt-Freigabezustandsinformation „IP43“, die in der Informationsbewegungseinheit 23 gesichert wurde, in dem Interrupt-Freigabezustandsspeicherbereich SR3 wiederhergestellt (siehe Pfeil AL21). Dementsprechend wird „freigegeben“ für die Interrupt-Ursache #3 eingestellt und „gesperrt“ wird für die Interrupt-Ursachen #1, #2 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP46“). Außerdem werden von der Interrupt-Freigabezustandsinformation „IP45“, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer in „002“ gespeichert wurde, diejenigen Interrupt-Freigabezustandsinformationen, die den Interrupt-Ursachen #1, #2, #3 entsprechen, in der Informationsbewegungseinheit 23 gesichert. Wenn die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t7 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursache #3 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursachen #1, #2 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP47“). Dieses kommt daher, dass, wenn die ID-Nummer „002“ ist, die DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2 akzeptiert wird.
-
Wenn sich danach die ID-Nummer von „002“ in „001“ zu einem Zeitpunkt t8 ändert, wird die Interrupt-Freigabezustandsinformation „IP41“, die in der Informationsbewegungseinheit 23 gesichert wurde, in dem Interrupt-Freigabezustandsspeicherbereich SR3 wiederhergestellt (siehe Pfeil AL22). Dementsprechend wird „freigegeben“ für die Interrupt-Ursachen #1, #3 eingestellt und „gesperrt“ wird für die Interrupt-Ursache #2 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP48“). Außerdem werden von der Interrupt-Freigabezustandsinformation „IP47“, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer in „001“ gespeichert wurde, nur diejenigen Interrupt-Freigabezustandsinformationen, die den Interrupt-Ursachen #1, #2 entsprechen, in der Informationsbewegungseinheit 23 gesichert. Wenn die EI-Anweisung in die CPU 2 zu einem Zeitpunkt t9 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #3 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursache #2 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP49“). Dieses kommt daher, dass, wenn die ID-Nummer „001“ ist, die EI-Anweisung in Bezug auf die Interrupt-Ursache #1 akzeptiert wird. Wenn die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t10 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursache #3 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursachen #1, #2 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP50“). Dieses kommt daher, dass, wenn die ID-Nummer „001“ ist, die DI-Anweisung in Bezug auf die Interrupt-Ursache #1 akzeptiert wird.
-
Wenn sich danach die ID-Nummer von „001“ in „003“ zu einem Zeitpunkt t11 ändert, wird die Interrupt-Freigabezustandsinformation „IP45“, die in der Informationsbewegungseinheit 23 gesichert wurde, in dem Interrupt-Freigabezustandsspeicherbereich SR3 wiederhergestellt (siehe Pfeil AL23). Dementsprechend wird „freigegeben“ für die Interrupt-Ursachen #1, #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP51“). Außerdem wird von der Interrupt-Freigabezustandsinformation „IP50“, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer in „003“ gespeichert wurde, nur diejenige Interrupt-Freigabezustandsinformation, die der Interrupt-Ursache #1 entspricht, in der Informationsbewegungseinheit 23 gesichert. Wenn die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t12 eingegeben wird, wird „Interrupt gesperrt“ für die Interrupt-Ursachen #1, #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP52“). Dieses kommt daher, dass, wenn die ID-Nummer „003“ ist, die DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2, #3 akzeptiert wird.
-
Gemäß der obigen Konfiguration des Mikrocomputers 1 sichert die Informationsbewegungseinheit 23 diejenige Interrupt-Freigabezustandsinformation durch Spezifizieren der Ursache eines Interrupts, in Bezug auf die die Interrupt-Einstellung konfigurierbar ist, auf der Grundlage der Interrupt-Freigabezustandsinformation, die dem Programm entspricht, das vor der Änderung in das ausgeführte Programm ausgeführt wurde, und Aufzeichnen derjenigen Interrupt-Freigabezustandsinformation, die der spezifizierten Ursache eines Interrupts entspricht, in Bezug auf die die Interrupt-Einstellung konfigurierbar ist, von den Interrupt-Freigabezustandsinformationen, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 gespeichert wurden. Daher kann hinsichtlich der Interrupt-Freigabezustandsinformation, die der Interrupt-Ursache entspricht, in Bezug auf die die Interrupt-Einstellung nicht konfigurierbar ist, die Interrupt-Freigabezustandsinformation, die durch ein anderes Programm geändert wurde, gehalten bzw. gespeichert werden, wenn das ausgeführte Programm geändert wird und dann das ausgeführte Programm ein oder mehrere Male weiter geändert wird und als Ergebnis dessen das ausgeführte Programm zu dem anfänglichen Programm zurückkehrt. Dieses basiert auf der Idee, dass es hinsichtlich der Interrupt-Ursache, in Bezug auf die die Interrupt-Einstellung nicht konfigurierbar ist, nicht notwendig ist, die Interrupt-Freigabezustandsinformation zu halten bzw. speichern, wenn das ausgeführte Programm zu dem anfänglichen Programm zurückkehrt. Da es nicht notwendig ist, sämtliche Interrupt-Freigabezustandsinformationen, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 der Registergruppe 22 gespeichert sind, zu sichern, können ein benötigter Speicherbereich und eine Verarbeitungslast zum Sichern der Interrupt-Freigabezustandsinformationen verringert werden.
-
(Vierte Ausführungsform)
-
Im Folgenden wird eine vierte Ausführungsform mit Bezug auf die Zeichnungen beschrieben. Es wird hier der Unterschied zu der zweiten Ausführungsform beschrieben.
-
Der Mikrocomputer 1 der vierten Ausführungsform und derjenige der zweiten Ausführungsform unterscheiden sich in der Konfiguration der Interrupt-Einstelltabelle 34 und sind in den anderen Punkten gleich. Insbesondere ist die Interrupt-Einstelltabelle 34 der vorliegenden Ausführungsform wie folgt aufgebaut. Wie es in 8 gezeigt ist, werden, wenn die ID-Nummer „001“ ist, die EI-Anweisung und die DI-Anweisung in Bezug auf die Interrupt-Ursache #1 akzeptiert. Wenn die ID-Nummer „002“ ist, werden die EI-Anweisung und die DI-Anweisung in Bezug auf die Interrupt-Ursache #2 akzeptiert. Wenn die ID-Nummer „003“ ist, werden die EI-Anweisung und die DI-Anweisung in Bezug auf die Interrupt-Ursache #3 akzeptiert. Wenn die ID-Nummer „004“ ist, werden die EI-Anweisung und die DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2, #3, #4 akzeptiert. Wenn die ID-Nummer „005“ ist, werden die EI-Anweisung und die DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2, #3, #4, #5 akzeptiert.
-
Im Folgenden wird ein Beispiel einer Änderung einer Interrupt-Freigabezustandsinformation mit Bezug auf 9 beschrieben. In diesem Beispiel ändert sich die ID-Nummer aus Vereinfachungsgründen nur zwischen „001“, „002“ und „003“.
-
Wie es in 9 gezeigt ist, wird angenommen, dass zu einem Zeitpunkt t0 die ID-Nummer „001“ ist und die Interrupt-Freigabezustandsinformation in Bezug auf das Programm 311 auf ihren Anfangszustand eingestellt ist, bei dem „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt ist und „Interrupt gesperrt“ für die Interrupt-Ursache #3 eingestellt ist (siehe Interrupt-Freigabezustandsinformation „IP60“). Wenn die EI-Anweisung in die CPU 2 zu einem Zeitpunkt t1 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursache #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP61“). Dieses kommt daher, dass, wenn die ID-Nummer „001“ ist, die EI-Anweisung in Bezug auf die Interrupt-Ursache #1 akzeptiert wird.
-
Danach ändert sich die ID-Nummer von „001“ in „002“ zu einem Zeitpunkt t2, und die Interrupt-Freigabezustandsinformation in Bezug auf das Programm 312 wird auf ihren Anfangszustand eingestellt, bei dem „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt ist und „Interrupt gesperrt“ für die Interrupt-Ursache #3 eingestellt ist (siehe Interrupt-Freigabezustandsinformation „P62“). Außerdem wird die Interrupt-Freigabezustandsinformation „IP61“, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer in „002“ gespeichert wurde, in der Informationsbewegungseinheit 23 gesichert. Wenn die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t3 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursache #1 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursachen #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP63“). Dieses kommt daher, dass, wenn die ID-Nummer „002“ ist, die DI-Anweisung in Bezug auf die Interrupt-Ursache #2 akzeptiert wird.
-
Danach ändert sich die ID-Nummer von „002“ in „003“ zu einem Zeitpunkt t4, und die Interrupt-Freigabezustandsinformation in Bezug auf das Programm 313 wird auf ihren Anfangszustand eingestellt, bei dem „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt ist und „Interrupt gesperrt“ für die Interrupt-Ursache #3 eingestellt ist (siehe Interrupt-Freigabezustandsinformation „IP64“). Außerdem wird die Interrupt-Freigabezustandsinformation „IP63“, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer in „003“ gespeichert wurde, in der Informationsbewegungseinheit 23 gesichert. Wenn die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t5 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP65“). Dieses kommt daher, dass, wenn die ID-Nummer „003“ ist, die EI-Anweisung in Bezug auf die Interrupt-Ursache #3 akzeptiert wird.
-
Wenn sich danach die ID-Nummer von „003“ in „002“ zu einem Zeitpunkt t6 ändert, wird die Interrupt-Freigabezustandsinformation „IP63“, die in der Informationsbewegungseinheit 23 gesichert wurde, in dem Interrupt-Freigabezustandsspeicherbereich SR3 wiederhergestellt (siehe Pfeil AL31). Dementsprechend wird „Interrupt freigegeben“ für die Interrupt-Ursache #1 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursachen #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP66“). Außerdem wird die Interrupt-Freigabezustandsinformation „IP65“, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer in „002“ gespeichert wurde, in der Informationsbewegungseinheit 23 gesichert. Wenn die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t7 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursache #1 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursachen #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP63“). Dieses kommt daher, dass, wenn die ID-Nummer „002“ ist, die DI-Anweisung in Bezug auf die Interrupt-Ursache #2 akzeptiert wird.
-
Wenn sich danach die ID-Nummer von „002“ in „001“ zu einem Zeitpunkt t8 ändert, wird die Interrupt-Freigabezustandsinformation „IP61“, die in der Informationsbewegungseinheit 23 gesichert wurde, in dem Interrupt-Freigabezustandsspeicherbereich SR3 wiederhergestellt (siehe Pfeil AL32). Dementsprechend wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursache #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP68“). Außerdem wird die Interrupt-Freigabezustandsinformation „IP67“, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer in „001“ gespeichert wurde, in der Informationsbewegungseinheit 23 gesichert. Wenn die EI-Anweisung in die CPU 2 zu einem Zeitpunkt t9 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursache #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP69“). Dieses kommt daher, dass, wenn die ID-Nummer „001“ ist, die EI-Anweisung in Bezug auf die Interrupt-Ursache #1 akzeptiert wird. Wenn die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t10 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursache #2 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursachen #1, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP70“). Dieses kommt daher, dass, wenn die ID-Nummer „001“ ist, die DI-Anweisung in Bezug auf die Interrupt-Ursache #1 akzeptiert wird.
-
Wenn sich danach die ID-Nummer von „001“ in „003“ zu einem Zeitpunkt t11 ändert, wird die Interrupt-Freigabezustandsinformation „IP65“, die in der Informationsbewegungseinheit 23 gesichert wurde, in dem Interrupt-Freigabezustandsspeicherbereich SR3 wiederhergestellt (siehe Pfeil AL33). Dementsprechend wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP71“). Außerdem wird die Interrupt-Freigabezustandsinformation „IP70“, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer in „003“ gespeichert wurde, in der Informationsbewegungseinheit 23 gesichert. Wenn die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t12 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursache #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP72“). Dieses kommt daher, dass, wenn die ID-Nummer „003“ ist, die EI-Anweisung in Bezug auf die Interrupt-Ursache #3 akzeptiert wird.
-
(Fünfte Ausführungsform)
-
Im Folgenden wird eine fünfte Ausführungsform mit Bezug auf die Zeichnungen beschrieben. Es wird hier der Unterschied zu der dritten Ausführungsform beschrieben.
-
Der Mikrocomputer 1 der fünften Ausführungsform und derjenige der dritten Ausführungsform unterscheiden sich in der Konfiguration der Interrupt-Einstelltabelle 34 und sind in den anderen Punkten gleich. Insbesondere ist die Interrupt-Einstelltabelle 34 der fünften Ausführungsform wie folgt aufgebaut. Wie es in 8 gezeigt ist, werden, wenn die ID-Nummer „001“ ist, die EI-Anweisung und die DI-Anweisung in Bezug auf die Interrupt-Ursache #1 akzeptiert. Wenn die ID-Nummer „002“ ist, werden die EI-Anweisung und die DI-Anweisung in Bezug auf die Interrupt-Ursache #2 akzeptiert. Wenn die ID-Nummer „003“ ist, werden die EI-Anweisung und die DI-Anweisung in Bezug auf die Interrupt-Ursache #3 akzeptiert. Wenn die ID-Nummer „004“ ist, werden die EI-Anweisung und die DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2, #3, #4 akzeptiert. Wenn die ID-Nummer „005“ ist, werden die EI-Anweisung und die DI-Anweisung in Bezug auf die Interrupt-Ursachen #1, #2, #3, #4, #5 akzeptiert.
-
Im Folgenden wird ein Beispiel einer Änderung einer Interrupt-Freigabezustandsinformation mit Bezug auf 10 beschrieben. In diesem Beispiel ändert sich die ID-Nummer aus Vereinfachungsgründen nur zwischen „001“, „002“ und „003“.
-
Wie es in 10 gezeigt ist, wird angenommen, dass die ID-Nummer „001“ zu einem Zeitpunkt t0 ist und die Interrupt-Freigabezustandsinformation in Bezug auf das Programm 311 auf ihren Anfangszustand eingestellt wird, bei dem „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt ist und „Interrupt gesperrt“ für die Interrupt-Ursache #3 eingestellt ist (siehe Interrupt-Freigabezustandsinformation „IP80“). Wenn die EI-Anweisung in die CPU 2 zu einem Zeitpunkt t1 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursache #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP81 “). Dieses kommt daher, dass, wenn die ID-Nummer „001“ ist, die EI-Anweisung in Bezug auf die Interrupt-Ursache #1 akzeptiert wird.
-
Danach ändert sich die ID-Nummer von „001“ in „002“ zu einem Zeitpunkt t2, und die Interrupt-Freigabezustandsinformation in Bezug auf das Programm 312 wird auf ihren Anfangszustand eingestellt, bei dem „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt ist und „Interrupt gesperrt“ für die Interrupt-Ursache #3 eingestellt ist (siehe Interrupt-Freigabezustandsinformation „IP82“). Außerdem wird von der Interrupt-Freigabezustandsinformation „IP81 “, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer in „002“ gespeichert wurde, nur diejenige Interrupt-Freigabezustandsinformation, die der Interrupt-Ursache #1 entspricht, in der Informationsbewegungseinheit 23 gesichert. Wenn die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t3 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursache #1 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursachen #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP83“). Dieses kommt daher, dass, wenn die ID-Nummer „002“ ist, die DI-Anweisung in Bezug auf die Interrupt-Ursache #2 akzeptiert wird.
-
Danach ändert sich die ID-Nummer von „002“ in „003“ zu einem Zeitpunkt t4, und die Interrupt-Freigabezustandsinformation in Bezug auf das Programm 313 wird auf ihren Anfangszustand eingestellt, bei dem „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2 eingestellt ist und „Interrupt gesperrt“ für die Interrupt-Ursache #3 eingestellt ist (siehe Interrupt-Freigabezustandsinformation „IP84“). Außerdem wird von der Interrupt-Freigabezustandsinformation „IP83“, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer in „003“ gespeichert wurde, nur diejenige Interrupt-Freigabezustandsinformation, die der Interrupt-Ursache #2 entspricht, in der Informationsbewegungseinheit 23 gesichert. Wenn die EI-Anweisung in die CPU 2 zu einem Zeitpunkt t5 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP85“). Dieses kommt daher, dass, wenn die ID-Nummer „003“ ist, die EI-Anweisung in Bezug auf die Interrupt-Ursache #3 akzeptiert wird.
-
Wenn sich danach die ID-Nummer von „003“ in „002“ zu einem Zeitpunkt t6 ändert, wird die Interrupt-Freigabezustandsinformation „IP83“, die in der Informationsbewegungseinheit 23 gesichert wurde, in dem Interrupt-Freigabezustandsspeicherbereich SR3 wiederhergestellt (siehe Pfeil AL41). Dementsprechend wird „freigegeben“ für die Interrupt-Ursachen #1, #3 eingestellt und „gesperrt“ wird für die Interrupt-Ursache #2 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP86“). Außerdem wird von der Interrupt-Freigabezustandsinformation „IP85“, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer in „002“ gespeichert wurde, nur diejenige Interrupt-Freigabezustandsinformation, die der Interrupt-Ursache #3 entspricht, in der Informationsbewegungseinheit 23 gesichert. Wenn die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t7 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #3 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursache #2 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP87“). Dieses kommt daher, dass, wenn die ID-Nummer „002“ ist, die DI-Anweisung in Bezug auf die Interrupt-Ursache #2 akzeptiert wird.
-
Wenn sich danach die ID-Nummer von „002“ in „001“ zu einem Zeitpunkt t8 ändert, wird die Interrupt-Freigabezustandsinformation „IP81“, die in der Informationsbewegungseinheit 23 gesichert wurde, in dem Interrupt-Freigabezustandsspeicherbereich SR3 wiederhergestellt (siehe Pfeil AL42). Dementsprechend wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #3 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursache #2 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP88“). Außerdem wird von der Interrupt-Freigabezustandsinformation „IP87“, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer in „001“ gespeichert wurde, nur diejenige Interrupt-Freigabezustandsinformation, die der Interrupt-Ursache #2 entspricht, in der Informationsbewegungseinheit 23 gesichert. Wenn die EI-Anweisung in die CPU 2 zu einem Zeitpunkt t9 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursachen #1, #3 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursache #2 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP89“). Dieses kommt daher, dass, wenn die ID-Nummer „001“ ist, die EI-Anweisung in Bezug auf die Interrupt-Ursache #1 akzeptiert wird. Wenn die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t10 eingegeben wird, wird „Interrupt freigegeben“ für die Interrupt-Ursache #3 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursachen #1, #2 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP90“). Dieses kommt daher, dass, wenn die ID-Nummer „001“ ist, die DI-Anweisung in Bezug auf die Interrupt-Ursache #1 akzeptiert wird.
-
Wenn sich danach die ID-Nummer von „001“ in „003“ zu einem Zeitpunkt t11 ändert, wird die Interrupt-Freigabezustandsinformation „IP85“, die in der Informationsbewegungseinheit 23 gesichert wurde, in dem Interrupt-Freigabezustandsspeicherbereich SR3 wiederhergestellt (siehe Pfeil AL43). Dementsprechend wird „Interrupt freigegeben“ für die Interrupt-Ursache #3 eingestellt und „Interrupt gesperrt“ wird für die Interrupt-Ursachen #1, #2 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP91“). Außerdem wird von der Interrupt-Freigabezustandsinformation „IP90“, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 vor der Änderung der ID-Nummer in „003“ gespeichert wurde, nur diejenige Interrupt-Freigabezustandsinformation, die der Interrupt-Ursache #1 entspricht, in der Informationsbewegungseinheit 23 gesichert. Wenn die DI-Anweisung in die CPU 2 zu einem Zeitpunkt t12 eingegeben wird, wird „Interrupt gesperrt“ für die Interrupt-Ursachen #1, #2, #3 eingestellt (siehe Interrupt-Freigabezustandsinformation „IP92“). Dieses kommt daher, dass, wenn die ID-Nummer „003“ ist, die DI-Anweisung in Bezug auf die Interrupt-Ursache #3 akzeptiert wird.
-
Die Ausführungsformen der vorliegenden Erfindung sind nicht auf die oben beschriebenen Ausführungsformen beschränkt und können verschiedene Formen aufweisen, von denen Beispiele im Folgenden beschrieben werden. In den obigen Ausführungsformen wird als Antwort auf die EI-Anweisung oder die DI-Anweisung die Interrupt-Freigabezustandsinformation, die in dem Interrupt-Freigabezustandsspeicherbereich SR3 gespeichert ist, durch Bezugnahme auf die Interrupt-Einstellinformation, die in dem Interrupt-Einstellspeicherbereich SR2 gespeichert ist, neu geschrieben (S40 bis S70), da ein typischer Mikrocomputer die EI-Anweisung und die DI-Anweisung unterstützt. Alternativ kann der Mikrocomputer eine andere Interrupt-Freigabe-Anweisung als die EI-Anweisung und eine andere Interrupt-Sperr-Anweisung als die DI-Anweisung unterstützen und die Interrupt-Freigabezustandsinformation als Antwort auf die Eingabe der anderen Interrupt-Freigabe-Anweisung und der anderen Interrupt-Sperr-Anweisung neu schreiben.
-
In der zweiten Ausführungsform sichert die Informationsbewegungseinheit 23 die Interrupt-Freigabezustandsinformation und stellt diese wieder her. Alternativ kann beispielsweise die Verarbeitungseinheit 21 die Interrupt-Freigabezustandsinformation durch Ausführen verschiedener Anweisungen sichern und wiederherstellen, ohne eine Hardware wie die Informationsbewegungseinheit 23 zu verwenden.
-
In den obigen Ausführungsformen ist der Identifikationsnummernspeicherbereich SR1 in der Registergruppe 22 enthalten. Alternativ kann der Identifikationsnummernspeicherbereich SR1 in dem RAM 4 enthalten sein.
-
Die vorliegende Erfindung ist nicht auf die obigen Ausführungsformen und Modifikationen beschränkt. Das heißt, die obigen Ausführungsformen und Modifikationen können auf verschiedene Arten modifiziert werden, ohne von dem Bereich der vorliegenden Erfindung abzuweichen.