Hintergrund der Erfindung
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft einen Mikrocomputer, und insbesondere einen
Mikrocomputer mit einem Zentralprozessor und einem Überwachungs-Zeitgeber,
der eine nicht maskierbare Unterbrechung in Reaktion auf einen Überlauf des
Zeitgebers erzeugt.
Beschreibung des zugehörigen Standes der Technik
-
Herkömmlich enthalten viele Mikrocomputer einen Zentralprozessor (der in der
Beschreibung oft mit "CPU" abgekürzt wird), eine Unterbrechungssteuerung (die in
der Beschreibung oft mit "INTC" abgekürzt wird) und periphere Schaltungen, wie
beispielsweise einen ND-Wandler und eine serielle Übertragungsschaltung, von
denen alle in einem einzigen Halbleitersubstratchip angeordnet sind, und weisen
einen Überwachungs-Zeitgeber (der in der Beschreibung oft mit "WDT" abgekürzt
wird) auf, der eine nicht maskierbare Unterbrechung in Reaktion auf einen Überlauf
des Zeitgebers erzeugt, um die Zuverlässigkeit des gesamten
Mikrocomputersystems zu erhöhen.
-
Im Fall einer Verwendung des Überwachungs-Zeitgebers wird ein Programm zum
Löschen (oder Voreinstellen) eines Zählers des Überwachungs-Zeitgebers
innerhalb jeder vorbestimmten Zeitperiode ohne Ausnahme vorbereitet, so daß dann,
wenn das Programm ohne Schwierigkeiten ausgeführt wird, kein Überlauf des
Überwachungs-Zeitgebers erzeugt wird. Beispielsweise tritt zur Zeit eines
Programmablaufs dann, wenn der Zähler des Überwachungs-Zeitgebers aufgrund
eines Auftretens einer Anormalität selbst nach dem Verstreichen einer
vorbestimmten
Zeitperiode nicht voreingestellt wird, ein Überlauf beim Überwachungs-
Zeitgeber auf. Dieser Überlauf wird als nicht maskierbare Unterbrechung erfaßt,
und eine Anormalität des Systems wird einer externen Vorrichtung berichtet, und
eine Operation wird zu einem zuvor programmierten Programm verzweigt, wie
beispielsweise zu einem Rücksetzprogramm zum Durchführen einer Verarbeitung für
das Auftreten einer Anormalität.
-
Wie es oben angegeben ist, kann die WDT-(Überwachungs-
Zeitgeber-)Unterbrechung nicht durch ein EI-Flag oder ähnliches maskiert werden,
was unterschiedlich von normalen maskierbaren Unterbrechungen ist. Daher wird
dann, wenn gerade ein anderes Unterbrechungsverarbeitungsprogramm
ausgeführt wird, wenn die WDT-Unterbrechung auftritt, die Operation zum WDT-
Unterbrechungsverarbeitungsprogramm verzweigt. Demgemäß gibt es dann, wenn
es nötig ist, ein Programm vorzubereiten, das asynchron von einem
Ausführungszustand eines internen Programms erzeugt und verarbeitet wird, ähnlich wie ein
Unterbrechungsverarbeitungsprogramm zum Verarbeiten einer
Unterbrechungsanforderung von einer externen Vorrichtung, eine Möglichkeit, daß der Zähler des
Überwachungs-Zeitgebers nicht innerhalb der vorbestimmten Zeitperiode
voreingestellt werden kann. Daher wird zum Verhindern, daß die WDT-Unterbrechung
auftritt, weil die Situation derart falsch verstanden wird, daß sie eine
Systemanormalität ist, der Befehl zum Voreinstellen des WDT zu Beginn des
Unterbrechungsverarbeitungsprogramms ausgeführt.
-
Auch in dem Fall, daß es gewünscht ist, ein
Unterbrechungsverarbeitungsprogramm in einer minimalen Zeit zu beenden, wie bei einem Anwendersystem zum
Erfassen aus einer Unterbrechung eines äußeren Anschlusses, daß die Zufuhr
elektrischer Leistung zum System gestoppt ist, und zum Ausführen eines
Speicherns von Steuerdaten und einer Änderung von Anschlußtorausgaben, wird der
Befehl zum Voreinstellen des WDT zu Beginn eines
Unterbrechungsverarbeitungsprogramms ausgeführt, um zu verhindern, daß aufgrund des Auftretens der WDT-
Unterbrechung Zeit verschwendet wird.
-
Zum Ermöglichen, den Befehl zum Voreinstellen des WDT zu Beginn des
Unterbrechungsverarbeitungsprogramms auszuführen, empfängt die CPU keine
Unterbrechungsanforderung von der Unterbrechungssteuerung ohne Ausnahme nur,
nachdem die Operation zum Unterbrechungsverarbeitungsprogramm verzweigt ist.
-
Ein Befehl an einer Anfangsadresse des Unterbrechungsverarbeitungsprogramms
wird nämlich sicher ausgeführt.
-
Andererseits führt die Unterbrechungssteuerung einen Empfang von
Unterbrechungsverarbeitungsanforderungen und eine Prioritätspegelsteuerung durch und
benachrichtigt die CPU über ein Auftreten einer Unterbrechungsanforderung. Wenn
eine Vielzahl von Unterbrechungsverarbeitungsanforderungen miteinander
konkurrieren, wird diese Unterbrechungssteuerung zum Verarbeiten einer zuerst
aufgetretenen Anforderung konfiguriert, und zum Zurückhalten einer spät aufgetretenen
Anforderung (von spät aufgetretenen Anforderungen). Daher verzweigt die CPU
dann, wenn eine Unterbrechungsanforderung eines externen Anschlusses auftritt
und von der Unterbrechungssteuerung zur CPU übertragen wird, wenn die WDT-
Unterbrechungsverarbeitungsanforderung in einer Periode auftritt und der
Unterbrechungssteuerung mitgeteilt wird, in der die CPU gerade die
Verzweigungsverarbeitung ausführt, die zum Unterbrechungsverarbeitungsprogramm des externen
Anschlusses geht, zuerst zum Unterbrechungsverarbeitungsprogramm des
externen Anschlusses, um seinen Anfangsbefehl auszuführen, und verzweigt danach
zum WDT-Unterbrechungsverarbeitungsprogramm.
-
Obwohl das Voreinstellen des Überwachungs-Zeitgebers zu Beginn des
Unterbrechungsverarbeitungsprogramms ausgeführt wird, ist es nämlich dann, wenn der
Überlauf im Überwachungs-Zeitgeber auftritt, in einem bestimmten Fall während
der Ausführung der Unterbrechungsverarbeitung des externen Anschlusses so,
daß die Operation durch die der CPU mitgeteilten WDT-
Unterbrechungsverarbeitungsanforderung zum WDT-
Unterbrechungsverarbeitungsprogramm verzweigt wird.
-
Im herkömmlichen Mikrocomputer tritt der Überlauf, wie es aus dem Obigen zu
sehen ist, wenn die WDT-Unterbrechung und eine andere Unterbrechung miteinander
konkurrieren, selbst dann, wenn der Befehl zum Voreinstellen des WDT zu Beginn
des ersten verzweigten Unterbrechungsverarbeitungsprogramms ausgeführt wird,
im Überwachungs-Zeitgeber auf, und die Operation wird durch die der CPU
mitgeteilten WDT-Unterbrechungsverarbeitungsanforderung zum WDT-
Unterbrechungsverarbeitungsprogramm verzweigt.
-
Daher wird in dem Fall, in dem es gewünscht ist, ein
Unterbrechungsverarbeitungsprogramm in einer minimalen Zeit zu beenden, wie in einem Anwendersystem
zum Erfassen aus einer Unterbrechung eines externen Anschlusses, daß die
Zufuhr elektrischer Leistung zum System gestoppt ist, und zum Ausführen eines
Speicherns von Steuerdaten und einer Änderung von Anschlußtorausgaben, wenn
der Überwachungs-Zeitgeber verwendet wird, wenn das WDT-
Unterbrechungsverarbeitungsprogramm die Verzweigung zum Rücksetzprogramm
durchführt, die Verarbeitung für das Ausschalten der elektrischen Leistung nicht
ausgeführt.
-
Andererseits ist in dem Fall, daß das WDT-Unterbrechungsverarbeitungsprogramm
die Verzweigung zum Rücksetzprogramm nicht durchführt und die Operation nach
der Beendigung der WDT-Unterbrechungsverarbeitung zum ersten verzweigten
Unterbrechungsverarbeitungsprogramm zurückgebracht wird, da es nötig ist, das
System durch vorheriges Berechnen der Verarbeitungszeit der WDT-
Unterbrechung als verbrauchte Zeit zu entwickeln, eine zusätzliche Schaltung zum
Aufrechterhalten der Zufuhr elektrischer Leistung zum Mikrocomputer während
einer vorbestimmten Zeitperiode nach dem Abschalten der Leistung der Hauptzufuhr
von elektrischer Leistung zum Anwendersystem erforderlich, um eine größere
aufrechterhaltende elektrische Leistungskapazität zu haben. Dies ist eine Ursache für
höhere Kosten.
-
In "Microelectronics Journal, Bd. 12, Nr. 2, März 81, Luton, GB, S.21-24, AR.
Wood" sind Software-Techniken zum Prüfen von Hardwarefehlern oder Software-
Fehlfunktionen offenbart.
-
Eines der offenbarten Verfahren ist die Verwendung eines Überwachungs-
Zeitgebers. Der Überwachungs-Zeitgeber überwacht die Zeit, die vom
Mikroprozessor benötigt wird, um Unterprogramme und Unterbrechungsprogramme
auszuführen, und löst einen Alarm aus, wenn das Systemprogramm für länger als eine
vorbestimmte Zeit in einem Unterprogramm bleibt. Der Zeitgeber wird durch ein
Flag-Signal vom Mikroprozessor periodisch rückgesetzt. Die Befehle, die das
Rücksetz-Flag zum Rücksetzen des Zeitgebers erzeugen, sind innerhalb des
Ausführungsprogramms zwischen Unterprogramm-Verbindungen angeordnet. Der
Hardware-Zeitgeber wird derart eingestellt, daß er eine Auszeit hat, die etwa um 20
Prozent länger als das längste richtige Unterprogramm ist, dessen Dauer aus der
Anzahl von Befehlen und aus der Prozessorbefehlszykluszeit bestimmt werden
kann.
Zusammenfassung der Erfindung
-
Demgemäß ist es eine Aufgabe der vorliegenden Erfindung, einen Mikrocomputer
zu schaffen, der den oben angegebenen Nachteil des herkömmlichen überwunden
hat.
-
Eine weitere Aufgabe der vorliegenden Erfindung besteht im Schaffen eines
Mikrocomputers mit einem Überwachungs-Zeitgeber, wobei der Mikrocomputer nicht
zum WDT-Unterbrechungsverarbeitungsprog ramm verzweigt, wenn die WDT-
Unterbrechungsanforderung im Laufe einer Ausführung eines ersten oder zuvor
verzweigten Unterbrechungsverarbeitungsprogramms auftritt.
-
Die obigen und andere Aufgaben der vorliegenden Erfindung werden gemäß der
vorliegenden Erfindung durch einen Mikrocomputer gelöst, der folgendes aufweist:
einen Zentralprozessor, einen Überwachungs-Zeitgeber, der eine
Verarbeitungsanforderung erzeugt, wenn im Überwachungs-Zeitgeber ein Überlauf auftritt, eine
Unterbrechungs-Steuerschaltung, die die vom Überwachungs-Zeitg eber erzeugte
Vera rbeitungsanforderung als nicht maskierbare Unterbrechung verarbeitet, eine
Einrichtung, um in Reaktion auf die Ausführung eines Befehls des
Zentralprozessors ein Initialisierungssignal an den Überwachungs-Zeitgeber auszugeben, um
den Überwachungs-Zeitgeber zu initialisieren, dadurch gekennzeichnet, daß die
Unterbrechungs-Steuerschaltung weiterhin eine Einrichtung aufweist, die auf das
Initialisierungssignat anspricht, um die vom Überwachungs-Zeitgeber erzeugte
Verarbeitungsanforderung während einer Zeitdauer zu löschen, in der die
Unterbrechungs-Steuerschaltung die Verarbeitungsanforderung aufrechterhält
Die obigen und andere Aufgaben, Merkmale und Vorteile der vorliegenden
Erfindung werden aus der folgenden Beschreibung bevorzugter Ausführungsbeispiele
der Erfindung unter Bezugnahme auf die beigefügten Zeichnungen klar.
Kurze Beschreibung der Zeichnungen
-
Fig. 1 ist ein Blockdiagramm eines wesentlichen Teils eines Ausführungsbeispiels
des Mikrocomputers gemäß der vorliegenden Erfindung;
-
Fig. 2 ist ein Diagramm einer logischen Schaltung eines wesentlichen Teils der
Unterbrechungssteuerung, die im in Fig. 1 gezeigten Mikrocomputer
enthalten ist; und
-
Fig. 3 ist ein Blockdiagramm eines wesentlichen Teils eines weiteren
Ausführungsbeispiels des Mikrocomputers gemäß der vorliegenden Erfindung.
Beschreibung der bevorzugten Ausführungsbeispiele
-
In Fig. 1 ist ein Blockdiagramm eines wesentlichen Teils eines
Ausführungsbeispiels des Mikrocomputers gemäß der vorliegenden Erfindung gezeigt. Der
gezeigte Mikrocomputer ist so aufgebaut, daß dann, wenn eine CPU (Zentralprozessor)
einen WDT-(Überwachungs-Zeitgeber-)Initialisierungsbefehl ausführt, eine
Unterbrechungssteuerung (INTC) eine WDT-Unterbrechung automatisch löscht, welche
noch nicht von der CPU empfangen worden ist oder durch die CPU
aufrechterhalten wird.
-
Der gezeigte Mikrocomputer ist allgemein mit dem Bezugszeichen 1 bezeichnet
und ist über einen Bus 5 mit einer Speichereinheit 2 gekoppelt. Der Mikrocomputer
1 enthält darin eine CPU 10, einen Überwachungs-Zeitgeber 11 und eine
Unterbrechungssteuerung 12, die durch den Bus 5 für eine gegenseitige
Datenübertragung zwischen der CPU 10, dem Überwachungs-Zeitgeber 11 und der
Unterbrechungssteuerung 12 gekoppelt sind.
-
Die CPU 10 enthält darin einen Programmzähler, ein Programmstatuswort, eine
Recheneinheit, einen Befehlsdecoder, verschiedene Steuerregister, maskierbare
Unterbrechungs-Sperr/Freigabe-Flags, etc., die in der Zeichnung der
Vereinfachung der Zeichnungen halber nicht gezeigt sind, da diese Elemente Fachleuten
auf dem technischen Gebiet wohlbekannt sind. Die CPU 10 führt verschiedene
interne Operationssteuerungen des Mikrocomputers 1 durch, einschließlich einer
Steuerung einer Ausführung von Befehlen, einschließlich eines
Initialisierungsbefehls, der nur für den Überwachungs-Zeitgeber 11 verwendet wird, und einer
Unterbrechungsverarbeitungssteuerung.
-
Die Speichereinheit 2 enthält einen Programmspeicher und einen Datenspeicher
(von denen beide nicht gezeigt sind) zum Speichern verschiedener Typen von
Daten.
-
Der Überwachungs-Zeitgeber 11 ist zum Beginnen seiner Zähloperation aufgebaut,
wenn die CPU 10 nach einem Rücksetzen des Systems einen WDT-
Initialisierungsbefehl ausführt und ein WDTCLR-(Überwachungs-Zeitgeber-Lösch-
)Signal 24 erzeugt. Danach wird der WDT-Initialisierungsbefehl jedesmal
ausgeführt, wenn der Überwachungs-Zeitgeber initialisiert wird. Hier kann die
Zähloperation des Überwachungs-Zeitgebers nicht durch ein Verfahren gestoppt werden, das
ein anderes als das Rücksetzen des Systems ist. Wenn vor dem Ausführen des
WDT-Initialisierungsbefehls im Überwachungs-Zeitgeber ein Überlauf auftritt, er
zeugt der Überwachungs-Zeitgeber 11 eine WDT-
Unterbrechungsverarbeitungsanforderung INTWDT 21, die zur
Unterbrechungssteuerung 12 eingegeben wird.
-
Die Unterbrechungssteuerung 12 empfängt ein maskierbares Unterbrechungs-
Freigabesignal EI 26 und führt die Empfangssteuerung und die
Prioritätspegelsteuerung der Verarbeitungsanforderung INTWDT 21 und andere auftretende
Unterbrechungsanforderungen auf der Basis des empfangenen maskierbaren
Unterbrechungs-Freigabesignals EI 26 und der Inhalte von internen Steuerregistern
durch, die in der Unterbrechungssteuerung vorgesehen sind. Als Ergebnis gibt die
Unterbrechungssteuerung 12 dann, wenn eine Bedingung zum Empfangen der
Unterbrechung erfüllt wird, ein Unterbrechungsanforderungssignal INTREQ
(INTRQ) 22 zur CPU 10 aus.
-
Wenn die CPU 10 das Unterbrechungsanforderungssignal INTREQ 22 empfängt,
stoppt die CPU eine gerade ausgeführte programmierte Verarbeitung und führt die
Unterbrechungsverarbeitung aus. Damit die CPU 10 nämlich in der Lage ist, die
gestoppte programmierte Verarbeitung erneut zu starten, speichert sie
Informationen des Programmzählers und des Programmstatuswortes zu einem Stapelbereich
der Speichereinheit 2. Zusätzlich erzeugt die CPU ein Unterbrechungs-
Bestätigungssignal INTACK 23 zur Unterbrechungssteuerung 12 und empfängt
durch den Bus 5 von der Unterbrechungssteuerung 12 Vektorinformationen für die
Unterbrechungsanforderung mit dem höchsten Prioritätspegel unter den
gegenwärtig auftretenden Unterbrechungsanforderungen. Auf der Basis der
empfangenen Vektorinformationen verzweigt die CPU 10 zur Anfangsadresse eines
Unterbrechungsverarbeitungsprogramms, das zuvor in der Speichereinheit 2 eingestellt
ist. Danach wird das verzweigte Unterbrechungsverarbeitungsprogramm
ausgeführt.
-
Wenn das verzweigte Unterbrechungsverarbeitungsprogramm beendet ist, wird ein
Rücksprungbefehl IRET ausgeführt, so daß das Programm gestoppt wird, weil die
Unterbrechungsverarbeitung wieder begonnen wird. Für diesen Zweck werden die
Informationen des Programmzählers und des Programmstatuswortes, die im
Stapelbereich der Speichereinheit 2 gespeichert sind, zurückgebracht oder erneut
gespeichert.
-
Andererseits löscht die Unterbrechungssteuerung 12 dann, wenn der WDT-
lnitialisierungsbefehl durch die CPU 10 ausgeführt wird, das WDTCLR-Signal 24
nicht nur zum Überwachungs-Zeitgeber zugeführt, sondern auch zur
Unterbrechungssteuerung 12, und in Reaktion auf das WDTCLR-Signal 24 löscht die
Unterbrechungssteuerung 12 die in der Unterbrechungssteuerung 12 intern gehaltene
WDT-Unterbrechungsanforderung. Bei dieser Anordnung wird nach der
Ausführung des WDT-Initialisierungsbefehls die Operation nie zum WDT-
Unterbrechungsprog ramm verzweigt, bis im Überwachungs-Zeitgeber 11 ein
nächster Überlauf auftritt.
-
Nun wird eine interne Operation der Unterbrechungssteuerung 12 unter
Bezugnahme auf das Diagramm einer logischen Schaltung der Fig. 2 beschrieben, die
eine interne Struktur der Unterbrechungssteuerung 12 darstellt. Zur Vereinfachung
der Klärung ist angenommen, daß die
Unterbrechungsverarbeitungsanforderungen, die durch die Unterbrechungssteuerung 12 gesteuert werden, vier sind,
nämlich drei normale Unterbrechungsverarbeitungsanforderungen 25a, 25b und 25c,
und die WDT-Unterbrechungsverarbeitungsanforderung INTWDT 21.
-
Die Unterbrechungssteuerung 12 enthält vier Unterbrechungsanforderungs-Flags
30a, 30b, 30c und 30d zum jeweiligen einzelnen Speichern einer nicht
maskierbaren Unterbrechungsverarbeitungsanforderung 25a, der WDT-
Unterbrechungsverarbeitungsanforderung INTWDT 21 und von maskierbaren
Unterbrechungsverarbeitungsanforderungen 25b und 25c, und Masken-Flags 31b und
31c zum jeweiligen einzelnen Sperren und Freigeben der maskierbaren
Unterbrechungsverarbeitungsanforderungen 25b und 25c. Weiterhin enthält die
Unterbrechungssteuerung 12 eine Prioritätspegelsteuereinheit 33 zum Durchführen einer
Prioritätspegelsteuerung zwischen den Unterbrechungsverarbeitungsanforderun
gen 25a, 25b und 25c und der WDT-Unterbrechungsverarbeitungsanforderung
INTWDT 21, um eine Unterbrechungsverarbeitungsanforderung mit dem höchsten
Prioritätspegel auszuwählen, und eine Vektorerzeugungseinheit 34 zum Erzeugen
einer Vektorinformation entsprechend einer ausgewählten der
Unterbrechungsverarbeitungsanforderungen 25a, 25b und 25c und der WDT-
Unterbrechungsverarbeitungsanforderung INTWDT 21. Die erzeugte
Vektorinformation wird zum Bus 5 über einen gesteuerten Pufferspeicher 35 ausgegeben, der
aktiviert wird, wenn das Unterbrechungsanforderungs-Bestätigungssignal 23 aktiv
ist.
-
Insbesondere hat das Unterbrechungsanforderungs-Flag 30a einen gesetzten
Eingang 5, der angeschlossen ist, um eine Unterbrechungsverarbeitungsanforderung
25a zu empfangen, und einen Q-Ausgang, der mit einem Eingang eines Latchs
331a der Prioritätspegel-Steuereinheit 33 verbunden ist. Ein Auswahlsignal 35a,
das vom Latch 331a ausgegeben wird, wird mit der Vektorerzeugungseinheit 34
und einem Eingang eines UND-Gatters 301a verbunden, das einen Ausgang
aufweist, der mit einem Rücksetzeingang R des Flags 30a verbunden ist.
-
Das Unterbrechungsanforderungs-Flag 30d hat einen Setzeingang 5, der
angeschlossen ist, um die Unterbrechungsverarbeitungsanforderung INTWDT 21 zu
empfangen, und einen Q-Ausgang, der mit einem Eingang eines nicht
invertierenden Eingangs eines UND-Gatters 332d der Prioritätspegel-Steuereinheit 33
verbunden ist. Das UND-Gatter 332d hat einen invertierenden Eingang, der mit dem
Q-Ausgang des Flags 30a verbunden ist, und ein Ausgang des UND-Gatters 332d
ist mit einem Eingang eines Latchs 331d des Prioritätspegel-Steuereinheit 33
verbunden. Ein vom Latch 331d ausgegebenes Auswahlsignal 35d ist mit der
Vektorerzeugungseinheit 34 und einem Eingang eines UND-Gatters 301d verbunden,
das einen Ausgang hat, der über ein ODER-Gatter 302 mit einem Rücksetzeingang
R des Flags 30d verbunden ist. Das ODER-Gatter 302 empfängt das WDTCLR-
Signal 24 an seinem anderen Eingang.
-
Das Unterbrechungsanforderungs-Flag 30b hat einen Setzeingang 5, der
angeschlossen ist, um die Unterbrechungsverarbeitungsanforderung 25b zu
empfangen, und einen Q-Ausgang, der mit einem Eingang eines nicht invertierenden
Eingangs eines UND-Gatters 334 der Prioritätspegel-Steuereinheit 33 verbunden ist.
Das UND-Gatter 334b hat einen anderen nichtinvertierenden Eingang, der
angeschlossen ist, um das EI-Signal 26 zu empfangen, und einen invertierenden
Eingang, der mit dem Masken-Flag 31b verbunden ist. Ein Ausgang des UND-Gatters
334b ist mit einem nichtinvertierenden Eingang eines UND-Gatters 332b verbun
den. Das UND-Gatter 332b hat einen invertierenden Eingang, der mit einem
Ausgang eines ODER-Gatters 333d verbunden ist, das ein Paar von Eingängen hat,
die jeweils mit den Q-Ausgängen der Flags 30a und 30d verbunden sind. Ein
Ausgang des UND-Gatters 332b ist mit einem Eingang eines Latchs 331b der
Prioritätspegel-Steuereinheit 33 verbunden. Ein vom Latch 331b ausgegebenes
Auswahisignal 35b ist mit der Vektorerzeugungseinheit 34 und einem Eingang eines
UND-Gatters 301b verbunden, das einen Ausgang hat, der mit einem
Rücksetzeingang R des Flags 30b verbunden ist.
-
Das Unterbrechungsanforderungs-Flag 30c hat einen Setzeingang S, der
angeschlossen ist, um die Unterbrechungsverarbeitungsanforderung 25c zu empfangen,
und einen Q-Ausgang, der mit einem Eingang eines nichtinvertierenden Eingangs
eines UND-Gatters 334c der Prioritätspegel-Steuereinheit 33 verbunden ist. Das
UND-Gatter 334c hat einen weiteren nichtinvertierenden Eingang, der
angeschlossen ist, um das EI-Signal 26 zu empfangen, und einen invertierenden Eingang, der
mit dem Masken-Flag 31c verbunden ist. Ein Ausgang des UND-Gatters 334c ist
mit einem nichtinvertierenden Eingang eines UND-Gatters 332c verbunden. Das
UND-Gatter 332c hat einen invertierenden Eingang, der mit einem Ausgang eines
ODER-Gatters 333b verbunden ist, das ein Paar von Eingängen hat, die jeweils mit
dem Ausgang des UND-Gatters 334b und dem Ausgang des ODER-Gatters 333d
verbunden sind. Ein Ausgang des UND-Gatters 332c ist mit einem Eingang eines
Latchs 331c der Prioritätspegel-Steuereinheit 33 verbunden. Ein Auswahlsignal
35c, das vom Latch 331c ausgegeben wird, ist mit der Vektorerzeugungseinheit 34
und einem Eingang eines UND-Gatters 301c verbunden, das einen Ausgang hat,
der mit einem Rücksetzeingang R des Flags 30b verbunden ist.
-
Der Ausgang des UND-Gatters 334c und der Ausgang des ODER-Gatters 333b
sind mit einem Paar von Eingängen eines ODER-Gatters 333c verbunden, welches
wiederum einen Ausgang hat, der das Unterbrechungsanforderungssignal INTRQ
22 zur CPU 10 erzeugt. Der jeweils andere Eingang der UND-Gatter 301a, 301b,
30c und 301d ist angeschlossen, um das Unterbrechungs-Bestätigungssignal 23
zu empfangen.
-
Zusätzlich arbeiten die internen Latchs 331a bis 331d zum Zwischenspeichern
ihrer Eingaben nicht nur dann, wenn ihre Eingabe auf "1" aktiviert ist, sondern auch
dann, wenn das WDTCLR-Signal 24 auf "1" aktiviert ist.
-
Bei diesem Beispiel sind durch die Wirkung der Struktur der logischen Schaltung,
die aus den UND-Gattern 332d, 332b und 332c und den ODER-Gattern 333d und
333b aufgebaut ist, die Prioritätspegel der
Unterbrechungsverarbeitungsanforderungen 25a, 25b und 25c und der WDT-Unterbrechungsverarbeitungsanforderung
INTWDT 21 fest. Die Reihenfolge der Prioritätspegel ist nämlich folgendermaßen:
(die Unterbrechungsverarbeitungsanforderung 25a) > (die WDT
Unterbrechungsverarbeitungsanforderung 1 NTWDT 21) > (die
Unterbrechungsverarbeitungsanforderung 25b) > (die Unterbrechungsverarbeitungsanforderung 25c).
Zusätzlich sind die maskierbaren Unterbrechungsanforderungen in einem
Bestätigungsfreigabezustand (d.h. das EI-Signal 26 ist aktiv und die Masken-Flags 31b
und 31c sind nicht gesetzt.).
-
Zuerst wird eine Operation bei dem Fall erklärt, bei dem eine Vielzahl von
Verarbeitungsanforderungen gleichzeitig auftritt. Wenn die
Unterbrechungsverarbeitungsanforderung INTWDT 21 und die Unterbrechungsverarbeitungsanforderung 25b
gleichzeitig auftreten, werden die Unterbrechungsanforderungs-Flags 30d und 30b
auf "1 " gesetzt, und dies wird der Prioritätspegel-Steuereinheit 33 berichtet. Wie es
oben angegeben ist, wird das Auswahisignal 35d deshalb, weil (die WDT-
Unterbrechungsverarbeitungsanforderung INTWDT 21) > (die
Unterbrechungsverarbeitungsanforderung 25b), auf "1" aktiviert, welches zur Vektorerzeugungseinheit
34 zugeführt wird und auch in Richtung zum Unterbrechungsanforderungs-Flag
30d rückgekoppelt wird. Gleichzeitig wird das Unterbrechungsanforderungssignal
INTRQ 22 zur CPU 10 zugeführt. Zu dieser Zeit sind alle anderen Auswahlsignale
35a, 35b und 35c inaktiv, d.h. "0".
-
Wenn das Unterbrechungsanforderungssignal INTRQ 22 durch die CPU 10
bestätigt wird, wird das Unterbrechungs-Bestätigungssignal 23 zur
Unterbrechungssteuerung 12 zugeführt. In Reaktion auf dieses aktive Unterbrechungs-
Bestätigungssignal 23 wird das aktive Auswahlsignal 35d durch sein zugehöriges
UND-Gatter 301d geführt und an den Rücksetzeingang R des
Unterbrechungsanforderungs-Flags 30d angelegt, um den Q-Ausgang des
Unterbrechungsanforderungs-Flags 30d auf "0" rückzusetzen.
-
Andererseits gibt die Vektorerzeugungseinheit 34 eine Vektorinformation
entsprechend der Unterbrechungsanforderung INTWDT 21 über den Bus zur CPU aus, da
der Steuer-Pufferspeicher 35 durch das Unterbrechungs-Bestätigungssignal 23 in
einen aktivierten Zustand versetzt wird.
-
Übrigens werden die Signalpegel der Auswahlsignale 25a bis 25d normalerweise in
den internen Latches 331a bis 331d der Prioritätspegel-Steuereinheit 33 gehalten,
nachdem das Unterbrechungsanforderungssignal INTRQ 22 erzeugt ist, bis das
Unterbrechungs-Bestätigungssignal INTACK 24 durch die CPU 10 erzeugt wird.
Daher wird mit der Unterbrechungsempfangsverarbeitung für die
Unterbrechungsverarbeitungsanforderung 25 aufgehört oder sie wird aufrechterhalten.
-
Als nächstes wird eine Operation bei dem Fall beschrieben, bei dem eine Vielzahl
von Unterbrechungsanforderungen zu Zeiten auftritt, die unterschiedlich
voneinander sind. Es ist angenommen, daß die Unterbrechungsverarbeitungsanforderung
25c zuerst auftritt, das Unterbrechungsanforderungs-Flag 30c auf "1" gesetzt ist,
was der Prioritätspegel-Steuereinheit 33 mitgeteilt wird. In der Prioritätspegel-
Steuereinheit 33 wird das Auswahlsignal 35c auf "1" aktiviert, was zur
Vektorerzeugungseinheit 34 und in Richtung zum Unterbrechungsanforderungs-Flag 30c
übertragen wird, und das Unterbrechungsanforderungssignal INTRQ 22 wird zur
CPU 10 ausgegeben. Zur gleichen Zeit sind alle anderen Auswahlsignale 35a, 35b
und 35d inaktiv, d.h. "0".
-
Danach wird dann, wenn das INTWDT-Signal 21 erzeugt wird, das
Unterbrechungsanforderungs-Flag 30d auf "1" gesetzt, was der Prioritätspegel-
Steuereinheit 33 mitgeteilt wird. Wie es oben angegeben ist, ist die Beziehung der
Prioritätspegel folgendermaßen: (die WDT-
Unterbrechungsverarbeitungsanforderung INTWDT 21) > (die
Unterbrechungsverarbeitungsanforderung 25c), aber da die Unterbrechungsanforderung 22 der CPU
10 mitgeteilt worden ist, werden die Auswahlsignale 35a bis 35d durch die internen
Latchs 331a bis 331d aufrechterhalten, bis das Unterbrechungs-Bestätigungssignal
23 zur Unterbrechungssteuerung 12 zugeführt wird, nachdem die
Unterbrechungsanforderung 22 bestätigt wurde. Das bedeutet, daß die Auswahlsignale 35a bis
35d unverändert bleiben. Demgemäß wird die
Unterbrechungs-Bestätigungsverarbeitung für die Unterbrechungsverarbeitungsanforderung
INTWDT 21 aufrechterhalten.
-
In beiden der oben angegebenen Fälle ist eine Operation zum Löschen der WDT-
Unterbrechung bei einer Ausführung des WDT-Initialisierungsbefehls
folgendermaßen: wenn der WDT-Initialisierungsbefehl ausgeführt wird, gibt die CPU das
WDTCLR-Signal 24 zur Unterbrechungssteuerung 12 aus, so daß das
Unterbrechungsanforderungs-Flag 35d auf "0" rückgesetzt wird.
-
Selbst während der Halteperiode nach der Erzeugung der
Unterbrechungsanforderung INTRQ 22, bis zum Empfang des Unterbrechungs-Bestätigungssignals
INTACK 24, führen die internen Latches 311a bis 331d die
Zwischenspeicheroperation wieder in Reaktion auf das WDTCLR-Signal 24 durch, so daß die internen
Latches 311a bis 331d erneuert werden. Als Ergebnis wird das Auswahisignal 35d
auf "0" deaktiviert, und daher wird das Auftreten der
Unterbrechungsverarbeitungsanforderung LNTWDT 21 gelöscht. Demgemäß wird die WDT-
Unterbrechungsverarbeitung niemals durch die CPU 10 ausgeführt, und die
Empfangssteuerung und die Prioritätspegelsteuerung für die
Unterbrechungsverarbeitungsanforderungen 25a bis 25c, die andere als die
Unterbrechungsverarbeitungsanforderung INTWDT 21 sind, werden durchgeführt.
-
Wie es oben angegeben ist, ist das oben angegebene Ausführungsbeispiel so
konfiguriert, daß dann, wenn die CPU den WDT-Initialisierungsbefehl ausführt, die
Unterbrechungssteuerung die WDT-Unterbrechungsanforderung automatisch
löscht. Daher wird dann, wenn die WDT-Unterbrechungsanforderung gleichzeitig
mit einer anderen Unterbrechungsanforderung auftritt, wenn der WDT-
Initialisierungsbefehl zu Beginn des zuvor verzweigten
Unterbrechungsverarbeitungsprogramms ausgeführt wird, die Operation niemals zum WDT-
Unterbrechungsverarbeitungsprogramm verzweigt, und zwar selbst dann, wenn der
Überlauf bereits erzeugt ist und die Unterbrechungsverarbeitungsanforderung
mitgeteilt worden ist.
-
In Fig. 3 ist ein Blockdiagramm eines wesentlichen Teils eines weiteren
Ausführungsbeispiels des Mikrocomputers gemäß der vorliegenden Erfindung gezeigt.
-
Das zweite Ausführungsbeispiel unterscheidet sich vom ersten
Ausführungsbeispiel nur durch das Verfahren, durch das der durch die CPU auszuführende WDT-
Initialisierungsbefehl und das WDTCLR-Signal erzeugt werden. Daher sind
Elementen, die gleich jenen sind, die in Fig. 1 gezeigt sind, dieselben Bezugszeichen
zugeordnet und ihre Erklärung wird weggelassen.
-
Unterschiedlich vom ersten Ausführungsbeispiel, bei dem der WDT-
Initialisierungsbefehl in der CPU 10 ausgeführt wird und das WDTCLR-Signal
durch die CPU 10 erzeugt wird, ist ein Mikrocomputer 201 des zweiten
Ausführungsbeispiels derart, daß eine CPU 110 vorbestimmte Daten in ein internes
Steuerregister 101 eines Überwachungs-Zeitgebers 111 unter Verwendung eines
allgemeinen Befehis schreibt und ein Inhalt des internen Steuerregisters 101 durch
einen internen Decoder 112 decodiert wird, was einen Überwachungs-
Zeitgeberzähler 103 initialisiert. Der Decoder 112 erzeugt auch ein WDTCLR-
Signal 124. Der Überwachungs-Zeitgeberzähler 103 erzeugt die WDT-
Unterbrechungsverarbeitungsanforderung INTWDT 121, wenn ein Überlauf im
Überwachungs-Zeitgeberzähler 103 auftritt.
-
Somit ist es nicht erforderlich, daß die CPU 110 in sich eine Schaltung zum
Ausführen eines Befehls nur für den WDT-Initialisierungsbefehl hat. Daher ist es
möglich, den Überwachungs-Zeitgeber 111 sogar durch Verwenden der CPU des
Mikrocomputers zu steuern, die einen Befehlssatz hat, der den Befehl für nur den
WDT-Initialisierungsbefehl nicht enthält. Dies ist auf eine gebräuchliche LSI
(Mikrocomputer) anwendbar, in welcher ein CPU-Block allgemein ausgeführt ist
und eine periphere Schaltung mit dem Überwachungs-Zeitgeber individuell
aufgebaut ist.
-
Beim oben angegebenen Ausführungsbeispiel ist das WDT-
Unterbrechungsanforderungs-Flag in der Unterbrechungssteuerung angeordnet.
Jedoch kann ein ähnlicher Effekt selbst dann erwartet werden, wenn eine
Modifikation in bezug auf den Effekt durchgeführt wird, daß ein Flag zum Speichern einer
Verarbeitungsanforderung im Überwachungs-Zeitgeber intern vorgesehen ist und
ein im Überwachungs-Zeitgeber intern vorgesehenen Flag gehaltenes
Unterbrechungsanforderungssignal zur Unterbrechungssteuerung übertragen wird. Dies
wird eine sogenannte Pegelunterbrechungssteuerung genannt.
-
Wie es aus der obigen Erklärung zu sehen ist, ist der Mikrocomputer gemäß der
vorliegenden Erfindung derart, daß dann, wenn die WDT-
Unterbrechungsanforderung mit einer anderen Unterbrechungsanforderung
konkurrierend auftritt, wenn der WDT-Initialisierungsbefehl zu Beginn des zuvor
verzweigten Unterbrechungsverarbeitungsprogramms ausgeführt wird, die Operation
selbst dann nie zum WDT-Unterbrechungsverarbeitungsprogramm verzweigt wird,
wenn der Überlauf bereits erzeugt worden ist und die
Unterbrechungsverarbeitungsanforderung mitgeteilt worden ist.
-
Daher ist es bei einem Anwendersystem zum Erfassen aus einer Unterbrechung
eines externen Anschlusses, daß die Zufuhr einer elektrischen Leistung zum
System gestoppt ist, und zum Ausführen eines Sicherns von Steuerdaten und einer
Änderung von Anschlußtorausgängen, möglich, den Nachteil zu vermeiden, daß
die Verarbeitung zum Ausschalten elektrischer Leistung nicht durchgeführt wird,
weil die Operation zum Rücksetzprogramm verzweigt wird, wenn die WDT-
Unterbrechungsverarbeitungsanforderung auftritt. Demgemäß kann eine geeignete
Verarbeitung durchgeführt werden.
-
Zusätzlich ist es in dem Fall, daß dann, wenn die WDT-
Unterbrechungsverarbeitungsanforderung auftritt, die Operation nicht zum
Rücksetzprogramm verzweigt wird, nicht mehr nötig, das System durch vorheriges
Berechnen der Verarbeitungszeit der WDT-Unterbrechung als verbrauchte Zeit zu
entwickeln. Daher kann das Unterbrechungsverarbeitungsprogramm der
Unterbrechung eines externen Anschlusses in einer minimalen Zeit beendet werden.
-
Somit ist die Erfindung unter Bezugnahme auf die spezifischen
Ausführungsbeispiele gezeigt und beschrieben worden. Es sollte jedoch beachtet werden, daß die
vorliegende Erfindung keineswegs auf die Details der dargestellten Strukturen
beschränkt ist, sondern daß Änderungen und Modifikationen innerhalb des
Schutzumfangs der beigefügten Ansprüche durchgeführt werden können.