DE2411963B2 - Datenverarbeitungsanlage - Google Patents
DatenverarbeitungsanlageInfo
- Publication number
- DE2411963B2 DE2411963B2 DE19742411963 DE2411963A DE2411963B2 DE 2411963 B2 DE2411963 B2 DE 2411963B2 DE 19742411963 DE19742411963 DE 19742411963 DE 2411963 A DE2411963 A DE 2411963A DE 2411963 B2 DE2411963 B2 DE 2411963B2
- Authority
- DE
- Germany
- Prior art keywords
- register
- level
- instruction
- bus
- priority
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving 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
Die vorliegende Erfindung betrifft eine elektronische Datcnverarbeitunganlage zur Durchführung von Aufgaben
auf d<*.r Basis einer Prioritätsstufenhierarchie nach
dem Oberbegriff des Anspruchs 1.
De 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 Wichtigkeit
oder Eiligkeit ist bekannt. Für viele herkömmliche Prozessoren löst das Auftreten einer Verarbeitungsanforderung höherer Priorität als der gegenwärtig
verarbeiteten eine Operationsfolge zur Unterbrechung der letzteren aus, wobei die Inhalte bestimmter Register
ode^ 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überlragen 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 Datenverarbeitungsanwendungen wie
z. fl. für die Prozeßsteuerung wird jedoch eine immer größere Annäherung an die Echtzeitverarbeitung; nötig.
In der DT-Offenlegungsschrift Nr. 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 Verarbeitungseinheit (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
ab geschlossen ist. Durch diese Anordnung kann man
nicht nur den Zeitverlust bei der Speicherung und Rückspeicherung vermeiden, sondern auch Hie 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 Verarbeilungseinheit erzielt. Es war damit jedoch nicht möglich, ein auf einer
niedrigeren Stufe auf die Beendigung einer Unterbre- to
chung wartendes Programm noch weiter zurückzustellen, um auf dieser Stufe noch ein Zwischenprogramm
auszuführen.
Auch der aus der DT-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 ein
Registerpaar zur Aufnahme von Programmstatuswörtern vorgesehen, von denen eines leer ist und das
Programmstatuswort des zu unterbrechenden Programms aufnimmt und von dem das andere das
Programmstatuswort 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 wehen 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 Solidereinrichtung (Register etc.) 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 Unterbrechungen 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 Anlage 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ührungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird anschließend näher
beschrieben. Es zeigt
F i g. 1 das Blockdiagramm einer Zentraleinheit 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,
Fig. 3 Einzelheiten einer verbesserten, der Anordnung gemäß Fig. 1 und 2 entsprechenden Zentraleinheit
mit erfindungsgemäßen Zusatzeinrichtungen,
F i g. 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 bekannter, Datenverarbeitungsanlage sind in den Fi 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
Unterbrechungs-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,
ur.'! 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 Prozessor-
organisation. Bei der Verarbeitung einer Unterbre chung der zweiten Prioritätsstufe wird von den
Aktivmerkern 22 derjenige für die zweite Stufe gesetzt. Das Erscheinen einer Bedienungsanforderung von dem
Anforderungsrr.erker für die erste Stufe aus der Merkergruppe 3Ϊ veranlaßt die Prioritätssteuerung 20
zur Rückstellung des Aktivmerkers der zweiten Stufe,
zum Einschalten des Aktivmerkers der ersten Stufe, zum Einsehalten des Wartcmerkcrs 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 Wartemerkcr 23. Im erwähnten Beispiel stellt sie dann fest, daß die
Unterbrechungsverarbeitung der zweiten Stufe selbst unterbrochen wurde und somit wird der Aktivmerker
der zweiien 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ätsstufc
zugeordnet sind, zu den anderen Elementen der ZEXQ
gehen aus der späteren genaueren Beschreibung der F i g. 2 hervor.
Der Kanal 25 stellt im wesentlichen ein Mittel /ur Steuerung der ZfIO aufgrund irgendeiner von mehreren
möglichen Bedingungen dar. Ein E/A-Gcräi kann
z. B. seine Unterbrechungsanforderung über die Sammelleitung 26 eingeben. Außerdem werden bei der
bekannten Anlage aufgrund der £7,4-Unterbrechungsanforderung
die zugeordnete Prioritätsstufe sowie die Identität der Unterbrechungsquelle, der Ocrätezustand
und die für die Verarbeitung dieser Unterbrechung aufzurufende Unterroutine angegeben. Die ZEiO kann
auch selbst eine Unterh ochungsverarbeitung ü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/A-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/z^-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 angenommen 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.
Bedienungsanforderungen können in das Pufferregister 30 auch eingegeben wenden, während eine
Unterbrechung noch in der ZE 10 vera -beitet wird.
In einer typischen Operation wird en Programm, das
Überwachungsfunktionen ausführt und Anfangsinfor-
ίο malion überträgt, in den Speicher geladen und gestartet
durch Übertragung der Stcuernformaiion in den Intern-Unterbrechungspuffer 28. Am Anfang sind keine
anderen konkurrierenden Unterbrechungsanforderungcn vorhanden, urd daher können Daten unter
Steuerung des Überwachungsprogramms übertragen werden. Schließlich werden einmal Unterbrechungsanforderungen
über die Schnittsiellenverbindung 26 empfangen, wie sie /.. B. durch Dater.übcrtragungseinheiten
oder andere EM-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 Unterbrechungsstufc entspricht. Es
<ann jeweils nur eine Anforderung berücksichtigt werden, und die^o wird
dann in den Puffer 30 geladen, bis die ZE. 10 einer
Unterbrechung für diese spezielle Stufe verarbeiten kann. Wenn eine Unterbrechung für eine gegebene
Stute 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 Prioritatsstufe entsprechenden
Registersat/./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 fur diese Stufe in den Puffer 30 laden kann. Abweichend von den in F i g. 1 gezeigten
vier Stufen der Prioritätsunterb'ccrung ist natürlich
auch eine größere oder kleinere Anzahl möglich.
F i g. 2 zeigt einige betroffene Elemente der Zentraleinheit
selbst. Dazu gehört ein Instruktions-Adreßregister 40. welches die auszuführenden Instruktionen
jeweils vom Speicher in bekannter Weise auswählt. Die
anderen Elemente einschließlich des Operationsregi sters 5Z des Speicheradreßregisters 53, des Speicherda
tenregisters 54, des Unterbrechungsmaskenregisters 56 des Arbeitsspeichers 57, des V-Konzentrators 46. de:
V-Registers 47. des i? JV-Konzentrators 44. des Rechen
werks 45 und des Datenpuffers 48 übernehmen alle irr wesentlichen die Steuerung der ZE-Operation au!
bekannte Weise. Außerdem verfügt jede Prioritäts Unterbrechungsstufe über ein Instruktionsadressen
Rückgriffregister 41, welches entsprechend den viel Priontätsstufen mit IARBO-IARB 3 bezeichnet ist
Weiterhin ist jeder Prioritatsstufe ein *kkumulatoi
(ACC) mit Bedingungs- und Anzeigefeld 42 zugeordnet Außerdem verfügt jede Prioritatsstufe über Indexregi
ster (XR) und Zustandsrückgriffregister (SRB) 43. De
Betrieb der Verarbeitungseinheit unter Steuerung eine Prioritätsunterbrechung der dritten Stufe bringt also dii
Benutzung von IARB3, ACC3 mit dem zugehörigei
Bedingungs- und Anzeigefeld, sowie XR 1-3. XR 2-3 bi
XR 7-3 und SRB-Z mit sich. Während diese Element*
den Betrieb der Verarbeitungseinheit steuern, sind ihre Gegenstücke für die Stufen O, 1 und 2 stillgelegt durch
die Prioritä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 gestaltet die
Übertragung von im Unterbrechungspuffer 30 der F i g. 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 V'-Kon-/entrator
46 sind Funktionseinheiten, die die Auswahl einer von mehreren Sammelleitungen als Quelle der in
eine Bestimmungssammelleitung zu übertragenden Information gestatten. Der Arbeitsspeicher 57, das
V-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. V-Konzentrator
46. Y-REG47. 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. Beschrei
bung 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
2« Wert des Instruktionsadreßregisters der adressierten Prioritäisstufe der dominierenden Stufe zur Verfugung
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 Unterbrechungsstufen 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« (RfB),
»Schreiben IA R- Rückgriff register« (WIB), »Speichern Anzeiger« (STI) sowie »Verzweigen und nicht maskie ren, lang« (BUL) Besondere Merkmale der ersten drei
erwähnten Instruktionen sind die Möglichkeit, di« Inhalte von Registern oder Anzeigern auf einei
gewählten Prioritätsstufe, die von der gegenwärtig aktiven Stufe verschieden sein kann, zu lesen oder zt
verändern, und zwar ohne die gewählte Stuf« zurückzustellen, so daß diese mit der Ausführung vor
Instruktionen fortfahren kann, wenn sie zur aktivei Stufe wird.
lang« übernimmt eine registerlose Verzweigung, wäh rend sie die Gesamtmaske zurückstellt und dii
Annahme von Unterbrechungen ermöglicht Diesi Instruktion gestattet das Einstellen der Gesamtmask
609538/26
ίο
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 Unterroutitie
zurückzukehren, wodurch die Integrität der Routine gewahrt bleibt. Durch eine registerlose Verzweigung
wird die Rückkehr von der Unterroutine möglich, wobei felle 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« 1(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 S77
ein zum Zf-Operationsregister 80 in Fig.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 Fig. 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 Ausiü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 577 auszuführen ist. Die jeweilige Instruktion ist durch eine eindeutige Bitkonfiguration
im Modifizierfeld bezeichnet, welches die Bits 12 bis !5 umfassen kann. Wenn der Wert z. B. M im
Kiodifizierfeld Hexadezimal 13 ist. ist die /?/S-lnstruk-
|ion auszuführen. Wenn M hexadezimal 14 ist, ist die Instruktion WlBgewählt worden, während bei Abgleich
©die Instruktion STIgewählt ist.
Zur Ausführung der /?/ß-lnstruktion (M/?-Rückgrifffegister
lesen) ersetzt der Inhalt des IARB-Registers für
4\e gewählte Stufe den Inhalt des durch das /t-Feld
|5 —7) angegebenen Registers. Wenn das /?-Feld aus
lauter Nullen besteht, wird der Inhalt des IARB der iewählten Stufe in den Akkumulator für die wählende
tufe gesetzt. Da das IARB-Register nicht tatsächlich
lü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 /Z-FeId angegebene Register. Das gewählte
IARB-Register bleibt jedoch unverändert Die Stufe
wird durch den binärcodierten Wert in den Bitpositionen 8 bis 11, dem Stufenauswahlfeld in der Instruktioa
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 Uberlaufanzeiger
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ähltei Stufe werden nur verändert, wenn es sich um die aktiv
Stufe handelt.
Bei der Ausführung der WlB-Instruktion (Schreibei
IAR-Rückgriffregister) ersetzt der Inhalt des durch da
/?-Feld angegebenen Registers den Inhalt des IAR Rückgriffregisters auf der gewählten Stufe. Wenn da
/?-Feld der wählenden Stufe aus lauter Nullen bestehl
wird wieder der Akkumulator benutzt. Der Inhalt de ίο durch das /?-Feld angegebenen Registers bleib
unverändert. Die Prioritätsstufe wird durch dei binärcodierten Wert in den Stufenauswahlbitpositionei
8 bis 11 der Instruktion gewählt. Die gewähhe Stuff wird nicht zurückgestellt und wird daher, wenn sie in
is Wartezustand ist, automatisch zur laufenden (aktiven Stufe, wenn alle höheren Stufen abgearbeitet sind
Wenn eine Stufe 0 gewählt wird, führt die Instruktior keine Operation aus.
Bei der Ausführung der Instruktion STI (Anzeigei
speichern) wird der Inhalt der Ergebnis-, Übertragungs und Überlaufanzeiger auf der durch das Stufenauswahl
feld bezeichneten Stufe in dem Register gespeichert welches durch das /?-Feld angegeben ist, wobei eir
ß-Feld aus lauter Nullen wieder den Akkumulator dei
laufenden Stufe darstellt. Die Stufe wird durch der binärcodierten Wert in den Bitpositionen 8 bis Π de<
Stufenauswahlfeldes in der Instruktion gewählt. Die gewählte Stufe wird nicht zurückgestellt. Nachderr
diese Instruktion ausgeführt ist, enthält das durch das ursprüngliche /?-Feld definierte Register der laufender
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-Ergebnisanzei·
ger, ein weiteres Bit der Posidv-Ergebnisanzeiger. ein
weiteres Hit der Anzeiger für ein Gleich-Ergebnis, ein weiteres Bit der Übertragungsanzeiger und noch ein
weiteres Bit der Überlaufanzeiger. Übertrags-, Überlauf- und Crgebnisanzeiger 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 em eindeutiges Adressenfeld von 16 Bits in das Instruktionsadreßregister 40 geladen und wird zur Adresse der nächsten auszuführenden Instruktion. Übertragungs-, Überlauf- und Ergebnisanzeiger werden nicht betroffen. Die Gesamtmaske wird dadurch abgeschaltet und die Steuerung der Unterbrechungen auf höherer Ebene durch den Inhalt des Unterbrechungsmaskenregisters t/M? 56 bestimmt Unterbrecnungen werden abhängig vom Wert der Maske wahrend dieser Instruktion ermöglicht. Die Programmausfuhrung kann also vor der Ausführung der nächstfolgenden Instruktion unterbrochen werden. Das K-Feld, das Siüfenauswahlfeld und das Modifizierfeld 6<_ werden für diese instruktion nicht gebraucht
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 em eindeutiges Adressenfeld von 16 Bits in das Instruktionsadreßregister 40 geladen und wird zur Adresse der nächsten auszuführenden Instruktion. Übertragungs-, Überlauf- und Ergebnisanzeiger werden nicht betroffen. Die Gesamtmaske wird dadurch abgeschaltet und die Steuerung der Unterbrechungen auf höherer Ebene durch den Inhalt des Unterbrechungsmaskenregisters t/M? 56 bestimmt Unterbrecnungen werden abhängig vom Wert der Maske wahrend dieser Instruktion ermöglicht. Die Programmausfuhrung kann also vor der Ausführung der nächstfolgenden Instruktion unterbrochen werden. Das K-Feld, das Siüfenauswahlfeld und das Modifizierfeld 6<_ werden für diese instruktion nicht gebraucht
L»ie 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 Schal-
tung aber mittels Idenufikationsbitpositionen im Modifizierfeld
unterschieden werden. Für die Ausführung der LSL/?-Instruktion wird der Inhalt der durch die
effektive Adresse bezeichneten Stelle im Hauptspeicher in das gewählte Register auf der gewählten Stufe -s
geladen. Die Stufe wird durch den Inhalt des durch das ι? 1-FeId imOperation$register90der Fi g. 5 angegebenen
laufenden Stufen registers gewählt. Das R 2-FeId wählt ein laufenden Stufenregister, welches eine
Hauptspeichcradresse 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 R !-Feld effektiv ein Zielregister,
während R 2 effektiv eine Quellenstelle im Hauptspeieher adressiert. Die STS/?-lnsiruktion 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 Zielregistersiufe wählen, und andere Bitpositionen, die die jeweiligen Register auf dieser Stufe angeben. Sie
können z. B. eines von sieben Indexregistern, das IAR- Rückgriff register (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 StufenzustandsRückgriffregisters 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 die Ergebnisanzeiger abhängig
von den geladenen Operanden verändert werden. Die effektive Adresse ist der Inhalt des R 2-Feldes.
Das Stufcnzustands-Rückgriffregister hat nach Bitpositionen
den folgenden Inhalt: 00—Byteadressanzeiger 0 (BAIO); 01 -Byteadreßanzeiger 1 (BAlX); 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 hai das System bisher gearbeitet. Die S7S/?-Instrukiion
(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 gespei- 6S
chert. 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 Instruktion 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ätsstufe
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-/Ausspeicheroperationen
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) ungenügende Kenntnisse des adressierten
Programms hatte, um die Funktionen zu ermöglichen. Die vorliegende Erfindung ermöglicht jetzt 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 Haupispeicher
oder ein Indexregister oder Akkumulator der wählenden Stufe geschoben werden. Diese Rettung der,
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 Stute 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 im 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 IA R-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 iiuch
die Index- und Stuf enzustands-Rückgriff register umfassen.
Die Sammelleitung 72 wählt den für die bezeichnete Stufe zu einem gegebenen Zeitpunkt aktiven Regi;;terblock.
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 »!AR-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-ZZielregister
innerhalb einer gegebenen Stufe wird noch auf normale Weise durch die Sammelleitung 71 gesteuert.
F i g. 4 zeigt die Ansteuerung für die in F i g. 3 als Sammelleitung 59 und in Fig.4 als Sammelleitung 82
dargestellten Stufenauswahlleitungen. Das Signa! »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
F i g. 3 erhält das Signal für die Ursprungs-/Zielangabe vom Decodierer 83 über die Sammelleitung 85 in Γ" 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 Situfe 3
in das Register 5 der gegenwärtig aktiven Stufe 2 gelesen werden. Die Instruktion »1AR-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, welch«; Stufe ausgewählt und über die Stufenauswahlleitungen 82 und
von dort über die Eingangssammelleitung 59 der F i g. 3 adressiert werden soll. Der Wähler/Decodierer 58 der
F i g. 3 erkennt den Impuls auf der Leitung 67 und gibt die Sammelleitung 59 als Eingang frei. Der Inverter
<B8 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 //4J?-Rückgriffregistern
führt Der Decodierer 83 gibt einen Wert auf die Sammelleitung 85, der durch die Sammelleitung 71
an die MÄ-Rückgriffregister 63 geleitet wird. Die Werte auf den Sammelleitungen 71 und 73 wählen das
Rückgriffregister für die Stufe 3 im Block »IA«-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-FeIa 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-/Ziel-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 IAR- Rückgriff registers 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 MR-Rückgriffregister der Stufe 3 erfüllt dieselbe Funktion wie
eine Verzweigungsinstruktion in einem Instruktionsstrom.
Zur effektiven Steuerung einer Unterbreehungsstuf« von einer anderen aus muß weiterhin festgestell werden, ob die gewählte Unterbrechungsstufe gegen wärtig im Wartezustand ist und zu einem späterer Zeitpunkt zur laufenden aktiven Stufe werden kann. Da heißt mit anderen Worten, daß die Stufe zu den Zeitpunkt aktiv war, an dem die bevorrechtigti Unterbrechung auftrat, die die Steue-ung an die Stuf mit höherer Priorität übertrug, die jetzt in Betrieb is Ohne diese Information kann nicht festgestellt werdet ob die gewählte Stufe aktiv werden soll, wenn di Steuerung für diese Stufe freigegeben wird. Zu Illustration dieses Gesichtspunktes siehe auch Fig. Die Aktivmerker übernehmen dieselbe Funktion wie di Aktivmerker 66 in Fi g. 3. Sie stellen fest, welche Stuf die laufende aktive Stufe innerhalb der ZE ist. Mit de Wartemerkern 23 v/erden die Stufen identifiziert, di durch Bedienungsanforderungen höherer Priorität ui terbrochen wurden und die Steuerung zurückerhalte wenn die Unterbrechungsstufen mit höherer Prioriti
Zur effektiven Steuerung einer Unterbreehungsstuf« von einer anderen aus muß weiterhin festgestell werden, ob die gewählte Unterbrechungsstufe gegen wärtig im Wartezustand ist und zu einem späterer Zeitpunkt zur laufenden aktiven Stufe werden kann. Da heißt mit anderen Worten, daß die Stufe zu den Zeitpunkt aktiv war, an dem die bevorrechtigti Unterbrechung auftrat, die die Steue-ung an die Stuf mit höherer Priorität übertrug, die jetzt in Betrieb is Ohne diese Information kann nicht festgestellt werdet ob die gewählte Stufe aktiv werden soll, wenn di Steuerung für diese Stufe freigegeben wird. Zu Illustration dieses Gesichtspunktes siehe auch Fig. Die Aktivmerker übernehmen dieselbe Funktion wie di Aktivmerker 66 in Fi g. 3. Sie stellen fest, welche Stuf die laufende aktive Stufe innerhalb der ZE ist. Mit de Wartemerkern 23 v/erden die Stufen identifiziert, di durch Bedienungsanforderungen höherer Priorität ui terbrochen wurden und die Steuerung zurückerhalte wenn die Unterbrechungsstufen mit höherer Prioriti
freigegeben und die Steuerung an die Stufe mit niedrigerer Priorität zurückgegeben wird. Im Beispiel
der Instruktion »IA R- Rückgriff register lesen« wurde
das im Block 16 enthaltene /AÄ-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. !st 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 Übertragungsmerker benützt werden. Der Übertragungsmerker
braucht nicht näher erklärt zu weiden, 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äts stufe 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 Instruk-•ion
II B (IAR- Rückgriff register untersuchen) ausgeführt. Diese Instruktion benützt das M/?-Rückgriffregister
der gewählten Stufe als Quelle und ein Register auf tier laufenden Stufe als Zielort, genauso wie die oben
besprochene Instruktion » M/?-Rückgriff register lesen«.
<\ußerdem wird durch Abgabe dieser Il ß-lnstruktion
die Arbeit auf der gewählten Slufe abgebrochen, das heißt, wenn z. B. die Stufe 3 gewählt ist und der
Warte-Merker 3 des Blockes 23 in Fi g. 1 gesetzt ist, so wird dieser Warte-Merker durch Abgabe der II ß-lnstruktion
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 Block 31 in F i g. 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 Unterbrechungsmaske Unterbrechungen der Stufe 3 blockiert.
Die Registersätze/Steuerblöcke 13, 14, 15 und 16 in F i g. 1 enthalten bestimmte Steuer- oder Bedingungsmerker,
die den verschiedenen Prioritätsstufen zugeordnet sind. Als Beispiel seien der Übertragungs-, Überlauf-
und Ergebnisan5:eiger genannt, die auf einer gegebenen
Stufe für arithmetische und logische Funktion benötigt werden. Um die durch diese Bedingungsmerker auf
einer gewählten Slufe dargestellten Werte retten zu können, wird die Instruktion »Anzeiger abspeichern« im
IBM-System 7 verwirklich). Diese Instruktion speichert den Inhalt des Bedingungsregisters auf der durch das
Stufenfeld angegebenen Stufe in das durch das Ä-Feld
der laufenden Suife angegebene Register. Diese Instruktion wird später allgemein beschrieben. Ihre
Arbeitsweise geht am besten 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 werden.
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 atm 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 Samme!Jeitung59 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 Instruktionszyklub verändert der Decodierer 83 mit dem /?-Feld den Wert auf der Leitung
85 (Quellen-/Zielar.gabe). Außerdem beendet der Decodierer 83 das Durchschaltsignal auf Leitung 84. Für
diese Zustandsänderung benötigte Taktimpulse sind nicht gezeigt, da sie allgemein bekannte interne
Computersteuerungen sind. Das Signal auf Leitung 67 in Fig. 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
aki:ive 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 »M/?-Rückgriffregister schreiben« wird angenommen,
daß Daten vorn Register 6 der laufenden aktiven Stufe 2 in das /Afl-Rückgriffregister der Stufe 3 übertragen
werden sollen. Die MÄ-Rückgriff-Schreibinstruktion wird in das Register 80 der Fig.4 durch normale
ZE-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ählt das Register 6.
Der Wähler/Decodierer 58 benutzt jetzt die Sammelleitung 69, da das Signal auf Leitung 67 nicht aktiv ist.
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
609 538/260
Il
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
ZF-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 MÄ-Rückgriffregister
der Stufe 3 im Block 63. Die Sammelleitung 71 bezeichnet das. MÄ-Rückgriffregister auf der Söife 3 als
das Zielregister. Der Wert aus dem Zwischenspeicher •4 wird auf die Sammelleitung 65 und demzufolge in das
IAR- 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 Stute 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 Zielregister. 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 steift 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 IA R- Rückgriff register der Stufe 3 entnommen und für spätere Verwendung aufbewahrt
werden. In diesem Beispiel wird die Information dem IAR- Rückgriff register der Stufe 3 entnommen und in
eine Speicherstelle gesetzt. Die zu benutzende Speicherstelle wird durch ein Register der laufenden
Stufe angegeben. Das /? 2-Feld 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 Sr.ufe 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
ZEsetzt die Instruktion in das ZE-Opera tionsregister 90 in Fig. 5. Mit dem Op-Code, dem /? 2-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 Zfnach Darstellung in F i g. 2 geleitet Die Arbeitsweise des SAR 53 wird nicht im einzelner
beschrieben, da seine Funktion allgemein bekannt ist Nach Ausführung dieser Funktion benutzt der Decodierer
91 das Op-Codefeld, das R 1-FeId und da<
Modifizierfeld von 90 zur Wahl des Registers 6 dei
,o laufenden Stufe (über die Sammelleitung 93 und dk
Sammelleitung 71) als Quellenregister. Der Inhalt de« Registers 6 der laufenden Stufe wird in den Zwischen
speicher 64 geleitet. Er wird durch die Sammelleitung 6i auf die Sammelleitung 95 übertragen und in der
Arbeitsspeicherbereich 94 in Fi g. 5 gesetzt. Zu diesen-Zeitpunkt bestimmt der Decodierer 91 aus dem lnhali
des Arbeitsspeicherbereiches 94 den auf die Sammellei tung 93 zu gebenden und auf die Sammelleitung 71 zi
übertragenden Wert. Außerdem gibt der Decodierer 9]
ein Durchschaltsignal auf Leitung 92. Die Leitung 92 isi
mit der Leitung 67 in Fig.3 verbunden, und da: Durchschaltsignal veranlaßt den Wähler/Decodierer58
dit: Signale der Sammelleitung 59 und nicht die dei Sammelleitung 69 zu benutzen. Der mittels Wähler/De
codiere; 58 von der Sammelleitung 59 auf dk Sammelleitung 60 gegebene Wert wird über die
Sammelleitung 73 in das IAR- Rückgriff register 6^
übertragen. Das /A/?-Rückgriffregister der Stufe 3 wire
durch die Signale auf den Sammelleitungen 73 und 71 gewählt, und der Inhalt in den Zwischenspeicher 64 unc
au: die Sammelleitung 65 geleitet zur Übertragung ir den Hauptspeicher durch das Speicherdatenregister 5^
der Fig.2. Die ZE löst eine Schreibaktion irr Hauptspeicher aus und der vom Mß-Rückgriffregistei
de- Stufe 3 empfangene Wert wird in die durch da: Speicheradreßregister 53, welches vorher von der Zl
ge aden worden war, angegebene Hauptspeicherstelli eir gegeben.
dieses Beispiel zeigt, wie der Inhalt eines Register:
de- laufenden aktiven Stufe zum Wählen von Stufe unc Register benutzt werden kann, die als Quelle für Dater
verwendet werden, die in den Speicher zu übertrager sind. Bei der Wahl eines Registers auf einer anderer
Stufe als Zielregister für aus dem Hauptspeicher in dei ZE übertragene Daten wird dasselbe Prinzip ange
wandt. Allgemein wird die hierfür verwendete Instruk tion an anderer Stelle beschrieben (bei der Beschrei
bung der Instruktion »Laden des gewählten Stufenregi s:ers«).
Die Anwendung dieser Instruktion wird an einen weiteren Beispiel gezeigt. Mit dieser Instruktion soll de
Inhalt einer Speicherstelle in das /AÄ-Rückgriffregiste
der Stufe 3 geladen werden, während ein Programm au der Unterbrechungsstufe 2 ausgeführt wird. Da
R 2-Feld in der Instruktion gibt das Register an, welche die Speicherstellenadresse enthält. Für dieses Beispie
wird angenommen, daß der Wert im R 2-Feld gleich ■< und der Wert im R 1-Feld gleich 6 ist. Der Inhalt de
Registers 6 der laufenden Stufe wird zum Wählen eine Stufe und eines Registers als Zielort für die aus den
Hauptspeicher zu übertragenden Daten benutzt.
Einzelheiten dieser Ausführung der Instruktion sim folgende. Die ZE setzt die Instruktion in d«
2'E-Operationsregister 90 in F i g. 5.
6s Mit dem OP-Code, dem R 2-Feld, und dem Modifi
ζierfeld 90 bestimmt der Decodierer 91 das Quellenregi sver, welches auf der Sammelleitung 93 zu spezifiziere]
ist. Diese Angabe wird auf die Sammelleitung 7
geleitet, um ein Register zu wählen, das die Speicheradresse enthält. Zu diesem Zeitpunkt gib*, die Sammelleitung
72 an, daß die laufende aktive Stufe benutzt wird und daher also das Register 4 der Stufe 2 als Quelie
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 7E geleitet. Die ZE leitet eine Speicherleseoperation
ein. Zu diesem Zeitpunkt wählt der Decodierer 90 mit dem OP-Codefeld, dem R 1-FeId und
dem Modifizierfeld vcn 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
Sammellei'ung 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 F i g. 3 verbunden, und das Signal veranlaßt den
Wähler/Codierer 58 dazu, die Signale der Sammellei tung 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
IAR- Rückgriff register 63 übertragen. Das M/?-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 bezeichneten Speicherstelle wird auf die Sammelleitung 65
geleitet und ersetzt den Inhalt des //4/?-Rückgriffregisters
der Stufe 3 im Block 63. So wurde der Inhalt einer Speicherstelle in ein Register aus einer gewählten Stufe
innerhalb der ZE gesetzt, die eine andere als die laufende aktive Stufe ist.
Im obigen Beispiel wurde das Laden eines bestimmten,
nämlich des IAR 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 aktiven
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 boschrieben.
Ein wichtiges Element für diese Möglichkeit ist der Wähler/Decodierer 58 in Fi g. 3. Dieser Block ermöglicht
die Benutzung 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 \n einer
adressierten Stufe kann natürlich auch eine einzige Spezialinstruktion bei entsprechender Modifikation der
benutzten Anlage gewählt werden. Drei Datenfelder
5 oder Datengrupperi 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
• 5 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 Stule kann die Ausführung einer Unterbrechungsverarbeitungs-Unterroutine
auf einer anderen
*5 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 unterbrochenen
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 Benutzerprcgramme
werden auf einer niedrigeren Stufe ausgeführt als die Zeilgeberunterbrechung. 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 (6)
1. Elektronische Datenverarbeitungsanlage zur Durchführung von Aufgaben auf der Basis einer S
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 mil einer Prioritätsstufen-Steuerenrichtung, die auf die Steuerblöcke einwirkt und jeweils
denjenigen aktivieren kann, welcher der höchsten Prioritätsstufe zugeordnet ist, für die eine Verarbeitungsanforderung
vorliegt, während sie die übrigen Registersätze mit ihrem jeweiligen Inhalt stillegt und
isoliert hält, dadurch gekennzeichnet, daß die Steuerblöcke (z. B. 13 bis 16; F i g. 1), die nicht der
gerade arbeitenden Prioritätsstufe zugeordnet sind, mittels einer Adressiervorrichtung (z. B. 58, 59, 67,
81 bis 83) ansteuerbar sind und diese anderen Prioritätsstufen zugeordneten Steuerblöcke für
andere Aufgaben im voraus ladbar sind und daß ferner die Anwesenheit eines unterbrochenen
Programms in den gerade nicht arbeitenden Steuerblöcken feststellbar und sein Zustand für die
Wiederaufnahme der Bearbeitung nach Durchführung der im voraus geladenen Aufgabe speicherbar
ist.
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) zu adressieren, 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 »nd/oder 3, dadurch gekennzeichnet, daß Verbindüngen
und Speichereinrichtungen (64,65) zwischen den Ausgängen und Eingängen der Elemente (61,62,
$3) der Steuerblöcke vorgesehen sind, so daß durch tweifaches 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ückgriff register (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 is l, mit deren Hilfe die 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.
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 true DE2411963B2 (de) | 1976-09-16 |
| DE2411963C3 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)
| 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 | パワ−トレ−ンの制御方法 |
| JPS60128055A (ja) * | 1983-12-14 | 1985-07-08 | Nissan Motor Co Ltd | パワ−トレ−ンのスリツプ防止用制御方法 |
| JPS60128031A (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 |
| EP2972842B1 (de) * | 2013-03-12 | 2020-05-20 | Microchip Technology Incorporated | Swap-mechanismus für hardwarekontext eines programmierbaren cpu-registers |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE1250659B (de) * | 1964-04-06 | 1967-09-21 | International Business Machines Corporation, Armonk, NY (V St A) | Mikroprogrammgesteuerte Datenverarbeitungsanlage |
| 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 |
-
1973
- 1973-04-30 US US00356014A patent/US3825902A/en not_active Expired - Lifetime
-
1974
- 1974-03-05 FR FR7408777A patent/FR2227578B1/fr not_active Expired
- 1974-03-13 DE DE2411963A patent/DE2411963C3/de not_active Expired
- 1974-03-21 CH CH392874A patent/CH570007A5/xx not_active IP Right Cessation
- 1974-03-21 GB GB1273474A patent/GB1435671A/en not_active Expired
- 1974-03-28 JP JP3403474A patent/JPS5517977B2/ja not_active Expired
- 1974-04-04 NL NL7404594A patent/NL7404594A/xx not_active Application Discontinuation
- 1974-04-05 IT IT12713/74A patent/IT1010741B/it active
- 1974-04-11 CA CA197,463A patent/CA1014666A/en not_active Expired
- 1974-04-17 SE SE7405128A patent/SE402494B/xx unknown
- 1974-04-29 DD DD178192A patent/DD112018A5/xx unknown
- 1974-04-29 ES ES425785A patent/ES425785A1/es not_active Expired
- 1974-04-30 BR BR3530/74A patent/BR7403530D0/pt unknown
Also Published As
| Publication number | Publication date |
|---|---|
| DD112018A5 (de) | 1975-03-12 |
| JPS5011145A (de) | 1975-02-05 |
| JPS5517977B2 (de) | 1980-05-15 |
| FR2227578A1 (de) | 1974-11-22 |
| NL7404594A (de) | 1974-11-01 |
| US3825902A (en) | 1974-07-23 |
| GB1435671A (en) | 1976-05-12 |
| SE402494B (sv) | 1978-07-03 |
| ES425785A1 (es) | 1976-06-16 |
| CA1014666A (en) | 1977-07-26 |
| BR7403530D0 (pt) | 1974-11-19 |
| FR2227578B1 (de) | 1976-12-17 |
| CH570007A5 (de) | 1975-11-28 |
| DE2411963C3 (de) | 1981-10-15 |
| IT1010741B (it) | 1977-01-20 |
| DE2411963A1 (de) | 1974-11-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE2411963C3 (de) | Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken | |
| DE69730276T2 (de) | Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes | |
| DE2714805C2 (de) | ||
| DE2540975C2 (de) | Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse | |
| DE2113890C2 (de) | Zentrale Verarbeitungseinrichtung für Datenverarbeitungsanlagen | |
| DE3751164T2 (de) | Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten. | |
| DE2430127C2 (de) | Einrichtung zur Steuerung des Speicherzugriffs konkurrierender Benutzer | |
| DE2161886C2 (de) | Befehlsausführungseinheit in einer elektronischen Datenverarbeitungszentrale für die gleichzeitige Verarbeitung mehrerer Befehle | |
| DE69133571T2 (de) | Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen | |
| DE2847934A1 (de) | Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher | |
| DE2230102A1 (de) | Rechenwerk fuer variable wortlaengen | |
| DE1549523B2 (de) | Datenverarbeitungsanlage | |
| DE2612139A1 (de) | Ein/ausgang-steuerungssystem | |
| DE68929080T2 (de) | Anordnung zum Speichern von Informationen für einen Datenanbieterprozessor | |
| DE2755616A1 (de) | Asymmetrischer multiprozessor | |
| DE2054947A1 (de) | Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem | |
| DE1549474B2 (de) | Anordnung in einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls | |
| DE2533737A1 (de) | Datenprozessor | |
| DE69503010T2 (de) | Mikroprozessor zur Ausführung von Befehlen,von denen ein Teil des Operandfelds als Operationscode zu gebrauchen ist | |
| DE2747304A1 (de) | Einrichtung zur mikrobefehlssteuerung | |
| DE2900460A1 (de) | Warteschlangenstruktur | |
| DE2507405C2 (de) | Anordnung zum Synchronisieren gleichzeitig auszuführender Tasks für Peripheriegeräte einer Datenverarbeitungsanlage | |
| DE2850447A1 (de) | Schneller koppler fuer uebertragungsleitungen oder peripheriegeraete eines rechners mit einer besonderen mikroinstruktionsstruktur | |
| DE2359037C2 (de) | Rechenanlage | |
| DE2845218B1 (de) | Mikroprogrammgesteuerte Ein-/Ausgabeeinrichtung und Verfahren zum Durchfuehren von Ein-/Ausgabeoperationen |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C3 | Grant after two publication steps (3rd publication) | ||
| 8339 | Ceased/non-payment of the annual fee |