DE69422212T2 - Unterbrechungsanordnung - Google Patents
UnterbrechungsanordnungInfo
- Publication number
- DE69422212T2 DE69422212T2 DE1994622212 DE69422212T DE69422212T2 DE 69422212 T2 DE69422212 T2 DE 69422212T2 DE 1994622212 DE1994622212 DE 1994622212 DE 69422212 T DE69422212 T DE 69422212T DE 69422212 T2 DE69422212 T2 DE 69422212T2
- Authority
- DE
- Germany
- Prior art keywords
- module
- sub
- interrupt
- bus
- priority
- 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 - Fee Related
Links
- 230000015654 memory Effects 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 6
- 230000008878 coupling Effects 0.000 claims description 3
- 238000010168 coupling process Methods 0.000 claims description 3
- 238000005859 coupling reaction Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 claims 1
- 238000000034 method Methods 0.000 description 5
- 230000000873 masking effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Description
- Diese Erfindung bezieht sich im allgemeinen auf Unterbrechungsanordnungen (Interrupt-Anordnungen) zur Benutzung mit Datenverarbeitungssystemen.
- Herkömmliche interne Architekturen von Datenverarbeitungssystemen enthalten einen Bus für die Übertragung von Befehlen und Daten zwischen den einzelnen Elementen des Verarbeitungssystems.
- Typischerweise leitet ein Prozessor die Betriebsweise des Busses. Eine periphere Einrichtung, die an den Bus geschaltet ist, kann eine Unterbrechungsanforderung erzeugen, durch Senden eines Signals auf einer oder mehreren Unterbrechungsanforderungs (IRQ)-Leitungen des Busses. Zum Beispiel kann eine Zeitgebereinrichtung eine Unterbrechungsanforderung erzeugen, wenn sie eine bestimmte Zeit erreicht. Der Prozessor überwacht die IRQ-Leitungen und beim Bestimmen eines Signals sendet er einen Befehl aus, mit dem erfragt wird, welche Einrichtung das Signal gesendet hat.
- Die in Frage kommende Einrichtung identifiziert sich selbst und die Unterbrechungsanforderung wird durch den Prozessor bedient. Oftmals können mehr als eine Unterbrechungsanforderung zur selben Zeit anhängig sein, und so gestattet die Benutzung von Techniken zur Prioritätsordnung der Unterbrechungen die Organisation der Prioritäten der Unterbrechungsanforderungen zwischen den Peripherieeinrichtungen, wodurch gewährleistet wird, daß die dringenden Anforderungen zuerst behandelt werden.
- Gerichtete Unterbrechungen werden gewöhnlich genutzt, um die Flexibilität der Unterbrechungsbehandlung zu erhöhen. Entwürfe von neueren Mikroprozessorsystemen enthalten Module, die mehr als eine Unterbrechungsanforderungsquelle umfassen.
- Ein Problem dieser Anordnung ist, daß die Flexibilität von gerichteten Unterbrechungen und Unterbrechungsprioritätsverfahren verloren wird, wenn sie mit mehreren Unterbrechungsanforderungsquellen benutzt werden.
- Die EP-A-528 139 beschreibt einen programmierbaren Unterbrechungsprioritätskodierer, der Unterbrechungen von an einen Bus geschalteten Einrichtungen auffängt, und welcher so angepaßt ist, um es zu gestatten, daß mehr als eine Einrichtung dieselbe Prioritätsebene haben können.
- Diese Erfindung ist bestrebt, eine Anordnung einer Unterbrechungsarchitektur bereitzustellen, in welcher die oben genannten Nachteile gelindert werden.
- Gemäß der vorliegenden Erfindung, wie sie durch den unabhängigen Anspruch 1 definiert ist, wird eine Unterbrechungsanordnung zur Benutzung in einem Modul bereitgestellt, das an einen Bus eines Datenverarbeitungssystems gekoppelt ist, wobei das System eine Unterbrechungsfolge besitzt, wobei das Modul umfaßt: eine Vielzahl von Teilmodulen, wobei jedes Teilmodul eine Unterbrechungsanforderungsquelle mit einem Steuereingang enthält und Prioritätsinformationen über die Unterbrechungsanforderungsquelle zur Bestimmung einer Reihenfolge der Priorität zwischen Teilmodulen mit aktiven Unterbrechungsanforderungsquellen umfaßt; einen Teilmodulbus mit einer Vielzahl von Leitungen, der zu dem Steuereingang jedes Teilmoduls gekoppelt ist; eine Schnittstelle zur Kopplung zu dem Bus des Datenverarbeitungssystems, die an den Teilmodulbus gekoppelt ist, wobei die Schnittstelle Prioritätsinformationen über die Anordnung zur Bestimmung einer Ordnung der Priorität zwischen dem Modul und anderen an den Systembus geschalteten Modulen enthält, wobei die Schnittstelle auch ein Steuermittel enthält, zur Bereitstellung von Steuersignalen an die Steuereingänge der Teilmodule über den Teilmodulbus in Reaktion auf Unterbrechungssignale von dem Systembus, wobei die Schnittstelle angeordnet ist, um die Prioritätsinformationen des Teilmoduls mit der höchsten Priorität mit den Prioritätsinformationen der Schnittstelle zu kombinieren, zur Bereitstellung vollständiger Prioritätsinformationen zur Erstellung einer Ordnung der Priorität zwischen Modulen mit aktiven Unterbrechungsanforderungsquellen, wodurch es gestattet wird, daß die Unterbrechungsanforderungsquellen der Teilmodule durch die Unterbrechungsfolge des Systembusses bedient werden.
- Deshalb kann der Bus Unterbrechungsdienste an die Unterbrechungsanforderungsquellen der Teilmodule in der Unterbrechungsanordnung über die Schnittstelle und mit Hilfe der Steuersignale bereitstellen.
- Jedes Teilmodul kann auch Speicher enthalten, die Prioritätsinformationen über die Unterbrechungsanforderungsquelle dieses Teilmoduls umfassen, zur Bestimmung einer Ordnung der Priorität zwischen Teilmodulen mit aktiven Teilmodulunterbrechungsanforderungsquellen.
- Es wird anerkannt werden, daß auf diesem Wege die Flexibilität gerichteter Unterbrechungen und Unterbrechungsprioritätsverfahren aufrecht erhalten wird, wenn sie mit mehreren Teilmodulunterbrechungsanforderungsquellen benutzt werden.
- Eine beispielhafte Ausführungsform der Erfindung wird nun unter Bezugnahme auf die angefügten Zeichnungen beschrieben, in welchen:
- Fig. 1 in Blockdiagrammform eine bevorzugte Ausführungsform einer Unterbrechungsanordnung gemäß der Erfindung zeigt; und
- Fig. 2 ein Flußdiagramm zeigt, welches die Arbeitsweise der bevorzugten Ausführungsform nach Fig. 1 darstellt.
- Detaillierte Beschreibung einer bevorzugten Ausführungsform In Fig. 1 ist eine Unterbrechungsanordnung gezeigt, die in ein Modul 5 eingefügt ist. Eine Modulunterbrechungsschnittstelle 100 des Moduls 5 ist an einen Bus 101 eines Verarbeitungssystems, wie beispielsweise ein Computer, geschaltet. Der Bus 101 ist an einen Prozessor und an andere Module (nicht gezeigt) des Verarbeitungssystems gekoppelt. Ein Teilmodulbus 102 ist an die Modulunterbrechungsschnittstelle 100 gekoppelt. Eine Vielzahl von Teilmodulen 103, 104, 105 besitzen auch Verbindungen zu dem Teilmodulbus 102, so daß über den Teilmodulbus 102 und die Modulunterbrechungsschnittstelle 100 jedes Teilmodul 103, 104, 105 mit dem Bus 101 kommunizieren kann.
- Der Bus 101 enthält Adreß- und Steuerleitungen 111, eine Adreßaustast (AS)-Leitung 112, Entscheidungs (ARB)-Leltungen 113, Datenleitungen 114 und Unterbrechungsanforderungs (IRQ)- Leitungen 125.
- Der Teilmodulbus 102 enthält eine Unterbrechungsbestätigungs (IACK)-Leitung 120, Adreß- und Steuerleitungen 121, eine Entscheidungs (ARB)-Leitung 122, eine Vektor (VECT)-Leitung 123, eine ARACK-Leitung 124, Datenleitungen 125 und Unterbrechungsebenenleitungen 126.
- In Bezugnahme auf das Teilmodul 103 sind Speicher zum Halten der Prioritätsinformationen über das Teilmodul 103 bereitgestellt. Die Prioritätsinformationen enthalten Entscheidungsinformationen.
- Ein Teilmodulentscheidungsspeicher 10 hält den Wert der Entscheidungsebene für das Teilmodul 103, und ein Teilmodulunterbrechungsebenenspeicher 11 hält den Wert der Unterbrechungsprioritätsebene für das Teilmodul 103.
- Ein Teilmodulunterbrechungsanforderungszwischenspeicher 12 verriegelt eine Teilmodulunterbrechungsanforderungsbedingung 9 für die Dauer der Entscheidung, um eine Bedingungsänderung während der Entscheidung zu verhindern. Eine Teilmoduldeko dierlogikanordnung 13 ist gekoppelt, um die zwischengespeicherte Unterbrechungsbedingung von dem Teilmodulunterbrechungsanforderungszwischenspeicher 12 und die Unterbrechungsprioriätsebene von dem Teilmodulunterbrechungsebenenspeicher 11 zu empfangen.
- Die Unterbrechungsebenenleitungen 126 des Teilmodulbusses 102 sind zu der Teilmoduldekodierlogikanordnung 13 zur Bereitstellung eines Unterbrechungsanforderungssignals an diese gekoppelt. Eine Teilmodulebenenvergleichslogikanordnung 14 ist auch gekoppelt, um den Unterbrechungsprioritätsebenenwert von dem Teilmodulunterbrechungsebenenspeicher 11 zu empfangen, und sie ist auch an die IACK-Leitung 120 und die Adreß- und Steuerleitungen 121 des Teilmodulbusses 102 gekoppelt.
- Eine Teilmodulsteuerlogikanordnung 15 ist gekoppelt, um Entscheidungsebenenwerte sowohl von dem Teilmodulentscheidungsspeicher 10 als auch von der Teilmodulebenenvergleichsanordnung 14 zu empfangen, und ist auch an die ARB-Leitung 122 und die ARACK-Leitung 124 des Teilmodulbusses 102 gekoppelt. Ein Teilmodulvektornummerntreiber 16 ist gekoppelt, um einen Eingang von der Teilmodulsteuerlogikanordnung 15 zu empfangen, und ist auch an die Datenleitungen 125 und die VECT-Leitung 123 des Teilmodulbusses 102 gekoppelt.
- In Bezug auf die Modulunterbrechungsschnittstelle 100 ist ein Modulvektornummernspeicher 106 an die Datenleitungen 114 des Busses über einen Modulmultiplexer 110 gekoppelt. Der Modulmultiplexer 110 ist auch an die Datenleitungen 125 des Teilmodulbusses 110% gekoppelt, so daß keine Vektornummernsignale von dem Modulvektornummernspeicher 106 in dem Modulmultiplexer 110 mit Teilvektornummernsignalen von den Datenleitungen 125 des Teilmodulbusses 102 kombiniert werden können, um vollständige Vektornummernsignale zu bilden, die für die Datenleitungen 114 des Busses 101 geeignet sind.
- Eine an die Modulunterbrechungsschnittstelle 100 geschaltete Trägerkette 119 ist an die Teilmodulsteuerlogikanordnung 15 jedes Teilmoduls (103, 104, 105) in Reihe gekoppelt, zur Bereitstellung eines Berechtigungs/Verbotssignals an diese.
- In ähnlicher Weise ist ein Modulentscheidungsspeicher 107 an die ARB-Leitungen 113 und die AS-Leitung 112 des Busses 101 über eine Modulentscheidungslogikanordnung 109 gekoppelt. Die Modulentscheidungslogikanordnung 109 ist auch an die ARB- Leitung 122, die VECT-Leitung 123 und die ARACK-Leitung 124 des Teilmodulbusses 102 gekoppelt, so daß Teilentscheidungssignale von dem Modulentscheidungsspeicher 107 mit Teilentscheidungssignalen von der ARB-Leitung 122 des Teilmodulbusses 102 innerhalb der Modulentscheidungslogikanordnung 109 kombiniert werden können, um vollständige Entscheidungssignale zu bilden, die für die ARB-Leitungen 113 des Busses 101 geeignet sind.
- Eine Modulunterbrechungsbestätigungsdekodieranordnung 108 ist zwischen die IACK-Leitung 120 des Teilmodulbusses 102 und die Adreß- und Steuerleitungen 111 des Busses 101 gekoppelt, wobei sie ein Signal auf der IACK-Leitung 120 erzeugt, in Reaktion auf ein Signal, welches einen Unterbrechungsentscheidungszyklus auf den Adreß- und Steuerleitungen 111 des Busses 101 anzeigt. Die Adreß- und Steuerleitungen 111 des Busses 101 haben auch eine direkte Verbindung zu den Adreß- und Steuerleitungen 121 des Teilmodulbusses 102.
- Die Unterbrechungsebenenleitungen 126 des Teilmodulbusses 102 sind direkt an die IRQ-Leitungen 115 des Busses 101 geschaltet.
- In Fig. 2 ist ein Flußdiagramm einer typischen Unterbrechungsfolge gezeigt.
- In Block 201 tritt eine Unterbrechungsanforderungsbedingung in dem Teilmodul 103 ein, die Teilmodulunterbrechungsanforderungsquelle 9 erzeugt ein Unterbrechungsanforderungssignal, welches durch den Teilmodulunterbrechungszwischenspeicher 12 zu der Teilmoduldekodier logikanordnung 13 geleitet wird. Der Teilmodulunterbrechungsebenenspeicher 11 stellt an die Teilmoduldekodieranordnung 13 einen Wert bereit, um dort zu entscheiden, ob Unterbrechungen für eine bestimmte Unterbrechungsanforderungsprioritätsebene gestattet oder verboten sind.
- Wenn die Unterbrechungsbedingung vom Teilmodulunterbrechungsebenenspeicher 11 gestattet ist, plaziert die Teilmoduldekodierlogikanordnung 13 die entsprechende Unterbrechungsanordnung auf den Unterbrechungsebenenleitungen 126.
- Im Block 301 wird dann das Signal auf den Unterbrechungsebenenleitungen 126 über die Modulunterbrechungsschnittstelle 100 direkt zu den IRQ-Leitungen 115 des Busses und darauf zu dem Prozessor geleitet.
- Jede Anzahl der Unterbrechungsanforderungsquellen der Teilmodule kann zur selben Zeit aktiv sein, mit unterschiedlichen oder identischen Unterbrechungsebenen und mit unterschiedlichen oder identischen Entscheidungsnummern. Auch kann jedes andere an den Bus 101 gekoppelte Modul eine oder mehrere aktive Unterbrechungsquellen haben.
- Im Block 401 arbeitet der Prozessor durch einen Befehl eines Softwareprogramms. Am Ende des Befehls innerhalb des Programms tritt der Prozessor in den Block 402 ein und sucht nach dem Unterbrechungsanforderungssignal höchster Prioritätsebene auf den IRQ-Leitungen 115 des Busses 101. Der Prozessor führt einen Vergleich zwischen der Ebene der höchsten Anforderung und einer internen Unterbrechungsmaskierungsebene aus.
- Wenn die interne Maskierungsebene höher oder gleich der höchsten Unterbrechungsanforderungsprioritätsebene ist, fährt der Prozessor mit dem nächsten Befehl in dem Programm fort und kehrt zu Block 401 zurück. Alle existierenden Unterbrechungsanforderungen bleiben anhängig. Der Prozessor setzt die Ausführung der Befehle des Softwareprogramms fort, kehrt zu Block 402 zurück, um den Vergleich am Ende jedes Befehls auszuführen.
- Wenn die höchste Prioritätsunterbrechungsebenenanforderung höher als die Prozessorunterbrechungsmaskierungsebene wird, dann stoppt der Prozessor seine Ausführung des Programms und geht zum Block 403, wo er einen Entscheidungszyklus beginnt, um eine Unterbrechungsvektornummer von der Quelle der Unterbrechungsanforderung mit der höchsten Priorität zu erhalten. Der Prozessor stellt diesen Entscheidungszyklus durch Aktivierung der Adreß- und Steuerleitungen 111 des Busses 101 bereit, um alle Module darüber zu informieren, daß dies eine Anforderung einer Unterbrechungsvektornummer für die anhängige Unterbrechungsanforderungsquelle mit der höchsten Priorität ist.
- Der Prozessor stellt die Unterbrechungsebenennummer bereit, die zu entscheiden ist. Die zu entscheidende Ebene ist gewöhnlich auf den Adreß- und Steuerleitungen 111 des Busses 101 gezeigt, die während des Unterbrechungsentscheidungszyklus nicht anderweitig benutzt werden, aber andere Busleitungen können auch benutzt werden. An diesem Punkt tritt der Prozessor in den Block 404 ein und wartet auf die Unterbrechungsvektornummer Von der Teilmodulunterbrechungsanforderungsquelle, entsprechend der zu bedienenden Ebene.
- Im Block 302 überwacht die Modulunterbrechungsentscheidungsdekodieranordnung 108 die Adreß- und Steuerleitungen 111 des Busses 101 und aktiviert ein Signal auf der IACK-Leitung 120 des Teilmodulbusses 102 in Reaktion auf ein Unterbrechungsentscheidungssignal, das auf den Adreß- und Steuerleitungen 111 ermittelt wurde.
- Im Block 202 veranlaßt das Signal auf der IACK-Leitung 120 des Teilmodulbusses 102, daß der Teilmodulunterbrechungsanforderungszwischenspeicher 12 jedes Teilmoduls 103, 104, 105 verriegelt wird (nicht transparent), und daß die Teilmodulebenenvergleichsanordnung 14 den Wert des Teilmodulunterbrechungsebenenspeichers 11 mit der Ebene vergleicht, die von dem Prozessor auf den Adreß- und Steuerleitungen 111 des Busses über die Adreß- und Steuerleitungen 121 des Teilmodulbusses 102 gekennzeichnet ist.
- Wenn die Teilmodulebenenvergleichsanordnung 14 ein negatives Ergebnis an die Teilmodulsteuerlogikanordnung 15 anzeigt, nimmt die Steuerlogik 15 nicht an der Entscheidung zwischen Teilmodulen teil, die ARB- und ARACK-Signale werden nicht aktiviert und somit reagiert das Teilmodul 103 nicht auf den aktuellen Unterbrechungsentscheidungszyklus, und es kehrt zu Block 201 zurück.
- Wenn die Teilmodulebenenvergleichsanordnung 14 ein positives Ergebnis an die Teilmodulsteuerlogikanordnung 15 anzeigt, dann geht das Teilmodul 103 zum Block 203, wo die Teilmodulsteuerlogikanordnung 15 die ARACK-Leitung 124 aktiviert, um der Unterbrechungsmodulentscheidungslogikanordnung 109 anzuzeigen, daß wenigstens ein Teilmodul eine positive Antwort auf den Unterbrechungsentscheidungszyklus hat. Alle anderen Teilmodule auf dem Teilmodulbus 102 mit anhängigen Unterbrechungsanforderungen führen dieselbe Entscheidung zur selben Zeit aus. Deshalb kann die ARACK-Leitung 124 gleichzeitig von mehr als einem Teilmodul angesteuert werden, aber die Unterbrechungsmodulentscheidungslogikanordnung 109 muß nur wissen, daß ein oder mehrere Teilmodule zu antworten wünschen, und nicht wie viele zu antworten wünschen.
- Die Teilmodulsteuerlogikanordnung 15 steuert die ARACK- Leitung 124 und die ARB-Leitung 122 des Teilmodulbusses 102 zur selben Zeit. Die Entscheidungsanordnung 10 stellt ein geeignetes Signal dafür bereit. Die ARB-Leitung 122 ist typischerweise eine Vorlade-/Entladeleitung, so daß verschiedene Unterbrechungsanforderungsquellen dieselbe Leitung aktivieren können. Das Signal auf der ARB-Leitung 122, welches von der Entscheidungsspeicheranordnung 10 gewonnen wurde, kommt an der Modulunterbrechungsschnittstelle 100 zur selben Zeit wie das ARACK-Signal an, wo sie mit zusätzlichen Signalen von dem Modulentscheidungsspeicher 107 verknüpft werden, um die vollständige Entscheidungsnummer zu bilden, die die höchste Entscheidungsebene der aktiven Unterbrechungsanforderungen in dem Modul 5 anzeigt.
- Im Block 303 sendet dann die Modulentscheidungslogikanordnung 109 das vollständige Entscheidungsnummernsignal auf den ARB- Leitungen 113 des Busses 101, welches die höchste Entscheidungsebene der aktiven Unterbrechungen in dem Modul S zeigt. Die Modulentscheidungslogikanordnung 109 geht dann zum Block 304 und nimmt mit anderen Modulen auf dem Bus 101 an dem Zwischen-Modulentscheidungsprozeß teil, um zu bestimmen, welches von diesen auf den Unterbrechungsbestätigungszyklus zu reagieren hat.
- Auf dem Bus 101 wird ein Zeitschlitz für jedes Bit der Entscheidungsnummer verwendet. Jedes teilnehmende Modul sendet ein Entscheidungsbit, überwacht das Entscheidungsbit auf dem Bus 101, vergleicht das überwachte Bit mit dem gesendeten, welches entweder von der Entscheidung zurückgezogen wird, wenn das Entscheidungsbit auf dem Bus verschieden, zu dem gesendeten Wert ist, oder die Entscheidung durch dieselbe Prozedur mit dem nächsten Entscheidungsbit fortgesetzt wird, wenn die Werte übereinstimmen. Deshalb gewinnt das Modul mit der höchsten Entscheidungsnummer eventuell die Modulentscheidung und wird ausgewählt, um auf den Unterbrechungsbestätigungszyklus zu antworten.
- Auch im Block 203 findet die Entscheidung über die Teilmodule statt, um zu bestimmen, welches auf den Unterbrechungsentscheidungszyklus zu antworten hat. Wenn die Steuerlogik 15 den Wert des Teilmodulentscheidungsspeichers 10 auf der ARB- Leitung 122 sendet, wird die ARB-Leitung 122 auch überwacht, um festzustellen, ob der Wert derselbe Wert der gesendeten Entscheidungsebene ist. Wenn die Bedingung der ARB-Leitung 122 von der Entscheidungsebene des Speichers 10 verschieden ist, nimmt das Teilmodul 103 nicht weiter an der Reaktion auf den Unterbrechungsentscheidungszyklus teil.
- Wenn die Bedingung auf der ARB-Leitung 122 dieselbe wie die Entscheidungsebene des Speichers 10 ist, gewinnt das Teilmodul die Entscheidung.
- Mehr als ein Teilmodul kann eine Unterbrechungsanforderung mit derselben Unterbrechungsebene und demselben Entscheidungswert anhängig haben. Deshalb kann mehr als ein Teilmodul gleichzeitig die Entscheidung im Block 203 gewinnen und in den Block 204 gehen.
- Im Falle eines mehrfachen Gewinnens ist es nicht wichtig, welche der Unterbrechungen zuerst bedient wird, da sie die gleiche Priorität haben, aber um zu vermeiden, das zwei gemeinsam versuchen zu antworten, wird die Trägerkette 119 benutzt. Das Signal der Trägerkette 119 entsteht an der Modulunterbrechungsschnittstelle 100 und breitet sich durch die Teilmodulsteuerlogikanordnung 15 von jedem Teilmodul 103, 104, 105, die an den Teilmodulbus 102 gekoppelt sind, aus. Das Signal von der Modulunterbrechungsschnittstelle 100 zu dem ersten Teilmodul ist immer positiv (gestattet). Die Teilmodulsteuerlogikanordnung 15 veranlaßt das Ausgangssignal der Trägerkette 119 ebenfalls positiv zu sein, wenn der Eingang der Trägerkette 119 positiv ist und das Teilmodul keine Unterbrechungsanforderung anhängig hat, die während des aktuellen Unterbrechungsbestätigungszyklus beantwortet werden kann.
- Die Unterbrechungslogik in jedem Teilmodul führt das Eingangssignal der Trägerkette 119 weiter, wie es während eines Unterbrechungsbestätigungszyklus empfangen wurde, wenn eine Unterbrechungsanforderung in diesem Teilmodul nicht anhängig ist, wenn der Ebenenvergleich nicht eintritt und/oder wenn der auf der ARB-Leitung gesendete Wert nicht paßt. Wenn das erste Teilmodul, welches einen positiven Eingang der Trägerkette 119 und eine anhängige Unterbrechungsanforderung hat, bei dem der Ebenenvergleich wahr ist, und wo die ARB-Leitung 122 zu dem gesendeten Wert paßt, dann negiert dieses Modul den Ausgang der Trägerkette zu dem nächsten Teilmodul. Alle nachfolgenden Teilmodule erkennen einen negativen (verboten) Eingang der Trägerkette 119, so daß sie nicht auf den aktuellen Unterbrechungsbestätigungszyklus antworten können.
- Das Ergebnis der Überwachung der ARB-Leitung 322 und der Entscheidung der Trägerkette 119 ist, daß ein Maximum eines Teilmoduls gegeben ist, welches das Recht gewonnen hat, auf den Unterbrechungsbestätigungszyklus in dem Modul 5 zu antworten. Das ist jenes. Teilmodul, bei welchem die Teilmodulsteuerlogikanordnung 15 einen positiven Eingang von der Trägerkette 119 und einen negativen Ausgang auf die Trägerkette 119 hat.
- Während der Entscheidung der Trägerkette 119 zwischen den Teilmodulunterbrechungsanforderungsquellen findet die allgemeine Entscheidung noch auf dem Bus 101 im Block 304 statt. Zum Zeitpunkt, an welchem die Unterbrechungsentscheidungslogik 109 die Entscheidung auf dem Bus 101 beendet hat, ist die Teilmodulentscheidung zwischen den Teilmodulen ebenfalls beendet, wodurch ein einziges gewinnendes Teilmodul bereitgestellt wird. Wenn das Modul 5 die Entscheidung des Busses 101 nicht gewinnt, stoppen sowohl die Modulunterbrechungsschnittstelle 100 als auch das ausgewählte Teilmodul 103 die Reaktion auf den aktuellen Unterbrechungsbestätigungszyklus.
- Wenn das Modul 5 die Entscheidung gewinnt, aktiviert die Unterbrechungsentscheidungslogik 109 die VECT-Leitung 123. Im Block 205 reagiert der Teilmodulvektornummerntreiber 16 auf das Signal auf der VECT-Leitung 123, wenn die Steuerlogik 15 anzeigt, daß das Teilmodul die Teilmodulentscheidung gewonnen hat. Der Teilmodulvektornummerntreiber 16 stellt die Teilmodulvektornummer auf dem Teilmodulbus 102 bereit. Diese Nummer ist nur ein Teil der vollständigen Vektornummer, die vom Prozessor benötigt wird. Der Modulmultiplexer 110 fügt die zusätzlich benötigten Modulvektorbits von dem Modulvektornummernspeicher 106 an, um die vollständige Vektornummer zu bilden. Im Block 305 wird die vollständige Vektornummer auf dem Bus 101 für den Prozessor abgelegt. Im Block 404 empfängt der Prozessor erfolgreich die Vektornummer vom Bus 101, der Unterbrechungsbestätigungszyklus wird als beendet betrachtet.
- Der Prozessor benutzt die Vektornummer, um eine Unterbrechungsroutine aufzurufen, die einzigartig für die zu bearbeitende Unterbrechungsanforderungsquelle ist. Die Unterbrechungsroutine umfaßt eine Reihe von Befehlen, diese Befehle sind für die Bedienung des Teilmoduls in der Weise verantwortlich, daß die bediente Unterbrechungsanforderung aus dem Teilmodul entfernt wird. Der Prozessor beendet jeden Befehl der Unterbrechungsroutine im Block 401, der Prozessor kehrt zum Block 402 zurück und vergleicht die höchste Unterbrechungsanforderungsebene auf der IRQ-Leitung 115 des Busses 101 mit der Unterbrechungsmaskierungsebene, wie oben beschrieben, und reagiert entsprechend, entweder durch Zurückkehren zum Block 401 und Fortsetzen mit dem nächsten Befehl der aktuellen Unterbrechungsroutine- oder des Programms, oder durch Beginn eines anderen Unterbrechungsbestätigungszyklus durch Bereitstellung der Entscheidungstaktung auf dem Bus 101 im Block 403.
- Auf diese Weise ist der Prozessor fähig, Unterbrechungen zu bedienen, die von mehreren Teilmodulunterbrechungsanforderungsquellen in Modulen eintreffen, während die volle Nutzung von gerichteten Unterbrechungsverfahren und Zwischen-Modulentscheidungen ermöglicht ist. Vom Bus 101 aus gesehen, erscheint die Anordnung ein herkömmliches Modul zu sein, welches den gegebenen Protokollen des Systems folgt.
- Es wird anerkannt werden, daß alternative Ausführungsformen zu der zuvor beschriebenen hergestellt werden können, wie beispielsweise die Benutzung einer besonderen Bussteuereinheit für den Bus 101, anstelle des Prozessors.
- Alternative Kopplungen können anstelle des Teilmodulbusses genutzt werden, wie beispielsweise direkte Drahtverbindungen, faseroptische Pfade oder andere Kommunikationspfade. Die Steuernachrichten von dem Bus 101 können entsprechend dem benutzten System variieren, so wie die Anordnung der Steuernachrichten in dem Modul variieren kann.
Claims (8)
1. Unterbrechungsanordnung für die Benutzung in einem Modul
(5), das an einen Bus (101) eines
Datenverarbeitungssystems gekoppelt ist, wobei das System eine
Unterbrechungsfolge hat, wobei das Modul (5) umfaßt:
- eine Vielzahl von Teilmodulen (103, 104, 105), wobei
jedes Teilmodul eine Unterbrechungsanforderungsquelle
(9) mit einem Steuereingang (14) enthält und
Prioritätsinformationen über die Unterbrechungsanforderungsquelle
(9) zur Bestimmung einer Ordnung der Priorität zwischen
Teilmodulen mit aktiven
Unterbrechungsanforderungsquellen umfaßt;
- einen Teilmodulbus (102) mit einer Vielzahl von
Leitungen (119, 120, 121, 122, 123, 124, 125, 126), der an den
Steuereingang (14) jedes Teilmoduls gekoppelt ist;
- eine Schnittstelle (100) zur Kopplung zu dem Bus (101)
des Datenverarbeitungssystems, und die zu dem
Teilmodulbus (102) gekoppelt ist, wobei die Schnittstelle (100)
Prioritätsinformationen über die Anordnung zur
Bestimmung einer Ordnung der Priorität zwischen dem Modul (5)
und anderen an den Systembus (101) geschalteten Modulen
umfaßt, wobei die Schnittstelle (100) auch Steuermittel
(108) zur Bereitstellung von Steuersignalen an die
Steuereingänge (14) der Teilmodule (103, 104, 105) über den
Teilmodulbus (102) in Reaktion auf Unterbrechungssignale
von dem Systembus (101) enthält;
wobei die Schnittstelle (100) angeordnet ist, um die
Prioritätsinformationen (10, 11) des Teilmoduls mit höchster
Priorität mit den Prioritätsinformationen (106, 107) der
Schnittstelle (100) zu kombinieren, um vollständige
Prioritätsinformationen zur Erzeugung einer Ordnung der
Priorität zwischen Modulen mit aktiven
Unterbrechungsanforde
rungsquellen bereitzustellen, um zu gestatten, daß die
Unterbrechungsanforderungsquellen (9) der Teilmodule (103,
104, 105) von der Unterbrechungsfolge des Systembusses
(101) bedient werden.
2. Anordnung nach Anspruch 1, wobei die Steuermittel (108)
angeordnet sind, um die Funktion des Teilmodulbusses (102)
zu steuern.
3. Anordnung nach Anspruch 1 oder 2, wobei jedes Teilmodul
(103, 104, 105) Speicher (10, 11) enthält, die die
Prioritätsinformationen über die
Unterbrechungsanforderungsquelle (9) dieses Teilmoduls umfassen.
4. Anordnung nach einem der vorhergehenden Ansprüche, wobei
jedes Teilmodul (103, 104, 105) ein Logikmittel (14)
enthält, welches angeordnet ist, um die von den
Steuermitteln (108) gesendeten Steuersignale zu empfangen, zu
interpretieren und zu beantworten.
5. Anordnung nach einem der vorhergehenden Ansprüche, wobei
die Schnittstelle (100) Speicher (106, 107) enthält, die
die Prioritätsinformationen über die Anordnung umfassen.
6. Anordnung nach Anspruch 4, wobei eine Trägerkette (11ß) an
jedes Teilmodul (103, 104, 105) in Reihe gekoppelt ist,
zur Bereitstellung eines Signals, welches angeordnet ist,
um die Logikmittel (14) der Teilmodule (103, 104, 105) in
Reaktion auf den Status des vorhergehenden Teilmoduls
gültig oder ungültig zu schälten, wobei im Fall eines
Teilmodulprioritätsgewinns die Trägerkette (119)
angeordnet ist, um die Logikmittel der nachfolgenden Teilmodule
ungültig zu schalten, damit nur ein Teilmodul Priorität
hat.
7. Anordnung nach einem der Ansprüche 4 bis 6, einschließlich
dessen, daß die Prioritätsinformationen
Entscheidungsinformationen (10, 107) enthalten, zur Ermöglichung der
Entscheidung zwischen Unterbrechungsanforderungsquellen
(9), die ansonsten dieselbe Priorität haben.
8. Anordnung nach Anspruch 7, wobei jedes Teilmodul einen
Zwischenspeicher (12) enthält, zur Aufrechterhaltung der
Unterbrechungsanforderungsbedingung beim Beginn der
Entscheidung für die Dauer der Entscheidung, um eine
Bedingungsänderung während der Entscheidung zu verhindern.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9306955A GB2276740B (en) | 1993-04-02 | 1993-04-02 | Interrupt arrangement |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69422212D1 DE69422212D1 (de) | 2000-01-27 |
DE69422212T2 true DE69422212T2 (de) | 2000-07-27 |
Family
ID=10733269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1994622212 Expired - Fee Related DE69422212T2 (de) | 1993-04-02 | 1994-02-10 | Unterbrechungsanordnung |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP0618536B1 (de) |
JP (1) | JP3732239B2 (de) |
DE (1) | DE69422212T2 (de) |
GB (1) | GB2276740B (de) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101495979B (zh) | 2006-06-27 | 2012-09-05 | 汤姆逊许可证公司 | 执行仲裁的方法和装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4016539A (en) * | 1973-09-12 | 1977-04-05 | Nippon Electric Company, Ltd. | Asynchronous arbiter |
US4181941A (en) * | 1978-03-27 | 1980-01-01 | Godsey Ernest E | Interrupt system and method |
JPH0259949A (ja) * | 1988-08-26 | 1990-02-28 | Toshiba Corp | ディジーチェーン割込み処理装置 |
GB2257549B (en) * | 1991-07-06 | 1995-05-03 | Motorola Israel Ltd | Modular data/control equipment |
US5257383A (en) * | 1991-08-12 | 1993-10-26 | Stratus Computer, Inc. | Programmable interrupt priority encoder method and apparatus |
-
1993
- 1993-04-02 GB GB9306955A patent/GB2276740B/en not_active Expired - Fee Related
-
1994
- 1994-02-10 DE DE1994622212 patent/DE69422212T2/de not_active Expired - Fee Related
- 1994-02-10 EP EP19940102030 patent/EP0618536B1/de not_active Expired - Lifetime
- 1994-03-29 JP JP08388994A patent/JP3732239B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0618536B1 (de) | 1999-12-22 |
EP0618536A1 (de) | 1994-10-05 |
GB2276740B (en) | 1998-01-07 |
GB9306955D0 (en) | 1993-05-26 |
JP3732239B2 (ja) | 2006-01-05 |
JPH076123A (ja) | 1995-01-10 |
GB2276740A (en) | 1994-10-05 |
DE69422212D1 (de) | 2000-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3486299T2 (de) | Bus-Arbitrierungssystem. | |
DE3888353T2 (de) | Unterbrechungsknoten zum vorsehen von unterbrechungsanforderungen auf einem anstehenden bus. | |
DE69429279T2 (de) | Multiprozessor-programmierbares unterbrechungskontrollersystem mit prozessor-integrierten unterbrechungskontrollern | |
DE69108434T2 (de) | Mehrgruppen-Signalprozessor. | |
DE3883532T2 (de) | Knoten für die bedienung von unterbrechungsanforderungsnachrichten auf einem anstehenden bus. | |
DE3043894C2 (de) | ||
DE2856483C2 (de) | ||
DE3650036T2 (de) | Mehrfachport-Diensterweiterungsadapter für Übertragungssteuerung. | |
DE3687426T2 (de) | Mehrprozessorsystem-architektur. | |
DE3914265C2 (de) | ||
DE69222469T2 (de) | Verfahren zur Verminderung der Restbandbreite eines Busses in einem Rechnersystem | |
DE3882991T2 (de) | Anordnung und methode zur erzielung von unterbrechungen mit einem "pended bus". | |
DE2165767A1 (de) | Datenverarbeitungssystem | |
DE3882988T2 (de) | Verfahren und anordnung zur einleitung von vorgängen in einem multiprozessordatenverarbeitungssystem mit verwendung von mehrverriegelungsanzeigen. | |
DE2523372B2 (de) | Eingabe-ZAusgabe-Anschlußsteuereinrichtung | |
DE68915074T2 (de) | Integrierte Zeitgeberschaltung mit mehreren Kanälen und zugeordnetem Bedienungsprozessor. | |
DE69515355T2 (de) | Mehrfacharbitrierungsschema | |
DE68920929T2 (de) | Zeitgeberkanal mit mehreren Zeitgeberreferenzmerkmalen. | |
DE69026018T2 (de) | Rechnersystem mit Vorrichtung zur Verbesserung der Wirksamkeit von Übertragungen zwischen einem Hauptprozessor und Peripheriegeräten verbunden durch einen SCSI-Bus | |
DE3642324A1 (de) | Multiprozessoranlage mit prozessor-zugriffssteuerung | |
DE3851445T2 (de) | Durch Direktspeicherzugriff gesteuertes System. | |
DE2758023C3 (de) | Anschlußschaltung für eine Eingabe-/ Ausgabeschnittstelle einer Datenverarbeitungsanlage | |
DE3485980T2 (de) | Datenverarbeitungsapparat zur verbindung mit einem gemeinsamen uebertragungsbus in einem datenverarbeitungssystem. | |
DE2719278C3 (de) | Schaltungsanordnung für hintereinander geschaltete Steuereinheiten zum Anschluß von Ein-/Ausgabegeräten an eine Datenverarbeitungsanlage | |
DE68922545T2 (de) | Zugeordneter Dienstprozessor mit Übertragungsmöglichkeiten zwischen Kanälen. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Free format text: SCHUMACHER & WILLSAU, PATENTANWALTSSOZIETAET, 80335 MUENCHEN |
|
8339 | Ceased/non-payment of the annual fee |