DE2411963C3 - Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken - Google Patents

Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken

Info

Publication number
DE2411963C3
DE2411963C3 DE2411963A DE2411963A DE2411963C3 DE 2411963 C3 DE2411963 C3 DE 2411963C3 DE 2411963 A DE2411963 A DE 2411963A DE 2411963 A DE2411963 A DE 2411963A DE 2411963 C3 DE2411963 C3 DE 2411963C3
Authority
DE
Germany
Prior art keywords
level
register
bus
priority
instruction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE2411963A
Other languages
English (en)
Other versions
DE2411963A1 (de
DE2411963B2 (de
Inventor
Michael Lan Davis
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2411963A1 publication Critical patent/DE2411963A1/de
Publication of DE2411963B2 publication Critical patent/DE2411963B2/de
Application granted granted Critical
Publication of DE2411963C3 publication Critical patent/DE2411963C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Multi Processors (AREA)
  • Executing Machine-Instructions (AREA)

Description

a) die Steuerblöcke (z.B. 13, 14, 15, 16; Fig. 1), die nicht der gerade arbeitenden vorzugsweise niedrigen Prioritätsstufe zugeordnet sind, sind mittels einer Adressiervorrichtung (z. B. 58, 59, 67, 81, 82, 83; F i g. 3, 4) ansteuerbar und für andere Aufgaben im voraus ladbar;
b) die Information der Anwesenheit eines unterbrochenen Programms in allen übrigen, gerade nicht arbeitenden Steuerblöcken ist abrufbar;
c) die Zustandsinformationen eines unterbrochenen Programms sind für die Wiederaufnahme seiner Bearbeitung nach Durchführung einer bereits geladenen, dazwischen geschobenen Aufgabe im jeweils zugeordneten Steuerblock speicherbar.
2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß die Adressiervorrichtung (58,59,67,81,82,83) mit Hilfe des Inhalts eines Operationsregisters die Elemente (61, 62, 63) des Steuerblocks (13, 14, 15, 16) adressiert, daß Einrichtungen (64, 65), um in den adressierten Elementen enthaltene Daten in einen Speicher zwecks späterer Wiederverwendung zu übertragen, und Einrichtungen (70, 64, 65), um in die adressierten Elemente Daten einzugeben, die die Verarbeitung eines anderen als eines zuvor unterbrochenen Programms auf der betreffenden Prioritätsstufe ermöglichen, vorgesehen sind.
3. Datenverarbeitungsanlage nach Anspruch 2, dadurch gekennzeichnet, daß für jede Prioritätsstufe eine Merkschaltung (23) vorgesehen ist, deren Zustand zum Anzeigen der Tatsache, daß auf der betreffenden Prioritätsstufe die Verarbeitung eines Programms unterbrochen wurde, veränderbar ist, daß diese Merkschaltung beim Adressieren der Elemente (61,62,63) des zugeordneten Steuerblocks (13, 14, 15, 16) abgefragt wird und daß nur bei Feststellung einer vorliegenden Unterbrechung die Einrichtungen (64, 65) zur Übertragung in den adressierten Elementen enthaltener Daten in einen Speicher aktiviert werden.
4. Datenverarbeitungsanlage nach Anspruch 2 und/oder 3, dadurch gekennzeichnet, daß Verbindüngen und Einrichtungen (64, 65) zwischen den Ausgängen und Eingängen der Elemente (61, 62, 63) der Steuerblöcke vorgesehen sind, so daß durch zweifaches Adressieren und durch Zwischenspeichern Daten von den Elementen des Steuerblocks einer Prioritätsklasse in Elemente des Steuerblocks einer anderen Prioritätsklasse übertragbar sind.
5. Datenverarbeitungsanlage nach einem oder mehreren der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß jeder Steuerblock mindestens ein Instruktionsadreß-Rückgriffregister (41), ein Akkumulatorregister (42) und ein Indexregister (43) enthält
6. Datenverarbeitungsanlage nach einem oder mehreren der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß eine Wählerschaltung (58) vorgesehen ist, mit deren Hilfe dlü Adressierung und Aktivierung von Elementen je eines Steuerblocks bewerkstelligt wird, und daß die Wählerschaltung Auswahlangaben entweder aus einer von der Prioritätsstufen-Steuereinrichtung auf die jeweils aktive Prioritätsstufe eingestellte Merkschaltungsgruppe (66) oder aus den Feldern eines Operationsregisters (80, 90), in denen Teile einer jeweils akuten Instruktion gespeichert sind, an die Steuerblöcke weitergibt.
Die vorliegende Erfindung betrifft eine elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken, zur Durchführung von Aufgaben auf der Basis einer Prioritätsstufenhierarchie nach dem Oberbegriff des Anspruchs 1.
Die Zentraleinheit einer Datenverarbeitungsanlage muß oft beliebig auftretende Bedienungsanforderungen von mehreren Funktionseinheiten oder E/A-Geräten verarbeiten. Die Zuordnung von Prioritätsstufen zu diesen Bedienungsanforderungen je nach deren Wich-
tigkeit oder Eiligkeit ist bekannt. Für viele herkömmliche Prozessoren löst das Auftreten einer Verarbeitungsanforderung höherer Priorität als des gegenwärtig verarbeiteten Programms eine Operationsfolge zur Unterbrechung der letzteren aus, wobei die Inhalte be-
stimmter Register oder Steuerelemente, die zur unterbrochenen Stufe gehören, in einem reservierten Bereich des Hauptspeichers abgespeichert werden, so daß sie nach Erledigung des Programms der höheren Prioritätsstufe wiedergewonnen und in die Register bzw. Steuerelemente zurückübertragen werden können. Die mit der Ausführung dieser Speicher- und Rückspeicheroperation zusammenhängende Reaktionszeitverzögerung war für viele Datenverarbeitungsanwendungen zufriedenstellend. Für einige Da-
tenverarbeitungsanwendungen wie z. B. für die Prozeßsteuerung wird jedoch eine immer größere Annäherung an die Echtzeitverarbeitung nötig. In der DE-OS 22 51 876 wird die Möglichkeit einer wesentlichen Verbesserung der Echtzeitreaktion einer Zentraleinheit
vorgeschlagen, die insbesondere bei der Prozeßsteuerung oder bei Datensammeleinrichtungen nützlich ist. In dieser OS wird eine Anordnung mit redundanten, d.h. gleichen, mehrfach vorhandenen Teilen vorgeschlagen, in der die kritischen Elemente einer Ver-
arbeitungseinheit (z.B. Akkumulator, Indexregister), die zur Ausführung eines Programms gehören, für jede von mehreren Prioritätsstufen separat vorhanden sind, wobei diese Konfiguration manchmal auch als virtuelle
Maschine bezeichnet wird. Dadurch können Bedienungsanforderungen höherer Priorität angenommen und verarbeitet werden, ohne daß bestimmte Register geräumt und deren Inhalt vorübergehend weggespeichert werden muß. Die kritischen, in mehrfacher Ausführung vorhandenen Elemente (Register) brauchen in der unterbrochenen Prioritätsstufe nur stillgelegt und isoliert gehalten zu werden, bis der Prozeß auf höherer Prioritätsebene abgeschlossen ist Durch diese Anordnung kann man nicht nur den Zeitverlust bei der Speicherung und Rückspeicherung vermeiden, sondern auch die Gefahr eines Übertragungs- oder Programmfehlers bei der Wiedergewinnung des unterbrochenen Programms und der Wiederaufnahme seiner Ausführung.
Durch die in der genannten OS vorgeschlagene Anordnung wird eine wesentliche Verbesserung in der Echtzeitreaktion einer Verarbeitungseinheit erzielt. Es war damit jedoch nicht möglich, ein auf einer niedrigeren Stufe auf die Beendigung einer Unterbrechung wartendes Programm noch weiter zurückzustellen, um auf dieser Stufe noch ein Zwischenprogramm auszuführen.
Auch der aus der DE-AS 14 99 200 bekannte Gegenstand befaßt sich mit der Programmunterbrechung auf der Basis einer Prioritätsstufenhierarchie. Es werden hierzu Programmstatuswörter verwendet, die in dafür vorgesehene Register eingegeben werden. Diese Programmstatuswörter enthalten alle für die Wiederaufnahme des unterbrochenen Programms wichtigen Daten. Für jedes bereitstehende Unterprogramm ist Hn Registerpaar zur Aufnahme von Programmstatuswörtern vorgesehen, wobei das eine Register leer ist und das Programmstatuswort des zu unterbrechenden Programms aufnimmt und das andere das Programm- 35-Statuswort des unterbrochenen Programms enthält, so daß von einem laufenden Programm zu einem Unterprogramm übergegangen werden kann. Es wird hierbei so vorgegangen, daß, wenn die Prüfung ergibt, daß eine Unterbrechungsanforderung höherer Dringlichkeit vorliegt, das soeben ins aktive Programmstatuswort-Register eingetragene Programmstatuswort nunmehr in das leere Register des Registerpaares für das unterbrechende Programm höherer Dringlichkeit übertragen wird.
Es ist mit einer derartigen Einrichtung jedoch immer noch nicht möglich, ein auf einer niedrigeren Prioritätsstufe auf die Beendigung einer Unterbrechung wartendes Programm noch weiter zurückzustellen, um auf dieser Stufe noch ein Zwischenprogramm auszuführen.
Für die Erledigung eines Programms hoher Priorität ist manchmal die Durchführung eines Zwischenprogramms auf einer Stufe niedrigerer Priorität nötig. Wenn nun die Sondereinrichtung (Register e:c.) dieser niedrigeren Prioritätsstufe bereits durch ein anderes, selbst unterbrochenes Programm besetzt sind, muß das Zwischenprogramm warten, bis dieses Programm wiederaufgenommen und erledigt ist. Das wäre aber eine unerwünschte Verzögerung. Eine Möglichkeit zur sofortigen Erledigung des Zwischenprogramms bestünde darin, die Sondereinrichtungen einfach zu räumen und dadurch quasi das unterbrochene Programm abzuwerfen. Dies ist natürlich eine noch weniger erwünschte Störung im Betriebsablauf.
Der Erfindung liegt die Aufgabe zugrunde, bei der eingangs genannten Datenverarbeitungsanlage eine Verbesserung zu schaffen und die Flexibilität bei der Verarbeitung mehrfacher Piögrammunterbrechungen zu erhöhen, wobei in niedrigen Prioritätsstufen andere Aufgaben nachgeladen werden können, die für die Erledigung eines Programms hoher Priorität benötigt werden, für das manchmal die Durchführung eines Zwischenprogramms auf einer niedrigeren Prioritätsstufe nötig ist
Gelöst wird diese. Aufgabe bei einer elektronischen Datenverarbeitungsanlage nach dem Oberbegriff des Anspruchs 1 durch die in dem kennzeichnenden Teil des Anspruchs 1 enthaltenen Merkmale.
Vorteilhafte Weiterbildungen und Ausgestaltungen sind den Unteransprüchen zu entnehmen.
Der Vorteil einer erfindungsgemäßen elektronischen Datenverarbeitungsanlage liegt in der Möglichkeit der Kommunikation zwischen den verschiedenen Prioritätsstufen, die bisher nicht bestand. Aus der Verarbeitung auf einer Prioritätsstufe heraus können die Register in den Sondereinrichtungen, d.h. Steuerblöcken anderer Prioritätsstufen abgefragt ihr Inhalt weggespeichert und andere Daten zur bevorzugten Verarbeitung eines Zwischenprogramms geladen werden.
Ein Ausfübrungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird anschließend näher beschrieben. Es zeigt
F i g. 1 das Blockdiagramm einer Zentraleinheil mit separaten Registersätzen/Steuerblöcken für mehrere Prioritätsstufen, und die zugehörige Kanaleinheit,
F i g. 2 in einem Blockdiagramm einige Details der Zentraleinheit der F i g. 1,
F i g. 3 Einzelheiten einer verbesserten, der Anordnung gemäß F i g. 1 und 2 entsprechenden Zentraleinheit mit erfindungsgemäßen Zusatzeinrichtungen,
Fig.4 und 5 schematische Darstellung von Anordnungen zur Gewinnung von Eingangssignalen für Einrichtungen gemäß Fig.3 aus den in einem Register gespeicherten Feldern einer Instruktion.
Die Grundelemente einer mit mehreren Prioritätsstufen arbeitenden bekannten Datenverarbeitungsanlage sind in den F i g. 1 und 2 gezeigt und ihre gegenseitigen Betriebsbeziehungen nachfolgend kurz als Grundlage beschrieben.
Zur Zentraleinheit ZElO gehört ein Hauptspeicher 11 und eine Recheneinheit/ZE-Steuerung 12, die im wesentlichen wie in herkömmlichen Verarbeitungsanlagen aufgebaut sind. Die Zentraleinheit 10 kann jedoch mit vier Unterbrechungsprioritätsstufen arbeiten. Zu diesem Zweck enthalten die Registersätze/Steuerblökke 13 bis 16 ausreichende logische Schaltungen, um unabhängig voneinander mit der Recheneinheit/ZE-Steuerung 12 sowie dem Hauptspeicher 11 zusammenarbeiten zu können. Die Registersätze/Steuerblöcke sind im folgenden größtenteils kurz als »Steuerblöcke« bezeichnet. Sie enthalten vor allem Register und Bedingungs- bzw. Zustandsmerker. Die Prioritätsstufensteuerschaltung 20, im folgenden kurz »Prioritätssteuerung« genannt, reagiert auf die Bedienungsanforderung mit der höchsten Unterbrechungspriorität durch Betätigen desjenigen der Steuerblöcke 13 bis 16, der dieser Prioritätsstufe entspricht, während sie effektiv alle anderen Steuerblöcke stillsetzt. Wenn z. B. eine Unterbrechung der Stufe 2 durch den Steuerblock 15 verarbeitet wird, sind die Schaltungen 13, 14 und 16 inaktiv. Wenn eine Unterbrechungsanforderung für die erste Stufe über die Sammelleitung 21 von den Untcrbrechungs-Anforderungsmerkern 31 im Kanal 25 empfangen wird, wird die Prioritätssteuerung 20 den Steuerblock 15 stillsetzen, so bald ein möglicher Unterbrechungspunkt in der Verarbeitung erreicht ist,
und dann den Steuerblock, (die Register und Bedienungsschaltungen) 14 betätigen. Der Betrieb des Speichers 11 sowie der Recheneinheit/ZE-Steuerung 12 in Verbindung mit den Registriersätzen/Steuerblöcken 13, 14, 15 oder 16 entspricht insofern also dem Betrieb von vier Prozessoren. Es ist ein wesentlicher Teil dessen, was manchmal auch als »virtuelle Prozessororganisation« bezeichnet wird.
Die Aktivmerker 22 zur Angabe der jeweils aktiven Prioritätsstufe und die Wartemerker 23 unterstützen die Prioritätssteuerung 20 bei der Steuerung der Prozessororganisation. Bei der Verarbeitung einer Unterbrechung der zweiten Prioritätsstufe wird von den Aktivmerkern 22 derjenige für die zweite Stufe gesetzt. Das Erscheinen einer Bedienungsanforderung von dem Änforderungsrncrkcr für die erste Stufe aus der Merkergruppe 31 veranlaßt die Prioritätssteuerung 20 zur Rückstellung des Aktivmerkers der zweiten Stufe, zum Einschalten des Aktivmerkers der ersten Stufe, zum Einschalten des Wartemerkers der zweiten Stufe. Anschließend wird die Unterbrechungsverarbeitung der ersten Stufe durchgeführt und dann der Prioritätssteuerung 20 die Freigabe der ersten Stufe angezeigt. Die Prioritätssteuerung 20 stellt dann den Aktivmerker der ersten Stufe zurück und prüft die Wartemerker 23. Im erwähnten Beispiel stellt sie dann fest, daß die Unterbrechungsverarbeitung der zweiten Stufe selbst unterbrochen wurde und somit wird der Aktivmerker der zweiten Stufe wieder gesetzt und der Steuerblock 15 für die zweite Stufe erneut betätigt, um den Prozessor zur Fortsetzung der Arbeit auf dieser unterbrochenen Stufe zu steuern. Die Beziehungen der Registersätze/ Steuerblöcke 13 bis 16, die je einer Prioritätsstufe zugeordnet sind, zu den anderen Elementen der ZE 10 gehen aus der späteren genaueren Beschreibung der F i g. 2 hervor.
Der Kanal 25 stellt im wesentlichen ein Mittel zur Steuerung der ZElO aufgrund irgendeiner von mehreren möglichen Bedingungen dar. Ein E/A-Gerät kann z. B. seine Unterbrechungsanforderung über die Sammelleitung 26 eingeben. Außerdem werden bei der bekannten Anlage aufgrund der £/,4-Unterbrechungsanforderung die zugeordnete Prioritätsstufe sowie die Identität der Unterbrechungsquelle, der Gerätezustand und die für die Verarbeitung dieser Unterbrechung aufzurufende Unterroutine angegeben. Die ZElO kann auch selbst eine Unterbrechungsverarbeitung über die Leitung 27 anfordern, d. h. ein in der ZE 10 ausgeführtes Programm kann anzeigen, daß es in Konkurrenz mit anderen Unterbrechungsanforderungen verarbeitet werden sollte. Die zur Unterbrechungsprioritätsstufe gehörenden Daten, die Identität der Unterbrechungsquelle und die zu verwendende Unterroutine werden dann über die Sammelleitung 27 in den Intern-Unterbrechungspuffer 28 geladen (mit Intern-Unterbrechung sind hier die vom Prozessor selbst durch Programm herbeigeführten Unterbrechungen bezeichnet, zur Unterscheidung von E/4-Unterbrechungen). Diese Unterbrechungsanforderungen können dann über die Sammelleitung 33 zusammen mit anderen eventuell eine Bedienung anfordernden Geräten wie Direktanschluß- Einheiten, Zeitgebern, usw. (vom Block 32 über das Kabel 34) konkurrieren. Die Überwachungsschaltung 29 reagiert auf die verschiedenen vorliegenden Unterbrechungsanforderungen und bestimmt welche Anforderung Zugriff zum Unterbrechungspuffer 30 durch die Torschaltung 35 mittels irgendeines gewünschten Algorithmus erhalten soll. Es kann z.B. bestimmt werden, daß eine Intern-Unterbrechung im Puffer 28 auf der Stufe 1 Vorrang haben soll gegenüber einer auf der Sammelleitung 26 erscheinenden E/A-Unterbrechung, der ebenfalls die Stufe 1 zugeordnet wurde. Bei Bedarf kann die Überwachungsschaltung 29 eine Anzeige dafür Speichern, daß eine Intern-Unterbrechung der Stufe 1 ahgerrommen wurde und eine ausstehende Unterbrechung der Stufe 1 von einer anderen Quelle angenommen werden muß, bevor eine weitere Intern-Unterbrechungsanforderung der Stufe 1 angenommen wird. Die für die zu verarbeitende Unterbrechung wichtigen Daten werden der Reihe nach in die entsprechende Stufe (Register 0 bis 3) des Unterbrechungspuffers 30 eingegeben, und dann wird der Anforderungsmerker 31 für die entsprechende Stufe gesetzt.
Bedäenungsanforderungen können in das Pufferregister 30 auch eingegeben werden, während eine Unterbrechung noch in der Z£ 10 verarbeitet wird.
In einer typischen Operation wird ein Programm, das Überwachungsfunktionen ausführt und Anfangsinformation überträgt, in den Speicher geladen und gestartet durch Übertragung der Steuerinformation in den Intern-Unterbrechungspuffer 28. Am Anfang sind keine anderen konkurrierenden Unterbrechungsanforderungen vorhanden, und daher können Daten unter Steuerung des Überwachungsprogramms übertragen werden. Schließlich werden einmal Unterbrechungsanforderungen über die Schnittstellenverbindung 26 empfangen, wie sie z. B. durch Datenübertragungseinheiten oder andere E/A-Zusätze entstehen. Diese Unterbrechungsanforderungen konkurrieren mit Direktanschluß-Einheiten, Zeitgebern usw. (Block 32) zusammen mit den im Puffer 28 vorhandenen Intern-Unterbrechungen. Darstellungsgemäß hat der Puffer 28 vier Register für vier Stufen der Prioritätsunterbrechung. Die Schaltung 29 bestimmt, welche Unterbrechung angenommen wird, ermöglicht zu demjenigen Register im Unterbrechungspuffer 30 einen Zugriff, welches der zu der Anforderung gehörenden Unterbrechungsstufe entspricht. Es kann jeweils nur eine Anforderung berücksichtigt werden, und diese wird dann in den Puffer 30 geladen, bis die ZEiO einer Unterbrechung für diese spezielle Stufe verarbeiten kann. Wenn eine Unterbrechung für eine gegebene Stufe behandelt wird, werden die in dem betreffenden Pufferregister 30 enthaltenen Daten sowohl in die entsprechenden Steuerelemente im Block 12 übertragen als auch in den dieser Prioritätsstufe entsprechenden Registersatz/Steuerblock 13 bis 16 eingegeben. Der Anforderungsmerker 31 für die angenommene Stufe wird außerdem zurückgestellt, so daß die Schaltung 29 eine weitere Anforderung für diese Stufe in den Puffer 30 laden kann. Abweichend von den in F i g. 1 gezeigten vier Stufen der Prioritätsunterbrechung ist natürlich auch eine größere oder kleinere Anzahl möglich.
Fi g. 2 zeigt einige betroffene Elemente der Zentraleinheit selbst Dazu gehört ein I nstruktions-Adreßregister 40, welches die auszuführenden Instruktionen jeweils vom Speicher in bekannter Weise auswählt Die anderen Elemente einschließlich des Operationsregisters 52, des Speicheradreßregisters 53, des Speicherdatenregisters 54, des Unterbrechungsmaskenregisters 56, des Arbeitsspeichers 57, des V-Konzentrators 46, des Y-Registers 47, des R W-Konzentrators 44, des Rechen-
werks 45 und des Datenpuffers 48 übernehmen alle im "wesentlichen die Steuerung der ZE-Operation auf bekannte Weise. Außerdem verfügt jede Prioritätsunterbrechungsstufe über ein Instruktionsadressen-
Rückgriffregister 41, welches entsprechend den vier Prioritätsstufen mit IARBO-IARB3 bezeichnet ist. Weiterhin ist jeder Prioritätsstufe ein Akkumulator (ACC) mit Bedingungs- und Anzeigefeld 42 zugeordnet. Außerdem verfügt jede Prioritätsstufe über lndexregister (XR) und Zustandsrückgriffregister (SRB) 43. Der Betrieb der Verarbeitungseinheit unter Steuerung einer Prioritätsunterbrechung der dritten Stufe bringt also die Benutzung von IARB3, ACC3 mit dem zugehörigen Bedingungs- und Anzeigefeld, sowie XR 1-3, XR 2-3 bis XR 7-3 und SRB-3 mit sich. Während diese Elemente den Betrieb der Verarbeitungseinheit steuern, sind ihre Gegenstücke für die Stufen 0, 1 und 2 stillgelegt durch die Pnoritätssteuerung; jedoch wird eine Unterbrechungsanforderung auf einer dieser Stufen die Stufe 3 in der Verarbeitung unterbrechen, sofern sie von der Maske im Unterbrechungsmaskenregister 56 zugelassen ist.
Sobald eine Unterbrechung mit einer höheren Prioritätsstufe auftritt, werden die oben erwähnten Register, Akkumulatoren u. dgl. für die niedrigere Stufe einfach in dem Zustand belassen, in dem sie zum Zeitpunkt der Unterbrechung standen, und die Steuerung wird der höheren Prioritätsstufe übertragen. Dadurch kann die Maschine schnell auf die niedrigere Prioritätsstufe zurückkehren und die Verarbeitung dort fortsetzen, wenn alle Unterbrechungen der höheren Stufe berücksichtigt wurden. Die Elemente IARBO, ACCO mit zugehörigem Bedingungs- und Anzeigefeld, sowie XR 1-0 bis XR 7-0 entsprechen zusammen dem in Fig. 1 gezeigten Registersatz/Steuerblock 13 für die Stufe 0. Die direkte Kanalverbindung 55 gestattet die Übertragung von im Unterbrechungspuffer 30 der Fig. 1 enthaltener Information, die zu einer soeben berücksichtigten Unterbrechungsanforderung gehört, in die entsprechenden Registerpositionen.
Die Leitung »Prioritätsstufe« 49 gestattet die Übertragung der aus den Unterbrechungs-Anforderungsmerkern 31 der Fig. 1 codierten zugehörigen Information in die entsprechenden Registerpositionen des Arbeitsspeichers 57. Diese Bits im Arbeitsspeicherbereich 57 werden mit den Bits aus der direkten Kanalverbindung 55 kombiniert zur Bestimmung der Anfangsadresse der aufgrund einer Unterbrechung auszuführenden Unterroutine.
Der Rechenwerks-Konzentrator 44 und der Y- Konzentrator 46 sind Funktionseinheiten, die die Auswahl einer von mehreren Sammelleitungen als Quelle der in eine Bestimmungssammelleitung zu übertragenden Information gestatten. Der Arbeitsspeicher 57, das y-Register 47 und der Datenpuffer 48 bestehen jeder aus einer Vielzahl von bistabilen Schaltungen. Mit ihnen wird Information während der Ausführung einer Instruktion vorübergehend gespeichert. Das Rechenwerk 45 ist eine Funktionseinheit allgemein bekannter Art, wie sie in bestehenden Computern für arithmetische und logische Funktionen benutzt wird. Die Elemente SAR 53, SDR 54, IAR 40, OP-REG 52, UMR 56, Arbeitsspeicherbereich 57, Y-Konzentrator 46, Y-REC47, RW-Konzentrator 44, RW45 und Datenpuffer 48 sind in einer mit mehreren Prioritätsstufen arbeitenden Verarbeitungseinheit nur einmal vorhanden und werden von den einzelnen Prioritätsstufen gemeinsam benutzt.
Die vorliegende Erfindung ermöglicht es, daß in einer Datenverarbeitungsanlage mit Prioritätsverarbeitung, wie sie im Zusammenhang mit F i g. 1 und 2 beschrieben wurde, ein Programm, das auf einer bestimmten Prioritätsstufe läuft, ein zu einer anderen Prioritätsstufe gehörendes Programm beeinflussen, mit ihm Informationen austauschen und es sogar beenden kann.
Es wurde ferner ein Prozessor beschrieben, der zur Reduzierung der Verwaltungsvorgänge durch einen nach Prioritäten ausgerichteten Unterbrechungsmechanismus gesteuert wird und außerdem einen vollständigen Registersatz/Steuerblock für eine jede Unterbrechungsstufe vorsieht um die mit der Aufgabenumschaltung beim Auftreten von Unterbrechungen verbundenen Verwaltungsvorgänge zu reduzieren (vgl. Beschreibung der F i g. 1 und 2). Durch die Art jedoch, in der die Instruktionsadreßregister, andere Register und Bedingungsmerker auf der Basis der Prioritätsstufen separiert werden, neigt das bekannte System dazu, eine Kommunikation zwischen den einzelnen Prioritätsstufen auszuschließen. Das einzige gemeinsame Medium für eine solche Kommunikation ist der Hauptspeicher. So verfügt beispielsweise weder ein auf der Stufe 1 laufendes Programm über irgendwelche Informationen über den Zustand des auf der Stufe 2 laufenden Programms noch kann es bei Bedarf die Ausführung des auf der Stufe 2 laufenden Programms aussetzen. Ein solches Datenverarbeitungssystem sollte aber im Zeitteilerbetrieb die Möglichkeit bieten, daß ein Programm der Prioritätsstufe 1 eine Arbeit auf der Stufe 2 aussetzen, dann auf der Stufe 2 eine neue Arbeit starten, diese beenden und dann die ursprüngliche Arbeit wieder starten lassen kann.
Gemäß der späteren Beschreibung der F i g. 3,4 und 5 bietet die vorliegende Erfindung dem in den F i g. 1 und 2 dargestellten Datenverarbeitungssystems zusätzlich diese Funktionsmöglichkeit. Die vorgeschlagenen Schaltungen und ihre Arbeitsweise in Verbindung mit bestimmten Instruktionen gestatten es, einen laufenden Wert des Instruktionsadreßregisters der adressierten Prioritätsstufe der dominierenden Stufe zur Verfügung zu stellen, die Operation der adressierten Stufe auf Wunsch der dominierenden Stufe ungeachtet dessen, ob dort ein Prozeß lief oder nicht, abzubrechen und die Inhalte des Registersatzes/Steuerblocks der adressierten Stufe im Registersatz/Steuerblock der dominierenden Stufe zu speichern. Bei einem gegebenen Computer mit mehreren Maschinenunterbrechungsstufen gestattet die vorliegende Erfindung die Zurückstellung eines Programmes auf einer anderen Maschinenstufe, die Einleitung eines anderen Programmes und die Zurückstellung dieses Programmes zur erneuten Einleitung des ursprünglichen Programmes, wobei keinerlei Daten oder der Zusammenhang des Instruktionsstromes des ursprünglichen Programmes verlorengehen. In einem Computer, in dem mehrere maschinelle Unterbreqhungsstufen vollständig voneinander getrennt sind, wie es im Zusammenhang mit den F i g. 1 und 2 beschrieben ist, kann die Ausführung eines Programmes auf einer Prioritätsstufe nicht ausgesetzt und zu einem späteren Zeitpunkt wieder gestartet werden, während alle Daten unter Zusammenhang des Instruktionsstromes aufrecht erhalten werden. Die vorliegende Erfindung bietet diese Möglichkeit durch eine zusätzliche maschinelle Ausrüstung für die Ausführung dieser Operation aufgrund von besonderen Instruktionen. Dabei handelt es sich um die Instruktionen »Lesen /AÄ-Rückgriffregister« (RIB), »Schreiben /AÄ-Rückgriffregister« (WIB), »Speichern Anzeiger« (STI) sowie »Verzweigen und nicht maskieren, lang« (BUL) Besondere Merkmale der ersten drei erwähnten Instruktionen sind die Möglichkeit, die Inhalte von Registern oder Anzeigern auf einer
gewählten Prioritätsstufe, die von der gegenwärtig aktiven Suife verschieden sein kann, zu lesen oder zu verändern, und zwar ohne die gewählte Stufe zurückzustellen, so daß diese mit der Ausführung von Instruktionen fortfahren kann, wenn sie zur aktiven Stufe wird.
Die Instruktion »Verzweigen und nicht maskieren, lang« übernimmt eine registerlose Verzweigung, während sie die Gesamtmaske zurückstellt und die Annahme von Unterbrechungen ermöglicht. Diese Instruktion gestattet das Einstellen der Gesamtmaske vor dem Beginn einer nicht zu verändernden Unterroutine und die Maske so eingestellt zu lassen, bis die Instruktion ausgeführt ist, um dann von der Unterroutine zurückzukehren, wodurch die Integrität der Routine gewahrt bleibt. Durch eine registerlose Verzweigung wird die Rückkehr von der Unterroutine möglich, wobei alle Register initialisiert sind und kein Register für die Rückkehradresse benötigt wird.
Zwei zusätzliche Instruktionen bieten eine andere Möglichkeit zum Wählen der zu lesenden oder zu verändernden Prioritätsstufe bzw. des Registers. Diese Instruktionen sind »Laden gewähltes Stufenregister« (LSLR) und »Speichern gewähltes Stufenregister« (STSR). Sie stellen eine allgemeinere Lösung der gestellten Aufgabe der Kommunikation und Steuerung zwischen den einzelnen Prioritätsstufen dar.
Zur Beschreibung des Ausführungsbeispiels wird angenommen, daß die Instruktionen RIB. WIB und STl ein zum ZE-Operationsregister 80 in F i g. 4 passendes Format haben. Das Stufenauswahlfeld soll mindestens 2 Bitpositionen umfassen, in denen die gewählte Prioritätsstufe binär codiert dargestellt ist.
Die Instruktionen LSLR und STSR sollen zu dem für das Z£-Operationsregister 90 in F i g. 5 gezeigten Format passen, wobei natürlich die Register 52 in Fig. 2, 80 in Fig.4 und 90 in Fig. 5 die gleichen Register sein können. Zur Beschreibung des Ausführungsbeispiels wird weiter angenommen, daß die Operationsregister und die zugehörigen Instruktionen 16 Bits lang sind, die mit 0 bis 15 numeriert sind. Eine gemeinsame Bitkonfiguration für den Operationscode, der z. B. die Bits 0 bis 4 benutzt, gibt an, daß eine der Instruktionen RIB, WIB oder STI auszuführen ist. Die jeweilige Instruktion ist durch eine eindeutige Bitkonfiguration im Modifizierfeld bezeichnet, welches die Bits 12 bis 15 umfassen kann. Wenn der Wert z. B. M im Modifizierfeld Hexadezimal 13 ist, ist die Λ/B-Instruktion auszuführen. Wenn M hexadezimal 14 ist, ist die Instruktion WIB gewählt worden, während bei M gleich 0 die Instruktion ST/gewählt ist.
Zur Ausführung der Λ/S-Instruktion (Mß-Rückgriffregisier lesen) ersetzt der Inhalt des //4i".S-Regisiers für die gewählte Stufe den Inhalt des durch das Λ-Feld (5 — 7) angegebenen Registers. Wenn das R-FeId aus lauter Nullen besteht wird der Inhalt des IARB der gewählten Stufe in den Akkumulator für die wählende Stufe gesetzt Da das /AÄB-Register nicht tatsächlich für die Prioritätsstufe 0 eingeschlossen werden kann, weil diese nicht unterbrochen werden kann, resultiert die Ausführung dieser Instruktion, wenn die vorgeschriebene Stufe die Stufe 0 ist im Laden einer 0 in das durch das Ä-Feld angegebene Register. Das gewählte /AftB-Register bleibt jedoch unverändert Die Stufe wird durch den binärcodierten Wert in den Bitpositiovnen 8 bis 11, dem Stufenauswahlfeld in der Instruktion, gewählt Die gewählte Stufe wird nicht zurückgestellt und wenn die gewählte Stufe noch im Wartezustand ist, wird sie also automatisch zur laufenden (aktiven) Stufe, wenn alle höheren Stufen abgearbeitet sind.
Der Übertragungsanzeiger der wählenden (dominierenden) Stufe wird eingeschaltet, wenn die gewählte Stufe aktiv oder im Wartezustand zur Wiederaufnahme ist. Wenn die gewählte Stufe nicht aktiv oder im Wartezustand ist, bleibt der Übertragungsanzeiger der dominierenden Stufe ausgeschaltet. Der Überlaufanzeiger bleibt unverändert, aber die Ergebnisanzeiger auf der dominierenden Stufe werden abhängig von dem in das durch das /?-Feld angegebene Register geladenen Operanden verändert. Die Anzeiger auf der gewählten Stufe werden nur verändert, wenn es sich um die aktive Stufe handelt.
Bei der Ausführung der WIB-Instruktion (Schreiben IAR- Rückgriff register) ersetzt der Inhalt des durch das Λ-Feld angegebenen Registers den inhalt des IAR-Rückgriffregisters auf der gewählten Stufe. Wenn das /?-Feld der wählenden Stufe aus lauter Nullen besteht, wird wieder der Akkumulator benutzt. Der Inhalt des durch das Λ-Feld angegebenen Registers bleibt unverändert Die Prioritätsstufe wird durch den binärcodierten Wert in den Stufenauswahlbitpositionen 8 bis 11 der Instruktion gewählt. Die gewählte Stufe wird nicht zurückgestellt und wird daher, wenn sie im Wartezustand ist, automatisch zur laufenden (aktiven) Stufe, wenn alle höheren Stufen abgearbeitet sind. Wenn eine Stufe 0 gewählt wird, führt die Instruktion keine Operation aus.
Bei der Ausführung der Instruktion STI (Anzeiger speichern) wird der Inhalt der Ergebnis-, Übertragungsund Überlaufanzeiger auf der durch das Stufenauswahlfeld bezeichneten Stufe in dem Register gespeichert, welches durch das /?-Feld angegeben ist, wobei ein /?-Feld aus lauter Nullen wieder den Akkumulator der laufenden Stufe darstellt. Die Stufe wird durch den binärcodierten Wert in den Bitpositionen 8 bis 11 des Stufenauswahlfeldes in der Instruktion gewählt. Die gewählte Stufe wird nicht zurückgestellt. Nachdem diese Instruktion ausgeführt ist, enthält das durch das ursprüngliche /?-Feld definierte Register der laufenden Stufe den Zustand der Operation der gewählten Stufe. Ein Bit in diesem durch das /?-FeId definierten Register kann also der Null-Ergebnisanzeiger der gewählten Stufe sein, ein anderes Bit der Negativ-Ergebnisanzeiger, ein weiteres Bit der Positiv-Ergebnisanzeiger, ein weiteres Bit der Anzeiger für ein Gleich-Ergebnis, ein weiteres Bit der Übertragungsanzeiger und noch ein weiteres Bit der Überlaufanzeiger. Übertrags-, Überlauf- und Ergebnisanzeiger auf der gewählten Stufe werden nicht verändert Die Ergebnisanzeiger auf der laufenden Stufe werden abhängig von dem in das Register auf der laufenden Stufe geladenen Operanden verändert Die Übertrags- und Überlaufanzeiger auf der laufenden Stufe werden jedoch nicht verändert
Die Instruktion BUL (Verzweigen und nicht maskieren, lang) wird tatsächlich durch die in F i g. 2 gezeigte Schaltungsanordnung ausgeführt Diese Instruktion enthält einen sich selbst eindeutig bezeichneten Operationscode. Wenn die Instruktion BUL in das Operandenregister 52 der Fig.2 geladen worden ist, wird ein eindeutiges Adressenfeld von 16 Bits in das Instruktionsadreßregister 40 geladen und wird zur Adresse der nächsten auszuführenden Instruktion.
Übertragungs-, Oberlauf- und Ergebnisanzeiger werden nicht betroffen. Die Gesamtmaske wird dadurch abgeschaltet und die Steuerung der Unterbrechungen auf höherer Ebene durch den Inhalt des Unterbre-
chungsmaskenregisters UMR 56 bestimmt. Unterbrechungen werden abhängig vom Wert der Maske während dieser Instruktion ermöglicht. Die Programmausführung kann also vor der Ausführung der nächstfolgenden Instruktion unterbrochen werden. Das /Ü-Feld, das Stufenauswahlfeld und das Modifizierfeld werden für diese Instruktion nicht gebraucht.
Die Instruktionen zum Laden des Registers der gewählten Stufe (LSLR) und zum Abspeichern des Registers der gewählten Stufe (STSR) haben einen gemeinsamen Operationscode, können durch die Schaltung aber mittels Identifikationsbitpositionen im Modifizierfeld unterschieden werden. Für die Ausführung der LSLR-Instruktion wird der Inhalt der durch die effektive Adresse bezeichneten Stelle im Hauptspeicher in das gewählte Register auf der gewählten Stufe geladen. Die Stufe wird durch den inhait des durch das R 1-FeId im Operationsregister 90 der Fig. 5 angegebenen laufenden Stufenregisters gewählt. Das /?2-Feld wählt ein laufendes Stufenregister, welches eine Hauptspeicheradresse enthält und damit die Hauptspeicherstelle definiert, die entweder Ziel oder Quelle von aus dem durch das R 1-FeId bezeichnete Register oder in dieses Register zu übertragenden Daten ist. Für LSLR wählt das /?1-Feld effektiv ein Zielregister. während R 2 effektiv eine Quellenstelle im Hauptspeicher adressiert. Die SrSß-Instruktion wählt mit R 1 ein Quellenregister und adressiert mit R 2 eine Zielstelle im Hauptspeicher. Der Arbeitsspeicherbereich enthält während dieser Übertragungen den Inhalt des durch R 1 angegebenen Registers. Diese Operation wird später genauer beschrieben. Für die LSLR-Instruktion enthält das durch R 1 bezeichnete Register 2 Bitpositionen, die die Zielregisterstufe wählen, und andere Bitpositionen, die die jeweiligen Register auf dieser Stufe angeben. Sie können z. B. eines von sieben Indexregistern, das /A/?-Rückgriffregister (ausgenommen auf der Stufe 0. wo es das IAR ist, wenn kein IARBO da ist) oder das Stufenzustands-Rückgriffregister wählen. Durch das Laden des Stufenzustands-Rückgriff registers auf der laufenden Stufe werden Übertragungs-, Überlaufs-. Ergebnis-, Bitadreßanzeiger und Schutzschlüssel auf der laufenden Stufe nicht initialisiert. Die Übertragungsund Überlaufanzeiger auf der laufenden Stufe werden nicht verändert, wogegen dL Ergebnisanzeiger abhängig von den geladenen Operanden verändert werden. Die effektive Adresse ist der inhalt des R 2-Feldes.
Das Stufenzustands-Rückgriffregister hat nach Bitpositionen den folgenden Inhalt: 00 - Byteadressanzeiger 0 (BAIO); 01 -Byteadreßanzeiger 1 (BAI 1); 02-Nullergebnisanzeiger (Z); 03-Negativ-Ergebnisanzeiger (N): 04-Positiv-Ergebnisanzeiger (P); 05-Gleich-Ergebnisanzeiger (E): 06 — Übertragungsanzeiger (C): 07 — Überlaufanzeiger (O): und 12 bis 15 — Schutzschlüssel. Die Bitpositionen 08 bis 11 werden nicht benutzt. Die Ausführung dieser Instruktion wird unterdrückt wenn die effektive Adresse die verfügbare Speichergröße überschreitet Eine Antwort »ungültige Adresse« wird unter diesen Umständen gegeben. Auf diese Weise hat das System bisher gearbeitet Die STSÄ-Instruktion (Speichern gewähltes Stufenregister) wird so ausgeführt daß der Inhalt des gewählten Registers auf der gewählten Stufe den Inhalt der durch die effektive Adresse angegebenen Speicherstelle ersetzt Die Stufe wird wieder durch die Bitpositionen des durch das R 1-FeId angegebenen Registers gewählt Die Bitpositionen 12 bis 15 dieses Registers werden zum Wählen des Quellenregisters auf der Wahlbitstufe benutzt gemäß der obigen Definition für die Instruktion zum Laden des gewählten Stufenregisters. Beim Speichern des Stufenzustands-Rückgriffregisters der laufenden Stufe werden der laufende Zustand des Ergebnisses, Übertrag, Überlauf, Byteadreßanzeiger und Schutzschlüssel nicht gespeichert. Dabei wird nur der im Rückgriffregister durch die letzte vorgezogene Unterbrechung dieser Stufe zurückgelassene Wert gespeichert. Die Übertrags- und Überlaufanzeiger auf der laufenden Stufe werden nicht verändert, während die Ergebnisanzeiger abhängig vom gespeicherten Operanden verändert werden. Die effektive Adresse ist der Inhalt des R 2-Feldes. Wieder wird die Instruktionsausführung unterdrückt und ein Anzeiger »ungültige Adresse« gesetzt, wenn die effektive Adresse den verfügbaren Speicherplatz überschreitet. Außerdem wird die insiruktion unterdrückt, wenn die effektive Adresse im Falle der Adressierung die Speicherschutzvorschrift verletzt.
Der mögliche willkürliche Abbruch der Unterbrechungsverarbeitung auf einer gegebenen Prioritäisstufe und die Möglichkeit, den Registersatz/Steuerblock einer adressierten Stufe anzusprechen, ist besonders vorteilhaft, wenn in einem aufgeteilten Prozessor mit Zeitscheibenaufteilung gearbeitet, mehrere Programme auf Vorzugsbasis zeitlich verzahnt verarbeitet werden und sogenannte Einspeicher-ZAusspeicheroperationen ausgeführt werden sollen. In einem solchen System werden wichtige Parameter wie die Instruktionsadresse, arithmetische und logische Bedingungen und Indexregisterangaben für jede Unterbrechungsstufe in völlig separaten Schaltungen festgehalten. Derartige Operationen standen bei herkömmlichen Geräten nicht zur Verfügung, in denen ein gegebenes Programm (die wählende Stufe) ursgenügende Kenntnisse des adressier ten Programms hatte, um die Funktionen zu ermöglichen. Die vorliegende Erfindung ermöglicht jem die Ausführung solcher Operationen. Wenn eine Instruktion so ausgeführt werden soll, daß ein Unterbrechungsprozeß abgebrochen wird, stellt ein Taktimpuls während der Ausführung dieser Instruktion den Wartemerker 23 der F i g. 1 für die abzubrechende Stufe (bzw Stufen) zurück. Unter dem Einfluß von erfindungsgemäßen Steuerungen können Daten vom Instruktionsadreßregister der adressierten Stufe entweder in den Hauptspeicher oder in ein Indexregister oder den Akkumulator für die wählende Stufe verschoben werden. In ähnlicher Weise kann der Inhalt der Anzeiger für die adressierte Stufe in den Hauptspeicher oder ein Indexregister oder Akkumulator der wählenden Stufe geschoben werden. Diese Rettung des Inhaltes des Instruktionsadreßregisters und der Anzeiger gestattet es, den Zustand des unterbrochenen Programms aufzuzeichnen. Wenn ein neues Programm auf derselben Stufe eingeleitet werden soll, werden das Instruktionsadreßregister und die Anzeiger für die Adressierte Stufe entweder vom Hauptspeicher oder von einem Indexregister oder Akkumulator der wählenden Stufe geladen. Die Verwaltung der Indexregister und Akkumulatoren selbst kann durch Programmierung ohne maschinelle Unterstützung erfolgen.
Fig.3 zeigt die gegenseitigen Beziehungen der Steuersignale und Schaltungen, die für eine Kommunikation zwischen den einzelnen Unterbrechungsstufen in einem Computer mit mehreren Unterbrechungsstufen, wie er allgemein in den F i g. 1 und 2 gezeigt und beschrieben wurde, notwendig sind. Der Block 66 enthält mehrere Aktiv-Merker, mit denen die laufende
aktive Prioritätsstufe gewählt wird. Die Aktiv-Merker
66 sind grundsätzlich gleichwertig den Aktivmerkern 22 der Fig. 1. In diesem Block gibt es für jede Unterbrechungsstufe <m Computer einen Aktiv-Merker. Nur jeweils einer dieser Aktiv-Merker ist unter normalen Betriebsbedingungen zu einem gegebenen Zeitpunkt gesetzt. Der Block 66 speist die Sammelleitung 69, deren Signale je nach dem Ausgangswert des Inverters 68 durch den Wähler/Decodierer 58 weitergeleitet werden oder nicht Die Signale der Sammelleitung 69 und das Ausgangssignal des Inverters 68 werden durch den Wähler/Decodierer 58 decodiert Der Wähler/Decodierer 58 speist die Sammelleitung 60. Die Sammelleitung 72 und 73 sind lediglich Verlängerungen der Sammelleitung 60 und dienen der Auswahl aus den Registergruppen 61, Anzeigern 62 oder M/?-Rückgriffregistern 63 durch eine Prioritätsstufenangabe. Block 61 »Register« stellt mehrere Gruppen von Registern dar, die in Blöcke von Registern aufgeteilt sind, deren jeder einer Prioritätsstufe zugeordnet ist. Der Block jeder Stufe kann eines oder mehrere Register umfassen, je nach den Bedürfnissen des Computers, und kann auch die Index- und Stufenzustands-Rückgriffregister umfassen.
Die Sammelleitung 72 wählt den für die bezeichnete Stufe zu einem gegebenen Zeitpunkt aktiven Registerblock. Die Sammelleitung 71 wählt dann ein bestimmtes Register innerhalb einer Stufe, welches Quelle oder Zielort für Daten auf der Sammelleitung 65 sein soll. Der Block 62 »Anzeiger« enthält ein Register pro Stufe für jede der η Stufen. Der durch eine gegebene Stufe im Block 62 dargestellte Registersatz wird durch den Wert auf der Sammelleitung 72 bestimmt. Die aktive Stufe im Block 63 »MR-Rückgriff« wird bestimmt durch den Wert auf der Sammelleitung 73.
Um mit einem Register auf einer anderen Unterbrechungsstufe kommunizieren zu können, wird ein Alternativ-Eingang zum Wähler/Decodierer 58 benutzt. Das ist gezeigt durch die Sammelleitung 59 und die Steuerleitung 67. Wenn die Steuerleitung 67 aktiv ist, ist das Ausgangssignal des Inverters 68 inaktiv, und der Wähler/Decodierer 58 verhindert das Durchschalten der Sammelleitung 69 auf die Stufenauswahl-Sammelleitung 69. Die Steuerleitung 67 schaltet die Sammelleitung 59 zum Wähler/Decodierer 58 und der Ausgang erscheint auf der Sammelleitung 60. Jetzt wird die Wahl der aktiven Stufe in den Registern 61, den Anzeigern 62 und in den IAR- Rückgriffregistern 63 durch die Sammelleitung 59 gesteuert. Das Quellen-/Zielregister innerhalb einer gegebenen Stufe wird noch auf normab Weise durch die Sammelleitung 71 gesteuert.
Fig. 4 zeigt die Ansteuerung für die in Fig. 3 als Sammelleitung 59 und in Fig.4 als Sammelleitung 82 dargestellten Stufenauswahlleitungen. Das Signal »Durchschalten Stufenauswahlleitungen« auf Leitung
67 wird durch den Decodierer 83 in F i g. 4 erzeugt und auf der Leitung 84 abgegeben. Die Sammelleitung 71 in Fi g. 3 erhält da·; Signal für die Ursprungs-/Zielangabe vom Decodierer 83 über die Sammelleitung 85 in F i g. 4. Den Betrieb der beschriebenen Datenwege und Steuerungen läßt sich am besten an einem Beispiel zeigen.
Im Beispiel soll das /ΛΛ-Rückgriffregister der Stufe 3 in das Register 5 der gegenwärtig aktiven Stufe 2 gelesen werden. Die Instruktion »/Aß-Rückgriffregister lesen« wird in das ZE-Operationsregister 80 (äquivalent dem Operationsregister 52 in F i g. 2) gelesen. Mit Hilfe des Op-Codefeldes und des Modifizierers bestimmt der Decodierer 83, daß die Leitung 84 (Durchschalten Stufenauswahlleitungen) erregt wird. Mit dem Stufenauswahlfeld bestimmt der Decodierer 81, welche Stufe ausgewählt und über die StufenauswahlleitungeTi 82 und von dort über die Eingangssammelleitung 59 der F i g. 3 adressiert werden soll. Der Wähler/Decodierer 58 der Fi g. 3 erkennt den Impuls auf der Leitung 67 und gibt die Sammelleitung 59 als Eingang frei. Der Inverter 68 erkennt auch den Impuls auf der Leitung 67 und sperrt die Sammelleitung 69 für die Benutzung durch den Wähler/Decodierer 58. Der Wähler/Decodierer 58 gibt das Signal für die neugewählte Stufe auf die Sammelleitung 60, die durch die Sammelleitung 72 und 73 zu den Registern, Anzeigern und den Λ4.Λ-Rückgriff registern führt. Der Decodierer 83 gibt einen Wert auf die Sammelleitung 85, der durch die Sammelleitung 71 an die IA R- Rückgriff register 63 geleitet wird. Die Werte auf den Sammelleitungen 71 und 73 wählen das Rückgriffregister für die Stufe 3 im Block »Mtf-Rückgriff« 63. Dieser Wert wird in den Konzentrator und Zwischenspeicher 64 übertragen. Der Wert wird ebenfalls auf die Sammelleitung 65 geleitet. Zu einem späteren Zeitpunkt des Instruktionszyklus verändert der Decodierer 83 mit dem R-FeId den Wert auf der Sammelleitung 85 (Qellen-/Zielangabe). Außerdem sperrt der Decodierer 83 das Durchschaltsignal auf Leitung 84. Die für diese Änderung im Zustand benötigten Taktimpulse sind nicht dargestellt, weil es sich dabei um eine normale interne Computersteuerung handelt. Das Signal auf Leitung 67 in F i g. 3 veranlaßt die Sperrung der Sammelleitung 59 und die Aktivierung der Sammelleitung 69 durch den Wähler/Decodierer 58. Für dieses Beispiel wurde als laufende aktive Stufe die Stufe 2 angenommen und daher ist der Aktiv-Merker 2 im Block 66 aktiv, und das entsprechende Signal wird auf die Sammelleitung 69 geleitet. Der Wähler/Decodierer 58 gibt jetzt also ein Signal für die laufende Stufe 2 auf die Sammelleitung 60. Die neue Quellen-ZZiel-Information vom Decodierer 83 wird auf die Sammelleitung 71 geleitet und wählt das Register 5 der Stufe 2. Der Wert auf der Sammelleitung 71 bezeichnet das Register 5 der Stufe 2 als Zielregister. Daher wird die im Zwischenspeicher 64 zurückgehaltene Information auf die Sammelleitung 65 geleitet und in das Register 5 der Stufe 2 der Registergruppe 61 gesetzt.
Durch die obigen Vorgänge wurde der Inhalt des /ΑΛ-Rückgriffregisters der Stufe 3 im Block 63 in das Register 5 auf der Stufe 2 des Blockes 61, der laufenden aktiven Stufe, gespeichert. Dadurch kann das auf der Stufe 2 gegenwärtig laufende Programm die Adresse der nächsten auszuführenden Instruktion auf der Stufe 3, wenn diese aktiv wird, kennen. Wenn die Ausführung des Programms auf der Stufe 3 auf ein anderes Programm umgeschaltet werden soll, muß auch der Wert im MR-Rückgriffregister der Stufe 3 verändert werden. Die Veränderung dieses Wertes im /A/?-Rückgriffregister der Stufe 3 erfüllt dieselbe Funktion wie eine Verzweigungsinstruktion in einem lnslruktionsstrom.
Zur effektiven Steuerung einer Unterbrechungsstufe von einer anderen aus muß weiterhin festgestellt werden, ob die gewählte Unterbrechungsstufe gegenwärtig im Wartezustand ist und zu einem späteren Zeitpunkt zur laufenden aktiven Stufe werden kann. Das heißt mit anderen Worten, daß die Stufe zu dem Zeitpunkt aktiv war, an dem die bevorrechtigte Unterbrechung auftrat, die die Steuerung an die Stufe mit höherer Priorität übertrug, die jetzt in Betrieb ist.
Ohne diese Information kann nicht festgestellt werden, ob die gewählte Stufe aktiv werden soll, wenn die Steuerung für diese Stufe freigegeben wird. Zur Illustiation dieses Gesichtspunktes siehe auch Fig. 1. Die Aktivmerker übernehmen dieselbe Funktion wie die Aktivmerker 66 in F i g. 3. Si- stellen fest, welche Stufe die laufende aktive Stufe innerhalb der ZE ist. Mit den Wartemerkern 23 werden die Stufen identifiziert, die durch Bedienungsanforderungen höherer Priorität unterbrochen wurden und die Steuerung zurückerhalten, wenn die Unterbrechungsstufen mit höherer Priorität freigegeben und die Steuerung an die Stufe mit niedrigerer Priorität zurückgegeben wird. Im Beispiel der Instruktion »/AÄ-Rückgriffregister lesen« wurde das im Block 16 enthaltene ΜΛ-Register der 3. Stufe von der Stufe 2 im Block 16, der gegenwärtig aktiven Stufe, gelesen. Während der Ausführung dieser Instruktion wird der Merker 3 im Wartemerker-Block 23 geprüft, um festzustellen, ob er gesetzt ist. Ist das der Fall, wird ein Anzeiger für die laufende aktive Stufe gesetzt, der besagt, daß diese Stufe im Wartezustand ist. Wenn der Merker 3 im Block 23 zurückgestellt ist, wird ein Anzeiger für die laufende aktive Stufe ebenfalls abgeschaltet und zeigt an, daß die gewählte Stufe nicht im Wartezustand ist. In einer spezifischen Ausführung kann als Anzeiger für die gewählte laufende Stufe der Übertragungsrnerker benützt werden. Der Übertragungsmerker braucht nicht näher erklärt zu werden, da er ein Standardelement in den meisten Computern ist. Übertragungsmerker sind in F i g. 1 als in den Blocks 13, 14, 15 und 16 enthaltene Elemente angenommen. In diesem Beispiel würde der Übertragungsmerker im Block 15 auf denselben Wert gesetzt wie der Warte-Merker 3 des Blocks 23.
Unter bestimmten Umständen kann die Beendigung der Verarbeitung auf einer niedrigeren Prioritätsstufe erforderlich werden. Dazu muß der zu dieser Prioritätsstule gehörende Wartemerker zurückgestellt werden. Wenn z. B. die Arbeit auf der Unterbrechungsstufe 3 von der Unterbrechungsstufe 2 aus beendet werden soll, wird der Warte-Merker 3 des Blockes 23 in Fig. 1 zurückgestellt. Diese Funktion wird durch die Instruktion II B (IAR- Rückgriff register untersuchen) ausgeführt. Diese Instruktion benützt das A4/?-Rückgriffregister der gewählten Stufe als Quelle und ein Register auf der laufenden Stufe als Zielort, genauso wie die oben besprochene Instruktion »Mfl-Rückgriffregister lesen«. Außerdem wird durch Abgabe dieser II B-Instruktion die Arbeit auf der gewählten Stufe abgebrochen, das heißt, wenn z. B. die Stufe 3 gewählt ist und der Warte-Merker 3 des Blockes 23 in F i g. 1 gesetzt ist, so wird dieser Warte-Merker durch Abgabe der II B-Instruktion zurückgestellt. Wenn die Stufe 2 die laufende aktive Stufe war, wird die Stufe 3 nun nicht aktiv, wenn die ZE durch die Stufe 2 freigegeben wird. Die Stufe 3 wird erst aktiv, wenn sie eine externe Unterbrechung vom Anforderungsmerker 3 in '<lock 31 in Fig. 1 empfängt. Wenn dieser Merker gesetzt wird, wird die Sammelleitung 21 aktiv und die Prioritätssteuerung im Block 20 stellt fest, ob eine Prioritätsunterbrechung der Stufe 3 durchgeführt werden kann. Wenn das der Fall ist, wird der Warte-Merker 3 des Blockes 23 gesetzt. Außerdem wird der Aktiv-Merker 3 des Blockes 22 gesetzt, und die Stufe 3 wird zur laufenden aktiven Stufe innerhalb der ZE vorausgesetzt, daß weder eine Unterbrechungsanforderung auf einer höheren Stufe vorliegt, noch eine Uhterbrechungsmaske Unterbrechungen der Stufe 3 blockiert.
Die Registersätze/Steuerblöcke 13, 14, 15 und 16 in F i g. 1 entnalten bestimmte Steuer- oder Bedingungsmerker, die den verschiedenen Prioritätsstufen zugeordnet s:nd. Als Beispiel seien der Obertragungs-, Überlauf- und Ergebnisanzeiger genannt die auf einer gegebenen Stufe für arithmetische und !ogische Funktion benötigt werden. Um die durch diese Bedingungsmerker auf einer gewählten Stufe dargestellten Werte retten zu können, wird die Instruktion »Anzeiger abspeichern« im IBM-System 7 verwirklicht. Diese Instruktion speichert den Inhalt des Bedingungsregisters auf der durch das Stufenfeld angegebenen Stufe in das durch das /?-Feld der laufenden Stufe angegebene Register. Diese Instruktion wird später allgemein beschrieben. Ihre Arbeitsweise geht am beste, aus einem Beispiel hervor.
Als beispielsweise Operation soll der Inhalt des
Bedingungsregisters von der Stufe 3 in das Register 5 der Stufe 2, der laufenden aktiven Stufe, gelesen v/erden.
Die Instruktion »Anzeiger speichern« wird in das ZE-Operationsregister 80 der F i g. 4 gelesen. Aufgrund des Op-Codefeldes und des Modifizierfeldes bestimmt der Decodierer 83, daß das Durchschaltsignal aktiv sein sollte. Der Decodierer 81 bestimmt mit dem Stufenauswahlfeld die zu wählende und auf die Stufenauswahlleitungen 82 und von dort auf die Sammelleitung 59 zu setzende Prioritätsstufenangabe. Der Wähler/Decodierer 58 in F i g. 3 erkennt den Impuls auf Leitung 67 und benutzt die Sammelleitung 59 als Eingang. Der Inverter 68 erkennt den Impuls auf der Leitung 67 und sperrt eine Benutzung der Sammelleitung 69 durch den Wähler/Decodierer 58. Der Wähler/Decodierer 58 gibt die neu ausgewählte Stufenangabe auf die Sammelleitung 60 und von da durch die Sammelleitung 72 an die Anzeiger 62. Der Decodierer 83 gibt einen Wert auf die Sammelleitung 85, der durch die Sammelleitung 71 an die Anzeiger 62 geleitet wird. Die Werte auf den Sammelleitungen 71 und 73 wählen das Register der Stufe 3 in den Anzeigern 62. Der Wert wird dann an den Konzentrator und Zwischenspeicher 64 übertragen und auch auf die Sammelleitung 65 gegeben. Zu einem späteren Zeitpunkt im Instruktionszyklus verändert der Decodierer 83 mit dem R-Feld den Wert auf der Leitung 85 (Quellen-/Zielangabe). Außerdem beendet der Decodierer 83 das Durchschaltsignal auf Leitung 84. Für diese Zustandsänderung benötigte Taktimpuls sind nicht gezeigt, da sie allgemein bekannte interne Computersteuerungen sind. Das Signal auf Leitung 67 in F i g. 3 veranlaßt den Wähler/Decodierer 58 zum Sperren der Sammelleitung 59 und Freigeben der Sammelleitung 69. Es wurde bekanntlich angenommen, daß die laufende aktive Stufe die Stufe 2 ist. Der Aktivmerker 2 im Block 66 wird daher gesetzt und ein entsprechendes Signal auf die Leitung 69 gegeben. Der Wähler/Decodierer 58 gibt jetzt die Angabe für die aktive Stufe 2 auf die Sammelleitung 60. Eine neue Quellen-/Zielangabe vom Decodierer 83 wird auf die Sammelleitung 71 geleitet und wählt das Register 5 der Stufe 2. Der Wert auf der Sammelleitung 71 bezeichnet das Register 5 der Stufe 2 als Zielort. Die im Zwischenspeicher 64 zurückgehaltene Information wird daher auf die Sammelleitung 65 gegeben und in das Register 5 der Stufe 2 gesetzt.
Zur Illustration der Anwendung der Instruktion »//4/?-Rückgriffregister schreiben« wird angenommen, daß Daten vom Register 6 der laufenden aktiven Stufe 2 in das IAR- Rückgriff register der Stufe 3 übertragen werden sollen. Die Mfl-Rückgriff-Schreibinstruktion wird in das Register 80 der Fig.4 durch normale
1210 242/185
Zf-Operation gesetzt. Der Op-Code und der Modifizierer werden durch den Decodierer 83 decodiert und auf die Sammelleitung 85 gegeben. Daten auf der Sammelleitung 85 werden auf die Sammelleitung 71 in F i g. 3 gegeben und der Wert wähit das Register 6.
Der Wähler/Decodierer 58 benutzt jetzt die Sammelleitung 69, da das Signal auf Leitung 67 nicht aktiv isL Das Aktivmerker-Ausgangssignal für die laufende Sufe 2 wird durch den Wähler/Decodierer 58 auf die Sammelleitung 60 gelegt Dieser Wert wird auf die Sammelleitung 72 gegeben, um die Register der Stufe 2 im Block 61 zu wählen. Der Wert auf der Sammelleitung 71 gibt an, daß das Register 6 das Quellenregister ist und daher wird der Wert im Register 6 in den Zwischenspeicher 64 gegeben. Zu einem späteren Zeitpunkt des ZE-Zyklus hebt der Decodierer 83 das Signal auf Leitung 84 an, so daß das Signal auf Leitung 67 am Eingang des Wähler/Decodierers 58 wechselt. Dieses Durchschaltsignal sperrt dann die Sammelleitung 69 und schaltet die Sammelleitung 59 ein. Die Sammelleitung 59 erhält einen Wert vom Decodierer 81, der den vom Stufenwahlfeld des Registers 80 erhaltenen Wert darstellt. Die Sammelleitung 60 und demzufolge auch die Sammelleitung 73 wählen daher das /A/?-Rückgriffregister der Stufe 3 im Block 63. Die Sammelleitung 71 bezeichnet das IA R- Rückgriff register auf der Stufe 3 als das Zielregister. Der Wert aus dem Zwischenspeicher 64 wird auf die Sammelleitung 65 und demzufolge in das //4/?-Rückgriffregister auf der Stufe 3 gegeben.
Mit den beiden obigen Beispielen wurde gezeigt, wie Information von einem Register der laufenden aktiven Stufe in ein Register einer anderen gewählten Stufe oder von einem Register einer gewählten Stufe in Register der laufenden aktiven Stufe übertragen werden kann. F i g. 5 zeigt die Steuerungen und den Datenfluß für eine etwas andere Ausführungsform. Bei dieser Anordnung benutzt man den Inhalt eines Registers der laufenden aktiven Stufe zur Wahl eines Registers auf dieser Stufe als Quellen- oder Ziehegister. Wenn eine Instruktion »Laden gewähltes Register« ausgeführt wird, werden die Daten vom Hauptspeicher abgerufen und in das Register geladen. Bei einer Speicheroperation werden die Daten vom Register in den Hauptspeicher übertragen. Diese zweite Ausführungsart ist komplexer in der Verwirklichung, ergibt jedoch eine Rückkehrangabe und eine kürzere Programmschleife für die Ausführung beim Laden und Speichern von Daten in die Register auf einer anderen Stufe. Sie stellt eine verallgemeinerte Lösung des oben aufgezeigten Problems dar.
Dieses mehr verallgemeinerte Verfahren soll an einem Beispiel gezeigt werden: In diesem Beispiel soll der Inhalt eines M/f-Rückgriffregister der Stufe 3 entnommen und für spätere Verwendung aufbewahrt werden. In diesem Beispiel wird die Information dem //4/?-Rückgriffregister der Stufe 3 entnommen und in eine Speicherstelle gesetzt. Die zu benutzende Speicherstelle wird durch ein Register der laufenden Stufe angegeben. Das R2-Fe\d der Instruktion bezeichnet das die Speicheradresse enthaltende Register.
Für dieses Beispiel wird angenommen, daß der Wert im R 2-Feld gleich 4 ist. Der Wert im R 1-Feld ist gleich 6. Daher wird der Inhalt des Registers 6 der laufenden Stufe zur Wahl einer Stufe und eines Registers als Quelle der in den Speicher zu übertragenden Daten \benutzt.
Allgemein wird die diese Funktion ausführende Instruktion beschrieben, bei der Beschreibung der Instruktion »gewähltes Stufenregister speichern«. Diese Instruktion wird auf folgende Weise durchgeführt: Die ZE setzt die Instruktion in das Z£-Operationsregister 90 in Fig.5. Mit dem Op-Code, dem R2-Feld und dem Modifizierfeld von 90 bestimmt der Decodierer 91 das Quellenregister, dessen Inhalt auf die Sammelleitung 93 zu leiten ist und weiter auf die Sammelleitung 71 der Fig.3, um das die Speicheradresse enthaltende Register zu wählen. Zu diesem Zeitpunkt schreibt das Signal auf Sammelleitung 72 vor, daß die laufende aktive Stufe benutzt wird und daher das Register 4 der Stufe 2 als Quelle benutzt wird. Der Inhalt dieses Registers wird auf den Konzentrator 64 und die Sammelleitung 65 gegeben. Diese Information wird in das Speicheradreßregister 53 in der ZEnach Darstellung in F i g. 2 geleitet. Die Arbeitsweise des SAR 53 wird nicht im einzelnen beschrieben, da seine Funktion allgemein bekannt ist. Nach Ausführung dieser Funktion benutzt der Decodierer 91 das Op-Codefeld, das R 1-FeId und das Modifizierfeld von 90 zur Wahl des Registers 6 der laufenden Stufe (über die Sammelleitung 93 und die Sammelleitung 71) als Quellenregister. Der Inhalt des Registers 6 der laufenden Stufe wird in den Zwischenspeicher 64 geleitet. Er wird durch die Sammelleitung 65 auf die Sammelleitung 95 übertragen und in den Arbeitsspeicherbereich 94 in Fig.5 gesetzt. Zu diesem Zeitpunkt bestimmt der Decodierer 91 aus dem Inhalt des Arbeitsspeicherbereiches 94 den auf die Sammelleitung 93 zu gebenden und auf die Sammelleitung 71 zu übertragenden Wert. Außerdem gibt der Decodierer 91 ein Durchschaltsignal auf Leitung 92. Die Leitung 92 ist mit der Leitung 67 in Fig. 3 verbunden, und das Durchschaltsignal veranlaßt den Wähler/Decodierer 58, die Signale der Sammelleitung 59 und nicht die der Sammelleitung 69 zu benutzen. Der mittels Wähler/Decodierer 58 von der Sammelleitung 59 auf die Sammelleitung 60 gegebene Wert wird über die Sammelleitung 73 in das IAR- Rückgriff register 63 übertragen. Das IAR- Rückgriff register der Stufe 3 wird durch die Signale auf den Sammelleitungen 73 und 71 gewählt, und der Inhalt in den Zwischenspeicher 64 und auf die Sammelleitung 65 geleitet zur Übertragung in den Hauptspeicher durch das Speicherdatenregister 54 der F i g. 2. Die ZiE" löst eine Schreibaktion im Hauptspeicher aus und der vom IA/^-Rückgriffregister der Stufe 3 empfangene Wert wird in die durch das Speicheradreßregister 53, welches vorher von der ZE geladen worden war, angegebene Hauptspeicherstelle eingegeben.
Dieses Beispiel zeigt, wie der Inhalt eines Registers der laufenden aktiven Stufe zum Wählen von Stufe und Register benutzt werden kann, die als Quelle für Daten verwendet werden, die in den Speicher zu übertragen sind. Bei der Wahl eines Registers auf einer anderen Stufe als Zielregister für aus dem Hauptspeicher in der ZE übertragene Daten wird dasselbe Prinzip angewandt. Allgemein wird die hierfür verwendete Instruktion an anderer Stelle beschrieben (bei der Beschreibung der Instruktion »Laden des gewählten Stufenregisters«).
Die Anwendung dieser Instruktion wird an einem weiteren Beispiel gezeigt. Mit dieser Instruktion soll der Inhalt einer Speicherstelle in das A4/?-Rückgriffregister der Stufe 3 geladen werden, während ein Programm auf der Unterbrechungsstufe 2 ausgeführt wird. Das R 2-Feld in der Instruktion gibt das Register an, welches die Speicherslellenadresse enthält. Für dieses Beispiel wird angenommen, daß der Wert im R 2-Feld gleich 4
und der Wert im R 1-FeId gleich 6 ist. Der Inhalt des Registers 6 der laufenden Stufe wird zum Wählen einer Stufe und eines Registers als Zielort für die aus dem Hauptspeicher zu übertragenden Daten benutzt
Einzelheiten dieser Ausführung der Instruktion sind folgende. Die ZE setzt die Instruktion in das ZE-Operationsregistei 90 in F i g. 5.
Mit dem OP-Code, dem Ä2-Feld, und dem Modifizierfeld 90 bestimmt der Decodierer 91 das Quellenregister, welches auf der Sammelleitung 93 zu spezifizieren ist Diese Angabe wird auf die Sammelleitung 71 geleitet, um ein Register zu wählen, das die Speicheradresse enthält. Zu diesem Zeitpunkt gibt die Sammelleitung 72 an, daß die laufende aktive Stufe benutzt wird und daher also das Register 4 der Stufe 2 als Quelle benutzt wird. Der Inhalt dieses Registers wird nach 64 und auf die Sammelleitung 65 gegeben. Die Information wird in das Speicheradreßregister 53 in der in F i g. 2 gezeigten ZE geleitet. Die ZE leitet eine Speicherleseoperation ein. Zu diesem Zeitpunkt wählt der Decodierer 90 mit dem OP-Codefeld, dem R 1-Feld und dem Modifizierfeld von 90 das Register 6 der laufenden' Stufe über die Sammelleitungen 93 und 71 als Quellenregister. Der Inhalt des Registers 6 auf der laufenden Stufe wird in den Zwischenspeicher 64 gesetzt und durch die Sammelleitung 65 auf die Sammelleitung 95 übertragen und in den Arbeitsspeicherbereich 94 in F i g. 5 gesetzt. Mit dem Inhalt des Arbeitsspeicherbereiches 94 bestimmt der Decodierer 91 den auf die Sammelleitung 93 und an die Sammelleitung 71 zu übertragenden Wert Außerdem schaltet der Decodierer 91 das Durchschaltsignal auf Leitung 92 ein. Die Leitung 92 ist mit der Leitung 67 in Fig.3 verbunden, und das Signal veranlaßt den Wähler/Codierer 58 dazu, die Signale der Sammelleitung 59 und nicht die der Sammelleitung 69 zu benutzen. Der Wähler/Decodierer 58 bestimmt mit dem Wert auf der Sammelleitung 59 den auf die Sammelleitung 60 zu setzenden Wert. Der auf die Sammelleitung 60 gegebene Wert wird über die Sammelleitung 73 in das IA R- Rückgriff register 63 übertragen. Das /ΛΛ-Rückgriffregister der Stufe 3 wird durch die Signale der Sammelleitungen 73 und 71 gewählt. Der Inhalt der durch den Inhalt des Speicheradreßregisters bezeichne-. ten Speicherstelle wird auf die Sammelleitung 65 geleitet und ersetzt den Inhalt des IAR- Rückgriff registers der Stufe 3 im Block 63. So wurde der Inhalt einer Speicherstelle in ein Register aus einer gewählten Stufe innerhalb der ZL gesetzt, die eine andere als die laufende aktive Stufe ist.
Im obigen Beispiel wurde das Laden eines bestimmten, nämlich des Mft-Rückgriffregisters, auf der Stufe 3 beschrieben. Mit einer anderen Bitkombination im Arbeitsspeicherbereich 94 kann natürlich jedes Register auf jeder Stufe einschließlich der laufenden pktiven Stufe gewählt und geladen oder gespeichert werden.
Es wurden hier ergänzende Funktionen zur Steuerung von und/oder Kommunikation mit anderen Unterbrechungsstufen in einem mit mehreren Unterbrechungsstufen arbeitenden Computer beschrieben. Ein wichtiges Element für diese Möglichkeit ist der Wähler/Decodierer 58 in Fig.3. Dieser Block ermöglicht die Benützung mehrerer Quellen für die Sammelleitung 60. Durch Umschalten von einer Quelle zur anderen während der Ausführung einer Instruktion kann die ZE zwischen als Quelle oder als Zielort zu benutzenden Unterbrechungsstufen für die jeweiligen Daten wählen. Anstatt der Mehrzahl von beschriebenen Spezialinstruktionen zum Lesen und Schreiben in einer adressierten Stufe kann natürlich auch eine einzige Spezialinstruktion bei entsprechender Modifikation der benutzten Anlage gewählt werden. Drei Datenfelder ■ ο oder Datengruppen in einer solchen Spezialinstruktion können benutzt werden, um a) ein Register auf einer adressierten Stufe zu wählen; b) den Inhalt dieses Registers in Registerpositionen der laufenden aktiven Stufe oder in eine Hauptspeicherstelle zu übertragen; und c) die bevorrechtigten Programmdaten in die Register der adressierten Stufe zu übertragen. Dadurch kann man die Ausführungszeit für mindestens eine Instruktion sparen. Durch Überwachung der Wartemerker 23 in F i g. 1 kann man außerdem feststellen, daß die Register einer adressierten Stufe nicht gelesen zu werden brauchen, wenn in dieser Stufe keine unterbrochene Verarbeitung auf die Wiederaufnahme wartet.
Durch die anhand der Ausführungsbeispiele beschriebene Erfindung kann man jetzt während der Verarbeitung einer laufenden Stufe den Zustand einer anderen Stufe untersuchen und entscheiden, ob eine Bevorrechtigung zugelassen wird oder nicht. Die Verarbeitung der laufenden Stufe kann die Ausführung einer Unterbrechungsverarbeitungs-Unterroutine auf einer anderen Stufe erfordern, damit die Verarbeitung auf der laufenden Stufe abgeschlossen werden kann. Unter solchen Bedingungen wird der Zustand der unterbrochenen Stufe gespeichert und die Gruppe oder der Satz von Steuerregistern oder dergleichen auf der unterbro chenen Stufe durch Daten zur Ausführung der zum Abschluß der Arbeit auf der laufenden Stufe benötigten Nebenarbeit bevorrechtigt belegt. Die Ausführung der Bevorrechtigungsroutine auf einer niedrigeren als der laufenden Stufe kann durch Einstellung der Unterbrechungsmaskenregister so zugelassen werden, daß die laufende Stufe isoliert wird, bis die Bevorrechtigungsroutine fertig ist. Danach wird die verdrängte Routine in die unterbrochene Stufe zurückgegeben und kann schließlich die Verarbeitung bis zum Ende fortsetzen, ohne daß der Eingriff irgendwelche Nachteile mit sich bringt.
Die Unterbrechungsroutine, die zur Erledigung von Unterbrechungen vorgesehen ist, welche am Ende jeder Zeitscheibe (jedes Zeitsegments) durch den Zeitgeber hervorgerufen werden, kann zur Beeinflussung einer im Hauptspeicher befindlichen Warteschlange von Steuerregisterzuständen benutzt werden. Die Benutzerprogramme werden auf einer niedrigeren Stufe ausgeführt als die Zeitgeberunterbrechung. Wenn eine Zeitgeberunterbrechung auftritt, werden die Zustandsdaten aus dem Steuerblock der niedrigeren Stufe an das Ende der Warteschlange übertragen und statt dessen die Daten von der Spitze der Warteschlange in den Steuerblock dieser niedrigeren Stufe eingegeben. Der Benutzerzugriff zum Prozessor wird also in der durch die Warteschlange gegebenen Reihenfolge zyklisch zugeordnet.
Hierzu 4 Blatt Zeichnungen

Claims (1)

Patentansprüche:
1. Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken, zur Durchführung von Aufgaben auf der Basis einer Prioritätsstufenhierarchie, mit einem Hauptspeicher, einer Verarbeitungseinheit und mehreren, im folgenden Steuerblöcke genannten Sätzen von Registern und Steuerelementen, wobei jeder Steuerblock einer der vorgesehenen Prioritätsstufen zugeordnet ist und unabhängig von den anderen Steuerblöcken mit dem Hauptspeicher und der Verarbeitungseinheit eine vollständige Datenverarbeitungsanordnung bildet, sowie mit einer Prioritätsstufen-Steuereinrichtung, die auf die Steuerblöcke einwirkt und jewel's denjerigen aktiviert, welcher der höchsten Prioritätsstufe zugeordnet ist, für die eine Verarbeitungsanforderung vorliegt, während sie die übrigen Steuerblöcke mit ihrem jeweiligen Inhalt stillegt und isoliert hält, gekennzeichnet durch die Kombination folgender Merkmale:
DE2411963A 1973-04-30 1974-03-13 Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken Expired DE2411963C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US00356014A US3825902A (en) 1973-04-30 1973-04-30 Interlevel communication in multilevel priority interrupt system

Publications (3)

Publication Number Publication Date
DE2411963A1 DE2411963A1 (de) 1974-11-14
DE2411963B2 DE2411963B2 (de) 1976-09-16
DE2411963C3 true DE2411963C3 (de) 1981-10-15

