DE2659662C3 - Prioritätsstufengesteuerte Unterbrechungseinrichtung - Google Patents
Prioritätsstufengesteuerte UnterbrechungseinrichtungInfo
- Publication number
- DE2659662C3 DE2659662C3 DE2659662A DE2659662A DE2659662C3 DE 2659662 C3 DE2659662 C3 DE 2659662C3 DE 2659662 A DE2659662 A DE 2659662A DE 2659662 A DE2659662 A DE 2659662A DE 2659662 C3 DE2659662 C3 DE 2659662C3
- Authority
- DE
- Germany
- Prior art keywords
- interrupt
- priority
- level
- priority level
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Description
Die Erfindung betrifft eine prioritätsstufengesteuerte LJnterbrechungseinrichtung nach dem Oberbegriff des
Anspruchs 1.
Das reaktionsschnelle Behandeln von Unterbrechungsanforderungen, der verschiedensten Unterbrechungsqueilen, spielt auf dem Gebiete der elektronischen Datenverarbeitungsanlagen, insbesondere für die
Steuerung von Prozessen und Verfahrensabläufen eine wesentliche Rolle. Die Bedeutung der ceaktionsschnellen Behandlung von Unterbrechungsanforderurgen bei
derartigen Systemen beruht darauf, daß im allgemeinen für die Prozeß- und Verfahrenssteuerung eine Vielzahl
von Unterbrechungsquellen, beispielsweise Sensoren für Temperatur, Druck, Feuchtigkeit, Durchflußmengen
und dergleichen, Unterbrechungen bzw. Änderungen des Prozeß- oder Verfahrensablaufs erforderlich machen.
Die bisher für die Bedienung von Unterbrechungsanforderungen vorgesehenen Lösungen beruhen auf sehr
kostspieligen Einrichtungen mit komplizierten Schaltkreisstrukturen, die zwar die erforderliche Reaktionsgeschwindigkeit aufbringen, aber wegen ihrer komplizier-
ten Struktur sehr aufwendig und fehleranfällig sind.
Ein anderer Weg, der deshalb oftmals beschriften wurde, hat sich in höherem Maße bestimmter
Programmstrukturen für die Prioritätsstufenumschaltung bedient Dieser Weg ist daher weniger aufwendig,
etwas fehlersicherer aber auch für viele Anwendungsfälle in seiner Reaktion zu langsam.
Ferner ist in der DE-AS 12 34 059 eine Steuereinrichtung in einem Multi-Rechnersystem beschrieben,
welche die Zuteilung von Prioritätsrängen an die einzelnen Rechner des Systems, die sich Programme
oder Programmteil unterschiedlicher Prioritätsränge
gegenseitig zuweisen oder wieder abnehmen, vornimmt Jedem Rechner wird dabei dynamisch immer nur
derjenige Prioritätsrang des gerade von ihm bearbeiteten Programmteils für die Dauer der Verweilzeit dieses
Programmteiles in ihm übergeben. Es handelt sich also um eine schaltkreisgesteuerte Zuteilung von Programmrangen, wobei eine Schieberegisterstruktur verwendet wird, bei der in Gruppen von Stufen
Prioritätsränge fest ,.'ugeordnet sind. Eine Zuteilung des
Prioritätsranges erfolgt durch Verschiebung der Adresse des Rechners oder der Rechnernummer in dem
Schieberegister in Richtung auf höhere oder niedrigere Prioritätsränge, je nach der Priorität das gerade in
einem Rechner laufenden Programmteils.
Die bekannte Lösung befaßt sieh jedoch nicht mit der prioritätsgerechten Bedienung, d. h. der Verarbeitung
von Unterbrechungsanforderungen unterschiedlicher Priorität in einer Datenverarbeitungsanlage, wobei es
hier gleichgültig ist ob es sich um ein Einzel- oder MultiprozessorsystetTi handelt.
mittleren bis unteren Leistungsklasse, die eine äußerst schnelle Reaktion auf Unterbrechungsanforderungen
erfordern, ist der Mangel an einer effektiven, preiswerten und zuverlässigen Lösung zur Bedienung von
Unterbrechungsanforderungen festzustellen. Die Erfindung hat sich daher die Aufgabe gestellt, mittels einer
schaltkreisgesteuerten und damit sehr reaktionsschnellen Lösung für die oben angesprochene Kategorie von
Datenverarbeitungsanlagen Unterbrechungsanforderungen bedienen zu können.
Gelöst wird diese Aufgabe der Erfindung durch die im Hauptanspruch angegebenen Merkmale.
Vorteilhafte Ausgestaltungen, weitere technische Merkmale sowie Weiterbildungen des Gegenstandes
der Erfindung sind den Unteransprüchen zu entnehmen.
Durch die Verwendung einer schaltkreisorientierten Technologie, in der das Prioritätsstufenumschalten
programmorientierter Lösungen wegfällt, konnte die Reaktionszeit verkürzt und durch die Vermeidung von
Schalthäufigkeiten sowie des Durchlaufens von Tafeln, die Betriebssicherheit wesentlich erhöht werden.
Im folgenden wird ein Ausfüh:^uigsbeispiel der
Erfindung anhand der Figuren näher beschrieben. Es zeigt
F i g. 1 ein generelles Blockschaltbild der Unterbrechungseinrichtung;
Fig.Γ' ein Ablaufdiagramm zur Erläuterung der
Arbeitsweise der Unterbrechungseinrichtung, nach den Fig. Iund3;
F i g. 3 ein ausführliches Blockschaltbild der in F i g. 1 dargestellten Unterbrechungseinrichtung;
F i g. 4 eine Prinzipdarstellung zur Veranschaulichung der Darstellung von Ausgangstorschaltungen;
Fig.5 das Blockschaltbild einer Einrichtung zur Erzeugung der für den Betriebsablauf erforderlichen
Torsteuersignale;
Fig.6 Impulszeitdiagramme zur Darstellung des
Verlaufs der von einem Haupttaktgeber und einem Untertaktgeber erzeugten Zeittaktimpulse;
F i g. 7 eine Tabelle zur Darstellung der Bedeutung
der Ausgangssignale verschiedener Systemkomponenten und
F i g. 8 eine Prinzipdarstellung des weitgehend parallelen Ablaufs in einer Unterbrechungseinrichtung nach
Fig. 3.
F i g. 1 zeigt in vereinfachter Blockdarstellung eine Schaltungsanordnung, die es gestattet, Unterbrechungsanforderungen verschiedener Unterbrechungsquellen in
sehr kurzer Reaktionszeit zu bearbeiten. Eine Unterbrechungsanforderung wird zu diesem Zweck über die
Leitung 5 in ein Unterbrechungsregister (INT-REG) % übertragen, dort kurzzeitig zwischengespeichert und
über die Ausgangsleitung 7 in die erste Stufe SR 0 eines Schieberegisters 8 eingegeben.
Die hi-sr zugrunde gelegte Unterbrechungsanforderung ist eine Informationsgruppe, die aus einer Angabe
über die Unterbrediungsprioritätsstufe LV <ind einer
Angabe' über die Prioritätsunterstufe SLVL besteht, sowie über ein Unterbrechungssteuerbit IB verfügt,
Angaben also, dia die Bedeutung der eine Unterbrechung anfordernden Unterbrechungsquelle kennzeichnen.
Die in der ersten Stufe 5770 des Schieberegisters 8
befindliche Unterbrechungsanforderung wird mit Hilfe des Vergleichers (COAiPOO) U, mit einer im Maskenregister (MR 00) 14 gespeicherten Maske, die der
Prioritätsstufe LVmit der höchsten Priorität entspricht,
verglichen. Stellt der Vergleicher eine Übereinstim-
mung fest, dann wird ein Teil der die Unterbrechungsanforderung darstellenden Information, beispielsweise die
Prioritätsunterstufe SLVL in einen Stapelspeicher {FIFO) übertragen. Details der Unterbrechungsquellen
sowie der Prioritätsstufe sind im oberen Teil dc F i g. 3
dargestellt Diese Übertragung erfolgt aber nur dann, wenn der Stapelspeicher noch nicht voll ist. Nur in
diesem Fall wird das Steuerbit 6 als Kennbit auf binär Null eingestellt und in die Bitposition 6 von SRO
eingegeben. to
Die Arbeitsweise des Stapelspeichers 15 verläuft nach dem an sich bekannten Algorithmus FIFO, nachdem die
zuerst in den Stapel eingegebene Information auch als erste für eine Weiterverarbeitung ausgegeben wird.
Zur Überprüfung, ob in dem Stapelspeicher 15 n
überhaupt eine Information, d. h. eine Unterbrechungsanforderung gespeichert ist, ist eine aus einem weiteren
Vergleicher(COMP01)16und einem weiteren Maskenrcgistcr [MROi) JS gebildete Prüfeinrichtung vorgesehen, die überprüft, ob eine bestimmte Bitkonfiguration
vorliegt, die der Stapelspeicher immer dann erzeugt, wenn er Information aufgenommen hat, oder am
Ausgang des Stapelspeichers eine Information mit einem gültigen Bitmuster bereitsteht, wobei dann die
erwähnte Vergleichseinrichtung auf das Vorhandensein aller gültigen Bitkonfigurationen der Information
aufprüft. Dieses sind also die beiden prinzipiellen Möglichkeiten der Überprüfung des Stapelspeichers
darauf, ob er überhaupt Information enthält.
Erzeugt nun der Vergleicher 16 ein positives Ergebnis, dann wird die Prioritätsunterstufeninformation in das Instruktionsadressenregister {!ARO) 22
übertragen, wo sie zusammen mit der im Basisregister (B-REGO) 20 gespeicherten Information eine Adresse
bildet, die auf den ersten Befehl der Unterbrechungsroutine zeigt, die eine Unterbrechung dieser Unterbrechungsklasse und Unterbrechungsunterklasse bedient.
Hinter diesen Unterbrechungsklassen und Unterbrechungsunterklassen verbergen sich ganz spezifische
Maschinen in- oder -externe Unterbrechungsquellen, die individuelle Unterbrechungsbehandlungen erfordern. Auf diese Weise gewinnt man die Adresse der für
eine Unterbrechungsquelle spezifischen Unterroutine im Steuerspeicher.
F i g. 2 zeigt als Ablaufdiagramm in großen Zügen die «
Arbeitsweise der in F i g. 1 schematisch dargestellten Unterbrechungseinrichtung. Bei 50 ist angedeutet, daß
eine Unterbrechungsquelle ihre Unterbrechungsanforderung anzeigt Diese wird, wie bei 51 dargestellt ist, zu
dem Eingabebus übertragen, der durch folgenden Komplex in F i g 1 realisiert ist: Übertragungsleitung 7,
Schieberegisterstufe 8, Vergleicher 11 sowie Maskenregister 14. Wie 52 zeigt, wird, wenn eine Unterbrechungsanforderung die erste Stufe des Schieberegisters des
Eingabebusses erreicht hat, ein Vergleichsvorgang durchgeführt, bei dem die Unterbrechungsstufe LV
sowie das Kennbit 6 des Stapelspeichers 15 mit den Sollwerten verglichen wird, die sich im Maskenregister
14 in Fig. 1 befinden. Damit der Vergleicher 11 ein
positives Ergebnis, d h. eine Übereinstimmung feststellen kann, wird von der Unterbrechungsanforderung
erwartet, daß sie die höchste Priorität, d.h. die
Prioritätsstufennummer 00 haben muß. Ferner muß das Kennbit für den Belegungszustand des Stapelspeichers
(nicht voll) auf »0« eingestellt sein.
Der Entscheidungsknoten 52 würde bei einem positiven Vergleichsergebnis zum nächsten Arbeitsschritt weiterführen, der bei 54 dargestellt ist Bei einem
negativen Vergieichsergebnis, d. h. einer Nichtübereinstimmung der Prioritätsstufennummer mit der im
Maskenregister 14 gespeicherten, wie bei S3 dargestellt, einen Verschiebeschritt auslösen, der die Unterbrechungsanforderung in die nächste Schieberegisterstufe
SR1 in F i g. 1 weiterschieben würde, wo sich dann ein
weiterer Vergleichsvorgang anschließen würde, bei dem die Unterbrechungsprioritätsstufe der weitergeschobenen Unterbrechungsanforderung mit der um eins
niedrigeren Unterbrechungsprioritätsstufe mittels einer Maske verglichen wird, die sich von der vorhergehenden Maske im Maskenregister 14 nur durch einen
höheren Wert unterscheidet.
Würde auch hier eine Nichtübereinstimmung festgestellt, dann würde die Unterbrechungsanforderung in
die nächste Schieberegisterstufe verschoben, wo sich die gleichen Vorgänge mit einer anderen Maske wiederholen, was so lange geschehen würde, bis ein positives
Vere!eichser°sbn!s D?fund?n wird, so deß di? Unt^rbr?-
chungsanforderung dann in dem Zweig der Unterbrechungseinrichtung weiterverarbeitet würde, die in ihrem
Prioritätsrang mit dem Prioritätsrang der Unterbrechungsanforderung übereinstimmt.
Auf diese Weise wird dafür Sorge getragen, daß die Unterbrechungsanforderungen prioritätsgerecht verarbeitet werden. In dem Zweig, in dem eine Übereinstimmung mit der Maske gefunden wurde, wird dann die
weiter· Verarbeitung der Unterbrechungsanforderung vorgenommen. Es wird als nächstes, wie bei 54
dargestellt ist, die Prioritätsunterstufennummer in den Stapelspeicher 15 des entsprechenden Zweiges übertragen und eine Indikation erzeugt, die einer Vergleichseinrichtung, bestehend aus einem Vergleicher 16 und einem
Maskenregister 19, ermöglicht festzustellen, ob eine Information im Stapelspeicher vorhanden ist.
Wenn die Vergleichseinrichtung, wie bei dem Entscheidungsknoten 55 in F i g. 2 angedeutet ist, zu
dem Ergebnis kommt, daß in dem zugehörigen Stapelspeicher eine Information enthalten ist. dann wird
diese weiterverarbeitet, indem zunächst im Entscheidungsknoten 57 geprüft wird, ob eine Blockierung der
ihr zugeordneten Prioritätsstufe durch eine Unterbrechungsbearbeitung einer höheren Unterbrechungsstute
vorliegt
Stellt der Entscheidungsknoten 55 dagegen fest daß im zugehörigen Stapelspeicher keine Information
vorhanden ist dann begibt er sich in Abfrageschleife 56, die zum Ziele hat festzustellen, wann wieder eine
Information aus dem zugeordneten Stapelspeicher 15 zu verarbeiten ist
Wenn im Entscheidungsknoten 57 festgeste"'> wird,
daß eine Blockierung durch die Bearbeitung einer Unterbrechungsanforderung m einer höheren Prioritätsstufe nicht vorliegt, dann wird die Routine, die der
vorliegenden Unterbrechungsstufe zugeordnet ist, bearbeitet Liegt aber eine Blockierung durch eine
Unterbrechung mit einer höheren Priorität vor, dann hat die vorliegende Unterbrechungsroutine zu warten,
bis alle Unterbrechungen mit höherer Priorität abgearbeitet sind. Diese bei 58 in Fig.2 angedeutete
Warteschleife entfällt für Unterbrechungen die auf der
höchsten Unterbrechungsstufe ausgeführt werden.
Der Entscheidungsknoten 59 dient dazu, festzustellen,
ob die auf der zugehörigen Prioritätsstufe laufende, ältere Routine also eine ältere Routine mit der gleichen
Priorität, bereits bis rü Ende bearbeitet wurde.
Wenn eine solche ältere Routine auf der gleichen Prioritätsstufe bereits abgearbeitet ist, dann wird, wie
bei 61 angegeben ist. zunächst eine Blockierung niedrigerer Prioritätsstufen vorgenommen (z. B. Prioritätsstufe
binär 0) blockiert die Prioritätsstufen 10 und II). Ferner wird die Adresse der ersten Instruktion der
zugehörigen Unterbrechungsroutine gebildet und diese in das zugehörige Instruktionsadressenregister 22
übertragen.
Wird im Entscheidungsknoten 59 dagegen festgestellt,
t'aß die ältere Routine der gleichen Prioritätsstufe noch nicht vollständig bearbeitet ist. dann wird, wie 60
zeigt, in eine Warteschleife eingetreten, die so lange durchlaufen wird, bis der F.ntscheidungsknoten 59 die
Abarbeitung der alten Routine feststellt oder weitere
Blockierungen nach 61 von Unterbrechungsanfordcrungcn
höherer Priontätsstiifen nicli! vorgenommen
wurden. In diesem Fall wird die Warteschleife beendet und die Bearbeitung der betrachteten Unterbrechungsanforderung mich 61 durchgcfiihi I.
Die Unterbrechungseinrichtung und die Steuerung ihres Hctricbsabiauts geht aus den l· i g. s. 7 und κ mit
größerer Deutlichkeit hervor. In f i g. 3 ist ein System
dargestellt, daß vier Unterbrcchungsquellen (INTSQ
bis 3) 1 bis 4 bedienen kann. Jede Unterbrechungsanforderung, die von einer dieser Quellen erzeugt wird,
enthält die Unterbrechungsprioritätsstufe LV. die dem Prioritätsrang der Unterbrechungsquelle entspricht,
eine Prioritätsunterstufe SLVL sowie ein Unterbrechungsbit IR. das auf I gesetzt wird, wenn die
zugehörige Unterbrechungsquelle eine Unterbrechungsanforderung an das Unterbrechungssystem ausgibt.
ober Ausgangstorschalningen werden die Unterbrechungsanforderungen
der einzelnen Unterbrechungsquellen 1 bis 4 zu den verschiedenen Taktzeiten TO bis
7~3 über die Sammelleitung 5 in das Unterbrechungsregister
6 übertragen, wenn das Unterbrechungsbil IBder
entsprechenden Unterbrechungsquelle auf binär 1 gesetzt ist und außerdem das Unterbrechungsregister 6
leer ist. Die Erzeugung der Torsteuerimpulse TO bis TlO geht im wesentlichen aus den Fig. 5, 6 und 7
hervor, auf die zunächst eingegangen wird, bevor eine ausführliche Erläuterung der F i g. 3 gegeben wird.
die Erzeugung der Torsteuersignale notwendigen Bedingungen. Das Unterbrechungsregister (INT-REG)
6 kann entweder leer sein, was in der Statusspalte in F i g. 7 mit einem großen fbezeichnet ist, oder nicht leer
sein, was durch ein NE gekennzeichnet ist. Die Codespalte zeigt die hierzu gewählte Codierung,
nämlich X1 für leer und Xi für voll. Das Bit, das hierfür
vorgesehen ist, ist das Bit 6, das für den Leer-Zustand eine binäre 1 und für den Nicht-Ieer-Zustand eine binäre
0 ist. Die gleiche Codierung ist für die Stufen 8,9 und 10 des Schieberegisters in F i g. 3 vorgesehen, wobei die
Codierung mit X 2 bzw. X~2 bezeichnet ist
Hinsichtlich des Stapelspeichers 15 hat man vier Bedingungen zu überprüfen, nämlich entweder ob der
Stapelspeicher voll (F) oder nicht voll (NF) ist.
Bedingungen also, die eine weitere Übertragung von Unterbrechungsanforderungen in den Stapelspeicher
steuern, oder aber ob der Stapelspeicher leer (E) oder nicht leer (NE) ist, eine Bedingung die für die Bildung
der Adresse der ersten Mikroinstruktion einer Unterbrechungsroutine
durch die Übertragung dieser Adresse in das Instruktionsadressenregister 22 entscheidend
ist
Ferner ist zu untersuchen, ob das Instruktionsadressenregister
22 leer (E) oder nicht leer (NE) ist
Außerdem ist, wie aus Fig. 2 zu erkennen ist, zu überprüfen, ob eine Unterbrechungsanforderung mit
einer höheren Stufe gerade läuft, so daß die betrachtete blockiert ist. Dieses ist in F i g. 7 in der vorletzten Zeile
dargestellt. Eine Blockierung (B) ist durch das Vorhandensein des Ausgangssignals X 6, eine nicht
vorliegende Blockierung (NB) durch das Steuersignal A"6 dargestellt. In der letzten Zeile schließlich sind die
Bedingungen und Ausgangssignale des Vergleichers 11 in Fig. 3 dargestellt. Ein positiver Vergleich, d.h. eine
Übereinstimmung ist mit EQ, eine Nichtübereinstimmung
mit NEQ bezeichnet. Die hierzu gehörenden Steuersignale sind X 7 bzw. X 7. Sie entstehen bei der
Überprüfung der Bits 0,1 und 6.
In der liM/ten Spalte. Zeile 3. soll der Stern
kennzeichnen, daß es sich um das Bit 6 des obersten im
Stapelspeicher befindlichen Wortes und die beiden Sterne in der letzten Spalte, Zeile 4, angeben, daß es sich
um Bit b im untersten im Stapelspeicher 15 gespeicherien Wuri iiaiiueli. Diese Biii wciuci'i a!i binär 0 OiVtiüpi.
wenn der Stapelspeicher nicht voll oder nicht leer ist.
Mit den Steuersignalen X MX~\ bis XTIXl wird die
Erzeugung der Torsteuersignale 7*0 bis TlO und damit der sequentielle Ablauf der Unterbrechungseinrichtung
gesteuert. In der in Fig. 3 gezeigten Anordnung sind
manche Steuersignale z.B. X2 unterschieden in X20
und X 21, wobei diese Unterscheidung angibt, in welcher Unterbrechungsstufe (Prioritätsstufe) dieses
Signal erzeugt wird, wobei die Bezeichnung auf ein spezielles Ausführungsbeispiel, daß hier gewählt wurde,
bezogen ist.
Mit der in F i g. 3 dargestellten Unterbrechungseinrichtung können Unterbrechungen behandelt werden,
die über insgesamt vier Unterbrechungsprioritätsstufen verfugen. Eine Erweiterung auf noch mehr Unterbrechungsprioritätsstufen
ist ohne Schwierigkeiten möglich. Unterbrechungsanforderungen mit der höchsten Unterbrechungsprioritätsstufe (LV=OO) wird von der
Anordnung in der äußersten linken Spalte und Anforderungen mit der niedrigsten Unterbrechungsprioritätsstufe
(Z-V=I!) von der Anordnung in dcr
äußersten rechten Spalte verarbeitet. Deshalb wird die 7iir Taktzeit T4 aus dem Unterbrechunesreeister 6 über
die Leitung 7 in der ersten Stufe {SR O) 8 des Schieberegisters übertragene Unterbrechungsanforderung,
die der zweithöchsten Unterbrechungsstufe angehört, auch von der dieser Stufe zugeordneten
nachfolgenden Einrichtung, die wie bereits erwähnt wurde, Anforderungen der höchsten Unterbrechungsstufe bedient, nicht bearbeitet werden können. Dieses
entscheidet sich durch den zur Taktzeit T5 durchgeführten Vergleich der Bits 0, 1 und 6 mit dem im
Maskenregister (MROO) 14 gespeicherten »Sollw-Bits.
Dieser Vergleich umfaßt die Prioritätsstufe LV. die in den Bits 0 und 1 der Unterbrechungsanforderung
enthalten ist und den Vergleich des Bits 6. das als binäre 0 erzeugt und in die Bitposition 6 des Schieberegisters 8
eingegeben wird, wenn der Stapelspeicher 15 noch nicht vollends gefüllt ist Da sich die Prioritätsstufe der ersten
Unterbrechungsanforderung von der Unterbrechungsstufe im Maskenregister 14 unterscheidet, wird, auch
wie die Tabelle in F i g. 7 zeigt vom Vergleicher 11 das
Steuersignal X 70 erzeugt Infolgedessen erzeugt das UND-Tor 78 in F i g. 5 das Torsteuersignal Γ6, so daß
diese Unterbrechungsanforderung in die nächste Stufe (SR 1) 9 des Schieberegisters verschoben wird, wenn
diese Stufe außerdem frei ist (vgl. Erzeugung des Torsteuersignals 6 in F i g. 5).
Das Torstcucrsignal Γ7 leitet nunmehr den nächsten
Vergleichsvorgang ein, indem erneut die Prioritätsstufe LVder Unterbrechungsanforderung und der Wert des
Bits 6, der sich diesmal aber auf den Stapelspeicher 35 bezieht, zu dem Vergleicher 31 übertragen werden. Der
Vergleich mit der Maske im Maskenregister 34 verläuft positiv, so daß infolge der Übereinstimmung, das
Steuersignal X 7' erzeugt wird.
Wie Fig. 5 zeigt, kann nunmehr, weil auch der Stapelspeicher 35 nicht voll ist, die Prioritätsunterstufe
in den Stapelspeicher übertragen werden. Diese Unterbrechungsunterstufe ist gleichsam bis in die letzte
Stufe des Stapelspeichers durchgefallen, wo sie in der Bitposition 6 mit einer binären 0 versehen wird, da der
Stapelspeicher 35 nun nicht leer ist. Mit dem gleichen Torsteuersignal 7~8, mit dem die Prioritätsiinterstiife in
den Stapelspeicher 35 übertragen wurde, wird nun auch noch das zu untersuchende Bit 6 des untersten Wortes
im Stapelspeicher über die Leitung 38 in den Vergleicher 36 übertragen, wo dieses Bit mit dem im
Maskenregister 39 gespeicherten Bit verglichen wird. Da eineJJbereinstimmung vorliegt, wird das Steuersignal
X41 erzeugt. Das heißt also, daß der Stapelspeicher 35 nicht leer ist, so daß, wie F i g. 5 zeigt, mit Hilfe
des Torsteiiersignals Γ9 diese Prioritätsunterstufe
5LW. über die Leitung 37 in das Instruktionsadressenregister
(IAR1) 32 übertragen werden kann. Das gleiche Torsteuersignal Γ9 öffnet auch das Basisadressenregister
(BREGl) 40. so daß die Basisadresse über die Leitung 41 ebenfalls in das Instruktionsadressenregister
42 gelangen kann. Im Instruktionsadressenregister 42 wird aus diesen beiden Informationen die Instruktionsadresse
gewonnen, die auf die erste Instruktion in der gewünschten Unterbrechungsroutine zeigt. Hierbei
dient die im Register 40 befindliche Adresse als Basisadresse, mit der die Prioritätsunterstufe 5LVZ. als
Versatzadresse kombiniert wird. Dadurch wird erreicht, daß die Unterbrechung, die von einer bestimmten
Unterbrechungsquelle gewünscht wird, auch von der Unterbrechungsror.tine bedient wird, die hierfür vorgesehen
ist.
Wie bereits erwijhnt wurde, kann mit einer Steuerein-'
richtung, wie sie in F i g. 5 gezeigt ist, der Betrieb einer Unterbrechungseinrichtung nach Fig.3 gesteuert werden.
Die Steuereinrichtung besteht zunächst aus einem Haupttaktgenerator (MCL) 70, der den Haupttakt T
erzeugt. Außerdem ist ein Untertaktgenerator (SCL)TX
in vorhanden, der die feine zeitliche Rasterung des Haupttaktes vornimmt. Ferner sind UND-Tore72bis82
vorgesehen, welche die Torsteuersignale TO bis TlO erzeugen.
Um die Erläuterung der in F i g. 3 dargestellten
η Unterbrechungseinrichtung nicht mit der Angabe nicht
unbedingt notwendiger Torsteuersignale zu belasten, wurde auch die Einrichtung nach Fig. 5 als Ausführungsbeispiel
so konzipiert, daß sich nur dort diejenigen Torsleuersignale wiederfinden, die für das dort gewähl-
2» ic Ausführungsbeispiel erforderlich sind. Andere Ausführungsbeispiele
lassen sich anhand der F i g. 5 bis 7 leicht beschreiben.
F i g. 8 zeigt schließlich, daß die in F i g. 3 dargestellte Unterbrechungseinrichtung auch einer parallelen Be-
2% dienung mehrerer Unterbrechungsanforderungen fähig ist, sofern diese unterschiedlichen Unterbrechungsprioritätsstufen
angehören. Bezüglich Fig. 8 ist noch zu bemerken, daß die dort angeführten Steuersignale
entsprechend den in F i g. 7 gewählten allgemeinen
JO Bezeichnungen der Steuersignale gewählt wurden, d. h.
daß bei einem positiven Vergleichsergebnis in den Vergleichern 11, 31 .... das von diesen Vergleichern
erzeugte Ausgangssignal mit X 7 bezeichnet wird, unabhängig davon, ob der Vergleicher der Schieberegi-
)i sterstufe SRO. SR 1 oder SRn angehört. Die Feinunterteilung
der Taktsignale, wie sie in den Fig.3 und 5 vorgenommen wurde, ist in Fig.8 bewußt aus
Vereinfachungsgründen fortgelassen worden.
Hierzu 4 Blatt Zeichnungen
Claims (6)
- Patentansprüche:1, Prioritätsstufengesteuerte Unterbrechungseinrichtung zur Bedienung von Unterbrechungsanforderungen unterschiedlicher Priorität mit einem Schieberegister, bei dem jede Stufe einer Prioritätsstufe zugeordnet ist und mit einem Vergleicher je Stufe zur Überprüfung der in einer Unterbrechungsanforderung mitgeführten Prioritätsstufe, gekennzeichnet durch die Kombination folgender Merkmale:a) Die Information einer von einer Unterbrechungsquelle (1,2,3,4) vorliegenden Unterbrechungsanforderung unterschiedlicher Priorität wird in die erste Stufe (SR 0) des Schieberegisters (8, 9, 10) übertragen, die den höchsten Rang aller Prioritätsstufen besitzt;b) falls eine erste Vergleichseinrichtung (11, 14 bzw. 31, 34) in der ersten bzw. in den nachfolgenden Prioritätsstufen, die jeweils eine um Eins niedrigere Priorität repräsentieren, keine Obereinstimmung zwischen den zu vergleichenden Prioritätsstufen feststellt, wird die Information der Unterbrechungsanforderung in eine Stufe niedrigerer Priorität (SR(i+1)) des Schieberegisters übertragen;c) stellt eine oder mehrere der ersten Vergleichseinrichtungen hingegen in irgendeiner Prioritätsstufe Übereinstimmung zwischen den zu vergleichenden Prioritätsstufen fest, dann wird ein Teil (SL VL) der Information der Unterbrechungsanforderung in efo^n der jeweiligen Prioritätsstufe zugeordneten Stapelspeicher (FIFO(i)) übertragen, falls ^teser Stapelspeicher (FIFO /)) zu diesem Zeitpunkt nicht voll ist,d) eine zweite Vergleichseinrichtung (16, 19 bzw. 36,39) der jeweiligen Prioritätsstufe prüft, ob in den zugehörigen Stapelspeicher (HFO(Z)) eine Information — wie in Punkt c) höher bezeich-, net — übertragen wurde, wobei— im Nein-Falle weiter auf eine derartige Übertragung gewartet wird;— im Ja-Falle eine Überprüfung stattfindet, ob eine Blockierung der betrachteten Unterbrechungsanforderung durch eine Unterbrechungsbearbeitung auf einer höheren Prioritätsstufe stattfindet;e) falls keine — der im Punkt d) näher bezeichnete — Blockierung der betrachteten Unterbrechungsanforderung stattfindet, wird die an der Ausgangsstufe des jeweiligen Stapelspeichers anliegende Information (SLVL) in ein Instruktionsadressenregister (22) übertragen und mit einer Basisadresse aus dem Basisadressenregister (20) zu einer Instruktionsadresse kombiniert, die dann auf die erste Instruktion der für eine Bearbeitung der Unterbrechungsanforderung der entsprechenden Unterbrechungsquelle erforderlichen Unterbrechungsroutine zeigt.
- 2. Prioritätsstufengesteuerte Unterbrechungseinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die erste Vergleichseinrichtung (11, 14) aus einem Vergleicher (11) und aus einem Maskenregister (14) besteht, welches die codierte Darstellung der zugeordneten Unterbrechungsprioritütsstufeenthalt, wobei der Vergleicher einerseits mit der zugeordneten Stufe des Schieberegisters (8) und zwar mit dem Datenfeld, das die Unterbrechungspriorität der untersuchten Unterbrechungsanforderung enthält und andererseits mit dem Maskenregister verbunden ist und bei festgestellter Gleichheit ein Steuersignal (x7) erzeugt, das die in Punkt c) in Anspruch 1 näher bezeichnete Übertragung und bei Ungleichheit ein Steuersignal (x7) erzeugt, das die in Punkt b) näher bezeichnete Übertragung steuert,
- 3. Prioritätsstufengesteuerte Unterbrechungseinrichtung, nach Anspruch 2, dadurch gekennzeichnet, daß das Maskenregister (14) ferner mit einem Kennbit ladbar ist, das angibt, daß der Stapelspeicher (15) nicht voll ist und der Vergleicher (11) ferner mit derjenigen Speicherstelle (Bit 6) der Schieberegisterstufe (z.B. I) verbunden ist, die das in Abhängigkeit von dem Belegungszustand des Stapelspeichers erzeugte Kennbit enthält, so daß ein Steuersignal (x 7) dann erzeugt wird, wenn auch dieser Vergleich positiv ausfällt
- 4. Prioritätsstufengesteuerte Unterbrechungseinrichtung nach einem oder mehreren der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß die zweite Vergleichseinrichtung (16,19) aus einem Vergleicher (16) und einem Maskenregister (19) besteht, das eine Information enthält, die angibt, daß der Stapelspeicher (15) nicht leer ist und der Vergleicher einerseits mit der Ausgangsstufe des Stapelspeichers verbunden ist und zwar mit dem Bereich, der die Information bezüglich des Belegungszustandes des Stapelspeichers enthält und andererseits mit dem Maskenregister verbunden ist
- 5. Prioritätsstufengesteuerte Unterbrechungseinrichtung nach einem oder mehreren der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß die zweite Vergleichseinrichtung (16, 19) den Stapelspeicher (15) darauf überprüft ob er leer ist und dann ein Steuersignal (*4) erzeugt, das das in Punkt d) im Anspruch 1 näher bezeichnete Arbeitsspiel steuert
- 6. Prioritätsstufengesteuerte Unterbrechungseinrichtung nach einem oder mehreren der Ansprüche 1 bis 5, gekennzeichnet durch erste Tore, die über eine Leitung (12; F i g. 3) die codierte Prioritätsunterstufe in den Stapelspeicher (15) übertragen, wenn die erste Vergleichseinrichtung (11,14) die Übereinstimmung zwischen der Unterbrechungsprioritätsstufe der Unterbrechungsanforderung und derjenigen der zugeordneten Schieberegisterstufe feststellt und der Stapelspeicher nicht voll ist, durch zweite Tore, die über eine Leitung (17) die codierte Prioritätsunterstufe, die im Ausgangswort des Stapelspeichers enthalten ist, in einen bestimmten Bereich des Instruktionsadressenregisters (22) übertragen, wenn festgestellt wurde, daß der Stapelspeicher nicht leer ist, durch dritte Tore, die über die Leitung (21) die im Basisadressenregister (20) gespeicherte Basisadresse in einen bestimmten Bereich des Instruktionsadressenregisters (22) übertragen, wenn auch die Prioritätsunterstufe in das Instruktionsadressenregister übertragen wird, durch vierte Tore über welche die in der betrachteten Schieberegisterstufe gespeicherte Unterbrechungsanforderung in die Schieberegisterstufe übertragen wird, die der nächstniedrigeren Unterbrechungsprioritätsstufe zugeordnet ist, wenn der Vergleich der Unterbrechungsprioritätsstufe der Unterbrechüngsanforderung mit der Schieberegisterstufe zugeordneten Unterbrechungsprioritäts-stufe nicht übereinstimmt und außerdem die nachfolgende Sehieberegisterstufe nicht mit einer anderen LJnterbrechungsanforderung belegt ist und schließlich durch fünfte Tore, die am Ausgang des Instruktionsadressenregisters (22) angeordnet sind s und die Instruktionsadresse zum Steuerspeicher, in dem alle Unterbrechungsroutinen gespeichert sind, Obertragen, wenn keine Blockierung durch andere, höhere Unterbrechungsprioritätsstufen vorliegtto
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2659662A DE2659662C3 (de) | 1976-12-30 | 1976-12-30 | Prioritätsstufengesteuerte Unterbrechungseinrichtung |
GB47674/77A GB1590203A (en) | 1976-12-30 | 1977-11-16 | Data processing apparatus |
FR7735959A FR2376462A1 (fr) | 1976-12-30 | 1977-11-21 | Procede et dispositif d'interruption commandes par niveaux de priorite |
US05/861,056 US4172284A (en) | 1976-12-30 | 1977-12-15 | Priority interrupt apparatus employing a plural stage shift register having separate interrupt mechanisms coupled to the different stages thereof for segregating interrupt requests according to priority levels |
JP15071777A JPS5394848A (en) | 1976-12-30 | 1977-12-16 | Interruption processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2659662A DE2659662C3 (de) | 1976-12-30 | 1976-12-30 | Prioritätsstufengesteuerte Unterbrechungseinrichtung |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2659662A1 DE2659662A1 (de) | 1978-07-06 |
DE2659662B2 DE2659662B2 (de) | 1981-02-12 |
DE2659662C3 true DE2659662C3 (de) | 1981-10-08 |
Family
ID=5997093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2659662A Expired DE2659662C3 (de) | 1976-12-30 | 1976-12-30 | Prioritätsstufengesteuerte Unterbrechungseinrichtung |
Country Status (5)
Country | Link |
---|---|
US (1) | US4172284A (de) |
JP (1) | JPS5394848A (de) |
DE (1) | DE2659662C3 (de) |
FR (1) | FR2376462A1 (de) |
GB (1) | GB1590203A (de) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2846686C2 (de) * | 1978-10-26 | 1984-07-19 | Siemens AG, 1000 Berlin und 8000 München | Programmierbares Schaltwerk |
JPS5846098B2 (ja) * | 1978-10-30 | 1983-10-14 | 株式会社日立製作所 | ル−プバスネットワ−クシステムにおけるバス優先制御方式 |
EP0048767B1 (de) | 1980-09-27 | 1985-03-20 | Ibm Deutschland Gmbh | Prioritätsstufengesteuerte Unterbrechungseinrichtung |
JPS58501695A (ja) * | 1981-10-05 | 1983-10-06 | デイジタル イクイプメント コ−ポレ−シヨン | ドライブとコントロ−ラの間で直列通信を使用する二次記憶装置 |
SE435975B (sv) * | 1983-03-18 | 1984-10-29 | Ellemtel Utvecklings Ab | Anordning i ett datorstyrt telekommunikationssystem for att vid overforing av datainformation mellan en regional processor och en central processor medelst ett kosystem utfora lastreglering |
GB8329509D0 (en) * | 1983-11-04 | 1983-12-07 | Inmos Ltd | Computer |
AU6244686A (en) * | 1985-09-17 | 1987-03-19 | Codex Corporation | Multiple task control |
JPS63238630A (ja) * | 1987-03-26 | 1988-10-04 | Toshiba Corp | マイクロプロセツサの割込み制御装置 |
AU604345B2 (en) * | 1987-05-01 | 1990-12-13 | Digital Equipment Corporation | Interrupting node for providing interrupt requests to a pended bus |
AU604959B2 (en) * | 1987-05-01 | 1991-01-03 | Digital Equipment Corporation | Servicing interrupts using a pended bus |
US4953072A (en) * | 1987-05-01 | 1990-08-28 | Digital Equipment Corporation | Node for servicing interrupt request messages on a pended bus |
US5010515A (en) * | 1987-07-28 | 1991-04-23 | Raster Technologies, Inc. | Parallel graphics processor with workload distributing and dependency mechanisms and method for distributing workload |
US5193196A (en) * | 1988-04-04 | 1993-03-09 | Hitachi, Ltd. | Process request arbitration system which preferentially maintains previously selected process request upon receipt of a subsequent request of identical priority |
US5218703A (en) * | 1988-07-07 | 1993-06-08 | Siemens Aktiengesellschaft | Circuit configuration and method for priority selection of interrupts for a microprocessor |
US5072363A (en) * | 1989-12-22 | 1991-12-10 | Harris Corporation | Multimode resource arbiter providing round robin arbitration or a modified priority arbitration |
KR940001878B1 (ko) * | 1990-03-08 | 1994-03-10 | 가부시끼가이샤 히다찌세이사꾸쇼 | 멀티 프로세서시스템 및 인터럽션 제어장치 |
CA2050658C (en) * | 1990-09-14 | 1997-01-28 | John M. Peaslee | Dual hardware channels and hardware context switching in a graphics rendering processor |
KR950014373B1 (ko) * | 1990-11-02 | 1995-11-25 | 니뽄 덴끼 가부시끼 가이샤 | 인터럽트 제어기 |
GB2257549B (en) * | 1991-07-06 | 1995-05-03 | Motorola Israel Ltd | Modular data/control equipment |
WO1995010806A1 (fr) * | 1993-10-12 | 1995-04-20 | Sony Corporation | Dispositif et procede pour le controle d'interruptions |
US5506997A (en) * | 1994-01-28 | 1996-04-09 | Compaq Computer Corp. | Device for mapping a set of interrupt signals generated on a first type bus to a set of interrupt signals defined by a second type bus and combing the mapped interrupt signals with a set of interrupt signals of the second type bus |
US6539448B1 (en) * | 2000-05-26 | 2003-03-25 | Texas Instruments Incorporated | Priority first come first serve interrupt controller |
US20030204655A1 (en) * | 2002-04-24 | 2003-10-30 | Schmisseur Mark A. | Prioritizing vector generation in interrupt controllers |
US20120226842A1 (en) * | 2011-03-02 | 2012-09-06 | Research In Motion Limited, an Ontario, Canada corporation | Enhanced prioritising and unifying interrupt controller |
JP6056576B2 (ja) * | 2013-03-18 | 2017-01-11 | 富士通株式会社 | 割り込み要因を特定する方法及び装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL294820A (de) * | 1962-07-03 | |||
US3353160A (en) * | 1965-06-09 | 1967-11-14 | Ibm | Tree priority circuit |
DE1234059B (de) * | 1965-06-16 | 1967-02-09 | Telefunken Patent | Vorrangsteuerung fuer ein aus mehreren Rechnern bestehendes Datenverarbeitungssystem |
GB1248681A (en) * | 1969-01-08 | 1971-10-06 | Int Computers Ltd | Improvements in or relating to digital electrical information processing apparatus |
US3611305A (en) * | 1969-02-10 | 1971-10-05 | Scanders Associates Inc | Data processor interrupt system |
US3599162A (en) * | 1969-04-22 | 1971-08-10 | Comcet Inc | Priority tabling and processing of interrupts |
US3781815A (en) * | 1972-02-15 | 1973-12-25 | Ibm | Terminal interface for a serial loop communications system having store and forward capability |
US4020471A (en) * | 1975-06-30 | 1977-04-26 | Honeywell Information Systems, Inc. | Interrupt scan and processing system for a data processing system |
JPS5226124A (en) * | 1975-08-22 | 1977-02-26 | Fujitsu Ltd | Buffer memory control unit |
-
1976
- 1976-12-30 DE DE2659662A patent/DE2659662C3/de not_active Expired
-
1977
- 1977-11-16 GB GB47674/77A patent/GB1590203A/en not_active Expired
- 1977-11-21 FR FR7735959A patent/FR2376462A1/fr active Granted
- 1977-12-15 US US05/861,056 patent/US4172284A/en not_active Expired - Lifetime
- 1977-12-16 JP JP15071777A patent/JPS5394848A/ja active Granted
Also Published As
Publication number | Publication date |
---|---|
DE2659662B2 (de) | 1981-02-12 |
JPS5653783B2 (de) | 1981-12-21 |
US4172284A (en) | 1979-10-23 |
FR2376462A1 (fr) | 1978-07-28 |
GB1590203A (en) | 1981-05-28 |
JPS5394848A (en) | 1978-08-19 |
FR2376462B1 (de) | 1980-12-19 |
DE2659662A1 (de) | 1978-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2659662C3 (de) | Prioritätsstufengesteuerte Unterbrechungseinrichtung | |
EP0048767B1 (de) | Prioritätsstufengesteuerte Unterbrechungseinrichtung | |
DE3300261C2 (de) | ||
EP0010198B1 (de) | Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher | |
DE3035718C2 (de) | Signalprozessoranordnung mit Bedingungsunterbrechungseinheit | |
EP0011685B1 (de) | Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung | |
EP0014850B1 (de) | Einrichtung zur Erweiterung des Standard-Makroinstruktionssatzes in einer Datenverarbeitungsanlage | |
DE2251876B2 (de) | Elektronische datenverarbeitungsanlage | |
DE1774296B2 (de) | Restruktuierbare Steuereinheit für elektronische Digitalrechner | |
DE2054830C3 (de) | Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge | |
DE2747633A1 (de) | Dv-system mit einer unterbrechungseinrichtung | |
DE2202952C2 (de) | Datenverarbeitungsanlage | |
EP0062141B1 (de) | Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem | |
DE3123382A1 (de) | "verfahren und einrichtung zum uebertragen von daten zwischen zentraleinheiten oder prozessoren von mehrprozessorsystemen" | |
DE2458286A1 (de) | Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen | |
DE69428953T2 (de) | Prioritätskodierer | |
DE3344340A1 (de) | Datenprozessor mit einem steuerteil, der einen adressgenerator zum erzeugen von adressen enthaelt, die aus charakteristischen adressteilen zusammengesetzt sind | |
DE1499286B2 (de) | Datenbearbeitungsanlage | |
EP1435578B1 (de) | DMA-Kontroller um die gespeicherten Deskriptoren nach jedem Zugriff weiterzustellen | |
DE2118930C3 (de) | Verfahren und Schaltungsanordnung zum Überwachen von Anschlüssen in einem programmgesteuerten Verarbeitungssystem | |
DE69417123T2 (de) | Datenverarbeitungssystem mit serieller Schnittstelle | |
EP0494329B1 (de) | Schaltungsanordnung zur Abbildung des logischen Adressraums einer Prozessoreinheit auf den physikalischen Adressraum eines Speichers | |
DE60005157T2 (de) | Verfahren und anordnung für blockdatenübertragung | |
EP1191453B1 (de) | Vorrichtung zur Auswahl und Weiterleitung von empfangenen Unterbrechungsanfragen gemäss konfigurierbarer Konditionen | |
DE3335549A1 (de) | Ueberwachungseinrichtung fuer eine datenverarbeitungsanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OAP | Request for examination filed | ||
OD | Request for examination | ||
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |