DE3886781T2 - Befehlsdekoder. - Google Patents

Befehlsdekoder.

Info

Publication number
DE3886781T2
DE3886781T2 DE3886781T DE3886781T DE3886781T2 DE 3886781 T2 DE3886781 T2 DE 3886781T2 DE 3886781 T DE3886781 T DE 3886781T DE 3886781 T DE3886781 T DE 3886781T DE 3886781 T2 DE3886781 T2 DE 3886781T2
Authority
DE
Germany
Prior art keywords
instruction
register
data
signal
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE3886781T
Other languages
English (en)
Other versions
DE3886781D1 (de
Inventor
Hiroshi Oki Electric Yokouchi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Publication of DE3886781D1 publication Critical patent/DE3886781D1/de
Application granted granted Critical
Publication of DE3886781T2 publication Critical patent/DE3886781T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields

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 vorliegende Erfindung betrifft einen Befehlsdecoder für einen Prozessor, zum wiederholten Ausführen eines Befehls an einer variablen Anzahl von Operandenbytes, insbesondere einen Befehlsdecoder für einen Prozessor, bei dem ein Befehl das erste Byte als einen Operationscode repräsentierend und das zweite und nachfolgende Bytes als Operandenadressen repräsentierend enthält.
  • In einer herkömmlichen zentralen Verarbeitungseinheit (nachstehend mit "CPU" abgekürzt) wird ein Befehl, dessen erstes Byte einen Operationscode repräsentiert und dessen zweite und nachfolgende Bytes Operandenadressen repräsentieren, in einen Befehlsdecoder eingelesen und von diesem sequentiell decodiert, um eine Programmoperation auszuführen. Intel's CPU 8051 verwendet beispielsweise einen Befehl "ADDC A, data address", in dem "ADDC" (Addition mit Übertrag) ein Operationscode, "A" eine Operandenadresse und "data address" eine andere Operandenadresse sind. In diesem Befehl ist "A" eine feste Operandenadresse, die exklusiv einen Akkumulator spezifiziert, während "data address" variabel ist und interne Direktzugriffsspeicher (RAMs) oder eine Vielzahl von Sonderregistern spezifiziert.
  • Da eine der Operandenadressen, beispielsweise die Operandenadresse "A" fest ist, wird in so einer herkömmlichen CPU eine Vielzahl von Befehlen in Kombination erzeugt, um in Übereinstimmung mit einer Vielzahl von Bytes zu arbeiten. Dementsprechend ist ein langes Programm mit vielen Schritten erforderlich, was zu einer langen Verarbeitungszeit führt.
  • Außerdem belegen die vielen Befehle für die Byteverarbeitung viele Adressen im Nur-Lese-Speicher, wodurch die Byte-Ausnutzung verschlechtert wird.
  • Aus der DE-A-1 449 540 ist es bekannt, einen Befehlsdecoder herzustellen, der aufeinanderfolgende Arithmetikoperationen für einzelne Befehlsworte durchzuführen in der Lage ist, mit einem Befehlsregister zum Lesen von Befehlen, einer Datenauslesezugriffs-Steuerstufe, die einen Befehl aus dem Befehlsregister liest, um den allgemeinen Betrieb des Prozessors zu steuern, und die auf den Empfang eines Sukzessivausführungsbefehls hin, der die Wiederholung des gleichen Befehls für an verschiedenen Operandenadressen gespeicherte Operanden spezifiziert, ein Sukzessivausführungsmodus-Signal erzeugt; einer Endprüfstufe, die auf einen Einstellwert eingestellt ist, der die Anzahl von Sukzessivbefehlsausführungszyklen anzeigt, wenn das Sukzessivausführungsmodus-Signal erzeugt wird, und die die Anzahl von Ausführungszyklen zählt und bei Übereinstimmung der Anzahl der Ausführungszyklen mit dem Einstellwert ein Zählendesignal erzeugt, wobei die Endprüfstufe auf die Beendigung jedes Ausführungszyklus des Befehls antwortet, verschiedene Adressen für Daten zu erzeugen, die jeweils für aufeinanderfolgende Ausführungszyklen verarbeitet werden sollen, und mit einer Adressenmodifikations-Steuerstufe, die sequentiell die Ausgaben der Endprüfstufen-Einrichtung empfängt und Daten an verschiedenen Operandenadressen adressiert. Die Endprüfstufe sperrt weiterhin das Befehlsregister, während eines Zeitintervalls von der Erzeugung des Sukzessivausführungsmodus-Signals bis zur Erzeugung des Zählendesignals einen neuen Befehl zu lesen.
  • Es ist eine Aufgabe der vorliegenden Erfindung, einen verbesserten Befehlsdecoder zu schaffen, der zu einer effizienteren Datenverarbeitung führt, wobei mehrere Bytes verwendet werden, um die jeweilige sequentielle Adresse zu erzeugen.
  • Die vorliegende Erfindung ist durch eine Steuereinrichtung gekennzeichnet, die betreibbar ist, die Werte, die in ersten und zweiten Adressenregistern festgehalten sind, sequentiell an eine Operandenzugriffssteuereinheit anzulegen, und die den Wert aus einem der Adressenregister zeitweise festhält, während der Wert aus dem anderen an die Operandenzugriffssteuereinheit angelegt wird.
  • Die obigen und weiteren Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung ergeben sich noch deutlicher aus der nachfolgenden Beschreibung in Verbindung mit den beiliegenden Zeichnungen, in denen
  • Fig. 1 ein Blockdiagramm einer CPU ist, in der ein Befehlsdecoder gemäß der vorliegenden Erfindung eingebaut ist;
  • Fig. 2 ein Blockdiagramm einer in der CPU der Fig. 1 enthaltenen Befehlsdecodierung und -steuerung ist;
  • Fig. 3 eine Darstellung der Datenanordnung eines internen Datenspeichers (RAM) und eines Sonderregisters, die in der CPU der Fig. 1 enthalten sind, ist; und
  • Fig. 4 ein Zeitdiagramm ist, das den Betrieb der CPU der Fig. 1 erläutert.
  • Mit Bezug auf Fig. 1, die einen Mikroprozessor (CPU) zeigt, in dem ein Befehlsdecoder gemäß der vorliegenden Erfindung eingebaut ist, der eine verbesserte PLA aufweist, erzeugt eine Timing-Schnittstellen-Signalerzeugungseinheit 1 Basistimingsignale zum Steuern verschiedener Timingoperationen des Mikroprozessors und Schnittstellensignale zum Steuern der Datenkommunikation zwischen dem Mikroprozessor und den Peripheriegeräten. Ein Invertieroszillator 2 erzeugt Taktsignale für die Einheit 1. Ein Programmzähler 3 spezifiziert einen Programmbefehl und Direktdaten. Ein interner Programmdatenspeicher (ROM) 4 speichert Programmbefehle und Direktdaten. Temporärregister 20 und 21 speichern Daten während der Ausführung eines Befehls vorübergehend. Ein Decoder 22, der zum Ausführen von Befehlen erforderlich ist, erzeugt auf der Basis von Programmdaten Konstanten. Eine Arithmetik- und Logikeinheit (im folgenden mit "ALU" abgekürzt) 23 verarbeitet Additions(ADD)-, Inklusiv-OR(OR)-, Exkluxiv-OR(EOR)und/oder logische Multiplikations(ADD)-Operationen der Inhalte in den Temporärregistern 20 und 21. Ein Register 24 speichert Merker, die von der ALU 23 verarbeitet werden. Ein interner Datenspeicher (RAM) 31 speichert verarbeitete Daten. Ein Register 30 speichert die spezifizierten Adressendaten des internen Datenspeichers 31. Ein Arbeitsregister 32 speichert Daten während der Ausführung eines Befehls zeitweise. Eine Sonderregistergruppe 40 hat viele Funktionen und enthält indirekte Register, Datenspeicher (RAMs) Ein/Ausgabe-Ports, Zeitgeberzähler, Zeitgeberzähler-Steuerregister, Unterbrechungssteuerregister und Unterbrechungsmerker. Ein-/Ausgabe-Ports 50 und 51 dienen zum Aussenden verarbeiteter Daten, Empfangen von Daten von externer Ausrüstung und Aussenden der Ausgabe des Programmzählers zum Spezifizieren externer Programmdaten und Empfangen externer Programmdaten in einem externen ROM-Modus. Ein-/Ausgabe-Ports 52 bis 55 dienen zum Aussenden verarbeiteter Daten und Empfangen externer Daten. In der CPU verarbeitete Daten werden über interne Busse übertragen.
  • Fig. 2 zeigt eine Befehlsdecodier- und -steuereinheit 70, die Steuersignale zum Steuern des allgemeinen Betriebs der CPU erzeugt. Die Steuersignale umfassen Signale zum Steuern des internen Datenspeichers (RAM) und der Sonderregister 40 (@ARO, I/O, SMOD).
  • Eine Sukzessivbefehlsausführungszyklus-Überwachungseinheit 100 zählt und steuert die Anzahl von Befehlsausführungszyklen in einem Sukzessivausführungsmodus. Ein Register 101 speichert Sukzessivausführungshäufigkeits-Einstelldaten, die an einem Datenbus 700 anliegen, wenn ein Gitter 102 ein Ausgangssignal 103 erzeugt. Ein Gatter 106 gibt die Sukzessivausführungshäufigkeits-Einstelldaten, die im Register 101 gespeichert sind, zum Datenbus 700, wenn ein Gatter 104 ein Ausgangssignal 105 erzeugt. Ein Flipflop 109 empfängt ein Signal 108 von einem Gatter 107 an der hinteren Flanke eines Taktsignals, um ein Schreibsignal B einem Register/Zähler 110 zuzuführen. Auf den Empfang des Schreibsignals B hin speichert der Register/Zähler 110 die Sukzessivausführungsanzahl-Einstelldaten im Register 101. Der Register/Zähler 110 zählt die Anzahl von Sukzessivausführungszyklen herunter, wenn ein Gatter 112 ein Signal C erzeugt. Ein Gatter 111 zum Nachweis der Beendigung der Sukzessivausführung erzeugt ein Zählendesignal A, wenn der Inhalt des Zählers 110 00H wird. Das Zählendesignal A wird als Auswahlsignal an Gatter 107, 112, 113, 203 und 310 angelegt. Ein Flipflop 116 empfängt, wenn ein Signal MEND S6 daran angelegt wird, ein Signal 114 von einem Gatter 113 und gibt dann ein Schreibsteuersignal D an Register 401 und 404.
  • Eine Befehlsdecodiereinheit 200 decodiert einen Befehlscode und erzeugt Signale, um den allgemeinen Betrieb der CPU zu steuern. Ein Befehlsregister 201 speichert Programmbefehlsdaten. Wenn ein Gatter 202 ein Ausgangssignal 203 erzeugt, liest das Befehlsregister 201 Befehlsdaten ein, die am Datenbus 700 anliegen, und speichert sie. Eine erste PLA 205 decodiert den Inhalt des Befehlsregisters 201 und erzeugt ein Steuersignal zum Steuern des allgemeinen Betriebs der CPU durch eine AND-Operation unter Verwendung eines Timingsignals 204.
  • Eine Registereinheit 300 speichert Daten zum Spezifizieren von Operandenadressen, nämlich des internen Datenspeichers (RAM) und des Sonderregisters (@ARO, I/O, SMOD). Die Registereinheit 300 spezifiziert den internen Datenspeicher und das Sonderregister mittels Befehlssymbolen. Ein Register 301 speichert an den Datenbus 700 angelegte Daten zum Spezifizieren des internen Datenspeichers (RAM) und des Sonderregisters (@ARO, I/O, SMOD) wenn ein Gatter 302 ein Signal 303 erzeugt. Ein Gatter 307 legt die Daten zum Spezifizieren des internen Datenspeichers (RAM) und der Sonderregister (@ARO, I/O, SMOD) die im Register 301 gespeichert sind, an den Datenbus 700 an, wenn ein Gatter 304 ein Ausgangssignal 305 erzeugt. Ein Register/Zähler 306 speichert die Daten zum Spezifizieren des internen Datenspeichers (RAM) und des Sonderregisters (@ARO, I/O, SMOD), die im Register 301 gespeichert sind, wenn ein Befehlssymbolmodus ausgewählt wird und ein Gatter 310 ein Ausgangssignal 311 erzeugt. Der Register/Zähler 306 führt jedesmal, wenn ein Signal C erzeugt wird, seine Inkrementiertätigkeit aus. Die Daten im Register/Zähler 306 spezifizieren den internen Datenspeicher (RAM) und das Sonderregister. Die Daten zum Spezifizieren des internen Datenspeichers (RAM) und des Sonderregisters (@ARO, I/O, SMOD) im Register/Zähler 306 werden über ein Gatter 309 an den Datenbus 700 angelegt, wenn das Gatter 307 ein Signal 308 erzeugt.
  • Eine Speichereinheit 400 speichert Daten zum Spezifizieren des internen Datenspeichers (RAM) und des Sonderregisters (@ARO, I/O, SMOD). Die Speichereinheit 400 speichert Daten in den zweiten und dritten Bytes, die einem Befehlscode folgen. Ein Register/Zähler 401 speichert Daten zum Spezifizieren des internen Datenspeichers (RAM) und des Sonderregisters (@ARO, I/O, SMOD) im zweiten Byte, das einem Befehlscode folgt und am Datenbus 700 anliegt, wenn ein Gatter 402 ein Signal 403 erzeugt. Der Register/Zähler 401 dient außerdem als Vorwärtszähler, der jedesmal, wenn das Signal C erzeugt wird, um Eins vorwärtszählt.
  • Ein Register/Zähler 404 spezifiziert den internen Datenspeicher (RAM) und das Sonderregister (@ARO, I/O, SMOD). Der Register/Zähler 404 speichert Daten auf dem Datenbus 700, d. h. die Daten im dritten Byte, das einem Befehlscode folgt, wenn ein Gatter 405 ein Signal 406 erzeugt. Der Register/- Zähler 404 dient außerdem als Vorwärtszähler, der jedesmal, wenn das Signal C erzeugt wird, um Eins vorwärtszählt.
  • Beim Wiederholen eines Befehls (einer Operation zwischen Daten in beliebigen Bereichen), der durch Befehlssymbole repräsentiert wird, die in der Lage sind, zwei Operandenadressen zu adressieren, wie etwa "ADDC data address 1 und data address 2", wird der Register/Zähler 404 für die Datenadresse 2 eingestellt, und er zählt jedesmal, wenn der Befehl ausgeführt wird, um eins vorwärts.
  • Eine Speichereinheit 500 speichert Daten zum Spezifizieren des internen Datenspeichers (RAM) und des Sonderregisters (@ARO, I/O, SMOD), die in den Register/Zählern 401 und 404 gespeichert sind, und ausgewählte Daten. Ein Signal WIR3 veranlaßt ein Gitter 502, die in den Register/Zählern 401 und 404 gespeicherten Daten auszuwählen. Wenn ein Gatter 503 ein Signal 504 erzeugt, speichert ein Register 501 Daten, die von einem Gatter 502 unter den Daten zum Spezifizieren des internen Datenspeichers (RAM) und des Sonderregisters (@ARO, I/O, SMOD), die in den Register/Zählern 401 und 404 gespeichert sind, ausgewählt werden.
  • Eine Decodiereinheit 600 erzeugt Signale (R/W) zum Steuern des internen Datenspeichers (RAM) und des Sonderregisters (@ARO, I/O, SMOD). Eine Auswählschaltung 601 wählt den Inhalt des Register/Zählers 306 oder die Daten zum Spezifizieren des internen Datenspeichers (RAM) und des Sonderregisters (@ARO, 1/0, SMOD) in Übereinstimmung mit einem Auswahlsignal 604 aus und überträgt die ausgewählten Daten zu einer zweiten PLA 602.
  • Die zweite PLA 602 decodiert Daten, die von dem Register 501 und dem Register/Zähler 306 übertragen werden, und erzeugt Steuersignale zum Betreiben des internen Datenspeichers (RAM) und des Sonderregisters (@ARO, I/O, SMOD). Die zweite PLA 602 decodiert Daten, die in dem Register 501 und dem Register/Zähler 306 gespeichert sind, nämlich Daten, die von der Auswählschaltung 601 unter denen zum Spezifizieren des internen Datenspeichers (RAM) und des Sonderregisters (@ARO, I/O, SMOD) ausgewählt wurden, bildet das logische Produkt (AND) der decodierten Daten und ein Timingsignal 603 und erzeugt Steuersignale zum Steuern des internen Datenspeichers (RAM) und des Sonderregisters (@ARO, I/O, SMOD).
  • Der Aufbau des internen Datenspeichers (RAM) bzw. des Sonderregisters 40 (@ARO, I/O, SMOD) wird nachstehend mit Bezug auf Fig. 3 beschrieben.
  • Der interne Datenspeicher (RAM) 31 der CPU ist in Bänke unterteilt. Jede Bank weist acht Register R0 bis R7 auf, die jeweils durch Datenadressen 00H bis 07H spezifiziert werden. Das RAMDPL-Register 30 (Fig. 1) spezifiziert die Bänke des internen Datenspeichers (RAM). Die Bereiche des Sonderregisters (@ARO, I/O, SMOD) 40 sind Datenadressen 08H bis FFH zugeordnet. Die den Datenadressen 08H bis 0FH zugeordneten Bereiche, nämlich Bereiche @ARO bis @AR7, unter den Bereichen des Sonderregisters 40 sind indirekte Datenadressen spezifizierende Register. Wenn die Bereiche 08H bis 0FH spezifiziert sind, spezifiziert der Inhalt der Bereiche @ARO bis @AR7 den internen Datenspeicher und das Sonderregister 40. Bereiche 10H bis 3FH sind Datenspeicher (RAMs) innerhalb des Sonderregisters. Bereiche 40H bis FFH sind Sonderfunktionsregister wie Ein-/Ausgabe-Ports und Zeitgeberzähler, welche Datenadressen zugeordnet sind.
  • Die Betriebsweise des solchermaßen aufgebauten Befehlsdecoders wird mit Bezug auf Fig. 4 beschrieben.
  • In Fig. 4 ist ein Signal OSC1 ein Taktsignal, das von dem internen Oszillator der CPU erzeugt wird, und ein Signal CLOCK ist ein Synchronisiertakt zum Steuern des Timings des Schreibens von Daten in das interne Datenregister und das Sonderregister der CPU. BUS7 bis BUS0 sind an den Datenbus 700 angelegte Signale. Ein Signal 203 (WIR1) entspricht dem Signal 203 (Fig. 2). Eine Anzeige 201 (REGISTER) zeigt den Modus des Befehlsregisters 201 (Fig. 2) an. Eine Anzeige 101 (REGISTER) zeigt den Modus des Registers 101 (Fig. 2) zum Einstellen der Anzahl von Ausführungszyklen eines Befehls an. Eine Anzeige 110 (COUNTER) zeigt den Modus des Zählers 110 zum Zählen der Anzahl von Ausführungszyklen an. Signale A, B, C und D entsprechen den Signalen A, B, C und D in Fig. 2. Eine Anzeige 301 (REGISTER) zeigt den Modus des Registers 301 (Fig. 2) an. Eine Anzeige 306 (COUNTER) zeigt den Modus des Register/Zählers 306 (Fig. 2) an. Ein Signal 403 (WIR2) entspricht dem Signal 403 in Fig. 2. Eine Anzeige 401 (COUNTER) zeigt den Modus des Register/Zählers 401 (Fig. 2) an. Ein Signal 406 (WIR3) entspricht dem Signal 406 in Fig. 2. Eine Anzeige 404 (COUNTER) zeigt den Modus des Register/- Zählers 404 (Fig. 2) an. Signale WIR2 und WIR3 entsprechen den Signalen WIR2 und WIR3 in Fig. 2. Eine Anzeige 501 (REGISTER) zeigt den Modus des Registers 501 (Fig. 2) an. Ein Signal 604 (SEL DAR) entspricht dem Signal 604 in Fig. 2. Eine Anzeige 6010UT zeigt den Ausgabemodus der Auswählschaltung 601 an. Signale ENABLE SFR und ENABLE RAM sind Lesesignale, die von der PLA2 (Fig. 2) erzeugt werden, um das Lesen von Daten von dem internen Datenspeicher und dem Sonderregister anzufordern. Signale WRITE SFR und WRITE RAM sind Schreibsignale, die von der PLA 602 (Fig. 2) erzeugt werden, um das Schreiben von Daten in den internen Datenspeicher und das Sonderregister anzufordern. Ein Signal WTPR1 ist ein Signal, das Schreiben von Daten in das TPR1-Register 20 (Fig. 1) anzufordern. Eine Anzeige TPR1 zeigt den Modus des Temporärregisters 20 an. Ein Signal WTPR2 dient zum Anfordern des Schreibens von Daten in das Temporärregister 21 (Fig. 1). Eine Anzeige TPR2 zeigt den Modus des Temporärregisters 21 an. Eine Anzeige ALU MODE zeigt den Betriebsmodus der ALU 23 (Fig. 1) an. Ein Signal ENABLE ALU ist das Ausgangssignal der ALU 23 (Fig. 1). Ein Signal WPSW ist ein Signal, das Schreiben von Daten in das Register 24 (Merkerzustandsregister) (Fig. 1) anzufordern. Ein Signal CARRY zeigt einen Übertrag an, der erzeugt wird, wenn das achte Bit der ALU 23 mittels eines im Temporärregisters 24 gespeicherten Hauptübertragmerkers spezifiziert wird. Ein Signal AC ist ein im Temporärregister 24 gespeicherter Hilfsmerker, der einen Übertrag im vierten Bit der ALU 23 spezifiziert. Ein Signal ALU CARRY IN zeigt eine Übertragseingabe in die ALU 23 (Fig. 1) an. Ein Signal SELECT ist ein Steuersignal, eine Sukzessivausführung anzufordern, die von der PLA 205 (Fig. 2) erzeugt wird, wenn dem Befehlsregister 201 (Fig. 2) ein Befehl "ADDC A, data address" gegeben wird. Eine Anzeige OP MODE zeigt die Ausführung eines Sukzessivausführungsbefehls an.
  • Das Zeitdiagramm der Fig. 4 zeigt beispielhaft den Modus einer Operation, die durch ein Befehlssymbol "ADDC A, data address" spezifiziert wird, zum dreimaligen Wiederholen eines Befehls "ADDC A, data address". Vor der Ausführung des Befehls "ADDC A, data address" wird das Sukzessivausführungshäufigkeits-Einstellregister 101 (Fig. 2) auf "03H" eingestellt, um den Befehl dreimal zu wiederholen. Das Register 301 (Fig. 2), das durch ein Befehlssymbol A spezifiziert wird, wird auf 00H eingestellt, um eine Adresse "00H" im internen Datenspeicher (RAM) zu spezifizieren. Die Datenadressen fangen bei einer Adresse "30H" an. Die Tabelle 1 zeigt Datensymbole A und den Zustand von Daten, die Datenadressen zugeordnet sind. Tabelle 1 DATEN data address
  • Wenn ein EROM-Signal im ersten Zeitintervall M1-S1 erzeugt wird, wobei ein Befehlscode "35H" an der Adresse "ADDC A, data address" vom Programmdatenspeicher (ROM) 4 (Fig. 1) gelesen wird, werden die Busse 7 bis 0 "00110101". Wenn das Signal WIR1 203 erzeugt wird, wird "35H" im Befehlsregister 201 gespeichert. Gleichzeitig wird der Inhalt des Registers 301 zum Zähler 306 übertragen, wodurch der Zähler 306 "00H" wird. Da das Signal SEL DAR 604, das von der Auswählschaltung 601 erzeugt wird, in M1-S1 bis zur Mitte von M1-S3 "1" bleibt, wird der Inhalt des Zählers 306 zu der PLA 602 gegeben. In M1-S3 werden die Daten "50H" an der Adresse 00H in der PLA 602, die durch den Inhalt des Zählers 306 spezifiziert wird, gelesen, und der Zustand der Busse 7 bis 0 wird "0101000". In diesem Augenblick erzeugt die PLA 205 das Signal WTPR2, die Daten "50H" in der TPR2 zu speichern. Wenn das Gatter 107 das Signal 108 im ersten M1-S3 erzeugt, erzeugt das Flipflop 109 das Signal B, das an der hinteren Flanke von M1-S3 abgerufen worden ist. Anschließend ruft das Register 110 Sukzessivausführungshäufigkeits-Einstelldaten 03H aus dem Register 101 ab. Nachdem die Daten 03H im Register 110 aufgezeichnet worden sind, wird das Ausgangssignal A des Gatters 110 "0", um den Betrieb der Gatter 107, 113, 202 und 310 zu sperren. In M1-S4 wird das EROM-Signal erzeugt, um die Daten "30H" des zweiten Bytes des Befehlscodes aus dem ROM 4 zu lesen, und der Zustand der Busse 7 bis 0 wird dann "00110000". In diesem Augenblick erzeugt die PLA 205 das Signal WIR2, die Daten "30H" in dem Register/Zähler 401 und dem Register 501 zu speichern. Da das an die Auswählschaltung 601 angelegte Signal 604 (SEL DAR) während eines Zeitintervalls M1-S4 bis zur Mitte von M2-S3 "0" bleibt, wird der Inhalt des Registers 501 an die PLA 602 angelegt. Im M1-S5 erzeugt die PLA 602 ein Lesesignal, die Daten "22H" der Adresse "30H" zu lesen, und der Zustand der Busse 7 bis 0 wird "00100010". In diesem Augenblick erzeugt die PLA 205 das Signal WTPR1, die Daten "22H" im Temporärregister 20 (TPR1) zu speichern. Da sich die ALU 23 im ADD- Befehlsausführungsmodus befindet, erzeugt die PLA 205 das ADD-Signal, den Inhalt der Temporärregister 20 und 21 zu addieren. Da das an die Auswählschaltung 601 angelegte Signal 604 (SEL DAR) während M2-S4 bis zur Mitte des nächsten M1-S3 "1" bleibt, wird der Inhalt des Register/Zählers 306 an die PLA 602 gegeben. In M2-S5 erzeugt die PLA 205 das Signal ENABLE ALU, und anschließend liefert die ALU 23 das Ergebnis der Addition, nämlich der Addition der Inhalte der Temporärregister 20 und 21 und eines Übertrags (22H + 50H + 0 = 72H), und der Zustand der Busse wird "01110010". In diesem Augenblick erzeugt die PLA 602 das Schreibsignal WRITE RAM, Daten "72H" an eine vom Register/Zähler 306 spezifizierte Adresse "00H" zu schreiben. Die PLA 205 erzeugt dann ein Schreibsignal WPSW, den Hauptübertrag und den Zweitübertrag in das Register 24 zu schreiben. Da der Hauptübertrag und der Zweitübertrag nicht nach dem ersten Zyklus der ADD- Operation erzeugt werden, ist das Ergebnis des ersten Zyklus der ADD-Operation "0". In M2-S5 werden, wenn das Gatter 112 das Signal C, nämlich einen Zähltakt, erzeugt, die Inhalte der Register/Zähler 110, 306 und 401 an der hinteren Flanke von M2-S5 erneuert, um den Inhalt des Register/Zählers 110 von "03H" nach "02H", den des Register/Zählers 306 von "00H" nach "01H" und den des Register/Zählers 401 von "30H" nach "31H" zu ändern. In M2-S6 ist, da das an das Gatter 113 angelegte Signal A "0" ist, das Ausgangssignal D des Flipflops 116 "0". Infolgedessen wird der Betrieb der Gatter 402 und 405 unterbrochen.
  • Nachdem M2-S6 beendet worden ist, wird der zweite Ausführungszyklus des Befehls begonnen. Im zweiten M1-S1 wird, da das an das Gatter 202 angelegte Signal A, das ein Schreibsignal erzeugt, das eine Schreiboperation im Befehlsregister 201 spezifiziert, "0" ist, das Schreibsignal 203, das eine Schreiboperation im Befehlsregister 201 spezifiziert, nicht erzeugt, und deshalb bleibt der im Befehlsregister 201 gespeicherte Befehlscode "35H" für das erste M1-S1 im Befehlsregister 201. Dementsprechend wird der im ersten Ausführungszyklus gespeicherte Befehl ausgeführt. In M1-S3 erzeugt die FLA 602 das Signal ENABLE RAM, das das Lesen von Daten von der Adresse "01H" im Register/Zähler 306 spezifiziert, und dadurch wird der Inhalt OAAH der Adresse "01H" auf dem Bus bereitgestellt, und die Busse 7 bis 0 werden "10101010". In diesem Augenblick erzeugt die PLA 205 das Signal WTPR2, und das Temporärregister 21 speichert "0AAH". Obwohl die PLA 205 das Signal WIR2 in M1-S4 erzeugt, wird das Signal 403, das das Schreiben von Daten in den Register/Zähler 401 spezifiziert, nicht erzeugt, da das an das Gatter 402 angelegte Signal D "0" ist. Dementsprechend wird der Inhalt des Register/Zählers 401 nicht geändert. Das Signal WIR2 wird verwendet, um das Schreiben von Daten in das Register 501 zu spezifizieren. Da das an die Auswählschaltung 502 vor dem Register 501 angelegte Signal WIR3 "0" ist, speichert das Register 501 den Inhalt "31H" des Register/Zählers 401.
  • In M1-S5 erzeugt die PLA 602 das Signal ENABLE SFR, Daten von der durch den Inhalt des Registers 501 spezifizierten Adresse "31H" zu lesen, und dadurch wird der Inhalt "OBCH" der Adresse "31H" auf dem Bus bereitgestellt und werden die Busse 7 bis 0 "10111100". In diesem Augenblick erzeugt die PLA 205 das Signal WTPR1, die Daten "OBCH" im Temporärregister 20 zu speichern. Da sich die ALU im ADD-Befehlsausführungsmodus befindet, erzeugt die PLA 205 ein ADD-Signal. In M2-S5 erzeugt die PLA 205 das Signal ENABLE ALU, und dadurch wird das Ergebnis der Addition der Daten der Temporärregister 20 und 21 und des Hauptübertrags, nämlich (BC + AA + 0 = 66), auf dem Bus bereitstellt, und die Busse 7 bis 0 werden "01100110". In diesem Augenblick erzeugt die PLA 602 das Schreibsignal WRITE RAM, das das Schreiben von Daten "66H" an einer Adresse "01H" spezifiziert, die durch das Register 306 spezifiziert wird. Außerdem erzeugt die PLA 205 das Schreibsignal WPSW, den Hauptübertrag und den Zweitübertrag in das Register 24 zu schreiben. Der Hauptübertrag und der Zweitübertrag, die nach dem zweiten Zyklus des Additionsbefehls erzeugt werden, sind "1". In M2-S5 erzeugt das Gatter 112 das Signal C und werden die Inhalte der Register/Zähler 110, 306 und 401 an der hinteren Flanke von M2-S5 erneuert, um die Inhalte der Register/Zähler 110, 306 und 401 von "02H" nach "01H", von "01H" nach "02H" bzw. von "31H" nach "32H" zu ändern.
  • In M2-S6 bleibt das Ausgangssignal des Flipflops 116 weiter "0", da das Dateneingangsgatter 113 das Signal A = "0" an das Flipflop 116 anlegt.
  • Auf das Ende von M2-S6 hin wird der dritte Ausführungszyklus gestartet. Im dritten M1-S1 wird das Schreibsignal 203 nicht erzeugt, da das Signal D = "0" an das Eingangs-AND-Gatter 202 angelegt wird, das ein Schreibsignal erzeugt, das das Schreiben von Daten in das Befehlsregister 201 spezifiziert. Dementsprechend bleibt der im Befehlsregister 201 in M1-S1 des ersten Ausführungszyklus gespeicherte Befehlscode "35H" im Befehlsregister 201, weshalb der im ersten Ausführungszyklus gespeicherte Befehl ausgeführt wird. In M1-S3 erzeugt die PLA 602 das Schreibsignal ENABLE RAM, das das Lesen von Daten von der durch das Register 306 spezifizierten Adresse "02H" spezifiziert, und dadurch werden die Daten "33H" der Adresse "02H" auf dem Bus bereitgestellt und werden die Busse 7 bis 0 "00110011". In diesem Augenblick erzeugt die PLA 205 das Signal WTPR2, und das Temporärregister 21 speichert die Daten "33H".
  • In M1-S4 wird, obwohl die PLA 205 das Signal WIR2 erzeugt, das das Schreiben von Daten in das Register 401 spezifizierende Signal 403 nicht erzeugt, da das an das Eingangs-AND- Gatter 402 angelegte Signal D "0" ist, und deshalb wird der Inhalt des Registers 401 nicht geändert. Das Signal WIR2 dient als Schreibsignal für das Register 501. Da das an die Auswählschaltung 502 vor dem Register 501 angelegte Signal WIR3 "0" ist, wird der Inhalt "32H" des Registers 401 im Register 501 gespeichert. In M1-S5 erzeugt die PLA 602 das Signal ENABLE SFR, das das Lesen von Daten von der Adresse "32H" spezifiziert, die durch den Inhalt des Registers 501 spezifiziert wird. Anschließend wird der Inhalt "55H" der Adresse "32H" auf dem Bus bereitgestellt, und die Busse 7 bis 0 werden "01010101". In diesem Augenblick erzeugt die PLA 205 das Signal WTPR1, die Daten "55H" im Temporärregister 20 zu speichern. Da sich die ALU im ADD-Befehlsausführungsmodus befindet, fährt die PLA 205 damit fort, das Signal ADD zu erzeugen.
  • In M2-S5 erzeugt die PLA 205 das Signal ENABLE ALU, wodurch die Summe (33H = 55H + + 1) der Inhalte der Temporärregister 20 und 21 und des Hauptübertrags gebildet wird und die Busse 7 bis 0 "10001001" werden. In diesem Augenblick erzeugt die PLA 602 das Schreibsignal WRITE RAM, das das Schreiben von Daten an die Adresse "02H" spezifiziert, die durch das Register 306 spezifiziert wird, um "89H" an der Adresse "02H" zu speichern. Außerdem erzeugt die PLA 205 das Schreibsignal WPSW, den Hauptübertrag und den Zweitübertrag in das Register 24 zu schreiben. Da der Hauptübertrag und der Zweitübertrag am Ende der Addition nicht erzeugt werden, werden beide Überträge "0". In M2-S5 wird das Signal C, nämlich der Zähltakt für die Register/Zähler 110, 306 und 401, erzeugt, um die Inhalte der Register/Zähler 110, 306 und 401 von "01H" nach "00H", von "02H" nach "03H" bzw. von "32H" nach "33H" zu andern.
  • In M2-S6 wird der Inhalt des Register/Zählers "00H", und daher ändert sich das Ausgangs-Zählendesignal A des Gatters 111 von "0" nach "1". Das Ausgangs-Zählendesignal A - "1" wird an das Gatter 113 angelegt, wodurch sich das Ausgangssignal D des Flipflops 116 von "0" nach "1" ändert. Der dreizyklige Sukzessivausführungsmodus wird am Ende von M1-S6 beendet.
  • Im nächsten M1-S1 gibt das Gatter 202 das Signal 203 an das Befehlsregister 201, da das Signal A = "1" am Gatter 202 anliegt, das ein Schreibsignal an das Befehlsregister 201 gibt. Anschließend speichert das Befehlsregister 201 den nächsten Befehl.
  • Sukzessiv-ADD-Operationen zum Verarbeiten der in Tabelle 2 gezeigten Daten mittels eines herkömmlichen Datenverarbeitungssystems und mittels eines Datenverarbeitungssystems gemäß der vorliegenden Erfindung werden nachstehend verglichen.
  • Tabelle 2
  • DAR DATEN data address DATEN Adresse 00H 50H Adresse 30H 22H
  • Adresse 01H OAAH Adresse 31H OBCH
  • Adresse 02H 33H Adresse 32H 55H
  • Herkömmliches Datenverarbeitungssystem
  • (1) CLR C Lösche den Hauptübertrag
  • (2) MOV A, 00 Bewege die Daten bei 00H nach A
  • (3) ADDC A, 30 Addiere A und die Daten bei 30H
  • (4) MOV 00, A Speichere das Ergebnis der Addition bei 00H
  • (5) MOV A, 01 Bewege die Daten bei 01H nach A
  • (6) ADDC A, 31 Addiere A und die Daten bei 31H
  • (7) MOV 01, A Speichere das Ergebnis der Addition bei 01H
  • (8) M0V A, 02 Bewege die Daten bei 02H nach A
  • (9) ADDC A, 32 Addiere A und die Daten bei 32H
  • (10) MOV 02, A Speichere das Ergebnis der Addition bei 02H
  • Datenverarbeitungssystem der vorliegenden Erfindung
  • (1) CLR C Löscbe den Hauptübertrag
  • (2) MOV DAR, #00 Setze DAR für die Daten bei 00H
  • (3) MOVMOD, #03 Setze MOD für Sukzessivausführungshäufigkeits-Daten 03H
  • (4) ADDC A, 30 Führe A und den Befehl bei 30H aus.
  • Somit führt das herkömmliche Datenverarbeitungssystem zehn Befehle aus, während das Datenverarbeitungssystem der vorliegenden Erfindung zu dem gleichen Zweck nur vier Befehle ausführt. Der Befehlsdecoder der vorliegenden Erfindung hat eine hohe Ausnutzung der ROM-Bytes und arbeitet bei einer hohen Verarbeitungsgeschwindigkeit. Insbesondere wenn ein Datentransferbefehl (MOV data address 1, data address 2) gegeben wird, können Daten leicht in Blöcken zwischen wahlweisen Bereichen transferiert werden, und daher kann leicht ein Unterprogramm ohne Verwendung irgendeines Datenstapels in einem Unterbrechungsprozeß und einem gewöhnlichen Prozeß aufgestellt werden.
  • Wie sich aus der vorangehenden Beschreibung ergibt, kann gemäß der vorliegenden Erfindung der Betrieb wahlweiser aufeinanderfolgender Bytes ausgeführt werden, indem die Inhalte eines Registers zum Zählen der Anzahl von Zyklen der Befehlsausführung, eines Registers zum Spezifizieren von Datenadressen und eines durch ein Befehlssymbol A spezifizierten Registers jedesmal, wenn ein Zyklus der Befehlsausführung beendet wird, gezählt werden.
  • Weiterhin werden Register 401 und 404 zum wiederholten Ausführen eines Befehls verwendet, der mittels eines Befehlssymbols "ADDC data address 1, data address 2" für aufeinanderfolgende Operandenadressen bezeichnet ist, und die Inhalte der Register 401 und 404 werden jedesmal, wenn ein Zyklus des Befehls ausgeführt wird, in einer zu der bei den Registern 306 und 401 beschriebenen ähnlichen Weise um "1" hochgezählt, um kontinuierlich Adressen zu bilden.
  • Deshalb wird gemäß der vorliegenden Erfindung beim Verarbeiten verschiedener Daten (Operanden), die durch Wiederholen der gleichen Operation an verschiedenen Adressen beispielsweise in einem Datenspeicher und einem Sonderregister gespeichert wurden, der Befehl der Operation in einem Befehlsregister festgehalten und werden die verschiedenen Operandenadressen sequentiell spezifiziert, so daß die Daten mit einer hohen Verarbeitungsgeschwindigkeit und unter hoher Byte-Ausnutzung verarbeitet werden.

Claims (3)

1. Befehlsdecoder für einen Prozessor, zum wiederholten Ausführen eines Befehls an einer variablen Anzahl von Operandenbytes, welcher aufweist:
ein Befehlsregister (201) zum Lesen von Befehlen, das mit einem Datenbus verbunden ist;
eine Befehlsdecodiereinheit (205), die einen Befehl aus dem Befehlsregister (201) liest, um den allgemeinen Betrieb des Prozessors zu steuern, und die auf den Empfang eines Sukzessivausführungsbefehls hin, der die Wiederholung des gleichen Befehls für an verschiedenen Operandenadressen gespeicherte Operanden spezifiziert, ein Sukzessivausführungsmodus-Signal erzeugt;
eine Sukzessivbefehlsausführungszyklus-Überwachungseinheit (100) die auf einen Einstellwert eingestellt ist, der die Anzahl von Sukzessivbefehlsausführungszyklen anzeigt, wenn das Sukzessivausführungsmodus-Signal erzeugt wird, und die die Anzahl von Ausführungszyklen zählt und bei Übereinstimmung der Anzahl der Ausführungszyklen mit dem Einstellwert ein Zählendesignal erzeugt;
Adressen-Register/Zähler (306, 401) zum zusammenfallenden Empfangen jeweiliger Bytes des Befehls von dem Datenbus, die ihre Zahlung auf die Beendigung jedes Ausführungszyklus des Befehls hin ändern und dadurch jeder verschiedene Adressen für Daten erzeugen die jeweils für aufeinanderfolgende Ausführungszyklen verarbeitet werden sollen;
eine Operandenzugriffssteuereinheit (602), die sequentiell die Ausgaben der Adressen-Register/Zähler (306, 401) empfängt und Daten an verschiedenen Operandenadressen adressiert;
eine Lesesperreinrichtung (202), die das Befehlsregister (201) dagegen sperrt, während eines Zeitintervalls von der Erzeugung des Sukzessivausführungsmodus-Signals bis zur Erzeugung des Zählendesignals einen neuen Befehl von dem Datenbus zu lesen; und
eine Steuereinrichtung (501, 502, 601), die betreibbar ist, sequentiell den Wert aus dem ersten und dem zweiten Adressen-Register/Zähler (306, 401) an die Operandenzugriffssteuereinheit (602) anzulegen, und die den Wert aus einem der Adressenregister zeitweise festhält, während der Wert aus dem anderen an die Operandenzugriffssteuereinheit (602) angelegt wird.
2. Befehlsdecoder nach Anspruch 1, bei dem die Sukzessivbefehlsausführungszyklus-Überwachungseinheit (100) aufweist:
ein Register (101), das den Einstellwert empfängt, der die Anzahl von Ausführungszyklen von dem Datenbus anzeigt, und das den Einstellwert speichert;
einen Register/Zähler (110), der für den im Register (101) gespeicherten Einstellwert eingestellt ist und jedesmal, wenn ein Ausführungszyklus beendet wird, um Eins herunterzählt; und
eine Gattereinrichtung (111), die das Zählendesignal auf die Herabsetzung der Zählung des Register/Zählers (110) auf Null hin erzeugt.
3. Befehlsdecoder nach Anspruch 1 oder 2, der einen dritten Adressen-Register/Zähler (404) enthält, um ein drittes Byte des Befehls von dem Datenbus zusammenfallend mit den ersten und zweiten Bytes zu empfangen und um danach dessen Zählung auf die Beendigung jedes Ausführungszyklus hin zu ändern, um die verschiedenen Adressen für die aufeinanderfolgenden Ausführungszyklen zu erzeugen.
DE3886781T 1987-01-12 1988-01-12 Befehlsdekoder. Expired - Fee Related DE3886781T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62003305A JP2675779B2 (ja) 1987-01-12 1987-01-12 命令解読装置

Publications (2)

Publication Number Publication Date
DE3886781D1 DE3886781D1 (de) 1994-02-17
DE3886781T2 true DE3886781T2 (de) 1994-06-16

Family

ID=11553646

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3886781T Expired - Fee Related DE3886781T2 (de) 1987-01-12 1988-01-12 Befehlsdekoder.

Country Status (4)

Country Link
US (1) US4958275A (de)
EP (1) EP0275170B1 (de)
JP (1) JP2675779B2 (de)
DE (1) DE3886781T2 (de)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0770961B2 (ja) * 1988-08-12 1995-07-31 日本電気株式会社 マイクロコンピュータ
US5155820A (en) * 1989-02-21 1992-10-13 Gibson Glenn A Instruction format with designations for operand lengths of byte, half word, word, or double word encoded in address bits
US5179691A (en) * 1989-04-12 1993-01-12 Unisys Corporation N-byte stack-oriented CPU using a byte-selecting control for enhancing a dual-operation with an M-byte instruction word user program where M<N<2M
US5241637A (en) * 1990-01-05 1993-08-31 Motorola, Inc. Data processor microsequencer having multiple microaddress sources and next microaddress source selection
JPH04140892A (ja) * 1990-02-05 1992-05-14 Internatl Business Mach Corp <Ibm> 制御データをエンコードする装置及び方法
JP2592979B2 (ja) * 1990-04-25 1997-03-19 株式会社東芝 信号処理用集積回路装置
JPH04293124A (ja) * 1991-03-20 1992-10-16 Hitachi Ltd データ処理プロセッサ
JP2520544B2 (ja) * 1991-09-26 1996-07-31 インターナショナル・ビジネス・マシーンズ・コーポレイション タスクのオ―バ―ラン状態を監視する方法及びタスク実行サイクルのオ―バ―ランを検出する装置
JP2943464B2 (ja) * 1991-12-09 1999-08-30 松下電器産業株式会社 プログラム制御方法及びプログラム制御装置
US5371864A (en) * 1992-04-09 1994-12-06 International Business Machines Corporation Apparatus for concurrent multiple instruction decode in variable length instruction set computer
US5584031A (en) * 1993-11-09 1996-12-10 Motorola Inc. System and method for executing a low power delay instruction
NL9400607A (nl) * 1994-04-15 1995-11-01 Arcobel Graphics Bv Dataverwerkingscircuit, vermenigvuldigingseenheid met pijplijn, ALU en schuifregistereenheid ten gebruike bij een dataverwerkingscircuit.
US5828875A (en) * 1997-05-29 1998-10-27 Telefonaktiebolaget Lm Ericsson Unroll of instructions in a micro-controller
US6609216B1 (en) 2000-06-16 2003-08-19 International Business Machines Corporation Method for measuring performance of code sequences in a production system
JP3886870B2 (ja) * 2002-09-06 2007-02-28 株式会社ルネサステクノロジ データ処理装置
US8161461B2 (en) * 2005-03-24 2012-04-17 Hewlett-Packard Development Company, L.P. Systems and methods for evaluating code usage
US7415599B1 (en) * 2005-11-01 2008-08-19 Zilog, Inc. Instruction operation and operand memory location determined based on preceding instruction operation and operand memory location
US20100023733A1 (en) * 2008-04-15 2010-01-28 Vns Portfolio Llc Microprocessor Extended Instruction Set Precision Mode

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1043358A (en) * 1962-04-02 1966-09-21 Hitachi Ltd Control system for digital computer
US3466613A (en) * 1967-01-13 1969-09-09 Ibm Instruction buffering system
US3665411A (en) * 1970-06-08 1972-05-23 Singer Co Computer
US3771141A (en) * 1971-11-08 1973-11-06 Culler Harrison Inc Data processor with parallel operations per instruction
JPS49116932A (de) * 1973-03-09 1974-11-08
US4118776A (en) * 1975-07-17 1978-10-03 Nippon Electric Company, Ltd. Numerically controlled machine comprising a microprogrammable computer operable with microprograms for macroinstructions and for inherent functions of the machine
US4037213A (en) * 1976-04-23 1977-07-19 International Business Machines Corporation Data processor using a four section instruction format for control of multi-operation functions by a single instruction
US4202035A (en) * 1977-11-25 1980-05-06 Mcdonnell Douglas Corporation Modulo addressing apparatus for use in a microprocessor
US4306287A (en) * 1979-08-31 1981-12-15 Bell Telephone Laboratories, Incorporated Special address generation arrangement
JPS59135549A (ja) * 1983-01-21 1984-08-03 Matsushita Electric Ind Co Ltd 電子計算機装置
JPS59178544A (ja) * 1983-03-30 1984-10-09 Fujitsu Ltd メモリアクセス回路
GB2187577B (en) * 1986-03-07 1989-11-15 Stc Plc Digital computer systems

Also Published As

Publication number Publication date
DE3886781D1 (de) 1994-02-17
JP2675779B2 (ja) 1997-11-12
EP0275170A3 (en) 1990-04-25
EP0275170B1 (de) 1994-01-05
EP0275170A2 (de) 1988-07-20
US4958275A (en) 1990-09-18
JPS63172339A (ja) 1988-07-16

Similar Documents

Publication Publication Date Title
DE3886781T2 (de) Befehlsdekoder.
DE3751503T2 (de) Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen.
DE69906156T2 (de) Mikroprozessorvorrichtung mit programmierbaren wartezuständen
DE4010384C2 (de) Verfahren zur Burst-Datenübertragung
DE3854701T2 (de) Methode und Vorrichtung zum Verändern von Mikrobefehlen mit einer Makrobefehlspipeline.
DE69622676T2 (de) Datenverarbeitungsanordnung mit Erweiterung des Befehlssatzes
DE2753062C2 (de) Einrichtung zur wiederholten Durchführung von Programmschleifen
DE3752017T2 (de) Mikrorechner mit Zugriffsfähigkeit auf einen internen Speicher mit gewünschter variabler Zugriffszeit
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE3688824T2 (de) Datenverarbeitungssystem.
DE69433026T2 (de) Verfahren und Vorrichtung zum Datenverarbeiten mit mehreren Statusbitgruppen
DE2524046C2 (de) Elektronische Datenverarbeitungsanlage
DE2744531A1 (de) Elektronische datenverarbeitungsanlage
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE3400723C2 (de)
DE3852056T2 (de) Koprozessor und Verfahren zu dessen Steuerung.
DE3856139T2 (de) Mikroprozessor
DE3854853T2 (de) Datenprozessor mit erweiterten Operationsfunktionen
DE3043653A1 (de) Datenverarbeitungsanlage
WO1995010803A1 (de) Prozessor für zeichenketten variabler länge
DE69231237T2 (de) Datenverarbeitungsvorrichtung
DE3688806T2 (de) Instruktionsprozessor.
DE69029608T2 (de) Digitale Signalprozessorvorrichtung
DE68926266T2 (de) Datenprozessor mit der Fähigkeit, Unterbrechungen mit hoher Geschwindigkeit zu verarbeiten
DE3850906T2 (de) Gastmaschinenablaufsteuerungssystem für virtuelles Maschinensystem.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee