-
Hintergrund der Erfindung
-
1. Feld der Erfindung
-
Diese
Erfindung bezieht sich auf einen Datenverarbeitungsapparat, der
als eine Zentralverarbeitungseinheit (CPU), ein Mikroprozessor oder Ähnliches
bezeichnet wird.
-
2. Beschreibung des Stands
der Technik
-
Einige
konventionelle Datenverarbeitungsapparate werden konstruiert, so
dass als Operand der Operationen durch Operationsinstruktionen ausschließlich Speicher
verwendet wird. In solchen Apparaten werden vorbestimmte Operationen
auf der Basis einer Instruktion ausgeführt, welche aus einem den Operationstyp
angebenden Operationscode und zwei Operanden-Adressen bestehen,
die die Position der Daten im Speicher angeben, z.B. eine Quell-Operand-Adresse
und eine Ziel-Operand-Adresse.
-
Einige
konventionelle Datenverarbeitungsapparate sehen ein Register, das
Akkumulator genannt wird, und auch andere Register vor, wobei der Akkumulator
implizit als ein Operand verwendet wird. In solchen Apparaten werden
Operationen auf der Basis einer Instruktion ausgeführt, die
aus einem einzigen Register-Bezeichnungscode besteht, der das Register
anzeigt, das neben dem Akkumulator verwendet wird.
-
Andere
konventionelle Datenverarbeitungsapparate sehen Allzweckregister
vor, von denen jedes kombiniert werden kann, um Operand zu sein, und
Operationen werden ausgeführt
auf der Basis einer Instruktion, die aus einem den Operationstyp
anzeigenden Operationscode und zwei Register-Bezeichnungscodes besteht,
welche die zu verwendenden Register anzeigen.
-
In Übereinstimmung
mit den zuerst genannten Apparaten, welche Speicher exklusiv als
Operanden verwenden, ist das Instruktionswort jedoch ziemlich lang,
weil es ein Operandfeld mit Bitlänge
verlangt, um die zwei Operanden-Adressen unterzubringen. Als Ergebnis
tendieren Programme, die unter Verwendung solcher Apparate geschrieben
werden, dazu, groß zu
sein.
-
In Übereinstimmung
mit den als Zweites angeführten
Apparaten, die mit einem Akkumulator ausgestattet sind, kann das
Instruktionswort kurz sein, weil die Instruktion nur ein Registerfeld
benötigt, welches
einen einzigen Register-Bezeichnungscode unterbringt, dessen Bitlänge kürzer ist
als die der Operand-Adresse. Operationen werden jedoch größtenteils
dem Akkumulator zugeteilt, so dass häufige Bewegungen der Daten
zwischen dem Akkumulator und entweder den anderen Registern oder
dem Speicher notwendig sind. Solch eine Zunahme in der Anzahl der
in Programmen geschriebenen Instruktionen kann die Prozessgeschwindigkeit
der Programme verringern wie auch die Programmgröße vergrößern.
-
In Übereinstimmung
mit den zuletzt genannten Apparaten, die mit Allzweckregistern ausgestattet sind,
kann die Anzahl der in Programmen geschriebenen Instruktionen deutlich
verringert werden, weil jede Kombination der Register Operanden
sein kann. Das Instruktionswort kann vergleichsweise kurz sein, weil
die Bitlänge
des zu verwendenden Register-Bezeichnungscodes
kürzer
als die einer Operand-Adresse ist.
-
Nichtsdestotrotz
ist es schwierig, einen solchen Apparat derart zu konstruieren,
dass die Programmgrößen sowohl
durch verschiedene Arten von ausgeführten Operationen minimiert
werden können als
auch dadurch, dass sie in kurzen Instruktionswortlängen ausgeführt werden
können,
wegen des folgenden Problems:
Wenn ein Datenverarbeitungsapparat
z.B. mit 8 Allzweckregistern ausgestattet ist, wird die Bitlänge des Register-Bezeichnungscodes
zur Bezeichnung eines Registers 3 Bits lang gemacht; die Instruktion
benötigt
insgesamt ein 6-Bit-Registerfeld. Daher ist eine 8-Bit-Instruktionswortlänge nicht
praktisch, weil brauchbare Instruktionen in diesem Fall höchstens
4 Typen sind, während
16-Bit-Instruktionswortlänge
eigentlich gefordert ist, um eine ausreichende Anzahl an Instruktionstypen
zu bekommen.
-
Zusammenfassung
der Erfindung
-
Im
Hinblick auf das oben genannte Problem ist es das Ziel dieser Erfindung,
einen Datenverarbeitungsapparat vorzusehen, der die Programmgrößen durch
verschiedene Typen von Operationen minimieren kann, die in kurzer
Instruktionswortlänge
ausgeführt
werden.
-
Das
oben genannte Ziel kann erreicht werden durch einen Datenverarbeitungsapparat
mit registerbasierter Architektur, der angeordnet ist, um eine 8-Bit-Instruktion
zu verarbeiten, wobei die 8-Bit-Instruktion umfasst:
ein erstes
Feld zum Bezeichnen einer von einer Vielzahl von Operationen, einschließlich einer Übertragungsoperation
und einer Berechnungsoperation;
ein zweites Feld (Dn) zum Bezeichnen
eines Registers, das zu einer ersten Registergruppe (D0–D3) gehört, welche
einen ersten Operand bestimmt; und
ein drittes Feld (Dm, Am)
zum Bezeichnen eines Registers aus der ersten Registergruppe (D0–D3) oder aus
einer zweiten Registergruppe (A0–A3), die einen zweiten Operand
bezeichnet, wobei die Position der drei Felder in der 8-Bit-Instruktion
im Verhältnis
zu einer Vielzahl von Instruktionen unveränderlich ist, und der Apparat
umfasst:
eine Instruktionsausführungseinrichtung (16)
zum Ausführen
einer Operation, wobei die Instruktionsausführungseinrichtung die erste
Registergruppe (D0–D3)
und die zweite Registergruppe (A0–A3) umfasst, die erste Registergruppe
eine Datenspeicherfunktion hat und die zweite Registergruppe eine Adressenspeicherfunktion
hat, und wobei jedes Register nur zu einer der Registergruppen gehört; und
eine
Auswahleinrichtung zum Auswählen
einer der ersten Registergruppe (A0–A3) oder der zweiten Registergruppe
(A0–A3),
wobei die Auswahl der Registergruppe und der Operationstyp durch
den Wert des ersten Feldes bestimmt werden.
-
Das
oben genannte Ziel kann auch erreicht werden durch einen Datenverarbeitungsapparat,
der eine Decodiervorrichtung zum Decodieren eines Instruktionscodes,
welcher einen Ope rationscode und zwei Register-Bezeichnungscodes
umfasst, und eine Instruktionsausführungsvorrichtung umfasst zum Ausführen des
angemessenen Prozesses in Übereinstimmung
mit den durch die Decodiervorrichtung decodierten Ergebnissen, wobei
die Instruktionsausführungsvorrichtung
einen ersten Prozess ausführt, wenn
die zwei Register-Bezeichnungscodes voneinander unterschiedlich
sind, und einen zweiten Prozess ausführt, wenn sie gleich sind.
-
Die
Instruktionsausführungsvorrichtung
kann eine Prüfvorrichtung
zum Prüfen,
ob die zwei Register-Bezeichnungscodes voneinander unterschiedlich oder
gleich sind, und eine Steuerungsvorrichtung zum Steuern des ersten
und des zweiten Prozesses umfassen, so dass sie selektiv in Übereinstimmung mit
den von der Prüfvorrichtung überprüften Ergebnissen
sein können.
-
Wenn
der erste Prozess einem Register-Daten-Bewegungsprozess zugeteilt
wäre, in
dem ein Quellregister und ein Zielregister identisch sind, wäre der Wert
des Registers derselbe wie der Wert vor der Ausführung, jedoch wird dieser Prozesstyp
kaum benötigt.
Daher können
in solch einem Fall zwei verschiedene Prozesse einem einzigen Operationscode zugeteilt
werden, indem zugelassen wird, dass der Instruktionscode den zweiten
Prozess ausführt.
-
Ein
anderes Beispiel für
den ersten Prozess ist, dass dann, wenn er einer Operation wie einer Summierungsoperation
von im Register gespeicherten Daten zugeteilt wäre, die Ergebnisse dieselben wären wie
die Ergebnisse, die in einer anderen Ausführung wie einer arithmetische
Linksverschiebung erhalten werden. Ein solcher Prozess wird auch kaum
benötigt,
so dass ein einziger Operationscode zwei verschiedenen Prozessen
zugeteilt werden kann wie beim oben genannten Beispiel.
-
Daher
können
verschiedene Typen von Operationen in Übereinstimmung mit den oben
angeführten
Konstruktionen in einer kurzen Instruktionswortlänge ausgeführt werden und die Programmgrößen können minimiert
werden.
-
Kurze Beschreibung
der Zeichnungen
-
Diese
und andere Ziele, Vorteile und Merkmale der Erfindung werden offenkundig
aus der folgenden Beschreibung, wenn sie in Verbindung mit den begleitenden
Zeichnungen gelesen wird, welche eine spezifische Ausführungsform
der Erfindung veranschaulichen. In den Zeichnungen:
-
1 ist
ein Blockdiagramm, das die Konstruktion des Hauptteils eines Datenverarbeitungsapparats
dieser Erfindung zeigt.
-
2 ist
eine Veranschaulichung, die die detaillierte Konstruktion eines
Registerfelds zeigt.
-
3 ist
eine Veranschaulichung, die die detaillierte Konstruktion eines
Statusregisters zeigt.
-
4 zeigt
Bespiele für
Konstruktionen der Instruktionscodes.
-
5 ist
eine Tabelle, die Beispiele zeigt, wie verschiedene Operationen
verschiedenen Instruktionscodes zuteilt werden.
-
Beschreibung
der bevorzugten Ausführungsform
-
Die
Ausführungsform
dieser Erfindung wird im Folgenden mit Verweis auf 1 bis 5 beschrieben.
-
1 umfasst
die Komponenten 11–17.
Der Instruktionspuffer speichert vorübergehend von einem nicht dargestellten
Speicher geholte Instruktionen. Das Instruktionsregister 12 hält vom Instruktionspuffer 11 ausgegebene
Instruktionen, bis sie decodiert oder ausgeführt sind. Die Registerbezeichnungscode-Identifizierungsabfrageeinheit 13 überprüft, wenn
zwei Register-Bezeichnungscodes in eine Instruktion eingeschlossen
sind, ob diese gleich sind oder nicht. Der Instruktionsdecodierer 14 decodiert
im Instruktionsregister 12 gehaltene In struktionen und
gibt ein Steuersignal aus, um die Operation jeder Einheit des Datenverarbeitungsapparats
zu steuern. Wenn der in einer Instruktion eingeschlossene Operationscode
ein vorbestimmter Operationscode ist, führt der Instruktionsdecodierer 14 verschiedene
Steuerungen (unten beschrieben) abhängig von den durch die Einheit 13 untersuchten
Ergebnissen durch: sie sind gleich oder voneinander unterschiedlich.
Die detaillierte Beschreibung der Konstruktion des Schaltkreises
zur Durchführung
einer solchen Steuerung wird ausgelassen, weil der Schaltkreis ein
Mikroprogramm-Schaltkreis oder ein Schaltkreis in Hardware-Logik
sein kann, wie wohlbekannte Prozessoren es sein können.
-
Wie
in 2 gezeigt, hat das Registerfeld 15 eine
Datenregistergruppe, die Datenregister D0–D3 mit jeweils 16-Bit-Länge, eine
aus Adressenregistern A0–A3
bestehende Adressenregistergruppe, einen Programmzähler PC
mit der Speicheradresse der Instruktion in der Ausführung und
ein Statusregister PSW (processor status word, Prozessor-Zustandswort)
umfasst, das den Zustand des Datenverarbeitungsapparats anzeigt.
-
Die
Datenregister D0–D3
werden hauptsächlich
zum Speichern von Daten als Arbeitsspeicher verwendet. Auf der anderen
Seite werden die Adressenregister A0, A1 und A2 zum Speichern von
Adressen verwendet, die einen Quellenoperanden, einen Zieloperanden
oder einen Rahmenzeiger anzeigen, wobei A3 zum Speichern einer Adresse
verwendet wird, die einen Stapelzeiger anzeigt. Obwohl die Adressenregister
A0–A2
normalerweise in der oben angeführten
Reihenfolge zugeteilt werden, wenn ein Programm gemacht wird, ist
ihre Hardware so konstruiert, dass die Zuteilung der Adressenregister A0–A2 flexibel
sein kann und die Zuteilung des Adressenregisters A3 auf die Verwendung
für einen Stapelzeiger
festgelegt sein kann.
-
Alle
Datenregister D0–D3
und alle Adressenregister A0–A3
werden durch die Register-Bezeichnungscodes
von 00–11
(binäre
Ziffern) in den Instruktionscodes bezeichnet.
-
Wie
in 3 gezeigt, besteht das Statusregister PSW aus
einem Spurmerker T, der eine Einzelschritt-Ausführung eines Programms während des Betriebs
in Entstörungsmode
bezeichnet, aus Unterbrechungsmaskenmerkern IM3–IM0, die Unterbrechungsmasken
mit 16 Ebenen bezeichnen, aus einem Überlaufmerker V, einem Übertragmerker
C, einem Negativmerker N und einem Nullmerker Z, die alle die Ergebnisse
der Operationen anzeigen.
-
Die
Ausführungseinheit 16 gibt
in Übereinstimmung
mit einem Steuersignal vom Instruktionsdecodierer 14 vom
Registerfeld 15 ausgegebene Daten und Adressen, vom Instruktionspuffer 11 ausgegebene
unmittelbare Daten, vom nicht dargestellten Speicher über den
internen Datenbus 17 geholte Daten ein und führt vorbestimmte
Operationen wie arithmetische Operationen und logische Operationen
und Datenbewegungen aus. Die durch die Ausführung der Ausführungseinheit 16 erhaltenen
Ergebnisse werden über
den Bus 17 zum Registerfeld 15 und zum Speicher
bewegt und von spezifischen Registern gehalten, die mit den Instruktionen
oder mit anderen Einheiten korrespondieren.
-
Der
Datenverarbeitungsapparat dieser Ausführungsform ist weiterhin ausgestattet
mit einer Datenbusschnittstelle, die mit dem Datenbus des nicht dargestellten
externen Bereichs des Datenverarbeitungsapparats verbunden ist,
mit einer mit einem Adressenbus verbundenen Adressenbusschnittstelle und
mit anderen Einheiten. Diese Einheiten werden hier nicht beschrieben,
weil sie nicht direkt von dieser Erfindung betroffen sind.
-
Mit
Verweis auf 4 und 5 folgt
eine Beschreibung der Konstruktion des dem Datenverarbeitungsapparat
zugeteilten Instruktionscodes und ein Beispiel für die Zuteilung von Operationen
zu Operationscodes. Das hier beschriebene Instruktionssystem ist
ein Lese/Speicher-Instruktionssystem, das die Konstruktion des Apparats
vereinfachen kann und einfach die Verarbeitungsgeschwindigkeit vergrößern kann,
d. h., ein Instruktionssystem, das fähig ist, hauptsächlich Daten
zwischen jedem Register und dem Speicher zu bewegen.
-
4 zeigt
Beispiele der Konstruktionen der Instruktionscodes.
-
Der
Code (a) besteht aus einem 4-Bit-Operationscode, zwei 2-Bit-Register-Bezeichnungscodes, Dn
und Dm, oder Dn und Am (sowohl n als auch m sind ganzzahlig von
0–3).
-
Der
Code (b) umfasst zusätzlich
zu demselben Operationscode und den Register-Bezeichnungscodes wie
Code (a) entweder 8-Bit-Unmittelbar-Daten (imm8), einen 8-Bit-Versatz
einer Adresse (d8) oder eine 8-Bit-Absolut-Adresse (abs8).
-
Der
Code (c) besteht aus einem 6-Bit-Operationscode und einem 2-Bit-Register-Bezeichnungscode
(Dn).
-
Der
Code (d) besteht aus einem 8-Bit-Operationscode und einem angefügten Abschnitt
von entweder 8, 16 oder 24 Bits sowie eine Ausweitungsinstruktion,
unmittelbare Daten oder einen Adressenversatz.
-
In 5,
die ein Beispiel einer Zuteilung von Instruktionscodes zeigt, zeigen
die Symbole "***" und "**" an, dass jede der
in der Operationen-Spalte gezeigten Operationen in Übereinstimmung
mit dem 3-Bit-Wert beziehungsweise 2-Bit-Wert ausgeführt wird.
-
Es
folgt eine Beschreibung von jedem Instruktionscode in Übereinstimmung
mit jedem Instruktionstyp.
-
Ein
Instruktionstyp [R-R] ist eine dyadische Operationsinstruktion zwischen
zwei Datenregistern und wird durch einen Instruktionscode "0***DnDm" (n ≠ m) ausgedrückt. Dieser
Instruktionscode zeigt 8 verschiedene Typen von Operationscodes
wie folgt an, abhängig
von den 3-Bit-Werten, "***".
- (1)
Bewegen von Daten von einem durch den Datenregister-Bezeichnungscode
Dn an gezeigten Datenregister (im Nachfolgenden als Datenregister
Dn bezeichnet) zum Datenre gister Dm.
- (2) Addieren von Daten in den oben genannten Datenregistern
ohne Übertrag.
- (3) Subtrahieren derselben ohne negativen Übertrag.
- (4) Vergleichen derselben.
- (5) Addieren derselben mit Übertrag.
- (6) Subtrahieren derselben mit negativen Übertrag.
- (7) Logisches Erzeugen derselben.
- (8) Logisches Addieren derselben.
-
Die
Ergebnisse jeder Ausführung
werden im Datenregister Dm gespeichert.
-
Ein
Instruktionstyp [imm8-R] kann vom Instruktionstyp [R-R] unterschieden
werden, weil seine zwei Register-Bezeichnungscodes gleich sind (n
= m). Die Daten des Datenregisters Dn und 8-Bit-Unmittelbar-Daten
(imm8), die einem Instruktionscode "0***DnDm" folgen, werden durch dieselbe dyadische
Operation verarbeitet wie der Instruktionstyp [R-R]. Selbst wenn
8-Bit-Unmittelbar-Daten für
Operationen verwendet werden, sind ihre höherwertigen 8 Bits in Übereinstimmung
mit dem Typ der Operation mit Nullauffüllung (z.B. in logischen Operationen),
mit Vorzeichenbit-Füllung
(z.B. in arithmetischen Operationen) oder Ähnlichem ausgestattet.
-
Die
Instruktionstypen [LD] und [ST] sind jeweils eine Datenbewegungsinstruktion
(Laden) vom Speicher zum Datenregister Dn und eine umgekehrte Datenbewegungsinstruktion
(Speichern). Quelle und Ziel im Speicher werden durch 4 Typen an
Adressierungsmodi angezeigt.
-
Das
Symbol "@" in der Operationen-Spalte in 5 wird
vor den Wert gesetzt, der die Adresse des Bereichs ist, zu/von welchem
Daten bewegt werden, und das Symbol "(,)" zeigt
die Summe der Werte auf beiden Seiten des Kommas an.
-
Der
Adressierungsmodus jeder Bewegungsinstruktion zeigt das Folgende
an.
- (1) Wenn die Quelle oder das Ziel der Daten "@Am" ist, repräsentiert
es indirekte Adressierung durch das Adressenregister, was einen
im Adressenregister Am gespeicherten Wert als Adresse hat.
- (2) Wenn die Quelle oder das Ziel der Daten "@ (Am, d8)" ist, repräsentiert es indirekte Adressierung
durch das Adressenregisters mit 8-Bit-Versatz, was einen 8-Bit-Versatz
d8 verwendet und den Instruktionscodes "1001DnAm" oder "1101DnAm" folgt, und was eine Summe von d8 und
einen im Adressenregister Am gespeicherten Wert als Adresse hat.
- (3) Wenn die Quelle oder das Ziel der Daten "@ (Am, D0)" ist, repräsentiert es Index-Adressierung, welche
das Adressenregister Am (m ≠ 3) und
das Datenregister D0 (fixiert) verwendet und welches die Summe eines
im Adressenregisters Am gespeicherten Wertes und eines im Datenregister
D0 gespeicherten Wertes als Adresse hat.
- (4) Wenn die Adresse oder der Adressat der Daten "@abs8" ist, repräsentiert
es 8-Bit-Absolut-Adressierung,
welche eine 8-Bit-Absolut-Adresse abs8 hat, die dem Instruktionscode als
Adresse folgt.
-
In
der Index-Adressierung von (3) oben werden die Adressenregister
A0–A2
ausschließlich
verwendet, wobei das Adressenregister A3 ausgenommen wird. Dies
passiert, weil dieser Adressierungstyp normalerweise Daten wie Ketten
oder Felder bewegt, welche selten zum Stapelbereich des Speichers
bewegt werden.
-
In
der 8-Bit-Absolut-Adressierung von (4) oben wird der Register-Bezeichnungscode
m = 3, der das in der Index-Adressierung ausgenommene Adressenregister
A3 repräsentiert,
als Dummy verwendet und ein Instruktionscode wird ihm zugeteilt, bei
dem das Datenregister D0 der Quelle oder des Ziels definitiv verwendet
wird. Wenn eine Datenbewegung in 8-Bit-Absolut-Adressierung durchgeführt wird,
kann ein vorbestimmter Wert wie "00000000" vom Datenverarbeitungsapparat
ausgegeben werden als die höherwertigen
8 Bits einer 16-Bit-Adresse.
-
Ein
Instruktionstyp [R] ist eine monadische Operationsinstruktion, die
ein einziges Datenregister verwendet und durch den Instruktionscode "1011**Dn" oder "1111**Dn" angezeigt wird.
Dieser Code zeigt 8 verschiedene Typen von Operationsinstruktionen
an: arithmetische Rechtsverschiebung (ASR) und arithmetische Linksverschiebung
(ASL), Rotation nach rechts (ROR) und nach links (ROL), logische
Umkehrung (NOT), Inkrementierung/Dekrementierung (INC/DEC), oder
Programmunterbrechung (PI), abhängig
von den 2-Bit-Werten, "**".
-
Es
gibt zwei Gruppen von drei Instruktionscodes, deren höherwertigen
4 Bits "1010" beziehungsweise "1110" sind, welche keiner
Operation im oben angeführten
Beispiel zugeteilt sind. Diese Instruktionscodes werden verwendet,
um ihre Adressen zu den Adressenregistern A0–A3 zu bewegen, um weitere,
nicht dargestellte Instruktionen zuzuteilen, um Instruktionscodes
auf mehr als 16 Bits zu erweitern und für andere Zwecke. Daher können Instruktionen
mit niedriger Nutzungshäufigkeit
und mit geringer Auswirkung auf die Programmgrößen als Erweiterungsinstruktionscodes
eingestellt werden. Die detaillierte Beschreibung einer solchen
Erweiterung wird ausgelassen, weil sie nicht direkt von dieser Erfindung
betroffen ist.
-
Wenn
ein Instruktionscode, dessen höchstwertiges
Bit Null ist wie "01110001", an den wie oben konstruierten
Datenverarbeitungsapparat eingegeben wird, vergleicht die Registerbezeichnungscode-Identifizierungsabfrageeinheit 13 die
niedrigstwertigen und zweit-niedrigstwertigen Bits "01" mit den dritt-niedrigstwertigen
und viert-niedrigstwertigen Bits "00" und
gibt dann ein Signal an den Instruktionsdecodierer 14 aus,
das anzeigt, dass n von Dn und m von Dm nicht identisch sind.
-
Die
Einheit 14 gibt dann ein Steuersignal an die Datenregister
D0 und D1 aus und läßt sie in
ihnen enthaltene Daten über
den internen Datenbus 17 an die Ausführungseinheit 16 ausgeben.
-
Die
Einheit 14 gibt auch ein Steuersignal an die Ausführungseinheit 16 aus,
durch welches eine logische Additionsoperation auf Basis des zweit-niedrigstwertigen,
des dritt-niedrigstwertigen und des viert-niedrigstwertigen Bits
des Instruktionscodes, "111", durchgeführt wird.
Als Reaktion darauf führt
die Ausführungseinheit 16 eine
logische Additionsoperation der von den Datenregistern D0 und D1 ausgegebenen
Daten durch. Die Ergebnisse werden über den internen Datenbus 17 im
Datenregister D1 gespeichert.
-
Wenn
andererseits ein Code "01110000" und darauffolgende
8-Bit-Unmittelbar-Daten in den Datenverarbeitungsapparat eingegeben
werden, bestätigt
die Registerbezeichnungscode-Identifizierungsabfrageeinheit 13,
dass n und m gleich sind.
-
Dann
werden im Datenregister D0 enthaltene Daten und im Instruktionspuffer 11 angesammelte 8-Bit-Unmittelbar-Daten über den
internen Datenbus 17 an die Ausführungseinheit 16 eingegeben
und eine logische Additionsoperation wird ausgeführt und die Ergebnisse werden
im Datenregister D0 gespeichert.
-
Mit
anderen Worten: wenn in Übereinstimmung
mit konventionellen Datenverarbeitungsapparaten zwei identische
Register-Bezeichnungscodes verwendet werden, um dieselbe Operation
wie mit nicht-identischen Register-Bezeichnungscodes auszuführen, dann
wird der Wert z.B. von dem Datenregister D0 sich nicht ändern.
-
Im
Gegensatz dazu können
in Übereinstimmung
mit dem Datenverarbeitungsapparat dieser Erfindung 16 Typen
von Instruktionen in dem in 5 durch
das Symbol "***" angezeigten 3-Bit-Feld
zugeteilt werden, indem in einem solchen Fall die Durchführung einer
unterschiedlichen Operation zugelassen wird. Folglich können verschiedene
Typen an Operationen durchgeführt
werden, wenn die Grundinstruktions-Wortlänge 8 Bits ist. Einige
Instruktionen können
jedoch entworfen sein, um dieselben Operationen wie mit nicht-identischen
Register-Bezeichnungscodes auszuführen, z.B. durch das Verwenden der
Ausführung
von Subtrahieren in den identischen Register-Bezeichnungscodes als
eine klare Instruktion des Registers.
-
Im
oben angeführten
Fall kann ein Register in einem 2-Bit-Feld bestimmt werden, indem
8 Register im Registerfeld 15 in zwei Gruppen mit unterschiedlichen
Funktionen geteilt werden: die Datenregister D0–D3 und die Adressenregister
A0–A3.
-
Selbst
wenn daher der 8-Bit-Instruktionscode so gemacht ist, dass er zwei
Register-Bezeichnungscodes, ein Quellregister und ein Zielregister, enthält, kann
der Typ der Operation durch die übrigen 4
Bits bestimmt werden; folglich können
verschiedene Typen an Operationen in viel kürzerer Grundinstruktions-Wortlänge ausgeführt werden.
Im Ergebnis können
regelmäßig verwendete
8 Grundoperationen, wie Operationen zwischen Datenregistern, Operationen
zwischen Datenregistern und unmittelbaren Daten, Bewegungen zwischen
den Datenregistern und dem Speicher, und einem Datenregister zugeteilten
Ein-Operand-Operationen
durch eine Instruktion mit einer kurzen Wortlänge ausgeführt werden.
-
In Übereinstimmung
mit den Registern und Operationsinstruktionen der oben angeführten Konstruktion,
kann die Umgebung der Minimalerfordernisse vorgesehen werden, um
Verarbeitung durch eine Hochniveausprache wie die C-Sprache effektiv auszuführen, die
Programmgrößen können minimiert werden
und die Geschwindigkeit des Prozesses kann erhöht werden.
-
Obwohl
die unmittelbaren Daten und die absolute Adresse in den Instruktionscodes 8 Bits
lang sind und zu 16-Bit-Länge
in Übereinstimmung
mit der Instruktion in der oben angeführten Ausführungsform erweitert werden,
können
16-Bit-Unmittelbar-Daten entworfen werden, um bei Bedarf verwendet
zu werden.
-
Obwohl
der Instruktionscode in eine Instruktion decodiert wird, die einen
angefügten
Abschnitt als unmittelbare Daten einschließt, wenn die zwei Register-Bezeichnungscodes
in der oben angeführten
Ausführungsform
identisch sind, kann er entworfen werden, dass er in eine Instruktion
decodiert wird, die einen angefügten
Abschnitt als eine unmittelbare Adresse oder eine Instruktion, die
keinen angefügten Abschnitt
einschließt,
miteinschließt.
-
Darüber hinaus
ist diese Erfindung auch bei Konstruktionen von Registern und Instruktionscodes, bei
Typen von Operationen und Bitzuteilungen von Operationscodes anwendbar,
die alle von denen in der oben angeführten Ausführungsform verschieden sind,
um sich an den unterschiedlichen Gebrauch der Datenverarbeitungsapparate
anzupassen.
-
Außerdem kann
der Instruktionsdecodierer 14 so konstruiert werden, dass
er die zwei Register-Bezeichnungscodes als unterschiedliche Instruktionen
decodiert abhängig
davon, ob sie identisch sind oder nicht, anstelle vom Bereitstellen
der Registerbezeichnungscode-Identifizierungsabfrageeinheit 13.
-
Obwohl
die vorliegende Erfindung ausführlich
mit Beispielen unter Verweis auf die begleitenden Zeichnungen beschrieben
worden ist, wird bemerkt, dass unterschiedliche Veränderungen
und Modifikationen den mit dem Stand der Technik vertrauten Personen
offensichtlich sein werden.