DE1449568B2 - Datenverarbeitungssystem - Google Patents

Datenverarbeitungssystem

Info

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
Application number
DE19631449568
Other languages
English (en)
Other versions
DE1449568A1 (de
DE1449568C3 (de
Inventor
Harry Dearman Minneapolis Hennepin Mmn Wise (V St A)
Original Assignee
Sperry Rand Corp , New York, N Y (V St A)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sperry Rand Corp , New York, N Y (V St A) filed Critical Sperry Rand Corp , New York, N Y (V St A)
Publication of DE1449568A1 publication Critical patent/DE1449568A1/de
Publication of DE1449568B2 publication Critical patent/DE1449568B2/de
Application granted granted Critical
Publication of DE1449568C3 publication Critical patent/DE1449568C3/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving 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,
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,
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 2 In Datenverarbeitungssystemen, welche durch InPatentansprüche: struktionen gesteuert werden, die aus einem Speicher entnommen werden, und welche Instruktionen nach-
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
DE1449568A 1962-07-03 1963-06-22 Datenverarbeitungssystem Expired DE1449568C3 (de)

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)

* Cited by examiner, † Cited by third party
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
US3639911A (en) * 1970-06-10 1972-02-01 Incoterm Digital processor having automatic conflict-resolving logic
USRE28612E (en) * 1970-06-10 1975-11-11 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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
BE634161A (de)
US3226694A (en) 1965-12-28
AT240081B (de) 1965-05-10
DE1449568A1 (de) 1969-03-27
GB980352A (en) 1965-01-13
DE1449568C3 (de) 1973-09-27
NL294820A (de)

Similar Documents

Publication Publication Date Title
DE1449568C3 (de) Datenverarbeitungssystem
DE2234867C2 (de) Anordnung in einer Datenverarbeitungsanlage zum Steuern der Verarbeitung zweier voneinander unabhängiger Befehlsfolgen
CH634939A5 (de) Kanaldatenpufferanordnung in einer datenverarbeitungsanlage.
DE2715497A1 (de) Multiprozessorsystem fuer die steuerung des arbeitszyklusses einer maschine
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
DE1805992C3 (de) Einrichtung zur Adressierung von Zwischenspeichern beim Sortieren/Mischen von vorsortierten Datenfolgen
DE1909090A1 (de) Schutzeinrichtung fuer eine Rechenanlage
DE1285218B (de) Datenverarbeitungsanlage
DE1549399A1 (de) Verfahren und System zur grafischen Aufzeichnung von Kurvenzuegen
DE1212748B (de) Datenverarbeitende Maschine mit Programmunterbrechung
DE1194605B (de) Verbesserung an Geraeten zur Verarbeitung von Angaben, Informationen od. dgl.
DE2954533C2 (de)
DE2440627C2 (de) Mikroprogrammierter Rechner
DE1939731C3 (de) Rechengerät zur Steuerung von Fernsprechvermittlungsanlagen
DE1499233C3 (de) Kombinationsrechenanlage
DE1474090B2 (de) Datenverarbeitungsanlage
DE3000107C2 (de)
DE1774038A1 (de) Elektronische Rechenanlage
DE2735874C2 (de)

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