Family

ID=23399747

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2411963A Expired DE2411963C3 (de) 1973-04-30 1974-03-13 Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken

Country Status (13)

Country Link
US (1) US3825902A (de)
JP (1) JPS5517977B2 (de)
BR (1) BR7403530D0 (de)
CA (1) CA1014666A (de)
CH (1) CH570007A5 (de)
DD (1) DD112018A5 (de)
DE (1) DE2411963C3 (de)
ES (1) ES425785A1 (de)
FR (1) FR2227578B1 (de)
GB (1) GB1435671A (de)
IT (1) IT1010741B (de)
NL (1) NL7404594A (de)
SE (1) SE402494B (de)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4024503A (en) * 1969-11-25 1977-05-17 Ing. C. Olivetti & C., S.P.A. Priority interrupt handling system
GB1397438A (en) * 1971-10-27 1975-06-11 Ibm Data processing system
FR2253428A5 (de) * 1973-11-30 1975-06-27 Honeywell Bull Soc Ind
IT1002275B (it) * 1973-12-27 1976-05-20 Honeywell Inf Systems Sistema di elaborazione dati a piu canali di ingresso uscita a risorse orientate per livelli di servizio distinti e interrompi bili
US4037204A (en) * 1974-10-30 1977-07-19 Motorola, Inc. Microprocessor interrupt logic
US4004283A (en) * 1974-10-30 1977-01-18 Motorola, Inc. Multiple interrupt microprocessor system
US4079448A (en) * 1975-04-07 1978-03-14 Compagnie Honeywell Bull Apparatus for synchronizing tasks on peripheral devices
US3984820A (en) * 1975-06-30 1976-10-05 Honeywell Information Systems, Inc. Apparatus for changing the interrupt level of a process executing in a data processing system
US4047161A (en) * 1976-04-30 1977-09-06 International Business Machines Corporation Task management apparatus
US4091447A (en) * 1976-07-19 1978-05-23 Union Carbide Corporation Interrupt control system for a microcomputer
US4152761A (en) * 1976-07-28 1979-05-01 Intel Corporation Multi-task digital processor employing a priority
US4218739A (en) * 1976-10-28 1980-08-19 Honeywell Information Systems Inc. Data processing interrupt apparatus having selective suppression control
US4080649A (en) * 1976-12-16 1978-03-21 Honeywell Information Systems Inc. Balancing the utilization of I/O system processors
US4342082A (en) * 1977-01-13 1982-07-27 International Business Machines Corp. Program instruction mechanism for shortened recursive handling of interruptions
US4181941A (en) * 1978-03-27 1980-01-01 Godsey Ernest E Interrupt system and method
US4228500A (en) * 1978-03-27 1980-10-14 Honeywell Information Systems Inc. Command stacking apparatus for use in a memory controller
US4257095A (en) * 1978-06-30 1981-03-17 Intel Corporation System bus arbitration, circuitry and methodology
US4409653A (en) * 1978-07-31 1983-10-11 Motorola, Inc. Method of performing a clear and wait operation with a single instruction
DE2963264D1 (en) * 1978-12-04 1982-08-19 Ibm Multiprocessor system with enqueue facility for access to sharable data facilities
JPS5584858A (en) * 1978-12-18 1980-06-26 Nippon Denso Co Ltd Engine control
JPS5598021A (en) * 1979-01-19 1980-07-25 Murata Mach Ltd Plate sorter
JPS55134721A (en) * 1979-04-06 1980-10-20 Hitachi Ltd Electronic engine controlling method
JPS55137358A (en) * 1979-04-16 1980-10-27 Nissan Motor Co Ltd Controller for automobile
JPS5638542A (en) * 1979-09-05 1981-04-13 Hitachi Ltd Controlling method for engine
FR2474200B1 (fr) * 1980-01-22 1986-05-16 Bull Sa Procede et dispositif d'arbitrage des conflits d'acces entre une requete asynchrone et un programme en section critique
FR2500659B1 (fr) * 1981-02-25 1986-02-28 Philips Ind Commerciale Dispositif pour l'allocation dynamique des taches d'un ordinateur multiprocesseur
US4709349A (en) * 1982-01-05 1987-11-24 Sharp Kabushiki Kaisha Method for maintaining display/print mode in display printer
US4769768A (en) * 1983-09-22 1988-09-06 Digital Equipment Corporation Method and apparatus for requesting service of interrupts by selected number of processors
JPS60121127A (ja) * 1983-12-06 1985-06-28 Nissan Motor Co Ltd パワ−トレ−ンの制御方法
JPS60128031A (ja) * 1983-12-14 1985-07-08 Nissan Motor Co Ltd パワ−トレ−ンの制御方法
JPS60128055A (ja) * 1983-12-14 1985-07-08 Nissan Motor Co Ltd パワ−トレ−ンのスリツプ防止用制御方法
JPH0650071B2 (ja) * 1983-12-14 1994-06-29 日産自動車株式会社 車両の駆動力制御装置
US5077662A (en) * 1986-04-11 1991-12-31 Ampex Corporation Microprocessor control system having expanded interrupt capabilities
JPH01126751A (ja) * 1987-11-11 1989-05-18 Fujitsu Ltd グルーピング装置
IE61336B1 (en) * 1989-10-02 1994-11-02 Sportables Limited A method for controlling the operation of a computer to handle interrupts
US5345568A (en) * 1991-09-19 1994-09-06 Chips And Technologies, Inc. Instruction fetch circuit which allows for independent decoding and execution of instructions
US5448743A (en) * 1992-07-21 1995-09-05 Advanced Micro Devices, Inc. General I/O port interrupt mechanism
JPH06139031A (ja) * 1992-10-27 1994-05-20 Ricoh Co Ltd プリンタコントローラ
JP3135094B2 (ja) * 1993-03-13 2001-02-13 株式会社リコー 統合ビジネス用ネットワークシステム
US5619647A (en) * 1994-09-30 1997-04-08 Tandem Computers, Incorporated System for multiplexing prioritized virtual channels onto physical channels where higher priority virtual will pre-empt a lower priority virtual or a lower priority will wait
SE503633C2 (sv) * 1994-10-17 1996-07-22 Ericsson Telefon Ab L M Lastdelande system och förfarande för behandling av data samt kommunikationssystem med lastdelning
US6151688A (en) 1997-02-21 2000-11-21 Novell, Inc. Resource management in a clustered computer system
US6877052B1 (en) * 2000-09-29 2005-04-05 Intel Corporation System and method for improved half-duplex bus performance
US20020118810A1 (en) * 2001-02-26 2002-08-29 Akhtar Akhteruzzaman System and method to effect telephone call barge-in without operator intervention
WO2014159123A1 (en) * 2013-03-12 2014-10-02 Microchip Technology Incorporated Programmable cpu register hardware context swap mechanism

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1054725A (de) * 1964-04-06
US3530438A (en) * 1965-12-13 1970-09-22 Sperry Rand Corp Task control
US3510845A (en) * 1966-09-06 1970-05-05 Gen Electric Data processing system including program transfer means
US3543242A (en) * 1967-07-07 1970-11-24 Ibm Multiple level priority system
US3440619A (en) * 1967-07-14 1969-04-22 Ibm Control system for maintaining register contents during interrupt and branch conditions in a digital computer
US3573852A (en) * 1968-08-30 1971-04-06 Texas Instruments Inc Variable time slot assignment of virtual processors
US3611307A (en) * 1969-04-03 1971-10-05 Ibm Execution unit shared by plurality of arrays of virtual processors

