DE1449568C3 - Datenverarbeitungssystem - Google Patents

Datenverarbeitungssystem

Info

Publication number
DE1449568C3
DE1449568C3 DE1449568A DE1449568A DE1449568C3 DE 1449568 C3 DE1449568 C3 DE 1449568C3 DE 1449568 A DE1449568 A DE 1449568A DE 1449568 A DE1449568 A DE 1449568A DE 1449568 C3 DE1449568 C3 DE 1449568C3
Authority
DE
Germany
Prior art keywords
register
program
interrupt
circuit
nund
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
DE1449568A
Other languages
English (en)
Other versions
DE1449568A1 (de
DE1449568B2 (de
Inventor
Harry Dearman Minneapolis Hennepin Minn. Wise (V.St.A.)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sperry Corp
Original Assignee
Sperry Rand Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sperry Rand Corp filed Critical Sperry Rand Corp
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 Programmu.nterbrechungen 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 Programmauswahl register 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
F i g. 1 das Blockschaltbild eines Datenverarbeitungssystems,
F i g. 2 Einzelheiten eines Unterbrechungsstatusregisters, . ·.-■·■■.
Fig. 3 ein Speicheradressenregister, welches zur Ansteuerung einer bestimmten Speicherstelle des eingebauten Speichers dient,
Fig. 4 ein Zeitdiagramm, das die Ausführung eines Befehles veranschaulicht,
Fig. 5 ein Zeitdiagramm, aus dem die Arbeitsweise der Einrichtung durch Steuerung von Taktregistern ersichtlich ist,
Das in Fig. 1 dargestellte System stellt einen kleinen Digitalrechner mit eingespeichertem Programm dar, der in Systemen mit gleichzeitiger Datenverarbeitung als Nachrichtenumschaltezcntrale 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 Öktalstellen) bestehende Adresse bezeichnet ist. Der Zugriff zum Speicher, zwecks Entnahme oder Ein-, speicherung 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 Speichor 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
7 6
5 4 3 2 10
b
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 Operandadressc 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 ß-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 zürn Teil durch den 2-Bit-Kcnnteil a' des Befehls bezeichnet sind. Diese durch den Kennteil α bezeichneten Register werden nachstehend mit A-Register oder Akkumulator-Register bezeichnet. In dem vorliegenden System stellen die A- und ß-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 Rieh-. tung, in welcher Information zwischen einer externen Einheit und dem Speicher übertragen wird. Andererseits wird der im /!-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 Operalions-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 Speichercingang dar, der von sämtlichen aus dem Speicher entnommenen Informationen passiert werden muß, bevor diese entweder der externen Einheit oder den anderen Flip-FIop-Rcgistcrn zugeleitet werden. Das Z-Register enthält außerdem den Operanden des A -Registers. Das ^-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 Eingangssignalc sowohl vom Z- als auch vom ^-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-Komplemcnt-Subtraktionsverfahren mit Endborgcr (Endübertrag) aus.
Nachstehend sind einige Beispiele der im vorliegenden System verwendeten 7-Bit-Zahlen aufrt. ·
Dezimal Oktal Binär
0 000 . 0 000 000
' ·■■' ;·ΐ/ .-'·· 001 0 000 001
■ ■ "28 ; ; : -■ 034 0 011100
63 ,077 ο lii 11 i
-.63 100 1 000 000
-.28- :■·■ 143 - 11(K)OIl
- 1 ■176 ι m no
. ·■() 177 1111111
Das in Fig. 1 gezeigte t/-Begister wird normalerweise zur Aufnahme des 14-Bit-Befehls benutzt, der gerade ausgeführt wird. Außerdem dient dieses Register auch als Transferregistcr .beim Erlangen der Befehlsadresse. Zur Entschlüsselung' des Operations-Kcnnteils / ist eine Funktionsentschjü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 CPi, 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 Ä-Register besteht aus zwölf Stufen und dient während einer Wicderholbefchlsfolge zur Aufnahme und Modifizierung der Operandadresse. Außerdem nimmt dieses Register die nächste Adresse auf, wenn der Betrieb in der Betriebsart »Hin-Ausgabe-Puffer« erfolgt. 8 Bits dieses Registers werden zur Verringerung des Wiederholzählerstandes während der Wiederhol- und Pufferbefehle benutzt. Das RK-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 Ä/C-Registers.
Zum System gehören ferner zwei identische EinAusgabe-Kanäle I 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-/Ausgabe« 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
a° 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 — I 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
60. durchgeführten Iterationen bezeichnet, in eine be- '?-, stimmte Speicherstelle eingespeichert, worauf der
;. .Äüslaßbefehl ausgeführt wird.
■■ 'Wie zuvor erwähnt wurde, befinden sich die vier Λ-Register sowie die vier B-Register, die durch jedes Befehlsyvprt bezeichnet werden können, an bestimmten Sjjeichcrstellen im Kernspeicher. Im Kernspeicher befindeY sMi ferner das Befehlsadrcsscnregistcr P,.
■ das _-aus. zwei: jticbeneinandcrliegendcn Spcicherstcllen
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 S enthalten, die dazu benutzt werden, die Programm- ,-5 abwicklung 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 B sowie ein Befehlsadressenregister P vor. Dadurch verringert sich die Anzahl der organisatorischen Befehle, die andernfalls beim as Ü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ögliehen 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 B 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 A 0 ... A 3, vier 7-Bit-Registern BO... B 3 und einem H-Bit-Befehlsadicsscnregistcr P, das aus zwei nebeneinanderliegenden Speicherstellen besieht. 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.
Adresse (oktal)
0000 bis 0003
0004 bis 0007
0100, 0101
0010 bis 0013
0014 bis 0017
0102, 01 03
0020 bis 0023
0024 bis 0027
0104, 0105
0030 bis 0033
0034 bis 0037
0106, 0107
0040 bis 0043
0044 bis 0047
0110,0111
0050 bis 0053
0054 bis 0057
0112,0113
0060 bis 0063
0064 bis 0067.
0114,0115
0070 bis 0073
0074 bis 0077
0116,0117
Register
AQbisA3
B0bisB3
P
Λ 0 bis Λ 3
BO bis £3
P
A0bisA3
BO bis S3
P
AdbisA3
B0bisB3
P
A 0 bis A 3
50 bis B 3
P
A 0 bis A 3
B0bisB3
P
A 0 bis A 3
B0bisß3
P
A 0 bis A 3
B0bisß3
P
Unterbrechungsniveau (!-Register)
0 (niedrigste Priorität)
7 (höchste Priorität)
Wie sich aus den obenstehenden Angaben ergibt, hängt die Auswahl eines bestimmten A- oder B-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 6, 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-Ausgabc-Daten-
309 639/Π6
ίο
ü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:
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,
die unteren sieben Bits des tZ-Registers.
nächster Befehl,
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 (Ad) = (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 Pariiä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 entsprechend
In B eingeben den »0«en von (UL) räumen
14 (a = 2) 6 Bits von (Yb) in untere 6 Stufen von Bb; 0 in
In B eingeben obere Stufe von Bb
14 (a = 3) 6 Bits von (Yb) in untere 6 Stufen von Bb; 1 in
Akkumulator abspeichern obere Stufe von Bb
15 Wiederhole (Aa) und Yb abspeichern
16 (a φ 3) wenn NI wiederholbarer Nicht-Ein/Ausgabe
befehl, dann »b v« mal wiederholen
wenn NI = in Kanl 1 eingeben oder in Kanal 2
eingeben, dann Pufferübertragung von »b 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 /1... /7, 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, Ic3. 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 CP2 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.
2. Unterbrechungsniveau 6
Das Signal »Kanal 1 Operation beendet« erscheint an der NUND-Schaltung 3-11 und wird in der Taktphase CP 2 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 ÄAT-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
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 in 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
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 ZJ 2 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.
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 2JI
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, IC2 und IC3 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 ICl... IC3 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 Oktal wert 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 7δ wird verhindert, daß die NUND-Schaltungen 3-20 und 3-21 ein negatives Signal erzeugen und dadurch die Stufe/C3 bzw. /C2 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 Ausgangssigna] für die NUND-Schaltung 3-21 erzeugt. Die NUND-Schaltung 3-21 kann daher nicht die Stufe /C2 räumen. Dagegen sind die Eingangssignale der NUND-Schaltung 3-20 sämtlich positiv, da alle Stufen IA ... /7 zu dieser Zeit geräumt sein sollen. Die Stufe/C3 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 Aüsgangssignal 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 /f-Rcgisterstul'en 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 gerä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 /6 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
so 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 Il 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 Einstcllzustand der Stufe/6 erhalten, ob-
wohl auch die Stufen/3 und/2 eingestellt sind. Dies ergibt sich aus der Tatsache, daß die NUND-Schaltung 3-20 oder 3-21 infolge des negativen Signals 75 die ihr zugeordnete /C-Stufe nicht räumen kann. Außerdem erzeugt die NUND-Schaltung 3-23 unter dem Einfluß des negativen Signals 75 ein positives Signal, das in Verbindung mit dem positiven Signal 77 der Stufe /7 die NUND-Schaltung 3-22 öffnet, um die Stufe IC 1 zu räumen. Die eingestellten Stufen /3 und /2 können also den Inhalt des IC-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 /-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 /C-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 IC 3, IC 2 und /Cl, so daß die im /C-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 /C-Registerstufen an, um die Räumung der ihnen zugeordneten /-Registerstufe nach Abwicklung eines gerade auf diesem Prioritätsniveau ausgeführten Programms zu ermöglichen. Die eigentliche Räumung einer /-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 /C-Registers jedoch 110 lautet, wird nur die NUND-Schaltung 3-29 in der Taktphase CP 4 geöffnet, um die Stufe /6 zu räumen. Die Stufen / 3 und / 2 bleiben eingestellt, so daß der Inhalt des /C-Registers jetzt 011 wird und das Programm des dritten Prioritätsniveaus wieder weiter abgewickelt wird. Wird von hier an keine weitere /-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 Bcfehlssignals »Unterbrechung beenden«. Zu dieser Zeit kann infolge der im /C-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/3, so daß jetzt nur noch die Stufe/2 eingestellt ist. Der Inhalt des /C-Rcgisters wird daher 0000010, worauf das Programm des zweiten Untcrbrcchungsnivcaus 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 Ausführung wiederum das Befehlssignal »Unterbrechung beenden« erzeugt wird. Diesmal wird die NUND-Schaltung 3-33 geöffnet, da sich im /C-Register die Bitkonstellation 010 befindet, .wodurch die Stufe/2 geräumt wird. Nachdem jetzt sämtliche Stufen des
ίο /-Registers geräumt sind, ist das /C-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 /-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 >- und das untere Bit des Kennteils b eines Befehlswortes zur Einstellung der/-Stufen 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 C/L-Registers an. Wird das Befehlssignal »UL nach /« .über den Negator 3-43 angelegt, so stellen diejenigen NUND-Schaltungen 3-36 .. . 3-42, die in ihrer entsprechenden !/-Stufe eine 1 abtasten, die ihnen zugeordnete /-Stufe auf den Wert 1 ein. Das Befehlssignal »UL nach /« wird erzeugt, wenn der Operationsteil des Befehlswortes gleich 14 und der Kennteil α gleich 00 ist. Andererseits können aber auch an Stelle der im i/L-Register befindlichen Einsen die dort enthaltenen Nullen in das /-Register überführt werden. Die NUND-Schaltungen 3-44 ... 3-50 sprechen auf die im i/L-Register enthaltenen Bits 0 bei Erzeugung des über den Negator 3-51 angelegten Befehlssignals »U'L nach /« an; dieser Befehl tritt dann auf, wenn / gleich 14 und α gleich 1. Fig. 3 zeigt Einzelheiten des S-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... SIl). Das S-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 S£/-Register, wenn in der Taktphase CP1 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 Si/-Rcgister ü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 »UL nach SL« erzeugt wird.
Außerdem sind Mittel vorgesehen, um die Kennteile α und b des Befehlswortes in das SL-Register zu transportieren. Die NUND-Schaltungen 7-31 und 7-32 weiden durch das' Befehlssignal »a nach 5« geöffnet und sprechen dabei auf den in der Stufe t/9 bzw. US befindlichen Wert an, um diMi 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 639/116
O, 1, 2 bzw. 3 darstellen. Die NUND-Schaltungen 7-34 und 7-35 sprechen auf die in den Stufen t/7 und 1/6 befindlichen Bits des Kennteils b an, um diese Bits beim Auftreten des Befehlssignals »b 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 52 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 Kennteils α oder b nach 50... 52 erfolgt also stets zusammen mit der Übertragung von IC nach 53 ... SS, so daß das Register A1 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 Unterbrechungsniveaus 5 auftritt. Wird dieser Befehl während der Unterbrechungspriorität 2 ausgeführt, so werden die Stufen/ 51 und 50 bei der Übertragung von α nach 5 auf den Wert 01 eingestellt, während die Stufen 55, 54 und 53 bei der Übertragung von IC nach 5 auf den Binärwert 010 (Oktalwert 2) eingestellt werden. Da die Stufen 52 und 5'6... 511 geräumt bleiben (das 5-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 5-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 !/-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 5« oder »P + 1 nach 5« in die Stufen 51, 52 und 53 zu leiten. Das Ausgangssignal der NODER-Schaltung 7-47 liegt außerdem an der NUND-Schaltung 7-48 an, die in der Taktphase CPl geöffnet wird, um die Stufe 56 einzustellen. Durch die Einstellung der Stufe 56 wird bewirkt, daß die höchsten Oktalstellen der P-Registeradresse stets 01 sind, da die in SU befindliche binäre Bitkonstellation ÜOOOOI 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 Adresse0105 angesteuert, in der sich die obere Hälfte der nächsten Befehlsadresse befindet. Während des ersten Speicherzugriffszyklus wird das Befehlssignal »P nach 5« erzeugt, wodurch die Stufen 56 und 52 eingestellt werden. Dadurch wird in das 5-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 5-Register geräumt und das Befehlssignal »P + 1 nach 5« während des nächsten Speicherzugriffszyklus erzeugt. Durch dieses Befehlssignal wird die NODER-Schaltung 7-47 geöffnet, um die Stufen 56 und'52 erneut einzustellen. Das Befehlssignal »P + 1 nach 5« wird jedoch außerdem direkt übertragen, um die Stufe 50 einzustellen und damit die Oktaladresse 0105 in das 5-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 5« wird also in das 5-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 5« die gleiche Oktaladresse in das 5-Register überführt, die jedoch infolge der direkten Einstellung der Stufe 50 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 56, 53 und 52 unter dem Einfluß des Befehlssignals »P nach 5« auf den Oktalwert 0114 (000001001100) eingestellt werden. Durch das nächste Befehlssignal »P + 1 nach 5« werden dann wiederum sämtliche der zuvor erwähnten Stufen und außerdem die Stufe 50 eingestellt, so daß die niedrigste Oktalstelle 4 um .1 erhöht wird, also jetzt den Wert 5 hat.
Das 5-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, S 6 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 »D-Taktregister weiterschalten« erscheint, auf den Wert 00 eingestellt sind. Die NUND-Schaltung5-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 dejn 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 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 S1I 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 Fig. 7 wird das Signal »Dl 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 Oktalsteile des 5-Registers den Wert 0 hat, wodurch das Delta-Register 0 angesteuert wird, dessen Speicheradresse 0120 lautet. '
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 WZ-Adresse (untere Hälfte)
abrufen
5Cl WZ-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 yon Yb abrufen
5C6 Inhalt des /!-Registers abrufen,
ändern und rückspeichern
F i g. 4 zeigt im einzelnen die in den Speicherzyklen 0 ... 6 durchgeführten Arbeitsschritte. Für
'5 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 Re-. gister 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 TO 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 / 6 die höchste Priorität hat, so befindet sich am Schluß des Zeitabschnittes T.O der Wert 110 im /C-Register. Während des Zeitabschnittes T1 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
4o' 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 Γ 2 veranlaßt die NUND-Schaltung 11-12 die Einspeicherung des OktalwertesO114 in das 5-Register in der Taktphase CP1. 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 -1-2 vom Z-Register in das Z-Register überträgt.
Während des Zeitabschnittes 70 des Speicherzyklus 5C© 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
ßo 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ärkern in das Z-Register geleitet. An dieser
21 22
Stelle sei darauf hingewiesen, daß sich der Wert O dem 5-Register entfernt, um Platz zu machen für die
stets in der Position 6 der Speicherstellen des P-Re- Aufnahme der P-Registeradresse 0115, welche die
gisters befindet. obere Hälfte der nächsten Befehlsadresse für das
Mit der Einstellung der Kippschaltung 10-14 be- Unterbrechungsniveau 6 enthält. Die NUND-Schal-
ginnt der Zeitabschnitt Γ 4, und die NUND-Schal- 5 tung 12-11 wird also im Zeitabschnitt 72 geöffnet,
tung 10-22 räumt die Kippschaltung 19-14. Dies ge- um das Befehlssignal »P + 1 nach 5« zu erzeugen,
schieht zu Beginn jedes Zeitabschnittes 74 automa- wodurch die Adresse 0115 in das 5-Register geleitet
tisch. Sobald jedoch das positive Signal Γ 4 erscheint, wird. Außerdem werden zu dieser Zeit sämtliche Stu-
stellt die NUND-Schaltung 18-13 die Kippschaltung fen des Z-Registers von der NODER-Schaltung
19-14 erneut ein, so daß die in den Speicher wieder- io 10-30 auf den Wert 1 in der Taktphase CP 2 einge-
eingeschriebene Information vom Ausgang des Ad- stellt. In der nächsten Taktphase CP 3 wird von der
dierers kommt. Zu der Zeit, in welcher die Informa- NUND-Schaltung 12-11 der im Z-Register befind-
tion wieder in den Speicher eingeschrieben wird, liehe Wert +1 in das Z-Register übertragen. Wäh-
spricht der Addierer auf den im Z-Register befind- rend 73 wird die Speicheroperation vom Negator
liehen Oktalwert 076 sowie auf den im Z-Register 15 18-11 erneut eingeleitet, während der Negator 10-31
befindlichen Oktalwert 002 an und bildet aus diesen den zuvor in das Z-Register übertragenen Wert +1
beiden Weiten die Summe 000 (oktal), welche die entfernt, um dieses Register für die Aufnahme der
untere Hälfte der Adresse des zu entnehmenden und oberen Hälfte der nächsten Befehlsadresse aus der
auszuführenden Addierbefehls darstellt. Normaler- Speicherstelle 0115 vorzubereiten. Diese obere Hälfte
weise ist 076 + 002= 100. Während des Speicher- 20 hat den Oktalwert 24.
zyklus 5CO wird jedoch der Ausgang 26 des Addie- Mit der Einleitung des Zeitabschnittes T 4 durch
rers gesperrt, um sicherzustellen, daß die untere die NUND-Schaltung 10-22 wird außerdem die Kipp-
Hälfte der Adresse positiv bleibt. Während des Zeit- schaltung 19-14 rückgestellt. Die NUND-Schaltung
abschnittes Γ 6 wird die NUND-Schaltung 11-13 ge- 18-13 wird jedoch geöffnet, um die Kippschaltung
öffnet, um zunächst das t/L-Register in der Takt- 25 19-14 anschließend wieder, einzustellen, so daß der
phase CP3 zu räumen und dann die Signale der Aus- Ausgang des Addierers im Speicherzyklus SCl wie-
gänge 2° ... 25 des Addierers (sowie das in der der in den Speicher eingeschrieben werden kann. Da Stufe Z 6 befindliche Bit 0) in der Taktphäse CP 4 in ,der Addierer auf den im Z-Register befindlichen
das [/L-Register zu leiten. Am Schluß des Speicher- ' Wert 24 und den im Z-Register befindlichen Wert 01
zyklus 5CO enthalten also die Stufen 0 ... S von UL 30 anspricht, stellt sein Ausgang somit die Summe 25
den Oktalwert 00, während die Stufe 6 yon UL eine dar. Dieser Ausgang des Addierers bleibt so lange
binäre 0 enthält. Außerdem wird die Übertrag-Kipp- erhalten, wie sich im Z-Register der Wert 24 und im
schaltung 19-17 in der Taktphase CP 2 während des Z-Register der Wert 01 befindet, wobei die Summe
Zeitabschnittes 76 durch die NUND-Schaltung 18-14 25 während des Wiedereinschreibschrittes des Spei-
rückgestellt. 35 cherzyklus 5Cl in die Speicheradresse 0115 wieder-
Während des Zeitabschnittes 77 wird die NUND- eingeschrieben wird. Während des Zeitabschnittes
Schaltung 11-14 geöffnet, um festzustellen, ob bei 76 wird die Kippschaltung 19-17 in der Taktphase
der Addition der in den Registern Z und Z enthal- CP 2 von der NUND-Schaltung 18-14 rückgestellt,
tenen Zahlen ein Übertrag 1 in der Bitstelle 2r> gebil- während im Zeitabschnitt 77 die NUND-Schaltung
det wird. Wenn dies der Fall ist, wird die NUND- 4° 18-15 während der Überlappung von 70 und CP2
Schaltung 19-18 in der Taktphase CP4 geöffnet, um geöffnet wird, um den Befehlsschrittzähler auf 5C2
die Kippschaltung 19-17 einzustellen, so daß dieser weiterzuschalten.
Übertrag zur Bitstelle 2n der oberen Hälfte der nach- Während des Zeitabschnittes 71 des Speichersten Befehlsadresse, die während des nächsten Spei- zyklus SC 2 wird der frühere Inhalt (0115) des cherzyklus 5Cl abgerufen wird, hinzuaddiert werden 45 S-Registers durch die NUND-Schaltung 18-10 entkann. Mit dem erneuten Beginn des Zeitabschnittes fernt. Mit Beginn des Zeitabschnittes 72 wird die 70 und der dabei auftretenden Überlappung mit dem NUND-Schaltung 13-10 geöffnet, um in der Takt-Zeitabschnitt 77 wird die NUND-Schaltung 18-15 phase CPl den Inhalt des t/L-Registers in das SL-geöifnct, um den Befehlsschrittzähler weiterzuschal- Register und den Ausgang des Addierers nach SU ten, so daß das Signal 5Cl positiv wird. 5C0 wird 50 zu leiten. SL enthält also jetzt den Oktalwert 00, daraufhin negativ, womit der erste Speicherzyklus während SU den Oktalwert 25 aufnimmt. Betrachtet dieses Befehlszyklus beendet ist. · man die im 5-Register befindliche Adresse in ihrer
Wie F i g. 4 zeigt, wird der Oktalwert 076 während Gesamtheit, so hat diese den Wert 2500 und bezeich-
des Speicherzyklus 5Cl in der Taktphase CP4 durch net damit die Speicherstelle, in der sich die untere
die NUND-Schaltung 12-10 aus dem Z-Registcr ent- 55 Hälfte des hier beschriebenen Addierbefehls befin-
fernt, so daß die NUND-Schaltung 12-12 den Oktal- det. Außerdem enthalten die P-Speicherstellen 0115
wert 001 in der nächsten Taktphase CPl in dieses und 0114 des Speichers, aus denen der Wert 2476
Register leiten kann; dies bedeutet, daß die Stufe ZO entnommen wurde, jetzt ebenfalls den Wert 2500
eingestellt ist, während die Stufen Zl ... Z6 ge- (wobei von jeder Speicherstelle nur die Positionen
räumt bleiben. Dieser Fall tritt jedoch nur dann auf, 60 0 ... 5 berücksichtigt werden, da sich in der Posi-
wenn die Übertrag-Kippschaltung 19-17 im Speicher- tion 6 eine binäre 0 befindet),
zyklus 5CO eingestellt worden war. In dem hier be- Während des Zeitabschnittes 73 leitet der Nega-
schriebcncn Beispiel trifft dies zu, da bei der Addi- tor 18-11 die Speicher-Lese- und -Schreiboperation
tion der beiden Oktalwertc 02 und 76 ein Übertrag 1 ein, während der Negator 10-31 das Z-Rcgistcr
von der zweitniedrigsten Oklalslclle (von der Bit- 65 räumt, um dieses auf die Aufnahme der unteren
stelle 2·"' de Addierers) gebildet wird. Außerdem wird Hälfte des Addicrbcfehls vorzubereiten. Diese untere
von der NIJNI)-Seh;iltuiig 18-10 im Zeitabschnitt 71 Hälfte enthält den Kennteil y des Befehls sowie das
des Speicherzyklus SCi die Speicheradresse 0114 aus in der unteren Stelle befindliche Bit des Kennteils b.
Zum Zweck der Beschreibung ist angenommen worden, daß der Kennteil y den Oktalwert 32 hat, während das in der unteren Stelle des Kenn teils b befindliche Bits den Wert 0 hat. Wie F i g. 4 zeigt, wird also der Wert 032 aus der Speicherstelle 2500 des Speichers in das Z-Register übergeführt. Im Zeitabschnitt Γ 6 wird UL in der Taktphase CP 3 von der NUND-Schaltung 13-11 geräumt; anschließend wird der Ausgang des Addierers zusammen mit dem in der Stufe Z 6 enthaltenen Wert nach UL transportiert. Da der Addierer zu dieser Zeit auf den im Z-Register befindlichen Wert 032 und den Wert -0 im Z-Register anspricht, wird somit in UL der Wert 032 eingegeben. Während der Überlappung der Zeitabschnitte T7 und TO wird der Schrittzähler durch die NUND-Schaltung 18-15 weitergeschaltet, um den Speicherzyklus SC 3 einzuleiten.
Während des Speicherzyklus SC 3 treten folgende Ereignisse auf. Im Zeitabschnitt T 2 wird die Stufe SO durch die NUND-Schaltung 14-10 eingestellt, wodurch die im 5-Register befindliche Adresse vpn 2500 auf 2501 erhöht wird. Diese zuletzt genannte Adresse enthält die obere Hälfte des zu entnehmenden Befehls; diese obere Hälfte ist diejenige Hälfte, in der sich der Funktionscode 00, der Kennteil α 01 und das Bit 1 der oberen Stelle des Kennteils b befinden. Während des Zeitabschnittes T 3 leitet der Negator 18-11 die Speicheroperation ein, während der Negator 10-31, den alten Inhalt (032) des Z-Registers entfernt. Das Z-Register ist somit zur Aufnahme der oberen Hälfte des Befehls, die sich in der Speicherstelle 2501 befindet, bereit. Im Zeitabschnitt Γ 5 wird das £/i/-Register von der NUND-Schaltung 14-11 geräumt, so daß der Inhalt des Z-Registers im Zeitabschnitt T 6 von der NUND-Schaltung 14-12 in das Register UU während der Taktphase CP 2 überführt werden kann. Am Schluß des Speicherzyklus SC 3 enthält U U also den Oktalwert 003, während UL den Oktalwert 032 aufnimmt. Betrachtet man das !/-Register in seiner Gesamtheit, so setzt sich das vollständige Befehlswort aus einem Funktionscode 0000, einem Kennteil α 01, einem Kennteil b 10 und einem Kennteil y 011010 zusammen. Die NUND-Schaltung 18-15 wird in den Zeitabschnitten Γ 7 und TO geöffnet, um den Schrittzähler weiterzuschalten und den Speicherzyklus SC 4 einzuleiten.
Während des Speicherzyklus SC 4 wird der Inhalt des B-Registers aus dem Speicher in Übereinstimmung mit dem Wert des Kennteils b und des dem Unterbrechungsniveau zugeordneten Programms, zu welchem der Befehl gehört, entnommen. Im Zeitabschnitt Tl wird das 5-Register in der Taktphase CP 4 durch die NUND-Schaltung 18-10 geräumt, während das Z-Register gleichfalls in der Taktphase CP 4 von der NUND-Schaltung 15-10 geräumt wird. In der Taktphase CP1 wird der Kennteil b 10 von der NUND-Schaltung 15-12 in das 5-Register übergeführt. Außerdem transportiert die NUND-Schaltung 15-14 den Inhalt des /C-Rcgisters in das 5-Register in der Taktphase CP1, um die Stufen 55 und 54 in Übereinstimmung mit dem Unterbrechungsniveau 6 einzustellen. Die Stufen des 517-Rcgisters enthalten also sämtlich Nullen, während sich in .den Stufen des 5L-Rcgisters der Wert 110110 in Übereinstimmung mit dem Wert 2 des Kenntcils Ir und dem vorliegenden Unlerbrechimgsniveau 6 befindet.
Mit der Einleitung des Zeitabschnittes T2 stellt die NODER-Schaltung 10-30 sämtliche Stufen des Z-Registers auf den Wert 1 ein. Während des Zeitabschnittes T 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 für die Aufnahme des Inhaltes des B-Registers, dessen Adresse 0066 ist, vorzubereiten. Zum Zweck der Beschreibung wird angenommen, daß der Inhalt des B-Registers den Binärwert 0110000 hat, so daß das
ίο Z-Register im letzten Teil des Speicherzyklus SC 4 auf diesen Wert eingestellt iwird. Während der Überlappung der Zeitabschnitte T7 und TO schaltet die NUND-Schaltung 18-15 den Schrittzähler in der Taktphase CP 2 weiter, um den Speicherzyklus SC 5 einzuleiten.
Während des Speicherzyklus SC 5 wird ein Operand aus der Speicherstelle entnommen, deren Adresse sich aus dem Kennteil y des Befehlswortes sowie aus dem während des Speicherzyklus SC 4 abgerufenen Inhalt des B-Registers zusammensetzt. Während des Zeitabschnittes Tl wird von der NUND-Schaltung 18-10 die B-Registeradresse aus dem 5-Register entfernt. Während des Zeitabschnittes T 2 überträgt die NUND-Schaltung 16-10 in der Taktphase CPl UL nach SL und.Z nach SU. SL enthält also jetzt den Oktalwert 32, während SU den Oktalwert 60 aufnimmt. Der Speicher wird daher an der Adresse 6032 angesteuert, in welcher sich ein Operand befindet, der während des Speicherzyklus 5C6 zu dem Inhalt eines A -Registers zu addieren ist. Während des Zeitabschnittes T3 im Speicherzyklus 5C5 leitet der Negator 18-11 die Speicher-Lese- und -Schreiboperation ein, während der Negator 10-31 das Z-Register zwecks Aufnahme dieses Operanden räumt. Am Schluß des Speicherzyklus 5C5 enthält das Z-Register daher den aus der Speicherstelle 6032 abgerufenen Operanden, und die NUND-Schaltung 18-15 wird geöffnet, um den Schrittzähler zwecks Einleitung des Speicherzyklus 5C6 erneut weiterzuschalten.
Während des Speicherzyklus SC 6 wird vom Kennteil α sowie von dem vorliegenden Unterbrechungsniveau 6 bestimmt, welches der im Speicher befindlichen Λ-Register auszuwählen ist. Der Inhalt dieses Λ-Registers wird zu dem während des Speicherzyklus 5C5 entnommenen Operanden addiert und die Summe in das Λ-Register zurückgespeichert. Während des Zeitabschnittes Tl räumt die NUND-Schaltung 18-10 das 5-Register in der Taktphase CP 4.
Während des Zeitabschnittes T 2 überträgt die NUND-Schaltung 17-11 den im Z-Register befindlichen Operanden in das Z-Register. Die NUND-Schaltung 17-12 stellt die Stufe 50 auf den Wert 01 des Kcnnteils α ein, während die NUND-Schaltung 17-13 den Inhalt des /C-Registers in die Stufen 53, 54 und 55 transportiert. Der in SL eingegebene Wert lautet also 110001, während das 5f-Register leer bleibt. Die während des Speicherzyklus SC6 angesteuerte Adresse des /!-Registers lautet daher 0061.
Während des Zeitabschnittes 7'3 leitet der Negator 18-1! die Speicher-Lese- und -Schreiboperation ein, um den Inhalt des /1-Registers zu entnehmen und in das Z-Register zu überführen, welches unter dem Einfluß des Negators 10-31 für diese Aufnahme geräumt wird.' Während des Zeitabschnittes 7'4 des Speieherzykliis5C6 stellt die NDND-Schaltung 17-15 die Kippschaltung 19-14 ein, so daß die Summe von Z und .V, die am Ausgang des Adressieieis erscheint,
309 639/116
25 26
während des Rückschreibschrittes der Speicheropera- beenden« wird der F i g. 9 zugeleitet, um die Kipption in das A -Register zurückgespeichert werden schaltung 9-14 zu räumen, die ihrerseits dadurch verkann. Während des Zeitabschnittes Tl wird die hindert, daß der Schrittzähler auf SC 4 weitergeschal-NUND-Schaltung 17-16 geöffnet, um das Befehls- tet wird.
signal »Befehl beenden« zu erzeugen, wodurch die 5 Wie zuvor erwähnt wurde, ist in den für die UnKippschaltung 9-14 geräumt wird; durch diese Räu- terbrechungsniveaus vorgesehenen Programmen jemung wird verhindert, daß der Schrittzähler auf den weils ein Sprungbefehl (Operationsteil 17) mit einem Speicherzyklus SC 7 weitergeschaltet wird. Dieser Kennteil a = 0 und b = 0 vorgesehen. Bei Ausfühletzte Speicherzyklus ist für die Ausführung des Ad- rung dieses Befehls wird die im Moment die höchste dierbefehls nicht erforderlich. io Priorität aufweisende Stufe des /-Registers geräumt,
F i g. 4 zeigt, in welcher Weise das die Programm- so daß ein Programm mit einer niedrigeren Prioristeuerung ausübende Unterbrechungsniveau die tat die Steuerung übernehmen kann. Das Befehls-Funktionsregister A, B und P auswählen hilft. Zwar signal »Unterbrechung beenden«, welches in Fig. 2 kann die Ausführung von Befehlen mit anderen zur Räumung der gerade benutzten /-Registerstufe Operationsteilen dazu führen, daß die Register A 15 dient, wird im Speicherzyklus 3 während der Aus- und B zu anderen Zeiten als den im vorliegenden führung eines Sprungbefehls erzeugt. Diese Torschal-Beispiel angegebenen angesteuert werden, doch bleibt tung spricht auf das Signal »α = 0« sowie auf die die Aufgabe der /- und /C-Register, das 5-Register in den Stufen U 7 und t/6 enthaltenen Bits 0 an, die zu beeinflussen, gleich, unabhängig davon, zu wel- zusammen anzeigen, daß der Kennteil b gleichfalls 0 ehern Zeitpunkt der Speicher angesteuert wird. ao ist. Wie zuvor erwähnt wurde, wird die höchste ein-
Während der Ausführung eines Befehls mit dem gestellte Stufe des /-Registers normalerweise jeweils Operationsteil 14 und dem Kennteil a = 0 werden zu Beginn eines neuen Befehlszyklus während des die einzelnen Stufen des /-Registers auf den Wert 1 Speicherzyklus 0 im /C-Register verschlüsselt, eingestellt, wenn die entsprechenden Bits des Kenn- Durch diese Maßnahme kann ein eine Unterbrechung teils y 1 sind und wenn das Bit der unteren Stelle 35 veranlassendes Ereignis höherer Priorität sofort die des Kennteils b 1 ist. Diese Einstellung wird während Steuerung am Schluß des laufenden Befehlszyklus, des Speicherzyklus SC 3 durchgeführt, in welchem in dem dieses Ereignis auftrat, übernehmen. Bezeichdie NUND-Schaltung 14-15 im Zeitabschnitt T 7 das net der im laufenden Befehlszyklus ausgeführte Be-Befehlssignal »E/L nach /« erzeugt. Wie in Verbin- fehl dagegen eine Auslaß-, Wiederhol- oder Sprungdung mit Fig. 3 beschrieben wurde, gelangt dieses 30 operation, dann wird die NUND-Schaltung 11-10 ge-Bef ehlssignal an die ' NUND-Schaltungen 3-36 ... sperrt und kann somit nicht das Befehlssignal »/ nach 3-42, um den Inhalt der [/-Stufen 6 ... 0 abzutasten. IC«, im nächsten Befehlszyklus erzeugen. Ein Pro-Durch diese Torschaltungen werden die Stufen des grammwechsel wird daher so lange verzögert, bis I-Registers in Übereinstimmung mit den in den der auf den Auslaß-, Wiederhol- oder Sprungbefehl U-Stufen befindlichen Einsen eingestellt. Ist der 35 folgende Befehl ausgeführt worden ist. Bezeichnet Kennteil α gleich 1 und der Funktionscode 14, dann dieser Befehl dann gleichfalls eine Auslaß-, Wiederbefindet sich im /-Register das aus dem Ursprung- hol- oder Sprungoperation, dann wird der auf dielichen Inhalt des /-Registers und dem in den Stufen sen Befehl folgende Befehl gleichfalls ausgeführt, 0 ... 6 des ÜZ-Registers enthaltenen Wert gebildete bevor eine Programmänderung auftritt. Das vorlie-Bitprodukt. Mit anderen Worten, befindet sich in der 40 gende System kann also nicht so programmiert wer-Stufe U 2 eine binäre 0, dann wird die Stufe/2 auf den, daß es auf ein eine Unterbrechung veranlassenden Binärwert 0 rückgestellt. In diesem Zusammen- des Ereignis höherer Priorität wartet, indem ein hang soll noch erwähnt werden, daß ein Rücksprung Sprungbefehl ausgeführt wird, der ständig wieder zu programmiert werden kann, indem in einem Pro- sich selbst zurückkehrt. Der Grund hierfür ist, daß gramm mit einer niedrigeren Priorität ein solcher 45 der in diesem Fall auf den Sprung folgende Befehl Befehl eingebaut wird, um eine Stufe des /-Registers, stets ein anderer Sprung ist, so daß ein Programmdie eine höhere Priorität aufweist, einzustellen. In wechsel (/ nach /C) ständig unterbunden wird. Daeinem solchen Fall geht die Programmsteuerung so- gegen kann jedoch ein Abwarten in zwei oder mehfort auf das höhere Niveau über und führt das dort reren Befehlen programmiert werden, indem der bezeichnete Unterprogramm aus. Nach Ausführung 50 Sprungbefehl zum Sprung auf eine Befehlsadresse dieses die höhere Priorität aufweisenden Programms Pi-I veranlaßt wird, wo sich ein Befehl befindet, der wird diese Stufe des /-Registers geräumt, worauf das keinen Sprung-, Auslaß- oder Wiederhol-Operationsunterbrochene Programm der niedrigeren Priorität teil enthält.
wieder von dem Punkt aus weiter abgewickelt wird, F i g. 5 zeigt die Arbeitsschritte, die durchgeführt
an welchem die »PseudoUnterbrechung« oder der 55 werden, wenn der Inhalt eines Delta-Taktregisters zu
Rücksprung auftrat. verringern ist. Es soll angenommen werden, daß die
Befindet sich in der Stufe i/2 eine binäre 1 und in D-Einrichtung während des Speicherzyklus 0 (Fig.4) der Stufe/2 eine binäre 0, dann bleibt die Stufe/2 anzeigt, daß das Register Delta 1 um 1 zu verringern geräumt. Zu diesem Zweck spricht die NUND-Schal- ist. F i g. 5 beginnt während dieses Speicherzyklus 0 tung 14-16 auf / = 14 sowie auf den Räumzustand 60 mit dem Zeitabschnitt T4, wobei sich aus Fig. 4 erder Stufe i/9 und den Einstellzustand der Stufe U8 gibt, daß das S-Register bereits die Adresse 0114 des an, um das Befehlssignal »U'L nach /« zu erzeugen, P-Registers enthält, während das ^-Register den das in F i g. 3 zur öffnung der NUND-Schaltungen Oktalwert 02 und das Z-Register den Oktalwert 76 3-44 ... 3-50 benutzt wird. Außerdem wird der Be- enthält, der die untere Hälfte der nächsten Befehlsfehlszyklus am Schluß des Speicherzyklus SC3 65 adresse darstellt, die während dieses Zyklus aus dem durch die öffnung der NUND-Schaltung 14-17 stets P-Register abgerufen worden ist. Es soll angenomdann beendet, wenn der Funktionscode 14 und der men werden, daß der Oszillator 5-10 in der Takt-Kennteil α 0 oder 1 ist. Das Befehlssignal »Befehl phase CP 3 ein negatives Signal erzeugt, nachdem er
l^^^^^^U^^HbHDlPrn-
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 CP 2 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 T 7 am Ende des Speicherzyklus 0 positiv zu halten. Der Schrittzähler wird also nicht von SC 0 auf 5Cl weitergeschaltet, sondern bleibt statt dessen in seinem Zustand 5CO. Die Steuerkette läuft dann weiter um und schaltet von Γ0 auf Tl, wie Fig. 5 zeigt. Während des Zeitabschnittes Π 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 das1 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 ZO auf den Wert 1 eingestellt; die Stufe XO wird durch das Befehlssignal »X0 räumen« von der NUND-Schal-
ao tung 20-15 geräumt. Im Af-Register befindet sich also jetzt der Oktalwert —01. Im Zeitabschnitt T 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 Tl 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 ZJ2 an.
Außerdem wird die NUND-Schaltung 5-31 im Zeit-
: abschnitt T1 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
*5 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)

Patentansprüche:
1. Durch aus einem adressierbaren zentralen Speicher entnommene Instruktionen gesteuerter und Instruktionen nacheinander ausführender Datenverarbeiter, dessen Instruktionen in mehrere unterschiedliche Programme gruppiert sind und der ein Unterbrechungsregister, welches auf beliebig eingebrachte Unterbrechungssignale anspricht, von denen jedes Signal ein unterschiedliches Programm kennzeichnet, und ein Programmauswahlregister enthält, welches Unterbrechungssignale von dem Unterbrechungsregister empfängt und entsprechend dem Unterbrechungssignal höchster Priorität tätig wird, und weitere Funktionsregister, 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 gekennzeichnet, 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 Iiefert, 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 (/f) ausgewählt werden, der zu dem auszuführenden Programm gehört.
2. Datenverarbeiter nach Anspruch 1, dadurch gekennzeichnet, daß das Unterbrechungsregister; (/) aus einer Anzahl von Binärstufen (/1... /7, F i g. 2) besteht, wobei für jedes Programm eine Stufe vorgesehen ist, die durch ein bestimmtes Unterbrechungssignal eingestellt werden kann, daß das Programmauswahlregister (Ic) eine Anzahl von Binärstufen (/,., ... Ica) umfaßt, deren Inhalt zur Auswahl einer Gruppe von Funktionsregistern benutzt wird, und daß Prioritäts-Torschaltungen (3-20 ... 3-27, 3-54) 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 Unterbrechungsfegister eingestellten Stufe der höchsten Priorität einzugeben.
3. Datenverarbeiter nach Anspruch 2, dadurch gekennzeichnet, daß Räum-Torschaltungen (3-28 . .. 3-34) vorgesehen sind, welche sowohl auf die Ausführung des Schlußbefehles eines beliebigen Prioritätsprogramms während eines Befehlszyklus als auch auf den im Programmauswahlregister befindlichen Wert ansprechen, um die eingestellte Stufe des Unterbrechungsregisters (J) zu räumen, auf die sich der Wert bezieht.
In Datenverarbeitungssystemen, welche durch Instruktionen gesteuert werden, die aus einem Speicher entnommen werden, und welche Instruktionen nacheinander ausführen, ist es bekannt, die Instruktionen in mehrere unterschiedliche . Programme zu gruppieren und diese an adressierbaren Plätzen des Speichers zu speichern. Es sind derartige Datenverarbeitungssysteme bekannt, welche ein · Unterbrechungsschaltsystem für .Vielfachprogramme mit Prioritäten zwischen unterschiedlichen gespeicherten Programmen aufweisen, das ein Unterbrechungsregister und ein Programmauswahlregister enthält;, das Unterbrechungsregister spricht hierbei auf willkürlich zugeführte, die unterschiedlich gespeicherten Programme kennzeichnende Unterbrechungssignale an, und dem Programmauswahlregister werden Signale von dem Unterbrechungsregister zugeführt, und seine Tätigkeit während eines laufenden Instruktionszyklus wird durch das Unterbrechungssignal höchster Priorität bestimmt, das von dem Unterbrechungsregister vor Beginn des laufenden Instruktionszyklus aufgenommen wurde (vgl. USA.-Patentschrift 2 800 277). In derartigen Datenverarbeitungssystemen ί kann ein Programm unterbrochen werden, indem die Ausschließlichkeit des Unterbrechungskanals dazu benutzt wird, die Adresse eines in einem neuen Programm enthaltenen Befehles auszuwählen. Vor Ausführung des neuen Programms muß jedoch der Inhalt der indirekt adressierbären Register, beispielsweise eines Befehlsadressenzählers, eines Akkumulatorregisters od. dgl., aufbewahrt werden, so daß die Steuerung zu einem späteren Zeitpunkt wieder auf das unterbrochene Prpgrarrim übertragen werden kann. Hat beispielsweise das gerade ablaufende Programm ein Zwischenergebnis ermittelt, das in einem einzigen Akkumulatorregister gespeichert ist, so muß dieses Zwischenergebnis an einer bestimmten Stelle gespeichert werden, um zu verhindern, daß es bei einer etwaigen. Benutzung des Akkumulatorregisters während der Ausführung des Unterbrechungsprogramms verlorengeht (vgl. Speiser: Digitale Rechenanlagen, 1961, S. 398). Hat die Anlage nur einen einzigen Befehlsadressenzähler, so muß die Adresse des nächsten Befehles des laufenden unterbrochenen Programms ebenfalls irgendwo anders gespeichert werden, damit der Befehlsadressenzähler anschließend dazu benutzt werden kann, die Adressen des Unterbrechungsprogramms zu liefern. Bei den bekannten Datenverarbeitungssystemen dieser Art wird zuviel Zeit für das Füllen und Wiederfüllen von Funktionsregistern benötigt.
In Datenverarbeitungssystemen ist es ferner bekannt, zur Steuerung von mehreren Programmen mehrere Befehlszähler vorzusehen, welche jedoch einen besonderen wirtschaftlichen Aufwand verursachen (Proceedings of the Eastern Computer Conference, 1957, S. 128 bis 137).
Der Erfindung liegt die Aufgabe zugrunde, den Aufwand für die Bearbeitung mehrerer Programme zu verringern und für die Bearbeitung von Unterbrechungsprogrammen möglichst wenig Zeit zu benötigen. Dies wird gemäß der Erfindung in einem durch aus einem adressierbaren zentralen Speicher entnommene Instruktionen gesteuerten und Instruktionen nacheinander ausführenden Datenverarbeiter, 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 DE1449568B2 (de) 1973-03-08
DE1449568C3 true 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
DE1250659B (de) * 1964-04-06 1967-09-21 International Business Machines Corporation, Armonk, NY (V St A) Mikroprogrammgesteuerte Datenverarbeitungsanlage
US3328771A (en) * 1964-06-30 1967-06-27 Ibm Priority sequence control
NL6500562A (de) * 1965-01-16 1966-07-18
US3373408A (en) * 1965-04-16 1968-03-12 Rca Corp Computer capable of switching between programs without storage and retrieval of the contents of operation registers
US3373407A (en) * 1965-08-02 1968-03-12 Rca Corp Scratch pad computer system
DE1462636C3 (de) * 1966-04-30 1974-08-29 Kabel- Und Metallwerke Gutehoffnungshuette Ag, 3000 Hannover Schaltungsanordnung zur Erfassung von Datea
US3434111A (en) * 1966-06-29 1969-03-18 Electronic Associates Program interrupt system
US3566357A (en) * 1966-07-05 1971-02-23 Rca Corp Multi-processor multi-programed computer system
GB1167336A (en) * 1966-08-12 1969-10-15 British Telecomminications Res Improvements in or relating to Data Processing Devices
US3505652A (en) * 1967-03-15 1970-04-07 Gen Electric Data storage access control apparatus for a multicomputer system
US3504347A (en) * 1967-07-03 1970-03-31 Gen Electric Interrupt monitor apparatus in a computer system
US3440619A (en) * 1967-07-14 1969-04-22 Ibm Control system for maintaining register contents during interrupt and branch conditions in a digital computer
US3699532A (en) * 1970-04-21 1972-10-17 Singer Co Multiprogramming control for a data handling system
USRE28612E (en) * 1970-06-10 1975-11-11 Digital processor having automatic conflict-resolving logic
US3639911A (en) * 1970-06-10 1972-02-01 Incoterm Digital processor having automatic conflict-resolving logic
US3676852A (en) * 1970-07-20 1972-07-11 Ibm Multiple program digital computer
US3774163A (en) * 1972-04-05 1973-11-20 Co Int Pour L Inf Hierarchized priority task chaining apparatus in information processing systems
US3828327A (en) * 1973-04-30 1974-08-06 Ibm Simplified storage protection and address translation under system mode control in a data processing system
US3980992A (en) * 1974-11-26 1976-09-14 Burroughs Corporation Multi-microprocessing unit on a single semiconductor chip
DE2617485C3 (de) * 1976-04-22 1980-09-18 Nixdorf Computer Ag, 4790 Paderborn Schaltungsanordnung für Datenverarbeitungsanlagen zur Abarbeitung von Mikrobefehlsfolgen
DE2659662C3 (de) * 1976-12-30 1981-10-08 Ibm Deutschland Gmbh, 7000 Stuttgart Prioritätsstufengesteuerte Unterbrechungseinrichtung
DE2754890C2 (de) * 1977-12-09 1982-10-28 Ibm Deutschland Gmbh, 7000 Stuttgart Einrichtung zur Programmunterbrechung
US4250546A (en) * 1978-07-31 1981-02-10 Motorola, Inc. Fast interrupt method
US4255786A (en) * 1979-01-02 1981-03-10 Honeywell Information Systems Inc. Multi-way vectored interrupt capability
US5524250A (en) * 1991-08-23 1996-06-04 Silicon Graphics, Inc. Central processing unit for processing a plurality of threads using dedicated general purpose registers and masque register for providing access to the registers
US5987601A (en) 1997-02-14 1999-11-16 Xyron Corporation Zero overhead computer interrupts with task switching
US6243767B1 (en) * 1998-06-02 2001-06-05 Adaptec, Inc. System for register partitioning in multi-tasking host adapters by assigning a register set and a unique identifier in each of a plurality of hardware modules
US20030014474A1 (en) * 2001-05-30 2003-01-16 Mckaig Ray S. Alternate zero overhead task change circuit
US20040172631A1 (en) * 2001-06-20 2004-09-02 Howard James E Concurrent-multitasking processor
CN106200659B (zh) * 2016-07-20 2019-05-31 深圳洲际通航投资控股有限公司 飞行器的中断控制方法及***

Family Cites Families (5)

* 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
GB980352A (en) 1965-01-13
DE1449568A1 (de) 1969-03-27
AT240081B (de) 1965-05-10
BE634161A (de)
NL294820A (de)
DE1449568B2 (de) 1973-03-08
US3226694A (en) 1965-12-28

Similar Documents

Publication Publication Date Title
DE1449568C3 (de) Datenverarbeitungssystem
DE1499193C3 (de) Speicher-Adressierschaltung
CH634939A5 (de) Kanaldatenpufferanordnung in einer datenverarbeitungsanlage.
DE1574499A1 (de) Speicheranordnung fuer binaere Daten unter Verwendung einer geschlossenen Datenumlaufschleife
DE19848742C2 (de) Registerumbenennung bei einem Prozessor, der Instruktionen ausserhalb der sequentiellen Reihenfolge bearbeiten kann
DE1949916A1 (de) Datenverarbeitungsverfahren und Computer zu seiner Durchfuehrung
DE1285218B (de) Datenverarbeitungsanlage
DE2403039A1 (de) Verfahren zur adressenerweiterung einer elektronischen digitalrechenanlage
DE1212748B (de) Datenverarbeitende Maschine mit Programmunterbrechung
DE2610428A1 (de) Anordnung zur steuerung der zwischenspeicherung von zwischen zwei funktionseinheiten zu uebertragenden daten in einem pufferspeicher
DE1474068C3 (de) Datenverarbeitungsanordnung mit mehreren Außeneinrichtungen
DE1194605B (de) Verbesserung an Geraeten zur Verarbeitung von Angaben, Informationen od. dgl.
DE1939731C3 (de) Rechengerät zur Steuerung von Fernsprechvermittlungsanlagen
DE2505518C2 (de)
DE2954533C2 (de)
DE1774038A1 (de) Elektronische Rechenanlage
DE1449449C (de) Assoziativer Informationsspeicher
DE3115379C2 (de) Programmierbare Steuerung zur Verknüpfung von Eingangssignalen zu Ausgangssignalen nach einem Kontaktplan
DE1499233C3 (de) Kombinationsrechenanlage
DE1499215C (de) Steuerwerk fur einen Digitalrechner
DE2116639C3 (de) Datenverarbeitungsanlage. Änm: Eysenbach, Wilfried, Dipl.-Ing., 8023 Pullach
DE2001665C (de) Verfahren und Schaltungsan Ordnung zur Durchfuhrung des Ver fahrens zum Austausch von Informa tionen zwischen den Verarbeitungs einheiten eines Vielfachrechensystems
DE2332819C3 (de) Speichersystem
DE977721C (de) Magnetischer Trommelspeicher, insbesondere fuer Rechengeraete
DE1474050C (de) Mit variabler Wortlange arbeitende digitale Recheneinrichtung

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