DE2659662C3 - Prioritätsstufengesteuerte Unterbrechungseinrichtung - Google Patents

Prioritätsstufengesteuerte Unterbrechungseinrichtung

Info

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
Application number
DE2659662A
Other languages
English (en)
Other versions
DE2659662B2 (de
DE2659662A1 (de
Inventor
Hans-Joachim Ing.(Grad.) 7312 Kirchheim Heinrich
Dieter Dr. 5300 Bonn Schuett
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
IBM Deutschland GmbH
Original Assignee
IBM Deutschland GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by IBM Deutschland GmbH filed Critical IBM Deutschland GmbH
Priority to DE2659662A priority Critical patent/DE2659662C3/de
Priority to GB47674/77A priority patent/GB1590203A/en
Priority to FR7735959A priority patent/FR2376462A1/fr
Priority to US05/861,056 priority patent/US4172284A/en
Priority to JP15071777A priority patent/JPS5394848A/ja
Publication of DE2659662A1 publication Critical patent/DE2659662A1/de
Publication of DE2659662B2 publication Critical patent/DE2659662B2/de
Application granted granted Critical
Publication of DE2659662C3 publication Critical patent/DE2659662C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling 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.
Insbesondere für Datenverarbeitungsanlagen der
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.
Oio TaK<»m in Piff 7 oiKt pinp I IKorcirht iihpr Hip für
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-
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)

  1. 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. 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ütsstufe
    enthalt, 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. 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. 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. 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. 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 vorliegt
    to
DE2659662A 1976-12-30 1976-12-30 Prioritätsstufengesteuerte Unterbrechungseinrichtung Expired DE2659662C3 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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) &#34;verfahren und einrichtung zum uebertragen von daten zwischen zentraleinheiten oder prozessoren von mehrprozessorsystemen&#34;
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