AT396409B - Mikrorechner mit verbessertem befehlszyklus - Google Patents
Mikrorechner mit verbessertem befehlszyklus Download PDFInfo
- Publication number
- AT396409B AT396409B AT0376385A AT376385A AT396409B AT 396409 B AT396409 B AT 396409B AT 0376385 A AT0376385 A AT 0376385A AT 376385 A AT376385 A AT 376385A AT 396409 B AT396409 B AT 396409B
- Authority
- AT
- Austria
- Prior art keywords
- byte
- command
- cycle
- instruction
- counter
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 14
- 230000006835 compression Effects 0.000 claims 1
- 238000007906 compression Methods 0.000 claims 1
- 230000005669 field effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000007796 conventional method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/321—Program or instruction counter, e.g. incrementing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
Description
AT 396 409 B
Diese Erfindung betrifft einen Microrechner mit verbessertem Befehlszyklus, mit einem Speicher, in dem Befehle speicherbar sind, von denen zumindest einer ein erstes und ein zweites, jeweils an ein»: bestimmten Adresse speicherbares Byte aufweist, einem mit dem Speicher verbundenen Zähler, der einen osten Eingang für den Empfang einer vorbestimmten Folge von einen Maschinenzyklus bestimmenden Taktimpulsen sowie einen S zweiten Eingang aufweist und der an seinem Ausgang sequentiell jeweils eine der Speicheradressen für das Auslesen der Befehlsbytes abgibt.
Moderne monolithische Microrechner verwenden oft einen pipelineförmigen Aufbau, der eine Überlappung der Abrufzyklen und der Befehlsausführungszyklen gestattet. Im Abrufzyklus werden Befehle von Speicher abgerufen. Jeder Befehl besteht aus einem Operationscode, der in einem nur auslesbaren Speicher (später ROM 10 genannt) gespeichert ist, z. B. einem programmiobaren, nur auslesbaren Speicho (später PROM genannt), sowie einem Operanden, do gleichfalls in einem ROM gespeichert ist und auf einen variablen Wert zeigt, der in einem Speicher mit wahlfreiem Zugriff (später RAM genannt) gespeichert ist. Bei herkömmlichen pipelineförmig aufgebauten Microrechnem erfolgen der Abruf des Operationscodes und der Abruf des Operanden in unterschiedlichen Befehlsausführungszyklen, die später als "Befehlszyklen" bezeichnet woden. Um beispielsweise 15 einen 2-Byte Befehl, der einen 1-Byte Operationscode und einen 1-Byte Operanden enthält, in einem 4-Bit Microrechner abzurufen, sind zwei Befehlszyklen erforderlich. In diesem Fall benötigt daher jedo Befehlszyklus drei Maschinentaktzyklen. Dieser herkömmliche rohrleitungsförmige Aufbau ist nicht ganz zufriedenstellend.
Im allgemeinen ist der Abrufzyklus für das Abrufen des Operationscodes oder der Operanden kürzer als der Befehlszyklus. Das bedeutet, daß im Ausführungszyklus ein Intervall besteht, während dem kein Abruf erfolgt 20 Wenn do nächste Befehlsteil während dieses Intervalls abgerufen woden kann, ist es möglich, den Durchlauf zu verkürzen.
Aufgabe der Erfindung ist es daher, einen Microrechno mit verbessertem Befehlszyklus zu schaffen, welcher die Nachteile der oben beschriebenen herkömmlichen Microrechno vermeidet und dessen Befehlszyklus kürzo ist
Diese Aufgabe wird bei einem Microrechner der eingangs angeführten Art erfindungsgemäß dadurch gelöst, 25 daß mit dem Speicher und dem Zähler ein Dekoder verbunden ist, der das erste Byte jedes vom Speicher ausgelesenen Befehls empfängt und an seinem Ausgang entsprechende Steuersignale abgibt, die am zweiten Eingang des Zählers anliegen, wenn das erste Byte im Dekodo anzeigt daß der Befehl eine Mehrzahl von Bytes aufweist, wobei der Zähler unter Steuerung durch das Steuersignal um einen Zählerstand vorwärts zählt und innerhalb eines Maschinenzyklus ein zeitkomprimiertes Abrufen des nächsten Befehlsbytes auf das erste Byte 30 erfolgt
Do Zähler spricht auf das Takten eines jeden Abrufzyklus an, um seinen Zählwert schrittweise zu erhöhen, um den Zähl wert mit der Adresse in Übereinstimmung zu halten, zu der der Zugriff in jedem Abrufzyklus erfolgt
Die Befehlsdaten bestehen vorzugsweise aus einem Operationscode-Byte und einem Operanden-Byte, wobei das Operationscode-Byte unmittelbar vor dem Einsatz eines Befehlszyklus abgerufen wird, wobei do Abrufschritt 35 einen Schritt enthält, bei dem das Operanden-Byte, das dem abgerufenen oder Code-Byte zugeordnet ist, gleichzeitig mit dem Einsatz des Befehlszyklus abgerufen wird. Im anderen Fall bestehen die Befehlsdaten aus einem Operationscode-Byte und zwei Operanden-Bytes, wobei das Operationscode-Byte unmittelbar vor dem Einsatz eines ersten Befehls abgerufen wird und beim Abrufen ein erstes Operanden-Byte, das dem abgoufenen Operandencode-Byte zugeordnet ist, gleichzeitig mit dem Einsatz des osten Befehlszyklus abgerufen wird und ein 40 zweites Operanden-Byte, das dem ersten Operanden-Byte zugeordnet ist, während des ersten Befehlszyklus abgerufen wird, der auf den Abruf des osten Operanden-Byte folgt.
Die Erfindung wird nun an Hand einer ausführlichen Beschreibung und den beiliegenden Zeichnungen einer bevorzugten Ausführungsform erörtert, die jedoch nicht als Einschränkung angesehen werden soll, sondern nur zur Erläuterung und zum Verständnis dient. 45 In den Zeichnungen zeigt:
Fig. 1(A) und 1(B) Zeitdiagramme von herkömmlichen und erfindungsgemäßen Befehlszyklen für die Ausführung von 2-Byte Befehlen;
Fig. 2(A) und 2(B) Zeitdiagramme von herkömmlichen und erfindungsgemäßen Befehlszyklen für die Ausführung von 3-Byte Befehlen; 50 Fig. 3 das vereinfachte Blockschaltbild eines Microrechnersystems gemäß dieser Erfindung;
Fig. 4 den Vergleich von Zeitdiagrammen für herkömmliche und erfindungsgemäße Microrechner zur Ausführung von Befehlen, wobei (B) den Zählwert des Programmzählers während der Ausführung von 1-Byte Befehlen und (Q das gleiche bei 2-Byte Befehlen zeigt;
Fig. 5(A) und 5(B) die Dauer von Befehlszyklen für die Ausführung von 2-Byten und 3-Byte Befehlen bei 55 herkömmlichen und erfindungsgemäßen Microrechnem; und
Fig. 6(A) und 6(B) Darstellungen von herkömmlichen und erfindungsgemäßen Decodern.
Nunmehr wird auf die Zeichnungen und besonders auf Fig. 1(A) und 1(B) Bezug genommen, wobei der allgemeine und grundlegende Gedanke der Erfindung im Gegensatz zu herkömmlichen Microrechnem beschrieben wird. Fig. 1(A) zeigt ein typisches bei herkömmlichen Microrechnem verwendetes Verfahren gemäß dem Stand 60 der Technik und Fig. 1(B) ein bevorzugtes Verfahren für den Microrechner dieser Erfindung. Beide Diagramme sind auf die Ausführung eines 2-Byte Befehls gerichtet, der einen 8-Bit Operationscode, z. B. LDA, und einen 8-Bit Operanden besitzt, bei dem es sich in diesem Fall um einen Adressencode handelt, der die RAM-Adresse -2-
AT 396 409 B identifiziert, zu der der Zugriff erfolgen soll. Beim gezeigten Beispiel veranlaßt der Befehl, daß der Inhalt einer bestimmten RAM-Adresse in den Akkumulator übertragen oder geladen werden soll.
Beim herkömmlichen Verfahren von Fig. 1(A) wird der Operationscode LDA für den zweiten Befehlszyklus abgerufen, bevor der erste Befehlszyklus beginnt. Beim nächsten Abrufzyklus, der mit dem Einsatz des ersten Befehlszyklus übereinstimmt, werden Daten in der RAM-Adresse abgerufen, die mit dem Operanden identifiziert wird. Die Daten, die in jenem Abrufzyklus abgerufen werden, der gleichzeitig mit dem ersten Befehlszyklus beginnt, sowie der Operationscode LDA, der vor dem ersten Befehlszyklus abgerufen wird, werden im zweiten Befehlszyklus verwendet
Beim oben erwähnten heikömmlichen Verfahren wird am Ende eines jeden Befehlszyklus ein Programmzähler um einen Schritt erhöht Am Beginn des Abrufzyklus des Operationscodes ist der Zählwert des Programmzählers gleich PC. Am Beginn des ersten Befehlszyklus wird der Programmzähler um 1 erhöht wodurch der Zählwert gleich PC + 1 wird. Auf ähnliche Weise wird der Programmzähler am Beginn des zweiten Befehlszyklus um 1 erhöht, wodurch der Zählwert gleich PC + 2 wird.
Beim Verfahren von Fig. 1(B) wird der Operationscode für den ersten Befehlszyklus abgerufen, bevor der erste Befehlszyklus beginnt, wie dies beim oben beschriebenen Verfahren der Fall war. Dieser 2-Byte Operationscode weist jedoch eine Anforderung auf, den Abrufzyklus zu komprimieren. Im Intervall M2 * M3 während des ersten Befehlszyklus werden die Daten in der RAM-Adresse abgerufen, die mit dem Operanden RAM identifiziert wird. Die im Intervall M2 - M3 im ersten Befehlszyklus abgerufenen Operandendaten sowie der vor dem ersten Befehlszyklus abgerufene Operationscode werden dazu verwendet um den ersten Befehlszyklus auszuführen. Bei diesem Verfahren werden die Daten in der RAM-Adresse, die im Intervall M2 - M3 abgerufen werden, bis zum nachfolgenden Intervall Mq - Mj nicht für die Ausführung des Befehls im ersten Befehlszyklus verwendet Während des oben beschriebenen Verfahrens wird der Programmzähler am Ende eines jeden Befehlszyklus um 1 erhöht. Der Programmzähler wird weiters in Abhängigkeit von jedem M3-Taktimpuls um 1 erhöht Anders ausgedrückt: Am Ende des Abrufzyklus für den Operationscode wird der Zählwert des Programmzählers vom PC auf PC + 1 erhöht In Abhängigkeit vom M3-Takt im ersten Befehlszyklus wird der Programmzähler um 1 erhöht, wodurch sich der Zählwert vom PC + 1 auf PC + 2 ändert Daraufhin wird der Programmzähler am Ende des ersten Befehlszyklus in Abhängigkeit vom Mj-Taktimpuls abermals um 1 erhöht Während des Intervalls Mq - Μχ im ersten Befehlszyklus kann der Operationscode für den nächsten Befehlszyklus abgerufen werden.
Es ist daraus ersichtlich, daß beim bevorzugten Verfahren gemäß dieser Erfindung nur ein Befehlszyklus erforderlich ist, um einen 2-Byte Befehl auszuführen.
Fig. 2(A) und 2(B) zeigen ein anderes Beispiel, das die Ausführung eines 3-Byte Befehls betrifft Das gezeigte Beispiel ist auf den Anruf eines Unterprogramms gerichtet, mit dem die Programmsteuerung auf eine Programmadresse springt, die durch 2 Bytes bestimmt wird, d. h. einem HOHEN Adressen-Byte Pr und einem NIEDEREN Adressen-Byte P^. Der Befehl enthält somit einen 1-Byte (8-Bit) Operationscode CALL sowie die beiden Operanden-Bytes Pjj und Pl.
Beim herkömmlichen Verfahren von Fig. 2(A) wird der Operationscode für den Befehl, der im dritten Befehlszyklus ausgeführt werden soll, vor dem Beginn des ersten Befehlszyklus abgerufen. Im nächsten Abrufzyklus wird gleichzeitig mit dem ersten Befehlszyklus das HOHE Adressen-Byte Pjj abgerufen. Auf ähnliche Weise wird im zweiten Befehlszyklus das NIEDERE Adressen-Byte Pl abgerufen. Das HOHE und NIEDERE Adressen-Byte Pjj und Pl, die in den Abrufzyklen gleichzeitig mit dem ersten und zweiten Befehlszyklus abgerufen werden, sowie der Operationscode CALL, der vor dem ersten Befehlszyklus abgerufen wird, werden dazu verwendet, um den Unterprogramm-Anrufbefehl im dritten Befehlszyklus auszuführen. Während des oben beschriebenen Verfahrens wird der Programmzähler am Ende eines jeden Befehlszyklus um 1 erhöht. Dementsprechend wird am Ende des Abrufzyklus für den Operationscode der Zählwert des Programmzählers von PC auf PC + 1 erhöht. Am Ende des ersten Befehlszyklus wird der Programmzähler um 1 erhöht, wodurch der Zählwert von PC +1 auf PC + 2 ansteigt. Auf ähnliche Weise wird der Programmzähler am Ende des zweiten und dritten Befehlszyklus um 1 erhöht
Beim Verfahren von Fig. 2(B) wird der Operationscode CALL für den auszuführenden Befehl im zweiten Befehlszyklus vor dem Beginn des ersten Befehlszyklus abgerufen. Der Operationscode CALL enthält eine Anforderung, die nachfolgenden Abrufzyklen zu komprimieren. Während des Intervalls M2 - M3 im ersten Befehlszyklus wird das HOHE Adressen-Byte Pjj abgerufen. Während des Intervalls Mq - M^ im ersten Befehlszyklus wird das NIEDERE Adressen-Byte Pl abgerufen. Die Adressen-Bytes Pß und Pl. die im ersten Befehlszyklus abgerufen wurden, sowie der Operationscode CALL, der vor dem ersten Befehlszyklus äbgerufen wurde, werden dazu verwendet, um den Unterprogramm-Anruf im zweiten Befehlszyklus auszuführen. Während des oben beschriebenen Verfahrens wird der Programmzähler am Ende eines jeden Befehlszyklus um 1 erhöht. Weiters wird der Programmzähler in Abhängigkeit von jedem M3-Taktimpuls um 1 erhöht, der in die Mitte eines jeden Befehlszyklus fällt. Am Ende des Abrufzyklus für den Operationscode wird der Zählwert des -3-
AT 396 409 B
Programmzählers von PC auf PC + 1 erhöht. In Abhängigkeit vom Mß-Takt im ersten Befehlszyklus wird der Programmzähler wiederum um 1 erhöht, wodurch der Zählwert gleich PC + 2 wird. Daraufhin wird der Programmzähler in Abhängigkeit vom M^-Taktimpuls am Ende des ersten Befehlszyklus um -1 erhöht usw.
Am Beginn des zweiten Befehlszyklus kann dar Operationscode für den nächsten Befehl abgerufen werden, der ausgeführt werden soll.
Daraus erkennt man, daß beim bevorzugten Verfahren gemäß dieser Erfindung nur zwei Befehlszyklen notwendig sind, um einen 3-Byte Befehl auszuführen.
Fig. 3 zeigt ein Microrechnersystem, das so aufgebaut ist, um das bevorzugte Verfahren auszuführen. Die bevorzugte Ausführungsform eines Microrechners enthält einen programmierbaren ROM (PROM) (1), einen Datenpuffer (2), ein Befehlsregister (3), einen Befehlsdecoder (4), der z. B. auf einer programmierbaren Logik beruhen kann, einen Programmzähler (5), ein RAM-Adressenregister (6), sowie Feldeffekttransistoren (7) bis (9).
Im Zusammenhang mit Fig. 4 wird nunmehr die Arbeitsweise der bevorzugten Ausführungsform des Microrechners beschrieben, der, wie oben erwähnt, aufgebaut ist In Fig. 4 sind bei (A) Taktimpulse M2, M3, Mq und Mi dargestellt, die während jedes Befehlszyklus erzeugt werden. (B) zeigt den Zählwert im Programmzähler (5) während der Ausführung von sequentiellen 1-Byte Befehlen. Bei (C) ist die Änderung des Zählwerts im Programmzähler (5) während der Ausführung von sequentiellen 2-Byte Befehlen dargestellt
Der Befehlsdecoder liefert als Ausgang ein Programmzähler-Erhöhungssignal PCUP sowie mehrere Steuersignale Ci - C3, wobei die letztgenannten Signale den Informationsfluß durch die Microrechnerelemente (1 - 6) steuern. Die Steuersignale Cj, C2 und C3 werden mit den Taktimpulsen M3, Mj und M3 UND-verknüpft, um jeweils die Feldeffekttransistoren (7), (8) und (9) zu steuern.
Wenn die Feldeffekttransistoren (7) und (8) geöffnet sind, können mit ihnen Daten, entweder Operanden oder Operationscodes, vom Programm-ROM (1) im Datenpuffer (2) oder im Befehlsregister (3) verriegelt werden. Wenn der Feldeffekttransistor (9) geöffnet ist, kann mit ihm der Operand im Datenpuffer (2) auf die Datensammelleitung gelegt werden, wodurch der Operand in das RAM-Adressenregister (6) für Lade-, Speicheroder andere Befehle oder in den Programmzähler (5) für den Anruf von Unterprogrammen usw. geladen werden kann.
Wenn der Operationscode eine Anorderung für den zeitkoprimierten Abruf des Operanden enthält, gibt der Befehlsdecoder (4) sowohl einen PCUP-Impuls C2 als auch C3-Impulse ab, mit denen der Operand in Abhängigkeit vom nächsten M^-Tak timpuls in und aus dem Datenpuffer (2) geladen wird, und erhöht den Prpgiammzähler, um auf den nächsten Operationscode zu zeigen.
Beim Beispiel von Fig. 4(B) wird in einem einzigen Befehlszyklus ein 1-Byte-Befehl ausgeführt. Der Abruf der Befehle in PROM (1) wird mit der Rückflanke des Mj-Taktimpulses getaktet, wenn er im Cj-Ausgang des Befehlsdecoders (4) auftritL Zu diesem Zeitpunkt wird der Programmzähler (5) in Abhängigkeit vom PCUP-Signal um 1 erhöht Der abgerufene Befehl (Operationscode) wird in das Befehlsregister (3) gelesen und dann an den Befehlsdecoder (4) gelegt. Der Befehlsdecoder (4) decodiert den abgerufenen Befehl und gibt geeignete Signale Cj, C2, C3 ab.
Die Rückflanke des -Taktes signalisiert den Beginn des Befehlszyklus, in dem der Befehl ausgefühlt wird, der im vorgehenden Befehlszyklus abgerufen wurde. Gleichzeitig mit der Ausführung des Befehls, der im vorhergehenden Zyklus abgerufen wurde, wird während des derzeitigen Befehlszyklus der nächste 1-Byte Befehl abgerufen. Die PROM-Adresse, zu der der Zugriff für den Befehl erfolgen soll, ist durch den Zählwert (PC, PC +1, PC + 2) gekennzeichnet, der mit jeder Rückflanke des M^-Taktes vom PCUP-Signal um 1 erhöht wird.
Da keine Anforderungen für einen komprimierten Abruf des Operanden erfolgen, bleiben die C2- und Cß-Ausgänge des Befehlsdecoders (4) inaktiv, während 1-Byte Befehle ausgeführt werden. Dadurch bleiben die Feldeffekttransistoren (8) und (9) gesperrt. Da weiters das PCUP-Signal des Befehlsdecoders (4) zu diesem Zeitpunkt nicht in der Mitte des Befehlszyklus erzeugt wird, wird der Programmzähler (5) nur in Abhängigkeit von der Rückflanke des Mj-Taktes erhöht
Wenn, wie Fig. 4(C) zeigt, 2-Byte Befehle ausgeführt werden sollen, die einen 1-Byte Operationscode und einen 1-Byte Operanden aufweisen, werden die C2“ und C3*Impulse vom Befehlsdecoder (4) abgegeben, nachdem der Operationscode des Befehls abgerufen wurde, der auf die Rückflanke des M^-Taktes folgt. Der C2- und Cj-Ausgang öffnen die Feldeffekttransistoren (8) und (9), um den Operanden aus dem ROM (1) und in den Datenpuffer (2), den Programmzähler (5) und/oder das RAM-Adressenregister (6) zu laden.
An der Rückflanke des M3>Taktes wird der Programmzähler (5) in Abhängigkeit vom PCUP-Signal des Befehlsdecoders (4) um 1 erhöht. Gleichzeitig werden beispielsweise die Daten im RAM-Adressenregister (6) ausgelesen und bei der Ausführung des Befehls im Intervall Mq - Mj verwendet Während des Intervalls Mq - M} wird der nächste Befehl vom PROM abgerufen. Da der Programmzähler (5) in diesem Fall mit PCUP in Abhängigkeit von der Rückflanke des M3>Taktes erhöht wird, entspricht die vom Zählwert gekennzeichnete PROM-Adresse der Adresse des Operationscodes für den nächsten Befehl. -4-
Claims (4)
- AT 396 409 B Um eine Kompression des Abrufzyklus gemäß dem bevorzugten Verfahren durchzuführen, das oben beschrieben wurde, ist es notwendig, daß die zweiten und/oder dritten Bytes der Daten keine Operationscode-Teile enthalten, sondern eher nur Operanden, beispielsweise Daten oder Adressen, besitzen. Da bei den meisten 4-Bit Microrechnem die Befehle nur einen 1-B'yte Operationscode sowie ein oder mehrere Operanden-Bytes enthalten, kann das bevorzugte Verfahren, das oben beschrieben wurde, auf die meisten derartigen Microrechner angewandt werden. Wie Fig. 5(A) und 5(B) zeigen, können mit dem erfindungsgemäßen Microrechner
- 2-Byte Befehle, die herkömmlicherweise zwei Befehlszyklen für ihre Ausführung benötigen, bei einem pipelineförmigen Aufbau in einem einzigen Befehlszyklus ausgeführt werden. Auf ähnliche Weise können 3-Byte Befehle, die herkömmlicherweise drei Befehlszyklen für ihre Ausführung benötigen, in zwei Befehlszyklen ausgeföhrt werden. Es ist daher leicht ersichtlich, daß die Erfindung die Laufzeit wesentlich verkürzt. Zusätzlich ist in Fig. 6(A) und 6(B) vereinfacht die Fläche dargestellt, die für den Befehlsdecoder bei einem System gemäß dem Stand der Technik und dem System gemäß der Erfindung erforderlich ist, wobei (A) ein herkömmliches System und (B) das System gemäß der Erfindung zeigt. In Fig. 6(A) und 6(B) kennzeichnen die vertikalen Linien UND-Element Auswahlleitungen und die horizontalen Linien ODER-Element Auswahlleitungen. mj kennzeichnet das Auswahlsignal für den Maschinenzustand 1, mj den Auswahleingang für den Maschinenzustand 2 und tnß den Auswahleingang für den Maschinenzustand 3. Aus Fig. 6(A) und 6(B) erkennt man, daß beim herkömmlichen System drei Maschinenzustände erforderlich sind, um einen 3-Byte Befehl auszuführen, der drei Befehlszyklen erfordert Bei dem erfindungsgmäßen Mikrorechner sind jedoch für die Ausführung von 3-Byte Befehlen nur zwei Befehlszyklen erforderlich. Dadurch werden auch nur zwei Maschinenzustände für den Befehlsdecoder benötigt um 3-Byte Befehle auszuführen. Damit wird die ODER-Element Auswahlleitung, die zur Steuerung einer Signalleitung für den Maschinenzustand 3 dient, überflüssig. Dies führt zu einer beträchtlichen Herabsetzung in der Länge der UND-Element Auswahl-leitungen, wodurch sich eine ähnliche Reduktion in der Größe des Befehlsdecoders ergibt Diese Erfindung erfüllt daher alle Gegenstände und Vorteile, für die sie gedacht ist PATENTANSPRUCH Microrechner mit verbessertem Befehlszyklus, mit einem Speicher, in dem Befehle speicherbar sind, von denen zumindest einer ein erstes und ein zweites, jeweils an einer bestimmten Adresse speicherbares Byte aufweist einem mit dem Speicher verbundenen Zähler, der einen ersten Eingang für den Empfang ein«- vorbestimmten Folge von einen Maschinenzyklus bestimmenden Taktimpulsen sowie einen zweiten Eingang aufweist und der an seinem Ausgang sequentiell jeweils eine der Speicheradressen für das Auslesen der Befehlsbytes äbgibt dadurch gekennzeichnet, daß mit dem Speicher (1) und dem Zähler (5) ein Dekoder (4) verbunden ist der das erste Byte jedes vom Speicher (1) ausgelesenen Befehls empfängt und an seinem Ausgang entsprechende Steuersignale abgibt, die am zweiten Eingang des Zählers (5) anliegen, wenn das erste Byte im Dekoder (4) anzeigt, daß der Befehl eine Mehrzahl von Bytes aufweist wobei der Zähler (5) unter Steuerung durch das Steuersignal um einen Zählerstand vorwärts zählt und innerhalb eines Maschinenzyklus ein zeitkomprimiertes Abrufen des nächsten Befehlsbytes auf das erste Byte «folgt (Fig.
- 3). Hiezu
- 4 Blatt Zeichnungen -5-
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59276835A JPH0776917B2 (ja) | 1984-12-29 | 1984-12-29 | マイクロコンピユ−タ |
Publications (2)
Publication Number | Publication Date |
---|---|
ATA376385A ATA376385A (de) | 1992-12-15 |
AT396409B true AT396409B (de) | 1993-09-27 |
Family
ID=17575063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
AT0376385A AT396409B (de) | 1984-12-29 | 1985-12-27 | Mikrorechner mit verbessertem befehlszyklus |
Country Status (12)
Country | Link |
---|---|
US (3) | US5630085A (de) |
JP (1) | JPH0776917B2 (de) |
KR (1) | KR930009754B1 (de) |
CN (1) | CN1024960C (de) |
AT (1) | AT396409B (de) |
AU (1) | AU582408B2 (de) |
CA (1) | CA1242802A (de) |
DE (1) | DE3546332C2 (de) |
FR (1) | FR2575563B1 (de) |
GB (1) | GB2169115B (de) |
IT (1) | IT1208731B (de) |
NL (1) | NL193474C (de) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5088035A (en) * | 1988-12-09 | 1992-02-11 | Commodore Business Machines, Inc. | System for accelerating execution of program instructions by a microprocessor |
GB2230116B (en) * | 1989-04-07 | 1993-02-17 | Intel Corp | An improvement for pipelined decoding of instructions in a pipelined processor |
US5293592A (en) * | 1989-04-07 | 1994-03-08 | Intel Corporatino | Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline |
US6003127A (en) * | 1995-10-04 | 1999-12-14 | Nippondenso Co., Ltd. | Pipeline processing apparatus for reducing delays in the performance of processing operations |
US5901293A (en) * | 1996-06-25 | 1999-05-04 | Claxton; Daniel Dean | Bus interface controller for serially-accessed variable-access-time memory device |
KR100308211B1 (ko) | 1999-03-27 | 2001-10-29 | 윤종용 | 압축 명령을 갖는 마이크로 컴퓨터 시스템 |
US6978360B2 (en) * | 2001-05-11 | 2005-12-20 | International Business Machines Corporation | Scalable processor |
US7552427B2 (en) * | 2004-12-13 | 2009-06-23 | Intel Corporation | Method and apparatus for implementing a bi-endian capable compiler |
US9112495B1 (en) * | 2013-03-15 | 2015-08-18 | Mie Fujitsu Semiconductor Limited | Integrated circuit device body bias circuits and methods |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3609700A (en) * | 1970-02-24 | 1971-09-28 | Burroughs Corp | Data processing system having an improved fetch overlap feature |
US3766527A (en) * | 1971-10-01 | 1973-10-16 | Sanders Associates Inc | Program control apparatus |
GB2047928A (en) * | 1979-04-24 | 1980-12-03 | Tektronix Inc | Means and Method Within a Digital Processing System for Prefetching both Operation Codes and Operands |
GB2059124A (en) * | 1978-01-31 | 1981-04-15 | Intel Corp | Data processing system |
GB2115964A (en) * | 1982-03-01 | 1983-09-14 | Hitachi Ltd | A digital data processor |
EP0117655A2 (de) * | 1983-02-02 | 1984-09-05 | John F. Couleur | Verfahren und Apparat zur Pipelineverarbeitung mit einer einzigen Arithmetik- und Logikeinheit |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3771138A (en) * | 1971-08-31 | 1973-11-06 | Ibm | Apparatus and method for serializing instructions from two independent instruction streams |
US3793631A (en) * | 1972-09-22 | 1974-02-19 | Westinghouse Electric Corp | Digital computer apparatus operative with jump instructions |
US3840861A (en) * | 1972-10-30 | 1974-10-08 | Amdahl Corp | Data processing system having an instruction pipeline for concurrently processing a plurality of instructions |
US3961313A (en) * | 1974-12-04 | 1976-06-01 | International Business Machines Corporation | Computer control apparatus |
US4079455A (en) * | 1976-12-13 | 1978-03-14 | Rca Corporation | Microprocessor architecture |
DE2702586C3 (de) * | 1977-01-22 | 1979-07-05 | Standard Elektrik Lorenz Ag, 7000 Stuttgart | Schaltungsanordnung zum Steuern des Speicherzugriffs bei einem Rechner |
US4462073A (en) * | 1978-11-08 | 1984-07-24 | Data General Corporation | Apparatus for fetching and decoding instructions |
US4346437A (en) * | 1979-08-31 | 1982-08-24 | Bell Telephone Laboratories, Incorporated | Microcomputer using a double opcode instruction |
US4316247A (en) * | 1979-10-30 | 1982-02-16 | Texas Instruments, Inc. | Low power consumption data processing system |
US4399507A (en) * | 1981-06-30 | 1983-08-16 | Ibm Corporation | Instruction address stack in the data memory of an instruction-pipelined processor |
US4541045A (en) * | 1981-09-21 | 1985-09-10 | Racal-Milgo, Inc. | Microprocessor architecture employing efficient operand and instruction addressing |
US4654781A (en) * | 1981-10-02 | 1987-03-31 | Raytheon Company | Byte addressable memory for variable length instructions and data |
JPS58134350A (ja) * | 1982-02-04 | 1983-08-10 | Matsushita Electric Ind Co Ltd | メモリ制御装置 |
JPS58205256A (ja) * | 1982-05-24 | 1983-11-30 | Matsushita Electric Ind Co Ltd | データ処理方法 |
JPS5920049A (ja) * | 1982-07-26 | 1984-02-01 | Nec Corp | 演算処理装置 |
US4471432A (en) * | 1982-10-13 | 1984-09-11 | Wilhite John E | Method and apparatus for initiating the execution of instructions using a central pipeline execution unit |
US4742451A (en) * | 1984-05-21 | 1988-05-03 | Digital Equipment Corporation | Instruction prefetch system for conditional branch instruction for central processor unit |
-
1984
- 1984-12-29 JP JP59276835A patent/JPH0776917B2/ja not_active Expired - Lifetime
-
1985
- 1985-09-27 CN CN85109719A patent/CN1024960C/zh not_active Expired - Lifetime
- 1985-12-04 KR KR1019850009098A patent/KR930009754B1/ko not_active IP Right Cessation
- 1985-12-18 CA CA000497968A patent/CA1242802A/en not_active Expired
- 1985-12-19 NL NL8503516A patent/NL193474C/nl not_active IP Right Cessation
- 1985-12-19 AU AU51477/85A patent/AU582408B2/en not_active Expired
- 1985-12-24 GB GB08531800A patent/GB2169115B/en not_active Expired
- 1985-12-27 IT IT8548990A patent/IT1208731B/it active
- 1985-12-27 AT AT0376385A patent/AT396409B/de not_active IP Right Cessation
- 1985-12-27 FR FR858519331A patent/FR2575563B1/fr not_active Expired - Lifetime
- 1985-12-30 DE DE3546332A patent/DE3546332C2/de not_active Expired - Fee Related
-
1993
- 1993-06-28 US US08/082,822 patent/US5630085A/en not_active Expired - Lifetime
-
1995
- 1995-02-01 US US08/382,392 patent/US5621907A/en not_active Expired - Lifetime
- 1995-06-07 US US08/488,082 patent/US6484252B1/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3609700A (en) * | 1970-02-24 | 1971-09-28 | Burroughs Corp | Data processing system having an improved fetch overlap feature |
US3766527A (en) * | 1971-10-01 | 1973-10-16 | Sanders Associates Inc | Program control apparatus |
GB2059124A (en) * | 1978-01-31 | 1981-04-15 | Intel Corp | Data processing system |
GB2047928A (en) * | 1979-04-24 | 1980-12-03 | Tektronix Inc | Means and Method Within a Digital Processing System for Prefetching both Operation Codes and Operands |
GB2115964A (en) * | 1982-03-01 | 1983-09-14 | Hitachi Ltd | A digital data processor |
EP0117655A2 (de) * | 1983-02-02 | 1984-09-05 | John F. Couleur | Verfahren und Apparat zur Pipelineverarbeitung mit einer einzigen Arithmetik- und Logikeinheit |
Also Published As
Publication number | Publication date |
---|---|
IT1208731B (it) | 1989-07-10 |
IT8548990A0 (it) | 1985-12-27 |
GB2169115A (en) | 1986-07-02 |
NL193474B (nl) | 1999-07-01 |
NL8503516A (nl) | 1986-07-16 |
US5621907A (en) | 1997-04-15 |
CN85109719A (zh) | 1986-07-02 |
GB8531800D0 (en) | 1986-02-05 |
KR860005297A (ko) | 1986-07-21 |
DE3546332C2 (de) | 1995-09-21 |
JPH0776917B2 (ja) | 1995-08-16 |
CN1024960C (zh) | 1994-06-08 |
JPS61157946A (ja) | 1986-07-17 |
NL193474C (nl) | 1999-11-02 |
CA1242802A (en) | 1988-10-04 |
AU5147785A (en) | 1986-07-03 |
ATA376385A (de) | 1992-12-15 |
US6484252B1 (en) | 2002-11-19 |
KR930009754B1 (ko) | 1993-10-09 |
AU582408B2 (en) | 1989-03-23 |
DE3546332A1 (de) | 1986-07-10 |
FR2575563A1 (fr) | 1986-07-04 |
FR2575563B1 (fr) | 1990-12-07 |
GB2169115B (en) | 1989-01-11 |
US5630085A (en) | 1997-05-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2753062C2 (de) | Einrichtung zur wiederholten Durchführung von Programmschleifen | |
DE69738188T2 (de) | Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor | |
DE3303488A1 (de) | Digitales signalverarbeitungssystem | |
DE2339636C2 (de) | Einrichtung zur Adressierung eines schreibbaren Mikroprogrammspeichers | |
DE1275800B (de) | Steuerwerk fuer datenverarbeitende Maschinen | |
DE2756890A1 (de) | Datenverarbeitungssystem | |
WO2000005723A2 (de) | Integrierte schaltung mit einer selbsttesteinrichtung zur durchführung eines selbsttests der integrierten schaltung | |
AT396409B (de) | Mikrorechner mit verbessertem befehlszyklus | |
DE2426874A1 (de) | Verfahren und schaltungsanordnung zur bestimmung der adressenart eines befehls | |
DE19526008A1 (de) | Vertikal partitionierter, primärer Befehls-Cache-Speicher | |
DE2246863C3 (de) | Einrichtung zur Protokollierung des Programmablaufs in einer Datenverarbeitungsanlage | |
DE2064383B2 (de) | Datenverarbeitungsanlage mit mehreren zentralen Verarbeitungseinrichtungen | |
EP0010263B1 (de) | Verfahren und Schaltungsanordnung zur Erweiterung des Adressierungsvolumens einer Zentraleinheit, insbesondere eines Mikroprozessors | |
DE2617485C3 (de) | Schaltungsanordnung für Datenverarbeitungsanlagen zur Abarbeitung von Mikrobefehlsfolgen | |
DE3247256A1 (de) | Kombinationswiegemaschine | |
DE2908776C2 (de) | Schaltung zur Speicheradressierung eines Speichers in einem Datenprozessor | |
DE2720842B2 (de) | Datenübertragungssystem | |
DE2349253C3 (de) | Rechnersystem | |
DE2759120A1 (de) | Prozessor fuer datenverarbeitungssysteme | |
DE2015272A1 (de) | Programmleitwerk für eine digitale Datenverarbeitungsanlage | |
DE68927902T2 (de) | Befehlspufferspeicher für einen Mikrocomputer | |
DE3633898C2 (de) | ||
DE3843638C2 (de) | ||
DE3015876A1 (de) | Anordnung und verfahren zur einen digitalprozessor zur vorauslesung eines operationscodeteils und eines operandenteils eines befehlswortes | |
DE10065498A1 (de) | Verfahren und Vorrichtung zur Rekonstruktion des Prozessablaufs eines Steuerprogramms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EIH | Change in the person of patent owner | ||
ELJ | Ceased due to non-payment of the annual fee | ||
ELJ | Ceased due to non-payment of the annual fee |