DE3785209T2 - Datenverarbeitungssystem mit einer schnellen unterbrechung. - Google Patents
Datenverarbeitungssystem mit einer schnellen unterbrechung.Info
- Publication number
- DE3785209T2 DE3785209T2 DE19873785209 DE3785209T DE3785209T2 DE 3785209 T2 DE3785209 T2 DE 3785209T2 DE 19873785209 DE19873785209 DE 19873785209 DE 3785209 T DE3785209 T DE 3785209T DE 3785209 T2 DE3785209 T2 DE 3785209T2
- Authority
- DE
- Germany
- Prior art keywords
- signal
- processing unit
- cpu
- command
- system bus
- 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 - Lifetime
Links
- 238000012545 processing Methods 0.000 title claims description 42
- 230000004044 response Effects 0.000 claims description 30
- 238000000034 method Methods 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 24
- 239000011159 matrix material Substances 0.000 claims description 17
- 230000015654 memory Effects 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 4
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000008859 change Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 101000969327 Homo sapiens Methylthioribose-1-phosphate isomerase Proteins 0.000 description 6
- 102100021415 Methylthioribose-1-phosphate isomerase Human genes 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000009474 immediate action Effects 0.000 description 3
- 201000001432 Coffin-Siris syndrome Diseases 0.000 description 2
- 238000010794 Cyclic Steam Stimulation Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 102100038778 Amphiregulin Human genes 0.000 description 1
- 201000000222 Coffin-Siris syndrome 4 Diseases 0.000 description 1
- 101000809450 Homo sapiens Amphiregulin Proteins 0.000 description 1
- 101000859935 Homo sapiens Protein CREG1 Proteins 0.000 description 1
- 102100027796 Protein CREG1 Human genes 0.000 description 1
- 208000031708 autosomal dominant 16 intellectual disability Diseases 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- FPVGTPBMTFTMRT-NSKUCRDLSA-L fast yellow Chemical compound [Na+].[Na+].C1=C(S([O-])(=O)=O)C(N)=CC=C1\N=N\C1=CC=C(S([O-])(=O)=O)C=C1 FPVGTPBMTFTMRT-NSKUCRDLSA-L 0.000 description 1
- 238000012544 monitoring process 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Bus Control (AREA)
- Hardware Redundancy (AREA)
Description
- Die vorliegenden Patentanmeldungen sind wie die vorliegende Erfindung dem gleichen Anmelder zugewiesen und haben einen verwandten Inhalt:
- US-Patentanmeldung "System Management Apparatus for a Multiprocessor System", Erfinder George J. Barlow, Elmer W. Carroll, James W. Keeley, Wallace A. Martland, Victor M. Morganti, Arthur Peters und Richard Zelley, mit Seriennummer 869,164, eingereicht am 30. Mal 1986;
- US-Patentanmeldung "Apparatus and Method for Interprocessor Communication", Erfinder Victor M. Morganti, Patrick E. Prange, James B. Geyer und George J. Barlow, mit Seriennummer 869,147, eingereicht am 30. Mai 1986; und
- US-Patentanmeldung "Multiprocessor Level Change Synchronization Apparatus", Erfinder James W. Keeley und George J. Barlow; mit Seriennummer 879,858, eingereicht am 27. Juni 1986.
- Diese Erfindung betrifft Datenverarbeitungssysteme und im besonderen eine Unterbrechungsvorrichtung, die im Zusammenhang mit solchen Systemen verwendet wird.
- Wie wohl bekannt ist, haben viele Systeme Verarbeitungseinheiten, die eine Unterbrechungsvorrichtung zum Bedienen von Unterbrechungen von konkurrierenden Vorrichtungen auf einer Prioritätsbasis einsetzen. Normalerweise wird dies durch Zuweisen einer Prioritätsunterbrechungsstufe an die konkurrierenden Vorrichtungen erreicht, die verglichen werden, um die Vorrichtung mit der höheren Prioritätsunterbrechung zu befähigen, Zugriff auf das System oder die Verarbeitungseinheit zu gewinnen. Nachdem die Anforderung der Vorrichtung bedient worden ist, sendet die Verarbeitungseinheit ein Signal an die Vorrichtungen aus, um ihre Bereitschaft, neue Unterbrechungen bei der laufenden Unterbrechungsstufe zu bedienen, anzuzeigen. Ein Beispiel dieses Systemtyps ist offenbart in US-PS-3,984,820.
- US-PS-4,371,928 offenbart ein Datenverarbeitungssystem, wobei der Unterbrechungsbefehl eine Prioritätsstufe der Quelle aufweist. Dies würde das Problem darstellen, möglicherweise nicht in der Lage zu sein, schnell auf den laufenden Befehl zu antworten, wenn ein anderer Befehl höherer Priorität von dem asynchronen Systembus empfangen würde.
- US-PS-3,993,981 offenbart ein System, das eine Vergleichseinrichtung aufweist zum Vergleichen der Unterbrechungsstufen des Befehls, der gerade ausgefährt wird, mit einem neuen Befehl, der über den Systembus empfangen wird. Die heutigen ausgefeilteren Vielfachverarbeitungssysteme müssen jedoch in der Lage sein, schnell auf Befehle zu antworten, die Umweltbedingungen außerhalb einer Toleranz oder bestimmte Auszeit- Bedingungen anzeigen, um ein ordentliches Abschalten des Systems zu ermöglichen. Auch können bestimmte Zeitsperre-Bedingungen eine schnelle Echtzeit-Änderung in den Software-Vorgängen erfordern, die gerade ausgeführt werden, als dies bisher möglich war. Dies ist eine besondere Anforderung, wenn viele periphere Steuerungseinrichtungen jede Zugriff auf die CPUs zu etwa der gleichen Zeit anfordern.
- Demgemäß ist es ein Hauptziel der vorliegenden Erfindung, eine verbesserte Unterbrechungsvorrichtung zur Verwendung in einem Vielfachverarbeitungssystem bereitzustellen.
- Es ist ein weiteres Ziel der vorliegenden Erfindung, eine Unterbrechungsvorrichtung bereitzustellen, die bei einer normalen Geschwindigkeit und bei einer hohen Geschwindigkeit arbeitet.
- Die obigen Ziele und Vorteile der Erfindung werden in einem bevorzugten Ausführungsbeispiel eines Vielfachverarbeitungssystems erreicht. Gemäß der vorliegenden Erfindung ist die Vorrichtung innerhalb der Unterbrechungslogik der Busschnittstellenschaltungen jeder Verarbeitungseinheit des Systems enthalten, die über solche Schnittstellenschaltungen mit einem asynchronen Systembus gemeinsam mit den übrigen Einheiten des Systems verbunden ist, um auf normale und Hochgeschwindigkeits- Unterbrechungsanforderungen zu reagieren.
- Im Normalbetrieb werden Befehle, die Adressignale, Datensignale und Steuersignale enthalten, über den Systembus übertragen. Jede Verarbeitungseinheit empfängt jeden Befehl, bestimmte Steuer- und Adressignale, um zu bestimmen, ob es den Befehl ausführen soll. Die Verarbeitungseinheit, die die decodierten Adressignale als ihre eindeutige Kanalnummer erkennt, wird dann die Unterbrechungsprioritätsstufe des laufenden Befehls, der gerade durch die Verarbeitungseinheit ausgeführt wird, mit der Unterbrechungsprioritätstufe des neuen Befehls vergleichen. Wenn der neue Befehl eine höhere Prioritätsstufe hat, dann wird die Verarbeitungseinheit ein Bestätigungssignal an den Systembus zu der Quelleneinheit senden, die den Befehl ausgelöst hat und beginnen, den neuen Befehl auszuführen. Wenn der neue Befehl eine niedrigere Unterbrechungsprioritätsstufe hat als der Befehl, der gerade ausgeführt wird, dann wird die Verarbeitungseinheit ein Nicht-Bestätigungssignal an den Systembus senden. Die Quelleneinheit wird den Befehl nach einer Verzögerung wieder an die Verarbeitungseinheit senden.
- Jedoch können bestimmte Befehle, insbesondere jene, die eine Übertemperaturbedingung, eine Leistungsbedingung außerhalb der Spezifikation oder bestimmte Zeitsperre-Bedingungen anzeigen, erfordern, daß die Verarbeitungseinheit sofort agiert. Diese Befehle werden bestimmte Steuer- und Adressignale aufweisen, die anzeigen, daß eine sofortige Ausführung des Befehls notwendig ist, und der laufende Befehl, der gerade ausgeführt wird, wird unterbrochen, und der neue Befehl wird von der adressierten Verarbeitungseinheit ausgeführt.
- Bestimmte Steuer- und Adressignale werden an eine Matrixlogik angelegt. Die Steuersignale zeigen an, daß der Befehl keine Antwort auf einen vorherigen Befehl ist, daß er kein Stufenänderungsbefehl ist, daß die Adressignale eine Kanalnummer aufweisen, und daß dies ein normaler oder ein Hochgeschwindigkeits-Unterbrechungsbefehl ist.
- Ausgabesignale von der Matrixlogik befähigen die Stufenvergleichslogik, entweder das Bestätigungssignal oder das Nicht-Bestätigungssignal zur Übertragung über den Systembus für den Befehl, der die normale Unterbrechung anfordert, auszulösen.
- Beim Hochgeschwindigkeitsbetrieb umgehen andere Ausgabesignale von der Matrixlogik die Stufenvergleichslogik, um entweder das Bestätigungs- oder das Nicht-Bestätigungssignal auszulösen. Zwei Verarbeitungseinheiten können in einem einzelnen zentralen Subsystem eingeschlossen sein, das mit dem asynchronen Systembus über eine einzelne Schnittstelle gekoppelt ist. In diesem Fall würde die Matrixlogik die Adressignale decodieren, die die Kanalnummer darstellen, um anzuzeigen, welche Verarbeitungseinheit auf den Befehl antwortet, und um die Stufenvergleichs- Umgehungslogik für die schnelle Antwort auszulösen oder um die Stufenvergleichslogik für die normale Antwort zu verwenden.
- Die Weise, in der das Verfahren der vorliegenden Erfindung ausgeführt wird und die Weise, in der die Vorrichtung der vorliegenden Erfindung konstruiert ist, und ihr Betriebsmodus können am besten im Hinblick auf die folgende detaillierte Beschreibung zusammen mit der begleitenden Zeichnung verstanden werden, in der gleiche Bezugszeichen ähnliche Elemente in den verschiedenen Figuren identifizieren und in der:
- Fig. 1 ein Blockdiagramm eines Systems ist, das die Vorrichtung der vorliegenden Erfindung aufweist;
- Fig. 2 in Blockdiagrammform die Schnittstellenlogik einer Verarbeitungseinheit zeigt, die die Vorrichtung der vorliegenden Erfindung aufweist;
- Fig. 3 die detaillierte Logik der vorliegenden Erfindung zeigt;
- Fig. 4 das Befehlsformat ist, das von der Vorrichtung der vorliegenden Erfindung verwendet wird.
- Fig. 1 zeigt ein Vielfachverarbeitungssystem 1, das eine Anzahl von Subsystemen aufweist, wobei jedes an einen asynchronen Systembus 2 über eine separate Schnittstelle gekoppelt ist. Diese Subsysteme weisen ein zentrales Subsystem 4 (CSS), das an den Systembus 2 über Schnittstellen MRIO 2-10, MRIC 2-30 und MRI1 2-20 gekoppelt ist, und ein zentrales Subsystem (CSS) 4A, das an den Systembus 2 über Schnittstellen MRI2 2-16A; MRIC 2-30A und MRI3 2-20A gekoppelt ist, auf. Die Schnittstelle MRIO 2-10 wird als Anschluß 0 identifiziert und die Schnittstelle MRI1 2-20 wird als Anschluß 1 identifiziert. Die Schnittstelle MRIC 2-30 stellt Register bereit, die sowohl Anschluß 1 als auch Anschluß 2 gemeinsam sind. Es sind nur zwei CSSs gezeigt, jedoch wird verstanden, daß irgendeine Anzahl von CSSs an den Systembus 2 über ihre jeweiligen Schnittstellen angeschlossen werden kann. Jeder der Schnittstellenbereiche, der Busschnittstellen-Logikschaltungen aufweist, ist von dem Typ, der in Fig. 9 von US-PS 3,995,258 offenbart ist.
- An den Systembus 2 ist auch eine Systemmanagementeinrichtung (SMF) 20 über eine Schnittstelle MBI 2-8 gekoppelt. Eine Anzahl von Hauptspeichern, Hauptspeicher 8 bis Hauptspeicher 8A ist an den Systembus 2 jeweils über Schnittstellen MBI 2-12 bis MBI 2-12A gekoppelt. Eine Anzahl peripherer Steuerungseinrichtungen, periphere Steuerungseinrichtung 12 bis periphere Steuerungseinrichtung 14, ist an den Systembus 2 über die Schnittstellen MBI 2-22 bis MBI 2-24 gekoppelt. An die periphere Steuerungseinrichtung 12 ist eine Anzahl von Vorrichtungen 16 gekoppelt, und an die periphere Steuerungseinrichtung 14 ist eine Anzahl von Vorrichtungen 18 gekoppelt. Vorrichtungen 16 bis Vorrichtungen 18 sind typischerweise, jedoch nicht ausschließlich, Tastaturen, Anzeigegeräte, Kommunikationsvorrichtungen, Diskettenlaufwerke, Bandlaufwerke, Drucker und Dokumentenleser.
- Jedes CSS weist zwei Zentralverarbeitungseinheiten (CPU) mit ihren jeweiligen virtuellen Speichermanagementeinheiten (VMMU) und einen Cache auf. CSS 4 weist eine CPU 0/VMMU 4-2, eine CPU 1/VMMU 4-4 und einen Cache 4-6 auf. Die CPU 0/VMMU 4-2 ist an den Systembus 2 über die Schnittstellen MRIO 2-10 und MRIC 2-30 (Anschluß 0) gekoppelt. Die CPU 1/VMMU 4-4 ist an den Systembus über die Schnittstellen MRI1 2-20 und MRIC 2-30A (Anschluß 1) gekoppelt. Sowohl die CPU 0/VMMU 4-2 als auch die CPU 1/VMMU 4-4 sind an den Anschluß 0 bzw. Anschluß 1 des Cache 4-6 verbunden. Der Cache 4-6 ist an den Systembus 2 über die Schnittstelle MRIO 2-10 über den Anschluß 0 gekoppelt, wenn der Cache 4-6 mit der CPU 0/VMMU 4-2 arbeitet. Der Cache 4-6 ist an den Systembus 2 über die Schnittstelle MRI1 2-20 über Anschluß 1 gekoppelt, wenn der Cache 4-6 mit der CPU 1/VMMU 4-4 arbeitet. Das CSS 4 empfängt Informationen von dem Systembus 2 über die Schnittstelle MRIC 2-30.
- Die Einheiten CSS 4A; CPU 2/VMMU 4-2A, CPU 3/VMMU 4-4A und der Cache 4-6A sind an den Systembus 2 auf eine ähnliche Weise über die Schnittstellen MRI2 2-10A; MRIC 2-30A und MRI3 2-20A gekoppelt.
- Die SMF 20 steuert sowohl die Initialisierung des Systems 1 als auch das Überwachen einer Anzahl von System- und Randfunktionen. Die SMF 20 weist einen Überwachungs-Zeitgeber und eine Echtzeituhr auf, die über Befehle gesetzt werden können, die über den Systembus 2 von einer der CPUs empfangen werden. Die SMF 20 antwortet, wenn der Überwachungs-Zeitgeber oder die Echtzeituhr auf Null dekrementiert ist durch Senden eines entsprechenden Befehls an die CPU über den Systembus 2, die anfänglich die Uhr gesetzt hat. Zusätzlich überwacht die SMF 20 die Leistung und die Temperatur und sendet Befehle über den Systembus 2, um die CPUs zu alarmieren, geeignete Maßnahmen zu treffen. Wenn die Leistung oder die Temperatur sich über voreingestellte Werte ändern, antworten die CPUs nach Empfangen des Leistungsalarm- oder Temperaturalarm-Befehls durch Vorbereiten eines ordentlichen Abschaltens des Systems, in dem die Betriebssystemsoftware in eine Bedingung gebracht wird, die einen ordentlichen Neustart ermöglicht. Der Betrieb der SMF 20 ist in der verwandten Anmeldung EP-A-247 605 mit dem Titel "System Management Apparatus for a Multiprocessor System" beschrieben.
- Das System 1 ist als ein eng gekoppeltes Multi-CPU-System konfiguriert, da jede CPU ein einzelnes Betriebssystem ausführt und sich einen gemeinsamen Hauptspeicher teilt. Daher kann jede CPU eine andere CPU unterbrechen oder sich selbst, und zwar mittels einer Zwischenprozessoranweisung. Jegliche Kommunikation wird über den Systembus 2 mittels Befehlen und Antworten auf Befehle abgewickelt.
- Die SMF 20 ist angeordnet, um ihr den höchsten Prioritätszugriff auf den Systembus 2 zu geben. Da viele der Befehle, die einen Hochgeschwindigkeitszugriff auf eine CPU erfordern, von der SMF 20 erzeugt werden, versichert diese Prioritätsposition eine rasche Antwort auf die Befehle durch die CPU, an die der Befehl adressiert ist.
- Eine CPU wird Anweisungen eines Prozesses bei einer angegebenen Unterbrechungsstufe ausführen. Die CPU wird den Prozeß unterbrechen, um einen Befehl vom Systembus 2 zu empfangen, nur wenn der Befehl die CPU aufruft, einen Prozeß mit höherer Priorität auszuführen.
- Wenn die CPU einen Befehl empfängt, der von einem anderen Subsystem ausgeht, untersucht sie die Unterbrechungsprioritätsstufe des Befehls und antwortet mit einem Bestätigungssignal über den Systembus 2, wenn der Befehl eine höhere Priorität als der Befehl hat, der gerade ausgeführt wird. Wenn die Unterbrechung eine niedrigere Priorität als der Befehl hat, der gerade ausgeführt wird, dann wird die CPU mit einem Nicht-Bestätigungssignal antworten. Das Subsystem, das den Befehl sendet, empfängt die Bestätigungs- oder Nicht-Bestätigungsantwort und ergreift geeignete Maßnahmen. Wenn die Nicht-Bestätigungsantwort empfangen wurde, kann das Ursprungs-Subsystem den Befehl wieder über den Systembus an die CPU senden. Wenn zu dieser Zeit die CPU gerade einen Befehl niedrigerer Priorität ausführt, dann wird die CPU den Befehl akzeptieren und sendet eine Bestätigungsantwort über den Systembus 2.
- Bestimmte Befehle erfordern jedoch, daß die Empfangs-CPU sofortige Maßnahmen ergreift. Daher wird, wie beschrieben in diesem Aiisführungsbeispiel, die CPU auf ,bestimmte Befehle durch die Logik der Erfindung antworten, um sofort einen Prozeß, der gerade ausgeführt wird, zu unterbrechen, um den Prozeß auszuführen, der von dem neuen Befehl aufgerufen wird. Typisch für die Befehle, die eine sofortige Maßnahme erfordern, sind jene SMF-Befehle, die sich auf Zeitsperre, Leistungs- oder Temperaturänderung und Statusänderungsbedingungen beziehen. Auch erfordern bestimmte CPU-an-CPU-Befehle sofortige Maßnahmen. Eine CPU kann eine andere CPU durch eine Logik unterbrechen, die auf bestimmte Signale in dem Befehl anspricht.
- Fig. 2 zeigt ein Blockdiagramm der Schnittstellen MRI0 2-10, MRI1 2-20 und MRIC 2-30. Die Logik für die Schnittstelle MRI0 2-10 des Anschlusses 0 wird durch Elemente 2-1XXX identifiziert. Die Logik der Schnittstelle MRI1 2-20 des Anschlusses 1 wird durch die Elemente 2- 2XX identifiziert, und die Logik der gemeinsamen Schnittstelle MRIC 2- 30 zum Empfangen von Information von dem Systembus 2 wird durch Elemente 2-3XX identifiziert.
- Der Systembus 2 weist einen Systemdatenbus 2-4, einen Systemadressbus 2-6 und einen Systemsteuerbus 2-2 auf. Der Datenbus 2-4 weist 32 Datensignale BSDT00- bis BSDT31- und eine Anzahl von Paritätssignalen (nicht gezeigt) auf. Das Minuszeichen zeigt an, daß das Signal eine binäre EINS darstellt, wenn es niedrig ist, und eine binäre NULL, wenn es hoch ist. Der Adressbus 2-6 weist 32 Adressignale BSAD00- bis BSAD31- und eine Anzahl von Paritätssignalen (nicht gezeigt) auf. Der Steuerbus 2-2 weist eine Anzahl von Steuersignalen auf. Nur jene Steuersignale, die sich auf die Erfindung beziehen, sind gezeigt.
- Irgendein Subsystem kann einen Zugriff anfordern und gewährt bekommen zu dem Systembus 2, um Informationen zu einem anderen System zu übertragen. Die Informationen können in der Form eines Befehls oder einer Antwort auf einen Befehl sein. Irgendeine CPU kann einen Zugriff anfordern und diesen gewährt bekommen zu dem Systembus 2, um Informationen zu sich selbst zu übertragen, zu einer anderen CPU oder einem anderen Subsystem. Jede Schnittstelle empfängt die Informationen und bestimmt, ob die Informationen eine Adress- oder Kanalnummer einer Einheit aufweisen, die mit jener Schnittstelle gekoppelt ist, wenn die Informationen, die durch jene Schnittstelle empfangen sind, nicht ihre Kanalnummer aufweist, dann werden die Informationen ignoriert. Busadressignale BSAD08-17+ werden decodiert, um die Kanalnummer zu bilden, wenn das Speicherreferenzsignal BSMREF+ anzeigt, daß die Adressignale BSAD00+ bis BSAD31+ keine Hauptspeicherstelle anzeigen. Wenn die Informationen an dieses Subsystem adressiert sind, dann bestätigt das Subsystem, daß es die Informationen empfangen hat, indem es ein Bestätigungssignal BSACKR- auf den Systembus 2 aussendet.
- Das Subsystem wird die Informationen akzeptieren unter der Voraussetzung, daß die Informationen seine Kanalnummer aufweisen und das Subsystem keinen Prozeß mit einer höheren Priorität ausführt. Wenn das Subsystem die Informationen nicht akzeptiert, weil es einen Prozeß höherer Priorität ausführt, dann wird es ein Nicht-Bestätigungssignal BSNAKR- auf dem Systembus 2 aussenden.
- Bezugnehmend auf Fig. 2 weist die Schnittstelle MRIC 2-30 zwei Sätze von Registern zum Empfangen des Befehls auf, die so organisiert sind, um in einem First-In-First-Out-Modus zu arbeiten. Angenommen, daß der erste Befehl, der von der Schnittstelle MRIC 2-30 empfangen wird, in dem ersten Satz von Empfangsregistern gespeichert wird und bestätigt wird, dann wird der nächste Befehl durch den zweiten Satz von Empfangsregistern empfangen. Unterdessen hat die CPU, die auf ihre Kanalnummer geantwortet hat, den Befehl von dem ersten Satz von Empfangsregistern entladen, wodurch die Empfangsregister für den nächsten Befehl verfügbar gemacht werden, wenn der Befehl, der in dem zweiten Satz von Empfangsregistern gespeichert ist, bestätigt wurde. Wenn ein Befehl, der in dem zweiten Satz von Empfangsregistern gespeichert ist, nicht bestätigt wird, dann wird der Befehl ignoriert, und der nächste Befehl wird in dem zweiten Satz von Empfangsregistern gespeichert.
- Die Datensignale BSDT00-31- werden jeweils durch 32 invertierende Empfänger 2-302 von dem Datenbus 2-4 empfangen. Angenommen, daß die Datensignale in dem ersten Satz von Empfangsregistern gespeichert sind. Die Datensignale werden in 8 Registern DREGA 2-308 als Signale BSDT00-31+ gespeichert, wobei das Pluszeichen anzeigt, daß ein logisches EINS-Signal hoch ist und ein logisches NULL-Signal niedrig ist. In ähnlicher Weise werden jeweils 32 Adressignale BSDA00-31- durch 32 invertierende Empfänger 2-304 von dem Adressbus 2-6 empfangen und in 8 Registern AREGA 2-310 als Signale BSAD00-31+ gespeichert, und eine Anzahl von Steuersignalen werden durch invertierende Empfänger 2- 306 empfangen und in Registern CREGA 2-312 gespeichert.
- Eine Unterbrechungslogik 2-50 vergleicht die Kanalnummer; die als Signale BSAD08+ bis BSAD18+ erscheint, mit einer voreingestellten Kanalnummer und bestimmt ebenso, daß die Unterbrechungsstufe des gerade empfangenen Befehls eine höhere Priorität hat als jene des gerade ausgeführten Befehls. Dann wird die Bestätigungsantwort gegeben, und die Daten- und Adressinformationen werden an die CPU-2 über die Register RDREGA 2-112 und IAREGA 2-110 und den internen Datenbus DO 2-108 übertragen, wenn die Kanalnummersignale die CPU 4-2 anzeigen. Wenn die Kanalnummersignale die CPU 4-4 anzeigen, dann werden die Daten- und Adressinformationen an die CPU 4-4 über die Register IDREGB 2-212 und IAREGB 2-110 und den internen Datenbus D1 2-208 übertragen.
- Wenn die Informationen nicht die Kanalnummer der CPU 4-2 oder der CPU 4-4 aufweisen, dann wird keine Maßnahme auf den in den Registern DREGA 2-308, AREGA 2-310 und CREGA 2-312 gespeicherten Befehl unternommen. Der nächste Befehl, der über den Systembus 2 übertragen wird, wird dann in den gleichen Registern gespeichert.
- Wenn eine Anzahl von Befehlen an die CPU 4-2 oder 4-4 nacheinander gesendet wird, dann werden die Informationen in dem ersten bestätigten Befehl in den Registern 2-308, 2-310, 2-312 gespeichert, und die Information in dem zweiten bestätigten Befehl wird in den Registern DREGB 2-314, AREGB 2-316 und CREGB 2-318 gespeichert. Wenn ein dritter Befehl empfangen wird, werden die Inhalte der Register 2-308, 2-310 und 2-312 an die adressierte CPU übertragen worden sein, so daß die Register 2-308, 2-310 und 2-312 den Befehl empfangen werden.
- Die Register 2-308, 2-310 und 2-312 werden durch ein Schreibfreigabesignal WRTSLA- freigegeben. Die Register 2-314, 2-316 und 2-318 werden durch ein Schreibfreigabesignal WRTSLB- freigegeben. Die Signale WRTSLA- und WRTSLB- sind komplementäre Signale und kippen während jedes Zyklus des Systembusses 2, in dem der empfangene Befehl bestätigt wird. Ein Lesefreigabesignal REDENA- macht die Ausgabesignale der Register 2-308, 2-310 und 2-312 verfügbar; und das Lesefreigabesignal REDENB- macht die Ausgabesignale der Register 2- 314, 2-316 und 2-318 verfügbar. Die Signale REDENA- und REDENB- sind ebenso komplementäre Signale, die außer Phase mit den Schreibfreigabesignalen WRTSLA- und WRTSLB- kippen.
- Die Steuersignale BSMREF+, BSYELO+, BSSHBC+, BSWRIT+, und BSRINT+ werden von der Unterbrechungslogik 2-50 empfangen.
- Das Signal BSSHBC+ zeigt an, daß dieser Befehl Informationen in Antwort auf einen Befehl von dem Subsystem bereitstellt, das die Informationen angefordert hat.
- Das Signal BSRINT+ wird durch die CPU ausgegeben, um anzuzeigen, daß es Unterbrechungsprioritätsstufen geändert hat, und daß I/O-Vorrichtungen ein Unterbrechen wieder aufnehmen können. Eine I/O-Vorrichtung, die vorher versucht hat, eine CPU zu unterbrechen, und die ein Nicht-Bestätigungssignal erhalten hat, wird keine weiteren Unterbrechungen ausgeben, bis sie das Signal BSRINT- wahr auf dem Systembus 2 erfaßt.
- Das Signal BSMREF+ bei einer logischen Null zeigt an, daß die Adressignale BSAD08-17 die Kanalnummer darstellen.
- Das Signal BSYELO+ bei einer logischen EINS und das Signal BSMREF+ bei einer logischen NULL zeigt an, daß dies der Befehl mit höchster Priorität ist und löst eine schnelle Unterbrechungsoperation aus.
- Die CPU 0 4-2 oder CPU 1 4-4 kann Befehle zur Übertragung über den Systembus 2 an ein anderes Subsystem, an eine andere CPU oder an sich selbst erzeugen.
- Etwas von der Befehlsinformation kann in dem Cache gespeichert sein, und wenn nicht im Cache, dann im Hauptspeicher 8 über 8A. Wenn die Information nicht im Cache wäre, dann würde die CPU einen Befehl an den Hauptspeicher 8 über 8A erzeugen, wobei die Daten angefordert werden, die an der Stelle gespeichert sind, die durch die Adressignale BSAD00-31 in dem Befehl angegeben ist. Für dieses Befehlssignal wäre BSMREF+ hoch.
- Die CPU 4-2 sendet Adressignale an den Anschluß 0 des Cache 4-6 über den internen Adressbus A0 2-114. Die CPU 4-4 sendet Adressignale an den Anschluß 1 des Cache 4-6 über den internen Adressbus A1 2- 214. Die CPU 4-2 empfängt Datensignale von dem Anschluß 0 des Cache 4-6 über den Datenbus D0 2-108. Die CPU 4-4 empfängt Datensignale von dem Anschluß 1 des Cache 4-6 über den Datenbus D1 2- 208.
- Die Datensignale von der CPU 4-2 oder von dem Anschluß 0 des Cache 4-6 werden in einem Register DREG0 2-102 als Signale P0DT00-31+ gespeichert, die über den Datenbus D0 2-208 empfangen werden. Die Daten von der CPU 4-4 oder vom Anschluß 1 des Cache 4-6 werden in einem Register DREG1 2-202 als Signale P1DT00-31+ gespeichert. Die Datensignale werden einer fest verdrahteten Oder-Verknüpfung zu Signalen MYDT00-31+ verknüpft und an 32 invertierende Treiber DRVD 2- 26 zur Übertragung über den Datenbus 2-4 als Signale BSDT00-31- übertragen.
- Steuersignale von der CPU 4-2 werden an den Steuerbus 2-2 über den Steuerspeicher 4-200, ein Register CREG0 2-106 und invertierende Treiber 2-30 angelegt. Die Steuersignale von der CPU 4-4 werden an den Steuerbus 2-2 über den Steuerspeicher 4-400 der CPU 1, ein Register CREG1 2-206 und invertierende Treiber DRVC 2-30 angelegt. Die Logikschaltungen, nicht gezeigt, zum Übertragen von Daten, Adressen und Steuersignalen zwischen dem Systembus 2 und den Registern sind herkömmlich in der Konstruktion und können die Form annehmen, wie offenbart in US-PS-3,995,258.
- Die in Fig. 2 gezeigten Register sind herkömmlich und können aus 74 AS 823 Logikelementen konstruiert sein, hergestellt von Texas Instruments.
- Es wird Bezug genommen auf Fig. 3, die die detaillierte Logik der Unterbrechungslogik 2-50 zeigt. Die Adressignale BSAD08+ bis BSAD17+ identifizieren die Kanalnummer des empfangenden Subsystems oder der CPU. Der Kanalnummer der CPU 4-2 ist willkürlich hexadezimal 0000 zugewiesen, und der Kanalnummer der CPU 1 4-4 ist willkürlich hexadezimal 0040 zugewiesen. Für die Kanalnummer der CPU 0 4-2 sind die Signale BSAD08+ bis BSD17+ auf binär NULL. Für die Kanalnummer der CPU 1 4-4 sind die Signale BSAD08+ bis BSAD16+ bei binär NULL und das Signal BSAD17+ ist auf binär EINS. Man bemerke, daß die hexadezimale Schreibweise mit dem Signal BSAD00+ beginnt. Daher würden die Signale BSAD18+ und BSAD19+ die zwei niederwertigen Bits der am zweitniedrigsten hexadezimalen Ziffer darstellen, und BSAD20+ bis BSAD23+ würden die niederwertige hexadezimale Ziffer darstellen. Zum Zwecke der Kanalnummeranzeige werden die Signale BSAD18+ und BSAD19+ als binäre NULLEN betrachtet, jedoch behandelt die Logik die Signale BSAD18+ und BSAD19+ als die zwei höherwertigen Bits des Funktionscodes, der durch die Signale BSAD18+ bis BSAD23+ dargestellt wird. Der Funktionscode zeigt die Operation an, die das empfangende Subsystem als eine Folge des Bestätigens des Befehls ausführt, der über den Systembus 2 empfangen ist.
- Die Kanalnummersignale BSAD08+ bis BSAD12+, die von dem Adressbus 2-6 über den Empfänger 2-304 empfangen sind, werden an ein negatives AND-Gatter 2-502 angelegt und sind bei binär NULL (niedrig). Daher ist das Ausgangssignal CPCHAN+0A bei binär EINS (hoch). Ebenso werden die Kanalnummersignale BSAD13+ bis BSAD15+ von dem Adressbus 2-6 über den Empfänger 2-304 empfangen und an ein negatives AND-Gatter 2-504 angelegt und sind niedrig, wodurch das Signal CPCHAN+0B hoch ist. Das Signal BSMREF+, das von dem Steuerbus 2-2 über den Empfänger 2-306 empfangen wird, ist niedrig, was anzeigt, daß die Adressignale BSAD08+ bis BSAD17+ die Kanalnummern darstellen. Das nun verzögerte niedrige Busdatensignal BSDCND+ zeigt an, daß der Systembus 2 innerhalb der ersten 60 Nanosekunden des Systembuszyklus ist.
- Die Signale CHANLO+ und BSAD16+, die an eine programmierbare Matrix 2-506 angelegt sind, identifizieren diese Kanalnummern als entweder jene der CPU 0 4-2 und der CPU 1 4-4 von CSS4 oder der CPU 2 4-2A oder der CPU 3 4-4A von CSS 4A.
- Für die CPU 0 4-2 und die CPU 1 4-4 ist ein Kanalnummersignal BSAD16+ niedrig, und für die CPU 2 4-2A und CPU 3 4-4A ist das Kanalnummersignal BSAD16+ hoch. Daher sind für die CPU 0 4-2 und die CPU 0 4-2 und die CPU 1 4-4 beide Signale BSAD16+ und CHANLO+ niedrig, und damit ist das Ausgangssignal CPCHAN+0C hoch. Das Signal CHANLO+ identifiziert einen physischen Schlitz auf der Rückseite des Systems 1, in dem die Karte, die die Logik des CSS 4A enthält, eingesteckt ist.
- Der Boolsche Ausdruck für das Signal CPCHAN+OC ist:
- (BSAD16+) (CHANLO+) + ( ) ( ).
- Die Signale CPCHAN+0A, CPCHAN+0B und CPCHAN+0C, die hoch sind, werden an ein NAND-Gatter 2-508 angelegt. Ebenso zeigen hohe Signale BSDPOK+, BSAPOK+ und BSCPOK+ an, daß die Informationen, die jeweils über die Systembusse 2-4, 2-6 und 2-2 empfangen sind, richtige Parität haben. Damit geht das OK-Kanalausgangssignal CHA- NOK- nach niedrig, was anzeigt, daß die Informationen auf dem Systembus 2 von entweder der CPU 0 4-2 oder der CPU 1 4-4 verarbeitet werden sollen.
- Das Signal CHANOK- gibt ein Register 2-518 frei, das die Signale, die an die Eingangsanschlüsse beim Anstieg des nun verzögerten Signals BSDCND+ vom Datenbus-Datenzyklus angelegt sind, zeitlich neu abstimmt, was 60 Nanosekunden nach dem Start des Systembus-(2)-Zyklus geschieht.
- Für die schnelle Antwort auf einen Befehl ist das Signal BSYELO+ hoch und das Signal BSMREF+ ist niedrig. Das hohe Ausgangssignal PXSCFA+00 von der Matrix 2-506 resultiert in einem Bestätigungssignal BSACKR+, um an dem Systembus 2 als Signal BSACKR- ausgesendet zu werden. Das hohe Ausgangssignal PXSCFN+00 von der Matrix 506 resultiert in einem Nicht-Bestätigungssignal BSNAKR+, um an den Systembus 2 als Signal BSACKR- ausgesendet zu werden. Der Boolsche Ausdruck für das Signal PXSCFA+, das eine Bestätigungsantwort anzeigt, ist:
- ( ) (BSYELO+) (((BSRINT+) + ( ) (BSAD17+)
- ( )) + (( ) ( ) ( ))).
- Das Signal BSSHBC+ zeigt, wenn niedrig, an, daß dies kein Buszyklusbefehl der zweiten Hälfte ist, der in Antwort auf einen vorherigen Befehl empfangen wird, der über den Systembus 2 ausgesendet wurde.
- Das hohe Signal BSRINT+ zeigt an, daß die Ausführung dieses Befehls in einer Stufenänderung resultieren wird, und daß die Bestätigungsantwort gegeben werden sollte. Wenn dies kein Stufenänderungsbefehl ist, dann ist das Signal BSRINT niedrig, und das hohe Signal BSAD17+ und das niedrige Signal P1SCFB+ zeigen an, daß die CPU 1 4-4 nicht belegt ist, oder das niedrige Signal BSAD17+ und das niedrige Signal POSCFB+ zeigen an, daß die CPU 0 4-2 nicht belegt ist. Damit wird ein Bestätigungsantwortsignal BSACKR+ an den Systembus 2 als Signal BSACKR- ausgesendet.
- Der Boolsche Ausdruck für das Signal PXSCFN+, der eine Nicht-Bestätigungsantwort anzeigt, ist:
- ( ) (BSYELO+) (( ) (BSAD17+) (P1SCFB+) +
- ( ) ( ) (P0SCFB+)).
- Dies zeigt an, daß, wenn die CPU, deren Kanalnummer angegeben ist, belegt ist, d. h., das entsprechende Signal P0SCFB+ oder P1SCFB+ ist hoch, dann wird ein Nicht-Bestätigungsantwortsignal BSNAKR+ an den Systembus 2 als ein Signal BSNAKR- ausgesendet. Ein Ausgabesignal P0SCFB+ von einem belegten Flipflop 2-554 zeigt, wenn hoch, an, daß die CPU 0 4-2 belegt ist. Ein Ausgabesignal P1SCFB+ von einem belegten Flipflop 2-564 zeigt, wenn hoch, an, daß die CPU 1 4-4 belegt ist.
- Das Flipflop 2-554 setzt beim Anstieg des Signals P0SCFA+ 10 von dem Register 2-518. Das Signal P0SCFA+ wird durch eine Matrix 2-506 gemäß der folgenden Boolschen Gleichung erzeugt:
- P0SCFA+ = ( ) (BSYELO+) ( ).
- Das Signal P0SCFA+ wird durch das Register 2-518 erneut zeitlich abgestimmt, um das Signal P0SCFA+10 zu erzeugen. Das Flipflop 2-554 setzt beim Anstieg des Signals P0SCFA+10, da das Funktionscodesignal BSAD18+ höherer Ordnung hoch ist bei den Hochgeschwindigkeits- Unterbrechungsbefehlen von der SMF 20. Das Signal BSAD18+ kann für einige Befehle niedrig sein, die von der SMF 20 während einer zyklischen Adressfolge-Testoperation erzeugt sind, die die Hochgeschwindigkeits-Unterbrechung aufordert, da angenommen wird, daß die CPUs für den Test nicht in Betrieb sind. Sobald das Flipflop 2-554 gesetzt ist, bleibt es gesetzt, da das Ausgabesignal P0SCFB-, das niedrig ist, an die Setzeingangsanschlüsse des Flipflops 2-554 angelegt ist. - Das Flipflop 2-554 bleibt gesetzt, bis die CPU 0 4-2 die Ausführung des Befehls abgeschlossen hat. Die CPU 0 4-2 erzeugt dann einen Befehl an sich selbst, der das Rücksetzsignal P0SFCB- auf niedrig zwingt. Für den Befehl des Rücksetzens des Flipflops 2-554 ist das Datensignal BSDT9+ hoch und wird in einem Register 2-551 beim Anstieg des Signals P0SCFA+ 10 gespeichert. Das Ausgangssignal P0SCFB- wird nach niedrig gezwungen, wodurch das gesetzte Flipflop rückgesetzt wird. Das Register 2-551 wird durch das Signal BSRINT+ rückgesetzt, das am Ende des Systembus-(2)-Zyklus auf niedrig geht. Die CPU 0 4-2 wird nun einen Befehl bestätigen, der eine Hochgeschwindigkeits-Unterbrechung erfordert.
- Das Flipflop 2-546 arbeitet auf eine ähnliche Weise wie Flipflop 2-554, um anzuzeigen, wenn gesetzt, daß die CPU 1 4-4 belegt ist. Die CPU 1 4-4 wird einen Befehl nicht bestätigen, der eine Hochgeschwindigkeits- Unterbrechung erfordert, bis das Flipflop 2-546 rückgesetzt ist.
- Der Boolsche Ausdruck, um das Signal P1SCFA+ zu erzeugen, ist:
- P1SCFA+ = ( ) (BSYELO+) (BSAD17).
- Das Signal P1SCFA+ von der Matrix 2-506 wird erneut durch das Register 2-518 zeitlich abgestimmt, um das Signal P1SCFA+ 10 zu erzeugen. Das Flipflop 2-546 setzt beim Anstieg des Signals P1SCFA+, da das Signal BSAD18+ hoch ist. Das Ausgangssignal P1SCFB+, nun hoch, wird an die Matrix 2-506 angelegt und verhindert eine Bestätigungsantwort auf einen Befehl mit der Kanalnummer der CPU 1 4-4, die eine Hochgeschwindigkeits-Unterbrechung anfordert. Das Signal P1SCFB- hält das Flipflop 2-546 gesetzt, bis es durch einen anderen Befehl durch die CPU 1 4-4 auf sich selbst rückgesetzt wird. Der Befehl erzeugt wiederum ein Signal P1SCFA+10, das das Signal BSDT9+ in ein Register 2-553 speichert. Das Rücksetzsignal P1SFCB- wird auf niedrig gezwungen, wodurch das Flipflop 2-553 rückgesetzt wird. Das Signal BSRINT+ setzt dann das Register 2-553 am Ende des Systembus-(2)-Zyklus rückt, wenn er auf niedrig geht.
- Das Bestätigungssignal für die schnelle Unterbrechung, das durch das Signal PXSCFA+ erzeugt wird, wird an ein OR-Gatter 2-520 angelegt, um ein Signal MYACKR+ über ein Ausgangssignal PXACKR+ und ein OR-Gatter 2-522 zu erzeugen. Das Signal MYACKR+ wird an einen Treiber 2-530 angelegt, um ein Signal BSACKR- über den Systembus 2 zu erzeugen.
- In ähnlicher Weise wird das Nicht-Bestätigungssignal BSNAKR- durch ein Signal PXSCFN+, das Register 2-518, das Signal PXSCFN+10, ein OR- Gatter 2-526, das Signal MYNAKR+, einen Treiber 2-532 und ein Systembus-(2)-Signal BSNAKR- erzeugt.
- Das Signal MYACKR+ veranlaßt ebenso, daß der Befehl, der von dem Systembus 2 empfangen ist und in den Registern 2-308, 2-310 und 2-312 (Fig. 2) gespeichert ist, in den Registern für eine nachfolgende Ausführung verbleibt, indem ein Signal WRTSLB- erzeugt wird. Der nächste Befehl wird in den Registern 2-314, 2-316 und 2-318 gespeichert. Wenn jener Befehl bestätigt wird, dann wird das Komplementärsignal WRTSLA- erzeugt, und die Register 2-308, 2-310 und 2-312 sind verfügbar.
- Die normale Unterbrechungsoperation des Systembusses 2 wird durch das Signal BSYBLO+ des Befehls ausgelöst, was als niedrig empfangen wurde. In diesem Fall wird das Signal P0INTR- von der Matrix 2-506 erzeugt, wenn die Informationen auf dem Systembus 2 die CPU 0 4-2 unterbrechen sollen, oder es wird das Signal P1INTR- erzeugt, wenn die Informationen auf dem Systembus 2 die CPU 1 4-4 unterbrechen sollen.
- Die Boolschen Ausdrucke sind:
- P0INTR- = ( ) ( ) ( );
- P1INTR- = ( ) ( ) (BSAD17+).
- Das Signal P0INTR- wird an einen Eingangsanschluß der negativen AND-Gatter 2-510 und 2-514 angelegt. Das Signal P0LVLS- wird an den anderen Anschluß des negativen AND-Gatters 2-510 angelegt, und das Signal P0LVLS+ wird an den anderen Anschluß des negativen AND- Gatters 2-514 angelegt
- In ähnlicher Weise wird das Signal P1INTR- an einen Eingangsanschluß der negativen AND-Gatter 2-512 und 2-516 angelegt. Das Signal P1LVLS- wird an den anderen Anschluß des negativen AND-Gatters 2- 512 angelegt, und das Signal P1LVLS+ wird an den anderen Anschluß des negativen AND-Gatters 2-516 angelegt.
- Das Signal P0LVLS-, wenn niedrig, zeigt an, daß die CPU 0 4-2 eine Routine niedrigerer Priorität ausführt, und eine Bestätigungsantwort wird über den Systembus 2 gesendet.
- Das Signal P1LVLS-, wenn niedrig, zeigt an, daß die CPU 1 4-4 eine Routine niedrigerer Priorität ausführt, und die Bestätigungsantwort wird über den Systembus 2 gesendet.
- Das Signal P0LVLS+ oder das Signal P1LVLS+, wenn niedrig, zeigen an, daß jeweils die CPU 0 4-2 oder die CPU 1 4-4 gerade eine Routine höherer Priorität ausführen, und eine Nicht-Bestätigungsantwort wird über den Systembus 2 gesendet.
- Die Ausgabesignale P0INTA+, P0INTN+ und P1INTN+ jeweils von den negativen AND-Gattern 2-510, 2-512, 2-514 und 2-516 werden in Register 2-518 gespeichert.
- Für die Bestätigungsantwort wird dann, wenn eines der Signale P0INTA+ oder P1INTA+, die an ein OR-Gatter 2-524 angelegt sind, hoch ist, das BSACKR- Signal wie vorher über einen Treiber 2-530, ein Signal MY- ACKR+, über ein OR-Gatter 2-522 und ein Signal PXINTA+ erzeugt. Für die Nicht-Bestätigungsantwort wird dann, wenn eines der Signale P0INTN+ oder P1INTN+, die an ein OR-Gatter 2-528 angelegt sind, das Signal BSNAKR- über einen Treiber 2-532, ein Signal MYNACKR, ein OR-Gatter 2-526 und ein Signal PXINTN+ erzeugt.
- Der Prioritätsstufenvergleich für die CPU 0 4-2 wird durch einen Stufenvergleicher 0 2-550 gemacht. Der Prioritätsstufenvergleich für die CPU 1 4-4 wird durch den Stufenvergleicher 1 2-552 gemacht. Der Vergleicher 0 1-550 speichert die Prioritätsstufe der gerade von der CPU 0 4-2 ausgeführten Routine und der Komperator 1 2-550 speichert die Prioritätsstufe der gerade von der CPU 1 4-4 ausgeführten Routine. Die Unterbrechungsprioritätsstufe des neuen Befehls wird an die Vergleicher 2-550 und 2-552 als Datensignale BSDT10-15+ angelegt.
- Sowohl der Vergleicher 2-550 als auch 2-552 vergleichen die eingehende Unterbrechungsprioritätsstufe, die durch Datensignale BSDT10-15+ dargestellt sind, mit den Unterbrechungsprioritätsstufen, die in den jeweiligen Vergleichern gespeichert sind. Das niedrige Signal P0LVLS- zeigt an, daß die Unterbrechungsprioritätsstufe des neuen Befehls höher ist als die Unterbrechungsprioritätsstufe des gerade von der CPU 0 4-2 ausgeführten Befehls. Das niedrige Signal P1LVLS- zeigt an, daß die CPU 1 4-4 einen Befehl mit einer niedrigeren Prioritätsstufe ausführt. Die Signale P0LVLS- und P1LVS- werden an die negativen AND-Gatter 2-510 bzw. 2-512 angelegt.
- Das niedrige Signal P0LVLS+ zeigt an, daß die CPU 0 4-2 einen Befehl höherer Unterbrechungsprioritätsstufe ausführt als die Unterbrechungsprioritätsstufe des neuen Befehls. Das niedrige Signal P1LVLS+ zeigt an, daß die CPU 1 4-2 einen Befehl höherer Unterbrechungsprioritätsstufe ausführt als die Unterbrechungsprioritätsstufe des neuen Befehls. Die Signale P0LVLS+ und P1LVLS+ werden an die negativen AND-Gatter 2-514 bzw. 2-516 angelegt.
- Das Signal P0INTR- von der Matrix 2-506 wird an die negativen AND- Gatter 2-510 und 2-514 angelegt, um das Signal P0LVLS- auszuwählen, wenn niedrig, um das Signal P0INTA+ von dem negativen AND-Gatter 2-510 zu erzeugen, um eine Bestätigungsantwort anzuzeigen; oder um ein Signal P0LVIS+ auszuwählen, wenn niedrig, um ein Signal P0INTN+ von dem negativen AND-Gatter 2-514 zu erzeugen, um eine Nicht-Bestätigungsantwort zu erzeugen.
- Das Signal P1INTR- von der Matrix 2-506 wird an die negativen AND- Gatter 2-512 und 2-516 angelegt, um das Signal P1LVLS- auszuwählen, wenn niedrig, um das Signal P1INTA+ für eine Bestätigungsantwort zu erzeugen, oder um das Signal P1LVLS- auszuwählen, wenn niedrig, um das Signal P1INTR+ für eine Nicht-Bestätigungsantwort zu erzeugen.
- Die Signale P0INTA+, P1INTA+, P0INTN+ und P1INTN+ sind im Register 2-518 gespeichert. Die Ausgangssignale P0INTA+10 und P1IN- TA+10 werden an ein OR-Gatter 2-524 angelegt, um das Bestätigungssignal MYACKR+ über das Signal PXINTA+ und das OR-Gatter 2-522 zu erzeugen. Die Signale P0INTN+10 und P1INTN+10 werden an ein OR-Gatter 2-528 angelegt, um das Nicht-Bestätigungssignal MYNAKR+ über das Signal PXINT1+10 und das OR-Gatter 2-526 zu erzeugen.
- Die Logikelemente von Fig. 3 sind in ihrer Konstruktion herkömmlich und beschrieben in "TTL Data Book for Design Engineers", 2. Auflage, veröffentlicht von Texas Instruments.
- Die Stufenänderungsoperation ist in der verwandten Anmeldung EP-A-251 234 beschrieben.
- Fig. 4 zeigt die Layouts der Datenadress- und Adressfelder und der relevanten Steuersignale in dem Steuerfeld des Befehls. Für die normale Unterbrechung sind das Speicherreferenzsignal BSMREF+ der Steuersignale, das zweithälftige Buszyklussignal BSSHBC+, das gelbe Schnellunterbrechungssignal BSYELO+ und das Unterbrechungs-Wiederaufnahmesignal BSRINT alle niedrig. Die Adressignale BSAD08-17+ zeigen die Kanalnummer der Ziel-CPU an. Die Adressignale BSAD18-23 geben den Funktionscode an. Die Datensignale BSDT00-09 stellen die Kanalnummer der Quelle bereit. Die Datensignale BSDT10-15+ zeigen die Unterbrechungsprioritätsstufe des Befehls an.
- Für einen CPU-Unterbrechungsstufen-Änderungsbefehl ist das Signal BSRINT+ hoch. Die Adressignale BSAD08-17+ zeigen wieder die Kanalnummer der Ziel-CPU an. Die Adressignale BSAD18-23+ stellen den Funktionscode bereit, der eine Stufenänderung anzeigt. Die Datensignale 00-09+ geben die Kanalnummer der Quellen-CPU an, da Stufenänderungen durch eine CPU ausgelöst werden, und Datensignale 10-15+ stellen die neue Unterbrechungsprioritätsstufe bereit.
- Für die Hochgeschwindigkeits-Unterbrechungssteuerung ist das Signal BSYELO+ hoch. Die Adressignale BSAD08-17 zeigen die Kanalnummer der Ziel-CPU. Die Adressignale BSAD18-23+ geben den Funktionscode an, wobei das höherwertige Bit BSAD18+ hoch ist, und die Datensignale BSDT00-09 stellen die Kanalnummer der Quelle bereit, Hexadezimal OF für die SMF 20.
- Für den Rücksetz-Hochgeschwindigkeits-Unterbrechungs-Belegtbefehl sind die Signale BSYELO+ und BSRINT hoch. Die CPU, die ihre belegten Flipflops rücksetzt, erzeugt ihre eigene Kanalnummer und ein hohes Datensignal BSDT9+. Die CPU 0 4-2 sendet diesen Befehl an das Rücksetz-Flipflop 2-554 aus, und die CPU 1 4-4 sendet den Befehl mit ihrer Kanalnummer an das Rücksetz-Flipflop 2-546 aus. Das Rücksetzen der Flipflops erlaubt den CPUs, den nächsten Hochgeschwindigkeits- Unterbrechungsbefehl zu empfangen.
Claims (5)
1. Datenverarbeitungssystem mit einer Vielzahl von Einheiten (4.2, 4-4,
4-2A, 4-4A, 12, 14, 20), die miteinander gekoppelt sind zur
Kommunikation, wodurch sie in einem übertragenden oder empfangenden
Modus betrieben werden, und mit einem Systembus (2), mit dem die
Einheiten verbunden sind, wobei wenigstens eine der Einheiten
(CPU/VMMU; 4-2/2A, 4-4/4A) eine Verarbeitungseinheit ist zum
Ausführen zu einem bestimmten Zeitpunkt von irgendeinem einer
Vielzahl von verschiedenen Arten von Prozessen, wobei jede
unterschiedliche Art von Prozessen einer unterschiedlichen Prioritätsstufe
zur Ausführung zugeordnet ist, wobei jede Einheit, wenn sie im
übertragenden Modus ist, einen Befehl über den Systembus
überträgt, der ein Adressfeld einschließt, das kodiert ist, um eine
Kanalnummer anzugeben, die die Adresse einer Verarbeitungseinheit
anzeigt, die angefordert wurde, einen Prozeß in Ausführung zu
bringen, dessen Befehl weiterhin eine Beschreibung des angeforderten
Prozesses (BSAD) und die Prioritätsstufe (BSDT) des angeforderten
Prozesses aufweist; die genannten Einheiten weisen eine erste
Apparatur (2-302, 2-304, 2-50) auf, um den Befehl (BSAD, BSDT) zu
empfangen, um die Prioritätsstufe der Anforderung mit der
Prioritätsstufe des gerade von dieser Verarbeitungseinheit ausgeführten
Prozesses zu vergleichen, und, wenn die Anforderungsprioritätsstufe
(BSDT) größer als die momentane Stufe ist, der übertragenden
Einheit, die die Anforderung ausgegeben hat, die Annahme der
Anforderung zu bestätigen und die Verarbeitungseinheit zu
veranlassen, die Ausführung des momentanen Prozesses zu beenden und die
Ausführung des angeforderten Prozesses einzuleiten; wenigstens eine
der Einheiten (20) ist in der Lage, eine Verarbeitungseinheit zu
veranlassen, sofort einen angeforderten Prozeß auszuführen ohne
Berücksichtigung der Prioritätsstufe des angeforderten Prozesses
bezüglich der Prioritätsstufe des von dieser Verarbeitungseinheit
gerade ausgeführten Prozesses,
dadurch gekennzeichnet, daß
irgendeine Einheit, die in ihrem übertragenden Modus in der Lage
ist, einen Prozeß anzufordern, der sofort durch die
Verarbeitungseinheit ausgeführt werden soll, mit einer zweiten Apparatur (2-8, MBI)
gekoppelt ist, um ein eindeutiges Unterbrechungssignal (BSYELO)
für ihre Übertragung zusammen mit der Beschreibung des
angeforderten Prozesses (BSAD) über den Systembus (2) an die
Verarbeitungseinheit (z. B. 4-2) zu erzeugen, die Logikschaltungen (2-506, 2-
518, 2-520, 2-522, 2-530) aufweist, die auf das eindeutige
Unterbrechungssignal (BSYELO) antworten, um die Annahme (BSACKR)
an die anfordernde Einheit zu bestätigen, wobei die
Logikverbindungen in den Logikschaltungen (2-506) so angeordnet sind, daß die
Stufenvergleichsverschalttechnik (2-550, 2-552, 2-510, 2-512), die für
die normale Antwort vorgesehen ist, übergangen wird, wodurch die
Verarbeitungseinheit veranlaßt wird, sofort die Ausführung des
momentanen Prozesses zu beenden und die Ausführung des
angeforderten Prozesses einzuleiten.
2. Datenverarbeitungssystem gemäß Anspruch 1, dadurch gekennzeichnet,
daß die Einheiten, die in ihrem übertragenden Modus in der Lage
sind, einen Prozeß anzufordern, der sofort von einer
Verarbeitungseinheit ausgeführt werden soll, die angeforderte Verarbeitungseinheit
durch ein Kanalsignal (BSAD08-17) identifiziert, das über den
Systembus (2) zusammen mit der Beschreibung des angeforderten
Prozesses (BSAD18-23, mit 18 = 1) und dem eindeutigen
Unterbrechungssignal (BSYELO) übertragen wird, und die
Verarbeitungseinheit (z. B. 4-2) weitere Logikschaltungen (2-502, 2-504, 2-508)
aufweist zum Empfangen des Kanalsignals und zum Ausgeben eines
Identifikationssignals (CHANOK), wenn das Kanalsignal (BSAD08-
17) identisch mit der Kanalnummer der Verarbeitungseinheit ist, und
zum Veranlassen der Erzeugung des bestätigenden Annahmesignals
(BSACKR) nach Empfang des Identifikationssignals (CHANOK über
Leitung A zu 2-518) und des eindeutigen Unterbrechungssignals
(BSYELO).
3. Datenverarbeitungssystem gemäß Anspruch 1 oder 2, dadurch
gekennzeichnet, daß es Befehlserzeugungseinrichtungen (2-10/A, 2-20/A,
2-30/A, MBI) aufweist, die an die anfordernden Einheiten und an
den Systembus (2) gekoppelt sind zum Ahlegen des Befehls (BSAD,
BSDT) an den Bus während Busbetriebszyklen, die der
empfangenden Verarbeitungseinheit zugeteilt sind, wobei der Befehl ein
Adressfeld (BSAD08-17) einschließt, das kodiert ist, um eine
Kanalnummer anzugeben, die die Adresse der Verarbeitungseinheit anzeigt,
und wobei der Befehl weiterhin ein Steuerfeld einschließt, daß ein
Speicherreferenzsignal (BSMREF) einschließt, das anzeigt, daß das
Adressfeld kodiert ist, um die Kanalnummer anzugeben, wobei ein
unterbrechungsartiges Signal in einem ersten Zustand eine normale
Unterbrechung angibt und in einem zweiten Zustand eine schnelle
Unterbrechung (BSYELO) angibt.
4. Datenverarbeitungssystem gemäß den Ansprüchen 1, 2 oder 3,
dadurch gekennzeichnet, daß die empfangenden Verarbeitungseinheiten
weiterhin aufweisen:
Kanaldekodiereinrichtungen (2-502, 504, 506) zum Erzeugen
eines Ausgabesignals (CHANOK), wenn die Kanalnummer mit der
Adresse der Verarbeitungseinheit übereinstimmt;
eine Matrixeinrichtung (2-506), die an den Systembus (2) und
die Kanaldekodiereinrichtungen gekoppelt ist und auf das
unterbrechungsartige Signal in dem zweiten Zustand (BSYELO) und die
Kanaladressensignale (BSAD) antwortet, um Prozessor-unmittelbare
Unterbrechungssignale (P0INTR, P1INTR) zu erzeugen;
Belegtanzeigeeinrichtungen (2-554, 546), die an den Bus und die
Matrixeinrichtung, gekoppelt sind, um anzuzeigen (P0SCFB oder
P1SCFB), daß die Verarbeitungseinheit, deren Kanalnummer
angegeben ist, belegt ist; und
Antworteinrichtungen (2-518-532), die an die Matrixeinrichtung
und den -Systembus gekoppelt sind und auf die von der
Matrixeinrichtung erzeugten Signale antworten, um entweder Ja- oder
Neinbestätigende Signale (BSACKR, BSNAKR) zu erzeugen zum Senden
dieser Signale über den Systembus (2) zu der Übertragungseinheit,
die die Anforderung ausgegeben hat.
5. Datenverarbeitungssystem gemäß Anspruch 3, dadurch gekennzeichnet,
daß die Befehle, die von den Befehlserzeugungseinrichtungen der
anfordernden Einheiten erzeugt sind und über den Systembus (2)
übertragen werden, in der Lage sind, eine
Hochgeschwindigkeitsunterbrechung in irgendeiner Einheit der Vielzahl von Einheiten
einzuleiten, auch in sich selbst.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP87115019A EP0311705B1 (de) | 1987-10-14 | 1987-10-14 | Datenverarbeitungssystem mit einer schnellen Unterbrechung |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3785209D1 DE3785209D1 (de) | 1993-05-06 |
DE3785209T2 true DE3785209T2 (de) | 1993-11-04 |
Family
ID=8197358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19873785209 Expired - Lifetime DE3785209T2 (de) | 1987-10-14 | 1987-10-14 | Datenverarbeitungssystem mit einer schnellen unterbrechung. |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP0311705B1 (de) |
DE (1) | DE3785209T2 (de) |
ES (1) | ES2040230T3 (de) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07104842B2 (ja) * | 1989-03-03 | 1995-11-13 | 日本電気株式会社 | 外部記憶装置の割込み制御方式 |
DE3917715A1 (de) * | 1989-05-31 | 1990-12-06 | Teldix Gmbh | Rechnersystem |
EP2803622A1 (de) * | 2013-05-15 | 2014-11-19 | Sidel S.p.a. Con Socio Unico | Abfülleinheit einer Behälterfüllmaschine mit verbesserter Kommunikationsfähigkeit |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3993981A (en) * | 1975-06-30 | 1976-11-23 | Honeywell Information Systems, Inc. | Apparatus for processing data transfer requests in a data processing system |
US4023143A (en) * | 1975-10-28 | 1977-05-10 | Cincinnati Milacron Inc. | Fixed priority interrupt control circuit |
US4080649A (en) * | 1976-12-16 | 1978-03-21 | Honeywell Information Systems Inc. | Balancing the utilization of I/O system processors |
US4200912A (en) * | 1978-07-31 | 1980-04-29 | Motorola, Inc. | Processor interrupt system |
EP0132161B1 (de) * | 1983-07-19 | 1988-06-15 | Nec Corporation | Anordnung zur Steuerung der Verarbeitung mehrerer Unterbrechungen |
-
1987
- 1987-10-14 EP EP87115019A patent/EP0311705B1/de not_active Expired - Lifetime
- 1987-10-14 ES ES87115019T patent/ES2040230T3/es not_active Expired - Lifetime
- 1987-10-14 DE DE19873785209 patent/DE3785209T2/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
DE3785209D1 (de) | 1993-05-06 |
EP0311705B1 (de) | 1993-03-31 |
EP0311705A1 (de) | 1989-04-19 |
ES2040230T3 (es) | 1993-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3788805T2 (de) | Prioritaetstechnik für einen zerteilten transaktionsbus in einem multiprozessorrechnersystem. | |
DE69132344T2 (de) | Dynamische Busarbitrierung | |
DE3689226T2 (de) | Multiprozessorsystem mit multihierarchischen Ebenen. | |
DE3280451T2 (de) | Verfahren zur Initialisierung eines Datenverarbeitungssystems. | |
DE19580707C2 (de) | PCI-ZU-ISA-Interrupt-Protokoll-Konverter und -Auswahlmechanismus | |
DE3751091T2 (de) | Übertragungsprotokoll zwischen Prozessoren. | |
DE69108434T2 (de) | Mehrgruppen-Signalprozessor. | |
DE69032481T2 (de) | Buszugriff für Digitalrechnersystem | |
DE69323861T2 (de) | Multiprozessorsystem mit gemeinsamem Speicher | |
DE3689087T2 (de) | Modularer Mehrfachportdatenknoten. | |
DE3783370T2 (de) | Schaltung zur blockierungsverhinderung von hochprioritaetsanforderungen an eine systemsteuerung. | |
DE3751426T2 (de) | Busschnittstellenschaltung für digitalen Datenprozessor. | |
DE3751514T2 (de) | Adressieranordnung für RAM-Puffer-Steuereinrichtung. | |
DE68915701T2 (de) | Multiprozessorsystem mit verteilten gemeinsamen Betriebsmitteln und mit Verklemmungsverhinderung. | |
DE69030861T2 (de) | Bus-Master-Steuerprotokoll | |
DE68926036T2 (de) | Speicherkonfiguration zur Verwendung für Schnittstellenbildung zwischen einer Systemsteuereinheit für ein Multiprozessorsystem und dem Hauptspeicher | |
DE3688363T2 (de) | Unterbrechungsabwicklung in einem Multiprozessorrechnersystem. | |
DE69132652T2 (de) | Rechnerdatenleitweglenkungssystem | |
DE3689198T2 (de) | Systembus für Kommunikation zwischen Prozessoren. | |
DE3883532T2 (de) | Knoten für die bedienung von unterbrechungsanforderungsnachrichten auf einem anstehenden bus. | |
DE3642324C2 (de) | Multiprozessoranlage mit Prozessor-Zugriffssteuerung | |
EP0006164B1 (de) | Multiprozessorsystem mit gemeinsam benutzbaren Speichern | |
DE2755952C2 (de) | ||
DE69621212T2 (de) | Busfehlerverarbeiter in einem Zweifachbussystem | |
DE3888353T2 (de) | Unterbrechungsknoten zum vorsehen von unterbrechungsanforderungen auf einem anstehenden bus. |