Also Published As

Publication number Publication date
FR2227578A1 (de) 1974-11-22
CH570007A5 (de) 1975-11-28
GB1435671A (en) 1976-05-12
US3825902A (en) 1974-07-23
BR7403530D0 (pt) 1974-11-19
DE2411963A1 (de) 1974-11-14
SE402494B (sv) 1978-07-03
JPS5011145A (de) 1975-02-05
ES425785A1 (es) 1976-06-16
NL7404594A (de) 1974-11-01
IT1010741B (it) 1977-01-20
DD112018A5 (de) 1975-03-12
JPS5517977B2 (de) 1980-05-15
DE2411963B2 (de) 1976-09-16
FR2227578B1 (de) 1976-12-17
CA1014666A (en) 1977-07-26

Similar Documents

Publication Publication Date Title
DE2411963C3 (de) Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken
DE2161886C2 (de) Befehlsausführungseinheit in einer elektronischen Datenverarbeitungszentrale für die gleichzeitige Verarbeitung mehrerer Befehle
DE2714805C2 (de)
DE2251876C3 (de) Elektronische Datenverarbeitungsanlage
DE3751164T2 (de) Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten.
DE2113890C2 (de) Zentrale Verarbeitungseinrichtung für Datenverarbeitungsanlagen
DE2430127C2 (de) Einrichtung zur Steuerung des Speicherzugriffs konkurrierender Benutzer
DE2755952C2 (de)
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE69133571T2 (de) Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen
DE2725522A1 (de) Datenverarbeitungsvorrichtung
DE69219848T2 (de) Verfahren zur Behandlung von Datenübertragungen in einen Computersystem mit einem Zweibusbau
DE68922545T2 (de) Zugeordneter Dienstprozessor mit Übertragungsmöglichkeiten zwischen Kanälen.
DE1285220B (de) Datenverarbeitungssystem mit mehreren selbstaendigen Recheneinheiten
DE2533737A1 (de) Datenprozessor
DE1549474B2 (de) Anordnung in einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls
DE2454613C2 (de) Kanaleinheit für die Steuerung der Datenübertragung auf einer Vielzahl von Kanälen zwischen den peripheren Einrichtungen und dem Hauptspeicher einer digitalen Datenverarbeitungsanlage
DE1499206B2 (de) Rechenanlage
DE2611975A1 (de) Dv-system mit einer einrichtung zur zuordnung von prozessen zu einem prozessor auf einer prioritaetsbasis
EP0325677A2 (de) Schaltungsanordnung und Steuerverfahren eines Befehlspufferspeichers in einer Datenverarbeitungsanlage
DE2900460A1 (de) Warteschlangenstruktur
DE2359037C2 (de) Rechenanlage
DE3854859T2 (de) Unterbrechungsabwicklung in einem parallelen Datenverarbeitungssystem
DE2507405C2 (de) Anordnung zum Synchronisieren gleichzeitig auszuführender Tasks für Peripheriegeräte einer Datenverarbeitungsanlage

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
8339 Ceased/non-payment of the annual fee