DE2411963A1 - Datenverarbeitungsanlage - Google Patents
DatenverarbeitungsanlageInfo
- Publication number
- DE2411963A1 DE2411963A1 DE2411963A DE2411963A DE2411963A1 DE 2411963 A1 DE2411963 A1 DE 2411963A1 DE 2411963 A DE2411963 A DE 2411963A DE 2411963 A DE2411963 A DE 2411963A DE 2411963 A1 DE2411963 A1 DE 2411963A1
- Authority
- DE
- Germany
- Prior art keywords
- register
- level
- stage
- instruction
- 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; CALCULATING OR 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 Datenverarbeitungsanlage
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 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
409846/0688
letzeren aus, wobei die Inhalte bestimmter Register oder Steuerelemente
f die zur unterbrochenen Stufe gehören, in einem reservierten Bereich des Hauptspeichers abgespeichert werden, so
dass 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 Speicherund
Rück Speicheroperation zusammenhängende Reaktionszeitverzögerung war für viele Datenvera rbeitungs.anwendungen zufriedenstellend.
Für einige Datenverarbeitungsanwendungen wie z.B. für die Prozesssteuerung wird jedoch eine immer grössere Annäherung and die Echtzeitverarbeitung
nötig. Die deutsche Offenlegungsschrift Nr. 2'251'876
zeigte die Möglichkeit einer wesentlichen Verbesserung der Echtzeitreaktion einer Zentraleinheit, die insbesondere bei der Prozesssteuerung
oder bei Datensamme!einrichtungen nützlich ist. In dieser OS wird eine
Anordnung mit redundanten, d.h. gleichen, mehrfach vorhandenen Teilen beschrieben, in der die kritischen Elemente einer Verarbeitungseinheit (z.B. Akkumulator, Indexregister), die zur Ausführung eines
Programmes 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 dass bestimmte
Register geräumt und deren Inhalt vorübergehend weggespeichert, werden
BC 9-72-006 - 2 -
409846/0688
muss. Die kritischen, in mehrfacher Ausführung vorhandenen Elemente
(Register) brauchen in der unterbrochenen Prioritätsstufe nur stillgelegt
und isoliert gehalten zu werden, bis der Prozess auf höherer Prioritäts ebene abgeschlossen ist. Durch diese Anrodnung kann man nicht nur den
Zeitverlust bei der Speicherung und Rück speicherung vermeiden, sondern auch die Gefahr eines Uebertragungs- oder Programmfehlers bei der
Wiedergewinnung des unterbrochenen Programms und der Wiederaufnahme seiner Ausführung.
Durch die in der genannten OS beschriebenen 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 v/artendes Programm noch
weiter zurückzustellen, um auf dieser Stufe noch ein Zwi se he η programm
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 Sondereinrichtungen (Register etc.) dieser
niederigeren Priorita'tsstufe bereits durch ein anderes, selbst unterbrochenes
Programm besetzt sind, muss das Zwischenprogramm warten;
bis dieses Programm wiederaufgenommen und erledigt ist. Das wäre
BG 9-72-006 - 3 -
409846/068·
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, hier eine Verbesserung zu schaffen und die Flexibilität bei der Verarbeitung
mehrfacher Unterbrechungen zu erhöhen.
Gelöst wird diese Aufgabe für eine elektronische Datenver arbeitungsanlage nach dem Oberbegriff des Anspruchs 1
durch die in den Ansprüchen genannten Merkmale.
BC 9-72-006 - 4 -
409846/0688
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.
BC 9-72-006 - 5 -
409846/0688
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt
und wird anschliessend näher beschrieben. Es zeigen:
Fig. 1 ■ das Blockdiagramm einer Zentraleinheit mit separaten
Registersätzen/Steuerblöcken für mehrere Prioritäts-. ' . Stufen, und die zugehörige Kanaleinheit,
Fig. 2 in einem Blockdiagramm einige Details der Zentral
einheit der Fig. 1,
Fig. 3 - Einzelheiten einer verbesserten, der Anordnung gema'ss
Fig. 1 und 2 entsprechenden Zentraleinheit mit erfindungsgema'ssen
Zusatzeinrichtungen,
Fig. 4 und schematische Darstellung von Anordnungen zur Gewinnung Fig. 5 von Eingangssignalen für Einrichtungen gemSss Fig. 3 aus
den in einem Register gespeicherten Feldern einer Instruktion,
Die Grundelemente einer mit mehreren Prioritätsstufen arbeitenden Datenverarbeitungsanlage
sind in den Fign. 1 und 2 gezeigt. Die gegenseitigen Beziehungen im Betrieb dieser Elemente sind im einzelnen in der deutschen
Offenlegungsschrift Nr. 2'25Γ876 beschrieben. Allgemein werden diese
gegenseitigen Betriebsbeziehungen der Grundelemente der Fign. 1 und 2
BC 9-72-006 - 6 -
409846/068·
nachfolgend kurz als Grundlage beschrieben.
Zur Zentraleinheit ZE 10 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 Registersatze/Steuerblöcke 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össtenteils
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 Priorita'ts-
stufe entspricht, wahrend 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
von den Unterbrechungs-Anforderungsmerkern 31 im Kanal 25 empfangen
wird, wird die Priorita'tssteuerung 20 den Steuerblock 15 stillsetzen,
so bald ein möglicher Unterbrechungspunlvi in der Verarbeitung erreicht
BC 9-72-006 - 7 - ■
409846/0688
ι Λ'
ist, und dann den Steuerblock, (die Register und Bedingungsschaltungen)14
betätigen. Der Betrieb des Speichers 11 sowie der Recheneinheit/ZE-Steuerung 12 in Verbindung mit den Registersä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 Aktlvmerker 22 zur Angabe der jeweils aktiven Priorita'ts stufe und
die Wartemerker 23 unterstützen die Prioritatssteuerung 20 bei der
Steuerung der Prozessororganisation. Bei der Verarbeitung einer Unterbrechung der zweiten Priorita'ts stufe wird von den Aktivmerkern 22 derjenige
für die zweite.Stufe gesetzt. Das Erscheinen einer Bedienungsanforderung von dem Anforderungsmerker für die erste Stufe aus der
Merkergruppe 31 veranlasst die Priorita'ts steuerung 20 zur Rückstellung
des Aktivmerkers der zweiten Stufe, zum Einschalten des Aktivmerkers der
ersten Stufe, zum Einschalten des Wartemerkers der zweiten Stufe. Anschliessend
wird die Unterbrechungsverarbeitung der ersten Stufe durchgeführt und dann der Prioritätssteuerung 20 die Freigabe der ersten Stufe
angezeigt. Die Priorita'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, dass die Unterbrechungsverarbeitung der zweiten
Stufe selbst unterbrochen wurde und somit wird der Aktivmerker der zweiten
BC 9-72-OCG - 8 -
409846/0688
Stufe wieder gesetzt und der Steuerblock 15 für die zweite Stufe emeut betätigt, um den Prozessor zur Fortsetzung der Arbeit auf
dieser unterbrochenen Stufe zu steuern. Die Beziehungen der Registersütze/Steueiblö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 Fig. 2 hervor.
Der Kanal 25 stellt im wesentlichen ein Mittel zur Steuerung der ZE 10
aufgrund irgendeiner von mehreren möglichen Bedingungen dar. Ein E/AGerät kann z.B. seine Unterbrechungsanforderung über die Sammelleitung
26 eingeben. Wie genauer aus der deutschen Offenlegungsschrift Nr. 2*251*876 hervorgeht, werden aufgrund der E/A-Unterbrechungsanförderung
die zugeordnete Prioritätsstufe sowie die Identität der Unterbrechung squelle, der Gerötezustand und die für die Verarbeitung dieser
Unterbrechung aufzurufende Unterroutine angegeben. Die ZE 10 kann.auch
selbst eine Unterbrechungsverarbeitung über die Leitung 27 anfordern, d.h. ein in der ZE 10 ausgeführtes Programm kann anzeigen, dass 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 Unterroutinc
werden dann über die Sammelleitung 27 in den Intern-Unterbrechungspuffer 28 geladen (r.iit Intern-Unterbrechung sind hier die vom Prozessor selbst
BC 9-72-006 - 9 -
4Q98te/06l·
Jo
durch Programm herbeigeführten Unterbrechungen bezeichnet, zur
Unterscheidung von E/A -Unterbrechung en). Diese Unterbrechungsanforderungen
können dann über die Sammelleitung 33 zusammen mit anderen eventuell eine Bedienung anfordernden Geraten wie Direktanschluss-Einheiten,
Zeitgebern, usw.(vom Block 32 über das Kabel 34) konkurrieren. Die Ueberwachungsschaltung 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, dass 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 Ueberwachungsschaltung 29 eine Anzeige dafür speichern, dass eine Intern-Unterbrechung der
Stufe 1 angenommen wurde und eine ausstehende Unterbrechung der Stufe 1 von einer anderen Quelle angenommen werden muss, bevor
eine weitere Intern-Unterbrechungsanforderung der Stufe 1 angenommen wird.Eine solche Massnahme könnte nach den Grundge'danken der US-Patentschrift
Nr. 3543242 getroffen werden. 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 Anforderung smerker 31 für die entsprechende Stufe gesetzt.
BC 9-72-006 - 10 -
409849/0688
Bedienungsanforderungen können in das Pufferregister 30 auch eingegeben werden, während eine Unterbrechung noch in der ZE 10
verarbeitet wird. ^
In einer typischen Operation wird ein Programm, das Ueberwachungsfunktionen
ausführt und Anfangsinformation überträgt, in den Speicher geladen und gestartet durch Uebertragung der Steuerinformation in
den Intern-Unterbrechungspuffer 28. Am Anfang sind keine anderen
konkurrierenden Unterbrechungsanforderungen vorhanden ,und daher
können Daten unter Steuerung des Ueberwachungsprogramms übertragen werden. Schliesslich werden einmal Unterbrechungsanforderungen über
die Schnittstellenverbindung 26 empfangen, wie sie z.B. durch Datenübertragung
seinheiten oder andere E/A-Zusätze entstehen. Die.se Unterbrechungsanforderungen konkurrieren mit Direktanschluss-Einheiten,
Zeitgebern usw. (Block 32) zusammen mit den im Puffer 28 vorhandenen
Intern-Unterbrechungen. Darstellungsgema'ss 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 ZE 10 einer Unterbrechung für diese spezielle
BC 9-72-C06 - 11 -
409846/0681
■ u
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 Priori ta* ts stufe entsprechenden
Registersatz/Steuerblock 13 bis 16 eingegeben. Der Anforderungsmerker 31 für die angenommene Stufe wird ausserdem
zurückgestellt, so dass die Schaltung 29eine weitere Anforderung für diese Stufe in den Puffer 30 laden kann. Abweichend von den in
Fig. 1 gezeigten vier Stufen der Priorita'tsunterbrechung ist natürlich
auch eine grössere oder kleinere Anzahl möglich.
Fig. 2 zeigt einige betroffene Elemente der'Zentraleinheit selbst. Dazu
gehört ein Instruktions-Adressregister 40, welches die auszuführenden Instruktionen jeweils vom Speicher in bekannter Weise auswählt.
Die anderen Elemente einschliesslich des Operationsregisters 52, des Speicheradressregisters 53, des Speicherdatenregisters 54, des Unterbrechungsmaskenregisters
56, des Arbeitsspeichers 57, des Y-Konzentrators 46, des Y-Registers 47, des RW-Konzentrators 44,*des Rechenwerks 45
und des Datenpuffers 48 übernehmen alle im wesentlichen die Steuerung der ZE-Operation auf bekannte Weise. Ausserdem verfügt jede Prioritätsunterbrechung sstufe über ein Instruktionsadressen-Rückgriffregister 41,
welches entsprechend den vier Prioritä'tsstufen mit IARB 0 - IARB 3
BC 9-72-0C6 - 12 -
409846/0688
bezeichnet, ist. Weiterhin ist jeder Prioritäts stufe ein Akkumulator
(ACC) mit Bedingungs- und Anzeigefeld 42 zugeordnet. Ausserdem verfügt jede Prioritäts stufe über Indexregister (XR) und Zustandsrückgriffregister
(SRB) 43. Der Betrieb der Verarbeitungseinheit unter Steuerung einer Prioritätsunterbrechung der dritten Stufe bringt also
die Benutzung von IARB 3, ACC 3 mit dem zugehörigen Bedingungsund Anzeigefeld/ sowie XRl-3, XR2-3 bis XR7-3 und SRB-3
mit sich. Während diese Elemente den Betrieb der Verarbeitungseinehit
steuern, sind ihre Gegenstücke für die Stufen 0, 1 und 2 stillgelegt
durch die Prioritäts steuerung; jedoch wird eine Unterbrechung sanforderung 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äts stufe auftritt,.
werden die oben erwähnten Register, Akkumulatoren udgl. 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äts stufe zurückkehren und die Verarbeitung dort fortsetzen, wenn alle Unterbrechungen der höheren Stufe berücksichtigt
wurden. Die Elemente IARB 0, ACC 0 mit zugehörigem Bcdingungs- und
BC 9-72-006 - 13 -
409846/0988
Anzeigefeld, sowie XRl-O bis XR7-0 entsprechen zusammen dem in Fig. 1 gezeigten Registersatz/Steuerblock 13 für die Stufe 0. Die
direkte Kanalverbindung 55 gestattet die Uebertragung von im Unterbrechung spuff er 30 der Fig. 1 enthaltener Information die zu einer
soeben berücksichtigten Unterbrechungsanforderung gehört, in die entsprechenden Registerpositionen.
Die Leitung "Priorita'tsstufe" 49 gestattet die Uebertragung 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 5.5 kombiniert
zur Bestimmung der Anfangsadresse der aufgrund einer Unterbrechung auszuführenden Unterroutine gemäss der Beschreibung in der deutschen
Offenlegungsschrift Nr. 2'251'876.
Der Rechenwerks-Konzentrator 44 und der Y-Konzentrator 46 sind
Funtionseinheiten, die die Auswahl einer von mehreren Sammelleitungen als Quelle der in eine Bestimmungsammelleitung 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.
BC 9-72-006 - 14 -
409846/0688
Instruktion vorübergehend gespeichert. Das Rechenwerk 45 ist eine Funtionseinheit allgemein bekannter Art, wie sie in bestehenden
Computern für arithmetische und logische Funtionen benutzt wird. Die Elemente SAR 53, SDR 54, IAR 40, OP-REG 52,
UMR 56, Arbeitsspeicherbereich 57, Y-Konzentrator 46, Y-REG 47,
RW-Konzentrator 44, RW 45 und Datenpuffer 48 sind in einer mit
mehreren PrioritStsstufen arbeitenden Verarbeitungseinheit nur einmal vorhanden und werden von den einzelnen Prioritä'tsstufen.gemeinsam
benutzt.
Die vorliegende Erfindung ermöglicht es-, dass in einer Datenverarbeitungsanlage
mit Prioritätsverarbeitung, wie sie im Zusammenhang
mit Fig. 1 und 2 beschrieben wurde, ein Programm, das auf einer
* Il
bestimmten Prioritätsstufe lauft, ein zu einer anderen Prioritatsstufe
gehörendes Programm beeinflussen, mit ihm Informationen austauschen und es sogar beenden kann.
In der deutschen Offenlegungsschrift Nr. 2'251'876 wird ein Prozessor
beschrieben, der zur Reduzierung der Verwaltungsvorgänge durch einen
nach Prioritäten ausgerichteten Unterbrechungsmechanismus gesteuert wird und ausserdem einen vollständigen Registersatz/Steuerblock für
eine jede Unterbrechungsstufe vorsieht, um die mit der Aufgabenum-
BC 9-72-C06 - 15 -
409846/0681
2Λ11963
schaltung beim Auftreten von Unterbrechungen verbundenen Ver
waltungsvorgänge zu reduzieren. Dieses Prinzip wurde bisher
allgemein im Zusammenhang mit den Fign. 1 und 2 beschrieben. Die Vorteile dieses Systemes bezüglich der Flexibilität und Vielseitigkeit
sind in der genannten Offenlegungsschrift beschrieben.
Durch die Art jedoch, in der die Instruktionsadressregister, andere Register und Bedingungsmerker auf der Basis der Prioritätsstufen
separiert werden, neigt das System daz'u, eine Kommunikation zwischen den einzelnen Priorität s stuf en. auszuschlies sen. 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 Programmes aussetzen. Ein solches Datenverarbeitungssystem
sollte aber im Zeitteilerbetrieb die Möglichkeit bieten, dass ein Programm der Prioritäts stufe 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 la.ssen kann.
Gemä'ss der späteren Beschreibung der Fign. 3, 4 und 5 bietet die vorliegende
Erfindung dem in den Fign. 1 und 2 dargestellten Datenverarbeitungssystem zusätzlich diese Funktionsmöglichkeit. Die vor- *
BC 9-72-OOG - 16 -
409846/068·
geschlagenen Schaltungen und ihre Arbeitsweise in Verbindung mit
bestimmten Instruktionen gestatten es, einen laufenden Wert des
Instruktionsadressregisters 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 Prozess 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 Instruktionsstomes des ursprünglichen
Programmes verlorengehen. In einem Computer, in dem mehrere maschinelle Unterbrechungsstufen vollständig voneinander getrennt
sind, wie es im Zusammenhang mit den Fign. 1 und 2 und in der deutschen
Offenlegungsschrift Nr. 2'251'876 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
BC 9-72-006 - 17 -
409846/0688
maschinelle Ausrüstung für die Ausführung dieser Operation aufgrund
von besonderen Instruktionen. Dabei handelt es sich um die Instruktionen "Lesen IAR-Rückgriffregister" (RIB), "Schreiben IAR-RUckgriffregister"
(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 Stufe verschieden sein kann, zu lesen oder zu verändern, und zwar ohne die gewählte Stufe zurückzustellen,
so dass 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.
BC 9-72-006 - 18 -
409846/0688
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 Stufenregister11
(STSR). Sie stellen ein allgemeinere Lösung der gestellten Aufgabe der KöiAmunikation und Steuerung zwischen'cJen einzelnen Prioritätsstufen dar.
Zur Beschreibung des Ausfuhrungsbeispieles wird angenommen, dass
die Instruktionen RIB, WIB und STI ein zum ZE-Operationsregister 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 ZE-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 Ausfuhrungsbeispieles wird weiter
angenommen, dass die Operationsregister und die zugehörigen Instruktionen
16 Bits lang sind, die mit 0 bis 15 numeriert sind. Eine gemeinsame Bitkonfiguration for den Operationscode, der z.B. die Bits
bis 4 benutzt, gibt an, dass eine der Instruktionen RIB, WIB oder
BC 9-72-OCb - 19 -
409846/0681
STI auszuführen 1st. Die jeweilige Instruktion ist durch eine eindeutige Bitkonfiguration im Modifizierfeld M bezeichnet,
welches die Bits 12 bis 15 umfassen kann. Wenn M z.B. Hexadezimal 13 ist, ist die RIB-Instruktion auszuführen. Wenn M
hexadezimal 14 ist, ist die Instruktion WIB gewählt worden,
wahrend bei M gleich 0 die Instruktion STI gewählt ist.
Zur Ausführung der RIB-Instruktion (IAR-Rückgriffregister lesen) ersetzt
der Inhalt des IARB-Registers für die gewählte Stufe den Inhalt des
durch das R-FeId (5 - 7) angegebenen Registers. Wenn das R-FeId
aus lauter Nullen besteht, wird der Inhalt des IRAB der gewählten Stufe
in den Akkumulator für die wählende Stufe gesetzt. Da das IARB-Register
nicht tatsächlich für die Prioritätsstufe 0 eingeschlossen werden kann,
weil diese nicht unterbrochen werden kann, resultiert die Ausfühmng
dieser Instruktion, wenn die vorgeschriebene Stufe die Stufe 0 ist, Im
Laden einer 0 in das durch das R-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 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.
BC 9-72-006 - 20 -
409846/0688
Der Uebertragsanzeiger 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 Uebertragsanzeiger der dominierenden
Stufe ausgeschaltet. Der Ueberlaufanzeiger bleibt unverändert, aber die Ergebnisanzeiger auf der dominierenden Stufe werden abhängig von dem
in das durch das R-FeId 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 Wl B-Instruktion (Schreiben IA R-RUck griff register)
ersetzt der Inhalt des durch das R-FeId angegebenen Registers den Inhalt des IAR-RUckgriffregisters auf der gewählten Stufe. Wenn das
R-FeId der wählenden Stufe aus lauter Nullen besteht, wird wieder der
Akkumulator benutzt. Der Inhalt des durch das R-FeId 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.
BC 9-72-006 - 21 -
409846/0688
JS
Bei der Ausführung der Instruktion STI (Anzeiger speichern) wird
der Inhalt der Ergebnis- , Uebertrags- und Ueberlaufanzeiger auf der durch das Stufenauswahlfeld bezeichneten Stufe in dem Register
gespeichert, welches durch das R-FeId angegeben ist, wobei ein
R-FeId aus lauter Nullen wieder den Akkumulator der laufenden Stufe
darstellt. Die Stufe wird durch den binärcod'ierten Wert in den Bit-Positionen
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
R-FeId definierte Register der laufenden Stufe den Zustand der Operation
der gewählten Stufe. Ein Bit in diesem durch das R-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 Uebertragsanzeiger und noch ein weiteres Bit
der Ueberlaufanzeiger. Uebertrags-, Ueberlauf-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 Uebertrags- und
Ueberlaufanzeiger auf der laufenden Stufe werden jedoch nicht verändert.
Die Instruktion BUL (Verzweigen und nicht maskieren, lang) wird tat-
BC 9-72-006 - 22 -
409846/0688
sächlich durch die in Fig. 2 gezeigte Schaltungsanordnung ausgeführt.
Diese Instruktion enthält einen sich selbst eindeutig bezeichnenden
Operationscode. Wenn die Instruktion BUL in das Operandenregister 52 der Fig. 2 geladen worden ist, wird ein eindeutiges
Adressenfeld von 16 Bits in das Instruktionsadressregister 40 geladen und wird zur Adresse der nächsten auszuführenden Instruktion. Uebertrags-,
Ueberlauf- und Ergebnisanzeiger werden nicht betroffen. Die Gesamtmaske wird dadurch abgeschaltet und die Steuerung der Unterbrechungen
auf höherer Ebene durch den Inhalt des Unterbrechungsmaskenregister 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 R-FeId, 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 Inhalt ·
BC 9-72-006 - 23 -
409846/0688
des durch das Rl-FeId im Operationsregister 90 der Fig. 5 angegebenen
laufenden Stufenregisters gewählt. Das R2-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 Rl-FeId bezeichnete Register oder in dieses Register zu übertragenden Daten ist. Für LSLR wählt das Rl-FeId
effektiv ein Zielregister, während R2 effektiv eine Quellenstelle im Hauptspeicher adressiert. Die STSR-Instruktion wählt mit Rl ein Quellenregister
und adressiert mit R2 eine Zielstelle im Hauptspeicher. Der Arbeitsspeicherbereich enthält während dieser Uebertragungen den
Inhalt des durch Rl angegebenen Registers. Diese Operation wird später genauer beschrieben. Für die LSLR-Instruktion enthält das
durch Rl 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'IAR-Rückgriffregister (ausgenommen auf der Stufe 0, wo es das IAR
ist, wenn kein IARBO da ist) oder das Stufenzu stands-Rückgriff register
wählen. Durch das Laden des Stufenzustands-Rückgriffregisters auf
der laufenden Stufe werden Uebertrags-, Ueberlaufs-, Ergebnis-, Bitadressanzeiger
und SchutzschlUssel auf der laufenden Stufe nicht initialisiert. Die Uebertrags- und Ueberlaufanzeiger auf der laufenden
Stufe werden nicht verändert, wogegen die Ergebnisanzeiger abhängig
BC 9-72-005 -24-
409846/0688
von den geladenen Operanden verändert werden. Die effektive Adresse
ist der Inhalt des R2-Feldes.
Das Stuf enzu stands - Rückgriff register hat nach Bitpositionen den
folgenden Inhalt: 00 - Byteadressanzeiger O (BAIO); 01 - Byteadressanzeiger
1 (BAU); 02 - Nullergebnisanzeiger (Z); 03 - Negativ-Ergebnisanzeiger
(N); 04 - Positiv-Ergebnisanzeiger (P); 05 - Gleich-Ergebnisanzeiger (E); 06 - Uebertragsanzeiger (C); 07 - Ueberlaufanzeiger (O);
und 12 bis 15 - Schutz schlüssel. Die Bitpositionen 08 bis 11 werden
nicht benutzt. Die Ausführung dieser Instruktion wird unterdrückt, wenn
die effetkive Adresse die verfügbare Speichergrösse überschreitet. Eine
Antwort "ungültige Adresse" wird unter diesen Umständen gegeben. Auf
diese Weise hat das System bisher gearbeitet. Die STSR-Instruktion.
(Speichern gewähltes Stufenregister) wird so ausgeführt, dass 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 Rl-FeId angegebenen
Registers gewählt. Die Bitpositionen 12 bis 15 dieses Regsiters werden zum Wählen des Quellenregisters auf der Wahlbitstufe benutzt gemäss
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, Uebertrag,
BC 9-72-006 · - 25 -
409846/0688
Ueberlauf, Byteadressanzeiger und SchutzschlUssel nicht gespeichert.
Dabei wird nur der im Rückgriff regist er durch die letzte vorgezogene
Unterbrechung dieser Stufe zurückgelassene Wert gespeichert. Die Uebertrags- und Ueberlaufanzeiger auf der-lauf enden Stufe werden
nicht verändert, während die Ergebnisanzeiger abhängig vom gespeicherten
Operanden verändert werden. Die effektive Adresse ist der Inhalt des R2-Feldes. Wieder wird die Instruktionsausführung unterdrückt und
ein Anzeiger "ungültige Adresse" gesetzt; wenn die effektive Adresse
den verfügbaren Speicherplatz überschreitet. Ausserdem 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 EinspeicherVAusspeicheroperationen
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 festgehaltpn. Derartige Operationen standen
BC 9-72-006 - 26 -
409846/0688
bei herkömmlichen Geräten nicht zur Verfügung, in denen ein ge
gebenes Programm (die wählende Stufe) ungenügende Kenntnisse des adressierten Programmes 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, dass ein Unterbrechungsprozess abgebrochen wird, stellt ein Taktimpuls
während der Ausführung dieser Instruktion den Wartemerker 23 der Fig. 1 für die abzubrechende Stufe (bzw. Stufen) zurück. Unter dem
Einfluss von erfindungsgemässen Steuerungen können Daten vom
Instruktionsadressregister der adressierten Stufe entweder in den Hauptspeicher oder in ein Indexregister oder den Akkumulator für
, die wählende Stufe verschoben werden. In ahnlicher 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 Instruktionsadressregisters,
und der Anzeiger gestattet es, den Zustand des unterbrochenen Programmes aufzuzeichnen. Wenn ein neues Programm auf derselben
Stufe eingeleitet Werden soll, werden das Instruktionsadressregister
und die Anzeiger für die adressierte Stufe entweder vom Hauptspeicher oder von einem Indexregister oder Akkumulator der wahlenden Stufe
geladen. Die Verwaltung der Indexregister und Akkumulatoren selbst kann durch Programrr.ierung ohnn maschinelle Unterstützung erfolgen.
BC 9-72-OOC - 27 -
409846/0688
Fig. 3 zeigt die gegenseitigen Beziehungen der Steuersignale und
Schaltungen, die für eine Kommunikation zwischen den einzelnen Unterbrechungs stufen in einem Computer mit mehreren Unterbrechungs stufen,
wie er allgemein in den Fign. 1 und 2 gezeigt und beschrieben wurde, notwendig sind. Der Block 66 enthält mehrere Merker, mit denen
die laufende aktive Prioritätsstufe gewählt wird. Die Merker 66 sind
grundsätzlich gleichwertig den Aktivmerkem 22 der Fig. 1. In diesem
Block gibt es für jede Unterbrechungs stufe im Computer einen Merker.
Nur jeweils einer dieser 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 IAR-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ückcjriffregister umfassen.
BC 9-72-006 - 28 -
409846/0618
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" enthalt 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 "IAR-Rückgriff" wird bestimmt durch den
Wert auf der Sammelleitung 73.
Um mit einem Register auf einer anderen Unterbrechu ng s stufe 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 Wa'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 IARr-Rückgriffregistern 63 durch die Sammelleitung
59 gesteuert. Das Quellen-/Zielrogister innerhalb einer gegebenen Stufe
wird noch auf normale Weise durch die Sammelleitung 71 gesteuert.
BC 9-72-006 - 29 -
409846/0688
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 Fig. 4 erzeugt und auf der
Leitung 84 abgegeben. Die Sammelleitung 71 in Fig. 3 erhält das Signal für die Ursprungs-/fcielangabe vom Decodierer 83 über die
Sammelleitung 85 in Fig. 4. Den Betrieb der beschriebenen Datenwege
und Steuerungen lässt sich am besten an einem Beispiel zeigen.
Im Beispiel soll das IAR-Rückgriffregister der Stufe 3 in das Register
5 der gegenwärtig aktiven Stufe 2 gelesen werden. Die Instruktion "lAR-RUckgriffregister lesen" wird in das ZE-Operationsregister 80
(äquivalent dem Operationsregister 52 in Fig. 2) gelesen. Mit Hilfe des Op-Codefeldes und des Modifizierers "bestimmt der Decodierer 83/
dass die Leitung 84 (Durchschalten Stufenauswahlleitungen) erregt wird. Mit dem Stufenauswahlfeld bestimmt der Decodierer 81, welche Stufe
ausgewählt und über die Stufenauswahlleitungen 82 und von dort über
die Eingangs Sammelleitung 59 der Fig. 3 adressiert werden soll. Der
Wähler/Decodierer 58 der Fig. 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
BC 9-72-006 - 30 -
409846/0688
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 IAR-RUckgriffregistern führt. Der Decodierer 83 gibt einen Wert
auf die Sammelleitung 85, der durch die Sammelleitung 71 an die
IAR-RUckgriffregister 63 geleitet wird. Die Werte auf den Sammelleitungen
71 und 73 wählen das Rückgriff register für die Stufe 3 im Block 1IAR-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 (Quellen-/
Zielangabe). Ausserdem sperrt der Decodierer 83 das Durchschaltsignal
auf Leitung 84. Die für diese Aenderung im Zustand benötigten Taktimpulse
sind nicht dargestellt, weil es sich dabei um eine normale interne Computersteuerung
handelt. Das Signal auf Leitung 67 in Fig. 3 veranlasst 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.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
BC 9-72-006 - 31 -
409846/0688
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 Programmes auf der Stufe 3 auf ein anderes
Programm umgeschaltet werden soll, muss.auch der Wert im IAR-Rückgriffregister
der Stufe 3 verändert werden. Die Veränderung dieses Wertes im IAR-Rückgriffregister der Stufe 3 erfüllt dieselbe Funktion wie eine
Verzweigungsinstruktion in einem Instruktionsstrom.
Zur effektiven Steuerung einer Unterbrechungs stufe von einer anderen aus
muss weiterhin festgestellt werden, ob die gewählte Unterbrechungs stufe
gegenwärtig im Wartezustand ist und zu einem späteren Zeitpunkt zur laufenden aktiven Stufe werden kann. Das heisst mit anderen Worten, dass
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
BC 9-72-006 - 32 -
409846/0688
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 Illustration dieses Gesichtspunktes
siehe auch Fig. 1. Die Aktivmerker übernehmen dieselbe
Funktion wie die Aktivmerker 66 in Fig. 3. Sie stellen fest, welche
Stufe die laufende aktive Stufe innerhalb der ZE ist. Mit den Wartemerkem
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 "IAR -Rückgriffregister lesen" wurde das im Block 16 enthaltene IAR-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, dass 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, dass die gewählte Stufe nicht im Wartezustand ist. In einer spezifischen Ausführung auf dem IBM-System/7 wird als Anzeiger.für die
gewählte laufende Stufe der Uebertragsmerker benützt. Der Uebertragsmerker
braucht nicht näher erklärt zu werden, da er ein Standardelement
BC 9-72-006 - 33 -
409846/0688
In den meisten Computern ist. Uebertragsmerker sind in Fig. 1 als
in den Blocks 13, 14, 15 und 16 enthaltene Elemente angenommen.
In diesem Beispiel würde der Uebertragsmerker im Block 15 auf denselben Wert gesetzt wie der Merker 3 des Blockes 23.
Unter bestimmten Umständen kann die Beendigung der Verarbeitung
auf einer niedrigeren Prioritätsstufe erforderlich werden. Dazu muss
der zu dieser Prioritätsstufe gehörende Wartemerker zurückgestellt
werden. Wenn z.B. die Arbeit auf der Unterbrechungsstufe 3 von der
Unterbrechungs stufe 2 aus beendet werden soll, wird der Merker''3
des Blockes 23 In Fig. 1 zurückgestellt. Diese Funktion wird durch die Instruktion IIB (IAR-Rückgriffregister untersuchen) ausgeführt.
Diese Instruktion benützt das IAR-Rückgriffregister der gewählten
Stufe als Quelle und ein Register auf der laufenden Stufe als Zielort,. genauso wie die oben besprochene Instruktion "IAR-Rückgriffregister
lesen". Ausserdem wird durch Abgabe dieser IIB-Instruktion die Arbeit
auf der gewählten Stufe abgebrochen, das heisst, wenn z.B. die Stufe 3 gewählt ist und der Merker 3 des Blockes- 23 in Fig. 1 gesetzt ist,
so wird dieser Merker durch Abgabe der IIB-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 Anforderungs
BC 9-72-006 - 34 -
409846/0688
merker 3 in Block 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 Priorita'tsunterbrechung der Stufe 3 durchgeführt werden kann. Wenn das der Fall ist, wird der
Merker 3 des Blockes 23 gesetzt. Ausserdem wird der Merker 3 des Blockes 22 gesetzt, und die Stufe 3 wird zur laufenden aktiven Stufe
innerhalb der ZE vorausgesetzt, dass weder eine Unterbrechungsanforderung auf einer höheren Stufe vorliegt, noch eine Unterbrechungsmaske
Unterbrechungen der Stufe 3 blockiert.
. Die Registersa'tze/Steuerblöcke 13, 14, 15 und 16 in Fig. 1 enthalten
bestimmte Steuer- oder Bedingungsmerker,- die den verschiedenen
. Prioritätsstufen zugeordnet sind. Als Beispiel seien der Uebertrags-,
. · U eberlauf- und Ergebnisanzeiger genannt, die auf einer gegebenen Stufe ' für arithmetische und logische 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 R-FeId der laufeaden Stufe angegebene Register. Diese
Instruktion wird spater allgemein beschrieben. Ihre Arbeitsweise geht ajn besten aus einem Beispiel hervor. .
BC 9-72-006 . - 35 -
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 Fig. 4 gelesen. Aufgrund des
Op-Codefeldes und des Modifizierfeldes bestimmt der Decodierer 83,
dass das Durch scha It signal aktiv sein sollte. Der Decodierer 81 bestimmt
mit dem Stufenauswahlfeld die zu wählende und auf die Stufenaus wahlleitungen 82 und von dort auf die Sammelleitung 59 zu setzende
PrioritätsStufenangabe. Der Wähler/Decodierer 58 in Fig. 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 Decpdierer 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 dein R-FeId den Wert auf der Leitung 85 (Quellen-/
.Zielangabe). Ausserdem beendet der Decodierer 83 das Durchschaltsign?!
BC 9-72-OCG . -- 36 -
409846/0688
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 veranlasst den Wähler/Decodierer 58 zum Sperren der Sammelleitung 59 und Freigeben der Sammelleitung
Es wurde bekanntlich angenommen, dass die laufende aktive Stufe die Stufe 2 ist. Der Atkivmerker 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. D.ie 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 "IÄR-Rückgrifiregister
schreiben" wird angenommen, dass Daten vom Register 6 der laufenden aktiven Stufe 2 in das IAR-Rückgriffregister der Stufe 3 übertragen werden
sollen. Die IAR-RUckgriff-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 Fig. 3 gegeben und der Wert wählt das Register 6.
BG 9-72-006 , - 37 -
409846/0688
Der Wähler/De codierer 58 benutzt jetzt die Sammelleitung 69, da das
Signal auf Leitung 67 nicht aktiv ist. Das Aktivmerker-Ausgangssignal für die laufende Stufe 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, dass das Register 6 das Quellenregister
istund 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 dass das Signal auf Leitung am Eingang des Wähler/Decodierers 58 wechselt. Dieses Durchschalt signal
sperrt dann die Sammelleitung 69 und schaltet die Sammelleitung 59 ein. Die Sammelleitung 59 erhält einen Wert vom Decodierer 81; der
den vom Stufenauswahlfeld des Registers 80 erhaltenen Wert darstellt.
Die Sammelleitung 60 und demzufolge auch die Sammelleitung 73 wählen
daher das IAR-Rückgriffregister der Stufe 3 im Block 63. Die Sammelleitung 71 bezeichnet das IAR-Rückgriffregister auf der Stufe 3 als das
Zielregister. Der Wert aus dem Zwischenspeicher 64 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
BC 9-72-006 _ , - 38 -
409846/0688
Stufe oder von einem Register einer gewählten Stufe in ein Register
der^laufenden aktiven Stufe übertragen werden kann. Fig. 5 zeigt die Steuerungen und den Datenfluss für eine etwas andere Ausführungs- '
form. 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 v/erden 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
Pröblemes dar. · -
Dieses mehr verallgemeinerte Verfahren soll an einem Beispiel gezeigt
werden: In diesem Beispiel soll der Inhalt, eines IAR-Rückgriffregister
der Stufe 3 entnommen und für spätere Verwendung aufbewahrt werden.
In diesem Beispiel wird.die Information dem IAR-Rückgriffrogister der Stufe
entnommen und in eine Speicherstelle gesetzt. Die zu benutzende Speicherstelle
wird durch ein Register der laufenden Stufe angegeben.
Das R2-FeJd der Instruktion bezeichnet das die Speicheradresse enthaltende
Register.
BC 9-72-006 . · - 39 -
409846/0688
Für dieses Beispiel wird angenommen, dass der Wert im R2-Feld gleich 4 ist. Der Wert im Rl-FeId ist gleich 5. 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 r Die ZE setzt
die Instruktion in das ZE-Operationsregister 9 0 in Fig. 5. Mit dem Op-Code,
dem R2-Feld und dem Modifizierfeld von 90 bestimmt der Decodierer
I t
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, dass 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 Speicheradressregjster
in der ZE nach Darstellung in Fig. 2 geleitet. Die Arbeitsweise des SAR
wird nicht im einzelnen beschrieben, da seine Funktion allgemein bekannt ist". Nach Ausführung dieser Funktion benutzt der Decodierer 91 das
Op-Codefeld, das Rl-FeId und das Modifizierfeld von 9 0 zur Wahl des
BG 9-72-006 . - 40 -
409846/0688
• #
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. Ausserdem gibt der Decodierer
91 ein Durchschaltsignal auf Leitung 92. Die Leitung 92 ist mit der
Leitung 67 in Fig. 3 verbunden, und das Durchschaltsignal veranlasst den Wa'hler/Decodierer 58,die Signale der Sammelleitung 59 und nicht
die der Sammelleitung 69 zu benutzen. Der mittels Wähler/Decodierer von der Sammelleitung 59 auf die Sammelleitung 60 gegebene Wert wird
über die Sammelleitung 73 in das IAR-RUckgriffregister 63 übertragen. Das
IAR-Rückgriffregister der Stufe 3 wird durch die Signale auf den Sammelleitungen
73 und 71 gewählt, und der Inhalt in den Zwischenspeicher und auf die Sammelleitung 65 geleitet zur Uebertragung in den Hauptspeicher
durch das Speicherdatenregister 54 der Fig. 2. Die ZE löst eine Schreibaktion im Hauptspeicher aus und der vom IAR-Rückgriff register
der Stufe 3 empfangene Wert wird in die durch das Speicheradressregister
53, welches vorher von der ZE geladen worden war, angegebene Hauptspeicherstelle
eingegeben. -
BC 9-72-006 , -41 -
409846/0688
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 hiefür verwendete Instruktion ßn 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 IAR-Rückgriffregister der Stufe 3 geladen werden, während ein
Programm auf der Unterbrechungsstufe 2 ausgeführt wird. Das R2-Feld in der Instruktion gibt das Register an, welches die Speicherstellen-•adresse
enthält. Für dieses "Beispiel wird angenommen, dass der Wert im R2-Feld gleich 4 und der Wert irn Rl-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-Operationsregister 90 in Fig. 5.
BC 9-72-006 . . - 42 -
409846/0688
Mit dem OP-Code, dem R2-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 enthalt. Zu diesem Zeitpunkt gibt die Sammelleitung
72 an, dass 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 Speicheradressregister 53 in der in Fig. 2
gezeigten ZE geleitet. Die ZE leitet eine Speicherleseoperation ein.
Zu diesem Zeitpunkt wählt der Decodierer 90 mit dem OP-Codefeld, , dem Rl-FeId 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
gesetzt und durch die Sammelleitung 65 auf die Sammelleitung 95 übertragen
und in den Arbeitsspeicherbereich 94 in Fig. 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. Ausserdem 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 veranlasst den'Wähler/Decodierer 58 dazu, die Signale
der Sammelleitung 59 und nicht die der Sammelleitung 69 zu benutzen.
BC 9-72-005 \ . -.43 -
409846/0688
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ückgriffregister 63 übertragen. Das IAR-Rückgriffregister
der Stufe 3 wird durch die Signale der Sammelleitungen 73 und 71 gewählt. Der Inhalt der durch den Inhalt des Speicheradressregisters bezeichneten
Speicherstelle wird auf die Sammelleitung 65 geleitet und ersetzt den Inhalt des IAR-Rück griff registers 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 einschliesslich der laufenden aktiven Stufe gewählt und
geladen oder gespeichert werden. · "
Es wurden hier ergänzende Funtionen zur Steuerung von und/oder Kommunikation
mit anderen Unterbrechungsstufen in einem mit mehreren.Unterbrechung
sstufen arbeitenden Computer beschrieben. Ein wichtiges Element
für diese Möglichkeit ist der Wähler/Decodierer 58 in Fig. 3. Dieser
BC 9-72-OÜb . · · - 44 -
409846/0688
.Hs
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 Unterbre chung s stufen 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 laui^nden 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 Ueberwachung der Wartemerker 23 in Tig. I
kann man ausserdem feststellen,, dass 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
BC 9-72--ρθβ . . - 45 -
409846/0688
- Mb
Bevorrechtigung zugelassen wird oder nicht. Die Verarbeitung der laufenden Stufe kann die Ausführung einer Unterbrechung sverarbeitungs-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 unterbrochenen Stufe durch Daten zur Ausführung der zum Abschluss der Arbeit auf der laufenden Stufe benötigten Nebenarbeit bevorrechtigt
belegt. Die Ausführung der Bevorrechtigungsroutine auf einer niedrigeren als"der lauf enden'Stufe kann durch Einstellung der Unterbrechungsmaskenregister
so zugelassen .werden, dass die laufende Stufe isoliert wird, bis
die Bevorrechtigungsroutine fertig ist. Danach wird die verdrängte Routine in die unterbrochene Stufe zurückgegeben und kann schliesslich die
Verarbeitung bis zum Ende fortsetzen, ohne dass der Eingriff irgendwelche Nachteile mit sich bringt. . "
Die Unterbrechungsroutino, 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 Vv'arte schlange von Steuerregisterzuständen
benutzt werden.'Die Be nutz ei programme werden auf einer niedrigeren Stufe
ausgeführt als die Zeitgeberunterbrechung, Wenn eine Zeitgeberunter-
BG 9-72-006 - 46 -
409846/0688
brechung 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 Benutzer zugriff zum Prozessor wird also in der durch die Warteschlange
gegebenen Reihenfolge zyklisch zugeordnet.
BG 9-72-006 . '-■ 47 _
409846/0688
Claims (5)
- PATENTANSPRÜCHErIy Elektronische Datenverarbeitungsanlage 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 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ß folgende ergänzende Schaltungen vorgesehen sind:a) Einrichtungen (58, 59, 67, 81, 82, 83, 84), um mit Hilfe des Inhalts eines Operationsregisters die Elemente (61, 62, 63) eines Steuerblocks (13, 14, 15, 16) zu adressieren, der nicht der gerade /aktiven Prioritätsstufe zugeordnet ist;BC 9-72-006 - 48 -409846/0688b) Einrichtungen (64, 65), um in den adressierten Elementen enthaltene Daten in einen Speicher zwecks späterer Wiederverwendung zu übertragen; undc) 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.
- 2. Datenverarbeitungsanlage nach Anspruch 1, 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ändert werden kann, 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.
- 3. Datenverarbeitungsanlage nach Anspruch 1 und/oder 2, dadurch gekennzeichnet, daß Verbindungen und Speichereinrichtungen (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 Steuer-·BC 9-72-006 409846/blockes einer Prioritätsklasse in Elemente des Steuerblocks einer anderen Prioritätsklasse übertragen werden können.
- 4. Datenverarbeitungsanlage nach einem oder mehreren der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß jeder Steuerblock mindestens ein Instrukt'ionsadreß-Rückgrif fregister (41), ein Akkumulatorregister (42) und ein Indexregister (43) enthält.
- 5. Datenverarbeitungsanlage nach einem oder mehreren der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß eine Wählerschaltung (58) vorgesehen ist, mit deren Hilfe die Adressierung und Aktivierung von Elementen je eines Steuerblocks bewerkstelligt wird, wobei 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. * 'BC 9-72-006 - 50 -409846/0688si.Leerseite
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 true DE2411963A1 (de) | 1974-11-14 |
DE2411963B2 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 |
US4228500A (en) * | 1978-03-27 | 1980-10-14 | Honeywell Information Systems Inc. | Command stacking apparatus for use in a memory controller |
US4181941A (en) * | 1978-03-27 | 1980-01-01 | Godsey Ernest E | Interrupt system and method |
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 |
EP0013301B1 (de) * | 1978-12-04 | 1982-06-30 | International Business Machines Corporation | Multiprozessorsystem mit Warteschlangeneinrichtung für den Zugriff zu gemeinsam benutzbaren Dateneinrichtungen |
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 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1499200B2 (de) * | 1964-04-06 | 1971-04-15 | International Busmess Machines Corp , Armonk, NY (V St A ) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1499200B2 (de) * | 1964-04-06 | 1971-04-15 | International Busmess Machines Corp , Armonk, NY (V St A ) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung |
Non-Patent Citations (1)
Title |
---|
Datamation, Juni 1965, S. 31 bis 34 * |
Also Published As
Publication number | Publication date |
---|---|
US3825902A (en) | 1974-07-23 |
NL7404594A (de) | 1974-11-01 |
CA1014666A (en) | 1977-07-26 |
CH570007A5 (de) | 1975-11-28 |
FR2227578A1 (de) | 1974-11-22 |
BR7403530D0 (pt) | 1974-11-19 |
SE402494B (sv) | 1978-07-03 |
DD112018A5 (de) | 1975-03-12 |
GB1435671A (en) | 1976-05-12 |
JPS5517977B2 (de) | 1980-05-15 |
IT1010741B (it) | 1977-01-20 |
DE2411963C3 (de) | 1981-10-15 |
DE2411963B2 (de) | 1976-09-16 |
FR2227578B1 (de) | 1976-12-17 |
JPS5011145A (de) | 1975-02-05 |
ES425785A1 (es) | 1976-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2411963A1 (de) | Datenverarbeitungsanlage | |
DE3914265C2 (de) | ||
DE2113890C2 (de) | Zentrale Verarbeitungseinrichtung für Datenverarbeitungsanlagen | |
DE2251876C3 (de) | Elektronische Datenverarbeitungsanlage | |
DE2416609C2 (de) | Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen | |
DE2714805C2 (de) | ||
DE2161886C2 (de) | Befehlsausführungseinheit in einer elektronischen Datenverarbeitungszentrale für die gleichzeitige Verarbeitung mehrerer Befehle | |
DE2456578C2 (de) | Datenverarbeitungsanlage | |
DE69133571T2 (de) | Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen | |
DE2935906C2 (de) | Mikroprozessor | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
DE2847934A1 (de) | Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher | |
DE2657848A1 (de) | Steuereinheit fuer ein datenverarbeitungssystem | |
EP0010185B1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
DE2755616A1 (de) | Asymmetrischer multiprozessor | |
DE2533737A1 (de) | Datenprozessor | |
DE2611975A1 (de) | Dv-system mit einer einrichtung zur zuordnung von prozessen zu einem prozessor auf einer prioritaetsbasis | |
DE2412634C3 (de) | Prozessor für eine Kleinstrechenanlage | |
DE2747304A1 (de) | Einrichtung zur mikrobefehlssteuerung | |
EP0010135B1 (de) | Mikroprogrammgesteuerte Ein-/Ausgabeeinrichtung und Verfahren zum Durchführen von Ein-/Ausgabeoperationen | |
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 | |
DE2622140C3 (de) | Einrichtung zur Steuerung manueller Operationen | |
DE2856768C2 (de) | Prioritäts-Vektor-Unterbrechungsvorrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |