DE1449568B2 - Datenverarbeitungssystem - Google Patents
DatenverarbeitungssystemInfo
- Publication number
- DE1449568B2 DE1449568B2 DE19631449568 DE1449568A DE1449568B2 DE 1449568 B2 DE1449568 B2 DE 1449568B2 DE 19631449568 DE19631449568 DE 19631449568 DE 1449568 A DE1449568 A DE 1449568A DE 1449568 B2 DE1449568 B2 DE 1449568B2
- Authority
- DE
- Germany
- Prior art keywords
- register
- program
- interrupt
- address
- memory
- 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
- G06F9/462—Saving or restoring of program or task context with multiple register sets
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
Unterbrechungssignale anspricht, von denen jedes Signal ein unterschiedliches Programm kennzeichnet,
und ein Programmauswahlregister enthält, welches Unterbrechungssignale empfängt und entsprechend
dem Unterbrechungssignal höchster Priorität tätig wird, und weiteren Funktionsregistern, welche mehrfache
Programmunterbrechungen entsprechend vorbestimmten Prioritäten zwischen den verschiedenen
Programmen ermöglichen, so daß ein Unterbrechungsprogramm selbst durch ein Programm
höherer Priorität unterbrochen werden kann, dadurch erreicht, daß der zentrale Speicher selbst für
jedes Programm einen Satz von Funktionsregistern enthält, nämlich ein Programmadressenregister, welches
die Adresse von Instruktionen in dem zugeordneten Programm liefert, wenigstens ein Sammelregister,
welches Daten speichert, die bei der Ausführung von Instruktionen des zugeordneten Programms
verwendet werden, und wenigstens ein Indexregister, welches einen Indexwert speichert, der
auf die Adressen von Operanden angewendet werden kann, die bei der Ausführung von Instruktionen des
zugeordneten Programms verwendet werden, wobei die Funktionsregister desjenigen Satzes durch das
Programmauswahlregister ausgewählt werden, der zu dem auszuführenden Programm gehört.
In Ausgestaltung der Erfindung ist es zweckmäßig, daß das Unterbrechungsregister aus einer Anzahl
von Binärstufen besteht, wobei für jedes Programm eine Stufe vorgesehen ist, die durch ein bestimmtes
Unterbrechungssignal eingestellt werden kann, daß das Programmauswahlregister eine Anzahl von
Binärstufen umfaßt, deren Inhalt zur Auswahl einer Gruppe von Funktionsregistern benutzt wird, und
daß Prioritäts-Torschaltungen vorgesehen sind, die während jedes Befehlszyklus noch vor der Auswahl
irgendwelcher Funktionsregister wirksam sind, um in das Programmauswahlregister einen Wert in Übereinstimmung
mit der im Unterbrechungsregister eingestellten Stufe der höchsten Priorität einzugeben.
In weiterer Ausgestaltung der Erfindung ist es außerdem zweckmäßig, daß Räum-Torschaltungen
vorgesehen sind, welche sowohl auf die Ausführung des Schlußbefehls eines beliebigen Prioritätsprogramms während eines Befehlszyklus als auch
auf den im Programmauswahlregister befindlichen Wert ansprechen, um die eingestellte Stufe des Unterbrechungsregisters
zu räumen, auf die sich der Wert bezieht.
Ein Ausführungsbeispiel der Erfindung ist in der Zeichnung dargestellt. Es zeigt
Fig. 1 das Blockschaltbild eines Datenverarbeitungssystems,
F i g. 2 Einzelheiten eines Unterbrechungsstatusregisters,
F i g. 3 ein Speicheradressenregister, welches zur Ansteuerung einer bestimmten Speicherstelle des eingebauten
Speichers dient,
F i g. 4 ein Zeitdiagramm, das die Ausführung eines Befehles veranschaulicht,
F i g. 5 ein Zeitdiagramm, aus dem die Arbeitsweise der Einrichtung durch Steuerung von Taktregistern
ersichtlich ist.
Das in F i g. 1 dargestellte System stellt einen kleinen Digitalrechner mit eingespeichertem Programm
dar, der in Systemen mit gleichzeitiger Datenverarbeitung als Nachrichtenumschaltezentrale oder als
arbeitsablaufsteuernder Datenlogger eingesetzt werden kann. Das System hat einen Kernspeicher mit
beliebigem Zugriff, seine Speicherstellen können jeweils ein 7-Bit-Wort aufnehmen, wobei jede
Speicherstelle durch eine aus 12 Binärbits (4 Oktalstellen)
bestehende Adresse bezeichnet ist. Der Zugriff zum Speicher zwecks Entnahme oder Einspeicherung
von Informationen erfolgt während eines Speicherzyklus, zu dem Lese- und Wiedereinschreibschritte
gehören. Ein Befehl besteht aus 14 Binärbits, die zusammengesetzt werden, indem zwei 7-Bit-Wörter in aufeinanderfolgenden Speicherzyklen
aus benachbarten Speicherstellen abgerufen werden. Die sieben niedrigstwertigen Bits eines Befehls
sind in einem Wort enthalten, das an einer geradzahligen Speicheradresse aufbewahrt wird; die
sieben höchstwertigen Bits des Befehls befinden sich dagegen in der nächsthöheren, ungeradzahligen
Speicherstelle. So kann beispielsweise ein Befehlswort aus zwei 7-Bit-Wörtern bestehen, die in den
Speicheradressen 3126 (oktal) und 3127 (oktal) aufbewahrt
werden. Der nach seinem Abruf aus dem Speicher aus 14 Bits zusammengesetzte Befehl enthält
einen 4 Bits umfassenden Operations-Kennteil /, einen aus 2 Bits bestehenden Akkumulatorregister-Kennteil
a, einen aus 2 Bits bestehenden Indexregister-Kennteil b und einen 6 Bits umfassenden
Operand-Kennteil y.
13 12 11 10
9 8
76 543210
Mit dem aus 4 Bits bestehenden Operations-Kennteil/ verfügt das vorliegende System über ein Repertoire
von 16 Grundoperationen. Wird aus dem Speicher ein Operand zwecks Ausführung eines Befehls
entnommen, so werden die sechs niedrigen Bits der Operandadresse vom Kennteil y des Befehls
bereitgestellt, während die sechs höheren Bits der Operandadresse sich aus dem Inhalt eines der vier
Indexregister zusammensetzen, die zum Teil durch den aus zwei Bits bestehenden Kennteil b des Befehls
bezeichnet sind. Diese Indexregister werden nachstehend mit .B-Register bezeichnet. Der 7-Bit-Operand,
der aus der durch diese zusammengesetzte 12-Bit-Adresse bezeichneten Speicherstelle stammt,
kann arithmetisch mit einem aus 7 Bits bestehenden Wert vereinigt werden, der in einer der vier Speicheradressen
enthalten ist, die zum Teil durch den 2-Bit-Kennteil a' des Befehls bezeichnet sind. Diese
durch den Kennteil α bezeichneten Register werden nachstehend mit ^-Register oder Akkumulator-Register
bezeichnet. In dem vorliegenden System stellen die A- und B-Register bestimmte Speicherstellen
im Kernspeicher dar. Bei Ein- und Ausgabebefehlen wird der Kennteil α dagegen zur Kennzeichnung
bestimmter Ein-Ausgabe-Operationen benutzt, beispielsweise zur Kennzeichnung der Richtung,
in welcher Information zwischen einer externen Einheit und dem Speicher übertragen wird. Andererseits
wird der im A -Register befindliche Wert bei einigen Nicht-Ein-Ausgabe-Operationen nicht benötigt;
in diesen Fällen kann der Kennteil α zur weiteren Kennzeichnung der Funktion benutzt werden;
wodurch sich die Anzahl der Bits des Operations-Kennteils / auf sechs erhöht.
F i g. 1 zeigt außerdem noch die nachstehend aufgeführten, nicht zum Kernspeicher gehörenden Register,
die aus Kippschaltungsstufen bestehen. Das S-Register enthält eine 12-Bit-Adresse zur Ansteuerung
des Speichers. Das Z-Register stellt einen aus 7 Bits bestehenden Speichereingang dar, der von
sämtlichen aus dem Speicher entnommenen Informationen passiert werden muß, bevor diese entweder
der externen Einheit oder den anderen Flip-Flop-Registern
zugeleitet werden. Das Z-Register enthält außerdem den Operanden des A -Registers. Das
Z-Register nimmt den aus dem Speicher entnommenen 7-Bit-Operanden auf, dessen Speicheradresse
zum Teil aus dem Kennteil y des Befehls besteht. Das Addierwerk ist als Verknüpfungsmatrix ausgebildet,
welche Eingangssignale sowohl vom Z- als auch vom .Y-Register erhält und ein Ausgangssignal
erzeugt, welches die Summe der beiden in diesen Registern befindlichen Werte darstellt. Das Wiedereinschreiben
von Information in den Speicher kann entweder vom Z-Register oder vom Ausgang des
Addierwerkes aus vorgenommen werden. Das äußerste linke Bit des 7-Bit-Operanden ist ein Vorzeichenbit;
ist dieses Bit Null, so ist der Operand positiv. Das Rechenwerk führt die Rechenoperationen
nach dem Ein-Komplement-Subtraktionsverfahren mit Endborger (Endübertrag) aus.
Nachstehend sind einige Beispiele der im vorliegenden System verwendeten 7-Bit-Zahlen aufgeführt.
Dezimal | Oktal | Binär |
0 | 000 | 0 000 000 |
1 | 001 | 0 000 001 |
28 | 034 | 0 011100 |
63 | 077 | Olli 111 |
-63 | 100 | 1 000 000 |
-28 | 143 | 1 100 011 |
176 | 1 111110 | |
-0 | 177 | 1111 111 |
Das in F i g. 1 gezeigte i/-Register wird normalerweise
zur Aufnahme des 14-Bit-Befehls benutzt, der gerade ausgeführt wird. Außerdem dient dieses Register
auch als Transferregister beim Erlangen der Befehlsadresse. Zur Entschlüsselung des Operations-Kennteils
/ ist eine Funktionsentschlüsselungseinrichtung vorgesehen, so daß die entsprechenden Befehlssignale zur Ausführung der Operation erzeugt werden
können. Diese Befehlssignale werden in erster Linie von einer Befehlssignaleinrichtung des Systems
unter dem Einfluß der entschlüsselten Funktion sowie von Taktsignalen erzeugt. Die Taktsteuerung
ihrerseits ist mit einem Haupttaktgeber synchronisiert, der vier Taktphasen CFl, CP 2, CP 3 und CP 4
erzeugt. Diese Taktphasen werden im Zyklus nacheinander ohne Überlappung erzeugt und auch den
anderen Schaltkreisen des Systems in der in Verbindung mit den übrigen Figuren noch zu beschreibenden
Weise zugeführt. Das i?-Register besteht aus zwölf Stufen und dient während einer Wiederholbefehlsfolge
zur Aufnahme und Modifizierung der Operandadresse. Außerdem nimmt dieses Register
die nächste Adresse auf, wenn der Betrieb in der Betriebsart »Ein-Ausgabe-Puffer« erfolgt. 8 Bits
dieses Registers werden zur Verringerung des Wiederholzählerstandes während der Wiederhol- und
Pufferbefehle benutzt. Das i?.K-Register ist ein 8-Bit-Wiederholregister,
dessen Inhalt bei jeder wiederholten Befehlsiteration oder pufferartigen Übertragung
verringert wird, um die Anzahl der noch auszuführenden Iterationen bzw. die Anzahl der noch
zu übertragenden Zeichen anzuzeigen. Die normale Beendigung einer Wiederhol- oder Pufferoperation
ίο wird dadurch angezeigt, daß der Inhalt dieses Registers
gleich 0 geworden ist. Wird eine Wiederholoperation durch das Vorfinden einer Auslaßbedingung
beendet, so werden die unteren 7 Bits dieses Registers automatisch an die Kernspeicheradresse
0124 (oktal) abgespeichert. Der Addierer R + 1 erhöht bzw. verringert den Inhalt des jRX-Registers.
Zum System gehören ferner zwei identische EinAusgabe-Kanäle 1 und 2. Beide Kanäle arbeiten unabhängig
voneinander, jedoch können auf dem gleichen Kanal nicht gleichzeitig Ein- und Ausgabe-Operationen
vorgenommen werden. Die Ein- oder Ausgabe kann in den Kanälen entweder über Puffer
oder mittels Programm erfolgen. In der Betriebsart »gepufferte Ein-AAusgabe« werden vom und zum
Speicher mehrere Wörter übertragen, während in der Betriebsart »programmierte Ein-/Ausgabe« stets nur
ein einziges Informationswort übertragen wird. Ein Wort kann bis zu 7 Binärbits enthalten. Bei Ausführung
einer gepufferten Ein-Ausgabe-Operation kann ein Programm in der Mitte eines Befehls unterbrochen
werden, um den Speicher zwecks Übertragung des Zeichens anzusteuern. Die Betriebsart
»gepufferte Ein-/Ausgabe« wird durch Programmierung eines Wiederholbefehls bewerkstelligt, an den
sich einer der Ein-Ausgabe-Befehle anschließt. Auf diese Weise wird eine Ein-Ausgabe-Pufferoperation
eingeleitet, deren Länge durch den Wiederholbefehl bezeichnet ist. Die erste Pufferspeicheradresse ist
normalerweise durch den Ein-Ausgabe-Befehl bezeichnet; weitere Adressen werden dann erzeugt, indem
die erste Adresse in Übereinstimmung mit dem Wiederholbefehl mit +1, 0 oder —1 modifiziert
wird. Nach Einleitung einer Pufferoperation läuft das Programm weiter ab.
Folgt auf einen Wiederholbefehl ein Nicht-EinAusgabe-Befehl, so wird der nächstfolgende Befehl
in Übereinstimmung mit einem im Wiederholbefehl enthaltenen Kennteil bis zu 256 Iterationen wiederholt.
Die erste Operandadresse des wiederholten Befehls ist normalerweise die in diesem Befehl enthaltene
Adresse; diese wird sodann in Übereinstimmung mit einem im Wiederholbefehl enthaltenen Kennteil
für jede anschließende Iteration geändert, wobei +1, 0 oder — 1 hinzuaddiert wird. Wiederholfolgen werden
normalerweise beendet, indem sie die vorgesehene Anzahl von Iterationen durchlaufen. Wird
jedoch während der Wiederholoperation eine Auslaßbedingung vorgefunden, dann wird der Inhalt des
Wiederholregisters, der die Anzahl der noch nicht
durchgeführten Iterationen bezeichnet, in eine bestimmte Speicherstelle eingespeichert, worauf der
Auslaßbefehl ausgeführt wird.
Wie zuvor erwähnt wurde, befinden sich die vier Λ-Register sowie die vier B-Register, die durch jedes
Befehlswort bezeichnet werden können, an bestimmten Speicherstellen im Kernspeicher. Im Kernspeicher
befindet sich femer das Befehlsadressenregister P, das aus zwei nebeneinanderliegenden Speicherstellen
besteht, in denen sich die Adresse des nächsten auszuführenden Befehls befindet. Außerdem ist im
Kernspeicher eine Gruppe von vier 7-Bit-Taktregistern
Delta 0, Delta 1, Delta 2 und Delta 5 enthalten, die dazu benutzt werden, die Programmabwicklung
zeitlich zu steuern. Der Inhalt dieser Delta-Register, der zwischen 001 und 100 (oktal)
liegt, wird unter dem Einfluß eines in der D-Zeitgebereinrichtung enthaltenen Oszillators jeweils einmal
pro Millisekunde um Eins verringert. Durch diesen 64 Schritte umfassenden Bereich lassen sich
somit Ereignisse bis zu etwa 62,5 Millisekunden zeitlich steuern.
Das in Fig. 1 gezeigte System enthält außerdem eine Unterbrechungs-Einrichtung, welche die wahlweise
Ausführung eines von acht verschiedenen im Speicher gespeicherten Programmen ermöglicht. Die
Abwicklung der einzelnen Programme erfolgt in einer bestimmten Reihenfolge. Entsprechend ihrem
Einsatz in dem hier dargestellten Datenübertragungssystem sieht die vorliegende Erfindung für jedes
dieser Programme eine besondere Gruppe von Funktionsregistern A und 5 sowie ein Befehlsadressenregister
P vor. Dadurch verringert sich die Anzahl der organisatorischen Befehle, die andernfalls beim
Übergang von einem Programm auf das andere benötigt würden.
Das nachstehend mit /-Register bezeichnete Unterbrechungsstatusregister
ist ein 7-Bit-Flip-Flop-Register und dient dazu, zwischen den acht möglichen
Programmen eine Umschaltung zu bewirken. Durch das Auftreten eines von sieben eine Unterbrechung
veranlassenden Ereignissen wird eine entsprechende Stufe des /-Registers eingestellt; das
unterste Prioritätsniveau erzeugt keine Unterbrechung. Zu Beginn eines Befehlszyklus wird durch
die eingestellte /-Registerstufe mit der höchsten Priorität ein 3-Bit-/C-Register auf einen Wert eingestellt,
der dazu benutzt wird, ein Adreßkennzeichen für die Ansteuerung eines bestimmten P-Registers
im Speicher vorzusehen. Dieses P-Register enthält die Adresse eines in dem mit Vorrang abzuwickelnden
Programm enthaltenen Befehls, so daß die zu diesem Programm gehörenden Befehle abgerufen
werden können. Während der eigentlichen Ausführung eines Befehls wird der Inhalt des /C-Registers
außerdem in Verbindung mit den Befehlskennteilen α und b dazu benutzt, die für dieses Programm
reservierten Register A und 5 anzusteuern. Durch dieses Merkmal kann innerhalb der acht
Hauptprogramme eine Steuerungsübergabe nach Belieben erfolgen, ohne daß dabei für ein Programm
die Gefahr besteht, »außer Tritt zu kommen«; außerdem wird durch dieses Merkmal verhindert, daß der
Inhalt der für ein Programm vorgesehenen Funktionsregister durch ein anderes Programm beeinflußt
wird. Darüber hinaus kann das /-Register zu beliebigen Zeiten durch neue eine Unterbrechung veranlassende
Ereignisse geändert werden, ohne dabei die Auswahl einer Gruppe von Funktionsregistern
während eines Befehlszyklus zu ändern.
Die in dem Kernspeicher enthaltenen Funktionsregister bestehen in den einzelnen Unterbrechungsniveaus jeweils aus folgenden Registern: vier 7-Bit-Registern
AO... A 3, vier 7-Bit-Registern B 0 ... B 3
und einem 14-Bit-BefehlsadressenregisterP, das aus
zwei nebeneinanderliegenden Speicherstellen besteht. In der untenstehenden Tabelle sind in oktaler Darstellung
die Speicheradressen für die zu den einzelnen Unterbrechungs-Niveaus gehörenden Register
aufgeführt. Da für jede Speicheradresse 12 Binärbits erforderlich sind, bestehen die Oktalzahlen jeweils
aus vier Stellen (drei Gruppen zu je 4 Binärbits). Der Bindestrich bedeutet, daß die dazwischenliegenden
Zahlen mit eingeschlossen sind.
IO | Adresse (oktal) | Register | Unterbrechungs niveau (I-Register) |
(niedrigste Priorität) |
0000 bis 0003 0004 bis 0007 0100, 0101 |
AO bis A3 50bis53 P |
0 | _ | |
15 | 0010 bis 0013 0014 bis 0017 0102, 01 03 |
AO bis A3 50 bis S3 P |
1 | |
20 | 0020 bis 0023 0024 bis 0027 0104, 0105 |
.40bis ,43 BO bis 53 P |
2 | |
0030 bis 0033 0034 bis 0037 0106, 0107 |
AO bis A3 BO bis 53 P |
3 | ||
25 | 0040 bis 0043 0044 bis 0047 0110,0111 |
A Obis A 3 BO bis 53 P |
4 | |
30 | 0050 bis 0053 0054 bis 0057 0112, 0113 |
AO bis A 3 50 bis 53 P |
5 | |
35 | 0060 bis 0063 0064 bis 0067 0114, 0115 |
A0 bis A3 50 bis 53 P |
6 | (höchste Priorität) |
0070 bis 0073 0074 bis 0077 0116, 0117 |
A 0 bis A 3 50 bis 53 P |
7 |
Wie sich aus den obenstehenden Angaben ergibt, hängt die Auswahl eines bestimmten A- oder 5-Registers
während der Ausführung eines Befehls von zwei Faktoren ab:
1. von dem bestimmten Programm, zu dem der Befehl gehört, und
2. von dem Wert des Kennteils α oder b, der in dem betreffenden Befehl enthalten ist.
Außerdem ist für jedes Programm ein Befehlsadressenregister P vorgesehen, das die Adressen der
in diesem Programm auszuführenden Befehle nacheinander liefert.
Werden durch zwei oder mehrere eine Unterbrechung veranlassende Ereignisse die entsprechenden
Stufen des I-Registers gleichzeitig eingestellt, so wird von diesem Register bestimmt, welches Programm
mit Vorrang abzuwickeln ist. Die Rechenanlage kann also stets nur durch ein Programm gesteuert
werden, und dieses Programm ist normalerweise dasjenige Programm, welches die höchste
Priorität besitzt. Die eigentlichen die Unterbrechung hervorrufenden Ereignisse, die zur Einstellung der
Stufen des /-Registers dienen, können interner oder externer Natur sein. Wird z. B. der Inhalt eines der
Delta-Register im Speicher bis auf Null verringert (mit Ausnahme von Delta 0), so wird eine bestimmte
Stufe des /-Registers eingestellt. Andererseits wird durch die Beendigung einer Ein-Ausgabe-Daten-
309 510/309
ίο
übertragung zwischen der Rechenanlage und einer externen Einheit gleichfalls eine Stufe des /-Registers
eingestellt, so daß die .Rechenanlage unter dem Einfluß dieser Beendigung ein anderes Programm ausführt.
Zur Einstellung der Stufen des /-Registers können Teile des Befehls selbst benutzt werden.
Andere Unterbrechung veranlassende Ereignisse können programmiert oder in Übereinstimmung mit
dem jeweiligen System vorgesehen werden, in dem die vorliegende Erfindung eingesetzt wird.
In der nachstehenden Tabelle sind die Grundbefehle des Repertoires aufgeführt. Der aus 4 Bits
bestehende Operationsteil / ist oktal dargestellt, wobei die Bits 10... 12 zur unteren Stelle gehören.
Des weiteren werden folgende Bezeichnungen benutzt:
O =
Aa =
der in Klammern angeführte Inhalt des Registers oder der Adresse,
das durch den Kennteil α und das die Steuerung ausübende Unterbrechungsniveau bezeichnete Akkumulatorregister,
das durch den Kennteil α und das die Steuerung ausübende Unterbrechungsniveau bezeichnete Akkumulatorregister,
Bd = das durch den Kennteil b und das die Steuerung ausübende Unterbrechungsniveau bezeichnete
Indexregister,
die aus 12 Bits bestehende Adresse des Operanden, deren untere sechs Bits vom Kennteil y dargestellt werden und deren obere sechs Bits vom Inhalt (Bits 0 ... 5) des Bö-Registers gebildet werden,
die aus 12 Bits bestehende Adresse des Operanden, deren untere sechs Bits vom Kennteil y dargestellt werden und deren obere sechs Bits vom Inhalt (Bits 0 ... 5) des Bö-Registers gebildet werden,
UL = die unteren sieben Bits des [/-Registers.
NI = nächster Befehl,
Yb =
Operationsteil | Bezeichnung | Addiere | Beschreibung |
00 | Anfangswert von (Aa) durch Summe aus (Aa) | ||
Wahlweise Komplementbildung | und (Yb) ersetzt | ||
01 | Die den »l«ern in (Yb) entsprechenden Bitstel | ||
Addiere 1, vergleiche | len von (Aa) werden komplementiert | ||
02 (a = Φ) | (Yb) um 1 erhöhen, wenn Resultat positiver als | ||
Addiere 1 | Ao, NI auslassen | ||
02 (a = 1) | Gerade Paritätskontrolle | (Yb) um 1 erhöhen | |
02 (a = 2) | Ungerade Paritätskontrolle | NI auslassen, wenn (Yb) gerade Parität | |
02 (a = 3) | Vergleiche | NI auslassen, wenn (Yb) ungerade Parität | |
03 | Komplement bilden | NI auslassen, wenn (Aa) = (Yb) | |
04 | Logisches Produkt | (Aa) durch Komplement von (Yb) ersetzen | |
05 | (Ao) durch logisches Produkt aus (Aa) und | ||
In Akkumulator eingeben | (Yb) ersetzen | ||
06 | Index-Auslassung | (Aa) durch (Yb) ersetzen | |
07 | NI auslassen, wenn (Aa) = (Yb); sonst | ||
In Kanal 1 eingeben | addiere 1 zu (Aa) | ||
10 | (Yb) in Kanal 1 eingeben und IsM-Operation | ||
In Kanal 2 eingeben | laut α einleiten | ||
11 | (Yb) in Kanal 2 eingeben und EM-Operation | ||
Kanal 1 abspeichern | laut α einleiten | ||
12 | Kanal 1 bei Yb abspeichern und entsprechend | ||
Kanal 2 abspeichern | Parität Kanal 1 und α auf Auslassung prüfen | ||
13 | Kanal 2 bei Yb abspeichern und entsprechend | ||
In / eingeben | Parität Kanal 2 und α auf Auslassung prüfen | ||
14 (a = Φ) | Stufen des /-Registers wahlweise entsprechend | ||
In / eingeben | den »l«ern von (UL) einstellen | ||
14 (a = 1) | Stufen des /-Registers wahlweise entsprechenc | ||
In B eingeben | den »0«en von (UL) räumen | ||
14 (a = 2) | 6 Bits von (Yb) in untere 6 Stufen von Bb; 0 ir | ||
In B eingeben | obere Stufe von Bb | ||
14 (a = 3) | 6 Bits von (Yb) in untere 6 Stufen von Bb; 1 v. | ||
Akkumulator abspeichern | obere Stufe von Bb | ||
15 | Wiederhole | (Aa) und Yb abspeichern | |
16(a=£3) | wenn NI wiederholbarer Nicht-Ein/Ausgabe | ||
befehl, dann »b y« mal wiederholen | |||
wenn NI = in Kanl 1 eingeben oder in Kanal | |||
eingeben, dann Pufferübertragung von »fc y | |||
Puffersprung | Wörtern übernehmen | ||
16 (a = 3) | wenn Pufferung laut RK = 0 fertig, auf Yb | ||
überspringen | |||
17 (a = Φ, b φ 0) | unbedingter Sprung nach Yb | ||
17 (a = Φ ,b = Φ) | unbedingter Sprung nach Yb, dann soeben | ||
benutzte Stufe des /-Registers räumen | |||
17 (a φ Φ) | wenn (Aa) (Ao), Sprung nach Yb |
Fig. 2 zeigt Einzelheiten des Unterbrechungsstatusregisters /, das zur vorliegenden Erfindung gehört.
In dem dargestellten Ausführungsbeispiel besteht das /-Register aus sieben Kippschaltungsstufen
Il... 17, die zur Umschaltung zwischen acht mögliehen
Unterbrechungsniveaus benutzt werden. Durch das Auftreten eines von sieben verschiedenen eine
Unterbrechung veranlassenden Ereignissen (im untersten Prioritätsniveau wird keine Unterbrechung
erzeugt) wird eine entsprechende Stufe des /-Registers eingestellt. Das /C-Register besteht aus drei
kippschaltungsstufen Icv IC2, Ics. Es erzeugt unter
dem Einfluß der eingestellten, die höchste Priorität aufweisenden Stufe des /-Registers ein binär verschlüsseltes
Zeichen. Zu Beginn eines Befehlszyklus wird das /C-Register zur Bereitstellung eines
Adressenkennzeichens benutzt, das bei der Ansteuerung der Funktionsregister P, A und B für diesen
Befehl mitbenutzt wird.
Durch diesen neuartigen Aufbau kann innerhalb der acht Hauptprogramme eine Steuerungsübergabe
nach Belieben erfolgen, ohne daß dabei für ein Programm die Gefahr besteht, »außer Tritt zu
kommen«, oder daß die Funktionsregister eines Programms von einem anderen Programm beeinflußt
werden.
Es sind acht Prioritätsniveaus oder eine Unterbrechung veranlassende Ereignisse vorgesehen, die
nachstehend — beginnend mit der höchsten Priorität — aufgeführt sind.
1. Unterbrechungsniveau 7
Das Signal »Kanal 1 besonderer Zustand« wird in der Taktphase CP 2 an die NUND-Schaltung 3-10
angelegt, durch deren Ausgangssignal die Stufe/7 eingestellt wird. Dieses Signal tritt stets dann auf,
wenn eine nicht gewollte oder unerwartete EinAusgabe-Operation, wie beispielsweise eine »externe
Funktion« oder »Wechselbedingung«, von der Grenzflächenlogik der Nachrichteneinheit des Real-Time-Rechners
erzeugt wird.
und D 2 positiv, um anzudeuten, daß das dem Unterbrechungsniveau
5 zugeordnete Millisekunden-Taktregister gerade geprüft wird. Zu beachten ist, daß
das Freigabe-Signal des Negators 3-13 auch an anderen NUND-Schaltungen anliegt, deren Funktion
noch nachstehend beschrieben wird.
4. Unterbrechungsniveau 4
Die Stufe/4 wird durch ein Signal der NUND-Schaltung
3-14 m der Taktphase CP 2 stets dann eingestellt, wenn das Signal »Kanal 2 besondere Bedingung«
auftritt, das für den Kanal 2 dieselbe Bedeutung hat wie das Signal »Kanal 1 besondere Bedingung«
für den Kanal 1.
5. Unterbrechungsniveau 3
Die Stufe/3 wird durch die NUND-Schaltung 3-15 während der Taktphase CP 2 eingestellt, wenn auf
dem Kanal 2 eine programmierte Datenübertragungsoperation beendet ist, was durch das Signal »Kanal 2
Operation beendet« angezeigt wird. Während einer Pufferoperation auf dem Kanal 2 wird das RK-Register
bei der Übertragung des letzten Wortes auf 0 verringert, so daß die Stufe/3 durch die NUND-Schaltung
3-53 eingestellt wird.
6. Unterbrechungsniveau 2
Wird das diesem Niveau zugeordnete Millisekunden-Taktregister auf den Inhalt Null geprüft
und dieser Inhalt festgestellt, so liegen an sämtlichen Eingängen der NUND-Schaltung 3-16 positive Signale
an, wodurch die Stufe/2 eingestellt wird. Die Identität dieses Taktregisters wird durch die positiven
Signale Dl und Ό 2 angegeben, während der Inhalt Null durch das über den Negator 3-13 angekoppelte
Befehlssignal »Unterbrechungsstufe einstellen« bezeichnet ist.
7. Unterbrechungsniveau 1
2. Unterbrechungsniveau 6
Das Signal »Kanal 1 Operation beendet« erscheint an der NUND-Schaltung 3-11 und wird in der Taktphase
CP2 ausgeblendet, um die Stufe/6 stets dann
einzustellen, wenn eine programmierte Datenübertragung auf dem Kanal 1 beendet ist und eine weitere
Datenübertragung somit von einem Programm eingeleitet werden kann. Während der Pufferoperation
auf dem Kanal 1 wird der Inhalt des .RX-Registers mit der Übertragung des letzten Wortes auf 0 verringert,
so daß die Stufe/6 durch die NUND-Schaltung 3-52 eingestellt wird.
3. Unterbrechungsniveau 5
Sobald das dem Niveau 5 zugeordnete Millisekunden-Taktregister
den Zählerstand 0 erreicht hat, wird die Stufe/5 durch ein Ausgangssignal der
NUND-Schaltung 3-12 eingestellt. Diese NUND-Schaltung wird zum Teil durch das Befehlssignal
»Unterbrechungsstufe einstellen«, das über den Negator 3-13 angelegt wird, geöffnet; dieses Signal zeigt
an, daß im Taktregister der Zählerstand 0 festgestellt worden ist. Außerdem sind die beiden Signale Ζ5Ϊ
Wie in den Unterbrechungsniveaus 5 und 2 wird die Stufe/1 durch die NUND-Schaltung 3-17 eingestellt,
sobald der Inhalt des diesem Unterbrechungsniveau zugeordneten Millisekunden-Taktregisters
den Wert 0 erreicht hat. Dieses Taktregister wird durch die positiven Signale Dl und 7J2 bezeichnet,
während das Befehlssignal »Unterbrechungsstufe einstellen« andeutet, daß der Inhalt
Null ist. Zu beachten ist, daß die NUND-Schaltungen 3-12, 3-16 und 3-17 nicht alle zur gleichen Zeit
geöffnet werden können, da an ihren Eingängen jeweils eine andere Kombination von Dl- und
D2-Signalen anliegt.
8. Unterbrechungsniveau 0
Dieses Unterbrechungsniveau besitzt die kleinste Priorität der acht Niveaus; für dieses Niveau ist
keine Stufe im /-Register vorgesehen. Sind also sämtliche Stufen des I-Registers geräumt, arbeitet
die Steuerung der Rechenanlage auf dem Niveau 0.
Zu Beginn eines Befehlszyklus werden die Stufen des /C-Registers normalerweise auf einen Zustand
eingestellt, welcher der bis zu diesem Zeitpunkt eingestellten /-Registerstufe mit der höchsten Priorität
entspricht. Die Stufen /Cl, IC 2 und IC 3 erzeugen Signale, welche das eingestellte Unterbrechungsniveau mit der höchsten Priorität in binär verschlüsselter
Form darstellen. Muß das /C-Register auf diesen Zustand eingestellt werden, so wird stets das
Befehlssignal »/ nach IC« erzeugt und über den Negator 3-18 an die NUND-Schaltungen 3-19, 3-20,
3-21 und 3-22 angelegt. Solange dieses Befehlssignal anliegt, werden sämtliche Stufen des /C-Registers in
der Taktphase CP 3 von der NUND-Schaltung 3-19 eingestellt. In der nächstfolgenden Taktphase CP 4
werden die NUND-Schaltungen 3-20, 3-21 und 3-22 geöffnet, um den Zustand des /-Registers zu erfassen
und dabei die entsprechenden Stufen des /C-Registers zu räumen, so daß durch den endgültigen Zustand
des /C-Registers das binär verschlüsselte Zeichen erzeugt wird. Ist z.B. die Stufe/7 eingestellt und
zeigt damit das Unterbrechungsniveau 7 an, so ist das Signal 77 negativ und verhindert damit die öffnung
einer der NUND-Schaltungen 3-20 ... 3-22. Da die Stufen /Cl... IC 3 zu Beginn auf eine binäre
1 eingestellt worden sind, ändert sich ihr Zustand also auch dann nicht, wenn das Befehlssignal
»/ nach IC« und CP 4 anliegen. Die Ausgangssignale /Cl, /C2 und /C3 sind daher positiv und stellen
somit das binär verschlüsselte Zeichen 111 dar, welches den Oktalwert 7 hat. Nimmt man dagegen an,
daß lediglich die Stufe/6 des /-Registers eingestellt ist, so ist das Signal 75 negativ und das Signal 77
positiv, da davon ausgegangen wird, daß die Stufe /7 jetzt geräumt ist. Durch das negative Signal 75 wird
verhindert, daß die NUND-Schaltungen 3-20 und 3-21 ein negatives Signal erzeugen und dadurch die
Stufe/C 3 bzw. /C 2 räumen. Das Signal 75 wird außerdem an die NUND-Schaltung 3-23 angelegt,
die ihrerseits der NUND-Schaltung 3-22 ein positives Signal zuführt. Da das Signal 77 positiv ist, wird
dieses Tor geöffnet und räumt die Stufe/Cl. Der Inhalt des /C-Registers lautet daher 110 und stellt
den Oktalwert 6 in binär verschlüsselter Form dar.
Die Räumung der entsprechenden /C3-Stufen
durch eine andere Gruppe von Stufen des /-Registers erfolgt über die oben angeführten Leitungen.
Als weiteres Beispiel soll der Fall betrachtet werden, in welchem lediglich die Stufe/3 eingestellt ist. In
diesem Fall erzeugt die NUND-Schaltung 3-24 ein positives Ausgangssignal. Da angenommen wird, daß
die Stufen /5 und /4 geräumt sind, liegen an sämtlichen Eingängen zur NUND-Schaltung 3-25 positive
Signale an, so daß dieses Tor ein negatives Ausgangssignal für die NUND-Schaltung 3-21 erzeugt. Die
NUND-Schaltung 3-21 kann daher nicht die Stufe /C 2 räumen. Dagegen sind die Eingangssignale der
NUND-Schaltung 3-20 sämtlich positiv, da alle Stufen /4 ... /7 zu dieser Zeit geräumt sein sollen.
Die Stufe/C 3 wird daher geräumt. Da die Stufe/3 eingestellt und die Stufe/4 geräumt ist, erzeugt die
NUND-Schaltung 3-54 ein negatives Ausgangssignal, wodurch das Ausgangssignal der NUND-Schaltung
3-26 positiv wird. Die Stufe/6 ist geräumt, so daß das Ausgangssignal der NUND-Schaltung 3-23 negativ
ist, wodurch die Öffnung der NUND-Schaltung 3-22 verhindert wird und die Stufe/Cl somit eingestellt
bleibt. Der Inhalt des /C-Registers lautet jetzt 011 und bezeichnet damit das Unterbrechungsniveau 3.
Noch ein weiteres Beispiel dürfte genügen, um die Räumung der /C-Registerstufen entsprechend den
eingestellten Stufen des /-Registers zu veranschaulichen. Ist nur die Stufe/1 eingestellt, dann erzeugt
die NUND-Schaltung 3-27 ein negatives Ausgangssignal, wodurch das Ausgangssignal der NUND-Schaltung
3-26 positiv wird. Dieses positive Ausgangssignal bewirkt in Verbindung mit dem positiven
Signal 75, daß die NUND-Schaltung 3-23 ein negatives Signal erzeugt und damit die Räumung der
Stufe/Cl verhindert. Da die Stufen Il und /3 ge-
räumt sind, ist das Ausgangssignal der NUND-Schaltung 3-24 negativ, wodurch die NUND-Schaltung
3-25 ein positives Signal erzeugt. Ebenso sind auch die Stufen 16 und /7 geräumt, so daß die NUND-Schaltung
3-21 öffnet und die Stufe/C 2 räumt. In gleicher Weise sind sämtliche Eingangssignale der
NUND-Schaltung 3-20 positiv, wodurch die Stufe /C 3 geräumt wird und der Inhalt des /C-Registers
nunmehr 001 lautet. Befindet sich keine der Stufen des /-Registers im Einstellzustand, dann werden also
sämtliche NUND-Schaltungen 3-20 ... 3-22 geöffnet und erzeugen negative Ausgangssignale, wodurch
sämtliche Stufen des /C-Registers geräumt werden. Wie oben gezeigt wurde, wird das Register / wahlweise
durch das Auftreten eines eine Unterbrechung veranlassenden Ereignisses eingestellt. Treten zwei
oder mehrere derartige Ereignisse auf, so daß sich die entsprechenden Stufen des /-Registers zur selben
Zeit im Einstellzustand befinden, so kann die Steuerung nur von dem Programm übernommen werden,
das die höchste Priorität aufweist. Dies bedeutet, daß ein anschließend auftretender Unterbrechungszustand,
der eine höhere Priorität aufweist, die Steuerung von einem vorher angelassenen Programm
einer niedrigeren Priorität übernimmt. Nach Ausführung eines Befehlszyklus findet gewöhnlich eine
Steuerungsübergabe bei den Prioritätsprogrammen statt; ausgenommen hiervon sind einige besondere
Fälle, die nachstehend beschrieben werden. Als Beispiel soll angenommen werden, daß nur auf die
Stufe/3 eingestellt ist und das laufende Programm die Priorität 3 aufweist. Der Inhalt des /-Registers
lautet zu dieser Zeit 0000100. Während der Abwicklung des Programms mit der Priorität 3 kann
das Ereignis, welches die Unterbrechung für das zweite Prioritätsniveau veranlaßt, auftreten. Der Inhalt
des /-Registers ändert sich dann in 0000110, da jetzt auch die Stufe/2 eingestellt ist. Das Programm
des dritten Prioritätsniveaus übernimmt aber auch weiterhin die Steuerung, wenn es noch auszuführende
Befehle enthält, da durch den Einstellzustand der Stufe/3 das /C-Register auf den Wert 011 eingestellt
bleibt, und zwar unabhängig von der Tatsache, daß die Stufe /2 jetzt ebenfalls eingestellt ist. Es soll
jetzt angenommen werden, daß kurze Zeit später, während gerade ein Befehl des Programms der dritten
Priorität ausgeführt wird und beide Stufen/3 und /2 eingestellt sind, das die Unterbrechung für
das sechste Prioritätsniveau veranlassende Ereignis auftritt. Der Inhalt des /-Registers wird jetzt
0100110, und die Steuerung der Rechenanlage geht unmittelbar nach der Ausführung des zum Programm
der dritten Priorität gehörenden Befehls automatisch auf das Programm der sechsten Priorität über, vorausgesetzt,
daß dieser Befehl einen Nichtauslaß-, Nichtsprung- oder Nichtwiederholoperationsteil enthält.
Der Inhalt des /C-Registers lautet für das Programm der sechsten Priorität 110; dieser Inhalt wird
durch den Einstellzustand der Stufe/6 erhalten, ob-
wohl auch die Stufen /3 und 72 eingestellt sind.
Dies ergibt sich aus der Tatsache, daß die NUND-Schaltung 3-20 oder 3-21 infolge des negativen Signals
7 δ die ihr zugeordnete /C-Stufe nicht räumen kann. Außerdem erzeugt die NUND-Schaltung 3-23
unter dem Einfluß des negativen Signals 7<> ein positives
Signal, das in Verbindung mit dem positiven Signal 77 der Stufe 77 die NUND-Schaltung 3-22
öffnet, um die Stufe IC 1 zu räumen. Die eingestellten Stufen 73 und /2 können also den Inhalt des 7C-Registers
zu dieser Zeit nicht beeinflussen.
Sobald ein Programm einer beliebigen Priorität vollständig abgewickelt ist, wird die für dieses Programm
eingestellte Stufe des 7-Registers geräumt, so daß die Steuerung nunmehr an das Programm
des nächsthöheren eingestellten Prioritätsniveaus abgegeben werden kann. Zur Bestimmung der Bitkonstellation
im 7C-Register ist eine Gruppe von NUND-Schaltungen 3-28 ... 3-34 vorgesehen. So
erhält die NUND-Schaltung 3-28 beispielsweise Eingangssignale von den Einstellausgangsklemmen der
Stufen 7C3, 7C2 und 7Cl, so daß die im 7C-Register
enthaltene Bitkonstellation 111 die Öffnung der NUND-Schaltung 3-28 beim Auftreten eines bestimmten
Zustandes bewirkt. Die übrigen NUND-Schaltungen 3-29 ... 3-33 sprechen ebenfalls jeweils
auf eine andere Kombination von 7C-Registerstufen an, um die Räumung der ihnen zugeordneten 7-Registerstufe
nach Abwicklung eines gerade auf diesem Prioritätsniveau ausgeführten Programms zu ermöglichen.
Die eigentliche Räumung einer 7-Stufe erfolgt mit der Erzeugung des Befehlssignals »Unterbrechung
beenden«, das über den Negator 3-35 angekoppelt wird. Dieses Befehlssignal wird unter dem
Einfluß der Ausführung eines Sprungbefehls erzeugt, der einen Operationsteil 17 enthält und dessen Kennteile
α und b jeweils gleich 0 sind. Ein solcher Befehl ist am Ende eines jeden Programms der einzelnen
Unterbrechungsniveaus vorgesehen. Zur Veranschaulichung soll in dem oben angeführten Beispiel angenommen
werden, daß das Unterbrechungsprogramm mit einem Sprungbefehl, dessen Kennteile α und b jeweils 0 sind, zu Ende geht. Das Befehlssignal
»Unterbrechung beenden« wird erzeugt und sämtlichen NUND-Schaltungen 3-28 .. . 3-34
zugeführt. Da der Inhalt des 7C-Registers jedoch 110 lautet, wird nur die NUND-Schaltung 3-29 in der
Taktphase CP 4 geöffnet, um die Stufe 76 zu räumen. Die Stufen 7 3 und 72 bleiben eingestellt, so daß der
Inhalt des 7C~Registers jetzt 011 wird und das Programm des dritten Prioritätsniveaus wieder weiter
abgewickelt wird. Wird von hier an keine weitere 7-Registerstufe einer höheren Priorität eingestellt, so
werden die übrigen Befehle des Unterbrechungsprogramms 3 ausgeführt. Der letzte Befehl dieses
Programms ist gleichfalls ein Sprungbefehl, dessen Kennteile α und b gleich 0 sind; dieser Befehl veranlaßt
die Erzeugung des Befehlssignals »Unterbrechung beenden«. Zu dieser Zeit kann infolge der
im 7C-Register befindlichen Konstellation 011 lediglich die NUND-Schaltung 3-32 geöffnet werden. Das
am Ausgang dieser NUND-Schaltung auftretende negative Signal bewirkt die Räumung der Stufe 7 3,
so daß jetzt nur noch die Stufe 7 2 eingestellt ist. Der Inhalt des 7C-Registers wird daher 0000010,
worauf das Programm des zweiten Unterbrechungsniveaus die Steuerung übernimmt. Treten während
der Abwicklung des für das zweite Unterbrechungsniveau vorgesehenen Programms keine Ereignisse
auf, durch welche eine Unterbrechung mit höherer Priorität ausgelöst wird, dann geht dieses Programm
mit einem Sprungbefehl zu Ende, nach dessen Aus-
. 5 führung wiederum das Befehlssignal »Unterbrechung beenden« erzeugt wird. Diesmal wird die NUND-Schaltung
3-33 geöffnet, da sich im 7C-Register die Bitkonstellation 010 befindet, wodurch die Stufe 72
geräumt wird. Nachdem jetzt sämtliche Stufen des
ίο 7-Registers geräumt sind, ist das 7C-Register auf den
Wert 0000000 eingestellt, der das Unterbrechungsprogramm 0 bezeichnet. Es wird also jetzt das dem
Prioritätsniveau 0 zugeordnete Programm unverzüglich ausgeführt, sofern nicht eine Stufe des 7-Registers
durch irgendein Ereignis einer höheren Priorität eingestellt wird.
Im vorliegenden Ausführungsbeispiel sind außerdem Vorkehrungen getroffen, um den Inhalt des
I-Registers mit Hilfe eines gerade ausgeführten Befehls
zu ändern. So können beispielsweise der Kennteil y und das untere Bit des Kennteils b eines Befehlswortes
zur Einstellung der 7-Stuf en entsprechend den in den Kennteilen enthaltenen binären Einsen
benutzt werden. Die NUND-Schaltungen 3-36 ...
3-42 sprechen jeweils auf eine andere Stufe des l/L-Registers an. Wird das Befehlssignal »E/L
nach 7« über den Negator 3-43 angelegt, so stellen diejenigen NUND-Schaltungen 3-36 ... 3-42, die in
ihrer entsprechenden i/-Stufe eine 1 abtasten, die ihnen zugeordnete 7-Stufe auf den Wert 1 ein. Das
Befehlssignal »E/L nach 7« wird erzeugt, wenn der Operationsteil des Befehlswortes gleich 14 und der
Kennteil α gleich 00 ist. Andererseits können aber auch an Stelle der im E/L-Register befindlichen
Einsen die dort enthaltenen Nullen in das 7-Register überführt werden. Die NUND-Schaltungen 3-44 ...
3-50 sprechen auf die im E/L-Register enthaltenen Bits 0 bei Erzeugung des über den Negator 3-51 angelegten
Befehlssignals »Ü'L nach 7« an; dieser Befehl tritt dann auf, wenn / gleich 14 und α gleich 1.
F i g. 3 zeigt Einzelheiten des 5-Registers, welches eine 12-Bit-Adresse zwecks Ansteuerung des Speichers
enthält. Dieses Register ist zweckmäßig in zwei Teile unterteilt, SL (Stufen 50... 55) und SU
(Stufen 56. . .511). Das 5-Register kann Information von verschiedenen Quellen erhalten. Eine
Gruppe von NUND-Schaltungen 7-10 ... 7-15 dient zur Übertragung von Information vom Z-Register
in das 5E/-Register, wenn in der Taktphase CPl das Befehlssignal »Z nach SU« erzeugt wird. Ebenso
wird von den NUND-Schaltungen 7-17 ... 7-22 ein am Ausgang der Addierstufen 0 ... 5 auftretender
6-Bit-Wert in das 5E/-Register überführt, wenn das Befehlssignal »Addierer nach SU« auftritt. Die
NUND-Schaltungen 7-24 ... 7-29 werden geöffnet, um den Inhalt von UL (Stufen 0 ... 5) nach SL zu
überführen, wenn das Befehlssignal »E/L nach SL« erzeugt wird.
Außerdem sind Mittel vorgesehen, um die Kennteile α und b des Befehlswortes in das 5L-Register
zu transportieren. Die NUND-Schaltungen 7-31 und 7-32 werden durch das Befehlssignal »α nach 5«
geöffnet und sprechen dabei auf den in der Stufe U9 bzw. i/8 befindlichen Wert an, um den Kennteil
α nach 51 bzw. 50 zu überführen. Diese beiden Stufen des 5-Registers können also auf eine der
Binärkombinationen 00, 01, 10 oder 11 eingestellt werden, die, sofern 52 geräumt ist, den Oktalwert
309 510/309
O, 1, 2 bzw. 3 darstellen. Die NUND-Schaltungen
7-34 und 7-35 sprechen auf die in den Stufen Ul
und U 6 befindlichen Bits des Kennteils b an, um diese Bits beim Auftreten des Befehlssignals
»Z> nach 5« in die Stufen 51 und 50 zu überführen.
Durch dieses Befehlssignal wird außerdem der Negator 7-36 zur Einstellung der Stufe 5 2 veranlaßt,
so daß die Binärkombination des zu dieser Zeit in SL eingelesenen 3-Bit-Wertes 100, 101, 110 oder
111 (4, 5, 6 oder 7 oktal) lautet.
Wird während der Ausführung des vorliegenden Befehlswortes ein Speicherzyklus zwecks Ansteuerung
des A- oder B-Registers eingeleitet, so wird die Adresse des betreffenden Registers stets durch das
Unterbrechungsniveau modifiziert, dessen Programm zu dieser Zeit die Steuerung ausübt. Der Inhalt des
/C-Registers wird über die NUND-Schaltungen 7-38, 7-39 und 7-40 nach SL überführt, um die Stufen
53, 54 und SS auf die höchste Unterbrechungspriorität einzustellen. Die Übertragung des Kenn-
teils α oder b nach 50... 52 erfolgt also stets zusammen
mit der Übertragung von IC nach 53 ... 55, so daß das Register Al bei seiner Ansteuerung
während der Unterbrechungspriorität 2 beispielsweise eine andere Adresse hat als bei der Ansteuerung
während der Unterbrechungspriorität 5. Es soll beispielsweise angenommen werden, daß der Kennteil a
eines Befehls den Binärwert 01 hat und daß dieser Befehl sowohl im Programm des Unterbrechungsniveaus 2 als auch im Programm des Unterbrechungs-
niveaus 5 auftritt. Wird dieser Befehl während der Unterbrechungspriorität 2 ausgeführt, so werden die
Stufen 51 und SO bei der Übertragung von α nach S auf den Wert 01 eingestellt, während die Stufen S 5,
54 und S3 bei der Übertragung von IC nach S auf
den Binärwert 010 (Oktalwert 2) eingestellt werden. Da die Stufen S 2 und S 6 ... SIl geräumt bleiben
(das S-Register wurde zu Beginn durch ein an der NODER-Schaltung 7-42 anliegendes und von der
NUND-Schaltung 7-43 ausgeblendetes Signal geräumt), lautet die im S-Register befindliche Speicheradresse
somit 0022 (oktal). Wird dagegen ein Befehl mit demselben Kennteil α während der Unterbrechungspriorität
5 ausgeführt, so lautet die Speicheradresse des ^-Registers 0052, da sich im /C-Register
der Oktalwert 5 befindet, der im Falle dieses Prioritätsniveaus in die Stufen 53... 55 transportiert
wird. Der im /C-Register enthaltene Wert dient also zur Ansteuerung eines Funktionsregisters A
oder B, welches ausschließlich zu dem die Steuerfunktion ausübenden Prioritätsniveau gehört und
nicht dasselbe Funktionsregister ist, das während eines anderen Prioritätsprogramms benutzt wird,
obwohl der Kennteil α oder b in beiden Fällen derselbe ist.
Wie zuvor erwähnt wurde, wird das zum Erlangen der Adresse des nächsten Befehls benutzte Befehlsadressenregister
P durch das Unterbrechungsniveau bezeichnet, welches gerade die Steuerfunktion ausübt.
Da ein Befehlswort in zwei nebeneinanderliegenden Speicherstellen aufbewahrt wird, muß der Speicher
zweimal hintereinander angesteuert werden, um einen Befehl zu entnehmen und zwecks Ausführung
in das EZ-Register zu leiten. Die NUND-Schaltungen 7-44, 7-45 und 7-46 werden geöffnet, um den Inhalt
des /C-Registers beim Auftreten eines der an der NODER-Schaltung 7-47 anliegenden Befehlssignale
»P nach S« oder »P + 1 nach S« in die Stufen Sl, S2 und S3 zu leiten. Das Ausgangssignal der
NODER-Schaltung 7-47 liegt außerdem an der NUND-Schaltung 7-48 an, die in der Taktphase
CP1 geöffnet wird, um die Stufe S 6 einzustellen.
Durch die Einstellung der Stufe S 6 wird bewirkt, daß die höchsten Oktalstellen der P-Registeradresse
stets 01 sind, da die in St/ befindliche binäre Bitkonstellation
000001 lautet. Die Werte der beiden niedrigsten Oktalstellen hängen vom Inhalt des
/C-Registers und außerdem davon ab, ob aus dem Speicher die untere oder obere Hälfte der nächsten
Befehlsadresse zwecks Überführung in das !/-Register
entnommen wird. Es soll z. B. angenommen werden, daß die Rechenanlage auf dem Unterbrechungsniveau
2 arbeitet, so daß sich die beiden Hälften der nächsten Befehlsadresse in den Speicherstellen
0104 und 0105 befinden, die für dieses Programm als P-Register dienen. Im /C-Register befinden
sich die Binärbits 010 (Oktalwert 2). Die erste anzusteuernde Speicheradresse ist die Adresse 0104,
in der sich die untere Hälfte der nächsten Befehlsadresse befindet. Anschließend wird die Adresse 0105
angesteuert, in der sich die obere Hälfte der nächsten Befehlsadresse befindet. Während des ersten Speicherzugriffszyklus
wird das Befehlssignal »P nach S« erzeugt, wodurch die Stufen S 6 und S 2 eingestellt
werden. Dadurch wird in das S-Register der Oktalwert 0104 eingegeben, der dort zur Entnahme der
unteren Hälfte der nächsten Befehlsadresse zwecks Einspeicherung in UL benutzt wird. Am Schluß
dieses Zyklus wird das S-Register geräumt und das Befehlssignal »P + 1 nach S« während des nächsten
Speicherzugriffszyklus erzeugt. Durch dieses Befehlssignal wird die NODER-Schaltung 7-47 geöffnet, um
die Stufen S 6 und S 2 erneut einzustellen. Das Befehlssignal »P + 1 nach 5« wird jedoch außerdem
direkt übertragen, um die Stufe SO einzustellen und damit die Oktaladresse 0105 in das S-Register zu
leiten, die um 1 höher ist als die Adresse 0104. In dieser Speicherstelle befindet sich die obere Hälfte
der nächsten Befehlsadresse, die sodann in Verbindung mit der zuvor entnommenen unteren Hälfte
dazu benutzt wird, den nächsten Befehl selbst zu entnehmen. Durch das Befehlssignal »P nach S«
wird also in das S-Register stets eine geradzahlige Oktaladresse in Abhängigkeit von dem durch den
Inhalt des /C-Registers bezeichneten vorliegenden Unterbrechungsniveau eingegeben. Anschließend
wird durch das Befehlssignal »P + 1 nach S« die gleiche Oktaladresse in das S-Register überführt, die
jedoch infolge der direkten Einstellung der Stufe SO durch das Befehlssignal um 1 höher ist. Als weiteres
Beispiel soll angenommen werden, daß das Programm mit der Unterbrechungspriorität 6 die Steuerfunktion
ausübt, so daß die Stufen S6, S3 und S2
unter dem Einfluß des Befehlssignals »P nach 5« auf den Oktalwert 0114 (000001001100) eingestellt werden.
Durch das nächste Befehlssignal »P + 1 nach S« werden dann wiederum sämtliche der zuvor erwähnten
Stufen und außerdem die Stufe SO eingestellt, so daß die niedrigste Oktalstelle 4 um 1 erhöht wird,
also jetzt den Wert 5 hat.
Das S-Register wird außerdem auch dann geräumt und auf eine bestimmte Adresse eingestellt,
wenn der Zählerstand eines Delta-Taktregisters verringert werden soll. Für jedes der vier Delta-Taktregister
wird das Befehlssignal »54, 56 einstellen«
(Fig. 20) zwecks Einstellung der Stufen 54 und S6
angekoppelt, so daß die drei höchsten Oktalstellen der Adresse den Wert 012 haben. Der Wert der
niedrigsten Oktalstelle wird durch den bei Erzeugung des Befehlssignals »D-Taktregister weiterschalten«
in die Kippschaltungen 5-12 und 5-11 übertragenen Wert bestimmt. Es soll beispielsweise
angenommen werden, daß diese Kippschaltungen während der Zeit, in welcher das Befehlssignal
»Z)-Taktregister weiterschalten« erscheint, auf den Wert 00 eingestellt sind. Die NUND-Schaltung 5-17
wird geöffnet, um die Kippschaltung 5-11 einzustellen, so daß die Bitkonstellation nunmehr 01
lautet. Die NUND-Schaltung 5-17 stellt außerdem die Stufe 50 ein, so daß die unterste Oktalstelle des
S-Registers den Wert 1 hat. Es wird also die Speicheradresse 0121 angesteuert, die dem Delta-Register
1 gehört. Ungefähr 1 Millisekunde später wird das Befehlssignal »D-Taktregister weiterschalten«
erneut erzeugt, um die NUND-Schaltung 5-15 zu öffnen und damit die Kippschaltung 5-12 ao
einzustellen, so daß der Wert nunmehr 11 lautet. In F i g. 7 wird das Ausgangssignal der NUND-Schaltung
5-15 zur Einstellung der Stufe 51 benutzt, so daß die unterste Oktalstelle den Wert 2 hat; die
im 5-Register befindliche Gesamtzahl lautet 0122. Diese Adresse dient zur Ansteuerung des Registers
Delta 2 im Speicher. Mit der erneuten Erzeugung des Befehlssignals »D-Taktregister weiterschalten« wird
die NUND-Schaltung 5-16 geöffnet, um die Kippschaltung 5-11 zu räumen, so daß der Wert jetzt 10
beträgt. In F i g. 7 wird das Signal »D1 räumen« der NUND-Schaltung 5-16 zur Einstellung der Stufen
50 und 51 benutzt, so daß die niedrigste Oktalstelle der Adresse 3 ist. Es wird also jetzt das Register
Delta 5 angesteuert, dessen Speicheradresse 0123 lautet. Eine Millisekunde später wird das Befehlssignal
»D-Taktregister weiterschalten« erzeugt, um die Kippschaltung 5-12 zu räumen, so daß der
Wert 00 ist. Für diesen Zustand wird weder die Stufe 50 noch die Stufe 51 eingestellt, so daß die niedrigste
Oktalstelle des 5-Registers den Wert 0 hat, wodurch das Delta-Register 0 angesteuert wird, dessen Speicheradresse
0120 lautet.
45
Arbeitsweise
Zur Veranschaulichung der Arbeitsweise der vorliegenden Erfindung, d. h. der für die einzelnen Unterbrechungs-Prioritätsniveaus
jeweils gesondert vorgesehenen Funktionsregister A, B und P, wird nunmehr
die Ausführung eines typischen Befehls, wie beispielsweise eines Addierbefehls (/ = 00), beschrieben.
Zum Zweck der Beschreibung soll dabei folgendes angenommen werden: 1. Der Addierbefehl befindet
sich in dem zum Unterbrechungsniveau 6 gehörenden Programm. 2. Die Adresse dieses Befehls
befindet sich im Speicher in den Speicherstellen 2500 und 2501 (oktal). 3. Der Kennteil α des Befehls
ist 01 und der Kennteil b 10. 4. Der Kennteil y lautet 32 (oktal). In der nachstehenden Tabelle sind
die zur Entnahme und Ausführung dieses Befehls erforderliche Anzahl von Speicherzyklen sowie die
in diesen Zyklen jeweils ausgeführten Operationsschritte angeführt, wobei NI den nächsten Befehl
bezeichnet.
Speicherzyklus | Operationsschritt |
5CO | NI-Adresse (untere Hälfte) |
abrufen | |
5Cl | iV7-Adresse (obere Hälfte) abrufen |
5C2 | NI (untere Hälfte) abrufen |
5C3 | NI (obere Hälfte) abrufen |
5C4 | Inhalt des B-Registers abrufen |
5C5 | Operand von Yb abrufen |
5C6 | Inhalt des A -Registers abrufen, |
ändern und rückspeichern |
F i g. 4 zeigt im einzelnen die in den Speicherzyklen 0 ... 6 durchgeführten Arbeitsschritte. Für
den Addierbefehl ist der Speicherzyklus 7 nicht erforderlich; der Befehlszyklus ist mit dem Ablauf des
Speicherzyklus 6 beendet. Der Inhalt der verschiedenen Register ist in den einzelnen Speicherzyklen
jeweils durch eine Rechteckwelle dargestellt. Ist die Wellenform eines Registers zu einer bestimmten Zeit
beispielsweise niedrig, so bedeutet dies, daß das Register leer ist. Das in F i g. 4 oben dargestellte Zeitdiagramm
für die Zeitabschnitte Γ0 ... Γ 7 gilt für alle Speicherzyklen.
Es soll angenommen werden, daß sämtliche Stufen des Befehlsschrittzählers geräumt sind, so daß das
positive Signal 5C0 erzeugt wird. Mit der Einstellung
der Kippschaltung 10-10 wird die NUND-Schaltung 11-10 durch das Signal JO geöffnet, um zunächst das
/C-Register in der Taktphase CP 3 zu räumen und sodann in der Taktphase CP 4 das höchste Prioritätsniveau
des /-Registers nach IC zu leiten. Nimmt man an, daß die zu dieser Zeit eingestellte Stufe 7 6
die höchste Priorität hat, so befindet sich am Schluß des Zeitabschnittes TO der Wert 110 im /C-Register.
Während des Zeitabschnittes TX wird das Z-Register zunächst in der Taktphase CP 4 durch die NUND-Schaltung
11-15 geräumt; anschließend wird in der nächsten Taktphase CPl der Oktalwert +2 in das
Z-Register eingedrückt. Außerdem wird im Zeitabschnitt Π in der Taktphase CP 4 der frühere Inhalt
des 5-Registers durch die NUND-Schaltung 18-10 entfernt. Während Tl veranlaßt die NUND-Schaltung
11-12 die Einspeicherung des Oktalwertes 0114 in das 5-Register in der Taktphase CPl.
Dieser Oktalwert ist die Speicheradresse des für das Unterbrechungsniveau 6 vorgesehenen Befehlsadressenregisters
P, welches die untere Hälfte der nächsten Befehlsadresse enthält. Außerdem werden im Zeitabschnitt
Tl sämtliche Stufen des Z-Registers durch die NODER-Schaltung 10-30 auf den Wert 1 in der
Taktphase CP 2 eingestellt, worauf die NUND-Schaltung 11-11 in der nächsten Taktphase CP 3 den Wert
4- 2 vom Z-Register in das ΛΓ-Register überträgt,
Während des Zeitabschnittes TO des Speicherzyklus 5CO erzeugt der Negator 18-11 ein Signal,
wodurch die Speicher-Lese- und -Wiedereinschreiboperation beginnt; außerdem wird die Kippschaltung
9-14 von der NUND-Schaltung 18-12 eingestellt, so daß der Befehlsschrittzähler zu den entsprechenden
Zeiten weitergeschaltet wird. Der Negator 10-31 bewirkt außerdem die Räumung des Z-Registers in der
Taktphase CP 4, so daß dieses Register die untere Hälfte der nächsten Befehlsadresse aufnehmen kann,
wenn diese aus der Speicherstelle 0114 herausgelesen
wird. Diese untere Hälfte der nächsten Befehlsadresse hat den Oktalwert 076 und wird von den Speicher-Leseverstärkem
in das Z-Register geleitet. An dieser
Stelle sei darauf hingewiesen, daß sich der Wert O stets in der Position 6 der Speicherstellen des P-Registers
befindet.
Mit der Einstellung der Kippschaltung 10-14 beginnt der Zeitabschnitt Γ 4, und die NUND-Schalrung
10-22 räumt die Kippschaltung 19-14. Dies geschieht zu Beginn jedes Zeitabschnittes Γ4 automatisch.
Sobald jedoch das positive Signal Γ 4 erscheint, stellt die NUND-Schaltung 18-13 die Kippschaltung
19-14 erneut ein, so daß die in den Speicher wiedereingeschriebene Information vom Ausgang des Addierers
kommt. Zu der Zeit, in welcher die Information wieder in den Speicher eingeschrieben wird,
spricht der Addierer auf den im Z-Register befindlichen Oktalwert 076 sowie auf den im X-Register
befindlichen Oktalwert 002 an und bildet aus diesen beiden Werten die Summe 000 (oktal), welche die
untere Hälfte der Adresse des zu entnehmenden und auszuführenden Addierbefehls darstellt. Normalerweise
ist 076 + 002=100. Während des Speicherzyklus 5C0 wird jedoch der Ausgang 26 des Addierers
gesperrt, um sicherzustellen, daß die untere Hälfte der Adresse positiv bleibt. Während des Zeitabschnittes
T 6 wird die NUND-Schaltung 11-13 geöffnet, um zunächst das t/L-Register in der Taktphase
CP 3 zu räumen und dann die Signale der Ausgänge 2° ... 25 des Addierers (sowie das in der
Stufe Z 6 befindliche Bit 0) in der Taktphase CP 4 in das i/L-Register zu leiten. Am Schluß des Speicherzyklus
SC 0 enthalten also die Stufen 0 ... 5 von UL den Oktalwert 00, während die Stufe 6 von UL eine
binäre 0 enthält. Außerdem wird die Übertrag-Kippschaltung 19-17 in der Taktphase CP 2 während des
Zeitabschnittes T 6 durch die NUND-Schaltung 18-14 rückgestellt.
Während des Zeitabschnittes Γ 7 wird die NUND-Schaltung 11-14 geöffnet, um festzustellen, ob bei
der Addition der in den Registern Z und Z enthaltenen Zahlen ein Übertrag 1 in der Bitstelle 25 gebildet
wird. Wenn dies der Fall ist, wird die NUND-Schaltung 19-18 in der Taktphase CP 4 geöffnet, um
die Kippschaltung 19-17 einzustellen, so daß dieser Übertrag zur Bitstelle 2° der oberen Hälfte der nächsten
Befehlsadresse, die während des nächsten Speicherzyklus SC1 abgerufen wird, hinzuaddiert werden
kann. Mit dem erneuten Beginn des Zeitabschnittes Γ0 und der dabei auftretenden Überlappung mit dem
Zeitabschnitt T 7 wird die NUND-Schaltung 18-15 geöffnet, um den Befehlsschrittzähler weiterzuschalten,
so daß das Signal 5Cl positiv wird. 5C0 wird daraufhin negativ, womit der erste Speicherzyklus
dieses Befehlszyklus beendet ist.
Wie F i g. 4 zeigt, wird der Oktalwert 076 während des Speicherzyklus 5Cl in der Taktphase CP 4 durch
die NUND-Schaltung 12-10 aus dem Z-Register entfernt, so daß die NUND-Schaltung 12-12 den Oktalwert 001 in der nächsten Taktphase CPl in dieses
Register leiten kann; dies bedeutet, daß die Stufe ZO
eingestellt ist, während die StufenZl ... Z6 geräumt
bleiben. Dieser Fall tritt jedoch nur dann auf, wenn die Übertrag-Kippschaltung 19-17 im Speicherzyklus
5C0 eingestellt worden war. In dem hier beschriebenen Beispiel trifft dies zu, da bei der Addition
der beiden Oktalwerte 02 und 76 ein Übertrag 1 von der zweitniedrigsten Oktalstelle (von der Bitstelle
25 de Addierers) gebildet wird. Außerdem wird von der NUND-Schaltung 18-10 im Zeitabschnitt Tl
des Speicherzyklus 5Cl die Speicheradresse 0114 aus dem 5-Register entfernt, um Platz zu machen für die
Aufnahme der P-Registeradresse 0115, welche die obere Hälfte der nächsten Befehlsadresse für das
Unterbrechungsniveau 6 enthält. Die NUND-Schaltung 12-11 wird also im Zeitabschnitt Γ 2 geöffnet,
um das Befehlssignal »P + 1 nach 5« zu erzeugen, wodurch die Adresse 0115 in das 5-Register geleitet
wird. Außerdem werden zu dieser Zeit sämtliche Stufen des X-Registers von der NODER-Schaltung
10-30 auf den Wert 1 in der Taktphase CP 2 eingestellt. In der nächsten Taktphase CP 3 wird von der
NUND-Schaltung 12-11 der im Z-Register befindliche Wert +1 in das Z-Register übertragen. Während
T 3 wird die Speicheroperation vom Negator 18-11 erneut eingeleitet, während der Negator 10-31
den zuvor in das Z-Register übertragenen Wert +1 entfernt, um dieses Register für die Aufnahme der
oberen Hälfte der nächsten Befehlsadresse aus der Speicherstelle 0115 vorzubereiten. Diese obere Hälfte
hat den Oktalwert 24.
Mit der Einleitung des Zeitabschnittes Γ 4 durch die NUND-Schaltung 10-22 wird außerdem die Kippschaltung
19-14 rückgestellt. Die NUND-Schaltung , 18-13 wird jedoch geöffnet, um die Kippschaltung '
19-14 anschließend wieder einzustellen, so daß der Ausgang des Addierers im Speicherzyklus SCl wieder
in den Speicher eingeschrieben werden kann. Da der Addierer auf den im Z-Register befindlichen
Wert 24 und den im Z-Register befindlichen Wert 01 anspricht, stellt sein Ausgang somit die Summe 25
dar. Dieser Ausgang des Addierers bleibt so lange erhalten, wie sich im Z-Register der Wert 24 und im
Z-Register der Wert 01 befindet, wobei die Summe 25 während des Wiedereinschreibschrittes des Speicherzyklus
SC1 in die Speicheradresse 0115 wiedereingeschrieben
wird. Während des Zeitabschnittes Γ 6 wird die Kippschaltung 19-17 in der Taktphase
CP 2 von der NUND-Schaltung 18-14 rückgestellt, während im Zeitabschnitt T 7 die NUND-Schaltung
18-15 während der Überlappung von Γ0 und CP 2 geöffnet wird, um den Befehlsschrittzähler auf 5C2
weiterzuschalten.
Während des Zeitabschnittes Tl des Speicherzyklus 5C2 wird der frühere Inhalt (0115) des
S-Registers durch die NUND-Schaltung 18-10 entfernt. Mit Beginn des Zeitabschnittes Γ 2 wird die
NUND-Schaltung 13-10 geöffnet, um in der Taktphase CP1 den Inhalt des Z7L-Registers in das SL-Register
und den Ausgang des Addierers nach SU zu leiten. SL enthält also jetzt den Oktalwert 00,
während SU den Oktalwert 25 aufnimmt. Betrachtet man die im 5-Register befindliche Adresse in ihrer
Gesamtheit, so hat diese den Wert 2500 und bezeichnet damit die Speicherstelle, in der sich die untere
Hälfte des hier beschriebenen Addierbefehls befindet. Außerdem enthalten die P-Speicherstellen 0115
und 0114 des Speichers, aus denen der Wert 2476 entnommen wurde, jetzt ebenfalls den Wert 2500
(wobei von jeder Speicherstelle nur die Positionen 0 ... 5 berücksichtigt werden, da sich in der Position
6 eine binäre 0 befindet).
Während des Zeitabschnittes Γ 3 leitet der Negator
18-11 die Speicher-Lese- und -Schreiboperation ein, während der Negator 10-31 das Z-Register
räumt, um dieses auf die Aufnahme der unteren Hälfte des Addierbefehls vorzubereiten. Diese untere
Hälfte enthält den Kennteil y des Befehls sowie das in der unteren Stelle befindliche Bit des Kennteils b.
23 2^
Zum Zweck der Beschreibung ist angenommen wor- die NODER-Schaltung 10-30 sämtliche Stufen des
den, daß der Kennteil y den Oktalwert 32 hat, wäh- Z-Registers auf den Wert 1 ein. Während des Zeitrend
das in der unteren Stelle des Kennteils b be- abschnittes Γ3 leitet der Negator 18-11 die Speicherfindliche
Bits den Wert 0 hat. Wie Fig. 4 zeigt, wird Lese- und -Schreiboperation ein, während der Nealso
der Wert 032 aus der Speicherstelle 2500 des .5 gator 10-31 das Z-Register räumt, um dieses für die
Speichers in das Z-Register übergeführt. Im Zeit- Aufnahme des Inhaltes des B-Registers, dessen
abschnitt Γ 6 wird UL in der Taktphase CP 3 von Adresse 0066 ist, vorzubereiten. Zum Zweck der Beder
NUND-Schaltung 13-11 geräumt; anschließend Schreibung wird angenommen, daß der Inhalt des
wird der Ausgang des Addierers zusammen mit dem B-Registers den Binärwert 0110000 hat, so daß das
in der Stufe Z 6 enthaltenen Wert nach UL trans- ίο Z-Register im letzten Teil des Speicherzyklus SC 4
portiert. Da der Addierer zu dieser Zeit auf den im auf diesen Wert eingestellt iwird. Während der Über-Z-Register
befindlichen Wert 032 und den Wert —0 lappung der Zeitabschnitte Tl und Γ0 schaltet die
im Z-Register anspricht, wird somit in UL der Wert NUND-Schaltung 18-15 den Schrittzähler in der
032 eingegeben. Während der Überlappung der Zeit- Taktphase CP2 weiter, um.den Speicherzyklus SC5
abschnitte Γ7 und Γ0 wird der Schrittzähler durch 15 einzuleiten.
die NUND-Schaltung 18-15 weitergeschaltet, um den Während des Speicherzyklus SC 5 wird ein Ope-
Speicherzyklus5C3 einzuleiten. rand aus der Speicherstelle entnommen, deren
Während des Speicherzyklus SC 3 treten folgende Adresse sich aus dem Kennteil y des Befehlswortes
Ereignisse auf. Im Zeitabschnitt T 2 wird die Stufe sowie aus dem während des Speicherzyklus SC 4 ab-50
durch die NUND-Schaltung 14-10 eingestellt, wo- 20 gerufenen Inhalt des B-Registers zusammensetzt
durch die im 5-Register befindliche Adresse von Während des Zeitabschnittes Tl wird von der
2500 auf 2501 erhöht wird. Diese zuletzt genannte NUND-Schaltung 18-10 die B-Registeradresse aus
Adresse enthält die obere Hälfte des zu entnehmen- dem 5-Register entfernt. Während des Zeitabschnitden
Befehls; diese obere Hälfte ist diejenige Hälfte, tes Γ2 überträgt die NUND-Schaltung 16-10 in der
in der sich der Funktionscode 00, der Kennteil a 01 25 Taktphase CPl UL nach SL, und Z nach SU. SL ent-
und das Bit 1 der oberen Stelle des Kennteils b be- hält also jetzt den Oktalwert 32, während SU den
finden. Während des Zeitabschnittes T 3 leitet der Oktalwert 60 aufnimmt. Der Speicher wird daher an
Negator 18-11 die Speicheroperation ein, während der Adresse 6032 angesteuert, in welcher sich ein
der Negator 10-31 den alten Inhalt (032) des Z-Re- Operand befindet, der während des Speicherzyklus
gisters entfernt. Das Z-Register ist somit zur Auf- 30 SC 6 zu dem Inhalt eines yi-Registers zu addieren
nähme der oberen Hälfte des Befehls, die sich in ist. Während des Zeitabschnittes Γ 3 im Speicherder
Speicherstelle 2501 befindet, bereit. Im Zeit- zyklus5C5 leitet der Negator 18-11 die Speicherabschnitt
TS wird das £/£/-Register von der NUND- Lese- und -Schreiboperation, ein, während der Nega-Schaltung
14-11 geräumt, so daß der Inhalt des tor 10-31 das Z-Register zwecks Aufnahme dieses
Z-Registers im Zeitabschnitt Γ 6 von der NUND- 35 Operanden räumt. Am Schluß des Speicherzyklus
Schaltung 14-12 in das Register UU während der SC S enthält das Z-Register daher den aus der Spei-Taktphase
CP 2 überführt werden kann. Am Schluß cherstelle 6032 abgerufenen Operanden, und die
des Speicherzyklus SC 3 enthält UU also den Oktal- NUND-Schaltung 18-15 wird geöffnet, um den
wert 003, während UL den Oktalwert 032 aufnimmt. Schrittzähler zwecks Einleitung des Speicherzyklus
Betrachtet man das £/-Register in seiner Gesamtheit, 40 SC 6 erneut weiterzuschalten.
so setzt sich das vollständige Befehlswort aus einem Während des Speicherzyklus SC 6 wird vom Kenn-
Funktionscode 0000, einem Kennteil α01, einem teil« sowie von dem vorliegenden Unterbrechungs-
KennteilölO und einem Kennteily 011010 zusam- niveau 6 bestimmt, welches.der im Speicher befind-
men. Die NUND-Schaltung 18-15 wird in den Zeit- liehen ^-Register auszuwählen ist. Der Inhalt dieses
abschnitten T7 und TO geöffnet, um den Schritt- 45 A-Registers wird zu dem während des Speicherzyklus
zähler weiterzuschalten und den Speicherzyklus SC 4 SC 5 entnommenen Operanden addiert und die
einzuleiten. Summe in das Λ-Register zurückgespeichert. Wäh-
Während des Speicherzyklus SC 4 wird der Inhalt rend des Zeitabschnittes Tl räumt die NUND-Schaldes
B-Registers aus dem Speicher in Übereinstim- rung 18-10 das 5-Register . in der Taktphase CP 4.
mung mit dem Wert des Kennteils b und des dem 50 Während des Zeitabschnittes T 2 überträgt die
Unterbrechungsniveau zugeordneten Programms, zu NUND-Schaltung 17-11 den im Z-Register befindweichem
der Befehl gehört, entnommen. Im Zeit- liehen Operanden in das Z-Register. Die NUND-abschnittn
wird das 5-Register in der Taktphase Schaltung 17-12 stellt die Stufe 50 auf den Wert 01
CP 4 durch die NUND-Schaltung 18-10 geräumt, des Kennteils α ein, während die NUND-Schaltung
während das Z-Register gleichfalls in der Taktphase 55 17-13 den Inhalt des /C-Registers in die Stufen 5 3,
CP 4 von der NUND-Schaltung 15-10 geräumt wird. 54 und 55 transportiert. Der in SL eingegebene
In der Taktphase CPl wird der Kennteil b 10 von Wert lautet also 110001, während das 5E/-Register
der NUND-Schaltung 15-12 in das 5-Register über- leer bleibt. Die während des Speicherzyklus SC 6 angeführt.
Außerdem transportiert die NUND-Schal- gesteuerte Adresse des ,4-Registers lautet daher 0061.
tung 15-14 den Inhalt des /C-Registers in das 5-Re- 60 Während des Zeitabschnittes T 3 leitet der Negator
gister in der Taktphase CP1, um die Stufen 55 und 18-11 die Speicher-Lese- und -Schreiboperation ein,
54 in Übereinstimmung mit dem Unterbrechungs- um den Inhalt des A -Registers zu entnehmen und in
niveau 6 einzustellen. Die Stufen des 5C/-Registers das Z-Register zu überführen, welches unter dem
enthalten also sämtlich Nullen, während sich in den Einfluß des Negators 10-31. für diese Aufnahme geStufen
des 5L-Registers der Wert 110110 in Über- 65 räumt wird. Während des Zeitabschnittes T 4 des
einstimmung mit dem Wert 2 des Kennteils b und Speicherzyklus 5C 6 stellt die NUND-Schaltung 17-15
dem vorliegenden Unterbrechungsniveau 6 befindet. die Kippschaltung 19-14 ein,, so daß die Summe von
Mit der Einleitung des Zeitabschnittes Γ 2 stellt Z und Z, die am Ausgang des Adressierers erscheint,
während des Rückschreibschrittes der Speicheroperation,
in das Λ-Register zurückgespeichert werden kann. Während des Zeitabschnittes Γ 7 wird die
NUND-Schaltung 17-16 geöffnet, um das Befehlssignal »Befehl beenden« zu erzeugen, wodurch die
Kippschaltung 9-14 geräumt wird; durch diese Räumung wird verhindert, daß der Schrittzähler auf den
Speicherzyklus SC 7 weitergeschaltet wird. Dieser letzte Speicherzyklus ist für die Ausführung des Addierbefehls
nicht erforderlich.
F i g. 4 zeigt, in welcher Weise das die Programmsteuerung ausübende Unterbrechungsniveau die
Funktionsregister A, B und P auswählen hilft. Zwar kann die Ausführung von Befehlen mit anderen
Operationsteilen dazu führen, daß die Register A und B zu anderen Zeiten als den im vorliegenden
Beispiel angegebenen angesteuert werden, doch bleibt die Aufgabe der /- und /C-Register, das S-Register
zu beeinflussen, gleich, unabhängig davon, zu welchem Zeitpunkt der Speicher angesteuert wird.
Während der Ausführung eines Befehls mit dem Operationsteil 14 und dem Kennteil a = 0 werden
die einzelnen Stufen des /-Registers auf den Wert 1 eingestellt, wenn die entsprechenden Bits des Kennteils
y 1 sind und wenn das Bit der unteren Stelle des Kennteils b 1 ist. Diese Einstellung wird während
des Speicherzyklus SC 3 durchgeführt, in welchem die NUND-Schaltung 14-15 im Zeitabschnitt T 7 das
Befehlssignal »UL nach /« erzeugt. Wie in Verbindung mit F i g. 3 beschrieben wurde, gelangt dieses
Befehlssignal an die NUND-Schaltungen 3-36 ... 3-42, um den Inhalt der Z7-Stufen 6 ... 0 abzutasten.
Durch diese Torschaltungen werden die Stufen des I-Registers in Übereinstimmung mit den in den
U-Stufen befindlichen Einsen eingestellt. Ist der Kennteil α gleich 1 und der Funktionscode 14, dann
befindet sich im /-Register das aus dem ursprünglichen Inhalt des /-Registers und dem in den Stufen
0 ... 6 des [/-Registers enthaltenen Wert gebildete Bitprodukt. Mit anderen Worten, befindet sich in der
Stufe E/2 eine binäre 0, dann wird die Stufe/2 auf
den Binärwert 0 rückgestellt. In diesem Zusammenhang soll noch erwähnt werden, daß ein Rücksprung
programmiert werden kann, indem in einem Programm mit einer niedrigeren Priorität ein solcher
Befehl eingebaut wird, um eine Stufe des /-Registers, die eine höhere Priorität aufweist, einzustellen. In
einem solchen Fall geht die Programmsteuerung sofort auf das höhere Niveau über und führt das dort
bezeichnete Unterprogramm aus. Nach Ausführung dieses die höhere Priorität aufweisenden Programms
wird diese Stufe des /-Registers geräumt, worauf das unterbrochene Programm der niedrigeren Priorität
wieder von dem Punkt aus weiter abgewickelt wird, an welchem die »PseudoUnterbrechung« oder der
Rücksprung auftrat.
Befindet sich in der Stufe U 2 eine binäre 1 und in der Stufe/2 eine binäre 0, dann bleibt die Stufe/2
geräumt. Zu diesem Zweck spricht die NUND-Schaltung 14-16 auf / = 14 sowie auf den Räumzustand
der Stufe U9 und den Einstellzustand der Stufe US
an, um das Befehlssignal »U'L nach /« zu erzeugen,
das in F i g. 3 zur Öffnung der NUND-Schaltungen 3-44 ... 3-50 benutzt wird. Außerdem wird der Befehlszyklus
am Schluß des Speicherzyklus SC 3 durch die öffnung der NUND-Schaltung 14-17 stets
dann beendet, wenn der Funktionscode 14 und der Kennteil a 0 oder 1 ist. Das Befehlssignal »Befehl
beenden« wird der Fig. 9 zugeleitet, um die Kippschaltung
9-14 zu räumen, die ihrerseits dadurch verhindert, daß der Schrittzähler auf SC 4 weitergeschaltet
wird.
Wie zuvor erwähnt wurde, ist in den für die Unterbrechungsniveaus vorgesehenen Programmen jeweils
ein Sprungbefehl (Operationsteil 17) mit einem Kennteil a = 0 und b = 0 vorgesehen. Bei Ausführung
dieses Befehls wird die im Moment die höchste
ίο Priorität aufweisende Stufe des /-Registers geräumt,
so daß ein Programm mit einer niedrigeren Priorität die Steuerung übernehmen kann. Das Befehlssignal »Unterbrechung beenden«, welches in Fig. 2
zur Räumung der gerade benutzten /-Registerstufe dient, wird im Speicherzyklus 3 während der Ausführung
eines Sprungbefehls erzeugt. Diese Torschaltung spricht auf das Signal »a = 0« sowie auf die
in den Stufen U 7 und U 6 enthaltenen Bits 0 an, die zusammen anzeigen, daß der Kennteil b gleichfalls 0
ao ist. Wie zuvor erwähnt wurde, wird die höchste eingestellte Stufe des /-Registers normalerweise jeweils
zu Beginn eines neuen Befehlszyklus während des Speicherzyklus 0 im /C-Register verschlüsselt. Λ
Durch diese Maßnahme kann ein eine Unterbrechung "
as veranlassendes Ereignis höherer Priorität sofort die
Steuerung am Schluß des laufenden Befehlszyklus, in dem dieses Ereignis auftrat, übernehmen. Bezeichnet
der im laufenden Befehlszyklus ausgeführte Befehl dagegen eine Auslaß-, Wiederhol- oder Sprungoperation,
dann wird die NUND-Schaltung 11-10 gesperrt und kann somit nicht das Befehlssignal»/ nach
IC« im nächsten Befehlszyklus erzeugen. Ein Programmwechsel wird daher so lange verzögert, bis
der auf den Auslaß-, Wiederhol- oder Sprungbefehl folgende Befehl ausgeführt worden ist. Bezeichnet
dieser Befehl dann gleichfalls eine Auslaß-, Wiederhol- oder Sprungoperation, dann wird der auf diesen
Befehl folgende Befehl gleichfalls ausgeführt, bevor eine Programmänderung auftritt. Das vorliegende
System kann also nicht so programmiert werden, daß es auf ein eine Unterbrechung veranlassendes
Ereignis höherer Priorität wartet, indem ein Sprungbefehl ausgeführt wird, der ständig wieder zu
sich selbst zurückkehrt. Der Grund hierfür ist, daß λ der in diesem Fall auf den Sprung folgende Befehl \
stets ein anderer Sprung ist, so daß ein Programm- ; wechsel (/ nach /C) ständig unterbunden wird. Dagegen
kann jedoch ein Abwarten in zwei oder mehreren Befehlen programmiert werden, indem der
Sprungbefehl zum Sprung auf eine Befehlsadresse Pi-2 veranlaßt wird, wo sich ein Befehl befindet, der
keinen Sprung-, Auslaß- oder Wiederhol-Operationsteil
enthält.
F i g. 5 zeigt die Arbeitsschritte, die durchgeführt werden, wenn der Inhalt eines Delta-Taktregisters zu
verringern ist. Es soll angenommen werden, daß die D-Einrichtung während des Speicherzyklus 0 (Fig. 4)
anzeigt, daß das Register Delta 1 um 1 zu verringern ist. F i g. 5 beginnt während dieses Speicherzyklus 0
mit dem Zeitabschnitt T 4, wobei sich aus Fig. 4 ergibt, daß das 5-Register bereits die Adresse 0114 des
P-Registers enthält, während das X-Register den Oktalwert 02 und das Z-Register den Oktalwert 76
enthält, der die untere Hälfte der nächsten Befehlsadresse darstellt, die während dieses Zyklus aus dem
P-Register abgerufen worden ist. Es soll angenommen werden, daß der Oszillator 5-10 in der Taktphase
CP 3 ein negatives Signal erzeugt, nachdem er
zuvor bis zu diesem Zeitpunkt ein positives Signal erzeugt hat. Während der Oszillator 5-10 dieses positive
Signal zuvor erzeugte, wurde die Kippschaltung 5-13 von der NUND-Schaltung 5-20 geräumt, da
beide Kippschaltungen 5-11 und 5-12 geräumt waren. Außerdem wird die Kippschaltung 5-23 während
des positiven Ausgangs des Oszillators eingestellt. Wird der Ausgang des Oszillators negativ, so
wird daher die NUND-Schaltung 5-26 von der Kippschaltung 5-24 in der auf die Änderung des Oszillatorausgangs
folgenden nächsten Taktphase CP 3 geöffnet. Am einen Eingang zur NUND-Schaltung 5-30
tritt also ein positives Signal auf. Da hier angenommen wird, daß der Speicherzyklus 0 vom Schrittzähler
eingeleitet wird, erzeugt auch die NODER-Schaltung 20-11 ein mit »Zyklus genehmigt« bezeichnetes
positives Signal, welches an den anderen Eingang der NUND-Schaltung 5-30 angelegt wird. Sobald
das Zeitsignal Tl des Speicherzyklus 0 auftritt, wird daher die NUND-Schaltung 5-30 in der Taktphase
CP1 geöffnet, um die Kippschaltung 5-27 einzustellen
und damit das Befehlssignal »D-Taktregister ansteuern« zu erzeugen. Da das Befehlssignal
»D-Taktregister nicht ansteuern« negativ wird, erzeugt die NODER-Schaltung 20-12 jetzt ein positives
Signal, wodurch die NUND-Schaltung 20-13 in der nächsten Taktphase CPl geöffnet wird. Die
Kippschaltung 20-10 wird daher eingestellt. Die Kippschaltungen 5-23 und 5-24 werden in diesem
Speicherzyklus geräumt. Die NUND-Schaltung 20-15 spricht auf die Einstellzustände der Kippschaltungen
20-10 und 5-24 an, um das Befehlssignal »D-Taktregister weiterschalten« vom Negator 20-16 zu erzeugen.
Dieses Befehlssignal dient dazu, den Zählerstand von 00 auf 01 zu ändern.
Die positiven Signale der NODER-Schaltungen 20-12 und 20-11 liegen außerdem an der NUND-Schaltung
20-14 an, um das negative Befehlssignal »Weiterschaltung des Schrittzählers sperren« zu erzeugen.
Dieses Befehlssignal wird der NUND-Schaltung 18-15 zugeführt, um deren Ausgangssignal auch
während der Überlappung der Zeitabschnitte Γ0 und Γ 7 am Ende des Speicherzyklus 0 positiv zu
halten. Der Schrittzähler wird also nicht von 5C0 auf 5Cl weitergeschaltet, sondern bleibt statt dessen
in seinem Zustand SCO. Die Steuerkette läuft dann weiter um und schaltet von Γ0 auf Tl, wie
Fig. 5 zeigt. Während des Zeitabschnittes Tl spricht die NUND-Schaltung 18-16 nunmehr auf den
Einstellzustand der Kippschaltung 20-10 an, um den früheren Inhalt des 5-Registers zu entfernen. Während
5C0 erzeugt die NUND-Schaltung 18-10 außerdem
das Befehlssignal »5 räumen«, und zwar zur gleichen Zeit wie die NUND-Schaltung 18-16. Die
NUND-Schaltung 18-16 ist für den Fall vorgesehen, daß die Verringerung des Inhaltes eines Delta-Registers
während des Speicherzyklus 5C3 auftritt, da die NUND-Schaltung 18-10 normalerweise gesperrt
ist. Das 5-Register wird während der Taktphase CP 4
ίο über die NUND-Schaltung 7-43 geräumt. Sobald jedoch
die Taktphase CP 4 verschwindet, wird das S-Register auf den Oktalwert 0121 eingestellt, da
durch das Signal der NUND-Schaltung 20-15 die Stufen 5 4 und 56 eingestellt werden, während das
Ausgangssignal der NUND-Schaltung 5-17 die Stufe 50 einstellt. Im Zeitabschnitt Γ 2 werden sämtliche
Stufen des X-Registers mit Ausnahme XO auf den
Wert 1 eingestellt; die Stufe ZO wird durch das Befehlssignal »X0 räumen« von der NUND-Schaltung
20-15 geräumt. Im X-Register befindet sich also jetzt der Oktalwert —01. Im Zeitabschnitt Γ3
leitet der Negator 18-11 die Speicher-Lese- und -Schreiboperation ein, so daß der Inhalt der Adresse
0121 entnommen und in das Z-Register übergeführt
as wird. Die Inhalte der Register Z und X werden zusammenaddiert
und das Resultat während des Wiedereinschreibschrittes in die Speicherstelle 0121
rückgespeichert.
Ist das Resultat des Addierers zu dieser Zeit 0, dann spricht die NUND-Schaltung 5-29 im Zeitabschnitt
Γ 7 dieses verlängerten Speicherzyklus 0 darauf an. Das Befehlssignal »Unterbrechungsstufe einstellen«
wird also der F i g. 2 zugeführt, wo es die NUND-Schaltung 3-17 öffnet und damit die Stufe /1
einstellt. An der NUND-Schaltung 3-17 liegen zu dieser Zeit die positiven Signale Dl und 252 an.
Außerdem wird die NUND-Schaltung 5-31 im Zeitabschnitt Tl geöffnet, um die Kippschaltung 5-27 in
der Taktphase CP1 zu räumen. Das Ausgangssignal
der NUND-Schaltung 20-12 wird jetzt negativ, wodurch die NUND-Schaltung 20-14 positiv wird. Die
NUND-Schaltung 20-17 wird daher in der nächsten Taktphase CP 2 geöffnet, um die Kippschaltung
20-10 zu räumen. Außerdem wird auch das Signal der NUND-Schaltung 20-14 rechtzeitig positiv, so
daß das Ausgangssignal der NUND-Schaltung 18-15 negativ wird und den Schrittzähler in der Taktphase
CP 2 weiterschaltet. Damit beginnt der Speicherzyklus 1, und der unterbrochene Befehlszyklus wird
wieder aufgenommen.
Hierzu 3 Blatt Zeichnungen
Claims (3)
1. Durch aus einem adressierbaren zentralen einander ausführen, ist es bekannt, die Instruktionen
Speicher entnommene Instruktionen gesteuerter 5 in mehrere unterschiedliche Programme zu grup-
und Instruktionen nacheinander ausführender pieren und diese an adressierbaren Plätzen des Spei-Datenverarbeiter,
dessen Instruktionen in meh- chers zu speichern. Es sind derartige Datenverarbeirere
unterschiedliche Programme gruppiert sind tungssysteme bekannt, welche ein Unterbrechungsund
der ein Unterbrechungsregister, welches auf schaltsystem für Vielfachprogramme mit Prioritäten
beliebig eingebrachte Unterbrechungssignale an- io zwischen unterschiedlichen gespeicherten Programspricht,
von denen jedes Signal ein unterschied- men aufweisen, das ein Unterbrechungsregister und
liches Programm kennzeichnet, und ein Pro- ein Programmauswahlregister enthält; das Untergrammauswahlregister
enthält, welches Unter- brechungsregister spricht hierbei auf willkürlich zubrechungssignale
von dem Unterbrechungsregister geführte, die unterschiedlich gespeicherten Proempfängt
und entsprechend dem Unterbrechungs- 15 gramme kennzeichnende Unterbrechungssignale an,
signal höchster Priorität tätig wird, und weitere und dem Programmauswahlregister werden Signale
Funktionsregister, welche mehrfache Programm- von dem Unterbrechungsregister zugeführt, und
Unterbrechungen entsprechend vorbestimmten seine Tätigkeit während eines laufenden Instruktions-Prioritäten
zwischen den verschiedenen Pro- zyklus wird durch das Unterbrechungssignal höchster
grammen ermöglichen, so daß ein Unter- 20 Priorität bestimmt, das von dem Unterbrechungsbrechungsprogramm
selbst durch ein Programm register vor Beginn des laufenden Instruktionszyklus höherer Priorität unterbrochen werden kann, aufgenommen wurde (vgl. USA.-Patentschrift
dadurch gekennzeichnet, daß der zen- 2 800 277). In derartigen Datenverarbeitungssystemen
trale Speicher selbst für jedes Programm einen kann ein Programm unterbrochen werden, indem
Satz von Funktionsregistern enthält, nämlich ein 25 die Ausschließlichkeit des Unterbrechungskanals
Programmadressenregister, welches die Adresse dazu benutzt wird, die Adresse eines in einem neuen
von Instruktionen in dem zugeordneten Pro- Programm enthaltenen Befehles auszuwählen. Vor
gramm liefert, wenigstens ein Sammelregister, Ausführung des neuen Programms muß jedoch der
welches Daten speichert, die bei der Ausführung Inhalt der indirekt adressierbaren Register, beispielsvon
Instruktionen des zugeordneten Programms 30 weise eines Befehlsadressenzählers, eines Akkumuverwendet
werden, und wenigstens ein Index- latorregisters od. dgl., aufbewahrt werden, so daß die
register, welches einen Indexwert speichert, der Steuerung zu einem späteren Zeitpunkt wieder auf
auf die Adressen von Operanden angewendet das unterbrochene Programm übertragen werden
werden kann, die bei der Ausführung von In- kann. Hat beispielsweise das gerade ablaufende Prostruktionen
des zugeordneten Programms verwen- 35 gramm ein Zwischenergebnis ermittelt, das in einem
det werden, wobei die Funktionsregister des- einzigen Akkumulatorregister gespeichert ist, so muß
jenigen Satzes durch das Programmauswahl- dieses Zwischenergebnis an einer bestimmten Stelle
register (/<.) ausgewählt werden, der zu dem aus- gespeichert werden, um zu verhindern, daß es bei
zuführenden Programm gehört. einer etwaigen Benutzung des Akkumulatorregisters
2. Datenverarbeiter nach Anspruch 1, dadurch 40 während der Ausführung des Unterbrechungsgekennzeichnet,
daß das Unterbrechungsregister programms verlorengeht (vgl. Speiser: Digitale
(T) aus einer Anzahl von Binärstufen (/1.. .77, Rechenanlagen, 1961, S. 398). Hat die Anlage nur
F i g. 2) besteht, wobei für jedes Programm eine einen einzigen Befehlsadressenzähler, so muß die
Stufe vorgesehen ist, die durch ein bestimmtes Adresse des nächsten Befehles des laufenden unter-Unterbrechungssignal
eingestellt werden kann, 45 brochenen Programms ebenfalls irgendwo anders daß das Programmauswahlregister (I c) eine An- gespeichert werden, damit der Befehlsadressenzähler
zahl von Binärstufen (I cl.. .IC3) umfaßt, deren anschließend dazu benutzt werden kann, die Adres-Inhalt
zur Auswahl einer Gruppe von Funktions- sen des Unterbrechungsprogramms zu liefern. Bei
registern benutzt wird, und daß Prioritäts-Tor- den bekannten Datenverarbeitungssystemen dieser
schaltungen (3-20 ... 3-27, 3-54) vorgesehen 50 Art wird zuviel Zeit für das Füllen und Wiederfüllen
sind, die während jedes Befehlszyklus noch vor von Funktionsregistern benötigt.
der Auswahl irgendwelcher Funktionsregister In Datenverarbeitungssystemen ist es ferner be-
wirksam sind, um.in das Programmauswahl- kannt, zur Steuerung von mehreren Programmen
register einen Wert in Übereinstimmung mit der mehrere Befehlszähler vorzusehen, welche jedoch
im Unterbrechungsregister eingestellten Stufe 55 einen besonderen wirtschaftlichen Aufwand verur-
der höchsten Priorität einzugeben. Sachen (Proceedings of the Eastern Computer Con-
3. Datenverarbeiter nach Anspruch 2, dadurch ference, 1957, S. 128 bis 137).
gekennzeichnet, daß Räum-Torschaltungen (3-28 Der Erfindung liegt die Aufgabe zugrunde, den
... 3-34) vorgesehen sind, welche sowohl auf Aufwand für die Bearbeitung mehrerer Programme
die Ausführung des Schlußbefehles eines belie- 60 zu verringern und für die Bearbeitung von Unter-
bigen Prioritätsprogramms während eines Be- brechungsprogrammen möglichst wenig Zeit zu be-
fehlszyklus als auch auf den im Programm- nötigen. Dies wird gemäß der Erfindung in einem
auswahlregister befindlichen Wert ansprechen, durch aus einem adressierbaren zentralen Speicher
um die eingestellte Stufe des Unterbrechungs- entnommene Instruktionen gesteuerten und Instrukregisters
(/) zu räumen, auf die sich der Wert 65 tionen nacheinander ausführenden Datenverarbeiter,
bezieht. dessen Instruktionen in mehrere unterschiedliche
Programme gruppiert sind und der ein Upterbrechungsregister, welches auf beliebig angebrachte
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US207253A US3226694A (en) | 1962-07-03 | 1962-07-03 | Interrupt system |
Publications (3)
Publication Number | Publication Date |
---|---|
DE1449568A1 DE1449568A1 (de) | 1969-03-27 |
DE1449568B2 true DE1449568B2 (de) | 1973-03-08 |
DE1449568C3 DE1449568C3 (de) | 1973-09-27 |
Family
ID=22769793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1449568A Expired DE1449568C3 (de) | 1962-07-03 | 1963-06-22 | Datenverarbeitungssystem |
Country Status (6)
Country | Link |
---|---|
US (1) | US3226694A (de) |
AT (1) | AT240081B (de) |
BE (1) | BE634161A (de) |
DE (1) | DE1449568C3 (de) |
GB (1) | GB980352A (de) |
NL (1) | NL294820A (de) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL295279A (de) * | 1962-08-25 | |||
US3302181A (en) * | 1963-06-17 | 1967-01-31 | Gen Electric | Digital input-output buffer for computerized systems |
GB1054725A (de) * | 1964-04-06 | |||
US3328771A (en) * | 1964-06-30 | 1967-06-27 | Ibm | Priority sequence control |
NL6500562A (de) * | 1965-01-16 | 1966-07-18 | ||
US3373408A (en) * | 1965-04-16 | 1968-03-12 | Rca Corp | Computer capable of switching between programs without storage and retrieval of the contents of operation registers |
US3373407A (en) * | 1965-08-02 | 1968-03-12 | Rca Corp | Scratch pad computer system |
DE1462636C3 (de) * | 1966-04-30 | 1974-08-29 | Kabel- Und Metallwerke Gutehoffnungshuette Ag, 3000 Hannover | Schaltungsanordnung zur Erfassung von Datea |
US3434111A (en) * | 1966-06-29 | 1969-03-18 | Electronic Associates | Program interrupt system |
US3566357A (en) * | 1966-07-05 | 1971-02-23 | Rca Corp | Multi-processor multi-programed computer system |
GB1167336A (en) * | 1966-08-12 | 1969-10-15 | British Telecomminications Res | Improvements in or relating to Data Processing Devices |
US3505652A (en) * | 1967-03-15 | 1970-04-07 | Gen Electric | Data storage access control apparatus for a multicomputer system |
US3504347A (en) * | 1967-07-03 | 1970-03-31 | Gen Electric | Interrupt monitor apparatus in a computer 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 |
US3699532A (en) * | 1970-04-21 | 1972-10-17 | Singer Co | Multiprogramming control for a data handling system |
USRE28612E (en) * | 1970-06-10 | 1975-11-11 | Digital processor having automatic conflict-resolving logic | |
US3639911A (en) * | 1970-06-10 | 1972-02-01 | Incoterm | Digital processor having automatic conflict-resolving logic |
US3676852A (en) * | 1970-07-20 | 1972-07-11 | Ibm | Multiple program digital computer |
US3774163A (en) * | 1972-04-05 | 1973-11-20 | Co Int Pour L Inf | Hierarchized priority task chaining apparatus in information processing systems |
US3828327A (en) * | 1973-04-30 | 1974-08-06 | Ibm | Simplified storage protection and address translation under system mode control in a data processing system |
US3980992A (en) * | 1974-11-26 | 1976-09-14 | Burroughs Corporation | Multi-microprocessing unit on a single semiconductor chip |
DE2617485C3 (de) * | 1976-04-22 | 1980-09-18 | Nixdorf Computer Ag, 4790 Paderborn | Schaltungsanordnung für Datenverarbeitungsanlagen zur Abarbeitung von Mikrobefehlsfolgen |
DE2659662C3 (de) * | 1976-12-30 | 1981-10-08 | Ibm Deutschland Gmbh, 7000 Stuttgart | Prioritätsstufengesteuerte Unterbrechungseinrichtung |
DE2754890C2 (de) * | 1977-12-09 | 1982-10-28 | Ibm Deutschland Gmbh, 7000 Stuttgart | Einrichtung zur Programmunterbrechung |
US4250546A (en) * | 1978-07-31 | 1981-02-10 | Motorola, Inc. | Fast interrupt method |
US4255786A (en) * | 1979-01-02 | 1981-03-10 | Honeywell Information Systems Inc. | Multi-way vectored interrupt capability |
US5524250A (en) * | 1991-08-23 | 1996-06-04 | Silicon Graphics, Inc. | Central processing unit for processing a plurality of threads using dedicated general purpose registers and masque register for providing access to the registers |
US5987601A (en) * | 1997-02-14 | 1999-11-16 | Xyron Corporation | Zero overhead computer interrupts with task switching |
US6243767B1 (en) * | 1998-06-02 | 2001-06-05 | Adaptec, Inc. | System for register partitioning in multi-tasking host adapters by assigning a register set and a unique identifier in each of a plurality of hardware modules |
US20030014474A1 (en) * | 2001-05-30 | 2003-01-16 | Mckaig Ray S. | Alternate zero overhead task change circuit |
US20040172631A1 (en) * | 2001-06-20 | 2004-09-02 | Howard James E | Concurrent-multitasking processor |
CN106200659B (zh) * | 2016-07-20 | 2019-05-31 | 深圳洲际通航投资控股有限公司 | 飞行器的中断控制方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL229160A (de) * | 1958-06-30 | |||
US3061192A (en) * | 1958-08-18 | 1962-10-30 | Sylvania Electric Prod | Data processing system |
US3094610A (en) * | 1959-06-02 | 1963-06-18 | Sylvania Electric Prod | Electronic computers |
GB946918A (en) * | 1959-06-08 | 1964-01-15 | Int Computers & Tabulators Ltd | Improvements in or relating to electronic calculating apparatus |
NL287533A (de) * | 1962-01-22 |
-
0
- BE BE634161D patent/BE634161A/xx unknown
- NL NL294820D patent/NL294820A/xx unknown
-
1962
- 1962-07-03 US US207253A patent/US3226694A/en not_active Expired - Lifetime
-
1963
- 1963-06-20 GB GB24510/63A patent/GB980352A/en not_active Expired
- 1963-06-22 DE DE1449568A patent/DE1449568C3/de not_active Expired
- 1963-06-28 AT AT519063A patent/AT240081B/de active
Also Published As
Publication number | Publication date |
---|---|
AT240081B (de) | 1965-05-10 |
DE1449568C3 (de) | 1973-09-27 |
US3226694A (en) | 1965-12-28 |
BE634161A (de) | |
DE1449568A1 (de) | 1969-03-27 |
NL294820A (de) | |
GB980352A (en) | 1965-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE1449568C3 (de) | Datenverarbeitungssystem | |
DE2410491C2 (de) | ||
CH634939A5 (de) | Kanaldatenpufferanordnung in einer datenverarbeitungsanlage. | |
DE2715497A1 (de) | Multiprozessorsystem fuer die steuerung des arbeitszyklusses einer maschine | |
DE2054068A1 (de) | Mit Programmverschachtelung arbei tendes Datenverarbeitungssystem zur gleichzeitigen Verarbeitung mehrerer Programme | |
DE2331589A1 (de) | Datenverarbeitungsanordnung | |
DE1200581B (de) | Programmunterbrechungssystem fuer eine elektronische Rechenmaschine | |
DE2248296A1 (de) | Programmsteuereinrichtung | |
DE19848742C2 (de) | Registerumbenennung bei einem Prozessor, der Instruktionen ausserhalb der sequentiellen Reihenfolge bearbeiten kann | |
DE1115488B (de) | Datenverarbeitungssystem | |
DE2358593A1 (de) | Datenverarbeitungsanordnung und bei dieser verwendbare steuerschaltung | |
EP1230590B1 (de) | Prozessorsystem | |
DE2335991A1 (de) | Logische schaltung zur lenkung der zur unterbrechung auffordernden signale in einem rechenautomaten | |
DE1200578B (de) | Datenverarbeitungssystem | |
DE1805992A1 (de) | Verfahren zum Sortieren von Informationen und Anordnung zur Durchfuehrung dieses Verfahrens | |
DE1900007A1 (de) | Datenverarbeitungssystem | |
DE1285218B (de) | Datenverarbeitungsanlage | |
DE1549399A1 (de) | Verfahren und System zur grafischen Aufzeichnung von Kurvenzuegen | |
DE2954533C2 (de) | ||
DE1939731C3 (de) | Rechengerät zur Steuerung von Fernsprechvermittlungsanlagen | |
DE1499233C3 (de) | Kombinationsrechenanlage | |
DE3000107C2 (de) | ||
DE1774038A1 (de) | Elektronische Rechenanlage | |
DE2735874C2 (de) | ||
DE2116639C3 (de) | Datenverarbeitungsanlage. Änm: Eysenbach, Wilfried, Dipl.-Ing., 8023 Pullach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
E77 | Valid patent as to the heymanns-index 1977 | ||
EHJ | Ceased/non-payment of the annual fee |