CH650600A5 - Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister. - Google Patents
Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister. Download PDFInfo
- Publication number
- CH650600A5 CH650600A5 CH6635/80A CH663580A CH650600A5 CH 650600 A5 CH650600 A5 CH 650600A5 CH 6635/80 A CH6635/80 A CH 6635/80A CH 663580 A CH663580 A CH 663580A CH 650600 A5 CH650600 A5 CH 650600A5
- Authority
- CH
- Switzerland
- Prior art keywords
- address
- register
- output
- memory
- operand
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- 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/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Description
Die Erfindung betrifft eine Zentralprozessoreinheit einer Datenverarbeitungsanlage nach dem Oberbegriff des Patent-65 anspruchs 1.
Der Operationscode (Op-Code) eines Befehls besteht aus einer Gruppe von Binärziffern (Bits), die eine Prozessoroperation definieren, beispielsweise addieren, substrahieren, kom-
3 650 600
plement-bilden, usw. Die für eine Zentralprozessoreinheit Operationscodeteil und einen Adressenteil enthält und die (CPU) formulierte Gruppe von Prozessoroperationen hängt CPU ein Befehlsregister zur Aufnahme des Operationscode-von dem Verarbeitungsvorgang ab, den die Einheit ausführen teils des Befehls während der Befehlsholphase und Speichesoll. Die Gesamtzahl von einzelnen Operationen, die die CPU rung des Operationscode während des gesamten Befehlszy-ausführen kann, bestimmt ihren Satz von Prozessoropera- 5 klus sowie eine Steueranordnung aufweist, die den Prozessortionen. Operationen entsprechende Kommandosignale während der
Die Anzahl von Bits, die den Op-Code (Op-Codefeld) bil- Datenausführungsphase erzeugt, dadurch gekennzeichnet, den, ist eine Funktion der Anzahl von Operationen in der dass die gespeicherten Daten Operanden und Operationscode-Gruppe. Es sind wenigstens N Bits erforderlich, um 2N oder Erweiterungswörter umfassen, dass ein Operationscode-Erweniger bestimmte Operationen zu definieren. Der Konstruk- 10 Weiterungsregister zur Speicherung eines gewählten Operateur der CPU ordnet jeder Operation eine unterschiedliche tionscode-Erweiterungswortes vorgesehen ist, dass die Steuer-Bitkombination zu (d.h., den Op-Code). Der Steuerabschnitt anordnung unter Ansprechen auf den kombinierten Inhalt der CPU stellt die Bitkombination zum richtigen Zeitpunkt in des Befehlsregisters und des Operationscode-Erweiterungsre-einer Folge fest und erzeugt zur Ausführung der angegebenen gisters Kommandosignale erzeugt, die den für den jeweiligen Operation geeignete Kommandosignale in der CPU für die i5 kombinierten Inhalt erforderlichen Prozessoroperationen erforderlichen Bestimmungsstellen. entsprechen, und dass der Inhalt des Operationscode-Erwei-Zusätzlich zur Angabe einer Prozessoroperation überträgt terungsregisters dann geändert wird, wenn die CPU einen Be-ein Befehl normalerweise ausserdem weitere Informationen, fehl zur Übertragung eines neu gewählten Operationscode-beispielsweise die Adresse oder Adressen von Speicherstellen, Erweiterungswortes zum Operationscode-Erweiterungsregi-in denen bei den Prozessoroperationen zu verwendende Ope- 2o ster empfängt.
randen abgelegt sind. Üblicherweise belegen die für die Operanden-Adresse (n) erforderlichen Bits (Adressenfeld) den Es wird also der Inhalt des Operationscode-Erweiterungs-grössten Teil der im Befehl verfügbaren Bitpositionen, so dass registers, der sich nicht bei jedem Befehlszyklus zu ändern nur eine begrenzte Anzahl von Bits verbleibt, die dem Op-Co- braucht, mit dem im Befehlsregister gespeicherten Operadefeld zugeordnet werden. Wenn der Konstrukteur einer 25 tionscode, der sich mit jedem neuen Befehl ändert, zur Bil-CPU feststellt, dass die dem Op-Codefeld zugeordneten Bits dung eines effektiv längeren Operationscode kombiniert, für einen gegebenen Satz von Prozessoroperationen nicht aus- Eine zweckmässige Anwendung des Operationscode-Er-reichen, hatte er bisher die Wahl, sich entweder mit einem weiterungsregisterkonzepts erfolgt dadurch, dass der Satz von kleineren Satz von Prozessoroperationen zu begnügen oder CPU-Operationen in Form von generellen Prozessoroperaden Befehl zu verlängern. 30 tionen und wahlfreien CPU-Merkmalen, die die allgemeinen Lange Befehle sind in kleinen Datenverarbeitungsanla- Operationen modifizieren, organisiert wird. Demgemäss defi-gen, in denen die Speicherkapazität zur Speicherung von Be- niert das Operationscodefeld in jedem Befehl die allgemeinen fehlen begrenzt ist, nachteilig. Darüber hinaus haben kleine Operationen, während die wahlfreien Merkmale durch das im Anlagen ausserdem begrenzte Wortlängen (nur vier Bits in Operationscode-Erweiterungsregister gespeicherte Opera-bestimmten Anlagen, in denen die CPU als Mikroprozessor 3s tionscode-Erweiterungswort gewählt oder auch nicht gewählt vorliegt) und ein langer Befehl hat den zusätzlichen Nachteil, werden.
dass viele Speicherangaben zur Wiedergewinnung erforder- Es ist demgemäss ein Ziel der Erfindung, einen CPU-Auflich sind, wodurch der Betrieb der CPU verlangsamt wird. bau zu schaffen, der einen Prozessor-Operationssatz ermög-Unter dem Gesichtspunkt der Vielseitigkeit, der Program- licht, welcher grösser ist als der, der durch das Operationsco-mier-Bequemlichkeit und des Betriebswirkungsgrades ist es 40 defeld eines Befehls definiert werden kann.
jedoch wünschenswert, einen grossen Satz von Prozessorope- Ein weiteres Ziel der Erfindung ist die Schaffung eines rationen zur Verfügung zu haben. Daher besteht ein Problem CPU-Aufbaus, der die Vielseitigkeit und Güte einer kleinen bei der Auslegung einer CPU für kleine Datenverarbeitungs- Datenverarbeitungsanlage mit kleiner Wortlänge und be-
anlagen darin, die Möglichkeit zu schaffen, einen grossen grenzter Befehlsspeicherkapazität verbessert.
Satz von Prozessoroperationen zu definieren und gleichzeitig 45 Ein zusätzliches Ziel der Erfindung ist die Schaffung eines die Befehlslänge minimal zu halten. CPU-Aufbaus zur Verringerung der Anzahl von Speicherad-
Bekannte Verfahren, z.B. aus den US-Patentschriften ressierungen, die zum Holen eines Befehls in einer Datenver-
Nrn. 3 593 312 und 4 117 536, zur Beibehaltung der Länge arbeitungsanlage mit kleiner Wortlänge erforderlich sind,
von Befehlen waren auf eine Verringerung der Länge des Ein weiteres Ziel der Erfindung ist die Schaffung eines
Adressenfeldes unter Verwendung einer abgekürzten Adres- 50 CPU-Aufbaus, der die Hinzufügung von in der Software pro-
sierung von Speicherstellen gerichtet, beispielsweise das Ver- grammierbaren, wahlfreien Merkmalen ohne zusätzliche fahren der indirekten Adressierung oder der relativen Adres- Operationscodierungen ermöglicht.
sierung zur Erweiterung des Adressencode. Es verbleibt je- Ein zusätzliches Ziel der Erfindung ist die Schaffung eines doch das Problem, wie eine zusätzliche Verringerung der Be- CPU-Aufbaus für billige Mikroprozessoren hoher Güte,
fehlslänge zu erreichen ist, wenn ein N-Bit-Op-Codefeld im 55 Die oben erläuterten sowie weitere Ziele der Erfindung
Befehl mehr als 2N Prozessoroperationen definiert. werden bei verschiedenen Ausführungsbeispielen erreicht, die
Das Problem wird dadurch gelöst, dass die erflndungsge- nachfolgend beschrieben werden. Die neuartigen Merkmale mässe Zentralprozessoreinheit die im kennzeichnenden Teil der Erfindung, und zwar sowohl hinsichtlich des Aufbaus als des Patentanspruchs 1 angeführten Merkmale aufweist. auch der Betriebsweise lassen sich zusammen mit weiteren
Die vorliegende Erfindung schafft eine Zentralprozessor- 60 Zielen und Vorteilen besser anhand der folgenden Beschrei-
einheit (CPU) einer Datenverarbeitungsanlage zur Ausfüh- bung in Verbindung mit den Zeichnungen verstehen. Es seije-
rung eines Programms gespeicherter Befehle während einer doch ausdrücklich darauf hingewiesen, dass die Zeichnungen
Folge von Befehlszyklen, wobei die CPU einen Befehl wäh- lediglich zur Erläuterung und Beschreibung dienen und die rend der Befehlsholphase des Befehlszyklus aufnimmt und Erfindung nicht beschränken sollen. Es zeigen unter Ansprechen auf den Befehl während der Datenausfüh- es Fig. 1 ein Blockschaltbild einer bekannten CPU,
rungsphase eines Befehlszyklus eine durch den Befehl angege- Fig. 2 ein Flussdiagramm zur Erläuterung einer Prozes-
bene Operation mit gespeicherten, durch den Befehl bezeich- sor-Operationsfolge während eines Befehlszyklus,
neten Daten ausführt, wobei jeder gespeicherte Befehl einen Fig. 3 ein Zustandsdiagramm mit der Folge von Schritten,
650 600
denen die CPU gemäss Fig. 1 bei der Ausführung einer ALU-Operation folgt,
Fig. 4 ein Blockschaltbild einer CPU, bei der die Operandenlänge der ALU entsprechend der Erfindung unter Programmsteuerung steht,
Fig. 5 ein Logikschaltbild der in der CPU gemäss Fig. 4 verwendeten Eingabe-Verwaltungsschaltung,
Fig. 6 ein Logikschaltbild der in der CPU gemäss Fig. 4 verwendeten Ausgabe-Multiplexerschaltung,
Fig. 7 ein Logikschaltbild der in der CPU gemäss Fig. 4 verwendeten Ausgabe-Registerschaltung,
Fig. 8 ein Logikschaltbild der in der CPU gemäss Fig. 4 verwendeten Rotier/Rechtsschiebe-Verwaltungsschaltung, Fig. 9 ein Logikschaltbild der in der CPU gemäss Fig. 4 verwendeten ALU-Funktions-Sperrschaltung,
Fig. 10 ein Blockschaltbild einer CPU, in der die wahlfreien Merkmale variabler Operandenbreite, einer automatischen Ladung und einer automatischen Incrementierung von Pointer-Speicherregistern entsprechend der Erfindung unter Programmsteuerung gebracht sind,
Fig. 11 das in der CPU gemäss Fig. 10 verwendete Operationscode-Erweiterungsregister,
Fig. 12 ein Zustandsdiagramm mit der Folge von Schritten, die die CPU gemäss Fig. 10 bei der Ausführung einer ALU-Operation sowie der Operation für die Merkmale variabler Operandenlänge und automatischer Incrementierung durchläuft,
Fig. 13 ein Zustandsdiagramm für die Folge von Schritten, die die CPU gemäss Fig. 10 bei der Adressenbildung und der Operation mit dem Merkmal automatischer Ladung durchläuft,
Fig. 14 ein Blockschaltbild für einen Teil einer CPU, bei der die Zuordnung von Adressenregistern zur Speicherung entweder von Speicheradressen oder von Adressen peripherer Bauteile entsprechend dem Grundgedanken der Erfindung unter Programmsteuerung gebracht ist,
Fig. 15 ein Blockschaltbild des Befehlsregisters, des Operationscode-Erweiterungsregisters und der Steueranordnung der CPU gemäss Fig. 14 sowie ein Logikschaltbild der Schaltung in der Steueranordnung, die das Adressenregister-Zu-ordnungsfeld decodiert und
Fig. 16 ein Blockschaltbild mit einer Schnittstellenanordnung zwischen der CPU gemäss Fig. 14 und einem RAM sowie drei peripheren Geräten.
In Fig. 1 ist ein Blockschaltbild einer einfachen, bekannten Zentralprozessoreinheit 100, nachstehend CPU genannt, eines Types gezeigt, der sich in kleinen Datenverarbeitungsanlagen, beispielsweise Kleinrechnern und mit Mikroprozessoren ausgestatteten Anlagen findet. Es sind nur diejenigen Teüe der CPU in Fig. 1 aufgenommen worden, die für die nachfolgende Erläuterung wesentlich sind. Die Schaltungsanordnung gemäss Fig. 1 verwendet ein einziges Befehlsregister (IR) 101, das den im Augenblick ausgeführten Befehl speichert. Ein von der CPU auszuführendes Programm von Befehlen ist in einem Festwertspeicher (ROM) 102 in Form von Binärwörtern gespeichert, die nachfolgend als Befehlswörter bezeichnet werden. Bei diesem Beispiel enthält jedes Befehlswort 8 Bits. Die CPU entnimmt dem ROM eine ganzzahlige Anzahl von Befehlswörtern zur Bildung eines vollständigen Befehls. Jeder Befehl ist zusammengesetzt aus einem Operationscode (Op-Code), der eine Operation angibt, welche die CPU ausführen kann, und einem Adressencode, der die Speicherstelle angibt, wo ein Operand oder Operanden, die für die angegebene Operation benutzt werden sollen, gespeichert sind. In der CPU gemäss Fig. 1 sind die Operationen in einem Schreib-Lesespeicher (RAM) 103 ebenfalls in Form von Binärwörtern gespeichert, die nachfolgend als Operanden-Wörter bezeichnet werden. Bei diesem Beispiel enthält jedes Operanden-Wort 8 Bits. Ein Operand wird aus einem, dem RAM entnommenen Operanden-Wort gebildet. Das Befehlsregister speichert 8 Bits eines Befehls, von denen 6 für den Op-Code und die restlichen 2 für denjenigen Teil des 5 Adressencode reserviert sind, der die Adressenbetriebsart angibt. Bei der CPU gemäss Fig. 1 stehen vier Adressen-Betriebsarten zur Verfügung, nämlich die direkte Betriebsart, zwei indirekte Betriebsarten und die unmittelbare Datenbetriebsart. Die Länge eines Befehls ändert sich abhängig von io der benutzten Adressier-Betriebsart.
Als Beispiel wird der 6-Bit-Op-Code zur Definition von 48 Prozessor-Operationen benutzt, die durch den in Tabelle I angegebenen Befehlssatz dargestellt sind.
Tabelle I CPU-Befehlssatz
Befehl Op-Code
1 Addieren 000000
20 2Addieren mit Übertrag 000001
3 Subtrahieren 000010
4 Subtrahieren mit Übertrag 000011
5 UND 000100
6 ODER 000101 25 7 Exklusiv-ODER 000110
8 Weiterbewegen 000111
9 Vergleichen und Abzweigen, falls gleich 001000
10 Vergleichen und Abzweigen, falls nicht gleich 001001
11 Vergleichen und Abzweigen, wenn weniger als 001010 30 12 Vergleichen und Abzweigen, wenn grösser als/gleich 001011
13 Prüfen und Abzweigen, wenn Null 001100
14 Prüfen und Abzweigen, wennnichtNull 001101
15 Dekrementieren, Abzweigen, wenn nicht Null 001110 35 16 Einstellen 001111
17 Löschen 010000
18 Inkrementieren 010001
19 Dekrementieren 010010
20 Komplementieren 010011 40 21 Rotieren links ^ 010100
22 Rotieren rechts mit Übertrag 010101
23 Rotieren rechts 010110
24 Rotieren rechts mit Übertrag 011001
25 Schieben links 011000 45 26 Schieben links mit Übertrag 011001
27 Schieben rechts 011010
28 Schieben rechts mit Übertrag 011011
29 Einstellen Bit 011100
30 Löschen Bit 011101 50 31 Abzweigen auf eingestelltes Bit 011110
32 Abzweigen auf gelöschtes Bit 011111
33 Austauschen 100000
34 Prüfen mit Maske und Abzweigen, falls Null 100001
35 Prüfen mit Maske und Abzweigen, falls nicht ss Null 100010
36 Abzweigen 100011
37 Springen 100100
38 Anfordern 100101 39Rückkehren 100110
60 40 Rückkehren nach Unterbrechung 100111
41 Löschen Flag-Register 101000
42 Einstellen Flag-Register 101001
43 Drücken 101010
44 POP 101011 65 45 Austauschen Speicher-Pointer 101100
46 Laden Stack-Pointer 101101
47 Speichern Stack-Pointer 101110
48 Keine Operation 101111
5 650 600
Der Programmzähler (PC) 104 enthält normalerweise die Der erste Schritt in der Datenausführungsphase ist die Bil-Adresse des nächsten Befehlswortes oder der nächsten Kon- dung der Adresse oder der Adressen von Operanden, die für stanten, die aus dem ROM zu lesen sind. Der Programmzäh- die Operation erforderlich sind. Die Operanden sind im 1er ist ein 12-Bit-Register, das eine schrittweise Zählfolge RAM 103 oder in internen Registern der CPU gespeichert, durchläuft und aufeinander folgende Befehlswörter im ROM 5 Zuerst wird der Op-Code im Befehlsregister 101 von der Steu-adressiert, ausser bei einem Programmsprungbefehl (bei- eranordnung 108 decodiert, um festzustellen, ob die Opera-spielsweise den Befehlen 9 bis 15,31,32,34 bis 40,43 und 44 tion eine sogenannte Monadische oder eine sogenannte Dy-in Tabelle I), wenn eine neue Adresse in den Programmzähler adische ist. Eine monadische Operation ist eine Operation, geladen wird. Ein 8-Bit-Datenbus 105 überträgt die Befehle, die nur einen Operanden benötigt, so dass demgemäss nur Adressen und Operanden zwischen verschiedenen Stellen in i0 eine Operanden-Adresse gebildet wird. Die einzige, für eine der CPU. Adressen für einen Zugriff zu Speicherstellen im monadische Operation gebildete Operanden-Adresse wird RAM 103 sind in einem 12-Bit-Speicheradressen-Zwischen- Bestimmungsadresse genannt, da die Ergebnisse der Opera-speicher (MAL von Memory Address Latch) 106 gespeichert, tion automatisch in derjenigen Speicherstelle abgelegt wer-das eine Adresse von einem Register einer Gruppe von Regi- den, die vorher von dem einzigen Operanden eingenommen stern im Speicher-Pointer (MP) 107 empfangt. Der Inhalt des xs worden ist. Eine dyadische Operation ist eine Operation, die Befehlsregisters (IR) 101 wird von der Steueranordnung 108 zwei Operanden erfordert, so dass zwei Operanden-Adressen festgestellt, die Kommandosignale für Prozessoroperationen gebildet werden. Die Adresse des ersten Operanden wird und Adressen-Manipulationen erzeugt, welche von dem fest- Quellenadresse und die des zweiten Operanden Bestimmungsgestellten Inhalt angegeben werden. Die Kommandosignale adresse genannt, da die Ergebnisse der dyadischen Operation werden zu verschiedenen Bestimmungsorten in der CPU über 20 automatisch in derjenigen Speicherstelle abgelegt werden, die die Steuerleitung 109 übertragen. vorher durch den zweiten Operanden belegt war. In der CPU Die arithmetischen und logischen Operationen werden in gemäss Fig. 1 ist die Bestimmungsadresse im allgemeinen im-der Arithmetik-Logikeinheit (ALU) 110 ausgeführt, die an mer der Akkumulator 113.
ihren Eingängen A und B entweder einen oder zwei Operan- Die Adressen-Betriebsweisen-Bits im Befehlsregister werden aufnehmen kann. Die ALU weist einen Übertrags-Einga- 25 den ebenfalls durch die Steueranordnung festgestellt. Wenn beeingang zur Aufnahme eines Übertragssignals und einen eine direkte Adressierung angegeben ist, so wird eine Adresse Übertrags-Ausgabeausgang auf, an dem das von der ALU von einer Speicherstelle im ROM in den Speicheradressen-110 erzeugte Übertragssignal verfügbar ist. Das Übertrags- Zwischenspeicher (MAL) übertragen. Wenn dagegen eine der Eingangssignal wird von der Übertrags-Eingabeverwaltungs- beiden indirekten Adressen-Betriebsweisen angegeben ist, so Schaltung 111 geliefert, die eine Auswahl zwischen dem Signal 30 wird der Inhalt eines bezeichneten Speicher-Pointerregisters «Plus 1 » im Falle einer Inkrement-Operation, dem Übertrags- im Speicher-Pointer (MP) 107 in den Speicheradressen-Zwi-Signal im Falle einer Operation «Rotieren links mit Über- schenspeicher (MAL) 106 übertragen. Im Fall der unmittel-trag» oder dem höchstwertigen Bit AC 7 des Akkumulators baren Daten-Adressierbetriebsweise werden der Operand im Falle einer Operation «Rotieren links» trifft. Das Über- oder die Operanden selbst durch den Adressenteil des Befehls trags-Ausgangssignal wird vom Übertragsregister (CR) 112 35 übermittelt, so dass keine Operandenadressen gebildet aufgenommen, welches einen ALU-Funktionsüberlauf oder werden.
-unterlauf angibt. Das Übertragsregister ist ausserdem bei Nachdem die Operanden-Adresse gebildet und zum MAL
den Schiebe- und Rotier-Operationen ladbar, rückstellbar 106 übertragen worden ist, kann der Operand aus derjenigen und nimmt an diesen Operationen teil. Speicherstelle im RAM 103 geholt werden, auf die der MAL
Der Akkumulator (ACC) 113, der einen Hauptabschnitt 40 hinweist. Der letzte Schritt in der Datenausführungsphase ist und einen abhängigen Abschnitt aufweist, wird bei diesem die Durchführung der Operation, die durch den Op-Code im
Ausführungsbeispiel auch als Zwischenspeicher für Daten be- Befehlsregister 101 angegeben wird, in diesem Fall eine ALU-
nutzt, die aus dem RAM zu lesen oder in den RAM zu schrei- Funktion. Die Beendigung der ALÜ-Funktion schliesst den ben sind. Eine spezielle Schiebe/Rotier-Rechts-Schaltung Befehlszyklus ab.
(SRR) 114 ermöglicht Schiebe- und Rotier-Rechts-Operatio- 45 In Fig. 3 ist ein Zustandsdiagramm 300 für die verein-
nen unter Einschluss des Akkumulators. Die Schiebe- und fachte CPU in Fig. 1 gezeigt. Die Bezugsziffern 301 bis 310
-Rotier-Links-Operation wird durch Addieren des Operan- geben die einzelnen Schritte in einem Befehlszyklus zur Aus-
den zu sich selbst durchgeführt und benötigt daher keine be- führung von ALU- und Datenübertragungsoperationen an.
sondere Schaltung. Eine Rotier/Schiebe-Rechts-Verwaltungs- Nicht-Datenoperationen, beispielsweise Abzweigen, Anfor-
schaltung (RSR) 115 wählt entweder das Übertrags-Aus- so dern, Rückgeben usw. sind als gemischte Befehle klassifiziert gangssignal oder das niedrigstwerte Bit AC 0 des Akkumula- und nicht gezeigt. Die dyadische Operation Addieren mit ei-
tors zwecks Eingabe in die höchstwertige Bit-Position des Ak- nem ersten, in einem RAM-Speicherstelle abgelegten Operan-
kumulators für die Operation «Rotieren rechts im Übertrag» den, auf die ein Register in MP hinweist und einem zweiten bzw. die Operation «Rotieren rechts». Operanden, der bereits im Akkumulator gespeichert ist, lässt
Die Ausführung jedes Befehls durch eine CPU geschieht 55 sich durch die nachstehende Zustandsfolge darstellen:
in einer Folge von Grundschritten, die den Befehlszyklus bilden. Die Folge von Schritten wird durch Zeitsteuerungssi- S1 ->S2->S4->S6->S9->S10.
gnale überwacht, die durch in Fig. 1 nicht gezeigte Taktschal-
tungen erzeugt werden. Es sei jetzt auf die Zustände Bezug genommen, die durch
In Fig. 2 ist ein Flussdiagramm von Schritten in einem Be- eo die Blöcke 301 bis 310 in Fig. 3 dargestellt werden. Im Zu-
fehlszyklus gezeigt. Der Befehlszyklus ist in zwei Phasen un- stand S1 wird der Inhalt der durch den Programmzähler (PC)
terteilt, nämlich eine Befehlsholphase und eine Datenausfüh- 104 adressierten ROM-Speicherstelle zum Befehlsregister rungsphase. Die Bezugsziffern 201 bis 206 geben die Haupt- (IR) übertragen. Im Zustand S2 decodiert die Steueranord-
schritte jeder Phase an. In der Befehlsholphase wird ein Be- nung 108 den Inhalt des Befehlsregisters. Nimmt man für die-
fehlswort, dessen Adresse sich im Programmzähler befindet, 65 ses Beispiel eine indirekte Adressier-Betriebsart an, so wird im vom ROM 102 zum Befehlsregister 101 übertragen. Das Be- Zustand S4 (304) der Inhalt eines angegebenen Registers in fehlswort weist, wie oben erwähnt, ein Operationscodefeld MP nach MAL übertragen. Im Zustand S6 (306) wird der mit 6 Bits und ein Adressen-Betriebsartenfeld mit 2 Bits auf. Operand, der in der durch die Adresse in MAL 106 angegebe
650 600 6
nen RAM-Speicherstelle gespeichert ist, zur ALU 110 über- für jeden Befehlszyklus erfordern. Der zusätzliche Speichertragen, und es wird eine bestimmte ALU-Operation, die bedarf erhöht den Aufwand der Anlage und die zusätzlichen durch den Op-Code bezeichnet wird (nämlich Addieren) mit ROM-Adressierungen verringern die Betriebsgeschwindem oben angegebenen Operanden und dem Inhalt des Akku- digkeit.
mulators durchgeführt, wobei das Ergebnis zum Hauptab- 5 Eine alternative Möglichkeit zur Programmauswahl der schnitt des Akkumulators 113 übertragen wird. Im Zustand Operanden-Länge wird durch die Prinzipien der vorliegenden S9 (309) wird der Inhalt vom Hauptabschnitt entsprechend Erfindung geschaffen. Es ist einzusehen, dass bei den meisten der Angabe durch den Befehl entweder zum abhängigen Ab- Programmen nach Auswahl einer bestimmten Operandenschnitt des Akkumulators 113 oder zu einer RAM-Speicher- Länge viele Operationen ausgeführt werden können, bevor es stelle übertragen, auf die durch MAL 106 hingewiesen wird, io erforderlich wird, die Operanden-Länge zu ändern. Es bleibt Für die Addier-Operation verbleibt das Ergebnis (die also derjenige Teil des Op-Codefeldes, der die Operanden-Summe) im Akkumulator 113. Im Zustand S10 (310) wird der Länge angibt, über viele Befehlszyklen konstant, während Programmzähler (PC) 104 vor Beginn eines neuen Befehls- sich derjenige Teil des Op-Codefeldes, der die in Tabelle I auf-zyklus weiter geschaltet. gelisteten Operationen angibt (allgemeine Operationen), nor-
Ein Beispiel für eine monadische Operation, nämlich Ein- xs malerweise mit jedem neuen Befehlszyklus ändert. Daher stellen Akkumulator, lässt sich durch die nachstehende Zu- wäre es unnötig, in jedem Befehl den sich selten ändernden standsfolge darstellen: Teil des Op-Code zu übertragen, der stattdessen in einem besonderen Hardware-Register gespeichert werden kann. Für
S1 ->S2->S7->S9->S10. die vorliegenden Zwecke soll dieses besondere Hardware-Re-
20 gister das Op-Code-Erweiterungsregister (OER von op-code Die durch die Zustände S1 und S2 angegebenen Schritte extension register) 421 bzw. 1020 genannt werden. Die Versind die gleichen, die oben für die dyadische Operation be- Wendung des OER zur Speicherang desjenigen Teils des Op-schrieben worden sind. Im Zustand S7 (307) erzeugt die Ein- Code, welcher die Operanden-Länge angibt, bedeutet, dass heit ALU ein 8-Bit-Wort mit nur 1-Werten und überträgt es das Op-Codefeld in jedem Befehl nur die allgemeinen Operazioni Akkumulator. Die durch die Zustände S9 und S10 ange- 25 tionen angeben muss, für die 6 Bits ausreichend sind. Durch gebenen Schritte sind die gleichen, die oben für die dyadische Verwendung des OER-Konzepts ist es also unnötig, die BeOperation beschrieben worden sind. fehlslänge zu erhöhen.
Als Beispiel für eine Datenübertragungsoperation wird Entsprechend dem oben angegebenen Konzept kann das der Befehl Bewegen (MOVE), bei dem eine im ROM 102 ge- OER ausserdem weitere wahlfreie Merkmale zusätzlich zu der speicherte Konstante an ein Register in MP 107 übertragen 30 variablen Operanden Länge angeben. Einige dieser weiteren wird, durch die nachsthende Zustandsfolge angegeben: Merkmale, beispielsweise das automatische Laden und automatische Inkrementieren von Speicher-Pointerregistern und
Sl->S2->S3->-S5->S10. die Zuordnung von Adressenregistern sollen hier ebenfalls im einzelnen beschrieben werden.
Die durch die Zustände S1 und S2 angegebenen Schritte 35 Wenn mehrere wahlfreie Merkmale durch das OER ange-sind bereits in Verbindung mit der dyadischen Operation be- geben werden sollen, muss eine ausreichende Zahl von Bitschrieben worden. Im Zustand S3 (303) wird der Programm- Positionen im OER zur Angabe aller speziellen Kombinatio-zähler so weiter geschaltet, dass er auf die ROM-Speicher- nen von wahlfreien Merkmalen zur Verfügung stehen. Eine stelle hinweist, in der die Konstante abgelegt ist. Im Zustand Gruppe von Bits, die durch das OER gespeichert werden soll, S5 (305) wird die Konstante in der ROM-Speicherstelle, auf 40 wird nachfolgend als OP-Codeerweiterungswort bezeichnet, die der Programmzähler hinweist, nach MP übertragen. Der Der Inhalt des OER wird nur dann geändert, wenn es erfor-durch den Zustand S10 angegebene Schritt ist bereits in Ver- derlich ist, und zwar mit Hilfe spezieller Befehle (zusätzlich zu bindung mit der dyadischen Operation beschrieben worden. der Liste in Tabelle I), die vom Speicher ein neues Op-Code-Der CPU-Aufbau gemäss Fig. 1 lässt sich so abändern, Erweiterungswort zum OER übertragen und ein bestimmtes dass zusätzliche Prozessoroperationen zu den in Tabelle I an- 45 Bit im OER ändern. Jedes Op-Codeerweiterungswort entgegebenen Operationen möglich sind. Beispielsweise kann, spricht einer besonderen Kombination spezieller Merkmale, wie noch im einzelnen beschrieben werden soll, der ALU-Ab- die im Programm verwendet werden. Es wird also durch Anschnitt so geändert werden, dass er an 4-Bit-Operationen so- Wendung des OER-Konzepts für die Programmauswahl von wie auch an die normalen 8-Bit-Operationen angepasst ist, wahlfreien Merkmalen ROM-Speicherraum gespart und es wobei die Auswahl der Operandenlänge unter Programm- so werden zusätzliche ROM-Adressierungen in jedem Befehlssteuerung steht. Eine solche Abänderung beeinflusst die arith- zyklus vermieden.
metischen, logischen und Datentransportoperationen, die durch die Befehle 1 bis 35 in Tabelle I dargestellt sind. Die Variable Operandenlänge
Abänderung schafft dann effektiv 35 neue Operationen für In Fig. 4 ist ein Blockschaltbild für eine Zentralprozessor-
4-Bit-Operanden zusätzlich zu denen in Tabelle I, wodurch 55 einheit (CPU) 400 gezeigt, die der Einheit nach Fig. 1 im Prin-
die Gesamtzahl von Operationen auf 83 erhöht wird. Da das zip ähnlich ist, die aber so modifiziert wurde, dass eine Ände-
6-Bit-Op-Codefeld in der CPU gemäss Fig. 1 nur 64 be- rung der Operandenlänge von 8 Bits auf 4 Bits möglich ist.
stimmte Codierungen zulässt, muss das Op-Codefeld zur An- Diese Modifikationen beinhalten eine Unterteilung der ALU-
passung an die zusätzlichen Operationen erweitert werden. Einheit, des Akkumulators und der Schiebe- und Rotier-
Aufgrund der Tatsache, dass die Wortlänge der CPU 8 Bits «> Rechtsschaltung in zwei unabhängige 4-Bit-Abschnitte, die beträgt, wäre es zur Vermeidung von Schnittstellen-Schwie- als «oberer» und «unterer» Abschnitt bezeichnet werden sol-
rigkeiten erforderlich, das Befehlsregister um Vielfache von 8 len. In Fig. 4 sind der «obere» Abschnitt der ALU (ALUH),
Bits zu erweitern. Wenn daher jeder Befehl Informationen be- des Akkumulators (ACCH) und der Schiebe- und Rotier-
züglich der Operanden-Länge beinhalten soll, müsste die Be- Rechtsschaltung (SRRH) durch die Bezugszeichen 410,416
fehlslänge um 8 Bits vergrössert werden. Dies würde eine be- 65 bzw. 418 bezeichnet. Der «untere» Abschnitt der ALU
trächtliche Erhöhung des zur Speicherung eines Programms (ALUL), des Akkumulators (ACCL) und der Schiebe- und erforderlichen ROM-Speicherraums nötig machen und aus- Rotier-Rechtsschaltung (SRRL) tragen die Bezugsziffern serdem zusätzlich eine oder mehrere ROM-Adressierungen 411,417 bzw. 419. In jedem Fall sind der «obere» und «un-
tere» Abschnitt so verbunden, dass, wenn die Operanden-Länge 8 Bits beträgt, der «obere» Abschnitt die höchstwertigen 4 Bits des Operanden-Wortes und der «untere» Abschnitt die niedrigststelligen 4 Bits des 8-Bit-Operandenwortes verarbeitet. Wenn die Operanden-Länge 4 Bits beträgt, sind die «oberen» Abschnitte jedes unterteilten Bauteils nicht in Betrieb, so als ob der augenblickliche Befehl «keine Operation» lauten würde, während die «unteren» Abschnitte die niedrigstwertigen 4 Bits eines Operanden Wortes verarbeiten.
Die Übertragseingabe-Verwaltungsschaltung (CIA) 412 liefert normalerweise eine «Null» an den Übertrags-Eingabe-eingang des Abschnitts ALUL 411. Wenn der augenblickliche Befehl Inkrementieren oder Dekrementieren lautet, so ist das CIA-Ausgangssignal eine «Eins». Das CIA-Ausgangssignal ist gleich dem Zustand des Übertrags-Registers 413, wenn der augenblickliche Befehl Addieren mit Übertrag, Subtrahieren oder Rotieren links mit Übertrag lautet. Für den Befehl Rotieren links ist das CIA-Ausgangssignal gleich dem höchstwertigen Bit (AC 7) von ACCH im Fall eines 8-Bit-Operan-den und gleich dem höchstwertigen Bit (AC 3) von ACCL im Fall eines 4-Bit-Operanden. Ein Beispiel für eine logische Verwirklichung von CIA ist in Fig. 5 dargestellt.
Die Übertrags-Ausgabe-Multiplexerschaltung (COMX) 414 liefert das Übertrags-Bit-Eingangssignal für das Übertrags-Register 413. Das COMX-Ausgangssignal ist entweder das Übertrags-Ausgabe-Ausgangssignal von ALUH im Fall eines 8-Bit-Operanden oder das Ubertrags-Ausgabe-Aus-gangssignal von ALUL im Fall eines 4-Bit-0]3eranden. Ein Beispiel für eine logische Verwirklichung der Übertrags-Aus-gabemultiplexerschaltung ist in Fig. 6 gezeigt.
Das Übertrags-Register (CR) 413) ist ein Flipflop, das abhängig von dem augenblicklichen Befehl von verschiedenen
650 600
Quellen aus eingestellt werden kann. Die operativen Eingangssignale des Übertragsregisters (CR) sind für verschiedene Befehle nachstehend angegeben:
s Befehl
(ALU Operation) mit Übertrag Laden CR xo Löschen CR Schieben rechts mit Übertrag
Rotieren rechts mit Übertrag
Operatives CR-Ein-gangssignal CB von COMX
Daten-Bus
«0»
«0»
AC0.
Ein Beispiel für die logische Verwirklichung des Übertragsregisters 413 ist in Fig. 7 gezeigt.
Die Rotier/Schiebe-Rechts-Verwaltungsschaltung (RSR) 2o 420 liefert das höchstwertige Bit für ACCH und/oder ACCL bei Schiebe- und Rotier-Rechts-Operationen. Im Fall einer Operanden Länge von 8 Bits liefert RSR den Zustand den niedrigstwertigen Bit (AC0) von ACCL zur höchstwertigen Bit-Position (AC 7) von ACH über den Ausgang OT8. Aus-25 serdem liefert RSR den Zustand des niedrigstwertigen Bit (AC4) von ACCH an die höchstwertige Bit-Position (AC 3) von ACCL über den Ausgang OT4. Im Falle einer Operanden-Länge von 4 Bits liefert RSR den Zustand des niedrigstwertigen Bit (ACO) von ACCL an die höchstwertige Bit-Po-30 sition (AC3) von ACCL 417 über den Ausgang OT4. Die Eingangssignale und operativen Ausgangssignale von RSR für verschiedene Befehle sind unten angegeben:
Befehl
Schieben rechts (8 Bits)
Schieben rechts (4 Bits)
Rotieren rechts (8 Bits)
Rotieren rechts (4 Bits)
Schieben rechts Rotieren mit Übertrag (8 Bits)
Schieben rechts Rotieren mit Übertrag (4 Bits)
Eingangssignale 0,AC4
0
ACO, AC4 ACO
Übertrag, AC4 Übertrag
Eine logische Verwirklichung der Rotier-Schiebe-Rechts-Verwaltungsschaltung (RSR) ist in Fig. 8 gezeigt.
Die ALU-Funktions-Sperrschaltung (ALUFI von ALU Function /nhibit Circuit) 415 wird zur Abschaltung von ALUH benutzt, wenn die Operanden-Länge 4 Bits beträgt. Wenn die Operanden-Länge 8 Bits beträgt, bestimmen die ALU-Funktionssteuerleitungen 422 von der Steueranordnung 408 die Auswahl von ALU-Funktionen sowohl für ALUH 416 als auch für ALUL 417. Wenn jedoch die Ope-randen-Länge 4 Bits beträgt, legt ALUFI 415 ein Steuersignal an ALUH 416 an, das dem Befehl keine Operation entspricht, und ALUH 416 lässt Operanden unverändert durchlaufen. Ein Beispiel für eine logische Verwirklichung der ALU-Funk-tions-Sperrschaltung 415 ist in Fig. 9 gezeigt.
Wenn die Operanden-Länge von 4 Bits für die CPU gemäss Fig. 4 gewählt wird, so werden nur die niedrigstwertigen 4 Bits des Operandenwortes verarbeitet, während die höchstOperative Ausgangssignale OT8, OT4
OT4
OT8, OT4 OT4
OT8, OT4 OT4.
wertigen 4 Bits unbenutzt bleiben. Um die höchstwertigen 4 Bits des Operandenwortes auszunutzen und damit den RAM-Speicherraum voll auszunutzen, der zur Speicherung von 8-55 Bit-Wörtern organisiert ist, ist es erforderlich, Mittel zum Austausch der höchstwertigen und niedrigstwertigen 4 Bits des Operandenwortes vorzusehen. Ein solcher Austausch lässt sich auf mehreren Wegen erreichen.
Ein Weg zur Erzielung eines effektiven Austausches der 60 höchstwertigen und niedrigstwertigen 4 Bits eines Operandenwortes besteht darin, unter Steuerung einer Bit-Position in OER 421 den «oberen» und «unteren» Abschnitt der ALU auszutauschen. Wenn beispielsweise eine bestimmte Bit-Posi-tion von OER 421 zur Steuerung des ALU-Austausches eine es «0» während einer 4-Bit-Operation enthält, sperrt ALUFI 415 den Abschnitt ALUH 410, während ALUL 411 die niedrigstwertigen 4 Bits des Operandenwortes verarbeiten kann. Wenn jedoch die bestimmte Bit-Position während einer 4-Bit-
650 600 8
Operation eine «1» enthält, sperrt ALUFI 415 den Abschnitt Adressen-Bus 1027 überträgt Adressen von AL an AAU,
ALUL 411, während der Abschnitt ALUH 410 nur die RAM und ROM.
höchstwertigen 4 Bits des Operandenwortes verarbeiten kann. Die 4-Bit-Arithmetik-Logikemheit (ALU) 1017 wird zur Die höchstwertigen und niedrigstwertigen 4 Bits eines Durchführung aller arithmetischen und logischen Funktio-Operandenwortes können direkt durch Einführen eines Be- 5 nen benutzt. Die Operanden für die ALU sind in 4-Bit-Kurz-fehls Rotieren 4 in die Liste gemäss Tabelle I ausgetauscht zeit-Datenregistern (TA) 1013 und (TB) 1019 gespeichert, werden. Die CPU gemäss Fig. 4 überträgt bei Empfang eines Abweichend von der CPU gemäss Fig. 4 hat die CPU ge-solchen Befehls ein durch den Befehl angegebenes Operan- mäss Fig. 10 keinen adressierbaren Akkumulator. Stattdessen denwort vom RAM 403 zum unterteilten Akkumulator, wo- können die RAM-Speicherstellen, auf die die Speicher-Poin-bei sich zu Anfang die höchstwertigen 4 Bits des Operanden- 10 ter-Register 1010 und 1011 hinweisen, als Akkumulatoren be-wortes in ACCH 416 und die niedrigstwertigen 4 Bits in nutzt werden. Dadurch kann die CPU so viele Akkumulato-ACCL 417 befinden. Das Operandenwort wird dann im un- ren aufweisen, wie es der RAM-Speicherraum zulässt. terteilten Akkumulator rotiert, bis die früheren 4 höchstwerti- Die prinzipielle Operandenlänge der ALU in der CPU gegen Bits in ACCL 417 und die früheren 4 niedrigstwertigen mäss Fig. 10 beträgt 4 Bits. Der Aufbau ist jedoch so getrof-Bits in ACCH 416 sind. Das rotierende Operandenwort im 15 fen, dass ALU-Operationen für Operanden durchgeführt unterteilten Akkumulator kann entweder sofort für eine werden können, deren Länge gleich ganzzahligen Vielfachen ALU-Operation benutzt oder zurück zum RAM 403 übertra- der prinzipiellen Länge ist (beispielsweise 8,12 und 16 Bits), gen werden. Für Operanden, deren Länge ganzzahlige Vielfache der
Eine programmierbare Auswahl der Operandenlänge er- Grundlänge sind, arbeitet die ALU mit 4-Bit-Segmenten des folgt mit Hilfe des Op-Code-Erweiterungsregisters (OER) 20 Operanden, beginnend mit dem niedrigstwertigen Segment,
421, das bei diesem Beispiel nur eine Bit-Position enthalten wobei die ALU-Operation in der Reihenfolge ihrer Wertig-
muss. Wenn der Binärzustand dieses Bits eine «1» ist, beträgt keit für die anderen Segmente wiederholt wird. Ein 4-Bit-Seg-
die Operandenlänge für ALU- und Datenübertragungsopera- ment wird üblicherweise als Nibble bezeichnet. Die Anzahl tionen 4 Bits. Im andern Fall beträgt die Operandenlänge 8 von Wiederholungen der ALU-Operation, die für eine gege-
Bits. Ein Befehl Laden OER wird der Liste gemäss Tabelle I 25 bene Operandenlänge erforderlich ist, ist gleich der Anzahl hinzugefügt, und der ROM 402 enthält zwei Konstanten, von Nibbles im Operanden.
nämlich eine «1» und eine «0» als Op-Code-Erweiterungswör- Im Ausführungsbeispiel gemäss Fig. 10 besitzt das OER ter. Es wird zwar nur ein Bit benötigt, um die Operanden- 1020 sechs Bit-Positionen, die gemäss Fig. 11 zugeordnet länge anzugeben, aber OER 421 kann zusätzliche Bit-Positio- sind. Gemäss Fig. 11 gibt ein 2-Bit-Feld mit den Bits bO nen zur Auswahl weiterer wahlfreier Merkmale enthalten, wie 30 (1001) und bl (1002) die vier wahlfreien Operandenlängen oben erläutert. mit 4 Bits, 8 Bits, 12 Bits und 16 Bits an. Die weiteren 4-Bit-Eine alternative CPU-Konstruktion zur Verwirklichung Positionen vom OER 1020 geben andere Sondermerkmale einer variablen Operandenlänge sowie anderer wahlfreier an, die später hier beschrieben werden sollen. Die Codierung Merkmale ist in Fig. 10 gezeigt. Obwohl der Aufbau der CPU der Bits bO, bl sowie die Anzahl von Wiederholungen, die zur gemäss Fig. 10 wesentlich verschieden von dem nach Fig. 4 35 Vervollständigung einer ALU-Operation für jeden Zustand ist, wird das gleiche Op-Code-Erweiterungsregister-Konzept erforderlich sind, werden nachfolgend angegeben: zur Auswahl der wahlfreien Merkmale benutzt. In Fig. 10 dienen das Befehlsregister 1001, der ROM 1002, der RAM 1003, bl, bO der Daten-Bus 1004 und die Steueranordnung 1005 alle der gleichen Funktion wie ihre entsprechenden Bauteile in der 4o 00 CPU gemäss Fig. 4 mit der Ausnahme, dass die Wortlänge 01 des ROM und RAM sowie der Umfang des Daten-Bus und 10 des Befehlsregisters jeweils 4 Bits anstelle von 8 Bits beträgt. 11 Der Adressenzwischenspeicher (AL von Adress Latch) 1006 ist ein 12-Bit-Master-Slave-Zwischenspeicher zur Aufnahme 45 Es wei wieder auf Fig. 10 Bezug genommen. Die Zahl von der augenblicklichen Adresse eines Befehls oder eines Ope- Wiederholungen einer ALU-Operation, die durch den Inhalt randen. Die 12-Bit-Adressen-Arithmetik-Einheit (AAU) vom OER 1020 angegeben wird, wird durch den 2-Bit-Zähler 1007 inkrementiert oder dekrementiert die augenblickliche 1021 und den Komparator 1022 gesteuert, der den Stand des Adresse in AL 1006. Der Internregisterspeicher (IRM) 1008 Zählers mit dem Wert von bO-bl vergleicht. Wenn der Stand ist eine Gruppe von Registern, die einen Programmzähler so des Zählers und der Wert von bO-bl übereinstimmen, hört (PC) 10Ò9, zwei Speicher-Pointerregister (BÖ) 101Ö und (Bl) die Wiederholung der ALU-Operation auf.
1011 sowie einen Stack-Pointer 1012 enthält. Das Kurzzeitre- Die Einzelheiten einer ALU-Operation in der CPU ge-
gister (TRM von Temporary Register Memory) 1013 enthält mäss Fig. 10 lässt sich besser anhand des Zustandsdiagramms zwei Kurzzeitregister (TO) 1014und(Tl) 1015, die für zwi- 1200 in Fig. 12 verstehen. DerBefehlsholzustand 1201 und schenzeitliche Adressenberechnungen während der Adressen- 55 der Adressenbildungszustand 1202 in Fig. 12 sind bereits in bildung benutzt werden. Die vier für die CPU gemäss Fig. 4 Verbindung mit Fig. 2 beschrieben worden. Nach der Adres-
verfügbaren Adressier-Betriebsweisen sind ebenfalls für die senbildung wird die Quellenadresse für eine dyadische Opera-
CPU gemäss Fig. 10 verfügbar. tion im Kurzzeitregister 1014 gespeichert. Wenn die durch
Der Daten-Adress-Bus-Multiplexer (DAMUX) 1015 den augenblicklichen Befehl angegebene Operation eine mo-steuert die Übertragung von Daten in 4-Bit-Wörtern vom 60 nadische oder dyadische Operation ist, befindet sich die Be-ROM 1002 und RAM 1003 zu 12-Bit-Registern in IRM 1008 stimmungsadresse im Kurzzeitregister 1015. Es sei darauf und TRM 1013 über den 4-Bit-Daten-Bus. DAMUX 1015 hingewiesen, dass bei der CPU gemäss Fig. 10 für eine dyadi-multiplexiert die 4 Bits vom Daten-Bus auf die drei 4-Bit-Ab- sehe Operation immer eine Bestimmungsadresse erforderlich schnitte (bezeichnet mit oberer, mittlerer und unterer Ab- ist, und zwar abweichend von der CPU gemäss Fig. 4, bei der schnitt) des Adressen-Arithmetik-Bus 1026. Die drei Ab- 65 der Akkumulator für dyadische Operationen immer das Beschnitte des Adressen-Arithmetik-Bus sind an den oberen stimmungsregister ist.
bzw. mittleren bzw. unteren 4-Bit-Abschnitt der 12-Bit-Regi- Im Zustand ALU1 (1203) wird der Inhalt von TO (Quel-
ster in IRM 1008 und TRM 1013 angeschaltet. Ein 12-Bit- lenadresse) zum Master-Abschnitt (ALM) des Adressen-Zwi-
Operanden- ALU-Wiederlänge holungen 16 Bits 4 4 Bits 1 8 Bits 2 12 Bits 3.
9 650 600
schenspeichers 1023 in Fig. 10 übertragen. Wenn der äugen- Während der durch den Block 1301 dargestellten Befehls-
blickliche Befehl eine monadische Operation angibt, ist der holphase wird ein Befehlswort, das einen Op-Code und einen nächste Zustand ALU5 (1207). Im anderen Fall ist der näch- adressier-betriebsweisen Code enthält, vom ROM 1002 zum ste Zustand ALU2 (1204). Während des Übergangs von Befehlsregister (IR) 1001 übertragen. Die CPU geht dann in
ALU1 auf ALU2 wird der Inhalt von ALM zum Slave-Ab- 5 den ersten Adressenbildungszustand AFI (1302). Der Weg,
schnitt (ALS) des Adressen-Zwischenspeichers 1024 in Fig. dem die CPU durch die Adressenbildungsschritte folgt, hängt
10 übertragen, und im Zustand ALU2 wird der in der RAM- von der durch den adressier-betriebsweisen Code im IR 1001 Speicherstelle, auf die ALS hinweist, abgelegte Operand zum angegebenen Adressierbetriebsweise sowie davon ab, ob die Kurzzeit-Datenregister TB übertragen. Im Zustand ALU3 durch den Op-Code im IR 1001 angegebene Operation mo-(1205) wird die Adresse in ALS inkrementiert und sowohl an io nadisch oder dyadisch ist. Ein D-Flipflop (DFF) 1025 in der TO 1014 als auch an ALM übertragen. Wenn ein noch zu be- CPU gemäss Fig. 10 verfolgt, ob die bei einer dyadischen schreibendes wahlfreies Merkmal, nämlich die automatische Operation gebildete Adresse eine Quellen- oder eine Bestim-Inkrementierung benutzt wird, wird die inkrementierte mungsadresse ist. Vor der Bildung der Quellenadresse für eine Adresse ausserdem an das Pointer-Register (B0) 1010 gege- dyadische Operation wird DFF 1025 gelöscht (DFF=0), da-ben. Wenn der augenblickliche Befehl eine unmittelbare Da- is gegen wird vor der Bildung der einzigen Operandenadresse ten-Adressierung für den zweiten Operanden der dyadischen bei einer monadischen Operation oder der Bestimmungs-Operation angibt (d.h., der zweite Operand selbst wird durch adresse bei einer dyadischen Operation DFF eingestellt das Adressenfeld des augenblicklichen Befehls übertragen), so (DFF = 1). Wenn die direkte Adressier-Betriebsweise für die ist der nächste Zustand ALU4 (1206). Im Zustand ALU4 Quellenadresse angegeben ist, werden die höchstwertigen wird der Inhalt von ALS 1024 zum Programmzähler (PC) 20 (oberen) 4 Bits von TO 1014 alle auf «1» gesetzt und entspre-
1009 übertragen, wodurch die ROM-Adresse für die nächste chend werden, wenn die direkte Adressier-Betriebsweise für
Datenkonstante oder den nächsten Befehl wieder hergestellt die Bestimmungsadresse angegeben ist, die vier höchstwerti-
wird. Für die anderen Adressier-Betriebsweisen ist der näch- gen Bits von T1 1015 alle auf « 1 » gesetzt. _
ste Zustand ALU5 (1207), wobei die in T1 gespeicherte Be- Die CPU geht dann zum Zustand AF2 (1303) weiter,
stimmungsadresse an ALM 1023 übertragen und der 2-Bit- 25 Wenn die indirekte Adressier-Betriebsweise angegeben ist, Zähler weiter geschaltet wird. Dieser Zähler ist am Beginn des wird der Inhalt von B0 1010 nach T11015 übertragen, falls Befehlszyklus gelöscht worden. Während des Übergangs vom DFF 1025 eingestellt ist, oder der Inhalt von B01010 nach TO
Zustand ALU5 zum Zustand ALU6 wird der Inhalt von 1014 und der Inhalt von Bl 1011 nach T1 1015 übertragen,
ALM 1023 als ALS 1024 übertragen. Im Zustand ALU6 wenn DFF 1025 gelöscht ist. Die CPU geht dann direkt in
(1208) wird der Inhalt der RAM-Speicherstelle, auf die ALS 30 den Zustand AF6 (1307). Wenn die unmittelbare Daten-Be-
hinweist, an das Kurzzeit-Datenregister 1018 gegeben. Der triebsweise angegeben ist, wird der Zustand von PC 1009
nächste Zustand ist ALU 7 (1209), in dem ALS 1024 inkre- nach TO 1014 übertragen, und die CPU geht direkt zum Stand mentiert und sein Inhalt an T1 und B1 gegeben wird, wenn AF6 weiter.
das Merkmal der automatischen Inkrementierung betätigt ist. Im Zustand AF2 wird für den Fall der direkten Adressie-Die durch den augenblicklichen Befehl angegebene ALU- 35 rung der Inhalt von PC 1009 nach ALM übertragen, wobei Operation wird im Fall einer dyadischen Operation für zwei, der Inhalt von PC 1009 die Adresse der ROM-Speicherstelle von TA 1018 und TB 1019 gelieferte Operanden oder im Fall ist, welche das erste Nibble der Operandenadresse enthält, einer monadischen Operation für einen einzigen, von TA Während des Übergangs vom Zustand AF2 zum Zustand 1018 gelieferten Operanden durchgeführt. Der nächste Zu- AF3 (1304) wird der Inhalt von ALM 1023 an ALS 1024 gestand ist ALU8 (1210), bei dem das Ergebnis der ALU-Ope- 40 geben.Im Zustand AF3 wird ALS inkrementiert und sein In-ration (ALU OUT) in derjenigen RAM-Speicherstelle abge- halt an PC 1009 gegeben. Wenn ein weiteres Nibble vom legt wird, auf die ALS 1024 hinweist. Es wird dann der Stand ROM 1002 zur vollständigen Bildung der Adresse erforder-des Zählers mit bO-bl im OER 1020 verglichen. Wenn das lieh ist, so wird die inkrementierte Adresse in ALS 1024 aus-Ausgangssignal des Komparators wahr ist, wird die ALU- serdem in ALM geladen. Der Inhalt der ROM-Speicherstelle Operation beendet. Wenn dagegen das Ausgangssignal des « auf die ALS 1024 hinweist, wird dann zu den unteren 4 Bits Komparators falsch ist, kehrt die CPU zum Zustand ALU 1 von TO (TOL) gegeben, wenn DFF 1025 eingestellt ist, oder zurück, und die ALU-Operation wird wiederholt. an die unteren 4 Bits von TI (T1L), wenn DFF 1025 gelöscht ist. Während des Übergangs vom Zustand AF3 zum Zustand
Automatisches Laden von Pointer-Registern AF4 (1305) wird der Inhalt von ALM an ALS übertragen. Im
Ein weiteres wahlfreies Merkmal der CPU gemäss Fig. 10, so Zustand AF4 wird ALS erneut inkrementiert und sein Inhalt das unter Programmsteuerung und Verwendung vom OER an PC 1009 gegeben. Der Inhalt der ROM-Speicherstelle, auf
1020 gewählt werden kann, ist ein automatisches Laden der die ALS hinweist, wird zu den mittleren 4 Bits von TO (TOM)
Pointer-Register B0 1010 und B1 1011. Dieses Merkmal steht übertragen, wenn DFF 1025 eingestellt ist, oder zu den mittle-
nur für die direkte Adressier-Betriebsweise zur Verfügung, bei ren Bits von TI (TIM), wenn DFF 1025 gelöscht ist. Man be-
der die volle Operandenadresse im Adressencode des Befehls 55 achte, dass die oberen 4 Bits einer Operandenadresse bei der
übertragen wird. Bei Anwendung der automatischen Ladung direkten Adressierung «1111» sind.
wird die durch den augenblicklichen Befehl gelieferte Operan- Wenn das Merkmal der automatischen Ladung nicht für denadresse bei Beendigung des Befehlszyklus automatisch in entweder B0 1010 oder Bl 1011 in Tätigkeit ist, dann geht'die bestimmten Pointer-Registern gespeichert. Das automatische CPU vom Zustand AF4 direkt zum Zustand AF6. Im ande-
Laden von B0 1010 und Bl 1011 wird durch den Zustand der so ren Fall ist der nächste Zustand der Zustand AF5 (1306). Im
Bit-Positionen ALO (1005 in Fig. 11) bzw. ALI (1006 in Fig. Zustand AF5 wird der Inhalt von TO in B0 geladen, wenn
11 ) des OER 1020 gesteuert, wobei der Zustand « 1 » das DFF 1025 eingestellt ist, und die automatische Ladung wird Merkmal des automatischen Ladens in Tätigkeit setzt. für B0 betätigt (d.h., ALO = 1), oder der Inhalt von T1 wird in
Das automatische Laden wird während der Adressenbil- ß 1 geladen, wenn DFF 1025 gelöscht ist, und die automati-
dung in der Datenausführungsphase durchgeführt. Ein Zu- es sche Ladung wird für Bl betätigt (d.h., ALI = 1).
standsdiagramm für die Adressenbildung bei der CPU ge- Im Zustand AF6 wird die vollständige Operandenadresse mäss Fig. 10 ist in Fig. 13 gezeigt. Ein Beispiel für die Adres- in TO an ALM übertragen. Wenn DFF 1025 im Zustand AF6
senbildung wird jetzt mit Bezug auf Fig. 13 erläutert. eingestellt ist, wird die Adressenbildung beendet und die CPU
650 600 10
geht zu der durch den Block 1309 dargestellten ALU-Funk- oder ein peripheres Gerät beziehen. Eine Identifizierung einer tion weiter. Wenn dagegen DFF 1025 gelöscht ist und an- Adresse als Adresse einer RAM-Speicherstelle oder eines peri-zeigt, dass die Adressenbildung für eine dyadische Operation pheren Geräts kann durch Definition getrennter und beunvollständig ist, geht die CPU zunächst zum Zustand AF7 stimmter RAM-bezogener und peripher bezogener Befehle erweiter, wobei DFF 1025 eingestellt wird, und dann zum Zu- 5 reicht werden (beispielsweise Lesen RAM, Lesen peripher, stand AFI, also einer Wiederholung der Adressenbildungs- usw.). Zur Einsparung von Op-Codierungen kann jedoch der schritte für die Bestimmungsadresse. gleiche Befehl sowohl zur Adressierung des RAM 1003 als auch peripherer Geräte benutzt werden. Demgemäss gibt der Automatisches Inkrementieren von Pointer-Registern Befehl an, ob die Adresse sich auf eine RAM-Speicherstelle
Ein weiteres wahlfreies Merkmal der CPU gemäss Fig. 10, 10 oder auf ein peripheres Gerät bezieht, und zwar durch Bezug-das mit Hilfe von OER betätigt oder nicht betätigt werden nähme entweder auf ein Adressenregister, das speziell zur kann, ist das automatische Inkrementieren der Pointer-Regi- Speicherung einer Speicheradresse reserviert ist, oder ein Rester B01010 und Bl 1011. Wenn dieses Merkmal für ein be- gister, das speziell zur Speicherung der Adresse eines periphe-
stimmtes Speicher-Pointer-Register betätigt ist, wird die in ren Gerätes reserviert ist.
diesem Register gespeicherte Adresse am Ende jedes Befehls- 1; Bei bekannten CPU's unter Verwendung des Äufbaus mit zyklus automatisch so weiter geschaltet (inkrementiert), dass reservierten Adressenregistern ist die Anzahl der Speichersie auf die Speicherstelle des ersten Nibble des nächsten Ope- adressenregister und der peripheren Adressenregister durch randen hinweist. Die automatische Inkrementierung von B0 den CPU-Aufbau festgelegt. D.h., der Konstrukteur der CPU und Bl wird durch die OER-Bit-Positionen AIO (1103 in Fig. legt die Anzahl jedes Typs von Adressenregistern abhängig 11) bzw. All (1104 in Fig. 11) gesteuert. Ein Zustand «1» be- zo von den Anwendungen fest, für die die CPU vorgesehen ist. tätigt das Merkmal der automatischen Inkrementierung. Wenn beispielsweise die CPU für eine speicherintensive AnWenn das Merkmal betätigt ist, findet das automatische wendung benutzt werden soll, würde sie eine grössere Zahl Inkrementieren von B0 und B1 während der ALU-Funk- von Speicheradressenregistern und eine geringere Zahl von tionsstufe der Datenausführungsphase entsprechend dem Zu- peripheren Adressenregistern besitzen. Eine feste Zuordnung standsdiagramm in Fig. 12 statt. Gemäss Fig. 12 wird, wie 2s der Adressenregister begrenzt jedoch die Anpassungsfahig-oben in Verbindimg mit dem Merkmal der variablen Operan- keit einer CPU.
denlänge erläutert, wenn die CPU im Zustand ALU3 (1205) Eine optimale Anpassungsfähigkeit lässt sich sowohl für ist, eine in ALS 1024 gespeicherte, auf ein Nibble eines ersten speicherintensive als auch für peripher-intensive Anwendun-Operanden (unter Annahme einer dyadischen Operation) gen dadurch erreichen, dass die Zuordnung der Adressenregi-hinweisende Source-Adresse so inkrementiert, dass sie auf das 30 ster unter Programmsteuerung variabel gemacht wird. Ein nächste Nibble des gleichen Operanden hinweist, wenn die solches wahlfreies Merkmal, das die Möglichkeit gibt, die Zu-ALU-Operation für das nächste Nibble wiederholt werden Ordnung von Adressenregistern wiederholt während der Prosoll. Wenn die ALU-Operation für alle Nibbles des gleichen grammausführung zu ändern, ist besonders zweckmässig für Operanden beendet worden ist, weist ALS auf das erste Nib- Programme, die in bestimmten Teilen speicherintensiv und in ble des neuen ersten Operanden hin. Die inkrementierte 35 anderen Teilen peripher-intensiv sind.
Adresse wird dann an TO und ALM gegeben. Wenn die auto- In Fig. 14 ist das Blockschaltbild eines Teils einer CPU matische Inkrementierung von B0 betätigt worden ist (d.h., 1400 gezeigt, die eine programmierbare Zuordnung mehrerer AIO =1), dann wird die inkrementierte Adresse ausserdem Hardware-Adressenregister entsprechend den Prinzipien der von ALS an B0 gegeben. Im Zustand ALU7 (1209) wird eine Erfindung ermöglicht. Eine Gruppe von acht 12-Bit-Adres-Bestimmungsadresse in ALS, die auf ein Nibble des zweiten 40 senregistern B0 bis B7, die mit den Bezugszeichen 1401 bis Operanden der dyadischen Operation hinweist, inkrementiert 1408 versehen sind, lassen sich jeweils so zuordnen, dass sie und an T11015 übertragen. Wenn die automatische Inkre- entweder die Adresse einer Speicherstelle oder die Adresse ei-mentierung von Bl 1011 betätigt worden ist (d.h., All = 1), nes peripheren Gerätes speichern. Die Funktionen des Datendann wird die inkrementierte Adresse ausserdem von ALS an Bus 1409, des Programmzählers 1410 und des Befehlsregisters Bl gegeben. Es wird Hann die ALU-Operation mit den ent- « 1411 entsprechen im wesentlichen den Funktionen entspre-sprechenden Nibbles des ersten und zweiten Operanden chend der Erläuterungen in Verbindung mit der CPU gemäss durchgeführt, die sich in TA 1018 bzw. TB 1019 befinden. Fig. 4. Das Op-Code-Erweiterungsregister (OER) 1412 spei-Das Ergebnis der ALU-Operation wird in derjenigen Spei- chert ein Op-Code-Erweiterungswort, das die Auswahl wahl-chersteHe abgelegt, die vorher durch das entsprechende Nib- freier CPU-Merkmale angibt, beispielsweise der oben erläu-ble des zweiten Operanden belegt worden ist. Die ALU-Ope- 5(> terten Merkmale einschliesslich der Zuordnung von Adres-ration wird, falls nötig, für weitere Nibbles des ersten und senregistern zur Speicherung von RAM-Adressen und ande-zweiten Operanden wiederholt. Man beachte, dass bei betä- rer Register, zur Speicherung der Adressen von peripheren tigter automatischer Inkrementierung für ein bestimmtes Geräten entsprechend der Angabe durch den Zustand von 3
Pointer-Register dessen Inhalt bei jeder Wiederholung der Bit-Positionen im OER 1412. Die Steueranordnung 1413 de-ALU-Operation inkrementiert wird, so dass am Ende des Be- 55 codiert gleichzeitig den Inhalt sowohl von IR 1411 als auch fehlszyklus das Pointer-Register immer auf das erste Nibble von OER 1412, wobei im Effekt beide aneinander gehängt des nächsten Operanden hinweist. werden, und erzeugt Kommandosignale entsprechend der
Prozessor-Operation, die durch den kombinierten Inhalt von Zuordnung von Adressenregistern IR und OER verlangt wird. Der Adressen-Multiplexer 1418
Ein weiteres wahlfreies Merkmal, das mit Hilfe vom OER so schaltet das durch den Befehl angegebene Adressenregister an 1020 unter Programmsteuerung gebracht werden kann, ist die den 12-Bit-Adressen-Ausgangsbus 1417 an.
Zuordnung von Adressenregistern. Bei bestimmten CPU- Wenn ein Befehl auf ein bestimmtes Adressenregister Be
Konstruktionen teilen der RAM 1003 und periphere Geräte zug nimmt, betätigt die Steueranordnung die jeweilige Adres-(beispielsweise Fernschreiber-Tastenfeld, Kartenleser, Druk- senregister-Auswahlleitung 1415 und die Adressen-Multiple-ker, Magnetbandantrieb usw.), die an die CPU angeschlossen 65 xer-Steuerleitung, wodurch die in diesem Register gespei-sind, nicht nur das gleiche Adressenfeld im Befehl, sondern cherte Adresse auf dem Adressen-Ausgangsbus zur Verfü-ausserdem auch die gleichen Adressen. D.h., eine gegebene gung gestellt wird. Gleichzeitig decodiert die Steueranord-Adresse kann sich entweder auf eine RAM-Speicherstelle nung den Inhalt von OER, um festzustellen, ob das bezogene
Adressenregister eine RAM-Adresse oder die Adresse eines peripheren Gerätes enthält. Wenn es eine RAM-Adresse enthält, wird die RAM-Auswahl-Steuerleitung 1419 betätigt. Im anderen Fall wird die Peripher-Auswahl-Steuerleitung 1420 betätigt. Die Lese/Schreib-Steuerleitung 1421 liefert ein Signal an den RAM, das angibt, ob bei einer Speicheradressierung Daten gelesen oder eingeschrieben werden sollen.
In Fig. 15 ist ein Logikschaltbild eines Teils der Steueranordnung 1500 gezeigt, die das Adressenregister-Zuordnungsfeld AR0-AR2 von OER decodiert. Wenn der Befehl die Bezugnahme auf eines der Adressenregister B0-B7 verlangt, bewirkt der Befehlsdecodierabschnitt 1503, dass die 1/ O-Befehlsbetätigungsleitung 1504 und die Adressenregister-Auswahlleitung 1505 in den Zustand «1» gehen. Bei dem Beispiel nach Fig. 15 sind jeweils zwei der acht Adressenregister B0, B7 durch die 3 Bits (ARO, AR2) im Adressenregister-Zuordnungsfeld von OER zugeordnet. Die Register B0 und Bl sind immer für RAM-Adressen reserviert, während die Register B2 und B3 RAM-Adressen zugeordnet sind, wenn das Bit AR2 (1504) eine «0» ist, und Adressen von peripheren Geräten zugeordnet sind, wenn das Bit AR2 eine «1» ist. Auf entsprechende Weise bestimmt der Zustand des Bit ARI die Zuordnung der Register B4 und B5 und der Zustand des Bit ARO die Zuordnung der Register B6 und B7. Die aus Logikgattern Gl bis G10 (1506-1515) zusammengesetzte Schaltung stellt den Zustand von ARO, AR2 und der Adressenregister-Auswahlleitung 1505 fest, um die richtigen Zustände auf der RAM-Auswahlleitung oder der Peripher-Auswahlleitung abhängig von der Zuordnung der gewählten Adressenregister zu liefern.
In Fig. 16 ist ein Beispiel für eine Eingangs/Ausgangs-(I/0)Schnittstellenanordnung zwischen der CPU 1601 gemäss
11 650 600
Fig. 14 und einem RAM 1602 sowie drei peripheren Geräten gezeigt. Bei diesem Beispiel ist angenommen worden, dass die CPU 1601 nur einen I/0-Zugang besitzt, dass der RAM 1602 seinen eigenen internen Adressendecoder aufweist und dass ; die drei peripheren Geräte 1603,1605 alle Eingangsgeräte sind, die Daten an die CPU 1601 liefern. Wenn die CPU einen Eingangsdatenbefehl ausführt, der sich auf eines der Adressenregister bezieht, so wird die in dem bezogenen Adressenregister gespeicherte Adresse über den Adressen-Ausgang der io CPU 1601 für den Peripher-Adressendecoder (PAD) 1606 und den Adresseneingang des RAM 1602 zur Verfügung gestellt. Nimmt man für dieses Beispiel an, dass die am Adressen« Ausgang gelieferte Adresse sich sowohl auf das zweite periphere Gerät 1604 als auch eine Speicherstelle im RAM 1602 15 bezieht, so detektiert zur Auswahl zwischen beiden die Steueranordnung in der CPU 1601 das Adressenregister-Zuordnungsfeld (AR0-AR2) von OER, um festzustellen, ob das gewählte Adressenregister dem RAM 1602 oder peripheren Geräten zugeordnet worden ist. Der Inhalt von OER 1412 ist 20 während eines vorhergehenden Befehls geladen worden.
Wenn das gewählte Adressenregister peripheren Geräten zugeordnet worden ist, so wird der RAM über den RAM-Auswahlausgang abgeschaltet, während PAD über den Peripher-Auswahlausgang betätigt wird. PAD 1606 aktiviert das 25 zweite periphere Gerät und veranlasst den Peripher-Gerät-Multiplexer 1607, das Gerät 2 an den I/0-Anschluss der CPU 1601 anzuschalten. Wenn dagegen das gewählte Adressenregister dem RAM zugeordnet worden ist, wird PAD 1606 abgeschaltet und der RAM 1602 betätigt. Ein vom Lese/ 30 Schreibausgang geliefertes Lesesignal würde dann bewirken, dass der RAM 1602 den Inhalt der adressierten Speicherstelle über den I/0-Anschluss an die CPU 1601 überträgt.
C
11 Blatt Zeichnungen
Claims (4)
- 650 600PATENTANSPRÜCHE1. Zentralprozessoreinheit einer Datenverarbeitungsanlage zur Ausführung eines Programms gespeicherter Befehle während einer Folge von Befehlszyklen, wobei die Zentralprozessoreinheit an eine Speichereinrichtung (402,403; 1002, 1003; 1410,1412) mit einer Vielzahl von adressierbaren Speicherstellen zur Aufnahme von Befehlen und Daten anschaltbar ist, jeder Befehl einen Operationscodeteil und einen Adressenteil besitzt, die Datenoperanden enthalten, mit einem Befehlsregister (401; 1001; 1411; 1502) zur Speicherung eines im Augenblick auszuführenden Befehls, einer Befehlswiedergewinneinrichtung zur Übertragung des augenblicklichen Befehls von der Speichereinrichtung zu dem Befehlsregister in jedem Befehlszyklus, wobei die Befehlswiedergewinneinrichtung eine Steueranordnung (408; 1005; 1413; 1500) aufweist, die unter Ansprechen auf den Operationscodeteil des augenblicklichen Befehls Steuersignale erzeugt, welche den durch den Operationscodeteil angegebenen Prozessoroperationen entsprechen, und einer Datenwiedergewinnungseinrichtung, die unter Ansprechen auf die speziellen Steuersignale und den Adressenteil des augenblicklichen Befehls durch den Adressenteil angegebene Daten von der Speichereinrichtung zur Zentralprozessoreinheit überträgt, dadurch gekennzeichnet, dass die Daten Operanden und Operationscode-Erweiterungswörter enthalten, dass ein Opera-tionscode-Erweiterungsregister(421; 1020; 1412; 1501) zur Aufnahme und Speicherung eines Operationscode-Erweiterungswortes vorhanden ist, dass die Steueranordnung (408; 1005; 1415; 1500) auf die Kombination des Operationscodeteils des augenblicklichen Befehls und den Inhalt des Operationscode-Erweiterungsregisters (421; 1020; 1412; 1501) anspricht und die Steuersignale erzeugt, und dass die Datenwiedergewinnungseinrichtung (1008, 1006,1007,1026) ein durch den Adressenteil des augenblicklichen Befehls angegebenes Operationscode-Erweiterungswort von der Speichereinrichtung (402,403; 1002,1003) zum Operationscode-Erweiterungsregister überträgt, wenn der augenblickliche Befehl ein Sonderbefehl zur Übertragung eines neu gewählten Operationscode-Erweiterungswortes zum Operationscode-Erweiterungsregister ist.
- 2. Zentralprozessoreinheit nach Anspruch 1, dadurch gekennzeichnet, dass eine Arithmetik-Logikeinheit (411) vorhanden ist, die unter Ansprechen auf Auswahlkommandosignale von der Steueranordnung (408), welche der Kombination aus dem Inhalt des Operationscode-Erweiterungsregisters (421) und dem Operationscodeteil des augenblicklichen Befehls entsprechen, einen oder mehrere Operanden aus der Speichereinrichtung (403) aufnimmt und mit dem Operanden oder den Operanden eine durch die Kombination angegebene arithmetische oder logische Operation ausführt, dass die Arithmetik-Logikeinheit (411) so ausgelegt ist, dass sie an Operanden mit einem oder mehreren N-Bit-Abschnitten an-gepasst ist, und dass die Anzahl der N-Bit-Abschnitte eines Operanden durch das im Operationscode-Erweiterungsregister (421) gespeicherte Operationscode-Erweiterungswort angegeben wird (Fig. 4).
- 3. Zentralprozessoreinheit nach Anspruch 2, dadurch gekennzeichnet, dass die Operanden für die arithmetischen und logischen Operationen je 2 N-Bit-Abschnitte aufweisen, dass die Arithmetik-Logikeinheit einen oberen (410) und einen un-terenTeil (411) zur Verarbeitung des höchstwertigen N-Bit-Äbschnittes bzw. des niedrigstwertigen N-Bit-Abschnittes jedes Operanden aufweist, dass, wenn eine erste, zugeordnete Bit-Position im Operationscode-Erweiterungsregister einen ersten Binärzustand enthält, sowohl der obere als auch der untere Teil zur Verarbeitung beider Abschnitte eines Operanden gleichzeitig betätigt wird, und dass, wenn die erste zugeordnete Bit-Position einen zweiten Binärzustand enthält, der obere Teil (410) abgeschaltet und der untere Teil (411) betätigt wird, um nur den niedrigstwertigen Abschnitt eines Operanden zu verarbeiten und den höchstwertigen Abschnitt unverändert zu lassen (Fig. 4).5 4. Zentralprozessoreinheit nach Anspruch 3, dadurch gekennzeichnet, dass eine Schaltung (420) zum gegenseitigen Austausch des höchstwertigen und niedrigstwerigen N-Bit-Abschnittes jedes Operanden vorgesehen ist.
- 5. Zentralprozessoreinheit nach Anspruch 2, mit io a) wenigstens einem doppelt gerichteten Eingangs/Aus-gangsanschluss (1422), der an eine Vielzahl von peripheren Geräten (1603,1604,1605) mit je einer bestimmten Peripher-Gerät-Adresse und einen Teil der Speichereinrichtung anschaltbar ist, wobei einige Speicherstellen in diesem Teil der 15 Speichereinrichtung Adressen aufweisen, die gleich Peripher-Gerät-Adressen sind,b) einem Adressenausgang (1417), der an einen Adressen-Bus gekoppelt ist und an den Periphergeräten zugeordnete Pe-riphergerät-Adressendecoder (1606) anschaltbar ist, wobei2o die Periphergerät-Adressendecoder unter Ansprechen auf eine am Adressenausgang gelieferte Adresse ein an den Ein-gangs/Ausgangsanschluss (1422) anzuschaltendes Peripherge-rät auswählen, und unter Ansprechen auf die Adresse am Adressenausgang an einen Speicheradressen-Decoder an-25 schaltbar sind, um eine Speicherstelle in dem Teil der Speichereinrichtung auszuwählen, die die Zentralprozessoreinheit über den Eingangs/Ausgangsanschluss (1422) ansprechen soll,c) einem ersten Ausgang, der an den Peripheradressen-De-30 coder (1606) anschaltbar ist, um diesen zu betätigen, wenn der erste Ausgang einen ersten Binärzustand hat und abzuschalten, wenn der erste Ausgang einen zweiten Binärzustand hat;d) einem zweiten Ausgang, der an den Teil des Speicheradressen-Decoders (1602) anschaltbar ist, um diesen zu betä-35 tigen, wenn der zweite Ausgang einen ersten Binärzustand hat, und abzuschalten, wenn der zweite Ausgang einen zweiten Binärzustand hat, und e) einer Vielzahl von Adressenregistern (1401-1408) zur Speicherung von Adressen, wobei wenigstens eines der Adres-40 senregister so zugeordnet werden kann, dass es entweder eine Speicheradresse entsprechend einer Speicherstelle in dem Teil der Speichereinrichtung aufnimmt, oder eine Periphergerät-Adresse, dadurch gekennzeichnet, dass das Operationscode-Erweiterungsregister (1412) die Zuordnung jedes zuord-45 nungsfähigen Adressenregisters angibt, wenn ein von der Zentralprozessoreinheit ausgeführter Befehl die Übertragung des Inhalts eines bestimmten Adressenregisters an den Adressenausgang (1417) verlangt, dass die Steueranordnung (1500) unter Ansprechen auf den Inhalt des Operationscode-Erwei-50terungsregisters (1501) einen ersten Binärzustand am ersten Ausgang und einen zweiten Binärzustand am zweiten Ausgang liefert, wenn das bestimmte Adressenregister für die Speicherung einer Periphergerät-Adresse zugeordnet ist, und dass die Steueranordnung (1500) einen zweiten Binärzustand 55 am ersten Ausgang und einen ersten Binärzustand am zweiten Ausgang liefert, wenn das bestimmte Adressenregister zur Speicherung einer Speicheradresse entsprechend einer Speicherstelle in dem Teil der Speichereinrichtung zugeordnet ist (Fig. 14,15,16).
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/974,426 US4293907A (en) | 1978-12-29 | 1978-12-29 | Data processing apparatus having op-code extension register |
Publications (1)
Publication Number | Publication Date |
---|---|
CH650600A5 true CH650600A5 (de) | 1985-07-31 |
Family
ID=25522024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CH6635/80A CH650600A5 (de) | 1978-12-29 | 1979-12-06 | Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister. |
Country Status (13)
Country | Link |
---|---|
US (1) | US4293907A (de) |
JP (1) | JPS55501075A (de) |
AU (1) | AU542875B2 (de) |
BE (1) | BE880888A (de) |
CA (1) | CA1123959A (de) |
CH (1) | CH650600A5 (de) |
ES (1) | ES487294A1 (de) |
FR (1) | FR2445555B1 (de) |
GB (1) | GB2050659B (de) |
IT (1) | IT1127771B (de) |
NL (1) | NL7920197A (de) |
SE (1) | SE424114B (de) |
WO (1) | WO1980001423A1 (de) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0232797B1 (de) * | 1980-11-24 | 1991-12-11 | Texas Instruments Incorporated | Pseudo-Mikroprogrammsteuerung in einem Mikroprozessor mit komprimiertem Steuerfestwertspeicher und mit Bandordnung von Sammelschienen, ALU und Registern |
US4519028A (en) * | 1981-02-17 | 1985-05-21 | Digital Equipment Corporation | CPU with multi-stage mode register for defining CPU operating environment including charging its communications protocol |
US4577282A (en) * | 1982-02-22 | 1986-03-18 | Texas Instruments Incorporated | Microcomputer system for digital signal processing |
US4519031A (en) * | 1982-02-22 | 1985-05-21 | Texas Instruments Incorporated | Microcomputer with accumulator saturation upon overflow |
US4488219A (en) * | 1982-03-18 | 1984-12-11 | International Business Machines Corporation | Extended control word decoding |
US4586130A (en) * | 1983-10-03 | 1986-04-29 | Digital Equipment Corporation | Central processing unit for a digital computer |
US4893235A (en) * | 1983-10-03 | 1990-01-09 | Digital Equipment Corporation | Central processing unit for a digital computer |
US4812971A (en) * | 1983-10-03 | 1989-03-14 | Digital Equipment Corporation | Central processing unit for a digital computer |
DE3500377A1 (de) * | 1984-01-16 | 1985-07-25 | N.V. Philips' Gloeilampenfabrieken, Eindhoven | Verfahren zur bearbeitung maschinencodierter befehlswoerter und datenprozessor durch durchfuehrung des verfahrens |
FR2569285B1 (fr) * | 1984-08-14 | 1989-02-03 | Trt Telecom Radio Electr | Processeur pour effectuer suivant differents modes le traitement de donnees et dispositif de multiplication convenant pour un tel processeur |
EP0173383B1 (de) * | 1984-08-14 | 1990-04-18 | Telecommunications Radioelectriques Et Telephoniques T.R.T. | Prozessor zur Verarbeitung von Daten verschiedener Darstellungsarten und geeignetes Multipliziergerät für einen solchen Prozessor |
JP2565495B2 (ja) * | 1986-08-27 | 1996-12-18 | 株式会社日立製作所 | デ−タ処理システム |
US5218712A (en) * | 1987-07-01 | 1993-06-08 | Digital Equipment Corporation | Providing a data processor with a user-mode accessible mode of operations in which the processor performs processing operations without interruption |
JP2845433B2 (ja) * | 1987-09-07 | 1999-01-13 | 日本電気株式会社 | 集積回路装置 |
NL8800071A (nl) * | 1988-01-13 | 1989-08-01 | Philips Nv | Dataprocessorsysteem en videoprocessorsysteem, voorzien van een dergelijk dataprocessorsysteem. |
JPH01297764A (ja) * | 1988-05-25 | 1989-11-30 | Nec Corp | プロセッサ |
US5280620A (en) * | 1988-12-16 | 1994-01-18 | U.S. Philips Corporation | Coupling network for a data processor, including a series connection of a cross-bar switch and an array of silos |
US5249273A (en) * | 1989-01-17 | 1993-09-28 | Fujitsu Limited | Microprocessor having a variable length instruction format |
DE68928980T2 (de) * | 1989-11-17 | 1999-08-19 | Texas Instruments Inc. | Multiprozessor mit Koordinatenschalter zwischen Prozessoren und Speichern |
US5446865A (en) * | 1990-03-13 | 1995-08-29 | At&T Corp. | Processor adapted for sharing memory with more than one type of processor |
DE69327504T2 (de) * | 1992-10-19 | 2000-08-10 | Koninklijke Philips Electronics N.V., Eindhoven | Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen |
US5848289A (en) * | 1992-11-27 | 1998-12-08 | Motorola, Inc. | Extensible central processing unit |
JPH07281890A (ja) * | 1994-04-06 | 1995-10-27 | Mitsubishi Electric Corp | 命令セット及びそのマイクロコンピュータによる実行方法 |
US5890222A (en) * | 1995-01-04 | 1999-03-30 | International Business Machines Corporation | Method and system for addressing registers in a data processing unit in an indirect addressing mode |
FR2731095B1 (fr) * | 1995-02-23 | 1997-04-30 | Dufal Frederic | Procede et dispositif de commande simultanee des etats de controle des unites d'execution d'un processeur programmable a architecture du type pipeline, notamment un processeur de traitement d'images |
FR2731094B1 (fr) * | 1995-02-23 | 1997-04-30 | Dufal Frederic | Procede et dispositif de commande simultanee des etats de controle des unites d'execution d'un processeur programmable |
US6298002B1 (en) * | 1999-12-14 | 2001-10-02 | Intel Corporation | Memory structures having selectively disabled portions for power conservation |
EP1261912A2 (de) * | 2000-03-08 | 2002-12-04 | Sun Microsystems, Inc. | Datenverarbeitungsarchitektur mit subwortvermischen und opcodeänderung |
US7028170B2 (en) | 2000-03-08 | 2006-04-11 | Sun Microsystems, Inc. | Processing architecture having a compare capability |
DE60115609T2 (de) | 2000-03-08 | 2006-08-17 | Sun Microsystems, Inc., Palo Alto | Datenverarbeitungsarchitektur mit bereichsprüfung für matrix |
US7124160B2 (en) | 2000-03-08 | 2006-10-17 | Sun Microsystems, Inc. | Processing architecture having parallel arithmetic capability |
FR2867874A1 (fr) * | 2004-03-22 | 2005-09-23 | St Microelectronics Sa | Dispositif et procede de gestion d'un jeu d'instructions d'un microprocesseur |
JP5217431B2 (ja) | 2007-12-28 | 2013-06-19 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
GB2589334B (en) | 2019-11-26 | 2022-01-05 | Advanced Risc Mach Ltd | Register-provided-opcode instruction |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BE629725A (de) * | 1962-03-29 | |||
US3292151A (en) * | 1962-06-04 | 1966-12-13 | Ibm | Memory expansion |
US3331056A (en) * | 1964-07-15 | 1967-07-11 | Honeywell Inc | Variable width addressing arrangement |
US3593312A (en) * | 1969-11-14 | 1971-07-13 | Burroughs Corp | Data processor having operand tags to identify as single or double precision |
US3764988A (en) * | 1971-03-01 | 1973-10-09 | Hitachi Ltd | Instruction processing device using advanced control system |
US3781823A (en) * | 1972-07-28 | 1973-12-25 | Bell Telephone Labor Inc | Computer control unit capable of dynamically reinterpreting instructions |
JPS5171648A (de) * | 1974-12-18 | 1976-06-21 | Panafacom Ltd | |
JPS5245232A (en) * | 1975-10-08 | 1977-04-09 | Hitachi Ltd | Micro program modification circuit |
US4021655A (en) * | 1976-03-30 | 1977-05-03 | International Business Machines Corporation | Oversized data detection hardware for data processors which store data at variable length destinations |
US4117536A (en) * | 1976-12-27 | 1978-09-26 | International Business Machines Corporation | Instruction processing control apparatus |
US4161784A (en) * | 1978-01-05 | 1979-07-17 | Honeywell Information Systems, Inc. | Microprogrammable floating point arithmetic unit capable of performing arithmetic operations on long and short operands |
-
1978
- 1978-12-29 US US05/974,426 patent/US4293907A/en not_active Expired - Lifetime
-
1979
- 1979-12-06 JP JP50030579A patent/JPS55501075A/ja active Pending
- 1979-12-06 WO PCT/US1979/001045 patent/WO1980001423A1/en unknown
- 1979-12-06 GB GB8027349A patent/GB2050659B/en not_active Expired
- 1979-12-06 NL NL7920197A patent/NL7920197A/nl unknown
- 1979-12-06 CH CH6635/80A patent/CH650600A5/de not_active IP Right Cessation
- 1979-12-17 CA CA342,084A patent/CA1123959A/en not_active Expired
- 1979-12-20 AU AU54064/79A patent/AU542875B2/en not_active Ceased
- 1979-12-24 FR FR7931593A patent/FR2445555B1/fr not_active Expired
- 1979-12-27 BE BE0/198767A patent/BE880888A/fr not_active IP Right Cessation
- 1979-12-27 ES ES487294A patent/ES487294A1/es not_active Expired
- 1979-12-28 IT IT28442/79A patent/IT1127771B/it active
-
1980
- 1980-08-27 SE SE8005989A patent/SE424114B/sv not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
ES487294A1 (es) | 1980-08-01 |
US4293907A (en) | 1981-10-06 |
JPS55501075A (de) | 1980-12-04 |
NL7920197A (nl) | 1980-11-28 |
FR2445555A1 (fr) | 1980-07-25 |
FR2445555B1 (fr) | 1986-07-18 |
IT1127771B (it) | 1986-05-21 |
CA1123959A (en) | 1982-05-18 |
SE8005989L (sv) | 1980-08-27 |
SE424114B (sv) | 1982-06-28 |
AU5406479A (en) | 1980-07-10 |
IT7928442A0 (it) | 1979-12-28 |
WO1980001423A1 (en) | 1980-07-10 |
GB2050659B (en) | 1983-05-18 |
GB2050659A (en) | 1981-01-07 |
BE880888A (fr) | 1980-04-16 |
AU542875B2 (en) | 1985-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CH650600A5 (de) | Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister. | |
DE2515696C2 (de) | Datenverarbeitungssystem | |
DE2540975C2 (de) | Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse | |
DE2230102C2 (de) | Mikroprogrammierter Prozessor mit bitparalleler Datenübertragung | |
DE2714805C2 (de) | ||
DE69803860T2 (de) | Direktspeicherzugriffseinheit | |
DE2318069C2 (de) | Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix | |
DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE2410491C2 (de) | ||
CH623947A5 (de) | ||
DE1774296B2 (de) | Restruktuierbare Steuereinheit für elektronische Digitalrechner | |
DE1928202B2 (de) | Einrichtung zur Erstellung statistischer Daten über den Operationsablauf programmgesteuerter Datenverarbeitungsanlagen | |
DE2543522C2 (de) | Mikroprogrammierbare Datenverarbeitungseinrichtung | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
DE2054835A1 (de) | Prozessor fur ein Informationsver arbeitungssystem und ein Betriebsver fahren fur diesen Prozessor | |
DE1929010B2 (de) | Modular aufgebaute datenverarbeitungsanlage | |
DE2718110A1 (de) | Datenverarbeitungseinheit | |
DE1285219B (de) | Steuerwerk zur Ausfuehrung von Unterprogrammen | |
DE2556617C2 (de) | Schiebe- und Rotierschaltung | |
DE2054947A1 (de) | Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem | |
DE2533737A1 (de) | Datenprozessor | |
DE69804562T2 (de) | Prozessarchitektur und Verfahren zur Durchführung von verschiedenen Adressierungsarten | |
DE2935101C2 (de) | ||
DE2900586C2 (de) | Anordnung zum Decodieren von Codewörtern variabler Länge | |
DE2403039C2 (de) | Einrichtung zur Befehlsausführung in einer adressenerweiterten elektronischen Datenverarbeitungsanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PL | Patent ceased |