DE2846520C2 - - Google Patents
Info
- Publication number
- DE2846520C2 DE2846520C2 DE19782846520 DE2846520A DE2846520C2 DE 2846520 C2 DE2846520 C2 DE 2846520C2 DE 19782846520 DE19782846520 DE 19782846520 DE 2846520 A DE2846520 A DE 2846520A DE 2846520 C2 DE2846520 C2 DE 2846520C2
- Authority
- DE
- Germany
- Prior art keywords
- operand
- register
- information
- byte
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 230000015654 memory Effects 0.000 claims description 106
- 238000012545 processing Methods 0.000 claims description 81
- 238000012546 transfer Methods 0.000 claims description 39
- 230000005540 biological transmission Effects 0.000 claims description 15
- 238000000034 method Methods 0.000 claims description 12
- 230000000903 blocking effect Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000008878 coupling Effects 0.000 description 8
- 238000010168 coupling process Methods 0.000 description 8
- 238000005859 coupling reaction Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000008520 organization Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- TVEXGJYMHHTVKP-UHFFFAOYSA-N 6-oxabicyclo[3.2.1]oct-3-en-7-one Chemical compound C1C2C(=O)OC1C=CC2 TVEXGJYMHHTVKP-UHFFFAOYSA-N 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000002405 diagnostic procedure Methods 0.000 description 1
- 229910052742 iron Inorganic materials 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
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)
- Advance Control (AREA)
Description
Die Erfindung betrifft eine Zentraleinheit zur Verarbeitung von Operanden entsprechend
Befehlen in einem Datenverarbeitungssystem, entsprechend dem Oberbegriff
des Patentanspruchs 1.
Eine Zentraleinheit dieser Art ist aus dem US-Buch H. Katzan "Computer Systems
Organization and Programming", Science Research Associates, Inc., 1976, S. 37-42
und 131-135 bekannt. Diese Zentraleinheit enthält einen Programmzähler, eine
Befehlsholeinrichtung, Dekodierer für den Operationskode und die Operandenspezifikationsteile,
wie auch aus DE-AS 24 19 837 und dem US-Buch A. Tanenbaum
"Structured Computer Organization" Pentice-Hall, Inc. 1976, S. 18-21, 70-88
bekannt ist. Bei diesen Zentraleinheiten wird ein Teil des Operationskode selbst
dekodiert und dann dazu benutzt, die Länge und Art jedes zugeordneten Operanden
zu bestimmen. Durch die Erfindung soll demgegenüber eine erhöhte Flexibilität der
Adressierungsart durch die Operandenspezifikationsart erzielt werden.
Weitere Zentraleinheiten und Datenverarbeitungssysteme unterschiedlicher Art sind
in US-Patentschriften der Anmelderin beschrieben, und zwar in der US-PA 36 14 740,
die ein Datenverarbeitungssystem mit Schaltungen für ein Übertragen zwischen
Betriebsprogrammen, Unterbrechungsprogrammen und Unterprogrammen betrifft; in
der US-PS 36 14 741, die ein Datenverarbeitungssystem mit Befehlsadressen betrifft,
die eines einer Anzahl Register mit dem Programmzähler identifizieren;
in der US-PS 37 10 324, die ein Datenverarbeitungssystem betrifft; ferner in
der US-PS 39 99 163, die einen Sekundärspeicher für ein Datenverarbeitungssystem
betrifft.
Ein digitales Datenverarbeitungssystem weist drei Grundelemente auf, nämlich eine
Speichereinrichtung, eine Eingabe-Ausgabe-Einrichtung und eine Zentraleinheit.
Die Speichereinrichtung speichert Information in adressierbaren Speicherstellen. Diese
Information weist Daten und Befehle zum Verarbeiten der Daten auf. Die Zentraleinheit
überträgt Information von der Speichereinrichtung und interpretiert die ankommende
Information entweder als Daten oder als einen Befehl. Ein Befehl weist
einen Operationskode auf, welcher in kodierter Form die von der Zentraleinheit
durchzuführende Operation genau festlegt. Ein Befehl kann auch Information enthalten,
die einen oder mehrere Operanden genau festlegt. Die Information, die einen Operanden
genau festlegt, wird Operandenspezifikationsteil genannt.
In einem einfachen digitalen Datenverarbeitungssystem arbeitet die Zentraleinheit
entsprechend Befehlen, welche einen festen Aufbau und eine fest vorgegebene Länge
haben. Insbesondere sind in einem derartigen Datenverarbeitungssystem die Befehle
als Speicherbezugsbefehle und Operationsbefehle eingeteilt, wobei letztere auch
als "Mikrobefehle" bezeichnet werden. Jeder Speicherbezugsbefehl benötigt
einen Operandenspezifikationsteil, um die Adresse des Platzes zu spezifizieren,
auf den sich der Befehl bezieht. Insbesondere weist der Befehl einen Operationskode
und einen Operandenspezifikationsteil auf. In diesem System ist der
Speicher in Seiten unterteilt. Das höchstwertige Bit in der Operandenadresse
steuert, ob die Zentraleinheit die Operandenadresse auf die Seite bezieht,
welche den Befehl enthält, oder sich auf eine Bezugsseite bezieht. Die Mikrobefehle
enthalten keine Operandenspezifikationsteile, Operanden werden implizit
durch die Befehle adressiert. Diese einfachen Befehle mit fest vorgegebener Länge
und festem Aufbau ermöglichen nur sehr elementare Funktionen. Insbesondere ist
es schwierig, ein Programm einzuschreiben, welches ein kompliziertes Problem löst,
hauptsächlich deswegen, weil eine sehr große Anzahl von Befehlen benötigt wird.
Jüngere Zentraleinheiten können kompliziertere Funktionen entsprechend den
einzelnen Befehlen durchführen. Einige dieser Zentraleinheiten weisen noch
Befehle mit fest vorgegebenem Aufbau auf, aber in begrenztem Ausmaß können
sie auch auf Befehle mit veränderlicher Länge ansprechen. Beispielsweise läßt
eine derartige Zentraleinheit Befehle mit veränderlicher Länge zu, die ein anfängliches
Byte (eine festliegende Gruppe von binären Ziffern oder Bits) aufweisen,
welches die Zentraleinheit als einen Operationskode interpretiert. Auf
diesen Operationskode folgen dann in dem Befehl aufeinanderfolgende Bytes,
die vorherbestimmte Register in der Zentraleinheit bezeichnen. Auch bei diesem
Vorschlag ist das Befehlsformat noch fest vorgegeben.
Eine andere Art einer Zentraleinheit, welche eine Art Befehl mit veränderlicher
Länge liefert, wird in einem PDP II-Datenverarbeitungssystem benutzt, wie
in der eingangs erwähnten US-PS 36 14 741 beschrieben ist. In dieser Zentraleinheit
kann ein Befehl bis zu zwei Operandenspezifikationsteilen aufweisen. Doch können
der Befehl und alle Information, um die zwei Operanden genau festzulegen, von
zwei bis sechs aufeinanderfolgende Bytestellen in dem Programm erfordern. Eine
Operatorgruppe von Befehlen enthält beispielsweise keine Operandenspezifikationsteile,
sondern der Befehl wird als ein Wort mit zwei Bytes gespeichert. Andere
Befehle enthalten zwei Operandenadressen. Beide Operandenadressen können in dem
Befehlswort genau festgelegt sein. Wenn jedoch beide Operandenadressen in einem
Befehl einen Adressiermodus genau festlegen, der den Programmzähler kennzeichnet,
sind sechs aufeinanderfolgede Bytestellen in dem Programm erforderlich, um den
Befehl vollständig zu definieren. Bei diesem bekannten Vorschlag wird jedoch die
Länge des Operanden implizit spezifiziert, weil der Operationskode die Anzahl von
Operanden definiert und andere Bits in dem Befehl selbst die Gesamtlänge der
Operandenspezifikationsteile definieren.
Bei derartigen Zentraleinheiten ist es noch oft erforderlich, zwei oder mehr
Befehle zu verarbeiten, um eine spezielle Funktion durchzuführen. Wenn beispielsweise
ein Programmierer zwei Zahlen addieren und dann die Summe an einer dritten
Speicherstelle speichern will, ohne die Speicherstellen zu stören, die die Summanden
speichern, muß er einen Befehl zum Nachbilden eines Summanden an der dritten
Speicherstelle und dann einen Befehl verwenden, um den anderen Summanden zu
dem Inhalt der dritten Speicherstelle zu addieren. Die durch derartige Befehle
verursachten Beschränkungen können zu Programmierfehlern oder zu einer Unwirtschaftlichkeit
der Zentraleinheit führen.
Es ist Aufgabe der Erfindung, eine Zentraleinheit der eingangs genannten Art
derart zu verbessern, daß eine Verarbeitung von Befehlen mit operandentypunabhängigem
Operationskode und unterschiedlich langen Operandenspezifikationsteilen
ermöglicht wird.
Diese Aufgabe wird erfindungsgemäß durch den Gegenstand des
Patentanspruchs 1 gelöst. Vorteilhafte Weiterbildungen der Erfindung sind Gegenstand
der Unteransprüche.
Bei einer derartigen Zentraleinheit enthält ein Befehl einen Operationskode und
eine gewisse Anzahl von Operandenspezifikationsteilen. Ein Befehl wird aus der
Speichereinrichtung beginnend mit einem Platz geholt, der das erste Byte des
Befehls enthält. Die Zentraleinheit prüft das erste Byte, um zu bestimmen,
ob der Operationskode ein oder zwei Bytes aufweist. Die Zentraleinheit interpretiert
dann dem Operationskode zugeordnete aufeinanderfolgende Bytes als
Operandenspezifikationsteile.
Anhand der Zeichnung soll die Erfindung beispielsweise näher erläutert werden.
Es zeigen:
Fig. 1 ein Blockschaltbild eines digitalen Datenverarbeitungssystem
mit einer Zentraleinheit gemäß der Erfindung;
Fig. 2A bis 2D Datenarten, welche in Verbindung mit einer bestimmten
Ausführungsform der Erfindung verwendet werden;
Fig. 3 ein Blockschaltbild der in Fig. 1 dargestellten
Zentraleinheit;
Fig. 4 das Format bzw. den Aufbau und die Organisation eines
Befehls, der in der in Fig. 1 und 3 dargestellten
Zentraleinheit verarbeitet werden kann;
Fig. 5 zusammen mit Fig. 5A bis 5C ein Blockschaltbild der
in Fig. 3 dargestellten Datenwege;
Fig. 6A ein Blockschaltbild von in Fig. 3 dargestellten Befehlspuffer-
und Dekodierschaltungen;
Fig. 6B und 6C bestimmte Signale, welche von den in Fig. %6A dargestellten
Schaltungen übertragen werden;
Fig. 7 und 7A ein Ablaufdiagramm, das zum Verständnis der Arbeitsweise
der in Fig. 1 und 3 dargestellten
Zentraleinheit verwendet wird;
Fig. 8A das Format eines speziellen Befehls;
Fig. 8B bestimmte Information, welche von diesem Befehl erhalten
werden kann;
Fig. 8C1 bis 8C3 ein Ablaufdiagramm, das die Arbeitsweise der
in Fig. 1 und 3 dargestellten Zentraleinheit
entsprechend diesem Befehl festlegt;
Fig. 9A und 9B ein weiteres Format des in Fig. 8A dargestellten
Befehls;
Fig. 9C1 und 9C2 ein Ablaufdiagramm, das die Arbeitsweise der in
Fig. 1 und 3 dargestellten Zentraleinheit
entsprechend diesem abgewandelten Befehl festlegt;
Fig. 10A und 10B das Format für Befehle, die in Abrufunterprogrammen
verwendbar sind, und
Fig. 10C-1 bis 10C-4 ein Ablaufdiagramm, das die Arbeitsweise
der in Fig. 1 und 3 dargestellten Zentraleinheit
entsprechend diesen Befehlen festlegt.
In Fig. 1 weisen die Grundelemente eines Datenverarbeitungssystems
gemäß der Erfindung eine Zentraleinheit 10 (im folgenden zentrale Recheneinheit genannt),
Speichereinheiten 11 und Ein-/Ausgabeeinheiten 12 auf. Eine
synchrone Rückseitenverbindung (SBI) 14 verbindet die zentrale
Recheneinheit 10, die Speichereinheiten 11 und die Ein-/Ausgabeeinheiten
12.
Die zentrale Recheneinheit 10 weist ein Bedienungspult 15, eine
SBI-Kopplungs- und Speicherpufferschaltung 16, eine Adressenübertragungsschaltung
17, eine Befehlspufferschaltung 18 und
eine Datenweg- und interne Registerschaltung 19 auf. Die SBI-
Kupplungs- und Speicherpufferschaltung 16 schafft die notwendige
Kopplungsschaltungsanordnung zum Übertragen von Information über
die synchrone Rückseitenverbindung (SBI) 14 zu den Speichereinheiten
11 und den Ein-/Ausgabeeinheiten 12. Die Schaltung 16
erhält alle Daten von dem Speicher und alle Adressenübertragungen
von der Pufferschaltung 17. Sie weist einen assoziativen Speicher
oder einen Puffer auf. Jederzeit werden Daten in den Pufferspeicher
in der Schaltung von der Datenweg- und internen Registerschaltung
19 aus eingeschrieben; diese Daten werden auch an
entsprechende Stellen in den Speichereinheiten 11 eingeschrieben.
Die besondere Ausführungsform der zentralen Recheneinheit 10 arbeitet
mit virtuellen Adressen. Die Adressenübertragungs-Pufferschaltung
16 setzt die virtuellen Adressen in physikalischen bzw.
natürliche Adressen um, welche die Speicherpufferschaltung 16 benutzt,
entweder um festzulegen, ob sie Daten von der entsprechenden
Speicherstelle enthält, oder um eine Übertragung von der entsprechenden
tatsächlichen Speicherstelle in die Speichereinheiten
11 einzuleiten. Die Befehlspufferschaltung 18 weist, wie später
noch beschrieben wird, Einrichtungen zum Speichern von Befehlen
oder Teile davon auf, da sie entweder unmittelbar von dem Pufferspeicher
aus oder von der Speichereinheit 11 aufgefunden werden.
Das Bedienungspult 15 dient als Bedienungskopplungseinrichtung.
Sie erlaubt der Bedienungsperson Daten zu prüfen und abzulegen,
die Arbeitsweise der zentralen Recheneinheit 10 anzuhalten oder
sie über eine Folge von Programmbefehlen fortzuschalten. Sie ermöglicht
auch einer Bedienungsperson, das System über ein Ureingabeverfahren
einzuleiten und verschiedene Diagnoseverfahren
an dem ganzen Datenverarbeitungssystem durchzuführen.
In Fig. 1 werden die Speichereinheiten 11 zwei Speichersteuerungen
20A und 20B auf. Jede Speichersteuerung ist mit einer Anzahl Speicherfelder
verbunden. Insbesondere ist die Speichersteuerung 20A mit
Speicherfeldern 21A und die Speichersteuerung 20B mit Speicherfeldern
21B verbunden.
Es sind mehrere Arten von Ein-/Ausgabeeinheiten 12 dargestellt.
Eine Ein-/Ausgabe-Hauptleitungs-Anpassungseinrichtung 22 verbindet
verschiedene Ein-/Ausgabe(E/A)-Einrichtungen 23, beispielsweise
Fernschreiber, mit der Hauptleitung 14. Die Verbindung
bzw. Zusammenschaltung, die Operation und Übertragung von Signalen
zwischen der E/O-Hauptleitungs-Anpassungseinrichtung 22 und den
E/A-Einrichtungen 23 ist in der US-PS 37 10 324 beschrieben.
Zwei weitere E/A-Einheiten 12 schaffen einen Sekundärspeicher
für das Datenverarbeitungssystem. Sie weisen einen Sekundärspeicher-
Hauptleitungsadapter 24 und eine Anzahl Platteneinheiten
25 auf. Ferner ist ein Sekundärspeicher-Hauptleitungsadapter
26 und ein Bandlaufwerk 27 dargestellt. Die Verbindung der Sekundärspeicher-
Hauptleitungsadapter 24 und 26 und der jeweiligen
Platteneinheiten 25 und des Bandlaufwerks 27 ist in der eingang
erwähnten US-PS 39 99 163 beschrieben. In der US-Patentanmeldung
S. N. 8 45 415 sind die Wechselwirkungen der Elemente über die
SBI 14 beschrieben. Für die folgende Beschreibung ist es zweckmäßig,
diese Wechselwirkungen kurz zusammenzufassen und bestimmte
Begriffe einschließlich der Datenworte oder Gruppen
genau festzulegen, welche die vorliegende Ausführungsform der
Erfindung verarbeiten kann. Die grundsätzliche oder wichtigste
Informationsgruppe ist ein Byte. Dies ist in Fig. 2A dargestellt
und weist 8 Bits in der vorliegenden Ausführungsform der Erfindung
auf. Um die Länge zu vergrößern, ist die nächste Informationsgruppe
ein Wort, das in Fig. 2B dargestellt ist, und zwei Bytes
aufweist. In Fig. 2C ist ein "Langwort" dargestellt, das zwei
aufeinanderfolgende Worte oder vier aufeinanderfolgende Bytes
aufweist. In Fig. 2D ist ein "Vierer-Wort" dargestellt, welches
zwei aufeinanderfolgende "Langworte", d. h. vier aufeinanderfolgende
Worte oder acht aufeinanderfolgende Bytes aufweist. Jede
Informationsübertragung über das SBI 14 enthält ein Langwort.
Die SBI 14 weist ein Zeitmultiplex sowie Signalwege zum Übertragen
von Informationen und Steuersignalen auf. In der vorliegenden
Erfindung weist die Information Steuerinformationen und
Daten auf. Steuerinformation ist die Intelligenz, die benutzt
wird, um die Basis für die Datenverarbeitung zu steuern und zu
schaffen, während Daten eine Programm erzeugte Information ist,
welche Gegenstand der Verarbeitung selbst ist.
Jede Einheit, die mit der SBI verbindet, wird ein Verbindungsglied
genannt. Das in Fig. 1 dargestellte System weist sechs
Verbindungsglieder auf. Ein Verbindungsglied wird ferner anhand
seiner Funktion während eines Informationsaustausches festgelegt.
Zumindest zwei SBI-Übertragungen bzw. -transaktionen sind erforderlich,
um Information zwischen zwei Verbindungsgliedern auszutauschen.
Während einer ersten Transaktion überträgt ein Verbindungsglied,
das als ein Befehle übertragendes Verbindungsglied
dient, Befehls- und Adresseninformation an alle übrigen Verbindungsglieder.
Dieses Verbindungsglied wird ein übertragendes
Verbindungsglied, da es die SBI 14 ansteuert, und ein Befehlsverbindungsglied
genannt, da es die Befehls- und Adresseninformation
übertragen hat. Während dieser Transaktion sind alle übrigen Verbindungsglieder
empfangende Verbindungsglieder. Jedoch spricht
nur ein empfangenes Verbindungsglied auf die Adresseninformation
an. Dieses Verbindungsglied ist ein Antwort-Verbindungsglied
und es überträgt eine Empfangsbestätigung der Befehls- und Adresseninformation
in einem fest vorgegebenen Intervall, nachdem das
Befehlsverbindungsglied diese Information überträgt. Wenn infolgedessen
die zentrale Recheneinheit 10 Daten aus der Speichersteuerung
20A auffinden muß, wird die zentrale Recheneinheit 10 ein Befehlsverbindungsglied
und überträgt einen Lesebefehl und eine Adresse,
auf welche die Speichersteuerung 20A anfangs als ein empfangenes
Verbindungsglied und dann als ein Antwortverbindungsglied anspricht.
Nach einigen Intervallen ist die Speichersteuerung 20A vorbereitet,
um die aufgefundenen Daten an die zentrale Recheneinheit
10 abzugeben. Wie in den eingangs angeführten Patentanmeldungen
beschrieben ist, sucht sie eine Steuerung der SBI 14. Wenn sie
eine Steuerung erlangt, wird die Speichersteuerung 20A ein übertragendes
Antwortverbindungsglied und überträgt die erforderlichen
Daten an die SBI 14 für eine Übertragung an die zentrale Recheneinheit
10. Während dieser Übertragung ist die zentrale Recheneinheit
10 ein empfangenes Befehlsverbindungsglied.
Ähnliche Transaktionen werden für irgendeinen Informationsaustausch
zwischen zwei Verbindungsgliedern durchgeführt, obwohl die Speichersteuerungen
normalerweise nur als Antwortverbindung für Glieder
arbeiten und die zentrale Recheneinheit normalerweise nur als ein
Befehlsverbindungsglied arbeitet. Bei der Erfindung schließen
übliche Informationsaustauschvorgänge die Übertragung von Befehlen,
von Operanden-Spezifikationssymbolen und von verwandten Informationen
sowie von Daten an die zentrale Recheneinheit 10 und
die Übertragung von verarbeitenden Daten zurück an die Speichereinheit
11 ein.
Die SBI-Kopplungs- und Speicherpufferschaltung 16 weist, wie der
Name bereits sagt, einen Puffer oder einen assoziativen Speicher
auf. Für Informationsübertragungen an die zentrale Recheneinheit
10 wird der Pufferspeicher zuerst abgefragt, um festzulegen, ob
er bereits die geforderte Information enthält. Wenn dies der Fall
ist, ist kein Informationsaustausch mit der Speichereinheit 11 erforderlich.
Wenn der Pufferspeicher keine Information enthält,
leitet die SBI-Kopplungsschaltung eine Speicherleseoperation ein,
die ein Vierfachwort enthält. Diese Information wird zusammen mit
den physikalischen Adressen in dem Speicher für diese Information
an den Pufferspeicher übertragen. Gleichzeitig wird die Information
der Befehlspufferschaltung 18, wenn ein Befehl zu übertragen
ist, oder der Datenweg- und internen Registerschaltung 19
zugeführt, wenn eine andere Information zu übertragen ist. Wenn
die zentrale Recheneinheit 10 Information zurück an die Speichereinheit
11 überträgt, überträgt sie die Information an den Pufferspeicher.
Die SBI-Kopplungs- und Speicherpufferschaltung 16 leitet
dann die nötigen SBI-Transaktionen ein, um zuerst die erforderliche
Befehls- und Adresseninformation und dann die Daten zu übertragen.
Die Einzelheiten dieser Transaktionen sind in der US-Patentanmeldung
S. N. 8 45 415 beschrieben, und ein Verständnis dieser
Einzelheiten ist zum Verständnis der Erfindung nicht erforderlich.
In Fig. 3 ist ein verallgemeinertes Blockschaltbild der zentralen
Recheneinheit 10 dargestellt. Es weist das Bedienungspult 15, die
SBI 14 und die anderen Schaltungen auf, welche die SBI-Kopplungs-
und Speicherpufferschaltung 16, die Adressenübertragungs-Pufferschaltung
17 und die Befehlspufferschaltung 18 bilden. Insbesondere
arbeitet die zentrale Recheneinheit 10 unter einer Zeitsteuerung
eines Taktgenerators 10. Die spezielle Zeitsteuerung wird bei der
Erörterung der entsprechenden Ablaufdiagramme verständlich. Die
SBI-Kopplungs- und Speicherpufferschaltung 17 weist eine SBI-
Steuerschaltung 31 auf, welche mit der SBI 14 und mit einer Hauptleitung
32 für physikalische Adressen, der PA-Leitung 32 verbunden
ist. Die PA-Leitung 32 ist mit einer Datenpufferschaltung 33 und
einem Umsetzpuffer 34 verbunden. Der Umsetzpuffer 34 setzt virtuelle
Adressen-(VA)-Information und andere Steuerinformation in
eine physikalische Adresse um, welche gleichzeitig an die SBI-
Steuerung 31 und den Datenpuffer 33 übertragen wird. Daten von
dem Datenpuffer 33 oder von einer anderen Stelle an der SBI 14,
welche über die SBI-Steuerung 31 läuft, wird über eine Speicherdaten-
(MD-)Leitung 35 an andere Elemente in der zentralen Recheneinheit
10 übertragen. Diese Einheiten weisen Datenwege 36 und
eine Befehlspuffer- und Dekodierschaltung 37 auf.
Eine Mikroprogrammsteuer-(UPC-)Leitung 38 überträgt Signale
von der Befehlspuffer- und Dekodierschaltung 37 an einen Programmsteuerspeicher
40. Der Programmsteuerspeicher erzeugt dann verschiedene
Steuersignale auf einer CS-Leitung 41, und diese Leitung
überträgt Signale an den Umsetzpuffer 34, die Datenwege 36, den
Befehlspuffer und -dekodierer 37 und an eine (nicht programmierte)
Sprünge-Unterbrechungen entscheidende Schaltung 42. Diese Schaltung
und das Bedienungspult 15 stehen über eine Befehlsdaten-
(ID-)Leitung 43 mit einem Mikrosortierer 44 in Verbindung, welcher
die Operationsfolge entsprechend den in dem Programmsteuerspeicher
40 gespeicherten Mikrobefehlen steuert.
Der Mikrosortierer 44 stellt einen Auffindzustand her, um einen
Befehl zu erhalten. Der Programmzählerstand, welcher die Anfangsadresse
des nächsten aufzufindenden Befehls genau festlegt, läuft
von den Datenwegen 36 über den Umsetzpuffer 34 zu der PA-Leitung
32. Wenn der Datenpuffer 33 gültige Informationen an einer Stelle
enthält, die der genau festgelegten physikalischen Adresse entspricht,
überträgt er Daten über die MD-Leitung 35 an die Befehlspuffer-
und Dekodierschaltung 37. Wenn diese Schaltung 37 andere Datenwege,
über welche andere Information an den Umsetzpuffer 34 übertragen
wird, um dadurch andere Daten an Register in den Datenwegen 36
entweder von dem Datenpuffer 33 oder nach einem Wiederauffinden
von den Speichereinheiten 11 oder anderen Speichereinheiten in der
SBI 14, von der SBI-Steuerung 31 zu übertragen. Wenn der Befehl
Daten anfordert, die an eine tatsächlich adressierte Stelle zu
übertragen sind, schafft der Mikrosortierer 44 die Datenwege, die
erforderlich sind, um Signale an dem Umsetzpuffer 34 zu übertragen,
um dadurch die physikalische Adresse zu bilden, und um die Daten
gleichzeitig an den Datenpuffer 33 und die SBI-Steuerung 31 zu
übertragen. Während jeder derartigen Übertragung leitet die SBI-
Steuerung 31 einen Austausch mit der im einzelnen festgelegten
Speicherstelle ein.
In Fig. 4 ist ein typischer Befehl dargestellt, der von der in
Fig. 3 dargestellten, zentralen Recheneinheit verarbeitet werden
kann. Der in Fig. 4 oben dargestellte Befehl weist einen Operationskode
50 auf, der als ein Längenbyte dargestellt ist. Aus der
folgenden Erläuterung ist jedoch zu ersehen, daß die zentrale
Recheneinheit 10 Mehrfachbyte-Operationskode verarbeiten kann.
In diesem spezifischen Befehl folgen auf den Operationskode nacheinander
drei Operandenspezifikationsteile 51, 52 und 53
(im folgenden Operanden-Spezifizierer genannt).
Die Operanden-Spezifizierer 51 und 52 weisen jeweils
ein Byte auf, während der Operanden-Spezifizierer 53 zwei Bytes
aufweist. Der Aufbau eines Operanden-Spezifizierers mit einem
einzigen Byte ist ebenfalls in Fig. 4 dargestellt. Er weist zwei
Felder auf. Die höherwertigen Bits stellen ein Registerbetriebsfeld
dar, und die niedrigerwertigen Bits bilden ein Registeradressenfeld.
Das Registeradressenfeld gibt ein ganz bestimmtes Register
an, welches in der Datenwegschaltung 36 festgelegt ist, die in
Fig. 3 und im einzelnen in Fig. 5 dargestellt ist. In dieser speziellen
Ausführungsform weisen die Bytes acht Bits auf, so daß vier
Bits für jedes der Registerbetriebs- und Registeradressenfelder
verfügbar sind, damit eines von 16 Mehrzweckregistern durch einen
Operanden-Spezifizierer adressiert werden kann.
Wenn die zwei höchstwertigen Bits des Registerbetriebsfeldes 54
Nullen sind (Registermodus 0 bis 3) weist der Operanden-Spezifizierer
51 den Operanden, d. h. ein Literal auf, das irgendeinen
Datenwert bis zu sechs Bits aufweist, die Dezimalzahlen von 0
bis 63 darstellen.
Wenn das Register-Betriebs- bzw. Modusfeld 54 einen Dezimalwert
von 4 enthält, wie in dem Registermodusfeld 54A für den Operanden-
Spezifizierer 53 dargestellt ist, ist ein Indexmodus genau festgelegt.
Wenn das Registermodusfeld, beispielsweise das Registermodusfeld
34A einen indexierten Adressiermodus festlegt, identifiziert
das entsprechende Registerfeld 54A eines der Mehrzweckregister,
das dann als ein Indexregister beim Verarbeiten des Operanden-
Spezifizierers zu verwenden ist. Ein zweiter Operanden-Spezifizierer
ist in dem Befehl für eine indexierte Adressierung vorgesehen.
Dieser zweite Operanden-Spezifizierer schafft eine Basisadresse,
an welcher die Inhalte des bezeichneten Indexregisters
addiert werden. Eine genauere Beschreibung der indexierten
Adressierung wird später gegeben.
Wenn das Registermodusfeld 54 eine "5" enthält, ist eine Registermodusadressierung
festgelegt. Bei dieser Betriebsart enthält
das durch das Registerfeld adressierte Mehrzweckregister den
Operanden. Für jeden der Registermodus 6, 7 und 8 enthält das genau
angegebene Register die Speicheradresse für den Operanden.
Bei dem Modus 6 enthält das bezeichnete Register die Adresse des
Operanden. Beim Registermodus 7 wird der Inhalt des bezeichneten
Registers zuerst schrittweise zurückgezählt, bevor die Adresse
festgestellt wird; bei dem Modus 8 wird der Inhalt des bezeichneten
Registers schrittweise erhöht, nachdem das Register zum
Bestimmen der Adresse verwendet worden ist. Der Registermodus 9
entspricht dem Registermodus 8, außer daß der Inhalt des bezeichneten
Registers genau die Adresse in dem Speicher festlegt,
an welcher die Operandenadresse und nicht der Operand selbst zu
finden ist.
Die Betriebsarten 10 bis 15 sind alles Verschiebungsmodusarten.
Bei der Verschiebung wird der Verschiebungswert, welcher ein
Byte, ein Wort oder ein Langwort bei den Betriebsarten 10, 12
bzw. 14 aufweisen kann, zu dem Inhalt in dem bezeichneten Register
addiert, um die Operandenadresse zu erhalten. Entsprechende Operationen
kommen in den Betriebsarten 11, 13 und 15 vor, außer daß
die Summe des Verschiebungswertes und der Registerinhalt eine
Speicheradresse bestimmen, an welcher die Adresse des Operanden
gefunden werden kann. In jeder der vorerwähnten Betriebsarten 8
bis 15 kann das Registerfeld 55 des Operanden-Spezifizierers eines
der Mehrzweckregister bestimmen, welche den Programmzähler aufweisen.
In Fig. 5 zusammen mit Fig. 5A bis 5C und in Fig. 6A sind die
Datenwege 36 und die Befehlspuffer- und Dekodierschaltung 37 im
einzelnen dargestellt. Es gibt grundsätzliche Betriebskenndaten
dieser speziellen Ausführungsform, welche die Arbeitsweise
der zentralen Recheneinheit 10 optimieren. Eine ins einzelne gehende
Kenntnis dieser Operationen ist zum Verständnis der Erfindung
nicht erforderlich, so daß sie nur kurz dargelegt werden.
In Fig. 6A weist die Befehlspuffer- und Dekodierschaltung 37 einen
Befehlspuffer 60 auf, welcher acht aufeinanderfolgende Bytes
speichert. Übertragungen in den Befehlspuffer 60 werden entsprechend
Signalen von einer Befehlspuffer-Steuerschaltung 61 durchgeführt.
Jede Bytestelle in dem Befehlspuffer 64 enthält eine
Gültigkeitsbitstelle, welche anzeigt, ob die Daten in dem Rest
dieser Bytestelle gültig sind (d. h. die Gültigkeitsbitstelle wird
gelöscht, sobald das Byte nicht mehr länger benötigt wird). Wenn
dies Gültigkeitsbit anzeigt, daß die Daten an einer bestimmten
oder an mehreren Bytestellen nicht mehr länger gültig sind, gibt
die Befehlspuffer-Steuerschaltung 61 ein IB REQ-Signal ab, das
eine Übertragung zu dem Befehlspuffer 60 über die MD-Leitung 35
entweder von dem Datenpuffer 31 aus oder über die SBI-Steuerung
31 erfordert. Eine weitere Schaltung in der Befehlspuffer-Steuerschaltung
61 stellt die höchstwertige Bytestelle mit Hilfe von
ungültigen Daten fest und schiebt höherwertige Bytes in diese
Bytestellen. Während dieser Übertragungen werden die Daten aller
höheren Bytes geändert.
Die Übertragungen über die MD-Leitungen 35 sind Langworte (Fig. 2C),
die über einen Multiplexer 62 laufen. Eine Verschiebeschaltung 63
ist auch dem Ausgang des Befehlspuffers 60 und dem Eingang des
Multiplexers 62 zugeordnet, um die Datenbytes zu verschieben. Infolgedessen
führt die Befehlspuffer-Steuerschaltung 61 die entsprechende
Information den ausgewählten Bytestellen in dem Befehlspuffer
60 zu. Tatsächlich füllt die Befehlspuffer-Steuerschaltung
61 dadurch fortlaufend den Befehlspuffer 60 mit gültigen
Daten.
Das Ansprechen der zentralen Recheneinheit 10 auf einen typischen
Befehl wird nunmehr beschrieben. Die Befehlspuffersteuerung
61 gibt ein Befehlspuffer-Anforderungssignal, ein IB REQ-Signal
ab. Zu diesem Zeitpunkt wird der Inhalt eines Programmzählerregisters
64 in Fig. 5A, das eine virtuelle Adresse enthält, über
einen B-Multiplexer (BMX) 65 in Fig. 5B und über eine arithmetische
und logische Einheit (ALU) 66 sowohl an ein Sperrglied 67
in Fig. 5A für eine virtuelle Adresse (VA) als auch an Befehlspufferadressen-
(IBA-)Sperrglied 68 übertragen. Das VA-Sperrglied
67 speichert die Befehlsadresse, um mit Hilfe der Schaltung in
der Umsetzpufferschaltung 34 die physikalische Adresse zu schaffen.
Das Bezugspufferadressen-Sperrglied 68 wird während der folgenden
Informationsübertragung an den Befehlspuffer 60 (Fig. 6A)
verwendet, wenn Information von diesem Puffer verwendet wird, und
ungültig wird. Die vorstehend beschriebene Operation stellt den
Schritt A1 in Fig. 7 dar. Beim Schritt A2 stellt die ankommende
Information, welche auf der MD-Leitung 35 in Fig. 6A anliegt,
den ganzen oder ein Teil des Befehls dar. Diese Information
wird über den Multiplexer 62 entsprechend den Signalen von der
Befehlspuffer-Steuerschaltung 61 und an den Befehlspuffer 60 übertragen.
Zu diesem Zeitpunkt enthält die Byte 0-Stelle in dem Befehlspuffer
60 eine Operationskodeinformation. In der vorliegenden
Ausführungsform weist jeder Operationskode nur ein Byte auf. Jedoch
ist aus der folgenden Beschreibung zu ersehen, daß der
Operationskode zwei oder mehr Bytes aufweisen könnte, und daß
eine Schaltung, die der nachfolgend beschriebenen Schaltung zum
Dekodieren von Operanden-Spezifizierern entspricht, derartige
Mehrfach-Operationskode dekodieren würde.
Wenn nur eine Byte-0-Stelle in dem Befehlsregister 60 den Operationskode
enthält, enthält die Byte-1-Stelle den ganzen oder
einen Teil eines ersten Operanden-Spezifizierers. Das Byte 0
wird in einem Byte-0-Sperrglied 70 gespeichert, das einen Ausführungsadressenspeicher
71 steuert. Der Inhalt der Byte-1-Stelle
wird zusammen mit Ausgangssignalen von dem Ausführungsadressenspeicher
71 an eine logische Spezifizierer-Dekodierschaltung 72
angelegt.
Der Ausführungsadressenspeicher 71 speichert eine Tabelle, welche
Eingaben für jeden Befehl aufweist, der von der zentralen Recheneinheit
10 ausgeführt werden kann. Die Stelle einer ganz bestimmten
Eingabe in der Tabelle wird von den Operationskodesignalen
von dem Byte-0-Sperrglied 70 und von Signalen von einem Ausführungsstellenzähler
73 erhalten. Anfangs wird der Zähler 73 auf
eine Bezugszahl (z. B. 0) eingestellt. Wenn jeder Operanden-Spezifizierer
dekodiert ist, wird der Zähler 73 weiter geschaltet,
um eine neue Tabelleneingabe festzulegen. Jede Eingabe in die
Tabelle kennzeichnet bestimmte Kenndaten des Operanden-Spezifizierers,
wie beispielsweie die Größe des erwarteten Datenworts
und ob der Operanden-Spezifizierer eine Stelle identifiziert, von
welcher oder an welche der Operand zu übertragen ist. Signale
für jede ausgewählte Tabelleneingabe laufen zu der Spezifizierer-
Dekodierlogik 72, um einen Teil der Startadresse zu steuern, die
der Mikrosortierer 44 in Fig. 3 verwendet, um die Datenwege und
eine Folge zum Dekodieren des Operanden-Spezifizierers zu schaffen.
Über die UPC-Leitung 38 werden die Signale von der Spezifizierer-
Dekodierlogik 72 an den Mikrosortierer 44 übertragen.
In Fig. 6B sind die Kenndaten des Operanden-Spezifizierers dargestellt,
welche in einer ganz bestimmten Ausführungsform des Ausführungsadressenspeichers
71 gespeichert sind. Die zwei niedrigwertigen
Bits von dem Speicher 73 legen die Art des Datenwortes
fest, das enthalten ist und verlangt wird; normalerweise weist ein
Datenwort entweder eine ganze Zahl oder eine Gleitkommazahl auf.
Die nächsten zwei Bits in der Reihenfolge geben die Länge des
Operanden wieder. Die folgenden zwei Bits legen die Operation
fest, die vorzunehmen ist. Die letzten zwei Bits legen einen die
Information betreffenden Zugriff fest. Wenn beispielsweise das
Byte 0-Sperrglied 70 und der Zähler 73 eine Stelle kennzeichnen,
welche die Binärzahl 01001000 enthält, bezeichnet der entsprechende
Operanden-Spezifizierer eine Langwort-Ganzzahl, die aus dem Speicher
wieder aufzufinden ist. Wie vorstehend ausgeführt, gibt es
eine Eingabe in den Durchführungsadressenspeicher 71 für jeden
Operandenspezifizierer in jedem Befehl, den die zentrale Rechenheit
10 verarbeiten kann. Infolgedessen schafft der Operationskode
für das Byte 0-Sperrglied 70 eine Basisadresse, und der Zähler 73
gibt Signale ab, die mit der Basisadresse zusammengefaßt werden,
um nacheinander die Tabelleneingaben zu bestimmen, die jedem
Operanden-Spezifizierer entsprechen.
Signale von dem Ausführungsadressenspeicher 71 und dem Operanden-
Spezifizierer an der Byte 1-Stelle in dem Befehlspuffer werden an
die Spezifizierer-Dekodierlogik 72 übertragen, welche eine Startfolgeadresse
für jeden vorgegebenen Operanden-Spezifizierer entsprechend
diesen Signalen bestimmt. Die Startadresse für jeden
vorgegebenen Mikrobefehl in der Folge weist höherwertige Bits,
die von dem Befehl selbst abhängen, und niedrigerwertige Bits auf,
die von der Art der Information in dem Operandenspezifizierer abhängen.
Typische niedrigerwertige Adressenbits sind in Fig. 6C
dargestellt. Insbesondere wenn das Registermodusfeld des Operandenspezifizierers
eine "vier" enthält, und das Registerfeld nicht
den Programmzähler bezeichnet, sind die niedrigerwertigen Startadressenbits
"1C" (in hexadezimaler Darstellung). Hierdurch wird
dann die Stelle gesteuert, an welcher der Mikrosortierer 44 beginnt,
eine Folge auszuführen, die mit einem Mikrobefehl beginnt,
der in dem Programmsteuerspeicher 40 (Fig. 3) an der Stelle festgelegt
ist, die durch die Startadresse bestimmt ist.
Bevor diese Information dekodiert wird, führt jedoch der Mikrosortierer
44 weitere Operationen durch. Bei dem Schritt A3 in
Fig. 7 benutzt der Mikrosortierer 4 die Registerfeldstellen an
der Bit 1-Stelle des Befehlspuffers 60, um an ein A-Sperrglied
75 in Fig. 5B den Inhalt eines Registers in dem Registerspeicher
76 zu übertragen, welcher dem Inhalt des Registerfelds entspricht.
Wenn das Registermodusfeld in dem Operanden-Spezifizierer einen
der Modusarten 0 bis 3 festlegt, enthält der Operandenspezifizierer
den Operanden und wird dekodiert. Der Mikrosortierer 44
beginnt dann entweder den nächsten Operanden-Spezifizierer in dem
Befehl zu verarbeiten oder führt den Befehl aus.
Wenn der Operanden-Spezifizierer nicht ein Literal aufweist, verschiebt
der Mikrosortierer von dem Schritt A3 zum Schritt A4.
Bei diesem Schritt werden der Inhalt des Registers in dem Registerspeicher
80, der durch das Registerfeld der Information an der
Byte 1-Stelle des Befehlspuffers 60 gekennzeichnet ist, an ein
B-Sperrglied 81 übertragen. In dieser speziellen Ausführungsform
werden die A- und B-Registerspeicher 76 und 80 als Nachbildungen
voneinander erhalten und bilden alle Mehrzweckregister, die durch
den Inhalt des Registerfeldes eines Operanden-Spezifizierers
adressiert werden können. Für irgendeine Betriebsart, die nicht
ein Literal-Modus ist, enthält das B-Sperrglied 81 eine Adresse.
Infolgedessen schafft beim Schritt A5 der Mikrosortierer 44 einen
Datenweg über den B-Multiplexer 65 und die ALU-Einheit 66 und
überträgt die Adresse an das Sperrglied 67 für virtuelle Adressen.
Außerdem läuft diese Adresse ohne eine Änderung über eine Schiebeschaltung
82, einen DF-Multiplexer 83 und einen Demultiplexer
84 zu einem D-Register 85. Diese Bits, die dem Exponententeil
einer Gleitkommazahl entsprechend würden, werden gleichzeitig
von der ALU-Einheit 32 an einen Exponentenabschnitt 86 der Datenwege
36 übertragen.
Bei dem Schritt A6 überträgt das System den Inhalt des Programmzählers
64 an ein Programmzähl-Sicherstellungsregister 90, um
dadurch bestimmte Befehle freizugeben, die lange Verarbeitungsintervalle
erfordern, die in dem Fall anhängig bzw. offen sind,
wenn eine Unterbrechung vorkommt. Eine Schaltungsanordnung zum
Fühlen von Unterbrechungsbedingungen und zum Steuern von Ablaufoperationen
wird dann freigegeben. Der Mikrosortierer 44 in
Fig. 3 überträgt den Inhalt der Byte 2- bis 5-Stellen in dem Befehlspuffer
60 über die ID-Leitung 43 und über einen Q-Multiplexer
91 an ein Q-Register 92. Diese Bytestellen enthalten Information,
die potentielle Verschiebungswerte darstellt, wenn der Operanden-
Spezifizierer einen der Verschiebungsmoden festlegt.
Beim Schritt A4 in Fig. 7A wird die Befehlspuffersteuerung 61
freigegeben, um Informationsübertragungen anzufordern, um fortlaufend
den Befehlspuffer 60 mit gültiger Information zu füllen.
Wenn eine Anzahl Bytes in dem Befehlspuffer gelöscht werden kann,
wird diese Löschoperation beim Schritt A9 durchgeführt und beim
Schritt A10 wird der Programmzähler 64 schrittweise weitergeschaltet,
um die Byteanzahl auszugleichen, die gelöscht worden ist.
Diese Löschoperation und das Aktualisieren des Programmzählers
werden durchgeführt, wenn bereits wichtige Daten in dem Q-Register
92 vorhanden sind. Beim Schritt A11 legt die zentrale Recheneinheit
10 fest, ob der Operanden-Spezifizierer ein Literal enthält.
Wenn dies der Fall ist, zweigt der Mikrosortierer 44 bei dem Schritt
A12 ab, um das Literal in dem Q-Register 92 unterzubringen. Dann
wird der nächste Operanden-Spezifizierer dekodiert, oder wenn alle
Operanden-Spezifizierer dekodiert worden sind, verarbeitet die
zentrale Recheneinheit 10 den oder die Operanden entsprechend dem
Operationskode. Wenn der Operanden-Spezifizierer nicht ein Literal
enthält, zweigt der Mikrosortierer 44 bei dem Schritt A13 ab,
um die Operanden-Spezifizierer-Dekodieroperation zu beenden.
An dieser Stelle in der Folge erhält das A-Sperrglied 75 eine Information,
die den Registerbitstellen von der Byte 2-Stelle in dem Befehlspuffer
60 (Fig. 6A) entspricht. Das B-Sperrglied 81, das
Sperrglied 67 für virtuelle Adressen und das D-Register 85 enthalten
den Inhalt des Registers, das durch die Registerfeldbits an
der Byte 1-Stelle des Befehlspuffers 60 ausgewählt wurde. Das Q-
Register 92 enthält irgendwelche Befehlsstromdaten, die vorhanden
sein können, während der Programmzähler 64 die Adresse des nächsten
Operanden-Spezifizierers enthält. Weitere Operationen hängen von
dem genau festgelegten, zu dekodierenden Befehl und von der Art
des Operanden-Spezifizierers ab. Es gibt zahlreiche Möglichkeiten,
wie die zentrale Recheneinheit die Operanden-Spezifierer-Dekodieroperation
beenden kann. Eine erschöpfende Beschreibung jeder
Möglichkeit würde eine außerordentlich lange Beschreibung erfordern.
Jedoch kann die Arbeitsweise einer zentralen Recheneinheit 10
gemäß der Erfindung vollkommen verstanden werden, indem die
Arbeitsweise der zentralen Recheneinheit 10 anhand von einigen
typischen Befehlen geprüft wird.
In Fig. 8A ist ein Befehl zum Addieren von Information an zwei
Stellen und zum Einbringen der Summe an einer dritten Stelle
dargestellt, ohne entweder die erste oder die zweite Speicherstelle
zu beeinflussen, da dies in dem Pufferspeicher 60 erscheinen
würde, nachdem der Befehl beim Schritt A2 in Fig. 7
aufgefunden worden ist. In Fig. 8B ist die Information wiedergegeben,
die bei den Tabelleneingaben für den Operationskode
gespeichert ist, der diesem Befehl, welcher "C1" ist, zugeordnet
ist. Die Bedeutung der einzelnen Bitstellen, welche die Operanden-
Spezifizierer-Information wiedergeben, ist in Fig. 6B dargestellt.
Der erste Operanden-Spezifizierer ist "07". Wenn sich der Ausführungszähler
73 auf "00" befindet, enthält die entsprechende
Tabelleneingabe in dem Ausführungsadressenspeicher 71 (Fig. 8B)
die folgende Information: (1) Ein Spezifizierer ist ausgewählt
worden (Bits 4 und 5); (2) der Operand ist eine ganze Zahl
(Bits 0 und 1); (3) der Operand enthält 4 Bytes (Bits 2 und 3)
und (4) der Operand ist aus dem Speicher auszulesen (Bits 6
und 7). Infolgedessen hat die Information, die von der Byte
1-Stelle in dem Pufferspeicher 60 an die Spezifizierer-Dekodierlogik
72 übertragen wird, zur Folge, daß die Spezifizierer-Dekodierlogik
72 "00" als die niedrigerwertigen Bits in der Startadresse
für den Mikrosortierer 44 erzeugt (siehe Fig. 6B). Nach
der Folge in Fig. 7 schafft der Mikrosortierer 54 beim Schritt
B1 in Fig. 8C die notwendigen Datenwege, um dies Literal
nämlich "7" von dem Q-Register 92 an das D-Register 85 über
eine Datenjustierschiene 93 und den D-Multiplexer 84 zu übertragen.
An dieser Stelle verschiebt die Befehlspuffersteuerung
61 die Bytes 2 bis 7 um eine Stelle nach rechts und schiebt den
Ausführungsstellenzähler 73 auf "01" (Schritt B2). Aus der Tabelle
in Fig. 8B ist zu ersehen, daß dadurch angezeigt wird, daß nunmehr
die Information im Byte 1 ein Operanden-Spezifizierer für
eine Langwort-Ganzzahl ist, die an die zentrale Recheneinheit
10 zu übertragen ist.
Nunmehr schaltet das System unmittelbar auf die Schritt in Fig. 7
zurück. Beim Schritt A11 wird der zweite Operanden-Spezifizierer
bewertet. In Verbindung der nunmehr die verschiedenen Tabellen
in Fig. 4, 6B, 6C und 8B geschaffene Information spricht der
Mikrosortierer an, um die Datenwegfolge zu schaffen, die notwendig
ist, um einen Operanden-Spezifizierer zu dekodieren, der eine
Byteverschiebung zum Adressieren benutzt. Während dieser Dekodierfolge
erhalten das A-Sperrglied und B-Sperrglied 81 den Inhalt
des Registers R1 (Schritt B3). Das Q-Register erhält den Byteverschiebungswert
"20" im Byte 3 in Schritt B4. Beim Schritt B5
gibt die ALU-Einheit 66 die Summe des Inhaltes B-Sperrglieds 81
ab, welches den Inhalt des bezeichneten Registers und den Inhalt
des Q-Registers 92 enthält, welches den Verschiebungswert enthält.
Insbesondere der Inhalt des Q-Registers 92 läuft über den
RA-Multiplexer 94 und einen A-Multiplexer 95 in den A-Eingang der
ALU-Einheit 66, während der Inhalt des B-Sperrglieds 81 über
den B-Multiplexer 65 in de ALU-Einheit 66 läuft. Die Summe dieser
zwei Eingänge stellt die verschobene Adresse dar, welche dann
an das Sperrglied 67 für virtuelle Adressen und auch zurück über
die Schiebeschaltung 82, den DF-Multiplexer 83 und den Q-Multiplexer
94 an das Q-Register 82 übertragen wird. Beim Schritt B6
gibt der Mikrosortierer 44 die Befehlspuffersteuerung 61 frei,
um den Inhalt des zweiten Operanden-Spezifizierers aufzulegen und
um eine Forderung einzuleiten, den zweiten Operanden im Schritt
B7 zu erhalten. Beim Schritt B8 überträgt der Mikrosortierer 44
den zweiten Operanden von der MD-Leitung über eine weitere Datenjustierschiene
96 und den D-Multiplexer 84 an das D-Register 85,
und der ersten Operand wird an das Q-Register 92 übertragen.
Nunmehr schaltet der Mikrosortierer 44 den Durchführungsstellenzähler
73 (Schritt B9) zu der dritten Tabelleneingabe in Fig. 8B
weiter, die eine Ausführung genau festlegt. Infolgedessen steuert
der Mikrosortierer 44 die ALU-Einheit 66, so daß die arithmetische
Summe der zwei Summanten erzeugt und die Summe dann an das D-
Register 85 während des Schritts B10 überträgt.
Beim Schritt B11 schaltet der Mikrosortierer 44 den Zähler 73
auf "11", den in Fig. 8B wiedergegebenen Endzustand. Die Information
in der Tabelle zeigt an, daß der Operanden-Spezifizierer
eine Adresse in dem Speicher bezeichnet, eine 4-Byte-Ganzezahl
einzuschreiben ist. Der Wert C2 befindet sich an der Byte 1-
Stelle des Befehlspuffers 60, und das "C" in dem Registermodusfeld
legt eine Wortverschiebungsadresse fest. Infolgedessen benutzt
der Mikrosortierer 44 die Schritte B12 bis B16, um die
Speicheradressen zu berechnen, und um eine Übertragung der Summe
an diese Speicherstelle einzuleiten. Wenn diese Schritte beendet
sind, löscht der Mikrosortierer 44 den Zähler 73 beim Schritt
B17 und kehrt zu den Schritten in Fig. 7 zurück, um dadurch die
Übertragung und Dekodierung des nächsten Befehls einzuleiten.
Der dritte in Fig. 8A dargestellt Operanden-Spezifizierer legt
eine Wortverschiebung fest. Wenn der Addierbefehl iterativ verwendet
wurde und wenn aufeinanderfolgend Summen in einem Stellenfeld
gespeichert werden sollen, kann ein Programmierer dies auswählen,
um die Wortverschiebung zu benutzen, aber auch um die
Stellen zu indexieren. Eine derartige indexierte, verschobene
Adresse kann mit Hilfe dieser zentralen Recheneinheit geschaffen
werden. Der Programmierer würde den dritten Operanden-Spezifizierer
in Fig. 8A ändern, damit er als der Befehl in Fig. 9A
anliegt. Dieser Befehl kennzeichnet das R7-Register als ein
Indexregister.
Insbesondere die ursprüngliche Byte 4-Stelle in dem Befehlspuffer
enthält "47", wenn die Befehlsdikodieroperation beginnt. Der Schritt
C1 in Fig. 9C entspricht dem Schritt B11 in Fig. 8C. Beim Schritt
C1 wird der Zähler 73 in Fig. 6A weiter geschaltet, um dadurch
eine Schreiboperation mit einer Langwort-Ganzzahl anzuzeigen.
Zu diesem Zeitpunkt enthalten das A-Sperrglied 75 und das B-
Sperrglied 81 den Inhalt des Registers 7; das Q-Register 92 und
das Sperrglied 67 für virtuelle Adressen enthalten die zweite
Operanden-Adresse und das D-Register 85 enthält die Summe der
Addition. Zum Zeitpunkt des Schrittes C1 belegte der dritte
Operandenspezifizierer die Byte 2- bis Byte 5-Stellen in dem
Befehlspuffer 60. Infolgedessen enthält das A-Sperrglied 65 den
Inhalt des R7-Registers, welche das bezeichnete Indexregister
ist. Beim Stand C2 wird der Inhalt des A-Sperrgliedes über den
A-Multiplexer 65 und die ALU-Einheit 66 an die Schiebeschaltung
82 übertragen.
Die Schiebeschaltung 82 verschiebt den Indexwert nach links an
eine Stellenzahl, welche dem Längensignal von dem Ausführungsadressenspeicher
71 während des Schritts C3 entspricht. In diesem
Fall ist ein Langwort enthalten, so daß Längenfeld "10"
enthält und der Index zwei Stellen verschoben wird, um dadurch
wirksam den Indexwert mit 4 zu multiplizieren und
die Größe des Langwort-Datenworts auszugleichen, das zu übertragen
ist. Wenn ein Byte zu übertragen ist, kommt es zu keiner
Verschiebung, so daß der Index wirksam mit 1 multipliziert wird,
während, wenn ein Vierfachwort zu übertragen ist, der Indexregisterinhalt
dreimal nach links verschoben wird, um dadurch
wirksam den Index mit 8 zu multiplizieren und die 8 Byte-Vierfachwortgröße
auszugleichen. Infolgedessen normiert diese Operation
den Indexwert auf die Größe des zu übertragenden Datenworts.
Nach dem Normieren wird der Indexwert in einem C-Registerspeicher
97 an einer vorbestimmten Stelle gespeichert, welche als ein
T7-Register während des Schrittes C4 spezifiziert wird. Auch der
Inhalt der Byte 1-Stelle in dem Befehlspuffer 60 wird gelöscht,
so daß der Wert "C" in die Byte 1-Stelle geschoben wird. Beim
Schritt C5 wird der Inhalt der Bytestellen 2 bis 5, welche einen
Verschiebungswert von "0140" aufweist, über die ID-Leitung 43 an
das Q-Register 92 übertragen. In Abhängigkeit von dem Operationskode
und dem zu verarbeitenden Operanden-Spezifizierer steuert
dann die Spezifizierer-Dekodierlogik 72 das Löschen der Bytestellen
1 bis 5 in dem Befehlspuffer beim Schritt C6 und schaltet
dem Programmzähler um eine entsprechende Zahl beim Schritt C7
weiter. Währed des Schritts C8 wird die Befehlspuffersteuerung
61 freigegeben, um Information von irgendeiner durch den Inhalt
des Sperrglieds 67 für virtuelle Adressen gekennzeichneten Stelle
aufzufinden. Beim Schritt C9 wird die arithmetische Summe in
dem D-Register 85 zu dem Q-Register 92 befördert, und die Verschiebungszahl
"0140" wird von dem Q-Register 92 zu dem D-Register
85 befördert. Das B-Sperrglied 81 enthält den Inhalt des Registers
2, und dieser Wert wird über den B-Multiplexer 65 zu dem Eingang
der ALU-Einheit 66 beim Schritt C10 befördert. Der Verschiebungswert
von dem Q-Register 92 wird zu dem A-Eingang befördert. Die
Summe stellt die verschobene Adresse dar, und wird zurück an
das D-Register 65 und an das Sperrglied 67 für virtuelle Adressen
übertragen, obwohl sie nicht verwendet wird. Beim Schritt C11
werden die restlichen Byteteile des dritten Operanden-Spezifizierers
gelöscht.
Nunmehr kommt es zu der Indexieroperation. Beim Schritt C12 wird
der Inhalt des T7-Registers in dem Registerspeicher 97 an ein
C-Sperrglied 98 übertragen. Dies ist der normierte Index, und
während des Schritts C13 wird er über den B-Multiplexer 65 an
den B-Eingang der ALU-Einheit 66 übertragen. Gleichzeitig wird
die verschobene Adresse von dem D-Register 65 über den RA-Multiplexer
94 und den A-Multiplexer 95 an den A-Eingang der ALU-
Einheit 66 übertragen. Die indexierte Adresse wird dann dadurch
erzeugt, daß die Zahlen an den zwei Eingängen addiert und die
Summe, welche die indexierte Adresse ist, an das D-Register 85
übertragen wird. Beim Schritt C14 wird diese Adresse zu dem Sperrglied
67 für virtuelle Adressen befördert.
Der Operand befindet sich nunmehr in dem Q-Register 92. Der Mikrosortierer
44 befördert diese Summe von dem Q-Register 92 zurück
zu dem D-Register 85. Beim Schritt C14 befördert dann der Mikrosortierer
44 den Operanden über eine andere Datenjustierschiene
96 auf die MD-Leitung 35, um sie zu der Speichereinheit 11 und
dem Datenpuffer 33 an die Stelle zu übertragen, die durch den
Inhalt des Sperrglieds 67 für virtuelle Adressen adressiert ist.
Als letzter Schritt werden dann der Zähler 73 und die Byte 0-
Stelle in dem Befehlspuffer 60 gelöscht. Hierdurch kann dann die
Puffersteuerschaltung 61 die nächsten gültigen Daten in dem Befehlspuffer
60 an die 0 und aufeinanderfolgende Bytestellen verschieben.
Aus der vorstehenden Beschreibung ist zu ersehen, daß der Indexbetrieb
nicht eine besondere und exclusive Betriebsart ist.
Er ist eine Verlängerung einer der verfügbaren Adressierarten
zu diesem Bezugsspeicher (d. h. Betriebsart 6 bis 15). Diese Betriebsarten
sind in Fig 4 mit Sternen markiert. Der Indexiermodus
wird mit Hilfe eines einzigen Bytes durchgeführt, welches
das Indexregister genau angibt, und dies kann dann mit einer
weiteren Verlängerung des Operanden-Spezifizierers zusammengefaßt
werden, welcher von einen bis neun zusätzlichen Bytes aufweisen
kann. In diesem Zusammenhang kann der Indexiermodus betrachtet
werden, um ein Basisregister zu schaffen, welches eine
physikalische Versetzung plus das Indexregister enthält, das die
logische Versetzung in einem Feld enthält. Die durch die Verschiebeoperation
geschaffene Normalisierung gleicht automatisch
die Datenwortgröße auf, so daß das Indexregister selbst eine
logische Verschiebung eines Datenwortes ungeachtet der Größe
dieses Datenwortes darstellt. Auch die Art der veränderlichern
Länge der Operanden-Spezifizierer erhöht bzw. vergrößert den
Indexiermodus, das ein Befehl nur den Zwischenraum für eine Indexierinformation
aufweist, wenn eine indexierte Adresse zu
schaffen ist.
In Fig. 10A und 10B sind zwei verschiedene Unterprogramm-Aufrufbefehle
dargestellt. Der Aufrufbefehl in Fig. 10A ist ein
"CALLG"-Befehl und weist einen 1Byte-Operationskode "FA" auf,
auf den in dieser Fig. ein 1 Byte-Operanden-Spezifizierer zum
Festlegen einer Argumentliste, und ein 1 Byte-Operanden-Spezifizierer
zum Festlegen einer Bestimmung, nämlich der ersten Stelle
in dem aufzurufenden Unterprogramm, festzulegen. In Fig. 10B
ist ein "CALLS"-Aufrufbefehl mit einem Betriebskode "FB" dargestellt.
Der in Fig. 10A dargestellte CALLG-Befehl ruft ein
Unterprogramm auf, wenn die Argumentenliste an verschiedenen
Stellen in dem Speicher gespeichert ist, während der CALLS-
Befehl in Fig. 10B ein Unterprogramm aufruft, wenn das Aufrufunterprogramm
bereits die zu verwendende Argumentliste an einen
Speicherstapel übertragen hat, der durch das R14-Mehrzweckregister
gekennzeichnet ist, das als Stapelhinweisregister arbeitet.
Die Argumentliste enthält Eingabedaten und Werte, die von dem
Unterprogramm verwendet werden, und Ausgangsadressen für die
mittels des Unterprogramms geschaffene Ausgangswerte.
In Fig. 10C-1 bewertet beim Schritt D1 die zentrale Recheneinheit
10 den ersten Operanden-Spezifizierer und überträgt die
Argumentlisten-Adresse im Falle des in Fig. 10A dargestellten
Befehls oder den Argumentzählstand im Fall des in Fig. 10B dargestellten
Befehls an das D-Register 85. Beim Schritt D2 werden
der Inhalt des D-Registers 85 an das Q-Register 92 übertragen
und das Bestimmungsfeld in dem Bestimmungs-Operanden-Spezifizierer
wird bewertet. Die sich ergebende Ausgangsadresse für das
Unterprogramm wird zu dem D-Register 85 und zu dem Sperrglied
67 für virtuelle Adressen befördert. Entsprechend einer Erscheinungsform
diese Aufrufbefehls enthält die erste Stelle
des Unterprogramms eine Unterprogramm-Maske, die folgendermaßen
interpretiert wird. Bitstellen 0 bis 11 entsprechen unmittelbar
Mehrzweckregistern R0 bis R11. Jede Bitstelle in der Unterprogramm-
Maske kann in Abhängigkeit davon gesetzt oder gelöscht
werden, ob der Inhalt des entsprechenden Mehrzweckregisters zu
erhalten ist oder nicht. Der Inhalt eines Mehrzweckregisters
ist offensichtlich zu erhalten, wenn das Unterprogramm dem Inhalt
dieses Mehrzweckregisters ändert. Die übrigen Mehrzweckregister
R12 bis R15 werden entweder immer oder werden niemals
erhalten bzw. hergestellt. Insbesondere das Register R12 stellt
ein Argumenthinweisregister dar und wird immer erhalten. In
ähnlicher Weise stellt das Register R13 ein Bildhinweisregister
dar, und das Register R15 stellt ein Programmzählerregister
dar; auch sie sind immer zu erhalten. Andererseits stellt das
Register R14 dasd Stapelhinweisregister dar und ist niemals
sicherzustellen. Infolgedessen können die vier höchstwertigen
Bitstellen in der Unterprogramm-Maske für diese Zwecke verwendet
werden.
In dem speziellen Ausführungsbeispiel sind die Bitstellen 12
und 13 immer 0, obwohl sie für andere Zwecke verwendet werden
könnten. Andererseits schaffen die Bits 14 und 15 die Anfangsbedingungen
der ganzzahligen und dezimalen Überlauffehleranzeige
bei Eingabe in das Unterregister selbst.
In Fig. 10C-1 und beim Schritt D3 ist der Programmzähler 64
vorher weitergeschaltet worden, um dadurch den ersten Befehl
zu identifizieren, der auf den Unterprogramm-Aufrufbefehl in
dem Abruf-Unterprogramm folgt. Als nächstes wird das Q-Register
92 gelöscht und die Unterprogramm-Maske wird von dem D-Register
85 zu einem T2-Register in dem C-Registerspeicher 97 befördert.
Bitstellen 12 und 13 in der Unterprogramm-Maske werden geprüft,
um festzulegen, wann sie einen Wert 0 haben. Wenn dies nicht
der Fall ist, besteht eine Fehlerbedingung und es kommt zu entsprechenden
(nicht programmierten) Sprungbedingungen. Hierbei
wird von dem Schritt D5 auf den Schritt D6 übergegangen, wobei
die Unterprogramm-Maske an das C-Sperrglied 98 übertragen wird.
Beim Schritt D7 wird eine Anzahl Einsen in der Unterprogramm-
Maske gezählt, um die Anzahl von Mehrzweckregistern zu bilden,
die gespeichert werden müssen, um den Zustand des Abruf-Unterprogramms
zu bewahren. Der Schritt D8 stellt eine Verzweigung
dar, bei welcher eine Operation bei dem Schritt übertragen wird,
der entweder in Fig. 100-2A für den in Fig. 10A dargestellten
Aufrufbefehl oder in Fig. 10C-2B für den in Fig. 10B dargestellten
Aufrufbefehl dargestellt ist.
Wenn der in Fig. 10A dargestellte CALLG-Befehl zu dekodieren
ist, muß als nächstes der ganze Raum in dem Speicherstapel
festgestellt werden, der von dem Zustand des Abrufprogramms
belegt wird. Für diesen Befehl werden fünf zusätzliche Langworte
erhalten. Infolgedessen wird beim Schritt D9 diese Zahl
zu der Anzahl Einsen in der Maske addiert, und die Summe wird
dann in eine Anzahl Bytes umgesetzt und dann dazu verwendet,
um zusammen mit dem Inhalt des Stapelhinweisregisters die letzte
Stelle in dem Stapel festzulegen (Schritt D10). Wie vorher
aufgezeigt, arbeitet die zentrale Recheneinheit 10 als virtuell
adressiertes Gerät. Infolgedessen müssen die Schritte durchgeführt
werden, um sicherzustellen, daß ausreichend Platz in
dem Speicherstapel vorhanden ist, der dem speziellen, durchzuführenden
Programm zugeordnet ist, um alle Register, die erhalten
werden, anzupassen. Während des Schritts D11 wird der Inhalt
des Registers R14, des Stapelhinweisregisters an die A- und B-
Sperrglieder 75 und 81 übertragen, und die zwei niedrigstwertigen
Bits des Registers R14 werden an ein T4-Register in dem C-Registerspeicher
97 beim Schritt D12 übertragen.
Beim Schritt D12 wird der Speicherzeiger ausgerichtet, in dem
die zwei niedrigstwertigen Bits in dem Register R14 durch Nullen
ersetzt werden, um dadurch die Adresse in das Register zu zwingen,
um eine Langwortgrenze festzulegen. Wenn Übertragungen in
die und von den Speichereinheiten 11 sowie die Pufferspeichereinheit
an den Langwortgrenzen durchgeführt werden, stellt dieser
Ausrichtvorgang sicher, daß jedes Register mit einer einzigen
Speicherübertragung erhalten werden kann, und verbessert
die gesamte Leistungsfähigkeit des Befehls. Andererseits gibt
es eine Möglichkeit, zwei Übertragungen durchzuführen, um jedes
Register zu erhalten, wodurch jedoch die Zeit stark erhöht
wird, die zum Durchführen des Aufrufbefehls und der anschließenden
Befehle in dem Unterprogramm erforderlich ist, die normalerweise
ausgerichtet sind.
Nach einer Ausrichtung wird der ausgerichtete Inhalt des SP-
Registers schrittweise zurückgeschaltet, um nacheinander eine
Folge von leeren Langwortstellen in dem Speicher zu kennzeichnen.
Beim Schritt D13 kann der Mikrosortierer 44 den Inhalt des Programmzählers
64 und dieser Mehrzweckregister, die in der Unterprogramm-
Maske genau festgelegt sind, an den Speicherstapel übertragen.
Durch diesen Schritt wird die Stelle des Abrufprogramms,
an welchem der auf den Aufrufbefehl folgende Befehl zu finden
ist, und der Mehrzweckregister bewahrt und erhalten, die bei dem
Unterprogramm benutzt werden. Nach der Beendigung des Schritts
D13 ist der Zustand des Abrufunterprogramms erhalten worden, so
daß die zentrale Recheneinheit auf die in Fig. 10C-3 dargestellten
Schritte übergeht.
In Fig. 10C-2B sind die Schritte dargestellt, wenn der in Fig. 10B
dargestellte CALLS-Befehls zu dekodieren ist. Bei den Schritte
D14 und D15 legt die zentrale Recheneinheit 10 wieder fest, ob
ausreichend Raum in dem zugeordneten Speicherstapel zum Speichern
der Information vorhanden ist. Die zwei niedrigstwertigen Bits
des SP-Registers werden in ein T4-Register in dem C-Registerspeicher
97 beim Schritt D16 befördert. Beim Schritt D17 wird
der Argumentzählstand von dem T3-Register in dem C-Registerspeicher
97 zu dem Q-Register 92 befördert. Zusätzlich wird eine CALLG/
CALLS-Fehleranzeige gesetzt. Diese Fehleranzeige wird anschließend
in dem Speicherstapel sichergestellt und wird später von
dem Rückkehrbefehl verwendet, um das Wiederauffinden von Information
aus dem Speicherstapel zu steuern. Infolgedessen können
die CALLG- und CALLS-Befehle verwendet werden, um ein Unterprogramm
austauschbar abzurufen. Das SP-Register wird schrittweise
verringert, um die nächste verfügbare Stelle zu kennzeichnen,
und der verringerte Inhalt wird dann in dem D-Register 85 gespeichert.
Der Argumentzählstand in dem Q-Register 92 wird dann
in dem Speicherstapel gespeichert, um dadurch die Argumentliste
zu vervollständigen. Während des Schritts D18 wird der Inhalt
des D-Registers abgewandelt, so daß Register R14 oder das
Stapelhinweisregister auf eine Langwortgrenze für die nächste
verfügbare Stelle ausgerichtet ist. Beim Schritt D19 bewahrt der
Mikrosortierer 44 den Abrufprogrammzustand, indem er den Programmzähler
und die Mehrzweckregister erhält, die durch das Unterprogramm
in dem Speicherstapel verwendet werden, wenn beim Schritt
D13 in Fig. 10C-2A mit der ausgerichteten Stelle in dem Speicherstapel
begonnen wird.
In Fig. 10C-3 geht der Mikrosortierer 44 zu dem Schritt D20
über, nachdem die Übertragungen beendet sind, die durch den
Schritt D13 in Fig. 10C-2A und durch den Schritt D19 in Fig. 10C-2B
dargestellt sind. Insbesondere werden dann der Inhalt
des Registers R13, das als das Bildhinweisregister arbeitet,
an die nächste verfügbare Stelle in dem Speicherstapel übertragen.
Hierauf folgt der Inhalt des Registers R12, das das
Argumenthinweisregister darstellt. Beim Schritt D12 werden die
Zustandsfehleranzeigen für das Abrufprogramm gelöscht. Als
nächstes überträgt die zentrale Recheneinheit 10 die Startadresse
für das Unterprogramm von dem T1-Register in dem C-Registerspeicher
97 an das Sperrglied 67 für virtuelle Adressen und an
den Programmzähler 64 (Schritt D23). Dann beginnt die Befehlspuffersteuerung
61 den ersten Befehl in dem Unterprogramm an
den Befehlspuffer 60 zu übertragen. Der Mikrosortierer 44 bildet
beim Schritt D24 ein Wort aus dem alten Prozessorzustandswort,
der Unterprogramm-Maske, den Stapelausrichtbits und der CALLS/
CALLG-Fehleranzeige und hält dies Wort in dem Speicherstapel.
Beim Schritt D25 überträgt der Mikrosortierer 44 den Inhalt des
Stapelhinweisregisters an das Register R13 als dem neuen Bildhinweisregister.
Als nächstes wird dann das T-Bit gesetzt, das
dem T-Bit in dem Abrufprogramm beim Schritt D26 entspricht, und
beim Schritt D27 setzt der Mikrosortierer 44 die Dezimal- und
Ganzzahlüberlauf-Fehleranzeigen entsprechend den zwei höchstwertigen
Bits in der Unterprogramm-Maske; andere Fehkleranzeigen,
wie beispielsweise eine gleitende Unterlauffehleranzeige, kann
ebenfalls gesteuert werden.
Beim Schritt D28 wird die Information an das Register R12 als
dem neuen Argumenthinweisregister übertragen. Wenn der Befehl
der in Fig. 10A dargestellte CALLG-Befehl ist, enthält diese
Information die Adresse der ersten Stelle in der Argumentliste,
welche ihrerseits den Argumentzählerstand enthält. Wenn der Befehl
der CALLS-Befehl in Fig. 10 B ist, enthält diese Information
den Wert des Stapelzeigers, nachdem der Argumentzähloperand
in den Speicherstapel befördert ist. Auf jeden Fall ist die
nächste Operation beim Schritt D28 zu speichern, ein Nullwert
für eine Zustandverarbeitungsadresse ist in der nächsten verfügbaren
Stelle des Speicherstapels gespeichert. Hierdurch
wird eine Stelle im Speicherstapel für eine nachfolgende Zustandsverarbeitungsadresse
zurückbehalten und auch angezeigt,
daß anfangs keine Zustandsverarbeitungseinrichtung vorhanden
ist.
Eine Zustandsverarbeitungseinrichtung ist ein zweites Unterprogramm,
welches abgerufen werden kann, wenn irgendein ungewöhnlicher
Zustand während der Durchführung des ersten Unterprogramms
auftritt. Insbesondere wird ein Zustandsverarbeitungs-
Unterprogramm verwendet, um das Datenverarbeitungssystem im
Falle irgendeines Fehlers in einen bekannten Zustand zurückzubringen.
Wenn beispielsweise ein Unterprogramm versucht hat,
zu einer nicht existierenden Datei Zugriff zu erlangen, könnte
ein Zustandsverarbeitungsunterprogramm abgerufen werden. In
einem solchen Anwendungsfall würde das Unterprogramm die Ausgangsadresse
für das Zustandsverarbeitungs-Unterprogramm an
der zurückgehaltenen Stelle in dem Speicherstapel speichern.
Nach dem Schritt D28 kann die zentrale Recheneinheit beginnen,
einen ersten Befehl in dem Unterprogramm zu verarbeiten, welches
beim Schritt D22 die Befehlspuffersteuerung 61 aufzufinden begann.
Die zwei Unterprogramm-Abrufbefehle sind sehr leistungsfähig.
Wenn einer der Abrufbefehle beendet worden ist, ist alle Information,
die für eine Übertragung an ein und von einem Unterprogramm
erforderlich ist, entsprechend bewahrt worden. Insbesondere
enthält der Speicherstapel den Abrufprogrammzähler und weitere
Informationen, die den Zustand des Abrufprogramms erhält. Die
Argumente können ohne weiteres mittels des Argumentenhinweises
in dem Register R12 wieder aufgefunden werden, und die verschiedenen
Zustandsfehleranzeigen werden gesetzt, so daß die Umgebung
für das Unterprogramm ebenfalls geschaffen ist.
Der letzte Befehl in dem Unterprogramm ist ein Rückkehrbefehl,
welcher einen einzigen Operationskode aufweist; er hat keine
Operanden-Spezifizierer. Entsprechend diesem Befehl wird der
Inhalt des laufenden Bildhinweises in dem Register R13 abgeändert
und zurück an das Register R14 übertragen, um den Boden
des Plattenstapels anzuzeigen, welcher durch den vorherigen
Abrufbefehl geschaffen wurde und damit der Mikrosortierer 44
unmittelbar zum Anfang der wichtigen Teile des Stapels laufen
kann.
Der Inhalt der nächsten Stelle in der Speicherstelle weist (1)
den Prozessorzustand für das Abrufprogramm, (2) die Unterprogramm-
Maske, (3) die Anzeige, ob ein Unterprogramm durch den Befehl
in Fig. 10A oder 10B abgerufen wurde, und (4) den während der
Stapelausrichtung gespeicherten Zweibit-Wert auf. Die Untergprogramm-
Maske wird geprüft, um zu bestimmen, ob Bitstellen 0 bis 11
null sind. Wenn dies der Fall ist, sind keine Register zum erneuten
Speichern erforderlich, so daß es möglich ist, die erhaltene
Unterprogramm-Maske zu isolieren und die zwei höherwertigen
Bits in der erhaltenen Unterprogramm-Maske zu prüfen,
um dadurch die Dezimal- und Ganzzahl-Überlauffehler-Anzeigen
wieder herzustellen. Wenn die Bits 0 bis 11 der Maske irgendwelche
Eisen enthalten, dann müssen diese Register wieder aufgefunden
werden. Als nächstes wird der Stapelzeiger entsprechend
den behaltenen Stapelausrichtsbits genau ausgerichtet. Die zentrale
Recheneinheit prüft das Bit, welches den Abrufbefehl kennzeichnet.
Wenn der Befehl in Fig. 10A abgerufen worden ist, ist
die Rückkehr beendet, so daß der Mikrosortierer 44 beginnt, den
nächsten Befehl in dem Abrufprogramm zu verarbeiten. Andererseits
ruft er den Argumentzählerstand von dem Speicherstapel ab,
schaltet den Zählerstand um eins weiter, setzt diesen Zählerstand
in eine Anzahl Bytes um, addiert die Bytezahl zu dem Inhalt des
Speicherhinweisregisters und speichert diese Summe in dem Sperrglied
67 für virtuelle Adressen. Der wiederaufgefundene Programmzähler
wird dann dazu verwendet, um die Befehlspuffersteuerung
61 freizugeben, um den nächsten Befehl aus dem Speicher wieder
aufzufinden, welcher der Befehl ist, der auf den Abrufbefehl in
dem Abrufprogramm folgt, um dadurch die Rückkehr von dem Abrufbefehl
in Fig. 10B zu beenden.
Claims (16)
1. Zentraleinheit (10) zur Verarbeitung von Operanden entsprechend
Befehlen in einem Datenverarbeitungssystem,
das eine Speichereinrichtung (11) zur Speicherung der
Operanden und Befehle aufweist, wobei jeder Operand
mindestens ein Informationsbyte (Fig. 2A-2D) und jeder
Befehl einen Operationskode (Fig. 4/50) mit wenigstens einem
Informationsbyte aufweist, und bestimmte Befehle wenigstens
einen Operandenspezifikationsteil (Fig. 4/51, 52, 53)
aufweisen, wobei jeder Operandenspezifikationsteil
wenigstens ein Informationsbyte umfaßt und den Platz
für einen Operanden in dem Datenverarbeitunssystem
identifiziert,
welche Zentraleinheit eine Programmzählereinrichtung (Fig. 5A) für die Identifizierung von Speicherplätzen von Operationskodes der aufeinanderfolgenden Befehle in der Speichereinrichtung (11) aufweist,
eine mit der Programmzählereinrichtung verbundene Befehlsholeinrichtung (Fig. 6A/60, 61, 62, 63, 70), die an die Speichereinrichtung geschlossen ist, um aufeinanderfolgende Informationsbytes aus der Speichereinrichtung zu holen,
eine mit der Befehlsholeinrichtung verbundene Operationskode-Dekodiereinrichtung (Fig. 6A/71, 100), um in Abhängigkeit von dem Operationskode die Anzahl der Operandenspezifikationsteile zu ermitteln, die der Befehl enthält,
sowie eine mit der Befehlsholeinrichtung und der Operationskode-Dekodiereinrichtung verbundene Operandenspezifikationsteil-Dekodiereinrichtung (Fig. 6A/ 72, 73) aufweist zur sequentiellen Dekodierung von auf den Operationskode folgenden Informationsbytes, um für jeden spezifizierten Operanden einen Platz zu identifizieren, dadurch gekennzeichnet,
daß die Operandenspezifikationsteil-Dekodiereinrichtung (72, 73) allein auf eine Information in den Operandenspezifikationsteilen (51, 52, 53) anspricht, die die Anzahl von Informationsbytes der Operandenspezifikationsteile angibt, um dadurch das stellenrichtige Holen aufeinanderfolgender Befehle von der Speichereinrichtung (11) zu ermöglichen, wobei jeder folgende Befehl eine veränderliche Anzahl von in benachbarten Byte-Speicherplätzen in der Speichereinrichtung gespeicherten Informationsbytes aufweisen kann.
welche Zentraleinheit eine Programmzählereinrichtung (Fig. 5A) für die Identifizierung von Speicherplätzen von Operationskodes der aufeinanderfolgenden Befehle in der Speichereinrichtung (11) aufweist,
eine mit der Programmzählereinrichtung verbundene Befehlsholeinrichtung (Fig. 6A/60, 61, 62, 63, 70), die an die Speichereinrichtung geschlossen ist, um aufeinanderfolgende Informationsbytes aus der Speichereinrichtung zu holen,
eine mit der Befehlsholeinrichtung verbundene Operationskode-Dekodiereinrichtung (Fig. 6A/71, 100), um in Abhängigkeit von dem Operationskode die Anzahl der Operandenspezifikationsteile zu ermitteln, die der Befehl enthält,
sowie eine mit der Befehlsholeinrichtung und der Operationskode-Dekodiereinrichtung verbundene Operandenspezifikationsteil-Dekodiereinrichtung (Fig. 6A/ 72, 73) aufweist zur sequentiellen Dekodierung von auf den Operationskode folgenden Informationsbytes, um für jeden spezifizierten Operanden einen Platz zu identifizieren, dadurch gekennzeichnet,
daß die Operandenspezifikationsteil-Dekodiereinrichtung (72, 73) allein auf eine Information in den Operandenspezifikationsteilen (51, 52, 53) anspricht, die die Anzahl von Informationsbytes der Operandenspezifikationsteile angibt, um dadurch das stellenrichtige Holen aufeinanderfolgender Befehle von der Speichereinrichtung (11) zu ermöglichen, wobei jeder folgende Befehl eine veränderliche Anzahl von in benachbarten Byte-Speicherplätzen in der Speichereinrichtung gespeicherten Informationsbytes aufweisen kann.
2. Zentraleinheit nach Anspruch 1, dadurch gekennzeichnet,
daß die Befehlsholeinrichtung (60, 61, 62) zum Empfang der folgenden Informationsbytes von einer vorherbestimmten Anzahl von Plätzen in der Speichereinrichtung (11) beginnend mit dem durch die Programmzählereinrichtung spezifizierten Platz,
daß eine mit der Programmzählereinrichtung und der Befehlspuffereinrichtung (60 bis 62) verbundene Übertragungseinrichtung zur Übertragung der Information von der Speichereinrichtung zu der Befehlspuffereinrichtung vorgesehen ist,
und daß die Programmzählereinrichtung Mittel zur Identifizierung des Platzes des ersten Informationsbytes des Operationskode (50) und jedes Operandenspezifikationsteils (51, 52, 53) in jedem Befehl enthält.
daß die Befehlsholeinrichtung (60, 61, 62) zum Empfang der folgenden Informationsbytes von einer vorherbestimmten Anzahl von Plätzen in der Speichereinrichtung (11) beginnend mit dem durch die Programmzählereinrichtung spezifizierten Platz,
daß eine mit der Programmzählereinrichtung und der Befehlspuffereinrichtung (60 bis 62) verbundene Übertragungseinrichtung zur Übertragung der Information von der Speichereinrichtung zu der Befehlspuffereinrichtung vorgesehen ist,
und daß die Programmzählereinrichtung Mittel zur Identifizierung des Platzes des ersten Informationsbytes des Operationskode (50) und jedes Operandenspezifikationsteils (51, 52, 53) in jedem Befehl enthält.
3. Zentraleinheit nach Anspruch 2, dadurch gekennzeichnet, daß die Befehlspuffereinrichtung
(60, 61, 62) ein Byteregister (60) zur Speicherung
einer vorherbestimmten Anzahl von aufeinanderfolgenden Informationsbytes
enthält, die von anfänglichen Plätzen geholt werden, die durch die Programmzählereinrichtung
identifiziert werden, sowie ein Sperrglied (Fig. 6A/70)
enthält, das mit dem Byteregister zur Speicherung eines
Informationsbytes des Operationskode verbunden ist.
4. Zentraleinheit nach Anspruch 3, dadurch gekennzeichnet, daß die Befehlspuffereinrichtung
(60, 61, 62) ein Schiebenetzwerk (63) aufweist, das mit dem
Ausgang des Byteregisters (60) verbunden ist, sowie eine Multiplexereinrichtung
(62) aufweist, die selektiv einen der Augänge des Schiebenetzwerks
und der Übertragungseinrichtung mit dem Eingang des Byteregisters
(60) koppelt.
5. Zentraleinheit nach Anspruch 4, dadurch gekennzeichnet, daß die Befehlspuffereinrichtung
(60, 61, 62) eine Befehlspuffersteuereinrichtung (61) aufweist,
die mit dem Byteregister (60), der Multiplexereinrichtung (62) und mit der
Übertragungseinrichtung verbunden ist, um Übertragungen von Information
zu der Befehlspuffereinrichtung anzufordern.
6. Zentraleinheit nach Anspruch 5, dadurch gekennzeichnet, daß das Byteregister
(60) eine Speichereinrichtung (Fig. 6A/BYTE 0 . . . BYTE 7) für jedes
Informationsbyte aufweist, wobei jede Speicherplatzeinrichtung eine
Gültigkeits-Bitposition zur Identifizierung jeder Bytespeicherplatzeinrichtung aufweist,
die eine gültige Information enthält, welche Befehlspuffersteuereinrichtung
auf die Gültigkeitbits anspricht, um gültige Informationsbytes in
Plätze zu verschieben, welche ungültige Informationsbytes enthalten.
7. Zentraleinheit nach Anspruch 6, dadurch gekennzeichnet, daß die Übertragungseinrichtung
eine auf die Anzahl von leeren Plätzen in der Befehlspuffereinrichtung
und auf die aufeinanderfolgenden Übertragungen von
Information an die Befehlspuffereinrichtung ansprechende Einrichtung aufweist,
um die Programmzählereinrichtung fortzuschalten, um die aufeinanderfolgenden
anfänglichen Plätze eines nächsten Speicheroperationskode (50)
oder eines Operandenspezifikationsteils (51, 52, 53) in der Speichereinrichtung
(11) zu identifizieren.
8. Zentraleinheit nach Anspruch 1, dadurch gekennzeichnet, daß die Befehlsholeinrichtung
(60-63, 70) ein Sperrglied (70) zur Speicherung eines Informationsbyte
in einem Operationskode aufweist, und daß die Zentraleinheit zusätzlich
eine Steuereinrichtung aufweist, die mit der Operationskode-Dekodiereinrichtung (71, 100)
verbunden ist, um eine Sequenz von Steuerzuständen in der Zentraleinheit zur
Verarbeitung des Befehls zu bestimmen.
9. Zentraleinheit nach Anspruch 8, dadurch gekennzeichnet, daß die Operandenspezifikationsteil-
Dekodiereinrichtung (72, 73) eine mit der Operationskode-
Dekodiereinrichtung (71, 100) und der Steuereinrichtung verbundene Adressiereinrichtung
enthält, um eine Sequenz von Adressen für die Operationskode-
Dekodiereinrichtung zu erzeugen, sowie eine Operandenspezifikationsteil-
Dekodierlogik (72) enthält, die mit der Operationskode-Dekodiereinrichtung
und der Befehlsholeinrichtung (60, 61, 62, 63, 70) verbunden ist, um eine Startadresse zu erzeugen,
die von der Steuereinrichtung benutzt wird, um einen Satz von
Steuerzuständen zu bestimmen, die den Operandenspezifikationsteil verarbeiten,
um den Speicherplatz für die Operanden zu identifizieren.
10. Zentraleinheit nach Anspruch 9, dadurch gekennzeichnet, daß die Adressiereinrichtung
eine mit der Steuereinrichtung zur Bestimmung eines Satzes von
Zählwerten verbundene Ausführungspunkt-Zähleinrichtung (73) aufweist,
und daß die Operationskode-Dekodiereinrichtung (71, 100) eine Ausführungspunkt-Zähleinrichtung,
dem Operationskode-Sperrglied und der Operandenspezifikationsteil-
Dekodierlogik (72) verbunden ist, um eine Startadresse für die Operandenspezifikationsteil-
Dekodierlogik in Abhängigkeit von dem Operationskode und
dem Zustand der Ausführungspunkt-Zähleinrichtung zu erzeugen.
11. Zentraleinheit nach Anspruch 10, dadurch gekennzeichnet, daß die
Ausführungsadressen-Speichereinrichtung (71) eine Einrichtung zur Speicherung
von Information (Fig. 6B/LÄNGE) entsprechend der Größe eines Operanden
und von Information (Fig. 6B/ART)
zur Spezifizierung der numerischen Charakteristik des Operanden enthält.
12. Zentraleinheit nach Anspruch 11, dadurch gekennzeichnet, daß die
Ausführungsadressen-Speichereinrichtung (71) eine Einrichtung zur Speicherung
von Information (Fig. 6B/MODUS) zur Identifizierung enthält, ob die
Informationsbytes in der Befehlsholeinrichtung einen Operandenspezifikationsteil
darstellen.
13. Zentraleinheit nach Anspruch 11, dadurch gekennzeichnet, daß die Ausführungsadressen-
Speichereinrichtung (71) eine Einrichtung zur Speicherung
von Information (Fig. 6B/ZUGRIFF) enthält, um die Art der Operandenübertragung
zu identifizieren, die durchgeführt werden soll.
14. Zentraleinheit nach Anspruch 9, dadurch gekennzeichnet, daß sie eine
Mehrzahl von Mehrzweckregistern enthält, und daß der Operandenspezifikationsteil
(51, 52, 53) einen Registeridentifizierungsteil (Fig. 4/55) und
einen Modusteil (Fig. 4/54) enthält, um den Adressiermodus zu spezifizieren,
der dem Operandenspezifikationsteil zugeordnet ist, wobei die
Operandenspezifikationsteil-Dekodierlogik (72) auf den Registeridentifizierungsteil und
den Modusteil anspricht.
15. Zentraleinheit nach Anspruch 14, dadurch gekennzeichnet, daß der Modusteil
einen Literalmodus (Fig. 4/54 LITERAL) spezifiziert, wobei der
dem Modusteil zugeordnete Registeridentifizierungsteil den tatsächlichen
Operanden enthält, der dem Operationskode zugordnet ist.
16. Zentraleinheit nach Anspruch 14, dadurch gekennzeichnet, daß der
Operand unter einer Adresse in der Speichereinrichtung (n) gespeichert ist,
daß der Registeridentifizierungsteil ein spezielles Mehrzweckregister
bestimmt, und daß die Zentraleinheit eine Einrichtung enthält, die auf
den Modusteil des Operandenspezifikationsteils (51, 52, 53) anspricht, um den Inhalt
des Mehrzweckregisters, das durch den Registeridentifizierungsteil bestimmt
wurde, in die Speicheradresse des Operanden umzuwandeln.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US84505577A | 1977-10-25 | 1977-10-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2846520A1 DE2846520A1 (de) | 1979-04-26 |
DE2846520C2 true DE2846520C2 (de) | 1991-10-24 |
Family
ID=25294286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19782846520 Granted DE2846520A1 (de) | 1977-10-25 | 1978-10-25 | Zentrale recheneinheit fuer ein datenverarbeitungssystem |
Country Status (9)
Country | Link |
---|---|
JP (1) | JPS5931733B2 (de) |
AU (1) | AU518656B2 (de) |
BR (1) | BR7807060A (de) |
CA (1) | CA1114515A (de) |
DE (1) | DE2846520A1 (de) |
ES (1) | ES474427A1 (de) |
FR (1) | FR2407519B1 (de) |
GB (1) | GB2007887B (de) |
IN (1) | IN150275B (de) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4415969A (en) * | 1980-02-07 | 1983-11-15 | Intel Corporation | Macroinstruction translator unit for use in a microprocessor |
US4491908A (en) * | 1981-12-01 | 1985-01-01 | Honeywell Information Systems Inc. | Microprogrammed control of extended integer and commercial instruction processor instructions through use of a data type field in a central processor unit |
US4586130A (en) * | 1983-10-03 | 1986-04-29 | Digital Equipment Corporation | Central processing unit for a digital computer |
US5761491A (en) * | 1996-04-15 | 1998-06-02 | Motorola Inc. | Data processing system and method for storing and restoring a stack pointer |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3573851A (en) * | 1968-07-11 | 1971-04-06 | Texas Instruments Inc | Memory buffer for vector streaming |
US3577189A (en) * | 1969-01-15 | 1971-05-04 | Ibm | Apparatus and method in a digital computer for allowing improved program branching with branch anticipation reduction of the number of branches, and reduction of branch delays |
US3614741A (en) * | 1970-03-23 | 1971-10-19 | Digital Equipment Corp | Data processing system with instruction addresses identifying one of a plurality of registers including the program counter |
US3614740A (en) * | 1970-03-23 | 1971-10-19 | Digital Equipment Corp | Data processing system with circuits for transferring between operating routines, interruption routines and subroutines |
US3710324A (en) * | 1970-04-01 | 1973-01-09 | Digital Equipment Corp | Data processing system |
US3999163A (en) * | 1974-01-10 | 1976-12-21 | Digital Equipment Corporation | Secondary storage facility for data processing systems |
DE2419837B2 (de) * | 1974-04-24 | 1976-12-02 | Nixdorf Computer Ag, 4790 Paderborn | Schaltungsanordnung zur adressierung eines mikroprogramms in datenverarbeitungseinrichtungen und verfahren zur durchfuehrung von sprungbefehlen |
JPS5145946A (ja) * | 1974-10-17 | 1976-04-19 | Fujitsu Ltd | Deetashorishisutemu |
JPS5282149A (en) * | 1975-12-29 | 1977-07-09 | Fujitsu Ltd | Instruction address control system |
-
1978
- 1978-10-23 ES ES474427A patent/ES474427A1/es not_active Expired
- 1978-10-23 IN IN775/DEL/78A patent/IN150275B/en unknown
- 1978-10-24 BR BR7807060A patent/BR7807060A/pt unknown
- 1978-10-25 CA CA314,183A patent/CA1114515A/en not_active Expired
- 1978-10-25 AU AU41045/78A patent/AU518656B2/en not_active Expired
- 1978-10-25 JP JP53132099A patent/JPS5931733B2/ja not_active Expired
- 1978-10-25 GB GB7841837A patent/GB2007887B/en not_active Expired
- 1978-10-25 DE DE19782846520 patent/DE2846520A1/de active Granted
- 1978-10-25 FR FR7830344A patent/FR2407519B1/fr not_active Expired
Also Published As
Publication number | Publication date |
---|---|
FR2407519B1 (fr) | 1987-08-28 |
AU518656B2 (en) | 1981-10-15 |
GB2007887B (en) | 1982-07-28 |
GB2007887A (en) | 1979-05-23 |
CA1114515A (en) | 1981-12-15 |
JPS5484943A (en) | 1979-07-06 |
AU4104578A (en) | 1980-05-01 |
DE2846520A1 (de) | 1979-04-26 |
BR7807060A (pt) | 1979-07-17 |
FR2407519A1 (fr) | 1979-05-25 |
IN150275B (de) | 1982-08-28 |
ES474427A1 (es) | 1979-04-16 |
JPS5931733B2 (ja) | 1984-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2846495C2 (de) | Zentraleinheit | |
DE69730276T2 (de) | Vorrichtung und Verfahren zur Erleichterung der Vermeidung von exzeptionellen bestimmten Zuständen während des Ablaufs eines Programmes | |
DE3689923T2 (de) | Dreiphasen-Pipeline-Signalprozessor. | |
DE3687666T2 (de) | Verzweigungssteuerung in einem dreiphasen-pipeline-signalprozessor. | |
DE3424962C2 (de) | ||
DE3114961C2 (de) | ||
DE2521289C2 (de) | Datenverarbeitungsanordnung mit Datenfeld-Hilfsprozessor | |
DE3851746T2 (de) | Sprungvorhersage. | |
DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE1524102C3 (de) | Elektronische, aus Baueinheiten aufgebaute Datenverarbeitungsmaschine | |
DE2023354C2 (de) | Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher | |
DE2612059A1 (de) | Verfahren und vorrichtung zum befehlsabruf und zur befehlsausfuehrung in einem universalrechner | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE2847934A1 (de) | Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher | |
DE2612054A1 (de) | Verfahren zur adressentwicklung und prozessor zur durchfuehrung des verfahrens | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
DE2719295A1 (de) | Programmsteuerung | |
DE2612037A1 (de) | Prozessor | |
DE2230102A1 (de) | Rechenwerk fuer variable wortlaengen | |
DE3741850A1 (de) | Ausfuehrungseinheit fuer einen i/o-prozessor | |
DE2725522A1 (de) | Datenverarbeitungsvorrichtung | |
DE2612034A1 (de) | Ausfallsicherung in einem universalrechner | |
DE3900246C2 (de) | ||
DE2846520C2 (de) | ||
DE2702722C2 (de) | Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8125 | Change of the main classification |
Ipc: G06F 9/34 |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition |