Hintergrund der Erfindung
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft eine Unterbrechungssteuerung, und insbesondere
eine Unterbrechungssteuerung zur Verwendung in einem Mikrocomputer, die die
bevorzugte Reihenfolge oder den Prioritätspegel zum Unterbrechen von Anfragen
bestimmen kann.
Beschreibung des zugehörigen Standes der Technik
-
Ein Mikrocomputer enthält eine Unterbrechungssteuerung zum Verarbeiten
verschiedener Unterbrechungsanfragen. Eine typische herkömmliche
Unterbrechungssteuerung enthält einen Abtastzähler, der eine gegebene Anzahl von
Prioritätspegeln aufeinanderfolgend abtastet, um eine derartige Prioritätspegel-
Unterbrechungssteuerung zu realisieren, daß dann, wenn gerade eine
Unterbrechungsverarbeitung mit niedrigem Prioritätspegel ausgeführt wird, durch
Unterbrechen eine weitere Unterbrechungsverarbeitung mit hohem Prioritätspegel
ausgeführt werden kann, aber dann, wenn gerade eine Unterbrechungsverarbeitung mit
hohem Prioritätspegel ausgeführt wird, keine weitere Unterbrechungsverarbeitung
mit niedrigerem Prioritätspegel ausgeführt werden kann.
-
Jedoch wird bei der herkömmlichen Unterbrechungssteuerung, da die
Prioritätspegel vom Abtastzähler aufeinanderfolgend abgetastet werden, die Zeit für einen
Abtastoperations-Zyklus um so länger, je größer die Anzahl von Prioritätspegeln ist.
Bei letzten hochentwickelten Mikrocomputern ist die Anzahl von Unterbrechungs-
Anfragesignalen groß, und die Anzahl von Prioritätspegeln wird auch groß, um eine
leistungsfähige Steuerung zu realisieren. Als Ergebnis wird eine maximale Zeit ab
dem Moment, zu dem ein Unterbrechungssignal erzeugt wird, bis zu dem Moment,
zu dem das Unterbrechungssignal bestätigt wird, lang. Dies ist nicht für
Mikrocomputer geeignet, die für eine Echtzeitsteuerung geeignet sind.
Zusammenfassung der Erfindung
-
Demgemäß ist es eine Aufgabe der vorliegenden Erfindung, eine
Unterbrechungssteuerung zu schaffen, die den oben angegebenen Nachteil der herkömmlichen
überwindet.
-
Es ist eine weitere Aufgabe der vorliegenden Erfindung, eine
Unterbrechungssteuerung zu schaffen, die verschiedene Prioritätspegel von Unterbrechungsanfragen
selbst dann mit hoher Geschwindigkeit steuern kann, wenn die Anzahl von
Prioritätspegeln größer geworden ist.
-
Die obigen und andere Aufgaben der vorliegenden Erfindung werden gemäß der
vorliegenden Unterbrechung durch eine Unterbrechungssteuerung gelöst, die
folgendes aufweist: eine Vielzahl von n-Bit-Prioritätsbit-Registern zum Zuordnen von
&sub2;n Prioritätspegeln zu einer Vielzahl von Unterbrechungs-Anfragesignalen (wobei n
eine ganze Zahl nicht kleiner als 2 ist), einen Stufenzähler zum sequentiellen und
wiederholten Erzeugen von (n+1) Zeitgabesignalen, die zum Abtasten der
Prioritätspegel der Unterbrechungs-Anfragesignale verwendet werden, ein Register für
einen Prioritätspegel während einer Ausführung zum Speichern des Inhalts des
Prioritätsbit-Registers des Unterbrechungs-Anfragesignals entsprechend einer
gerade ausgeführten Unterbrechungsverarbeitung, eine Unterbrechungs-
Anfragesignal-Steuereinrichtung zum Vergleichen des Inhalts des Registers für
einen Prioritätspegel während einer Ausführung mit Inhalten der Prioritätsbit-Register
der gerade erzeugten Unterbrechungs-Anfragesignale einschließlich des
Prioritätsbit-Registers des Unterbrechungs-Anfragesignals entsprechend der gerade
ausgeführten Unterbrechungsverarbeitung synchron zu den "n" Zeitgabesignalen in
der Reihenfolge des Bits an der höchsten Stelle zum Bit an der niedrigsten Stelle,
wobei die Unterbrechungs-Anfragesignal-Steuereinrichtung arbeitet, um ein
Unterbrechungs-Anfragesignal mit dem Bit höchster Priorität aus den gerade erzeugten
Unterbrechungs-Anfragesignalen zu erfassen, wobei die Unterbrechungs-
Anfragesignal-Steuereinrichtung auch derart arbeitet, daß dann, wenn eine Vielzahl
von Unterbrechungs-Anfragesignalen mit dem Bit höchster Priorität erfaßt werden,
die Unterbrechungs-Anfragesignal-Steuereinrichtung ein Unterbrechungs-
Anfragesignal gemäß einer vorbestimmten Reihenfolge synchron zu einem
Zeitgabesignal auswählt, das den "n" Zeitgabesignalen folgt, und eine Einrichtung zum
Erzeugen eines Unterbrechungsverarbeitungs-Anfragesignals, wenn die
Unterbrechungs-Anfragesignal-Steuereinrichtung ein Unterbrechungs-Anfragesignal mit dem
höchsten Prioritätspegel erfaßt.
-
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 typischen herkömmlichen
Mikrocomputers;
-
Fig. 2 ist ein Blockdiagramm eines typischen herkömmlichen Beispiels der
Unterbrechungssteuerung, die im in Fig. 1 gezeigten Mikrocomputer
eingebaut ist;
-
Fig. 3 ist ein Zeitdiagramm, das eine Operation der in Fig. 2 gezeigten
Unterbrechungssteuerung darstellt;
-
Fig. 4 ist ein Blockdiagramm eines ersten Ausführungsbeispiels der
Unterbrechungssteuerung gemäß der vorliegenden Erfindung;
-
Fig. 5 ist ein logisches Schaltungsdiagramm des bei der in Fig. 4 gezeigten
Unterbrechungssteuerung verwendeten Stufenzählers;
-
Fig. 6 ist ein logisches Schaltungsdiagramm der Unterbrechungs-
Anfragesignal-Steuerung, die bei der in Fig. 4 gezeigten
Unterbrechungssteuerung verwendet wird;
-
Fig. 7 ist ein logisches Schaltungsdiagramm der Bestätigungs-
Unterbrechungs-Anfragesignal-Steuerung, die bei der in Fig. 4
gezeigten Unterbrechungssteuerung verwendet wird;
-
Fig. 8 ist ein Zeitdiagramm zum Darstellen der Operation der in Fig. 4
gezeigten Unterbrechungssteuerung;
-
Fig. 9 ist ein Blockdiagramm eines zweiten Ausführungsbeispiels der
Unterbrechungssteuerung gemäß der vorliegenden Erfindung;
-
Fig. 10 ist ein logisches Schaltungsdiagramm des Stufenzählers, der bei der
in Fig. 9 gezeigten Unterbrechungssteuerung verwendet wird;
-
Fig. 11 ist ein logisches Schaltungsdiagramm der Unterbrechungs-
Anfragesignal-Steuerung, die bei der in Fig. 9 gezeigten
Unterbrechungssteuerung verwendet wird;
-
Fig. 12 ist ein logisches Schaltungsdiagramm der Betätigungs-
Unterbrechungs-Anfragesignal-Steuerung, die bei der in Fig. 9
gezeigten Unterbrechungssteuerung verwendet wird;
-
Fig. 13 ist ein Blockdiagramm eines dritten Ausführungsbeispiels der
Unterbrechungssteuerung gemäß der vorliegenden Erfindung;
-
Fig. 14 ist ein logisches Schaltungsdiagramm des Stufenzählers, der bei der
in Fig. 13 gezeigten Unterbrechungssteuerung verwendet wird;
-
Fig. 15 ist ein logisches Schaltungsdiagramm der Sperrverhinderungs-
Unterbrechungs-Anfragesignal-Steuerung, die bei der in Fig. 13
gezegiten Unterbrechungssteuerung verwendet wird;
-
Fig. 16 ist ein Zeitdiagramm zum Darstellen der Operation der in Fig. 13
gezeigten Unterbrechungssteuerung;
-
Fig. 17 ist ein Blockdiagramm eines vierten Ausführungsbeispiels der
Unterbrechungssteuerung gemäß der vorliegenden Erfindung;
-
Fig. 18 ist ein logisches Schaltungsdiagramm des Stufenzählers, der bei der
in Fig. 17 gezeigten Unterbrechungssteuerung verwendet wird;
-
Fig. 19 ist ein logisches Schaltungsdiagramm der Sperrverhinderungs-
Unterbrechungs-Anfragesignal-Steuerung, die bei der in Fig. 17
gezeigten Unterbrechungssteuerung verwendet wird;
-
Fig. 20 ist ein Blockdiagramm eines fünften Ausführungsbeispiels der
Unterbrechungssteuerung gemäß der vorliegenden Erfindung;
-
Fig. 21 ist ein logisches Schaltungsdiagramm des Stufenzählers, der bei der
in Fig. 20 gezeigten Unterbrechungssteuerung verwendet wird;
-
Fig. 22 ist ein logisches Schaltungsdiagramm der Unterbrechungs-
Anfragesignal-Steuerung, die bei der in Fig. 20 gezeigten
Unterbrechungssteuerung verwendet wird;
-
Fig. 23 ist ein logisches Schaltungsdiagramm der Bestätigungs-
Unterbrechungs-Anfragesignal-Steuerung, die bei der in Fig. 20
gezeigten Unterbrechungssteuerung verwendet wird;
-
Fig. 24 ist ein Zeitdiagramm zum Darstellen der Operation der in Fig. 20
gezeigten Unterbrechungssteuerung;
-
Fig. 25 ist ein Blockdiagramm eines sechsten Ausführungsbeispiels der
Unterbrechungssteuerung gemäß der vorliegenden Erfindung;
-
Fig. 26 ist ein logisches Schaltungsdiagramm des Stufenzählers, der bei der
in Fig. 25 gezeigten Unterbrechungssteuerung verwendet wird;
-
Fig. 27 ist ein logisches Schaltungsdiagramm der Unterbrechungs-
Anfragesignal-Steuerung, die bei der in Fig. 25 gezeigten
Unterbrechungssteuerung verwendet wird;
-
Fig. 28 ist ein logisches Schaltungsdiagramm der Bestätigungs-
Unterbrechungs-Anfragesignal-Steuerung, die bei der in Fig. 25
gezeigten Unterbrechungssteuerung verwendet wird;
-
Fig. 29 ist ein Diagramm eines siebten Ausführungsbeispiels der
Unterbrechungssteuerung gemäß der vorliegenden Erfindung;
-
Fig. 30 ist ein logisches Schaltungsdiagramm des Stufenzählers, der bei der
in Fig. 29 gezeigten Unterbrechungssteuerung verwendet wird;
-
Fig. 31 ist ein logisches Schaltungsdiagramm der Unterbrechungs-
Anfragesignal-Steuerung, die bei der in Fig. 29 gezeigten
Unterbrechungssteuerung verwendet wird;
-
Fig. 32 ist ein logisches Schaltungsdiagramm der Bestätigungs-
Unterbrechungs-Anfragesignal-Steuerung, die bei der in Fig. 29
gezeigten Unterbrechungssteuerung verwendet wird;
-
Fig. 33 ist ein Zeitdiagramm zum Darstellen der Operation der in Fig. 29
gezeigten Unterbrechungssteuerung;
-
Fig. 34 ist ein Blockdiagramm eines achsten Ausführungsbeispiels der
Unterbrechungssteuerung gemäß der vorliegenden Erfindung;
-
Fig. 35 ist ein logisches Schaltungsdiagramm des Stufenzählers, der bei der
in Fig. 34 gezeigten Unterbrechungssteuerung verwendet wird;
-
Fig. 36 ist ein logisches Schaltungsdiagramm der Unterbrechungs-
Anfragesignal-Steuerung, die bei der in Fig. 34 gezeigten
Unterbrechungssteuerung verwendet wird; und
-
Fig. 37 ist ein logisches Schaltungsdiagramm der Bestätigungs-
Unterbrechungs-Anfragesignal-Steuerung, die bei der in Fig. 34
gezeigten Unterbrechungssteuerung verwendet wird.
Beschreibung der bevorzugten Ausführungsbeispiele
-
In Fig. 1 ist ein Blockdiagramm eines typischen herkömmlichen Mikrocomputers
gezeigt. Der gezeigte Mikrocomputer enthält eine CPU (zentrale
Verarbeitungseinheit) 100, einen Speicherblock 200, eine Unterbrechungssteuerung 300 und einen
peripheren Funktionsblock 400, die miteinander durch einen internen Datenbus und
andere Signalleitungen und Busse gekoppelt sind. Ein Befehl wird aus einem
Programmspeicher innerhalb des Speicherblocks 200 ausgelesen und durch die CPU
100 ausgeführt. Andererseits wird der periphere Funktionsblock 400 derart
gesteuert, daß er durch den internen Datenbus auf die CPU 100 zugreift, um Daten zur
CPU zu schreiben und um Daten aus der CPU zu lesen. Jedoch arbeitet der
periphere Funktionsblock 400 unabhängig von der CPU 10.
-
Der periphere Funktionsblock 400 enthält verschiedene Funktionen, wie
beispielsweise einen Zeitgeber, eine serielle Schnittstelle, etc. Wenn der periphere
Funktionsblock 400 einen speziellen Zustand erfaßt, wie beispielsweise dann, wenn der
Zeitgeber einen bestimmten Wert erreicht, oder dann, wenn ein Empfang serieller
Daten beendet worden ist, erzeugt der periphere Funktionsblock 400 ein
Unterbrechungs-Anfragesignal INT, um die CPU 100 über eine Erzeugung des speziellen
Zustandes zu informieren.
-
Das Unterbrechungs-Anfragesignal INT wird der Unterbrechungssteuerung 300
zugeführt. Die Unterbrechungssteuerung 300 untersucht, ob zugelassen wird, daß die
empfangene Unterbrechungsanfrage zur CPU 100 gesendet wird
(Unterbrechungsfreigabe), oder nicht, ob eine weitere Unterbrechungsanfrage
existiert oder nicht, und die bevorzugte Reihenfolge (den Prioritätspegel) der
empfangenen Unterbrechungsanfrage. Wenn eine erforderliche Bedingung erfüllt ist,
überträgt die Unterbrechungssteuerung 300 die Unterbrechungsanfrage zur CPU 100;
d.h. sie gibt ein Unterbrechungsverarbeitungs-Anfragesignal INTRQ zur CPU 100
aus.
-
Wenn die CPU 100 das Unterbrechungsverarbeitungs-Anfragesignal INTRQ
empfängt, gibt die CPU verschiedene Steuersignale CNT mit einem Signal, das anzeigt,
daß die Unterbrechungsanfrage bestätigt ist, zur Unterbrechungssteuerung 300
aus. Zusätzlich unterbricht die CPU, die die Unterbrechungsanfrage bestätigt hat,
eine gerade ausgeführte Verarbeitung und beginnt eine Verarbeitung entsprechend
dem Unterbrechungs-Anfragesignal INT auszuführen, nämlich für eine periphere
Funktionseinheit, die das Unterbrechungs-Anfragesignal INT erzeugt.
-
Hier wird die bevorzugte Reihenfolge des Unterbrechungs-Anfragesignals INT
beschrieben. In dem Fall, daß es eine Vielzahl von Unterbrechungs-Anfragesignalen
INT gibt, werden diese Unterbrechungs-Anfragesignale aufgeteilt in ein
Unterbrechungs-Anfragesignal INT, das ein dringendes Ausführen einer
Unterbrechungsverarbeitung anfordert (dies wird hierin nachfolgend "dringende
Unterbrechungsanfrage" genannt), und in eine weitere Unterbrechungsanfrage INT, für die zugelassen
ist, daß sie später verarbeitet wird (diese wird hierin nachfolgend "gewöhnliche
Unterbrechungsanfrage" gennant). Wenn die dringende Unterbrechungsanfrage
erzeugt wird, wenn gerade eine Verarbeitung für eine gewöhnliche
Unterbrechungsanfrage ausgeführt wird, ist es erforderlich, daß eine Verarbeitung für eine dringende
Unterbrechungsanfrage gegenüber der Verarbeitung für die ausgeführte
gewöhnliche Unterbrechungsanfrage bevorzugt ausgeführt wird, durch Unterbrechen oder
Trennen der Verarbeitung für die gerade verarbeitete gewöhnliche
Unterbrechungsanfrage.
-
Daher ist es nötig, jeder Unterbrechungsanfrage INT einen unterschiedlichen
Prioritätspegel zu geben. In diesem Fall muß die Steuerung mit der Auswirkung
durchgeführt werden, daß eine Verarbeitung für eine Unterbrechungsanfrage, der ein hoher
Prioritätspegel zugeordnet ist, durch Unterbrechen oder Nicht-Fortführen der
Ausführung einer Verarbeitung für eine Unterbrechungsanfrage ausgeführt wird, der ein
niedriger Prioritätspegel zugeordnet ist, wenn gerade die Verarbeitung für die
Unterbrechungsanfrage mit niedrigen Prioritätspegeln ausgeführt wird. Die oben
angegebene Prioritätspegelsteuerung wird in der Unterbrechungssteuerung 300
ausgeführt.
-
In Fig. 2 ist ein Blockdiagramm eines typischen herkömmlichen Beispiels der
Unterbrechungssteuerung 300 gezeigt. Bei dem gezeigten Beispiel ist der Prioritätspegel
in vier Pegel aufgeteilt.
-
In Fig. 2 bezeichnen INT0, INT1, INT2 und INT3 verschiedene Unterbrechungs-
Anfragesignale, die jeweils vom peripheren Funktionsblock 400 zugeführt werden.
Die Unterbrechungs-Anfragesignale INT0, INT1, INT2 und INT3 werden jeweiligen
Unterbrechungs-Anfragesignal-Steuerungen 3I, 3J, 3K und 3L zugeführt. Da die
Unterbrechungs-Anfragesignal-Steuerungen 3I, 3J, 3K und 3L denselben Aufbau
haben, wird im folgenden nur die Unterbrechungs-Anfragesignal-Steuerung 31
beschrieben.
-
Wenn eine Unterbrechungsanfrage erzeugt wird und das Unterbrechungs-
Anfragesignal INT0 auf "1" gebracht wird, wird ein Unterbrechungsanfrage-
Flagregister 32 auf "1" gesetzt. Die CPU 100 bestimmt eine Adresse der
Unterbrechungs-Anfragesignal-Steuerung 31 durch einen internen Adressenbus AD und gibt
Daten zum internen Datenbus 1 aus und erzeugt ein Schreibsignal WE. In Antwort
auf diese Signale bringt eine Schreibsignal-Steuerung 8 ihre Ausgabe WS1 auf "1",
so daß entsprechende Datenstücke, die von der CPU 100 ausgegeben werden,
vom internen Datenbus 1 zu einem Maskenbit-Register 31 und zu Prioritätsbit-
Registern 33A bw. 33B geschrieben werden.
-
Wenn ein Inhalt des Maskenbit-Registers 31 "1" ist, wird eine Ausgabe eines AND-
Gatters AG11 durch einen Inverter IV7 auf "0" festgehalten. Andererseits wird dann,
wenn der Inhalt des Maskenbit-Registers 31 "0" ist, die Ausgabe des AND-Gatters
AG11 durch ein Unterbrechungs-Freigabesignal EI und einen Inhalt des
Unterbrechungsanfrage-Flagregisters 32 bestimmt. Wenn das Unterbrechungs-
Freigabesignal EI "1" ist, wird die Unterbrechungsverarbeitung freigegeben oder
zugelassen.
-
Die Prioritätsbit-Register 33A und 33B bilden Bits, die einen Prioritätspegel des
Unterbrechungs-Anfragesignals INT0 bestimmen. Die Prioritätsbits aus zwei Bits
können vier Prioritätspegel von "0", "1", "2" und "3" bestimmen. "0" zeigt den
höchsten Prioritätspegel und "3" zeigt den niedrigsten Prioritätspegel. Das Prioritätsbit-
Register 33A entspricht einem Bit an einer hohen Stelle und das Prioritätsbit-
Register 33B entspricht einem Bit an einer niedrigen Stelle.
-
Ein Komparator 36 vergleicht unaufhörlich eine Ausgabe eines Abtastzählers 10 mit
dem Inhalt der Prioritätsbit-Register 33A und 33B. Wenn eine Übereinstimmung
erzielt wird, bringt der Komparator 36 seine Ausgabe EQ auf "1". Daher wird dann,
wenn der Inhalt des Maskenbit-Registers 31 "0" ist und das Unterbrechungs-
Freigabesignal EI "1" ist, wenn das Unterbrechungs-Anfragesignal INT0 auf "1"
gebracht ist und wenn die Ausgabe EQ des Komparators 36 auf "1" gebracht ist, eine
Ausgabe RA eines AND-Gatters AG35 auf "1" gebracht, und daher wird eine
Ausgabe eines OR-Gatters OG1 auf "1" gebracht.
-
CLK bezeichnet einen Zeittakt und wird direkt und über einen Inverter IV31 einer
(Zwischen-)Speicherschaltung 9A zugeführt. Die (Zwischen-)Speicherschaltung 9A
speichert die Ausgabe des OR-Gatters OG1 in einer Zeit von "1" des Zeittaktes CLK
(zwischen) und gibt ihren Inhalt in einer Zeit von "0" des Zeittaktes CLK aus.
-
Der Abtastzähler 10 tastet die Prioritätspegel ab. Insbesondere erzeugt der
Abtastzähler 10 aufeinanderfolgend und zyklisch ein Paar von Abtastsignalen SC1 und
SC2, so daß die Prioritätspegel im Normalfall aufeinanderfolgend zyklisch in der
Reihenfolge von "0" T "1" T "2" T "3" T "0"... abgetastet werden. Jedoch dann,
wenn der Inhalt des Abtastzählers 10 mit einer Ausgabe ISPR0 eines Registers für
einen gerade ausgeführten Prioritätspegel 7B übereinstimmt, wird der Abtastzähler
10 gelöscht und beginnt seine Zähloperation erneut von "0" aus. Wenn der Inhalt
des Registers für einen gerade ausgeführten Prioritätspegel 7B "2" ist, tastet der
Abtastzähler 10 in der Reihenfolge von "0" T "1" T "2" T "0"... aufeinanderfolgend
und zyklisch ab. Andererseits hält der Abtastzähler 10 dann, wenn die Ausgabe des
OR-Gatters OG1 "1" ist, seine Zähloperation an und hält daher seinen Zählinhalt.
-
Das Register für einen gerade ausgeführten Prioritätspegel 7B hält den
Prioritätspegel einer Unterbrechungsanfrage entsprechend einer
Unterbrechungsverarbeitung, die gerade durch die CPU 100 ausgeführt wird. Wenn ein Signal OEVC
(das eines der Steuersignale CNT ist, die durch die CPU 100 erzeugt werden) "1"
ist, liest das Register für einen gerade ausgeführten Prioritätspegel 7B die
Ausgaben SC1 und SC2 des Abtastzählers 10. Zu dieser Zeit wird der Inhalt des
Registers für einen gerade ausgeführten Prioritätspegel 7B, der im Register für einen
gerade ausgeführten Prioritätspegel 7B gespeichert worden ist, im Register für
einen gerade ausgeführten Prioritätspegel 7B gehalten, aber ein höherer
Prioritätspegel, der im Register für einen gerade ausgeführten Prioritätspegel 7B gespeichert
ist, und der vom Register für einen gerade ausgeführten Prioritätspegel 7B neu
ausgelesene Prioritätspegel wird als Ausgabe ISPR0 des Registers für einen
gerade ausgeführten Prioritätspegel 7B ausgegeben.
-
Wenn das Signal OEVC ausgegeben wird, wenn die Ausgabe des AND-Gatters
AG35 der Unterbrechungs-Anfragesignal-Steuerungen 3I bis 3L auf "1" gebracht
wird, wird eine entsprechende Unterbrechungsvektoradresse von einer
Vektoradressentabelle 5 über einen Ausgangspuffer 6 zum internen Datenbus 1
ausgelesen. Die CPU 100 untersucht die Art des Unterbrechungs-Anfragesignals auf der
Basis der Unterbrechungsvektoradresse.
-
Wenn ein Signal CLRIF, das eines der Steuersignale CNT der CPU 100 ist, auf "1"
gebracht wird, wird eine Ausgabe einer AND-Schaltung AG 34 auf "1" gebracht, und
daher wird das Unterbrechungsanfrage-Flagregister 32 auf "0" rückgesetzt
Übrigens wird ein Rücksetzsignal RESET zum Initialisieren der
Unterbrechungssteuerung 300 verwendet. Wenn das Rücksetzsignal RESET auf "1" gebracht wird, wird
das Unterbrechungsanfrage-Flagregister 32 auf "0" gebracht, und das Maskenbit-
Register 31 wird auf "1" gebracht. Die Prioritätsbit-Register 33A und 33B werden auf
"1,1" gebracht, und das Register für einen gerade ausgeführten Prioritätspegel 7B
wird in einen Zustand initialisiert, in dem keine Unterbrechungsverarbeitung
ausgeführt wird.
-
Nun wird eine Operation unter Bezugnahme auf das Zeitdiagramm der Fig. 3 erklärt,
und zwar unter der Annahme, daß das Maskenbit-Register 31 der vier
Unterbrechungs-Anfragesignal-Steuerungen 31, 3J, 3K und 3L (die jeweils den
Unterbrechungs-Anfragesignalen INT0, INT1, INT2 und INT3 entsprechen) jeweils auf "0",
"0", "0" und "0" gesetzt sind und daß die Prioritätsbit-Register 33A und 33B der vier
Unterbrechungs-Anfragesignal-Steuerungen 3I, 3J, 3K und 3L jeweils auf "1, 0"
(Prioritätspegel "2"), "1, 0" (Prioritätspegel "2"), "0, 0" (Prioritätspegel "0") und "0,1"
(Prioritätspegel "1") gesetzt sind.
-
In Fig. 3 erzeugt dann, wenn das Unterbrechungs-Anfragesignal INT0 zu einer Zeit
des Taktes T2 erzeugt wird, da die Ausgaben SC1 und SC2 des Abtastzählers 10
zur Zeit T4 den Prioritätspegel "2" zeigen, der Komparator 36 das Koinzidenzsignal
EQ von "1", und die Ausgabe RA des AND-Gatters AG 35 wird auf "1" gebracht. Als
Ergebnis wird die Ausgabe des OR-Gatters OG1 auf "1" gebracht, und daher wird
der Inhalt des Abtastzählers 10 beim Pegel "2" angehalten. Zur Zeit T5 wird das
Unterbrechungsverarbeitungs-Anfragesig nal INTRQ auf "1" gebracht. Die
Unterbrechungsanfrage INT0 wird nämlich bestätigt, und die Unterbrechungsverarbeitung
wird bei der CPU 100 angefordert. In Übereinstimmung mit dem
Unterbrechungsverarbeitungs-Anfragesignal INTRQ bringt die CPU 100 das Signal OEVC zur Zeit
T6 auf "1". Zur Zeit T7 zeigt die Ausgabe ISPR0 des Registers für einen gerade
ausgeführten Prioritätspegel 7B den Prioritätspegel "2".
-
Hier wird dann, wenn die CPU 100 das Signal CLRIF auf "1" bringt, der Inhalt des
Unterbrechungsanfrage-Flagregisters 32 gelöscht. Demgemäß werden die
Ausgaben der AND-Gatter AG11 und AG35 auf "0" gebracht, und die Ausgabe des OR-
Gatters OG1 wird auch auf "0" gebracht. Als Ergebnis wird, da zur Zeit T8 der Inhalt
des Abtastzählers 10 mit der Ausgabe ISPR0 des Registers für einen gerade
ausgeführten Prioritätspegel 7B übereinstimmt, der Abtastzähler gelöscht, und er
beginnt die Abtastoperation erneut vom Prioritätspegel "0" aus.
-
Zur Zeit T10 wird dann, wenn das Unterbrechungs-Anfragesignal INT2 erzeugt wird,
da zur Zeit T11 die Ausgaben SC1 und SC2 des Abtastzählers 10 mit dem Inhalt
der Prioritätsbit-Register 33A und 33B in der Unterbrechungs-Anfragesignal-
Steuerung 3K übereinstimmen, das Unterbrechungsverarbeitungs-Anfragesignal
INTRQ auf "1" gebracht, und daher wird die Unterbrechungsanfrage INT2 des
Prioritätspegels "0" bestätigt. Als Ergebnis wird der Inhalt des Abtastzählers 10 nach der
Zeit T11 auf "0" fixiert.
-
Danach erzeugt selbst dann, wenn das Unterbrechungs-Anfragesignal INT3 zur Zeit
T14 erzeugt wird, da der Inhalt des Abtastzählers 10 "0" ist, der Komparator 36 in
der Unterbrechungs-Anfragesignal-Steuerung 3L kein Koinzidenzsignal EQ, und
daher wird nicht bestätigt, daß das Unterbrechungs-Anfragesignal INT3
(Prioritätspegel "3") einen Prioritätspegel hat, der niedriger als jener des
Unterbrechungs-Anfragesignals INT2 (Prioritätspegel "3") ist, für welchen die Verarbeitung
gegenwärtig ausgeführt wird.
-
Wenn die Unterbrechungsverarbeitung beendet ist, erzeugt die CPU 100 das Signal
CLRIP. Wenn die CPU 100 zur Zeit T15 CLRIP auf "1" bringt, setzt das Register für
einen gerade ausgeführten Prioritätspegel 7B zur Zeit T16 den Prioritätspegel "0"
zurück, der gegenwärtig zum Abtastzähler 10 ausgegeben wird, und gibt den
Prioritätspegel "2" genau vor dem Prioritätspegel "2" aus. Als Ergebnis tastet der
Abtastzähler 10 wieder aufeinanderfolgend in der Reihenfolge von "0" T "1" T "2" T
"0" T ... ab.
-
Wie es aus dem Obigen zu sehen ist, ist die herkömmliche
Unterbrechungssteuerung derart, daß der Abtastzähler 10 die Prioritätspegel für die Unterbrechungs-
Prioritätspegelsteuerung aufeinanderfolgend abtastet, so daß dann, wenn gerade
eine Unterbrechungsverarbeitung mit niedrigem Prioritätspegel ausgeführt wird,
durch eine Unterbrechung eine weitere Unterbrechungsverarbeitung mit hohem
Prioritätspegel ausgeführt werden kann. Jedoch dann, wenn gerade eine
Unterbrechungsverarbeitung mit hohem Prioritätspegel ausgeführt wird, kann keine weitere
Unterbrechungsverarbeitung mit niedrigem Prioritätspegel ausgeführt werden.
-
Jedoch wird bei der herkömmlicen Unterbrechungssteuerung, da die Prioritätspegel
aufeinanderfolgend abgetastet werden, die Zeit für einen Zyklus der Abtastoperation
um so länger, je größer die Anzahl von Prioritätspegeln ist. Bei in letzter Zeit
entwickelten Mikrocomputern ist die Anzahl von Unterbrechungs-Anfragesignalen groß,
und die Anzahl von Prioritätspegeln wird ebenso groß, wie beispielsweise 8 bis 16,
um eine leistungsfähige Steuerung zu realisieren. Wenn der Prioritätspegel auf acht
Pegel aufgeteilt wird, sind acht Zeittakte erforderlich, bis ein Zyklus der
Abtastoperation beendet wird. In diesem Fall erfordert eine Zeit ab dem Moment, zu dem das
Unterbrechungssignal erzeugt wird, bis zu dem Moment, zu dem das
Unterbrechungssignal bestätigt wird, maximal 16 Zeittakte. Diese Zeit wird hierin
nachfolgend "Reaktionszeit" genannt. Demgemäß wird die oben angegebene
herkömmliche
Unterbrechungssteuerung für Mikrocomputer ungeeignet, die für eine
Echtzeitsteuerung geeignet sind, da die Reaktionszeit lang ist.
Ausführungsbeispiel 1
-
In Fig. 4 ist ein Blockdiagramm eines ersten Ausführungsbeispiels der
Unterbrechungssteuerung gemäß der vorliegenden Erfindung gezeigt. In Fig. 4 sind
Elemente, die gleich jenen sind, die in den Fig. 1 bis 3 gezeigt sind, die gleichen
Bezugszeichen zugeordnet, und deren Erklärung wird weggelassen. Das bedeutet, daß nur
Teile erklärt werden, die unterschiedlich von der herkömmlichen
Unterbrechungssteuerung sind.
-
In Fig. 4 erzeugt ein Stufenzähler 2 für eine Zeitsteuerung ein Zeitsignal STG1,
STG2, STG3 und STG0 zum Abtasten des Prioritätspegels einer
Unterbrechungsanfrage.
-
Ein Register für einen gerade ausgeführten Prioritätspegel 7 liest den
Prioritätspegel, der von einer Unterbrechungs-Anfragesignal-Steuerung 3A bis 3D ausgegeben
wird, zur Zeit von "1" des Signals OEVC und gibt ein Paar von Ausgangssignalen
ISPR1 und ISPR0 synchron zu einem Zeittakt CLK aus, der neben dem Signal
OEVC auftritt. Das Paar von Ausgangssignalen ISPR1 und ISPR0 wird durch
Codieren des höchsten Prioritätspegels der im Register für einen gerade ausgeführten
Prioritätspegel 7 gespeicherten Prioritätspegel erhalten. Zusätzlich bringt dann,
wenn kein Unterbrechungssignal bestätigt wird, das Register für einen gerade
ausgeführten Prioritätspegel ein Signal ENISPR auf "0". Wenn andererseits ein
Prioritätspegel im Register für einen gerade ausgeführten Prioritätspegel 7 gespeichert
ist, wird das Signal ENISPR auf "1" gebracht. Zusätzlich arbeitet das Register für
einen gerade ausgeführten Prioritätspegel 7 zum Antworten auf ein Signal CLRIP,
um einen aktuellen Prioritätspegel zu löschen und einen Prioritätspegel genau vor
dem aktuellen Prioritätspegel auszugeben. Hier hat das Signal ISPR1 eine
Gewichtung von "2", und das Signal ISPR0 hat eine Gewichtung von "1".
-
Eine (Zwischen-)Speicherschaltung 9 speichert die Ausgabe des OR-Gatters OG1
(zwischen), wenn das Zeitsignal STG3 "1" ist und der Zeittakt CLK "0" ist, und
gelangt dazu, die (zwischen-)gespeicherten Daten in Antwort auf den nächsten
Zeittakt auszugeben, so daß die Ausgabe der (Zwischen-)Speicherschaltung 9 über ein
AND-Gatter AG2 als Unterbrechungsverarbeitungs-Anfragesignal INTRQ zur Zeit
von "1" des Zeitsignals STG0 ausgegeben wird. Die (Zwischen-)Speicherschaltung
9 wird durch ein Rücksetzsignal RESET und ein Signal CLRIF rückgesetzt
-
Drei P-Kanal-MOS-Transistoren Q1 bis Q3 werden leitend gemacht, wenn eine
Ausgabe eines Inverters IV1 "0" wird, d.h. wenn der Zeittakt CLK "1" ist, so daß ein
Signal SLPRH, ein Signal CM1 und ein Signal CM2 jeweils auf eine
Versorgungsspannung von VDD, nämlich auf "1", gebracht werden. Eine Signalleitung für jedes
der Signale, nämlich das Signal SLPRH, das Signal CM1 und das Signal CM2, ist
an einen Kondensator (nicht gezeigt) angeschlossen, der während jeder Periode auf
"1" vorgeladen wird, in der der Takt "1" ist. Das Signal SLPRH ist ein
Vektorunterbrechungs-Anfragesignal, und das Signal CM1 und das Signal CM2 sind
Unterbrechungs-Prioritätspegel-Entscheidungssignale.
-
Ein Ausgangssignal CMOT der Unterbrechungs-Anfragesignal-Steuerung 3D wird
als Eingangssignal CMIN zur Unterbrechungs-Anfragesignal-Steuerung 3C geführt,
und ein Ausgangssignal CMOT der Unterbrechungs-Anfragesignal-Steuerung 3C
wird als Eingangssignal CMIN zur Unterbrechungs-Anfragesignal-Steuerung 3B
geführt. Gleichermaßen wird ein Ausgangssignal CMOT der Unterbrechungs-
Anfragesignal-Steurung 3B als Eingangssignal CMIN zur Unterbrechungs-
Anfragesignal-Steuerung 3A geführt, und ein Ausgangssignal CMOT der
Unterbrechungs-Anfragesignal-Steuerung 3A wird als Eingangssignal CMIN zur
Bestätigungs-Unterbrechungsanfragesteuerung 4 geführt.
-
In Fig. 5 ist ein logisches Schaltungsdiagramm des Stufenzählers 2 gezeigt.
-
In einem Anfangszustand wird dann, wenn das Rücksetzsignal RESET auf "1"
gebracht wird, eine (Zwischen-)Speicherschaltung L1 zur Zeit von "0" des Zeittaktes
CLK auf "1" initialisiert, und gleichermaßen werden
(Zwischen-)Speicherschaltungen L3 und L5 auf "0" initialisiert, und ein
(Zwischen-)Speicher vom RS-Typ L7 wird auf "0" initialisiert. Demgemäß wird zur
Zeit von "1" eines nächsten Zeittaktes CLK eine (Zwischen-)Speicherschaltung L2
auf "1" gebracht, und (Zwischen-)Speicherschaltungen L4 und L6 werden auf "0"
gebracht.
-
Wenn der nächste Zeittakt CLK "0" wird, wird das Zeitsignal STG1 von einem AND-
Gatter AGB ausgegeben. Wenn das Rücksetzsignal RESET auf "0" gebracht wird,
wird die Ausgabe "1" der (Zwischen-)Speicherschaltung L2 über ein AND-Gatter
AG3 in die (Zwischen-)Speicherschaltung L3 (zwischen-)gespeichert, wenn der
Zeittakt CLK "0" ist.
-
Gleichermaßen wird dann, wenn der Zeittakt CLK "1" ist, die Ausgabe der
(Zwischen-)Speicherschaitung L3 in die (Zwischen-)Speicherschaltung L4
(zwischen-)gespeichert, so daß die (Zwischen-)Speicherschaltung L4 auf "1"
gebracht wird, was über ein AND-Gatter AG4 in die (Zwischen-)Speicherschaltung L5
(zwischen-)gespeichert wird, wenn der Zeittakt CLK "0" ist.
-
Hier wird unter der Annahme, daß das Signal CLRIF "0" ist und das Signal SLPRH
"0" ist, eine Ausgabe eines Inverters IV5 "1", und eine Ausgabe eines Inverters IV6
wird "0", so daß die (Zwischen-)Speicherschaltung L7 auf "0" gehalten wird. Daher
werden die Ausgaben der AND-Gatter AG6 und AG7 "0", und die Ausgabe des OR-
Gatters OG5 wird "0", so daß dann, wenn der Zeittakt CLK "0" wird, die Ausgabe "0"
des OR-Gatters OG5 über das OR-Gatter OG3 in die (Zwischen-)Speicherschaltung
L1 (zwischen-)gespeichert wird.
-
Als nächstes wird dann, wenn der Zeittakt CLK auf "1" gebracht wird, die
(Zwischen-)Speicherschaltung L2 auf "0" gebracht, und die
(Zwischen-)Speicherschaltung L4 wird auf "1" gebracht. Wenn der Zeittakt CLK "0"
wird, wird das Zeitsignal STG2 auf "1" gebracht.
-
Wenn ein nächster Zeittakt CLK "0" ist, wird die (Zwischen-)Speicherschaltung L5
auf "1" gebracht, und wenn der Zeittakt CLK als nächstes auf "1" gebracht wird, wird
die (Zwischen-)Speicherschaltung L5 auf "0" gebracht, und die
(Zwischen-)Speicherschaltung L6 wird auf "1" gebracht. Wenn der Zeittakt CLK "0"
wird, wird das Zeitsignal STG3 auf "1" gebracht.
-
Wenn das Signal SLPRH "0" ist, wird die (Zwischen-)Speicherschaltung L7
keineswegs auf "1" gebracht, und "1" und "0" werden aufeinanderfolgend und zyklisch
durch die (Zwischen-)Speicherschaltungen L1 und L2, die
(Zwischen-)Speicherschaltungen L3 und L4 und die (Zwischen-)Speicherschaltung
L5 und L6 übertragen, so daß die Zeitsignale STG1, STG2 und STG3
aufeinanderfolgend erzeugt werden.
-
Andererseits wird dann, wenn das Signal SLPRH "1" ist, die Ausgabe des Inverters
IV6 auf "1" gebracht. Daher wird dann, wenn die Ausgabe der
(Zwischen-)Speicherschaltung L6 "1" ist, die (Zwischen-)Speicherschaltung L7 auf
"1" gesetzt, wenn der Zeittakt CLK "0" ist.
-
Wenn der Zeittakt CLK "1" wird, wird eine (Zwischen-)Speicherschaltung L8 auf "1"
gebracht, so daß das Zeitsignal STG0 ausgegeben wird.
-
Wenn das Signal SLPRH "1" ist, da die Ausgabe der AND-Schaltung AG6 "0" wird,
wird die Ausgabe des OR-Gatters OG5 auf "0" gebracht. Daher wird kein Zeitsignal
STG1 erzeugt, bis das Signal CLRIF auf "1" gebracht ist.
-
Danach wird, wenn das Signal CLRIF auf "1" gebracht ist, die Ausgabe des AND-
Gatters AG7 "1". Demgemäß wird dann, wenn der Zeittakt CLK "0" wird, die
(Zwischen-)Speicherschaltung L1 auf "0" gebracht. Andererseits wird dann, wenn
das Signal CLRIF auf "1" gebracht wird, da die Ausgabe des OR-Gatters OG4 auf
"1" gebracht ist, die (Zwischen-)Speicherschaltung L7 rückgesetzt. Demgemäß wird
das Zeitsignal STG1 nach dem Zeitsignal STG0 erzeugt.
-
In Fig. 6 ist ein logisches Schaltungsdiagramm der Unterbrechungs-Anfragesignal-
Steuerung 3A gezeigt. Da die Unterbrechungs-Anfragesignal-Steuerungen 3A bis
3D denselben Aufbau haben, ist nur die Unterbrechungs-Anfragesignal-Steuerung
3A gezeigt.
-
Wenn das Unterbrechungs-Anfragesignal INT0 eingegeben wird, wenn der Inhalt
des Maskenbit-Registers 31 "0" ist und das Unterbrechungs-Freigabesignal EI "1"
ist, wird die Ausgabe des AND-Gatters AG11 auf "1" gebracht.
-
Das Prioritätsbit-Register 33A hat eine Gewichtung von "2" und das Prioritätsbit-
Register 33B hat eine Gewichtung von "1". Wenn das Prioritätsbit-Register 33A "0"
ist, ist die Ausgabe des Inverters IV8 "1".
-
Wenn das Zeitsignal STG1 auf "1" gebracht wird, wird die Ausgabe des AND-
Gatters AG12 zur Zeit von "0" des Zeittaktes CLK auf "1" gebracht, so daß ein N-
Kanal-Tranistor Q4 eingeschaltet wird, um das Signal CM1 auf "0" zu bringen.
-
Wie es oben angegeben ist, ist das Signal CM1 durch Vorladen auf "1" gebracht
worden, wenn der Zeittakt CLK "1" ist. Jedoch dann, wenn die Ausgabe des AND-
Gatters AG12 "1" wird, wird das Signal CM1 auf "1" gebracht. Gleichzeitig wird ein
(Zwischen-)Speicher vom RS-Typ 34 über ein OR-Gatter OG 7 und ein AND-Gatter
AG13 auf "1" gebracht.
-
Als nächstes wird dann, wenn der Zeittakt CLK auf "1" gebracht wird, eine
(Zwischen-)Speicherschaltung 35 auf "1" gebracht. Wenn das Zeitsignal STG3 auf
"1" gebracht wird, wird eine Ausgabe eines AND-Gatters AG17 auf "1" gebracht. Als
Ergebnis wird eine Ausgabe eines Inverters IV14 auf "0" gebracht, und daher wird
ein N-Kanal-MOS-Transistor Q8 nichtleitend gemacht. Daher ist das Eingangssignal
CMIN, das durch einen eingeschalteten P-Kanal-MOS-Transistor Q7 vorgeladen
worden ist, wenn ein vorangehender Zeittakt CLK "0" war, "1". Andererseits wird
dann, wenn das Ausgangssignal CMOT, das über die Bestätigungs-
Unterbrechungsanfragesteuerung 4 auf Erde gelegt wird, "0" ist, eine Ausgabe
eines Inverters IN15 auf "1" gebracht. Demgemäß wird eine Ausgabe eines AND-
Gatters AG18 auf "1" gebracht, und daher wird das Signal RA ausgegeben.
-
Wenn das Prioritätsbit-Register 33B "0" ist und die (Zwischen-)Speicherschaltung
35 "1" ist, wenn das Zeitsignal STG2 "1" wird, wird eine Ausgabe eines AND-
Gatters AG14 zur Zeit von "0" des Zeittaktes CLK auf "1" gebracht. Daher wird ein
N-Kanal-MOS-Transistor Q5 eingeschaltet, um das Signal CM2 auf "0" zu bringen.
Wie es oben angegeben ist, ist das Signal CM2 durch Vorladen auf "1" gebracht
worden, wenn der Zeittakt CLK "1" ist. Jedoch dann, wenn die Ausgabe des AND-
Gatters AG14 "1" wird, wird das Signal CM2 auf "0" gebracht.
-
Eine Ausgabe eines AND-Gatters AG15 wird auf "1" gebracht, wenn das
Prioritätsbit-Register 33B "1", das Signal CM2 "0" und das Zeitsignal STG2 "1" ist. Eine
Ausgabe eines AND-Gatters AG16 wird zur Zeit von "0" des Zeittaktes CLK auf "1"
gebracht, wenn das Signal RA "0", "0" und das Zeitsignal STG3 "1" ist. Wenn die
Ausgabe des AND-Gatters AG15 "1" ist, oder wenn das Rücksetzsignal RESET "1"
ist, oder wenn das Signal CLRIF "1" ist, oder wenn die Ausgabe des AND-Gatters
AG16, wird eine Ausgabe eines OR-Gatters OG8 auf "1" gebracht. Danach wird
dann, wenn ein nächster Zeittakt CLK "0" wird, die RS-
(Zwischen-)Speicherschaltung 34 auf "0" zurückgesetzt.
-
Wenn die Ausgabe des OR-Gatters OG8 "0" ist, wird eine Ausgabe eines Inverters
IV11 auf "1" gebracht. Wenn die Ausgabe der (Zwischen-)Speicherschaltung 35 "1"
ist und das Zeitsignal STG3 "1" ist, wird eine Ausgabe einer NAND-Schaltung NAG1
als "0" ausgegeben, so daß ein N-Kanal-MOS-Transistor Q6 ausgeschaltet wird.
-
Daher wird das Signal SLPRH auf "1" gebracht. Wenn die Ausgabe der
(Zwischen-)Speicherschaltung 35 "1" ist und wenn die Zeitsignale STG1, STG2 und
STG3 "0" sind, nämlich dann, wenn das Zeitsignal STG0 "1" ist, wird die Ausgabe
des AND-Gatters AG19 auf "1" gebracht, so daß die Ausgaben der Prioritätsbit-
Register 33A und 33B über Ausgangspuffer B1 und B2 als Signale PR1 und PR0
ausgelesen werden.
-
In Fig. 7 ist ein logisches Schaltungsdiagramm der Bestätigungs-Unterbrechungs-
Anfragesignal-Steuerung 4 gezeigt. In Fig. 7 arbeiten Elemente, die jenen
entsprechen, die in Fig. 6 gezeigt sind, auf ähnliche Weise, und daher wird deren Erklärung
weggelassen.
-
Die in Fig. 7 gezeigte Schaltung ist von der in Fig. 6 gezeigten Schaltung in
folgenden Punkten unterschiedlich: Die Ausgabe der AND-Schaltung AG11, die in Fig. 6
gezeigt ist, ist das Signal ENISPR, und die Ausgaben der Prioritätsbit-Register 33A
und 33B sind durch die Signale INPR1 und ISPR0 ersetzt. Zusätzlich sind die AND-
Schaltungen AG20, AG19, AG17, AG18 und AG16, die NAND-Schaltung NAG1,
Die N-Kanal-MOS-Transistoren Q6 und Q8, der P-Kanal-MOS-Transistor Q7, die
Inverter IV11, IV14, IV15, IV16, IV13 und das NOR-Gatter NOG1 weggelassen. Das
Signal RA ist weggelassen. Daher ist die in Fig. 7 gezeigte Schaltung in anderen
Punkten dieselbe wie die in Fig. 6 gezeigte Schaltung. Demgemäß entsprechen ein
RS-(Zwischen-)Speicher 41 und ein (Zwischen-)Speicher 42 jeweils dem RS-
(Zwischen-)Speicher 34 und dem (Zwischen-)Speicher 45. AND-Gatter AG21,
AG22, AG23, AG24, AG25, AG26 und AG27 entsprechen den AND-Gattern AG12,
AG13, AG14, AG15, AG17, AG16 und AG18. Ein OR-Gatter OG10 entspricht dem
OR-Gatter OG8, und Inverter IV17, IV18, IV19, IV20, IV21, IV22, IV23 und IV24
entsprechen jeweils den Invertern IV8, IV9, IV10, IV12, IV14, IV15, IV13 und IV16.
N-Kanal-MOS-Transistoren Q9, Q10 und Q11 und ein P-Kanal-Transistor Q12
entsprechen jeweils den N-Kanal-MOS-Transistoren Q4, Q5 und Q8 und dem P-Kanal-
Transistor Q7.
-
Nun wird eine Operation des ersten Ausführungsbeispiels der
Unterbrechungssteuerung unter Bezugnahme auf Fig. 8 erklärt, die das Zeitdiagramm zum
Darstellen der Operation der Unterbrechungssteuerung zeigt.
-
Hier ist wie bei der Operation des herkömmlichen Beispiels angenommen, daß das
Maskenbit-Register 31 der vier Unterbrechungs-Anfragesignal-Steuerungen 3A, 3B,
3C und 3D (die den jeweiligen Unterbrechungs-Anfragesignalen INT0, INT1, INT2
und INT3 entsprechen) jeweils auf "0", "0", "0" und "0" gesetzt ist, und daß die
Prioritätsbit-Register 33A und 33B der vier Unterbrechungs-Anfragesignal-
Steuerungen 3A, 3B, 3C und 3D jeweils auf "1, 0" (Prioritätspegel "2"), "1, 0"
(Prioritätspegel "2"), "0, 0" (Prioritätspegel "0") und "0,1" (Prioritätspegel "1")
gesetzt sind. Zusätzlich ist das Signal EI "1".
-
Die Zeitsignale STG1, STG2, STG3 werden aufeinanderfolgend durch
abwechselndes Wiederholen von "1" und "0" ausgegeben. Zur Zeit T3 wird das
Unterbrechungs-Anfragesignal INT1 auf "1" gebracht und der Inhalt des
Unterbrechungsanfrage-Flagregisters 32 wird auf "1" gebracht. Zu dieser Zeit wird, da noch kein
Unterbrechungs-Anfragesignal bestätigt worden ist und das Ausgangssignal ENISPR
des Registers für einen gerade ausgeführten Prioritätspegel 7 "0" ist, die Ausgabe
des AND-Gatters AG21 der Bestätigungs-Unterbrechungsanfragesteuerung 4 auf
"0" gehalten. Gleichermaßen wird die Ausgabe des AND-Gatters AG12 in den
Unterbrechungs-Anfragesignal-Steuerungen 3A, 3C und 3D jeweils auf "0", "0" bzw.
"0" gehalten. Daher wird das Signal CM1 auf "1" gehalten.
-
Als Ergebnis wird der RS-(Zwischen-)Speicher 34 zur Zeit T4 auf "1" gebracht,
wenn der Zeittakt CLK "0" ist.
-
Zur Zeit T6 wird die Ausgabe der (Zwischen-)Speicherschaltung 35 auf "1"
gebracht, und dann, wenn das Zeitsignal STG3 auf "1" gebracht wird, wird die
Ausgabe des AND-Gatters AG17 auf "1" gebracht, so daß das in einem genau
vorangehenden Zeittakt CLK auf "1" vorgeladene Eingangssignal CMIN durch den
ausgeschalteten MOS-Transistor Q8 isoliert wird. Da die Ausgaben der Inverter IV21 und
IV14 der Bestätigungs-Unterbrechungsanfragesteuerung 4 und der
Unterbrechungs-Anfragesignal-Steuerung 3A "1" sind, werden die Eingaben der Inverter
IV22 und IV15 geerdet, und daher werden die Ausgaben der Inverter IV22 und IV15
auf "1" gebracht. Andererseits wird das Eingangssignal CMIN auf "1" vorgeladen.
Daher wird die Ausgabe des AND-Gatters AG18 auf "1" gebracht. Das Signal RA
wird nämlich auf "1" gebracht. Da das Prioritätsbit-Register 33B "1" ist, wird die
Ausgabe des AND-Gatters AG14 "0", und daher wird das Signal CM2 "1". Da das
Signal CM2 "1" ist und die Ausgabe des Inverters IV12 "0" ist, ist die Ausgabe des
AND-Gatters AG15 "0", und daher wird die RS-(Zwischen-)Speicherschaltung 34
nicht rückgesetzt. Da das Signal RA, das dem Unterbrechungs-Anfragesignal INT1
entspricht, "1" ist, wenn der Zeittakt CLK "0" wird, wird die
(Zwischen-)Speicherschaltung 9 auf "1" gebracht. Zusätzlich wird dann, wenn das
Zeitsignal STG3 "1" wird, die Ausgabe des NAND-Gatters NAG1 auf "0" gebracht,
und daher wird das Signal SLPRH auf "1" gehalten.
-
Als Ergebnis wird zur Zeit T7 das Zeitsignal STG0 erzeugt. Da das Zeitsignal STG0
"1" ist und die Ausgabe der (Zwischen-)Speicherschaltung 9 "1" wird, wird das
Unterbrechungsverarbeitungs-Anfragesignal 1 NTRQ "1", so daß die
Unterbrechungsverarbeitung zur CPU 100 erforderlich ist.
-
Wenn das Signal OEVC von der CPU 100 zur Zeit T9 ausgegeben wird, wird eine
Vektoradresse, die dem Unterbrechungs-Anfragesignal INT1 entspricht, über den
Ausgangspuffer 6 zum internen Datenbus 1 ausgelesen, und der Inhalt der
Prioritätsbit-Register 33A und 33B, der dem Unterbrechungs-Anfragesignal INT1
entspricht, wird durch das Register für einen gerade ausgeführten Prioritätspegel 7
gelesen und (zwischen-)gespeichert.
-
Zur Zeit T10 wird die Ausgabe des Registers für einen gerade ausgeführten
Prioritätspegel 7 auf den Prioritätspegel "2" gebracht, so daß das Ausgangssignal ISPR1
auf "1" gebracht wird und das Ausgangssignal ISPR0 auf "0" gebracht wird, und das
Signal ENISPR wird auf "1" gebracht. Zusätzlich wird das Signal CLRIF von der
CPU 100 ausgegeben. Wenn der Zeittakt "0" wird, wird die RS-
(Zwischen-)Speicherschaltung L7 "0", und die (Zwischen-)Speicherschaltung L8
wird "0".
-
Zur nächsten Zeit T11 wird das Zeitsignal STG1 erzeugt.
-
Wenn das Unterbrechungs-Anfragesignal INT2 zur Zeit T13 erzeugt wird, wird die
Ausgabe des AND-Gatters AG12 in der Unterbrechungs-Anfragesignal-Steuerung
3C zur Zeit T14 auf "1" gebracht. Wenn der Zeittakt CLK "0" wird, wird die RS-
(Zwischen-)Speicherschaltung 34 "1". Da die Ausgabe des AND-Gatters 21 "0" ist
und die Ausgabe des AND-Gatters AG22 "0" ist, wird die RS-
(Zwischen-)Speicherschaltung 41 auf "0" gehalten. Daher werden, ähnlich wie beim
Unterbrechungs-Anfragesignal INT1, die Zeitsignale STG2, STG3 und STG0 zu den
Zeiten T15, T16 und T17 erzeugt. Das Unterbrechungsverarbeitungs-Anfragesignal
INTRQ wird zu einer Zeit (T17), die der Zeit T16 am nächsten ist, auf "1" gebracht.
-
Wenn das Signal OEVC durch die CPU 100 auf "1" gebracht wird, speichert das
Register für einen gerade ausgeführten Prioritätspegel 7 den Prioritätspegel "0"
(zwischen). Zusätzlich gibt der Stufenzähler in Antwort auf das Signal CLRIF die
Zeitsignale ab dem Zeitsignal STG1 aufeinanderfolgend aus.
-
Wenn das Unterbrechungs-Anfragesignal INT3 zur Zeit T19 erzeugt wird, beginnt
eine Operation eines Prüfens des Prioritätspegels des Unterbrechungs-
Anfragesignals INT3 zur Zeit T20.
-
Da die Ausgangssignale ISPR1 und ISPR0 des Registers für einen gerade
ausgeführten Prioritätspegel 7 jeweils "0" und "0" sind, wird die Ausgabe des AND-Gatters
AG21 auf "1" gebracht, und das Signal CM1 wird auf "0" gebracht. Als Ergebnis
wird, da die Ausgabe des AND-Gatters AG13 in der Unterbrechungs-Anfragesignal-
Steuerung bei D auf "0" gehalten wird, die Ausgabe des RS-(Zwischen-)Speichers
34 auf "0" gehalten. Daher wird das Signal RA selbst zur Zeit T22 auf "0" gehalten.
Zusätzlich wird das Unterbrechungsverarbeitungs-Anfragesignal INTRQ zur Zeit
T23 nicht erzeugt. Demgemäß kann das Unterbrechungs-Anfragesignal INT3 mit
dem Prioritätspegel "1" die Unterbrechungsverarbeitugn des Unterbrechungs-
Anfragesignals INT1 mit dem Prioritätspegel "0" nicht unterbrechen.
-
Zur Zeit 23 wird dann, wenn das Signal CLRIP erzeugt wird, der Inhalt des
Registers für einen gerade ausgeführten Prioritätspegel 7 auf den genau vorangehenden
Prioritätspegel "2" zurückgebracht.
-
Zur Zeit T26 wird dann, wenn das Unterbrechungs-Anfragesignal INT0 erzeugt wird,
da die Ausgangssignale ISPR1 und ISPR0 des Registers für einen gerade
ausgeführten Prioritätspegel 7 zur Zeit T27 jeweils "1" und "0" sind, die Ausgabe des
AND-Gatters AG21 "0", und das Signal CM1 wird "1". Die Ausgabe des AND-
Gatters AG22 wird "1", so daß die RS-(Zwischen-)Speicherschaltung 41 gesetzt
wird. Wenn der Zeittakt CLK "1" wird, wird die Ausgabe der
(Zwischen-)Speicherschaltung 42 auf "1" gebracht. Da ISPRQ "0" ist, wird die
Ausgabe des AND-Gatters AG23 auf "0" gehalten, und das Signal CM2 wird auf "1"
gehalten.
-
Demgemäß wird die Ausgabe des AND-Gatters 24 auf "0" gehalten, und die
Ausgabe des OR-Gatters OG10 wird auch auf "0" gehalten, und daher wird die RS-
(Zwischen-)Speicherschaltung 41 nicht rückgesetzt.
-
Da der Prioritätspegel (Pegel 2) des Unterbrechungs-Anfragesignals INT0 derselbe
wie jener des vorangehenden ist, ist auch der Inhalt der Prioritätsbit-Register 33A
und 33B derselbe, und die Unterbrechungs-Anfragesignal-Steuerung 3A arbeitet auf
gleiche Weise, so daß die Ausgabe der (Zwischen-)Speicherschaltung 35 "1" wird.
-
Zur Zeit von "1" des Zeitsignals STG3 werden die Ausgabe des AND-Gatters AG25
der Bestätigungs-Unterbrechungsanfragesteuerung 4 und die Ausgabe des AND-
Gatters AG17 der Unterbrechungs-Anfragesignal-Steuerung 3A jeweils auf "1"
gebracht, und daher werden Ausgaben der Inverter IV21 und IV14 auf "0" gebracht, so
daß die MOS-Transistoren Q12 und Q8 ausgeschaltet werden. Demgemäß wird nur
das geerdete Ausgangssignal CMOT der Bestätigungs-
Unterbrechungsanfragesteuerung 4 "0", und das Eingangssignal CMIN der
Bestätigungs-Unterbrechungsanfragesteuerung 4 und das Eingangssignal CMIN und das
Ausgangssignal CMOT der Unterbrechungs-Anfragesignal-Steuerung 3A werden
auf "1" gehalten, da das Signal CMIN vorgeladen worden ist, wenn der Zeittakt CLK
"1" war.
-
Daher wird die Ausgabe des Inverters IV22 der Bestätigungs-
Unterbrechungsanfragesteuerung 4 "1", und die Ausgabe des AND-Gatters AG27
wird auf "1" gebracht, so daß die Ausgabe des Inverters IV23 auf "0" gebracht wird,
und auch die Ausgabe des AND-Gatters AG26 auf "0" gebracht wird. Demgemäß
wird auch die Ausgabe des OR-Gatters OG10 auf "0" gebracht. In der
Unterbrechungs-Anfragesignal-Steuerung 3A wird andererseits die Ausgabe des Inverters
IVIS "0", und die Ausgabe des AND-Gatters AG18 wird auch "0", so daß das Signal
RA auf "0" gehalten wird. Gleichzeitig wird die Ausgabe des Inverters IV13 auf "1"
gebracht, und die Ausgabe des AND-Gatters AG16 wird auf "1" gebracht, so daß
die Ausgabe des OR-Gatters OG8 auf "1" gebracht und die RS-
(Zwischen-)Speicherschaltung 34 rückgesetzt wird. Das Unterbrechungs-
Anfragesignal INT0 wird nämlich nicht bestätigt, und daher wird kein
Unterbrechungsverarbeitungs-Anfragesignal INTRQ ausgegeben.
-
Danach wird dann, obwohl es im Zeitdiagramm nicht gezeigt ist, wenn keine
Unterbrechungsanfrage nicht bestätigt worden ist, wenn die Unterbrechungs-
Anfragesignale mit dem Prioritätspegel "0" und die Inhalte "0" und "0" der
Prioritätsbit-Register 33A und 33B erzeugt werden, nämlich dann, wenn zwei
Unterbrechungsanfragen mit demselben Prioritätspegel erzeugt werden, die Ausgabe des
AND-Gatters AG17 der Unterbrechungs-Anfragesignal-Steuerungen 3A und 3B zur
Zeit von "1" des Zeitsignals STG3 auf "1" gebracht, und daher wird die Ausgabe des
lnverters IV14 auf "0" gebracht, so daß der MOS-Transistor Q8 in beiden
Unterbrechungs-Anfragesignal-Steuerungen 3A und 3B ausgeschaltet wird.
-
Wie es oben angegeben ist, ist, da zu dieser Zeit keine Unterbrechungsanfrage
nicht bestätigt ist, die Ausgabe des (Zwischen-)Speichers 42 der Bestätigungs-
Unterbrechungsanfragesteuerung 4 "0", und daher ist die Ausgabe des AND-
Gatters AG25 "0", und die Ausgabe des Inverters IV21 ist auch "0". Demgemäß ist
der MOS-Transistor Q21 in einem eingeschalteten Zustand. Somit ist das
Ausgangssignal CMOT der Unterbrechungs-Anfragesignal-Steuerung 3A geerdet und
ist daher auf "0" gebracht. Andererseits sind das Eingangssignal CMIN der
Unterbrechungs-Anfragesignal-Steuerung 3A und die Ausgabe CMOT und das
Eingangssignal CMIN der Unterbrechungs-Anfragesignal-Steuerung 3A "1". Daher wird
nur die Ausgabe des Inverters IV15 der Unterbrechungs-Anfragesignal-Steuerung
3A auf "1" gebracht, und demgemäß wird die Ausgabe des AND-Gatters AG18,
nämlich das Signal RA, das dem Unterbrechungs-Anfragesignal INT0 entspricht, auf
"1" gebracht. Jedoch wird die Ausgabe des Inverters IV15 der Unterbrechungs-
Anfragesignal-Steuerung 3B auf "0" gebracht, und demgemäß wird die Ausgabe des
AND-Gatters AG18, nämlich das Signal RA, das dem Unterbrechungs-
Anfragesignal INT1 entspricht, auf "0" gebracht. Somit hat dann, wenn die
Unterbrechungs-Anfragesignale INT0 und Int1 mit demselben Prioritätspegel erzeugt
werden, das Unterbrechungs-Anfragesignal INT0 eine Priorität über das
Unterbrechungs-Anfragesignal INT1.
-
Wie es oben angegeben ist, wird dann, wenn eine Unterbrechungsverarbeitung mit
hohem Prioritätspegel während des Ausführens einer Unterbrechungsverarbeitung
mit niedrigem Prioritätspegel angefordert wird, der Priroitätspegel in der Reihenfolge
der Gewichtung von einem Prioritätsbit mit großer Gewichtung zu einem Prioritätsbit
mit geringer Gewichtung abgetastet. Daher kann die Unterbrechungssteuerung auf
die Unterbrechungsanfrage mit einer Geschwindigkeit antworten, die höher als jene
der herkömmlichen Unterbrechungssteuerung ist. Zusätzlich wird dann, wenn eine
Unterbrechungsanfrage mit demselben Prioritätspegel wie jenem der gerade
ausgeführten Unterbrechungsverarbeitung erzeugt wird und wenn zwei oder mehrere
Unterbrechungsanfragen mit demselben Prioritätspegel gleichzeitig erzeugt werden,
eine Unterbrechungsanfrage mit hoher Vorgabe (hoch in der durch eine Schaltung
eingestellten bevorzugten Reihenfolge) bestätigt, aber eine Unterbrechungsanfrage
mit niedriger Vorgabe wird nicht bestätigt.
-
Daher kann die oben angegebene Unterbrechungssteuerung verschiedene
Unterbrechungsanfragen mit hoher Geschwindigkeit flexibel bearbeiten.
Ausführungsbeispiel 2
-
In Fig. 9 ist ein Blockdiagramm eines zweiten Ausführungsbeispiels der
Unterbrechungssteuerung gemäß der vorliegenden Erfindung gezeigt.
-
Das zweite Ausführungsbeispiel ist darin unterschiedlich vom ersten
Ausführungsbeispiel, daß der Prioritätspegel in 8 Pegel aufgeteilt ist. Aufgrund dieser
Abänderung enthält das zweite Ausführungsbeispiel einen Stufenzähler 2A, der abgeändert
ist, wie es in Fig. 10 gezeigt ist, und Unterbrechungs-Anfragesignal-Steuerungen 3E
bis 3J, die abgeändert sind, wie es in Fig. 11 gezeigt ist, und eine Bestätigungs-
Unterbrechungsanfragesteuerung 4A, die abgeändert ist, wie es in Fig. 12 gezeigt
ist.
-
In Fig. 9 sind Elementen, die gleich jenen sind, die in Fig. 4 gezeigt sind, dieselben
Bezugszeichen zugeordnet, und deren Erklärung wird weggelassen. Das in Fig. 9
gezeigte zweite Ausführungsbeispiel ist vom in Fig. 4 gezeigten
Ausführungsbeispiel bezüglich des Aufbaus darin unterschiedlich, daß der Stufenzähler 2A ein
Zeitsignal STG4 erzeugt, und daß ein Signal CM3 gemeinsam den Unterbrechungs-
Anfragesignal-Steuerungen 3E bis 3H zugeführt wird.
-
Eine Signalleitung des Signals CM3 ist an einen P-Kanal-MOS-Transistor Q13
angeschlossen, wie die Signalleitungen für das Signal CM1 und das Signal CM2. Die
Unterbrechungs-Anfragesignal-Steuerungen 3E bis 3H erzeugen ein Signal PR2,
das dem Register für einen gerade ausgeführten Prioritätspegel 7 zugeführt wird.
Das Register für einen gerade ausgeführten Prioritätspegel 7 erzeugt ein Signal
ISPR2 zur Bestätigungs-Unterbrechungsanfragesteuerung 4A. Hier hat das Signal
PR2 eine Gewichtung von "4" für das Prioritätsbit und das Signal ISPR2 hat eine
Gewichtung von "4" für den gerade ausgeführten Prioritätspegel.
-
In Fig. 10 sind Elementen, die gleich jenen sind, die in Fig. 5 gezeigt sind, dieselben
Bezugszeichen zugeordnet, und deren Erklärung wird weggelassen. Der in Fig. 10
gezeigte Stufenzähler 2A ist bezüglich des Aufbaus vom in Fig. 5 gezeigten
Stufenzähler 2 darin unterschiedlich, daß AND-Gatter AG28 und AG29, ein Inverter IV25
und (Zwischen-)Speicherschaltungen L9 und L10 hinzugefügt sind, und daß ein
Zeitsignal STG4 als Ausgangssignal hinzugefügt ist. Der Stufenzähler 2A arbeitet
gleich dem Stufenzähler 2, der in Fig. 2 gezeigt ist, aber da das Zeitsignal STG4
neben dem Zeitsignal STG3 erzeugt wird, wird das Abtastsignal in einer Weise von
STG1 T STG2 T STG3 T STG4 ... erzeugt.
-
Fig. 11 zeigt nur die Unterbrechungs-Anfragesignal-Steuerung 3E, da die
Unterbrechungs-Anfragesignal-Steuerungen 3E bis 3H bezüglich des Aufbaus gleich sind. In
Fig. 11 sind Elementen, die gleich jenen sind, die in Fig. 6 gezeigt sind, dieselben
Bezugszeichen zugeordnet, und deren Erklärung wird weggelassen. Die in Fig. 11
gezeigte Unterbrechungs-Anfragesignal-Steuerung 3E ist bezüglich des Aufbaus in
folgenden Punkten von der in Fig. 6 gezeigten Unterbrechungs-Anfragesignal-
Steuerung 3A unterschiedlich: In der in Fig. 11 gezeigten Unterbrechungs-
Anfragesignal-Steuerung 3E sind das Signal CM3, das Zeitsignal STG4, Inverter
IV26 und IV27, AND-Gatter AG30 und AG31, ein N-Kanal-MOS-Transistor Q41, ein
Ausgangspuffer B3 und ein Prioritätsbit-Register 33C hinzugefügt. Zusätzlich ist das
OR-Gatter OG11 auf einen Typ mit 5 Eingängen abgeändert, und das NOR-Gatter
NOG2 ist auf einen Typ mit 4 Eingängen abgeändert.
-
Das NOR-Gatter NOG2 ist angeschlossen, um das hinzugefügte Zeitsignal STG4
zu empfangen. Die Inverter IV8 und IV9 sind angeschlossen, um die Ausgaben der
Prioritätsbit-Register 33C und 33A anstelle der Ausgaben der Prioritätsbit-Register
33A und 33B zu empfangen. Das Prioritätsbit-Register 33C hat eine Gewichtung
von "4", und daher können die Prioritätsbit-Register 33A bis 33C 8 Prioritätspegel
"0" bis "7" ausdrücken. Demgemäß wird der Prioritätspegel in einer derartigen
Reihenfolge abgetastet, daß die Gewichtung von "4" durch das Zeitsignal STG1
abgetastet wird, die Gewichtung von "2" durch das Zeitsignal STG2 abgetastet wird, und
die Gewichtung von "1" durch das Zeitsignal STG3 abgetastet wird.
-
Die in Fig. 11 gezeigte Schaltung arbeitet gleich der in Fig. 6 gezeigten Schaltung,
außer daß dem Prioritätsbit ein Bit hinzugefügt ist. Wenn das Zeitsignal STG4
erzeugt wird, wenn die RS-(Zwischen-)Speicherschaltung 34 auf "0" zurückgesetzt
wird, wird das Signal SLPRH auf "1" gebracht, und daher wird das nächste
Zeitsignal STG0 so erzeugt, daß die Unterbrechungsanfrage bestätigt wird.
-
In Fig. 12 sind Elementen, die gleich jenen sind, die in Fig. 8 gezeigt sind, dieselben
Bezugszeichen zugeordnet, und deren Erklärung wird weggelassen. Die in Fig. 12
gezeigte Bestätigungs-Unterbrechungsanfragesteuerung ist bezüglich des Aufbaus
von der in Fig. 8 gezeigten Bestätigungs-Unterbrechungsanfragesteuerung darin
unterschiedlich, daß das Signal CM3 und das Zeitsignal STG4 hinzugefügt sind,
und daß Inverter IV28, IV29 und IV30, AND-Gatter AG32 und AG33, N-Kanal-MOS-
Transistoren Q15 und Q16 und ein NAND-Gatter NAG2 hinzugefügt sind. Das
Signal ISPR2 wird dem Inverter IV17 zugeführt, und das Signal ISPR1 wird dem
Inverter IV18 zugeführt. Das Signal ISPRQ wird zum Inverter IV28 eingegeben. Die in
Fig. 12 gezeigte Bestätigungs-Unterbrechungsanfragesteuerung tastet die
Prioritätspegel mit der Gewichtung von "4" wie die in Fig. 11 gezeigte Unterbrechungs-
Anfragesignal-Steuerung ab.
-
Wie es oben angegeben ist, ist das zweite Ausführungsbeispiel derart, daß die acht
Prioritätspegel mit den drei Zeiten in der Reihenfolge der Gewichtung "4" T der
Gewichtung "2" T der Gewichtung "1" gesteuert werden. Bei dieser Steueroperation
wird das Ausgangssignal CMOT der Bestätigungs-
Unterbrechungsanfragesteuerung 4A zur Zeit des Zeitsignals STG4 wie beim ersten
Ausführungsbeispiel geerdet, und das Ausgangssignal CMOT und das
Eingangssignal CMIN der Unterbrechungs-Anfragesignal-Steuerungen 3E bis 3H werden auf
die hierin zuvor angegebene Weise angeschlossen. Mit dieser Verbindung kann,
wenn zwei oder mehrere Unterbrechungsanfragen mit demselben Prioritätspegel
erzeugt werden, die Prioritätspegelsteuerung basierend auf den Vorgabewerten mit
einer Zeitgabe realisiert werden.
-
Wie es aus dem Obigen zu sehen ist, können dann, wenn der Prioritätspegel in 16
(2&sup4;) Pegel aufgeteilt ist, die Prioritätspegel mit 5 Zeitgaben abgetastet werden.
Demgemäß können dann, wenn der Prioritätspegel in 2n Pegel aufgeteilt ist, die
Prioritätspegeluntersuchung und -steuerung für Unterbrechungsanfragen mit (n+1)
Zeitgaben beendet werden.
Ausführungsbeispiel 3
-
In Fig. 13 ist ein Blockdiagramm eines dritten Ausführungsbeispiels der
Unterbrechungssteuerung gemäß der vorliegenden Erfindung gezeigt. Elementen, die gleich
jenen sind, die in Fig. 4 gezeigt sind, sind dieselben Bezugszeichen zugeordnet,
und deren Erklärung wird weggelassen.
-
Wie es aus einem Vergleich zwischen den Fig. 4 und 13 zu sehen ist, ist das dritte
Ausführungsbeispiel dadurch charakterisiert, daß eine Sperrverhinderungs-
Unterbrechungs-Anfragesignal-Steuerung 4B vorgesehen ist, was unterschiedlich
vom ersten Ausführungsbeispiel ist.
-
Das Register für einen gerade ausgeführten Prioritätspegel 7 liest das Signal RA
von der Sperrverhinderungs-Unterbrechungs-Anfragesignal-Steuerung 4B, wenn
das Signal OEVC "1" wird. Das Signal RA ist ein Signal zum Vorbereiten einer
Vektortabelle.
-
Zusätzlich bringt dann, wenn kein Unterbrechungs-Anfragesignal INT0 bis INT3
bestätigt wird, oder wenn das Signal RA von der Sperrverhinderungs-
Unterbrechungs-Anfragesignal-Steuerung 4B ausgegeben und im Register für einen
gerade ausgeführten Prioritätspegel 7 (zwischen-)gespeichert wird, das Register für
einen gerade ausgeführten Prioritätspegel 7 ein Signal ENISPR auf "0". Demgemäß
zeigt das Signal ENISPR ein Vorhandenseinlnichtvorhandensein eines Speichers
im Register für einen gerade ausgeführten Prioritätspegel 7 an, und wird auf "0"
gehalten, wenn kein Prioritätspegel im Register für einen gerade ausgeführten
Prioritätspegel 7 gespeichert ist, und wird auf "1" gebracht, wenn ein Prioritätspegel im
Register für einen gerade ausgeführten Prioritätspegel 7 gespeichert ist.
Andererseits wird dann, wenn ein Prioritätspegel im Register für einen gerade ausgeführten
Prioritätspegel 7 gespeichert ist und das Signal RA, das von der
Sperrverhinderungs-Unterbrechungs-Anfragesignal-Steuerung 4B ausgegeben wird, nicht im
Register für einen gerade ausgeführten Prioritätspegel 7 (zwischen-)gespeichert wird,
das Signal ENISPR auf "1" gebracht.
-
Zusätzlich arbeitet das Register für einen gerade ausgeführten Prioritätspegel 7 in
Antwort auf das Signal CLRIP (das Löschsignal mit höchstem Pegel) zum Löschen
des höchsten Prioritätspegel der Prioritätspegel, die gegenwärtig im Register für
einen gerade ausgeführten Prioritätspegel 7 gespeichert sind, und gibt einen neben
dem gelöschten höchsten Prioritätspegel höchsten Prioritätspegel aus.
-
Weiterhin bringt dann, wenn das Signal RA, das von der Sperrverhinderungs-
Unterbrechungs-Anfragesignal-Steuerung 4B ausgegeben wird, im Register für
einen gerade ausgeführten Prioritätspegel 7 (zwischen-)gespeichert wird, das
Register für einen gerade ausgeführten Prioritätspegel 7 ein Signal NMIDI 46 auf "0",
das einem AND-Gatter 47 zugeführt wird, das das Signal EI empfängt. Das Signal
NMIDI 46 ist ein Andernfalls-Unterbrechungsverhinderungssignal zum Verhindern
(wenn das Signal NMIDI 46 "0" ist) aller anderen Unterbrechungen während einer
Periode, in der eine Unterbrechungsverarbeitung NMI ausgeführt wird.
-
Das Ausgangssignal CMOT der Bestätigungs-Unterbrechungsanfragesteuerung 4
ist an ein Eingangssignal CMIN der Sperrverhinderungs-Unterbrechungs-
Anfragesignal-Steuerung 4B angeschlossen, und das Ausgangssignal CMOT der
Sperrverhinderungs-Unterbrechungs-Anfragesignal-Steuerung 4B ist über einen N-
Kanal-MOS-Transistor 4B geerdet, der ausgeschaltet wird, wenn der Zeittakt "1" ist,
so daß die Pegel des Ausgangssignals CMOT und des Eingangssignals CMIN (die
Vorgabe-Prioritätspegel-Entscheidungssignale sind), beibehalten werden, wie sie
sind.
-
In Fig. 14 ist ein logisches Schaltungsdiagramm des Stufenzählers 2 gezeigt, der
bei der in Fig. 13 gezeigten Unterbrechungssteuerung verwendet wird. Der in Fig.
14 gezeigte Stufenzähler 2 ist von dem in Fig. 5 gezeigten Stufenzähler 2 darin
unterschiedlich, daß der Inverter IV5 weggelassen ist und das Signal SLPRH zum
AND-Gatter AG6 nur über den Inverter IV6 zugeführt wird.
-
Daher wird dann, wenn das Signal SLPRH "1" ist, die (Zwischen-)Speicherschaltung
L7 nie auf "1" gebracht, und "1" und "0" werden über die
(Zwischen-)Speicherschaltungen L1 und L2, die (Zwischen-)Speicherschaltungen
L3 und L4 und die (Zwischen-)Speicherschaltungen L5 und L6 aufeinanderfolgend
und zyklisch übertragen, so daß die Zeitsignale STG1, STG2 und STG3
aufeinanderfolgend erzeugt werden.
-
Andererseits wird dann, wenn das Signal SLPRH "0" ist, die Ausgabe des Inverters
IV6 auf "1" gebracht. Daher wird dann, wenn die Ausgabe der
(Zwischen-)Speicherschaltung L6 "1" ist, die (Zwischen-)Speicherschaltung L7 auf
"1" gesetzt, wenn der Zeittakt CLK "0" ist.
-
Wenn der Zeittakt CLK "1" wird, wird eine (Zwischen-)Speicherschaltung L8 auf "1"
gebracht, so daß das Zeitsignal STG0 ausgegeben wird.
-
Wenn das Signal SLPRH wieder "1" ist, da die Ausgabe der AND-Schaltung AG6
"0" wird, wird die Ausgabe des OR-Gatters OG5 auf "0" gebracht. Daher wird kein
Zeitsignal STG1 erzeugt, bis das Signal CLRIF auf "1" gebracht ist.
-
In anderen Punkten arbeitet der in Fig. 14 gezeigte Stufenzähler 2 gleich dem in
Fig. 5 gezeigten Stufenzähler 2.
-
Die Unterbrechungs-Anfragesignal-Steuerungen 3A bis 3D sind bezüglich des
Aufbaus dieselben wie jene, die in Fig. 6 gezeigt sind, und die Bestätigungs-
Unterbrechungs-Anfragesignal-Steuerung 4 ist bezüglich des Aufbaus dieselbe wie
jene, die in Fig. 7 gezeigt ist. Daher wird eine detaillierte Beschreibung dieser
Elemente weggelassen.
-
In Fig. 15 ist ein logisches Schaltungsdiagramm der Sperrverhinderungs-
Unterbrechungs-Anfragesignal-Steuerung 4B gezeigt, die bei der in Fig. 13
gezeigten Unterbrechungssteuerung verwendet wird.
-
Ein RS-(Zwischen-)Speicher 512 wird auf "1" gesetzt, wenn das Signal NM1 "1" ist,
und wird rückgesetzt, wenn das Rücksetzsignal RESET von "1" zugeführt wird oder
wenn eine Ausgabe eines AND-Gatters 510 durch das Signal CLRIF von "1" und
eine Ausgabe Q von "1" der RS-(Zwischen-)Speicherschaltung 512 "1" wird.
-
Wenn der Q-Ausgang der RS-(Zwischen-)Speicherschaltung 512 "1" ist, wird eine
Ausgabe eines AND-Gatters 541 zur Zeit des Zeitsignals STG3 auf "1" gebracht, so
daß ein N-Kanal-MOS-Transistor 544 über einen Inverter 542 ausgeschaltet wird.
Da das Signal CMOT direkt geerdet ist und daher "0" ist, wird das Signal CMIN auf
"1" vorgeladen, wenn der Zeittakt "1" ist. Daher wird das von einem AND-Gatter 543
ausgegebene Signal RA auf "1" gebracht. Wenn dieses Signal RA "0" ist, wird eine
Ausgabe eines AND-Gatters 549 beim Zeitsignal STG3 von "1" auf "1" gebracht,
wenn der Zeittakt CLK "0" wird.
-
Ein OR-Gatter 500 bringt seine Ausgabe auf "1", wenn das Signal CLRIF, das
Signal RESET oder die Ausgabe des AND-Gatters 549 "1" ist. Eine Ausgabe eines
AND-Gatters 535 wird auf "1" gebracht, wenn der Q-Ausgang der RS-
(Zwischen-)Speicherschaltung 512 "1" ist, eine Ausgabe eines Inverters 533 "1" ist
(nämlich die Ausgabe des OR-Gatters 500 "0" ist), das Zeitsignal STG3 "1" ist und
der Zeittakt CLK "0" ist. Zu dieser Zeit wird ein N-Kanal-MOS-Transistor 534
eingeschaltet, und daher wird das Signal SLPRH auf "0" gebracht.
-
Weiterhin bildet, da die Sperrverhinderungs-Unterbrechungs-Anfragesignal-
Steuerung 4B weder ein Prioritätsbit noch ein Maskenbit zum Maskieren der
Unterbrechungsanfrage aufweist und nicht durch das Signal EI beeinflußt wird, das Signal
NMI, das zur Sperrverhinderungs-Unterbrechungs-Anfragesignal-Steuerung 4B
zugeführt wird, ein Unterbrechungs-Anfragesignal, dem es nicht möglich ist, die
Bestätigung des Unterbrechungs-Anfragesignals zu sperren.
-
Nun wird eine Operation des dritten Ausführungsbeispiels der
Unterbrechungssteuerung unter Bezugnahme auf Fig. 16 erklärt, die das Zeitdiagramm zum
Darstellen der Operation der Unterbrechungssteuerung zeigt.
-
Das dritte Ausführungsbeispiel arbeitet unter derselben Bedingung wie das erste
Ausführungsbeispiel. In diesem Fall ist die Operation vor der Zeit T26 dieselbe wie
die entsprechende Operation des ersten Ausführungsbeispiels, und daher wird die
Operation nur ab der Zeit T26 erklärt.
-
Zur Zeit T26 wird dann, wenn das Unterbrechungs-Anfragesignal INT0 erzeugt wird,
da die Ausgangssignale ISPR1 und ISPR0 des Registers für einen gerade
ausgeführten Prioritätspegel 7 zur Zeit T27 jeweils "1" und "0" sind, die Ausgabe des
AND-Gatters AG21 "0" und das Signal CM1 wird "1". Die Ausgabe des AND-Gatters
AG22 wird "1", so daß die RS-(Zwischen-)Speicherschaltung 41 gesetzt wird. Wenn
der Zeittakt CLK "1" wird, wird die Ausgabe der (Zwischen-)Speicherschaltung 42
auf "1" gebracht. Da ISPR0 "0" ist, wird die Ausgabe des Inverters IV18 "1", und die
Ausgabe des AND-Gatters AG23 wird "1". Zur Zeit T28 wird dann, wenn das
Zeitsignal STG2 ausgegeben wird, das Signal CM2 "0". Jedoch wird, da ISPR0 "0" ist, die
Ausgabe des AND-Gatters 24 auf "0" gehalten, und daher wird auch die Ausgabe
des OR-Gatters OG10 auf "0" gehalten. Demgemäß wird die RS-
(Zwischen-)Speicherschaltung 41 nicht rückgesetzt.
-
Da der Prioritätspegel (Pegel 2) des Unterbrechungs-Anfragesignals INT0 derselbe
wie jener des vorangehenden ist, ist auch der Inhalt der Prioritätsbit-Register 33A
und 33B derselbe, und die Unterbrechungs-Anfragesignal-Steuerung 3A arbeitet auf
gleiche Weise, so daß die Ausgabe der (Zwischen-)Speicherschaltung 35 "1" wird.
-
Zur Zeit von "1" des Zeitsignals STG3 werden die Ausgabe des AND-Gatters AG25
der Bestätigungs-Unterbrechungsanfragesteuerung 4 und die Ausgabe des AND-
Gatters AG17 der Unterbrechungs-Anfragesignal-Steuerung 3A jeweils auf "1"
gebracht, und daher werden Ausgaben der Inverter IV21 und IV14 auf "0" gebracht, so
daß die MOS-Transistoren Q12 und Q8 ausgeschaltet werden.
-
Demgemäß ist nur das geerdete Ausgangssignal CMOT der Bestätigungs-
Unterbrechungsanfragesteuerung 4 "0", und das Eingangssignal CMIN der
Bestätigungs-Unterbrechungsanfragesteuerung 4 und das Eingangssignal CMIN und das
Ausgangssignal CMOT der Unterbrechungs-Anfragesignal-Steuerung 3A werden
auf "1" gehalten, da das Signal CMIN vorgeladen worden ist, als der Zeittakt CLK
"1" war.
-
Daher wird die Ausgabe des Inverters IV22 der Bestätigungs-
Unterbrechungsanfragesteuerung 4 "1", und die Ausgabe des AND-Gatters AG26
wird auf "1" gebracht, so daß die Ausgabe des Inverters IV23 auf "0" gebracht wird
und die Ausgabe des AND-Gatters AG26 auch auf "0" gebracht wird. Demgemäß
wird auch die Ausgabe des OR-Gatters OG10 auf "0" gebracht.
-
In der Unterbrechungs-Anfragesignal-Steuerung 3A wird andererseits die Ausgabe
des Inverters IV15 "0", und die Ausgabe des AND-Gatters AG18 wird auch "0", so
daß das Signal RA auf "0" gehalten wird. Gleichzeitig wird die Ausgabe des
Inverters IV13 auf "1" gebracht, und die Ausgabe des AND-Gatters AG16 wird auf "1"
gebracht, so daß die Ausgabe des OR-Gatters OG8 auf "1" gebracht wird und die
RS-(Zwischen-)Speicherschaltung 34 rückgesetzt wird. Das bedeutet, daß das
Unterbrechungs-Anfragesignal INT0 nicht bestätigt wird, und daher wird kein
Unterbrechungsverarbeitungs-Anfragesignal INTRQ ausgegeben.
-
Zur Zeit T29 wird das Signal NMI erzeugt. Da, wie es hierin zuvor angegeben ist,
die Sperrverhinderungs-Unterbrechungsanfragesteuerung 4B nicht durch die
Prioritätsbitsteuerung, das Maskenbit und das Signal EI beeinflußt ist, wird die Ausgabe
des AND-Gafters 541 zur Zeit T30 unbedingt auf "1" gebracht, wenn das Zeitsignal
STG1 "1" ist. Daher wird der N-Kanal-MOS-Transistor über den Inverter 543
ausgeschaltet. Zur Zeit T32 wird, da der Q-Ausgang der
RS-(Zwischen)Speicherschaltung 512 "1" wird, wenn das Zeitsignal STG3 "1" ist und der Zeittakt
CLK "0" ist, die Ausgabe des RND-Gatters 535 auf "1" gebracht, so daß der N-
kanal-Transistor 534 eingeschaltet wird, und daher wird das Signal SLPRH auf "0"
gebracht.
-
Zusätzlich wird zur Zeit T32 das Signal CMIN auf "1" gehalten, da das Signal CMIN
auf "1" vorgeladen worden ist, wenn ein genau vorangehender Zeittakt CLK "1" ist.
Andererseits ist, da das Signal CMOT der Sperrverhinderungs-
Unterbrechungsanfragesteuerung 4B direkt geerdet ist, das Signal CMOT "0".
Daher wird das vom AND-Gatter 543 ausgegebene Signal RA "1", und daher wird das
Unterbrechungsverarbeitungs-Anfragesignal INTRQ zur Zeit T33 zur CPU 100
ausgegeben, wenn das Zeitsignal STG0 "1" ist.
-
Nun werden die folgenden Situationen betrachtet, obwohl sie nicht im Zeitdiagramm
gezeigt sind: Wenn keine Unterbrechungsanfrage nicht bestätigt worden ist, wenn
die Unterbrechungs-Anfragesignale mit dem Prioritätspegel "0" und die Inhalte "0"
und "0" der Prioritätsbit-Register 33A und 33B erzeugt werden, nämlich dann, wenn
zwei Unterbrechungsanfragen mit demselben Prioritätspegel erzeugt werden, wird
die Ausgabe des AND-Gatters AG17 der Unterbrechungs-Anfragesignal-
Steuerungen 3A und 3B zur Zeit von "1" des Zeitsignals STG3 auf "1" gebracht, und
daher wird die Ausgabe des Inverters IV14 auf "0" gebracht, so daß der MOS-
Transistor Q8 in beiden Unterbrechungs-Anfragesignal-Steuerungen 3A und 3B
ausgeschaltet wird.
-
Wie es oben angegeben ist, ist, da zu dieser Zeit keine Unterbrechungsanfrage
nicht bestätigt ist, die Ausgabe des (Zwischen-)Speichers 42 der Bestätigungs-
Unterbrechungsanfragesteuerung 4 "0", und daher ist die Ausgabe des AND-
Gatters AG25 "0", und die Ausgabe des Inverters IV21 ist auch "0". Demgemäß ist
der N-Kanal-MOS-Transistor Q21 in einem eingeschalteten Zustand.
Gleichermaßen ist auch der N-Kanal-MOS-Transistor 544 der Sperrverhinderungs-
Unterbrechungsanfragesteuerung 4B in einem eingeschalteten Zustand. Somit ist
das Ausgangssignal CMOT der Unterbrechungs-Anfragesignal-Steuerung 3A
geerdet und ist daher auf "0" gebracht. Andererseits sind das Eingangssignal CMIN der
Unterbrechungs-Anfragesignal-Steuerung 3A und die Ausgabe CMOT und das
Eingangssignal CMIN der Unterbrechungs-Anfragesignal-Steuerung 3A "1". Daher wird
nur die Ausgabe des Inverters IV15 der Unterbrechungs-Anfragesignal-Steuerung
3A auf "1" gebracht, und demgemäß wird die Ausgabe des AND-Gatters AG18,
nämlich das Signal RA, das dem Unterbrechungs-Anfragesignal INT0 entspricht, auf
"1" gebracht. Jedoch wird die Ausgabe des Inverters IV15 der Unterbrechungs-
Anfragesignal-Steuerung 3B auf "0" gebracht, und demgemäß wird die Ausgabe des
AND-Gatters AG18, nämlich das Signal RA, das dem Unterbrechungs-
Anfragesignal INT1 entspricht, auf "0" gebracht. Somit hat dann, wenn die
Unterbrechungs-Anfragesignale INT0 und INT1 mit demselben Prioritätspegel erzeugt
werden, das Unterbrechungs-Anfragesignal INT0 eine Priorität über das
Unterbrechungs-Anfragesignal INT1.
-
Zusätzlich wird dann, wenn keine Unterbrechungsanfrage nicht bestätigt worden ist,
wenn ein Unterbrechungs-Anfragesignal INT0 mit dem Prioritätspegel "0" und die
Inhalte "0" und "0" der Prioritätsbit-Register 33A und 33B und das Unterbrechungs-
Anfragesignal NMI fortlaufend erzeugt werden, die Ausgabe des AND-Gatters AG17
der Unterbrechungs-Anfragesignal-Steuerung 3A zur Zeit von "1" des Zeitsignals
STG3 auf "1" gebracht, und die Ausgabe des AND-Gatters 542 der
Sperrverhinderungs-Unterbrechungsanfragesteuerung 4B wird auch auf "1" gebracht. Als
Ergebnis wird der MOS-Transistor Q8 in der Unterbrechungs-Anfragesignal-Steuerung 3A
ausgeschaltet, und daher ist das Signal CMIN "1", weil es vorgeladen worden ist,
als der Takt CLK "1" war. Andererseits wird der MOS-Transistor 544 in der
Sperrverh inderungs-Unterbrechungsanfragesteuerung 4B ausgeschaltet, und daher ist
das Signal CMIN "1", weil es vorgeladen worden ist, als der Takt CLK "1" war.
Jedoch wird, da das Signal CMOT der Unterbrechungs-Anfragesignal-Steuerung 3A
mit dem Signal CMIN der Sperrverhinderungs-Unterbrechungsanfragesteuerung 4B
verbunden ist, das Signal CMOT der Unterbrechungs-Anfragesignal-Steuerung 3A
auf "1" gehalten. Demgemäß wird das vom AND-Gatter AG18 in der
Unterbrechungs-Anfragesignal-Steuerung 3A ausgegebene Signal RA auf "0" gehalten, und
daher wird das Unterbrechungs-Anfragesignal INT0 nicht bestätigt. Andererseits
wird, da das Signal CMOT der Sperrverhinderungs-
Unterbrechungsanfragesteuerung 4B direkt geerdet ist und daher auf "0" liegt, das
von der AND-Schaltung 543 in der Sperrverhinderungs
Unterbrechungsanfragesteuerung 4B ausgegebene Signal RA auf "1" gebracht, und
daher hat das Signal NMI eine Präferenz.
-
Weiterhin wird dann, wenn eine Unterbrechungsanfrage mit dem Prioritätspegel
schon bestätigt worden ist, wenn das Signal NMI erzeugt wird, die Ausgabe des
AND-Gatters AG27 der Bestätigung s-Unterbrechungsanfragesteuerung 4 nicht "1",
und andererseits wird die Ausgabe des AND-Gatters 543 der Sperrverhinderungs-
Unterbrechungsanfragesteuerung 4B beim Zeitsignal STG3 auf "1" gebracht, so
daß das Unterbrechungsverarbeitungs-Anfragesignal INTRQ synchron zum
Zeitsignal
STG0 zur CPU 100 ausgegeben wird. Das Signal NMI kann nämlich die
Verarbeitung der Unterbrechungsverarbeitung mit dem Prioritätspegel "0" unterbrechen.
-
Wenn das Signal RA von "1" von der Sperrverhinderungs-
Unterbrechungsanfragesteuerung 4B ausgegeben wird, bringt das Register für
einen gerade ausgeführten Prioritätspegel 7 das Signal ENISPR auf "0", die AND-
Gatter AG22 und AG21 werden auf "0" festgehalten, und daher wird die RS-
(Zwischen-)Speicherschaltung 41 nicht gesetzt. Zusätzlich bringt das Register für
einen gerade ausgeführten Prioritätspegel 7 das Signal NMIDI 46 auf "0", so daß
die Ausgabe des AND-Gatters 47 auf "0" gebracht wird. Daher wird die Ausgabe
des AND-Gatters AG11 in den Unterbrechungs-Anfragesignal-Steuerungen 3A bis
3D auf "0" festgehalten, und daher werden die Unterbrechungs-Anfragesignale
INT0, INT1, INT2 und INT3 nicht mehr bestätigt. Das Signal NMI hat nämlich den
hohen Prioritätspegel.
-
Wie es oben angegeben ist, wird dann, wenn während der Ausführung einer
Unterbrechungsverarbeitung mit niedrigem Prioritätspegel eine
Unterbrechungsverarbeitung mit hohem Prioritätspegel angefordert wird, der Prioritätspegel in der
Reihenfolge der Gewichtung von einem Prioritätsbit höherer Gewichtung zu einem
Prioritätsbit geringerer Gewichtung abgetastet. Daher kann die Unterbrechungssteuerung
auf die Unterbrechungsanfrage mit einer Geschwindigkeit antworten, die höher als
jene der herkömmlichen Unterbrechungssteuerung ist. Zusätzlich wird dann, wenn
eine Unterbrechungsanfrage mit demselben Prioritätspegel wie jenem der gerade
ausgeführten Unterbrechungsverarbeitung erzeugt wird und wenn zwei oder
mehrere Unterbrechungsanfragen mit demselben Prioritätspegel gleichzeitig erzeugt
werden, eine Unterbrechungsanfrage mit einer hohen Vorgabe (hoch in der Reihenfolge
der durch eine Schaltung eingestellten Präferenz) bestätigt, aber eine
Unterbrechungsanfrage mit einer niedrigen Vorgabe wird nicht bestätigt. Die
Unterbrechungsanfrage wird nämlich in der Reihenfolge von NMI, INT0, INT1, INT2 und
INT3 bestätigt.
-
Zusätzlich hat, da die Sperrverhinderungs-Unterbrechungsanfragesteuerung 4B
vorgesehen ist, selbst dann, wenn die NMI-Unterbrechungsanfrage mit der
Unterbrechungsanfrage mit dem Prioritätspegel "0" konkurriert, die NMI-
Unterbrechungsanfrage eine Präferenz über die Unterbrechungsanfrage mit dem
Prioritätspegel "0". Die NMI-Unterbrechungsanfrage kann unterbrechen, obwohl die
Unterbrechungsanfrage mit dem Prioritätspegel "0" bestätigt ist. Andererseits kann
die Sperrverhinderungs-Unterbrechungsanfragesteuerung 4B gleich wie die
Unterbrechungs-Anfragesignal-Steuerungen 3A bis 3D gesteuert werden, ohne dazu eine
spezielle Steuerung zu benötigen.
-
Daher kann die oben angegebene Unterbrechungssteuerung verschiedene
Unterbrechu ngsanfragen mit einer hohen Geschwindigkeit flexibel bearbeiten.
Ausführungsbeispiel 4
-
In Fig. 17 ist ein Blockdiagramm eines vierten Ausführungsbeispiels der
Unterbrechungssteuerung gemäß der vorliegenden Erfindung gezeigt.
-
Das vierte Ausführungsbeispiel ist vom dritten Ausführungsbeispiel darin
unterschiedlich, daß der Prioritätspegel in 8 Pegel aufgeteilt ist. Aufgrund dieser
Abänderung enthält das zweite Ausführungsbeispiel einen Stufenzähler 2A, der abgeändert
ist, wie es in Fig. 18 gezeigt ist, und Unterbrechungs-Anfragesignal-Steuerungen 3E
bis 3J, die abgeändert sind, wie es in Fig. 11 gezeigt ist, und eine Bestätigungs-
Unterbrechungsanfragesteuerung 4A, die abgeändert ist, wie es in Fig. 12 gezeigt
ist, und eine Sperrverhinderungs-Unterbrechungssteuerung 4B, die abgeändert ist,
wie es in Fig. 19 gezeigt ist. Daher wird eine Erklärung der Unterbrechungs-
Anfragesignal-Steuerungen 3E bis 3J und der Bestätigungs-
Utnerbrechugnsanfragesteuerung 4A weggelassen.
-
Zusätzlich ist die Abänderung der in Fig. 14 gezeigten Schaltung gegenüber der in
Fig. 18 gezeigten Schaltung auf die gleiche Weise wie die Abänderung der in Fig. 5
gezeigten Schaltung gegenüber der in Fig. 10 gezeigten Schaltung durchgeführt.
Daher wird eine Erklärung der in Fig. 18 gezeigten Schaltung weggelassen.
Weiterhin besteht die Abänderung der in Fig. 15 gezeigten Schaltung gegenüber der in
Fig. 19 gezeigten Schaltung nur darin, daß das Zeitsignal STG4 anstelle des
Zeitsignals STG3 eingegeben wird.
-
Daher ist das vierte Ausführungsbeispiel derart, daß die acht Prioritätspegel mit den
drei Zeitgaben in der Reihenfolge der Gewichtung "4" T der Gewichtung "2" T der
Gewichtung "1" gesteuert werden. Bei dieser Steueroperation wird das
Ausgangssignal CMOT der Sperrverhinderungs-Unterbrechungsanfragesteuerung 4C zur Zeit
des Zeitsignals STG4 geerdet, und zwar gleich wie beim dritten
Ausführungsbeispiel, und das Ausgangssignal CMOT und das Eingangssignal CMIN der
Unterbrechungs-Anfragesignal-Steuerungen
3E bis 3H und der Sperrverhinderungs-
Unterbrechungsanfragesteuerung 4C sind auf die hierin zuvor angegebene Weise
verbunden. Mit dieser Verbindung kann dann, wenn zwei oder mehrere
Unterbrechungsanfragen mit demselben Prioritätspegel erzeugt werden, die
Prioritätspegelsteuerung basierend auf den Vorgabewerten mit einer Zeitgabe realisiert werden.
Ausführungsbeispiel 5
-
In Fig. 20 ist ein Blockdiagramm eines fünften Ausführungsbeispiels der
Unterbrechungssteuerung gemäß der vorliegenden Erfindung gezeigt. In Fig. 20 sind
Elementen, die gleich jenen sind, die in den Fig. 1 bis 19 gezeigt sind, dieselben
Bezugszeichen zugeordnet, und deren Erklärung wird weggelassen. Es werden
nämlich nur Teile erklärt, die unterschiedlich von der in den Fig. 1 bis 19 gezeigten
Unterbrechungssteuerung sind.
-
Das fünfte Ausführungsbeispiel ist vom ersten Ausführungsbeispiel darin
unterschiedlich, daß ein (Zwischen-)Speicher 48A als Einrichtung zum Zuordnen
entweder der Vektorunterbrechungsverarbeitung oder einer Makrodienstverarbeitung
vorgesehen ist. In diesem Zusammenhang sind die Unterbrechungs-Anfragesignal-
Steuerungen 3A bis 3D dafür aufgebaut, die Unterbrechungsanfrage mit maximal
"n" Zeitgaben gemäß dem Prioritätspegel zu erfassen, der jeder der
Unterbrechungs-Anfragesignal-Steuerungen 3A bis 3D zugeordnet ist, und gemäß der
Verarbeitung, die durch den (Zwischen-)Speicher 48A zugeordnet ist.
-
Ein Register für einen gerade ausgeführten Prioritätspegel 7 liest den
Prioritätspegel, der von der Unterbrechungs-Anfragesignal-Steuerung 3A bis 3D ausgegeben
wird, zur Zeit von "1" des Signals OEVC, wenn die Ausgabe der
(Zwischen-)Speicherschaltung 48A "0" ist, und ein Paar von Ausgangssignalen
ISPR1 und ISPR0 synchron zu einem Zeittakt CLK ausgibt, der am nächsten zum
Signal OEVC auftritt. Die Ausgabe der (Zwische-)Speicherschaltung 48A wird "1",
wenn der Makrodienst ausgeführt wird. Das Paar von Ausgangssignalen ISPR1 und
ISPR0 wird durch Codieren des höchsten Prioritätspegels von Prioritätspegeln
erhalten, die im Register für einen gerade ausgeführten Prioritätspegel 7 gespeichert
sind. Zusätzlich bringt dann, wenn kein Unterbrechungs-Anfragesig nal bestätigt
wird, das Register für einen gerade ausgeführten Prioritätspegel 7 ein Signal
ENISPR auf "0". Andererseits wird ein Prioritätspegel im Register für einen gerade
ausgeführten Prioritätspegel 7 gespeichert, und das Signal ENISPR wird auf "1"
gebracht. Zusätzlich arbeitet das Register für einen gerade ausgeführten
Prioritätspegel 7 zum Antworten auf ein Signal CLRIP, um einen aktuellen Prioritätspegel
zu löschen und einen Prioritätspegel genau vor dem aktuellen Prioritätspegel
auszugeben. Das Signal CLRIP ist ein Signal zum Löschen der
(Zwischen-)Speicherschaltung 48A, die den Makrodienst zuordnet. Hier hat das
Signal ISPR1 eine Gewichtung von "2", und das Signal ISPR0 hat eine Gewichtung
von "1".
-
Eine (Zwischen-)Speicherschaltung 9 speichert die Ausgabe des OR-Gatters OG1
(zwischen), wenn das Zeitsignal STG3 oder das Zeitsignal STG1 "1" und der
Zeittakt CLK "0" ist, und gelangt dazu, die (zwischen-)gespeicherten Daten in Antwort
auf den nächsten Zeittakt auszugeben, so daß die Ausgabe der
(Zwischen-)Speicherschaltung 9 über ein AND-Gatter AG2 als
Unterbrechungsverarbeitungs-Anfragesignal INTRQ zur Zeit von "1" des Zeitsignals STG0 ausgegeben
wird. Die (Zwischen-)Speicherschaltung 9 wird durch ein Rücksetzsignal RESET
und ein Signal CLRIF (ein Unterbrechungsanfrage-Flag-Löschsignal) und ein Signal
CLRMS (ein Makrodienstanfragebit-(Zwischen-)Speicher-Löschsignal) auf "0"
rückgesetzt.
-
Die (Zwischen-)Speicherschaltung 48A speichert die Ausgabe des OR-Gatters OG1
beim Zeitsignal SG1 (zwischen), wenn der Zeittakt CLK "0" ist, und gelangt dazu,
die (zwischen-)gespeicherten Daten in Antwort auf den nächsten Zeittakt
auszugeben. Zusätzlich gibt die (Zwischen-)Speicherschaltung 48A beim Zeitsignal STG0
ein Signal MSINTRQ über ein AND-Gatter 49 aus. Dieses Signal MSINTRQ ist ein
Makrodienst-Unterbrechungsverarbeitungs-Anfragesignal zur CPU 100. Die
(Zwischen-)Speicherschaltung 48A wird durch das Rücksetzsignal RESET, das
Signal CLRIF und das Signal CLRMS auf "0" rückgesetzt Das Signal CLRMS wird bei
der Ausführung der Makrodienste zum Löschen eines
Verarbeitungszuordnungsbit(Zwischen-)Speichers 160 (Bit MSINT) erzeugt, der die Unterbrechung durch den
Makrodienst zuordnet.
-
Das Signal CMOT der Bestätigungs-Unterbrechungsanfragesteuerung 4 wird über
den N-Kanal-MOS-Transistor 48 geerdet, der eingeschaltet wird, wenn die Ausgabe
des Inverters IV1 (ein invertiertes Signal des Taktes CLK) "1" ist. Sonst wird das
Signal CMIN der Unterbrechungs-Anfragesignal-Steuerung mit einem Signal DMS
des Stufenzählers 2 verbunden. Dieses Signal DMS ist ein
Makrodienst-Verarbeitungszuordnungssignal,
das synchron zum Zeitsignal STG1 eingegeben
wird, wenn der Makrodienst zugeordnet ist.
-
In Fig. 21 ist ein logisches Schaltungsdiagramm des in Fig. 20 gezeigten
Stufenzählers 2 gezeigt.
-
In einem Anfangszustand wird, wenn das Rücksetzsignal RESET auf "1" gebracht
wird, eine (Zwischen-)Speicherschaltung 321 zur Zeit von "0" des Zeittaktes CLK
auf "1" initialisiert, und gleichermaßen werden (Zwischen-)Speicherschaltung 323
und 325 auf "0" initialisiert, und ein (Zwischen-)Speicher vom RS-Typ 327 wird auf
"0" initialisiert. Demgemäß wird eine (Zwischen-)Speicherschaltung 322 zur Zeit von
"1" eines nächsten Zeittaktes CLK auf "1" gebracht, und
(Zwischen-)Speicherschaltungen 324 und 326 werden auf "0" gebracht.
-
Wenn der nächste Zeittakt CLK "0" wird, wird das Zeitsignal STG1 von einem AND-
Gatter 342 ausgegeben. Wenn das Rücksetzsignal RESET auf "0" gebracht wird,
wird die Ausgabe "1" der (Zwischen-)Speicherschaltung 322 über ein AND-Gatter
343 in die (Zwischen-)Speicherschaltung 323 (zwischen-)gespeichert, wenn der
Zeittakt CLK "0" ist.
-
Gleichermaßen wird dann, wenn der Zeittakt CLK "0" ist, die Ausgabe der
(Zwischen-)Speicherschaltung 323 in die (Zwischen-)Speicherschaltung 324
(zwischen-)gespeichert, so daß die (Zwischen-)Speicherschaltung 324 auf "1"
gebracht wird, was über ein AND-Gatter 331 in die (Zwischen-)Speicherschaltung 325
(zwischen-)gespeichert wird, wenn der Zeittakt CLK "0" ist.
-
Hier ist unter der Annahme, daß das Signal CLRIF und das Signal CLRMS "0" sind
und daß das Signal SLPRH "1" und das Signal DMS "0" ist, eine Ausgabe eines
lnverters 341 "0" und die Ausgabe des AND-Gatters 332 "0", so daß die
(Zwischen-)Speicherschaltung 327 auf "0" gehalten wird. Daher sind die Ausgaben
der AND-Gatter 339 und 340 "0", und die Ausgabe des OR-Gatters 331 ist "0", so
daß dann, wenn der Zeittakt CLK "0" wird, die Ausgabe "0" des OR-Gatters 338
über das OR-Gatter 329 in die (Zwischen-)Speicherschaltung 321
(zwischen-)gespeichert wird.
-
Als nächstes wird, wenn der Zeittakt CLK auf "1" gebracht wird, die
(Zwischen-)Speicherschaltung 322 auf "0" gebracht, und die
(Zwischen-)Speicherschaltung 324 wird auf "1" gebracht. Wenn der Zeittakt CLK "0"
wird, wird das Zeitsignal STG2 auf "1" gebracht.
-
Wenn ein nächster Zeittakt CLK "0" ist, wird die (Zwischen-)Speicherschaltung 325
auf "1" gebracht, und wenn der Zeittakt CLK das nächste Mal auf "1" gebracht wird,
wird die (Zwischen-)Speicherschaltung 325 auf "0" gebracht, und die
(Zwischen-)Speicherschaltung 326 wird auf "1" gebracht. Wenn der Zeittakt CLK "0"
wird, wird das Zeitsignal STG3 auf "1" gebracht.
-
Wenn das Signal SLPRH "1" ist, werden "1" und "0" aufeinanderfolgend und
zyklisch über die (Zwischen-)Speicherschaltungen 321 und 322, die
(Zwischen-)Speicherschaltung 323 und 324 und die
(Zwischen-)Speicherschaltungen 325 und 326 übertragen, so daß die Zeitsignale
STG1, STG2 und STG3 aufeinanderfolgend erzeugt werden.
-
Andererseits wird dann, wenn das Signal SLPRH "0" ist, die Ausgabe des Inverters
341 auf "1" gebracht. Daher wird, wenn die Ausgabe der
(Zwischen-)Speicherschaltung 326 "1" ist, die (Zwischen-)Speicherschaltung 327
auf "1" gesetzt, wenn der Zeittakt CLK "0" ist.
-
Wenn der Zeittakt CLK "1" wird, wird eine (Zwischen-)Speicherschaltung 328 auf "1"
gebracht, so daß das Zeitsignal STG0 ausgegeben wird.
-
Wenn das Signal SLPRH "0" ist, da die Ausgabe der AND-Schaltung 339 "0" wird,
wird die Ausgabe des OR-Gatters 338 auf "0" gebracht. Daher wird das Zeitsignal
STG1 nicht erzeugt, bis das Signal CLRIF oder das Signal CLRMS auf "1" gebracht
wird.
-
Danach wird dann, wenn das Signal CLRIF auf "1" gebracht wird, die Ausgabe des
AND-Gatters 340 "1". Demgemäß wird dann, wenn der Zeittakt CLK "0" wird, die
(Zwischen-)Speicherschaltung 321 auf "0" gebracht. Andererseits wird, wenn das
Signal CLRIF auf "1" gebracht wird, da die Ausgabe des OR-Gatters 333 auf "1"
gebracht wird, die (Zwischen-)Speicherschaltung 327 rückgesetzt. Demgemäß wird
das Zeitsignal STG1 nach dem Zeitsignal STG0 erzeugt.
-
Wenn das Signal DMS "1" ist, wird die Ausgabe des Inverters 350 "0", und die
Ausgabe des AND-Gatters 330 wird auf "0" gebracht, so daß die Erzeugung der
Zeitsignale
STG2 und STG3 verhindert wird. Wenn das Zeitsignal STG1 "1" wird, wird die
Ausgabe des AND-Gatters 351 auf "1" gebracht, was bewirkt, daß der RS-
(Zwischen-)Speicher 327 und der (Zwischen-)Speicher 328 über das OR-Gatter 352
auf "1" gebracht wird, so daß das Zeitsignal STG0 erzeugt wird. Da das Zeitsignal
STG3 nicht erzeugt wird, wird das Zeitsignal STG1 nicht erzeugt, bis das Signal
CLRIF oder das Signal CLRMS auf "1" gebracht wird.
-
Wenn das Signal CLRMS "1" wird, wird die Ausgabe des AND-Gatters 353 "1", und
daher wird dann, wenn der Takt CLK "0" wird, der (Zwischen-)Speicher 321 auf "1"
gebracht. Da die Ausgabe des OR-Gatters 333 durch das Signal CLRMS bestimmt
wird, wird der RS-(Zwischen-)Speicher 327 auf "0" rückgesetzt Daher wird das
Zeitsignal STG1 nach dem Zeitsignal STG0 erzeugt.
-
In Fig. 22 ist ein logisches Schaltungsdiagramm der in Fig. 20 erzeugten
Unterbrechungs-Anfragesignal-Steuerung 3A gezeigt. Da die Unterbrechungsanfagesignal-
Steuerungen 3A bis 3D denselben Aufbau haben, ist nur die Unterbrechungs-
Anfragesignal-Steuerung 3A gezeigt.
-
Wenn das Unterbrechungs-Anfragesignal INT0 eingegeben wird, wenn der Inhalt
des Maskenbit-Registers 111 "0" ist und das Unterbrechungsanfrage-Flag 112 "1"
ist, und wenn das Unterbrechungs-Freigabesignal EI "1" ist und ein Bit MSINT 160
"0" ist, wird die Ausgabe des AND-Gatters 114 auf "1" gebracht. Das Bit MSINT 160
ordnet die Makrodienstverarbeitung zu, wenn es "1" ist, und eine
Vektorunterbrechung, wenn es "0" ist. Das Bit MSINT 160 kann durch die CPU 100 neu
geschrieben werden und durch das Rücksetzsignal RESET und das Signal CLRMS auf "0"
rückgesetzt werden. Das Prioritätsbit-Register 116 hat eine Gewichtung von "2" und
das Prioritätsbit-Register 117 hat eine Gewichtung von "1".
-
Wenn das Prioritätsbit-Register 116 "0" ist, ist die Ausgabe des Inverters 120 "1".
Wenn das Zeitsignal STG1 auf "1" gebracht wird, wird die Ausgabe des AND-
Gatters 121 zur Zeit von "0" des Zeittaktes CLK auf "1" gebracht, so daß ein N-
Kanal-Tranistor 122 eingeschaltet wird, um das Signal CM1 auf "0" zu bringen.
-
Wie es oben angegeben ist, ist das Signal CM1 durch das Vorladen auf "1"
gebracht worden, wenn der Zeittakt CLK "1" ist. Jedoch dann, wenn die Ausgabe des
AND-Gatters 121 "1" wird, wird das Signal CM1 auf "1" gebracht. Gleichzeitig wird
ein (Zwischen-)Speicher vom RS-Typ 126 über ein OR-Gatter 124 und ein AND-
Gatter 125 auf "1" gesetzt.
-
Als nächstes wird dann, wenn der Zeittakt CLK auf "1" gebracht wird, eine
(Zwischen-)Speicherschaltung 127 auf "1" gebracht. Wenn das Zeitsignal STG3 auf
"1" gebracht wird, wird eine Ausgabe eines AND-Gatters 141 auf "1" gebracht. Als
Ergebnis wird eine Ausgabe eines Inverters 142 über ein OR-Gatter 166 auf "0"
gebracht, und daher wird ein N-Kanal-MOS-Transistor 144 nichtleitend gemacht.
Daher ist das Eingangssignal CMIN, das durch einen P-Kanal-MOS-Transistor 146
vorgeladen worden ist, der eingeschaltet wird, wenn ein vorangehender Zeittakt
CLK "0" war, "1". Andererseits wird dann, wenn das Ausgangssignal CMOT, das
über die Bestätigungs-Unterbrechungsanfragesteuerung 4 geerdet ist, "0" ist, eine
Ausgabe eines Inverters IN15 auf "1" gebracht. Demgemäß wird eine Ausgabe
eines AND-Gatters 143 auf "1" gebracht, und daher wird das Signal RA zum
Vorbereiten einer Vektoradressentabelle 5 ausgegeben.
-
Wenn das Zeitsignal STG2 "1" wird, wenn das Prioritätsbit-Register 117 "0" ist und
die (Zwischen-)Speicherschaltung 127 "1" ist, wird eine Ausgabe eines AND-Gatters
128 zur Zeit von "0" des Zeittaktes CLK auf "1" gebracht. Daher wird ein N-Kanal-
MOS-Transistor 129 eingeschaltet, um das Signal CM2 auf "0" zu bringen. Wie es
oben angegeben ist, ist das Signal CM2 durch das Vorladen auf "1" gebracht
worden, als der Zeittakt CLK "1" war. Jedoch dann, wenn die Ausgabe des AND-
Gafters 128 "1 "wird, wird das Signal CM2 auf "0" gebracht.
-
Eine Ausgabe eines AND-Gatters 132 wird auf "1" gebracht, wenn das Prioritätsbit-
Register 117 "1", das Signal CM2 "0" und das Zeitsignal STG2 "1" ist. Eine Ausgabe
eines AND-Gatters 149 wird zur Zeit von "0" des Zeittaktes CLK auf "1" gebracht,
wenn das Signal RA "0" ist und das Zeitsignal STG3 "1" ist. Wenn die Ausgabe des
AND-Gatters 132 "1" ist, oder wenn das Rücksetzsignal RESET "1" ist, oder wenn
das Signal CLRIF "1" ist, oder wenn das Signal CLRMS "1" ist, oder wenn die
Ausgabe eines AND-Gatters 149 "1" ist, wird eine Ausgabe eines OR-Gatters 140 auf
"1" gebracht. Danach wird dann, wenn ein nächster Zeittakt CLK "0" wird, die RS-
(Zwischen-)Speicherschaltung 126 auf "0" rückgesetzt.
-
Wenn die Ausgabe des OR-Gatters 140 "0" ist, wird eine Ausgabe eines Inverters
133 auf "1" gebracht. Wenn die Ausgabe der (Zwischen-)Speicherschaltung 127 "1"
ist und das Zeitsignal STG3 "1" ist, wird eine Ausgabe einer AND-Schaltung 135 als
"1" ausgegeben, so daß ein N-Kanal-MOS-Transistor 134 eingeschaltet wird. Daher
wird das Signal SLPRH auf "0" gebracht.
-
Wenn die Ausgabe der (Zwischen-)Speicherschaltung 127 "1" ist, und wenn die
Zeitsignale STG1, STG2 und STG3 "0" sind, nämlich dann, wenn das Zeitsignal
STG0 "1" ist, wird die Ausgabe des AND-Gatters 136 auf "1" gebracht, so daß die
Ausgaben der Prioritätsbit-Register 116 und 117 über Ausgangspuffer 138 und 139
als Signale PR1 und PR0 ausgegeben werden.
-
Als nächstes wird dann, wenn das Bit MSINT 150 "1" und das Maskenbit 111 "0" ist,
eine Ausgabe eines AND-Gatters 162 auf "1" gebracht, wenn das Unterbrechungs-
Anfragesignal INT0 erzeugt wird. Wenn das Zeitsignal STG1 "1" wird, wird die
Ausgabe des AND-Gatters 165 auf "1" gebracht, was die Ausgabe des Inverters 142
über das OR-Gatter 166 auf "0" bringt. Daher wird der N-Kanal-MOS-Transistor 144
nichtleitend gemacht. Das Signal CMIN, das durch den P-Kanal-MOS-Transistor
146 auf "1" vorgeladen worden ist, als der vorangehende Takt CLK "0" war, wird an
das AND-Gatter 143 angelegt. Zusätzlich wird das Signal CMOT, das über den N-
Kanal-Transistor 48 in der Bestätigungs-Unterbrechungsanfragesteuerung 4
geerdet ist, über einen Inverter 145 zum AND-Gatter 143 geführt. Daher wird die
Ausgabe des AND-Gatters 143 auf "1" gebracht, und das Signal RA wird erzeugt.
-
Eine (Zwischen-)Speicherschaltung 167 speichert das Signal RA in Antwort auf die
Zeitsignale STG1 oder STG3 (zwischen), und der Inhalt des (Zwischen-)Speichers
167 wird in Antwort auf den Takt CLK zu einem weiteren (Zwischen-)Speicher 168
übertragen. Wenn der (Zwischen-)Speicher 168 "1" ist, wenn das Signal CLRIF
eingegeben wird, wird das Unterbrechungsanfrage-Flag 112 gelöscht, und wenn das
Signal CLRMS eingegeben wird, wird das Bit MSINT 160 gelöscht. In jedem Fall
wird gleichzeitig der (Zwischen-)Speicher 167 gelöscht. Wenn das Signal CLRMS
eingegeben wird, da das Unterbrechungsanfrage-Flag 112 nicht gelöscht wird, wird
die Unterbrechungs-Prioritätspegeluntersuchung der Vektorunterbrechung sofort
begonnen.
-
In Fig. 23 ist ein logisches Schaltungsdiagramm der in Fig. 20 gezeigten
Bestätigungs-Unterbrechungs-Anfragesignal-Steuerung 4 gezeigt. In Fig. 23 arbeiten
Elemente, die jenen entsprechen, die in Fig. 22 gezeigt sind, auf gleiche Weise, und
daher wird eine Erklärung weggelassen.
-
Die in Fig. 23 gezeigte Schaltung ist von der in Fig. 22 gezeigten Schaltung in
folgenden Punkten unterschiedlich: Die Ausgabe der in Fig. 22 gezeigten AND-
Schaltung 114 ist das Signal ENISPR, und die Ausgaben der Prioritätsbit-Register
116 und 117 sind durch die Signale INPR1 und ISPR0 ersetzt. Zusätzlich sind die
AND-Schaltungen 110, 114, 135, 136, 162 und 164, die N-Kanal-MOS-Transistoren
134, die Inverter 119 und 133, das NOR-Gatter 137, die OR-Gatter 113, 161, 163,
166 und 169, das Maskenbit 111, das Unterbrechungsanfrage-Flag 112 und die
(Zwischen-)Speicher 160, 167 und 168 weggelassen. Das Signal RA und die
Signale SLPRH sind weggelassen. Daher ist die in Fig. 23 gezeigte Schaltung in anderen
Punkten dieselbe wie die in Fig. 22 gezeigte Schaltung. Demgemäß entsprechen
ein RS-(Zwischen-)Speicher 41 und ein (Zwischen-)Speicher 42 dem RS-
(Zwischen-)Speicher 126 bzw. dem (Zwischen-)Speicher 45. AND-Gatter 423, 425,
429, 432, 442, 449 und 443 entsprechen den AND-Gattern 121, 125, 128, 132, 141,
149 und 143. Ein OR-Gatter 440 entspricht dem OR-Gatter 140, und Inverter 420,
423, 430, 431, 442, 445, 448 und 447 entsprechen den jeweiligen Invertern 120,
123, 130, 131, 142, 145, 148 und 147. N-Kanal-MOS-Transistoren 442, 429 und
Transistoren 122, 129 und 144 und dem P-Kanal-Transistor 146.
-
Nun wird eine Operation des fünften Ausführungsbeispiels der
Unterbrechungssteuerung unter Bezugnahme auf Fig. 24 erklärt, die das Zeitdiagramm zum
Darstellen der Operation der Unterbrechungssteuerung zeigt.
-
Hier ist angenommen, daß das Maskenbit-Register 111 der vier Unterbrechungs-
Anfragesignal-Steuerungen 3A, 3B, 3C und 3D (die den jeweiligen Unterbrechungs-
Anfragesignalen INT0, INT1, INT2 und INT3 entsprechen) jeweils auf "0", "0", "0"
und "0" gesetzt sind, und daß die Bits MSINT 160 der vier Unterbrechungs-
Anfragesignal-Steuerungen 3A, 3B, 3C und 3D jeweils auf "1", "0", "0" und "0"
gesetzt sind, und es ist auch angenommen, daß die Prioritätsbit-Register 33A und 33B
der vier Unterbrechungs-Anfragesignal-Steuerungen 3A, 3B, 3C und 3D jeweils auf
"1, 0" (Prioritätspegel "2"), "1, 0" (Prioritätspegel "2"), "0, 0" (Prioritätspegel "0") und
"0, 1" (Prioritätspegel "1") gesetzt sind. Zusätzlich ist das Signal EI "1". Daher ist der
Zustand außer für die Bits MSINT 160 derselbe wie bei der Operation des
herkömmlichen Beispiels.
-
In diesem Fall ist die Operation vor der Zeit T26 dieselbe wie die entsprechende
Operation des ersten Ausführungsbeispiels und daher wird nur eine Operation bis
zur Zeit T24 erklärt.
-
Zur Zeit T27 wird, wenn das Unterbrechungs-Anfragesignal INT0 erzeugt wird, das
Zeitsignal STG1 zur Zeit T29 erzeugt, und die Ausgabe des AND-Gatters 165 wird
auf "1" gebracht, so daß das Signal RA ähnlich wie das Unterbrechungs-
Anfragesignal INT1 erzeugt wird. Zur Zeit T30 werden das
Unterbrechungsverarbeitungs-Anfragesignal INTRQ und das Signal MSINTRQ erzeugt.
-
Die CPU 100 bringt das Signal OEVC auf "1" und eine Adresse der
Vektoradressentabelle 5 wird zum internen Datenbus 1 ausgegeben. Zu dieser Zeit wird, da die
(Zwischen-)Speicherschaltung 48A "1" ist, die Ausgabe des AND-Gatters 51 nicht
auf "1" gebracht, und daher ändert sich der Wert des Registers für einen gerade
ausgeführten Prioritätspegel 7 nicht. Daher wird das Signal CLRMS ausgegeben,
das Bit MSINT 160 wird gelöscht, und das Zeitsignal STG1 wird gleichzeitig vom
Stufenzähler 2 ausgegeben. Da das Unterbrechungsanfrage-Flag 112 in der
Unterbrechungs-Anfragesignal-Steuerung 3A auf "1" gehalten wird, wird die
Unterbrechungs-Prioritätspegeluntersuchung wieder begonnen.
-
Zur Zeit T35 wird, da die Ausgangssignale ISPR1 und ISPR0 des Registers für
einen gerade ausgeführten Prioritätspegel 7 zur Zeit T27 jeweils "1" und "0" sind, die
Ausgabe des AND-Gatters 421 "0", und das Signal CM1 wird "1". Die Ausgabe des
AND-Gatters 425 wird "1", so daß die RS-(Zwischen-)Speicherschaltung 426
gesetzt wird. Wenn der Zeittakt CLK "1" wird, wird die Ausgabe der
(Zwischen-)Speicherschaltung 427 auf "1" gebracht. Da ISPR0 "0" ist, wird die
Ausgabe des AND-Gatters 428 "1", und das Signal CM2 wird auf "1" gehalten.
Demgemäß wird die Ausgabe des AND-Gatters 432 auf "0" gehalten, und daher wird auch
die Ausgabe des OR-Gatters 440 auf "0" gehalten. Demgemäß wird die RS-
(Zwischen-)Speicherschaltung 426 nicht rückgesetzt.
-
Da der Prioritätspegel (Pegel 2) des Unterbrechungs-Anfragesignals INT0 derselbe
wie jener des vorangehenden ist, ist auch der Inhalt der Prioritätsbit-Register 116
und 117 derselbe, und die Unterbrechungs-Anfragesignal-Steuerung 3A arbeitet auf
gleiche Weise, so daß die Ausgabe der (Zwischen-)Speicherschaltung 127 "1" wird.
-
Zur Zeit von "1" des Zeitsignals STG3 werden die Ausgabe des AND-Gatters 441
der Bestätigungs-Unterbrechungsanfragesteuerung 4 und die Ausgabe des AND-
Gatters 141 der Unterbrechungs-Anfragesignal-Steuerung 3A jeweils auf "1"
gebracht, und daher werden Ausgaben der Inverter 442 und 142 auf "0" gebracht, so
daß die MOS-Transistoren 444 und 144 ausgechaltet werden.
-
Demgemäß ist nur das geerdete Ausgangssignal CMOT der Bestätigungs-
Unterbrechungsanfragesteuerung 4 "0", und das Eingangssignal CMIN der
Bestätigungs-Unterbrechungsanfragesteuerung 4 und das Eingangssignal CMIN und das
Ausgangssignal CMOT der Unterbrechungs-Anfragesignal-Steuerung 3A werden
auf "1" gehalten, da das Signal CMIN vorgeladen worden ist, als der Zeittakt CLK
"1" war.
-
Daher wird die Ausgabe des Inverters 445 der Bestätigungs-
Unterbrechungsanfragesteuerung 4 "1", und die Ausgabe des AND-Gatters 443
wird auf "1" gebracht, so daß die Ausgabe des Inverters 448 auf "0" gebracht wird
und die Ausgabe des AND-Gatters 449 auch auf "0" gebracht wird. Demgemäß wird
auch die Ausgabe des OR-Gatters 440 auf "0" gebracht.
-
In der Unterbrechungs-Anfragesignal-Steuerung 3A wird andererseits die Ausgabe
des Inverters 145 "0", und die Ausgabe des AND-Gatters 143 wird auch "0", so daß
das Signal RA auf "0" gehalten wird. Gleichzeitig wird die Ausgabe des Inverters
148 auf "1" gebracht, und die Ausgabe des AND-Gatters 149 wird auf "1" gebracht,
so daß die Ausgabe des OR-Gatters 140 auf "1" gebracht wird und die RS-
(Zwischen-)Speicherschaltung 126 zurückgesetzt wird. Das Unterbrechungs-
Anfragesignal INT0 wird nämlich nicht bestätigt, und daher wird das
Unterbrechungsverarbeitungs-Anfragesignal 1 NTRQ nicht ausgegeben. Anders ausgedrückt
wird die Unterbrechungsanfrage mit demselben Prioritätspegel wie jenem der
gerade ausgeführten Unterbrechungsverarbeitung nicht bestätigt.
-
Obwohl es im Zeitdiagramm nicht gezeigt ist, arbeitet dann, wenn keine
Unterbrechungsanfrage nicht bestätigt worden ist, wenn die Unterbrechungs-Anfragesignale
mit dem Prioritätspegel "0" und die Inhalte "0" und "0" der Prioritätsbit-Register 33A
und 33B erzeugt werden, nämlich dann, wenn zwei Unterbrechungsanfragen mit
demselben Prioritätspegel erzeugt werden, das fünfte Ausführungsbeispiel gleich
dem ersten und dem dritten Ausführungsbeispiel Nämlich auch beim fünften
Ausführungsbeispiel hat dann, wenn die Unterbrechungs-Anfragesignale INT0 und INT1
mit demselben Prioritätspegel erzeugt werden, das Unterbrechungs-Anfragesignal
INT0 eine Priorität über das Unterbrechungs-Anfragesignal INT1.
-
Wie es oben angegeben ist, wird dann, wenn während der Ausführung einer
Unterbrechungsverarbeitung mit niedrigem Prioritätspegel eine
Unterbrechungsverarbeitung mit hohem Prioritätspegel angefordert wird, der Prioritätspegel in der
Reihenfolge der Gewichtung von einem Prioritätsbit mit großer Gewichtung zu einem
Prioritätsbit mit geringer Gewichtung abgetastet. Daher kann die
Unterbrechungssteuerung auf die Unterbrechungsanfrage mit einer Geschwindigkeit antworten, die höher
als jene der herkömmlichen Unterbrechungssteuerung ist. Zusätzlich wird, wenn
eine Unterbrechungsanfrage mit demselben Prioritätspegel wie jenem der gerade
ausgeführten Unterbrechungsverarbeitung erzeugt wird und wenn zwei oder
mehrere Unterbrechungsanfragen mit demselben Prioritätspegel gleichzeitig erzeugt
werden, eine Unterbrechungsanfrage mit hoher Vorgabe (hoch in der Reihenfolge der
durch eine Schaltung eingestellten Präferenz) bestätigt, aber eine
Unterbrechungsanfrage mit niedriger Vorgabe wird nicht bestätigt. Zusätzlich kann das fünfte
Ausführungsbeispiel die Makrodienstverarbeitung bearbeiten. Daher kann die
Unterbrechungssteuerung, wie sie oben angegeben ist, verschiedene
Unterbrechungsanfragen mit hoher Geschwindigkeit bearbeiten.
Ausführungsbeispiel 6
-
In Fig. 25 ist ein Blockdiagramm eines sechsten Ausführungsbeispiels der
Unterbrechungssteuerung gemäß der vorliegenden Erfindung gezeigt.
-
Das sechste Ausführungsbeispiel ist vom fünften Ausführungsbeispiel darin
unterschiedlich, daß der Prioritätspegel in 8 Pegel aufgeteilt ist. Aufgrund dieser
Abänderung enthält das zweite Ausführungsbeispiel einen Stufenzähler 2A, der abgeändert
ist, wie es in Fig. 26 gezeigt ist, und Unterbrechungs-Anfragesignal-Steuerungen 3E
bis 3J, die abgeändert sind, wie es in Fig. 27 gezeigt ist, und eine Bestätigungs-
Unterbrechungsanfragesteuerung 4A, die abgeändert ist, wie es in Fig. 28 gezeigt
ist.
-
Zusätzlich ist die Abänderung der in Fig. 21 gezeigten Schaltung zu der in Fig. 26
gezeigten Schaltung auf dieselbe Weise durchgeführt, wie die Abänderung der in
Fig. 5 gezeigten Schaltung zu der in Fig. 10 gezeigten Schaltung. Die Abänderung
der in Fig. 22 gezeigten Schaltung zu der in Fig. 27 gezeigten Schaltung ist auf
dieselbe
Weise durchgeführt, wie die Abänderung der in Fig. 6 gezeigten Schaltung zu
der in Fig. 11 gezeigten Schaltung. Die Abänderung der in Fig. 23 gezeigten
Schaltung zu der in Fig. 27 gezeigten Schaltung ist auf dieselbe Weise durchgeführt, wie
die Abänderung der in Fig. 7 gezeigten Schaltung zu der in Fig. 12 gezeigten
Schaltung. Daher wird eine Erklärung des Stufenzählers 2A, der Unterbrechungs-
Anfragesignal-Steuerungen 3E bis 3J und der Bestätigungs-
Unterbrechungsanfragesteuerung 4A weggelassen.
-
Daher ist das sechste Ausführungsbeispiel derart, daß die acht Prioritätspegel mit
den drei Zeitgaben in der Reihenfolge der Gewichtung "4" T der Gewichtung "2" T
der Gewichtung "1" gesteuert werden. Bei dieser Steueroperation wird das
Ausgangssignal CMOT der Sperrverhinderungs-Unterbrechungsanfragesteuerung 4C
zur Zeitgabe des Zeitsignals STG4 geerdet, wie beim dritten Ausführungsbeispiel,
und das Ausgangssignal CMOT und das Eingangssignal CMIN der Unterbrechungs-
Anfragesignal-Steuerungen 3E bis 3H werden auf dieselbe Weise angeschlossen,
wie es hierin zuvor angegeben ist. Mit dieser Verbindung kann dann, wenn zwei
oder mehrere Unterbrechungsanfragen mit demselben Prioritätspegel erzeugt
werden, die Prioritätspegelsteuerung basierend auf den Vorgabewerten mit einer
Zeitgabe realisiert werden.
Ausführungsbeispiel 7
-
In Fig. 29 ist ein Blockdiagramm eines siebten Ausführungsbeispiels der
Unterbrechungssteuerung gemäß der vorliegenden Erfindung gezeigt. Das siebte
Ausführungsbeispiel ist eine derartige Vereinfachung des ersten Ausführungsbeispiels, daß
nur die Zeitsignale STG1, STG2 und STG0 erzeugt werden. In Fig. 29 sind
Elementen, die gleich oder entsprechend jenen sind, die in Fig. 4 gezeigt sind, dieselben
Bezugszeichen zugeordnet. Da das siebte Ausführungsbeispiel dasselbe wie das
erste Ausführungsbeispiel ist, außer daß das Zeitsignal STG3 nicht erzeugt wird,
wird die Erklärung des Aufbaus und der Operation weggelassen.
-
In Fig. 30 ist ein logisches Schaltungsdiagramm des Stufenzählers 2 gezeigt, der
bei der in Fig. 29 gezeigten Unterbrechungssteuerung verwendet wird. Obwohl es in
Fig. 30 Bezugszeichen gibt, die sich von jenen unterscheiden, die in Fig. 5
angegeben sind, wird, da Elemente, die bezüglich der Schaltungsfunktion jenen
entsprechen, die in Fig. 5 gezeigt sind, auf dieselbe Weise arbeiten, die Operation der
Schaltung der Fig. 30 weggelassen.
-
Wendet man sich nun der Fig. 31 zu, ist dort ein logisches Schaltungsdiagramm der
Unterbrechungs-Anfragesignal-Steuerung gezeigt, die bei der in Fig. 29 gezeigten
Unterbrechungssteuerung verwendet wird. Ähnlich zur Fig. 30 wird, obwohl in Fig.
31 Bezugszeichen angegeben sind, die unterschiedlich von jenen sind, die in Fig. 6
angegeben sind, da Elemente, die bezüglich der Schaltungsfunktion jenen
entsprechen, die in Fig. 6 gezeigt sind, auf dieselbe Weise arbeiten, die Operation der
Schaltung der Fig. 31 weggelassen.
-
In Fig. 32 ist ein logisches Schaltungsdiagramm der Bestätigungs-
Unterbrechungsanfragesteuerung gezeigt, die bei der in Fig. 29 gezeigten
Unterbrechungssteuerung verwendet wird. Gleich zur Fig. 30 wird, obwohl in Fig. 32
Bezugszeichen angegeben sind, die sich von jenen unterscheiden, die in Fig. 7
angegeben sind, da Elemente, die bezüglich der Schaltungsfunktion jenen entsprechen,
die in Fig. 7 gezeigt sind, auf dieselbe Weise arbeiten, die Operation der Schaltung
der Fig. 32 weggelassen.
-
Fig. 33 ist ein Zeitdiagramm zum Darstellen der Operation der in Fig. 29 gezeigten
Unterbrechungssteuerung. Das siebte Ausführungsbeispiel arbeitet gleich dem
ersten Ausführungsbeispiel, außer der Tatsache, daß das Zeitsignal STG3 nicht
erzeugt wird, und eine Erklärung der Operation wird weggelassen.
Ausführungsbeispiel 8
-
In Fig. 34 ist ein Blockdiagramm eines achten Ausführungsbeispiels der
Unterbrechungssteuerung gemäß der vorliegenden Erfindung gezeigt.
-
Das achte Ausführungsbeispiel ist vom siebten Ausführungsbeispiel darin
unterschiedlich, daß der Prioritätspegel in 8 Pegel aufgeteilt ist. Aufgrund dieser
Abänderung enthält das zweite Ausführungsbeispiel einen Stufenzähler 2A, der abgeändert
ist, wie es in Fig. 35 gezeigt ist, und Unterbrechungs-Anfragesignal-Steuerungen 3E
bis 3J, die abgeändert sind, wie es in Fig. 36 gezeigt ist, und eine Bestätigungs-
Unterbrechungsanfragesteuerung 4A, die abgeändert ist, wie es in Fig. 37 gezeigt
ist.
-
In Fig. 35 wird, obwohl in ihr Bezugszeichen angegeben sind, die sich von jenen
unterscheiden, die in Fig. 6 angegeben sind, da Elemente, die bezüglich der
Schaltungsfunktion
jenen entsprechen, die in Fig. 6 gezeigt sind, auf dieselbe Weise
arbeiten, die Operation der Schaltung der Fig. 35 weggelassen.
-
Gleich zur Fig. 35 wird in Fig. 36, obwohl in ihr Bezugszeichen angegeben sind, die
sich von jenen unterscheiden, die in Fig. 11 angegeben sind, da Elemente, die
bezüglich der Schaltungsfunktion jenen entsprechen, die in Fig. 11 gezeigt sind, auf
dieselbe Weise arbeiten, die Operation der Schaltung der Fig. 36 weggelassen.
-
Ebenso gleich zur Fig. 35 wird in Fig. 37, obwohl in ihr Bezugszeichen angegeben
sind, die sich von jenen unterscheiden, die in Fig. 12 angegeben sind, da Elemente,
die bezüglich der Schaltungsfunktion jenen entsprechen, die in Fig. 12 gezeigt sind,
auf dieselbe Weise arbeiten, die Operation der Schaltung der Fig. 37 weggelassen.
-
Wie es aus den unter Bezugnahme auf die beigefügten Zeichnungen erklärten
Ausführungsbeispielen klar wird, ist die Unterbrechungssteuerung gemäß der
vorliegenden Erfindung dadurch gekennzeichnet, daß dann, wenn die Prioritätspegel 2n
oder kleiner sind, die Prioritätspegel in der Reihenfolge von 2n T 2n-2 T ... 2&sup0;
abgetastet werden und die Prioritätspegel basierend auf den Vorgabewerten bei nur
einer Zeitgabe abgetastet werden. Daher kann, selbst wenn Unterbrechungsanfragen
mit denselben Prioritätspegeln miteinander konkurrieren, ein Unterbrechungs-
Anfragesignal mit dem höchsten Prioritätspegel aus den konkurrierenden
Unterbrechungsanfragen mit nur (n+1) Zeitgaben erfaßt werden.
-
Die Erfindung ist somit unter Bezugnahme auf die spezifischen
Ausführungsbeispiele gezeigt und beschrieben worden. Jedoch sollte angemerkt werden, daß die
vorliegende Erfindung keineswegs auf die Details der dargestellten Strukturen
beschränkt ist, sondern Änderungen und Abänderungen durchgeführt werden können.