DE2846495C2 - Zentraleinheit - Google Patents
ZentraleinheitInfo
- Publication number
- DE2846495C2 DE2846495C2 DE2846495A DE2846495A DE2846495C2 DE 2846495 C2 DE2846495 C2 DE 2846495C2 DE 2846495 A DE2846495 A DE 2846495A DE 2846495 A DE2846495 A DE 2846495A DE 2846495 C2 DE2846495 C2 DE 2846495C2
- Authority
- DE
- Germany
- Prior art keywords
- register
- operand
- information
- command
- byte
- 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 100
- 238000012545 processing Methods 0.000 claims description 80
- 238000012546 transfer Methods 0.000 claims description 32
- 230000005540 biological transmission Effects 0.000 claims description 13
- 238000000034 method Methods 0.000 description 14
- 230000000903 blocking effect Effects 0.000 description 13
- 230000008878 coupling Effects 0.000 description 9
- 238000010168 coupling process Methods 0.000 description 9
- 238000005859 coupling reaction Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000000717 retained effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013519 translation Methods 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
- 230000015572 biosynthetic process Effects 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
- 230000003993 interaction Effects 0.000 description 1
- 229940036310 program Drugs 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000008054 signal transmission Effects 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
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 für die Verarbeitung von
Operanden entsprechend Befehlen in einem Datenverarbeitungssystem, ent
sprechend dem Oberbegriff des Patentanspruchs 1.
Eine Zentraleinheit dieser Art, welche die Anwendung einer Vielzahl von
Adressierungsarten ermöglichen soll, ist beschrieben in einer Veröffent
lichung von H. Katzan in "Computer Systems Organization and Programming",
1976, Science Research Associates, Inc., insbesondere Seiten 60 bis 62,
sowie 128 bis 135.
Andere Datenverarbeitungssysteme vergleichbarer Art sind in verschiedenen
US-Patentschriften der Anmelderin beschrieben. Und zwar in der US-PS
3 614 740, die ein Datenverarbeitungssystem mit Schaltungen betrifft, um
zwischen Operationsprogrammen, Unterbrechungsprogrammen und Unterprogrammen
zu übertragen; in der US-PS 3 614 741, die ein Datenverarbeitungssystem
mit Befehlsadressen betrifft, die eines einer Anzahl Register mit dem Pro
grammzähler identifiziert; in der US-PS 3 710 324, die ein Datenverarbeitungs
system betrifft; in der US-PS 3 999 163, die einen Sekundärspeicher für ein
Datenverarbeitungssystem betrifft.
Ein digitales Datenverarbeitungssystem weist drei Grundelemente
auf, nämlich ein Speicherelement, ein Ein-Ausgabe-Element und eine
Zentraleinheit. Das Speicherelement speichert Information am adressier
baren Speicherstellen. Diese Information weist Daten und Befehle zum
Verarbeiten der Daten auf. Die Zentraleinheit überträgt Information von
dem Speicherelement 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 im einzelnen festlegt. Ein Befehl kann auch Information auf
weisen, welche einen oder mehrere Operanden genau bestimmt. Diese In
formation wird Operandenspezifikationsteil genannt.
Bei verschiedenen Datenverarbeitungssystemen wird eine Vielzahl von
Verfahren verwendet, um eine Operandenadresse genau festzulegen. In der
vorstehend erwähnten US-PS 3 614 741 ist ein Operandenspezifikationsteil
mit einem Adressenregister und einem Modusdeskriptor beschrieben. Mittels
des Modusdeskriptors kann der Programmierer die Stelle des Operanden,
welcher in der nächsten Programmstelle in dem Speicherelement vorhanden sein
kann, in einem Register festlegen, das durch die Registeradresse bezeich
net ist, oder an einer Stelle, welche durch eine Adresse genau festgelegt ist,
die mit Hilfe der in dem bezeichneten Register gespeicherten Information
berechnet wird. In diesem speziellen Datenverarbeitungssystem ist es
auch möglich, einen indizierten Adressiermodus zu schaffen. Dies wird
durch Spezifizieren des Programmzählers als designiertes Register
erreicht. Das System kann dann den Inhalt des Programmzählers als Basis
adresse verwenden und das auf den Befehl folgende Wort wird als ein
Indexwert interpretiert, welcher zu der Basisadresse hinzuaddiert wird,
um entweder die Operandenadresse oder die Adresse der Operandenadresse
zu erhalten.
Bei anderen Datenverarbeitungssystemen werden andere Adressier
arten verwendet. Beispielsweise wird
ein Befehl in einem bestimmten Format aufgebaut, um ein Feld für
eine indizierte Adressierung zu erhalten. Dieses Feld legt dann
genau ein Indexregister fest und verwendet einen vorbestimmten
Fehlerwert, um ein indiziertes Adressieren zu verhindern. Je
doch werden diese Befehle mehrmals verwendet, so daß das Spei
chervolumen, das erforderlich ist, aber nicht für Befehle be
nötigt wird, die keine indizierte Adressierung enthalten, ziem
lich groß werden kann. In anderen Systemen kann ein spezifisches
Registerfeld als dasjenige interpretiert werden, das ein Indexregister
bezeichnet, wenn es einen vorbestimmten Wert oder vorbestimmte
Werte enthält. Für andere Werte wird der Inhalt dieses Register
felds auf irgendeine andere Weise interpretiert.
Andere bekannte Methoden für ein indiziertes Adressieren,
weisen zwei Schwierigkeiten auf. Zum einen wird
der Indexmodus normalerweise nur bei dem Ausschließen anderer
Adressiermoden oder nur im Hinblick auf die Kosten angewendet,
die beim Vergrößern der Befehlsgröße entstehen, um die Indexier
steuerung wie vorstehend beschrieben, anzupassen. Wenn ferner
eine indizierte Adressierung verwendet wird, um aufeinanderfol
gende Datenworte zu erhalten, wird die Indizierung
kompliziert, wenn die Datenworte selbst eine sich ändernde Größe
aufweisen. Gewisse Verfahrensschritte müssen zum Skalieren der Anzahl in
dem Indexregister vorgesehen werden, um diese unterschiedlichen
Größen auszugleichen. In diesen herkömmlichen Datenverarbeitungs
systemen wird diese Funktion dem Programmierer
überlassen oder sie wird auf einfache Fälle beschränkt. Wenn der Pro
grammierer die Funktion durchführen muß, wird die Arbeit des
Programmierers noch komplizierter und die Größe des Gesamt
programms nimmt zu.
Bei der eingangs erwähnten Zentraleinheit (H. Katzan) stehen die
Basis- und Indexwerte in den Allzweckregistern der Zentraleinheit,
die im Operandenteil des Befehls spezifiziert sind. Eine Erzeugung der
Basisadresse und der indizierten Adresse findet nicht statt, da die ent
sprechenden Werte bereits direkt in den angesprochenen Registern ent
halten sind. Ferner werden nach der bekannten indizierten Adressierung
die Adressiermodi durch den Operationscode spezifiziert, können aber
nicht durch den Operandenteil selbst spezifiziert werden. Deshalb ist
die Anwendungsvielfalt der bekannten indizierten Adressierung auf den
vorgegebenen Prozessor-Befehlssatz eingeschränkt.
Bei den bekannten indizierten Adressierungsverfahren bestehen fol
gende Schwierigkeiten: Zunächst bringt die herkömmliche indizierte
Adressierung normalerweise den Ausschluß anderer Adressierungsarten mit
sich, oder letzteres kann nur mit dem Preis der Vergrößerung des Befehls
formats zur Steuerung der oben beschriebenen indizierten Adressierung er
reicht werden. Wenn ferner die indizierte Adressierung dazu verwendet
wird, in Tabellenform abgelegte Daten abzurufen, die jeweils unter
schiedliche Längen aufweisen, wird die Anwendung der Indizierung kom
pliziert. Zur Kompensation dieser unterschiedlichen Längen müssen spezielle
Verfahrensschritte vorgesehen werden, die den Inhalt des Indexregisters
skalieren. Die Erstellung derartiger Prozeduren bzw. Unterroutinen führt
zu einer Erhöhung des Software-Aufwands.
Es ist Aufgabe der Erfindung, bei einer Zentraleinheit der eingangs
genannten Art die Flexibilität in der Anwendung der indizierten Adressierung
zu erhöhen.
Diese Aufgabe wird erfindungsgemäß durch den Gegenstand des
Patentanspruchs 1 gelöst. Vorteilhafte Weiterbildungen der Erfindung sind
Gegenstand der Unteransprüche.
Eine derartige Zentraleinheit spricht auf Befehle an, die Operations
codes und Operandenspezifikationsteile aufweist. Jeder Operanden
spezifikationsteil hat wenigstens ein Datenbyte. Ein Anfangsdatenbyte
in jedem Operandenspezifikationsteil bezeichnet einen Adressierungs
modus. Entspricht der im ersten Byte bestimmte Adressierungsmodus
dem Indexmodus, wird das durch das erste Byte designierte Register als
Indexregister verwendet. Das nächste Byte im Operandenteil spezifiziert
ein weiteres Register und einen weiteren Adressierungsmodus. Die Zen
traleinheit generiert eine Adresse aufgrund der Information im zweiten
und jedem nachfolgenden Byte des Operandenspezifikationsteils und
kombiniert sie dann mit dem Inhalt des Indexregisters zur Erzeugung
der indizierten Adresse. Indexgeneriereinrichtungen erzeugen den Index
wert und Basisadreß-Generiereinrichtungen die Basisadresse entsprechend
der in aufeinanderfolgenden Byteplätzen im Operandenspezifikationsteil
enthaltenen Information. Die Funktionsweise der Basisadreß-Generier
einrichtungen ist darauf gerichtet, die Inhalte der im Befehlsstrom
dem Indexwert folgenden Byteplätze nacheinander zu decodieren.
Ein mit der Erfindung erzielter Vorteil besteht darin, daß die
Länge des Befehls verändert werden kann zwecks Anpassung an indizierte
Adressierung. Dadurch weist der Befehl die Indizier-Information nur
dann auf, wenn sie benötigt ist.
Ein weiterer Vorteil besteht darin, daß der Indexwert automatisch
entsprechend dem Datenformat skaliert werden kann. Insbesondere wird
der Vorteil erzielt, daß die indizierte Adressierung mit weiteren
Adressiermodi kombiniert werden kann.
Anhand der Zeichnung soll die Erfindung beispielsweise näher
erläutert werden. Es zeigen:
Fig. 1 ein Blockschaltbild eines digitalen Datenverarbei
tungssystems mit einer Zentraleinheit gemäß der Erfindung;
Fig. 2A bis 2D Datenarten, welche in Verbindung mit einer be
stimmten Ausführungsform der Erfindung verwendet wer
den;
Fig. 3 ein Blockschaltbild der Zentraleinheit in Fig. 1;
Fig. 4 das Format bzw. den Aufbau und die Organisation eines
Befehls, der in der in Fig. 1 und 3 dargestellten Zen
traleinheit 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 Befehls
puffer- und Dekodierschaltungen;
Fig. 6B und 6C bestimmte Signale, welche von den in Fig. 6A dar
gestellten Schaltungen übertragen werden;
Fig. 7 und 7A ein Ablaufdiagramm, das zum Verständnis der Arbeits
weise der in Fig. 1 und 3 dargestellten, Zentral
einheit verwendet wird;
Fig. 8A das Format eines spezifischen Befehls;
Fig. 8B bestimmte Information, welche von diesem Befehl er
halten 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 Abrufunterprogram
men verwendbar sind, und
Fig. 10C-1 bis 10C-4 ein Ablaufdiagramm, das die Arbeitsweise
der in Fig. 1 und 3 dargestellten, Zentral
einheit entsprechend diesen Befehlen festlegt.
Fig. 1 zeigt die Grundelemente eines Datenverarbeitungs
systems mit eine Zentraleinheit 10, im folgenden zentrale Recheneinheit genannt,
Speichereinheiten 11 und Ein-/Ausgabeeinheiten 12. Eine
synchrone Rückseitenverbindung (SBI) 14 verbindet die zentrale
Recheneinheit 10, die Speichereinheiten 11 und die Ein-/Aus
gabeeinheiten 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-
Kopplungs- und Speicherpufferschaltung 16 schafft die notwendige
Kopplungsschaltungsanordnung zum Übertragen von Information über
die synchrone Rückseitenverbindung (SBI) 14 zu den Speicherein
heiten 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 Pufferspei
cher in der Schaltung von der Datenweg- und internen Register
schaltung 19 aus eingeschrieben; diese Daten werden auch an
entsprechende Stellen in den Speichereinheiten 11 eingeschrieben.
Die besondere Ausführungsform der zentralen Recheneinheit 10 ar
beitet mit virtuellen Adressen. Die Adressenübertragungs-Puffer
schaltung 16 setzt die virtuellen Adressen in physikalische bzw.
natürliche Adressen um, welche die Speicherpufferschaltung 16 be
nutzt, entweder um festzulegen, ob die Daten von der entsprechen
den Speicherstelle enthält, oder um eine Übertragung von der ent
sprechenden 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 Puffer
speicher 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 er
möglicht auch einer Bedienungsperson, das System über ein Ur
eingabeverfahren einzuleiten und verschiedene Diagnoseverfahren
an dem ganzen Datenverarbeitungssystem durchzuführen.
In Fig. 1 weisen die Speichereinheiten 11 zwei Speichersteuerungen
20A und 20B auf. Jede Speichersteuerung ist mit einer Anzahl Speicher
felder verbunden. Insbesondere ist die Speichersteuerung 20A mit
Speicherfeldern 21A und die Speichersteuerung 20B mit Speicher
feldern 21B verbunden.
Es sind mehrere Arten von Ein-/Ausgabeeinheiten 12 dargestellt.
Eine Ein-/Ausgabe-Hauptleitungs-Anpassungseinrichtung 22 ver
bindet verschiedene Ein-/Ausgabe(E/A)-Einrichtungen 23, bei
spielsweise 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 3 710 324 beschrieben.
Zwei weitere E/A-Einheiten 12 schaffen einen Sekundärspeicher
für das Datenverarbeitungssystem. Sie weisen einen Sekundär
speicher-Hauptleitungsadapter 24 und eine Anzahl Platteneinheiten
25 auf. Ferner ist ein Sekundärspeicher-Hauptleitungsadapter
26 und ein Bandlaufwerk 27 dargestellt. Die Verbindung der Se
kundärspeicher-Hauptleitungsadapter 24 und 26 und der jeweiligen
Platteneinheiten 25 und des Bandlaufwerks 27 ist in der eingangs
erwähnten US-PS 3 999 163 beschrieben.
Für die folgende Beschreibung ist es zweck
mäßig, diese Wechselwirkungen kurz zusammenzufassen und be
stimmte 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 Erfin
dung auf. Um die Länge zu vergrößern, ist die nächste Informations
gruppe 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 aufeinanderfol
gende 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 Über
tragen von Information und Steuersignalen auf. In der vorlie
genden 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 Verbindungs
glied 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 erfor
derlich, um Information zwischen zwei Verbindungsgliedern auszu
tauschen. Während einer ersten Transaktion überträgt ein Verbin
dungsglied, das als ein Befehle übertragendes Verbindungsglied
dient, Befehls- und Adresseninformation an alle übrigen Verbin
dungsglieder. Dieses Verbindungsglied wird ein übertragendes
Verbindungsglied, da es die SBI 14 ansteuert, und ein Befehlsver
bindungsglied genannt, da es die Befehls- und Adresseninformation
übertragen hat. Während dieser Transaktion sind alle übrigen Ver
bindungsglieder 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 Adressen
information in einem fest vorgegebenen Intervall, nachdem das
Befehlsverbindungsglied diese Information überträgt. Wenn infolge
dessen die zentrale Recheneinheit 10 Daten aus der Speichersteuerung
20A auffinden muß, wird die zentrale Recheneinheit 10 ein Befehls
verbindungsglied und überträgt einen Lesebefehl und eine Adresse,
auf welche die Speichersteuerung 20A anfangs als ein empfangenes
Verbindungsglied und dann als ein Antwortverbindungsglied an
spricht.
Nach einigen Intervallen ist die Speichersteuerung 20A vorberei
tet, 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 über
tragendes Antwortverbindungsglied und überträgt die erforderlichen
Daten an die SBI 14 für eine Übertragung an die zentrale Rechen
einheit 10. Während dieser Übertragung ist die zentrale Rechen
einheit 10 ein empfangenes Befehlsverbindungsglied.
Ähnliche Transaktionen werden für irgend einen Informationsaustausch
zwischen zwei Verbindungsgliedern durchgeführt, obwohl die Speicher
steuerungen 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 Infor
mationen sowie von Daten an die zentrale Recheneinheit 10 und
die Übertragung von verarbeitenden Daten zurück an die Speicher
einheit 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 er
forderlich. 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 Informa
tion der Befehlspufferschaltung 18, wenn ein Befehl zu über
tragen 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 Speicher
einheit 11 überträgt, überträgt sie die Information an den Puffer
speicher. 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-Patentan
meldung S.N. 845 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-Puffer
schaltung 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 Haupt
leitung 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 vir
tuelle 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 Speicher
daten-(MD-)Leitung 35 an andere Elemente in der zentralen Rechen
einheit 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 Programm
steuerspeicher 40. Der Programmsteuerspeicher erzeugt dann ver
schiedene 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 Schal
tung 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 Anfangs
adresse 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 ent
spricht, überträgt er Daten über die MD-Leitung 35 an die Befehls
puffer- und Dekodierschaltung 37. Wenn diese Schaltung 37 den Be
fehl dekodiert, schafft der Mikrosortierer 34 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 Opera
tionskode 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 nach
einander 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 Registeradressen
feld. 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 spe
ziellen 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 Registerbetriebsfelds 54
Nullen sind (Registermodus 0 bis 3) weist der Operanden-Spezi
fizierer 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 festge
legt. Wenn das Registermodusfeld, beispielsweise das Registermodus
feld 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-Spezifi
zierer ist in dem Befehl für eine indexierte Adressierung vorge
sehen. Dieser zweite Operanden-Spezifizierer schafft eine Basis
adresse, 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 Re
gistermodusadressierung festgelegt. Bei dieser Betriebsart ent
hält das durch das Registerfeld adressierte Mehrzweckregister den
Operanden. Für jeden der Registermodus 6, 7 und 8 enthält das ge
nau 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 bezeich
neten 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 be
zeichneten 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 Opera
tionen 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 auf
weisen.
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 Betriebskenn
daten dieser speziellen Ausführungsform, welche die Arbeitsweise
der zentralen Recheneinheit 10 optimieren. Eine ins einzelne ge
hende Kenntnis dieser Operationen ist zum Verständnis der Erfin
dung 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 entspre
chend Signalen von einer Befehlspuffer-Steuerschaltung 61 durch
gefü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-Steuer
schaltung 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-Leitung 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. In
folgedessen führt die Befehlspuffer-Steuerschaltung 61 die ent
sprechende Information den ausgewählten Bytestellen in dem Be
fehlspuffer 60 zu. Tatsächlich füllt die Befehlspuffer-Steuer
schaltung 61 dadurch fortlaufend den Befehlspuffer 60 mit gülti
gen Daten.
Das Ansprechen der zentralen Recheneinheit 10 auf einen typi
schen 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 arithme
tische und logische Einheit (ALU) 66 sowohl an ein Sperrglied 67
in Fig. 5A für eine virtuelle Adresse (VA) als auch an Befehls
pufferadressen-(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 Befehlspufferadressen-Sperrglied 68 wird während der folgen
den 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 Befehles dar. Diese Information
wird über den Multiplexer 62 entsprechend den Signalen von der
Befehlspuffer-Steuerschaltung 61 und an den Befehlspuffer 60 über
tragen. Zu diesem Zeitpunkt enthält die Byte 0-Stelle in dem Be
fehlspuffer 60 eine Operationskodeinformation. In der vorliegenden
Ausführungsform weist jeder Operationskode nur ein Byte auf. Je
doch 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
Mehrfachbyte-Operationskode dekodieren würde.
Wenn nur eine Byte-0-Stelle in dem Befehlsregister 60 den Opera
tionskode 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 Aus
führungsadressenspeicher 71 steuert. Der Inhalt der Byte 1-Stelle
wird zusammen mit Ausgangssignalen von dem Ausführungsadressen
speicher 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 Rechen
einheit 10 ausgeführt werden kann. Die Stelle einer ganz bestimm
ten Eingabe in der Tabelle wird von den Operationskodesignalen
von dem Byte-0-Sperrglied 70 und von Signalen von einem Ausfüh
rungsstellenzähler 73 erhalten. Anfangs wird der Zähler 73 auf
eine Bezugszahl (z. B. 0) eingestellt. Wenn jeder Operanden-Spezi
fizierer dekodiert ist, wird der Zähler 73 weiter geschaltet,
um eine neue Tabelleneingabe festzulegen. Jede Eingabe in die
Tabelle kennzeichnet bestimmte Kenndaten des Operanden-Spezifi
zierers, wie beispielsweise 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 darge
stellt, welche in einer ganz bestimmten Ausführungsform des Aus
führungsadressenspeichers 71 gespeichert sind. Die zwei niedrig
wertigen 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 Spei
cher 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 Rechen
heit 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 Start
folgeadresse für jeden vorgegebenen Operanden-Spezifizierer ent
sprechend 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 ab
hängen. Typische niedrigerwertige Adressenbits sind in Fig. 6C
dargestellt. Insbesondere wenn das Registermodusfeld des Operanden
spezifizierers eine "vier" enthält, und das Registerfeld nicht
den Programmzähler bezeichnet, sind die niedrigerwertigen Start
adressenbits "1C" (in hexadezimaler Darstellung). Hierdurch wird
dann die Stelle gesteuert, an welcher der Mikrosortierer 44 be
ginnt, eine Folge auszuführen, die mit einem Mikrobefehl beginnt,
der in dem Programmsteuerspeicher 40 (Fig. 3) an der Stelle fest
gelegt ist, die durch die Startadresse bestimmt ist.
Bevor diese Information dekodiert wird, führt jedoch der Mikro
sortierer 44 weitere Operationen durch. Bei dem Schritt A3 in
Fig. 7 benutzt der Mikrosortierer 44 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 Operandenspezifi
zierer 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, ver
schiebt der Mikrosortierer von dem Schritt A3 zum Schritt A4.
Bei diesem Schritt werden der Inhalt des Registers in dem Register
speicher 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 AS der Mikrosortierer 44 einen
Datenweg über den B-Multiplexer 65 und die ALU-Einheit 66 und
überträgt die Adresse an der Sperrglied 67 für virtuelle Adressen.
Außerdem läuft diese Adresse ohne eine Änderung über eine Schie
beschaltung 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 Daten
wege 36 übertragen.
Bei dem Schritt A6 überträgt das System den Inhalt des Programm
zählers 64 an ein Programmzähl-Sicherstellungsregister 90, um
dadurch bestimmte Befehle freizugeben, die lange Verarbeitungs
intervalle 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 Ablauf
operationen wird dann freigegeben. Der Mikrosortierer 44 in
Fig. 3 überträgt den Inhalt der Byte 2- bis 5-Stellen in dem Be
fehlspuffer 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 fort
laufend 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 weitergeschal
tet, um die Byteanzahl auszugleichen, die gelöscht worden ist.
Diese Löschoperation und das Aktuallisieren des Programmzählers
werden durchgeführt, wenn bereits wichtige Daten in dem Q-Register
92 vorhanden sind. Beim Schritt A11 legt die zentrale Rechenein
heit 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 Informa
tion, die den Registerbitstellen von der Byte 2-Stelle in dem Be
fehlspuffer 60 (Fig. 6A) entspricht. Das B-Sperrglied 81, das
Sperrglied 67 für virtuelle Adressen und das D-Register 85 enthal
ten 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-Spezifiziers ab. Es gibt zahlreiche Möglichkeiten,
wie die zentrale Recheneinheit die Operanden-Spezifizierer-Deko
dieroperation 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 dem 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 Speicher
stelle zu beeinflussen, da dies in dem Pufferspeicher 60 er
scheinen würde, nachdem der Befehl beim Schritt A2 in Fig. 7
aufgefunden worden ist. In Fig. 8B ist die Information wieder
gegeben, 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 Operan
den-Spezifizierer-Information wiedergeben, ist in Fig. 6B dar
gestellt.
Der erste Operanden-Spezifizierer ist "07". Wenn sich der Aus
fü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-Dekodier
logik 72 übertragen wird, zur Folge, daß die Spezifizierer-Deko
dierlogik 72 "00" als die niedrigerwertigen Bits in der Start
adresse 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 Datenwegen, 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 über
tragen. An dieser Stelle verschiebe 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ß nun
mehr 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 Dekodier
folge erhalten das A-Sperrglied 75 und B-Sperrglied 81 den Inhalt
des Registers R1 (Schritt B3). Das Q-Register erhält den Byte
verschiebungswert "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 ent
hä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 die 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-Multi
plexer 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 auf zulegen 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 Daten
justierschiene 96 und den D-Multiplexer 84 an das D-Register 85,
und der erste Operand wird an das Q-Register 92 übertragen.
Nunmehr schaltet der Mikrosortierer 44 den Durchführungsstellen
zä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 und 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 Infor
mation 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 Registermodus
feld legt eine Wortverschiebungsadresse fest. Infolgedessen be
nutzt der Mikrosortierer 44 die Schritte B12 bis B16, um die
Speicheradresse 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 dargestellte Operanden-Spezifizierer legt
eine Wortverschiebung fest. Wenn der Addierbefehl iterativ ver
wendet wurde und wenn aufeinanderfolgende Summen in einem Stellen
feld gespeichert werden sollen, kann ein Programmierer dies aus
wä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-Spezifi
zierer 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 belegt 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, weiches das bezeichnete Indexregister
ist. Beim Stand C2 wird der Inhalt des A-Sperrglieds über den
A-Multiplexer 65 wird 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ührungs
adressenspeicher 71 während des Schritts C3 entspricht. In diesem
Fall ist ein Langwort enthalten, so daß das 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 über
tragen 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 Index
registerinhalt dreimal nach links verschoben wird, um dadurch
wirksam den Index mit 8 zu multiplizieren und die 8 Byte-Vier
fachwortgröße auszugleichen. Infolgedessen normiert diese Opera
tion den Indexwert auf die Größe des zu übertragenden Datenworts.
Nach dem Skalieren 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 Operations
kode und dem zu verarbeitenden Operanden-Spezifizierer steuert
dann die spezifizierer-Dekodierlogik 72 das Löschen der Byte
stellen 1 bis 5 in dem Befehlspuffer beim Schritt C6 und schaltet
dem Programmzähler um eine entsprechende Zahl beim Schritt C7
weiter. Während 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 Ver
schiebungszahl "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 Verschiebungs
wert 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-Multi
plexer 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 Sperr
glied 67 für virtuelle Adressen befördert.
Der Operand befindet sich nunmehr in dem Q-Register 92. Der Mikro
sortierer 44 befördert diese Summe von dem Q-Register 92 zurück
zu dem D-Register 85. Beim Schritt C14 befördert dann der Mikro
sortierer 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 Be
fehlspuffer 60 an die 0 und aufeinanderfolgende Bytestellen ver
schieben.
Aus der vorstehenden Beschreibung ist zu ersehen, daß der In
dexbetrieb 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 Be
triebsarten sind in Fig. 4 mit Sternen markiert. Der Indexier
modus wird mit Hilfe eines einzigen Bytes durchgeführt, weiches
das Indexregister genau angibt, und dies kann darin mit einer
weiteren Verlängerung des Operanden-Spezifizierers zusammenge
faßt werden, welcher von einen bis neun zusätzlichen Bytes auf
weisen kann. In diesem Zusammenhang kann der Indexiermodus be
trachtet 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 Ver
schiebeoperation geschaffene Skalierung gleicht automatisch
die Datenwortgröße aus, so daß das Indexregister selbst eine
logische Verschiebung eines Datenwortes ungeachtet der Größe
dieses Datenwortes darstellt. Auch die Art der veränderlichen
Länge der Operanden-Spezifizierer erhöht bzw. vergrößert den
Indexiermodus, weil ein Befehl nur den Zwischenraum für eine In
dexierinformation aufweist, wenn eine indizierte Adresse zu
schaffen ist.
In Fig. 10A und 10B sind zwei verschiedene Unterprogramm-Auf
rufbefehle dargestellt. Der Aufrufbefehl in Fig. 10A ist ein
"CALLG"-Befehl und weist einen 1Byte-Operationskode "FA" auf,
auf den in dieser Figur ein 1Byte-Operanden-Spezifizierer zum
Festlegen einer Argumentliste, und ein Byte-Operanden-Spezifi
zierer zum Festlegen einer Bestimmung, nämlich der ersten Stelle
in dem auf zuruf enden Unterprogramm, festzulegen. In Fig. 10B
ist ein "CALLS"-Aufrufbefehl mit einem Betriebskode "FB" dar
gestellt. 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 Aufruf
unterprogramm bereits die zu verwendende Argumentliste an einen
Speicherstapel übertragen hat, der durch das R14-Mehrzweckre
gister 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 geschaffenen Ausgangswerte.
In Fig. 10C-1 bewertet beim Schritt D1 die zentrale Rechenein
heit 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 dar
gestellten 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-Spezifizie
rer 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 Er
scheinungsform dieses Aufrufbefehls enthält die erste Stelle
des Unterprogramms eine Unterprogramm-Maske, die folgendermaßen
interpretiert wird. Bitstellen 0 bis 11 entsprechen unmittel
bar Mehrzweckregistern R0 bis R11. Jede Bitstelle in der Unter
programm-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 In
halt dieses Mehrzweckregisters ändert. Die übrigen Mehrzweck
register 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 das 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 Anfangs
bedingungen der ganzzahligen und dezimalen Überlauffehleran
zeige 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 gesprüft,
um festzulegen, wann sie einen Wert 0 haben. Wenn dies nicht
der Fall ist, besteht eine Fehlerbedingung und es kommt zu ent
sprechenden (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-Unter
programms zu bewahren. Der Schritt D8 stellt eine Verzweigung
dar, bei welcher eine Operation bei dem Schritt übertragen wird,
der entweder in Fig. 10C-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 das Abrufprogramms
belegt wird. Für diesen Befehl werden fünf zusätzliche Lang
worte 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 durchge
führt werden, um sicherzustellen, daß ausreichend Platz in
dem Speicherstapel vorhanden ist, der dem speziellen, durchzu
fü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-Re
gisterspeicher 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 zwin
gen, um eine Langwortgrenze festzulegen. Wenn Übertragungen in
die und von den Speichereinheiten 11 sowie die Pufferspeichereinheit
an den Langwortgrenzen durchgeführt werden, stellt die
ser Ausrichtvorgang sicher, daß jedes Register mit einer einzi
gen Speicherübertragung erhalten werden kann, und verbessert
die gesamte Leistungsfähigkeit des Befehls. Andererseits gibt
es eine Möglichkeit, zwei Übertragungen durchzuführen, um je
des 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 nor
malerweise 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 Pro
grammzählers 64 und dieser Mehrzweckregister, die ein der Unter
programm-Maske genau festgelegt sind, an den Speicherstapel über
fragen. 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 Abruf Unterprogramms 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-Befehl 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-Register
speicher 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 Infor
mation aus dem Speicherstapel zu steuern. Infolgedessen können
die CALLG- und CALLS-Befehle verwendet werden, um ein Unterpro
gramm 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 ge
speichert. 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ß das 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 Programm
zähler und die Mehrzweckregister erhält, die durch das Unterpro
gramm in dem Speicherstapel verwendet werden, wenn beim Schritt
D13 in Fig. 10C-2A mit der ausgerichteten Stelle in dem Speicher-
Stapel 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 über
tragen. 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-Register-
Speicher 97, an das Sperrglied 67 für virtuelle Adressen und an
den Programmzähler 64 (Schritt D23). Dann beginnt die Befehls
puffersteuerung 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 Bild
hinweisregister. 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öchst
wertigen Bits in der Unterprogramm-Maske; andere Fehleranzeigen,
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 Be
fehl der CALLS-Befehl in Fig. 10B ist, enthält diese Informa
tion 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 Zustandsverarbeitungsadresse ist in der nächsten ver
fügbaren stelle des Speicherstapels gespeichert. Hierdurch
wird eine Stelle im Speicherstapel für eine nachfolgende Zu
standsverarbeitungsadresse zurückbehalten und auch angezeigt,
daß anfangs keine Zustandsverarbeitungseinrichtung vorhanden
ist.
Eine Zustandsverarbeitungseinrichtung ist ein zweites Unter
programm, welches abgerufen werden kann, wenn irgendein unge
wöhnlicher Zustand während der Durchführung des ersten Unter
programms auftritt. Insbesondere wird ein Zustandsverarbeitungs-
Unterprogramm verwendet, um das Datenverarbeitungssystem im
Falle irgendeines Fehlers in einen bekannten Zustand zurück
zubringen. 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 Aus
gangsadresse 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 Infor
mation, die für eine Übertragung an ein und von einem Unterpro
gramm 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 verschie
denen 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 wurden 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 Unterprogramm-
Maske wird geprüft, um zu bestimmen, ob Bitstellen 0 bis 11
null sind. Wenn dies der Fall ist, sind keine Register zum er
neuten Speichern erforderlich, so daß es möglich ist, die er
haltene Unterprogramm-Maske zu isolieren und die zwei höher
wertigen 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 irgend
welche Einsen enthalten, dann müssen diese Register wieder auf
gefunden werden. Als nächstes wird der Stapelzeiger entsprechend
den behaltenen Stapelausrichtsbits genau ausgerichtet. Die zen
trale Recheneinheit prüft das Bit, welches den Abrufbefehl kenn
zeichnet. 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. Anderer
seits 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 Sperr
glied 67 für virtuelle Adressen. Der wiederaufgefundene Programm
zä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 Abruf
befehl in Fig. 10B zu beenden.
Es ist somit ein Datenverarbeitungssystem beschrieben, das eine
zentrale Recheneinheit aufweist, die verschiedene Arten von Be
fehlen dekodiert, die eine vorgegebene Länge haben. Bestimmte
dieser Befehle enthalten einen oder mehrere Operanden-Spezifi
zierer und jeder Operanden-Spezifizierer legt die Stelle eines
Operanden fest. Gemäß der Erfindung spricht die zentrale Rechen
einheit auf Unterprogramm-Abrufbefehle an, welche automatisch
viele der Funktionen durchführen, die durch ausdrückliche Be
fehle eingegeben werden müssen, die entweder in dem Abruf
programm oder in dem Unterprogramm eingeschrieben sind. Wie
ausgeführt, spricht die zentrale Recheneinheit auf jeden Befehl
an, um den Zustand der zentralen Recheneinheit zu erhalten,
während dieser das Abrufprogramm verarbeitet, und um die Umgebung
für das Unterprogramm zu schaffen. Alle diese Operationen ver
einfachen die Aufgabe eines Programmierers und vermindern die
Anzahl von Befehlsstellen, welche irgendeinem Abrufprogramm
oder Unterprogramm zugeordnet werden müssen.
Claims (9)
1. Zentraleinheit (10) für die Verarbeitung von Operanden entsprechend
Befehlen in einem Datenverarbeitungssystem,
mit einer Speichereinrichtung (Fig. 1/11) für die Speicherung der Operanden und Befehle,
wobei mindestens ein Befehl einen Operationscode (Fig. 4/50) für die Spezifikation einer durchzuführenden Operation und einen oder mehrere Operandenspezifikationsteile (Fig. 4/ 51, 52, 53) für die Identifikation eines oder mehrerer Plätze in dem Datenverarbeitungssystem für einen oder mehrere Operanden aufweisen,
wobei die Operandenspezifikationsteile jeweils wenigstens ein Informationsbyte umfassen und in diesem für bestimmte Adressierungsarten ein Registerselektionsfeld (Fig. 4/55) enthalten.
mit einer Allzweckregistereinrichtung (Fig. 5B/76, 80) mit einer Mehrzahl von Allzweckregistern, von denen eines entsprechend dem Registerselektionsfeld (55) eines Operandenspezifikationsteils ausgewählt wird,
sowie mit einer Befehlsdecodiereinrichtung (Fig. 1/18), die auf einen Operandenspezifikationsteil anspricht, um eines der Allzweck register als Indexregister zu bestimmen,
dadurch gekennzeichnet,
daß die Operandenspezifikationsteile (51; 52, 53) weiter ein erstes Adressiermodusfeld (Fig. 4/54) enthalten, das eine aus einer Mehrzahl von Adressierungsoperationen, unter diesen eine indizierte Adressie rungsoperation angibt,
daß eine Indexwertgeneriereinrichtung (Fig. 5B/98) funktionell mit der Allzweckregistereinrichtung und mit der Befehlsdecodier einrichtung (18) verbunden ist, um einen Indexwert aus dem durch das Registerselektionsfeld eines Operandenspezifikationsteils bestimmte Allzweckregister dann zu generieren, wenn das durch den Inhalt des Adressiermodusfeldes des Operandenspezifikationsteils bestimmt wird,
daß eine Basisadresswertgeneriereinrichtung (Fig. 5B/75) funktionell mit der Allzweckregistereinrichtung und mit der Befehlsdecodiereinrichtung (18) verbunden ist, um einen Basisadreßwert zu erzeugen, durch Decodierung eines zweiten Adressiermodusfeldes, was die spezifizierte Adressierungsoperation anzeigt, wobei der Basisadreßwert gewonnen wird unter Benutzung der Information, die in einem oder mehreren aufeinanderfolgenden Byteplätzen enthalten ist, welche auf das zweite Adressiermodus feld folgen, und
daß eine indizierte Adreßgeneriereinrichtung (Fig. 5B/65, 66, 95; Fig. 5A/67) mit der Indexwertgeneriereinrichtung und Basisadreß wertgeneriereinrichtung verbunden ist, um eine indizierte Operanden adresse durch Kombination des Indexwerts und des Basisadreß werts zu erzeugen.
mit einer Speichereinrichtung (Fig. 1/11) für die Speicherung der Operanden und Befehle,
wobei mindestens ein Befehl einen Operationscode (Fig. 4/50) für die Spezifikation einer durchzuführenden Operation und einen oder mehrere Operandenspezifikationsteile (Fig. 4/ 51, 52, 53) für die Identifikation eines oder mehrerer Plätze in dem Datenverarbeitungssystem für einen oder mehrere Operanden aufweisen,
wobei die Operandenspezifikationsteile jeweils wenigstens ein Informationsbyte umfassen und in diesem für bestimmte Adressierungsarten ein Registerselektionsfeld (Fig. 4/55) enthalten.
mit einer Allzweckregistereinrichtung (Fig. 5B/76, 80) mit einer Mehrzahl von Allzweckregistern, von denen eines entsprechend dem Registerselektionsfeld (55) eines Operandenspezifikationsteils ausgewählt wird,
sowie mit einer Befehlsdecodiereinrichtung (Fig. 1/18), die auf einen Operandenspezifikationsteil anspricht, um eines der Allzweck register als Indexregister zu bestimmen,
dadurch gekennzeichnet,
daß die Operandenspezifikationsteile (51; 52, 53) weiter ein erstes Adressiermodusfeld (Fig. 4/54) enthalten, das eine aus einer Mehrzahl von Adressierungsoperationen, unter diesen eine indizierte Adressie rungsoperation angibt,
daß eine Indexwertgeneriereinrichtung (Fig. 5B/98) funktionell mit der Allzweckregistereinrichtung und mit der Befehlsdecodier einrichtung (18) verbunden ist, um einen Indexwert aus dem durch das Registerselektionsfeld eines Operandenspezifikationsteils bestimmte Allzweckregister dann zu generieren, wenn das durch den Inhalt des Adressiermodusfeldes des Operandenspezifikationsteils bestimmt wird,
daß eine Basisadresswertgeneriereinrichtung (Fig. 5B/75) funktionell mit der Allzweckregistereinrichtung und mit der Befehlsdecodiereinrichtung (18) verbunden ist, um einen Basisadreßwert zu erzeugen, durch Decodierung eines zweiten Adressiermodusfeldes, was die spezifizierte Adressierungsoperation anzeigt, wobei der Basisadreßwert gewonnen wird unter Benutzung der Information, die in einem oder mehreren aufeinanderfolgenden Byteplätzen enthalten ist, welche auf das zweite Adressiermodus feld folgen, und
daß eine indizierte Adreßgeneriereinrichtung (Fig. 5B/65, 66, 95; Fig. 5A/67) mit der Indexwertgeneriereinrichtung und Basisadreß wertgeneriereinrichtung verbunden ist, um eine indizierte Operanden adresse durch Kombination des Indexwerts und des Basisadreß werts zu erzeugen.
2. Zentraleinheit nach Anspruch 1, dadurch gekennzeichnet, daß
eine Programmzählereinrichtung (64) für die Identifikation
von Plätzen in der Speichereinrichtung für Operationscodes in
aufeinanderfolgenden Befehlen vorgesehen ist, wobei wenigstens
ein erstes Informationsbyte in jedem Operandenspezifikations
teil die Zahl der Informationsbytes in jedem Operanden
spezifikationsteil angibt, daß die Befehlsdecodiereinrichtung
eine Befehlsempfangseinrichtung (60, 62, 63) umfaßt, die mit
der Programmzählereinrichtung verbunden und an die Speicher
einrichtung anschließbar ist, um im Normalbetrieb aufeinander
folgende Informationsbytes aus der Speichereinrichtung
sequentiell zu holen, daß eine Operationscode-Decodier
einrichtung (71) mit der Befehlsempfangseinrichtung verbunden
ist, um entsprechend dem Operationscode die Zahl der
Operandenspezifikationsteile, die der Befehl enthält, zu
ermitteln, und daß eine Operandenspezifikationsdecodier
einrichtung (72, 73) mit der Befehlsempfangseinrichtung und
der Operationscode-Decodiereinrichtung verbunden ist, um
eine sequentielle Decodierung aufeinanderfolgender Bytes
der dem Operationscode folgenden Information durchzuführen
und einen Platz für jeden spezifizierten Operanden zu
identifizieren, wobei die Operandenspezifikationsdecodier
einrichtung auf die Informationsbytes anspricht, die die
Anzahl der Informationsbytes im Operandenspezifikationsteil
angeben und die jeden Operandenspezifizierer darstellen.
3. Zentraleinheit nach Anspruch 2, dadurch gekennzeichnet, daß
die Befehlsempfangseinrichtung eine Befehlspuffereinrichtung
(60) für den Empfang aufeinanderfolgender Informations
bytes aus einer vorbestimmten Anzahl von Speicherplätzen
aufweist, beginnend bei dem durch die Programmzähler
einrichtung spezifizierten Speicherplatz, und daß eine
mit der Programmzählereinrichtung und der Befehlspuffer
einrichtung verbundene Übertragungseinrichtung für die
Informationsübertragung von der Speichereinrichtung zu der
Befehlspuffereinrichtung vorgesehen ist, wobei die Programm
zählereinrichtung den ersten Informationsbyteplatz des
Operationscodes von jedem Operandenspezifikationsteil in
jedem Befehl identifiziert.
4. Zentraleinheit nach Anspruch 3, dadurch gekennzeichnet, daß
die Befehlspuffereinrichtung (60) miteinander verbundene
Mehrfachbyte-Registereinrichtungen für die Speicherung einer
vorbestimmten Anzahl aufeinanderfolgender Informationsbytes
enthält, die von durch die Programmzählereinrichtung
identifizierten Anfangsplätzen erhalten werden, daß eine
Zwischenspeichereinrichtung (70) mit einer ersten Byteregister
einrichtung zur Speicherung des Operationscodes verbunden ist,
daß eine Schiebenetzwerkeinrichtung (63) mit dem Ausgang der
Mehrfachbyte-Registereinrichtungen verbunden ist, daß
eine Multiplexereinrichtung (62) einen der Ausgänge der Schiebe
netzwerkeinrichtung und der Übertragungseinrichtung mit dem
Eingang der Mehrfachbyte-Registereinrichtungen selektiv
koppelt, und daß eine Befehlspuffer-Steuereinrichtung (61)
mit den Mehrfachbyte-Registereinrichtungen, der Multiplexer
einrichtung und der Übertragungseinrichtung verbunden ist, um
Informationsübertragungen zu der Befehlspuffereinrichtung
anzufordern.
5. Zentraleinheit nach Anspruch 2, dadurch gekennzeichnet, daß
sie zur Verarbeitung von unterschiedlich vielen Informations
bytes umfassenden Operanden und Operandenspezifikationsteilen
ausgebildet ist, und daß die Indexwertgeneriereinrichtung (98)
eine mit der Operandenspezifikationsdecodiereinrichtung
verbundene Skaliereinrichtung für die Skalierung des Index
wertes gemäß der Anzahl der Informationsbytes in dem Operanden
aufweist.
6. Zentraleinheit nach Anspruch 5, dadurch gekennzeichnet,
daß die Skaliereinrichtung eine Schiebeeinrichtung (82)
zur Generierung skalierter Indexwerte entsprechend dem
Indexwert von dem designierten Indexregister und der
Anzahl Informationsbytes in dem entsprechenden Operanden
aufweist, und daß eine Registereinrichtung (97) zur
Speicherung des skalierten Indexwerts von der Schiebe
einrichtung vorgesehen ist.
7. Zentraleinheit nach Anspruch 5, dadurch gekennzeichnet,
daß ein eine indizierte Adressierung bestimmender
Operationsspezifikationsteil in einem folgenden In
formationsbyte in dem Befehl ein weiteres Registermodus
feld und Registerselektionsfeld aufweist, und daß die
Basisadreßwertgeneriereinrichtung erste und zweite Register
speichereinrichtungen (81, 92) zur Generierung des Basis
adreßwerts entsprechend den anderen Registermodus-
und Registerselektionsfeldern und eine dritte Register
einrichtung (95) zur Speicherung des Basisadreßwerts
aufweist.
8. Zentraleinheit nach Anspruch 7, dadurch gekennzeichnet,
daß eine mit den ersten, zweiten und dritten Registerspeicher
einrichtungen verbundene arithmetische Einrichtung zur
Generierung des Basisadreßwerts vorgesehen ist.
9. Zentraleinheit nach Anspruch 7, dadurch gekennzeichnet,
daß die Indexwertgeneriereinrichtung eine arith
metische Einrichtung (65, 66, 95) für das Kombinieren des
Indexwerts mit dem Basisadreßwert aufweist, daß eine
Adreßzwischenspeichereinrichtung (67) für die Speicherung
der indizierten Adresse von der arithmetischen Einrichtung
vorgesehen ist, und daß eine Datentransporteinrichtung
zur Beförderung der indizierten Adresse zu der
Adreßzwischenspeichereinrichtung mit der arithmetischen
Einrichtung und der Adreßzwischenspeichereinrichtung
verbunden ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US84505177A | 1977-10-25 | 1977-10-25 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2846495A1 DE2846495A1 (de) | 1979-05-10 |
DE2846495C2 true DE2846495C2 (de) | 1993-10-21 |
Family
ID=25294279
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2846495A Expired - Lifetime DE2846495C2 (de) | 1977-10-25 | 1978-10-25 | Zentraleinheit |
Country Status (6)
Country | Link |
---|---|
US (1) | US4241397A (de) |
JP (1) | JPS5931734B2 (de) |
CA (1) | CA1114518A (de) |
DE (1) | DE2846495C2 (de) |
FR (1) | FR2407520B1 (de) |
GB (1) | GB2007889B (de) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4419727A (en) * | 1979-01-02 | 1983-12-06 | Honeywell Information Systems Inc. | Hardware for extending microprocessor addressing capability |
USRE32493E (en) * | 1980-05-19 | 1987-09-01 | Hitachi, Ltd. | Data processing unit with pipelined operands |
CA1174370A (en) * | 1980-05-19 | 1984-09-11 | Hidekazu Matsumoto | Data processing unit with pipelined operands |
US4499535A (en) * | 1981-05-22 | 1985-02-12 | Data General Corporation | Digital computer system having descriptors for variable length addressing for a plurality of instruction dialects |
US4530050A (en) * | 1981-08-26 | 1985-07-16 | Hitachi, Ltd. | Central processing unit for executing instructions of variable length having end information for operand specifiers |
US4428045A (en) | 1981-09-11 | 1984-01-24 | Data General Corporation | Apparatus for specifying and resolving addresses of operands in a digital data processing system |
US4450522A (en) * | 1981-09-11 | 1984-05-22 | Data General Corporation | Apparatus for deriving addresses of data using displacements from base addresses which change only on call and return |
US4503492A (en) * | 1981-09-11 | 1985-03-05 | Data General Corp. | Apparatus and methods for deriving addresses of data using painters whose values remain unchanged during an execution of a procedure |
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 |
DE3500377A1 (de) * | 1984-01-16 | 1985-07-25 | N.V. Philips' Gloeilampenfabrieken, Eindhoven | Verfahren zur bearbeitung maschinencodierter befehlswoerter und datenprozessor durch durchfuehrung des verfahrens |
JP2545789B2 (ja) * | 1986-04-14 | 1996-10-23 | 株式会社日立製作所 | 情報処理装置 |
DE3856219T2 (de) * | 1987-06-05 | 1998-11-19 | Mitsubishi Electric Corp | Digitaler Signalprozessor mit Adress-Generator für den Zugriff von Daten aus einem Zweidirektionalen Bereich eines Datenspeichers |
JP2609618B2 (ja) * | 1987-08-13 | 1997-05-14 | 株式会社東芝 | データ処理装置 |
JP2902402B2 (ja) * | 1987-09-30 | 1999-06-07 | 三菱電機株式会社 | データ処理装置 |
JPH0766324B2 (ja) * | 1988-03-18 | 1995-07-19 | 三菱電機株式会社 | データ処理装置 |
JPH0769806B2 (ja) * | 1988-10-14 | 1995-07-31 | 三菱電機株式会社 | データ処理装置 |
US5045992A (en) * | 1988-10-19 | 1991-09-03 | Hewlett-Packard Company | Apparatus for executing instruction regardless of data types and thereafter selectively branching to other instruction upon determining of incompatible data type |
KR930005768B1 (ko) * | 1989-01-17 | 1993-06-24 | 후지쓰 가부시끼가이샤 | 마이크로 프로세서 |
US5148528A (en) * | 1989-02-03 | 1992-09-15 | Digital Equipment Corporation | Method and apparatus for simultaneously decoding three operands in a variable length instruction when one of the operands is also of variable length |
US5142633A (en) * | 1989-02-03 | 1992-08-25 | Digital Equipment Corporation | Preprocessing implied specifiers in a pipelined processor |
US5167026A (en) * | 1989-02-03 | 1992-11-24 | Digital Equipment Corporation | Simultaneously or sequentially decoding multiple specifiers of a variable length pipeline instruction based on detection of modified value of specifier registers |
US5179691A (en) * | 1989-04-12 | 1993-01-12 | Unisys Corporation | N-byte stack-oriented CPU using a byte-selecting control for enhancing a dual-operation with an M-byte instruction word user program where M<N<2M |
US5274820A (en) * | 1989-08-14 | 1993-12-28 | International Business Machines Corporation | Method and system for eliminating operation codes from intermediate prolog instructions |
EP0417054B1 (de) * | 1989-08-14 | 1995-10-25 | International Business Machines Corporation | Implizite Prologargumente |
EP0415894B1 (de) * | 1989-08-14 | 1995-11-15 | International Business Machines Corporation | Verbesserte Adressierung in "Prolog" |
US6038584A (en) * | 1989-11-17 | 2000-03-14 | Texas Instruments Incorporated | Synchronized MIMD multi-processing system and method of operation |
US5623650A (en) * | 1989-12-29 | 1997-04-22 | Cray Research, Inc. | Method of processing a sequence of conditional vector IF statements |
US5544337A (en) * | 1989-12-29 | 1996-08-06 | Cray Research, Inc. | Vector processor having registers for control by vector resisters |
US5197130A (en) * | 1989-12-29 | 1993-03-23 | Supercomputer Systems Limited Partnership | Cluster architecture for a highly parallel scalar/vector multiprocessor system |
US5442769A (en) * | 1990-03-13 | 1995-08-15 | At&T Corp. | Processor having general registers with subdivisions addressable in instructions by register number and subdivision type |
US5598547A (en) * | 1990-06-11 | 1997-01-28 | Cray Research, Inc. | Vector processor having functional unit paths of differing pipeline lengths |
US5305446A (en) * | 1990-09-28 | 1994-04-19 | Texas Instruments Incorporated | Processing devices with improved addressing capabilities, systems and methods |
US5367648A (en) * | 1991-02-20 | 1994-11-22 | International Business Machines Corporation | General purpose memory access scheme using register-indirect mode |
US5371864A (en) * | 1992-04-09 | 1994-12-06 | International Business Machines Corporation | Apparatus for concurrent multiple instruction decode in variable length instruction set computer |
GB9412434D0 (en) * | 1994-06-21 | 1994-08-10 | Inmos Ltd | Computer instruction compression |
JP2682469B2 (ja) * | 1994-09-20 | 1997-11-26 | 日本電気株式会社 | 命令コード符号化方式 |
US6182202B1 (en) * | 1997-10-31 | 2001-01-30 | Oracle Corporation | Generating computer instructions having operand offset length fields for defining the length of variable length operand offsets |
US5958038A (en) * | 1997-11-07 | 1999-09-28 | S3 Incorporated | Computer processor with two addressable memories and two stream registers and method of data streaming of ALU operation |
US6061775A (en) * | 1997-12-12 | 2000-05-09 | Advanced Micro Devices, Inc. | Apparatus and method for predicting a first microcode instruction of a cache line and using predecode instruction data to identify instruction boundaries and types |
US6134650A (en) * | 1997-12-12 | 2000-10-17 | Advanced Micro Devices, Inc. | Apparatus and method for predicting a first scanned instruction as microcode instruction prior to scanning predecode data |
US5890006A (en) * | 1997-12-12 | 1999-03-30 | Advanced Micro Devices, Inc. | Apparatus for extracting instruction specific bytes from an instruction |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BE635285A (de) * | 1962-07-24 | |||
DE1250659B (de) * | 1964-04-06 | 1967-09-21 | International Business Machines Corporation, Armonk, NY (V St A) | Mikroprogrammgesteuerte Datenverarbeitungsanlage |
US3331056A (en) * | 1964-07-15 | 1967-07-11 | Honeywell Inc | Variable width addressing arrangement |
US3340513A (en) * | 1964-08-28 | 1967-09-05 | Gen Precision Inc | Instruction and operand processing |
US3461433A (en) * | 1967-01-27 | 1969-08-12 | Sperry Rand Corp | Relative addressing system for memories |
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 |
JPS4849351A (de) * | 1971-04-13 | 1973-07-12 | ||
JPS5439979B2 (de) * | 1972-08-01 | 1979-11-30 | ||
JPS5414902B2 (de) * | 1972-10-31 | 1979-06-11 | ||
FR2230258A5 (de) * | 1973-05-16 | 1974-12-13 | Honeywell Bull Soc Ind |
-
1978
- 1978-10-25 JP JP53132100A patent/JPS5931734B2/ja not_active Expired
- 1978-10-25 CA CA314,184A patent/CA1114518A/en not_active Expired
- 1978-10-25 US US05/954,454 patent/US4241397A/en not_active Expired - Lifetime
- 1978-10-25 DE DE2846495A patent/DE2846495C2/de not_active Expired - Lifetime
- 1978-10-25 FR FR787830343A patent/FR2407520B1/fr not_active Expired
- 1978-10-25 GB GB7841838A patent/GB2007889B/en not_active Expired
Also Published As
Publication number | Publication date |
---|---|
FR2407520A1 (fr) | 1979-05-25 |
GB2007889B (en) | 1982-04-21 |
US4241397A (en) | 1980-12-23 |
FR2407520B1 (fr) | 1989-05-12 |
DE2846495A1 (de) | 1979-05-10 |
JPS5484944A (en) | 1979-07-06 |
GB2007889A (en) | 1979-05-23 |
JPS5931734B2 (ja) | 1984-08-03 |
CA1114518A (en) | 1981-12-15 |
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 | |
DE2714805C2 (de) | ||
DE3210816C2 (de) | ||
DE1901228C3 (de) | Datenverarbeitungsanlage mit Einrichtungen zur Wiederholung von Operationen bei Auftreten eines Fehlers | |
DE3424962C2 (de) | ||
DE69738188T2 (de) | Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor | |
DE68927029T2 (de) | Pipelineprozessor | |
DE2023354C2 (de) | Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher | |
DE3851746T2 (de) | Sprungvorhersage. | |
DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
DE2719295A1 (de) | Programmsteuerung | |
DE68924400T2 (de) | Fliessbanddatenverarbeitungsvorrichtung. | |
DE2806024A1 (de) | Speichersystem mit fehlerfeststell- und korrekturmoeglichkeit | |
DE2611907A1 (de) | Dv-system mit einer prioritaets- unterbrechungs-anordnung | |
DE69616718T4 (de) | Vorrichtung und verfahren zur bestimmung von adressen fehlausgerichteter daten | |
DE3900246C2 (de) | ||
DE3043653A1 (de) | Datenverarbeitungsanlage | |
DE2611975A1 (de) | Dv-system mit einer einrichtung zur zuordnung von prozessen zu einem prozessor auf einer prioritaetsbasis | |
DE2702722C2 (de) | Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen | |
DE2906685C2 (de) | ||
DE2952163C2 (de) | Datenverarbeitungsanlage mit einem ersten und einem zweiten Prozessor | |
DE69825461T2 (de) | Verfahren und gerät zum transferieren von daten zwischen einem registerstapel und einer speicherquelle | |
DE2846520C2 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8125 | Change of the main classification |
Ipc: G06F 9/355 |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition |