DE3546332C2 - Mikroprozessor mit verbessertem Befehlszyklus - Google Patents
Mikroprozessor mit verbessertem BefehlszyklusInfo
- Publication number
- DE3546332C2 DE3546332C2 DE3546332A DE3546332A DE3546332C2 DE 3546332 C2 DE3546332 C2 DE 3546332C2 DE 3546332 A DE3546332 A DE 3546332A DE 3546332 A DE3546332 A DE 3546332A DE 3546332 C2 DE3546332 C2 DE 3546332C2
- Authority
- DE
- Germany
- Prior art keywords
- command
- cycle
- byte
- memory
- code
- 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
Links
- 238000000034 method Methods 0.000 description 21
- 238000012545 processing Methods 0.000 description 18
- 238000007796 conventional method Methods 0.000 description 5
- 238000003754 machining Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000004904 shortening Methods 0.000 description 2
- 101100087530 Caenorhabditis elegans rom-1 gene Proteins 0.000 description 1
- 101100305983 Mus musculus Rom1 gene Proteins 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000001960 triggered effect Effects 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
Die Erfindung betrifft einen Mikroprozessor mit verbessertem Befehlszy
klus gemäß dem Oberbegriff des Patentanspruchs.
Bei modernen Festkörper-Mikroprozessoren wird häufig eine sog.
Pipeline-Struktur verwendet, die es ermöglicht, daß
sich Bearbeitungszyklen und Befehlszyklen überlappen. Im
Bearbeitungszyklus werden Befehle aus dem Speicher be
arbeitet. Jeder Befehl besteht aus einem Operationsbefehl
(OP-Code), der in einem Festspeicher (ROM) oder einem
programmierbaren Speicher (PROM) gespeichert ist und einem
ebenfalls in einem ROM gespeicherten Operanden- oder Datenteil der auf
einen veränderlichen Wert im Random-Access-Speicher (RAM)
angewendet werden kann. Bei der herkömmlichen Pipeline-
Bauart wird das Bearbeiten des Operationsbefehls und des
Datenteils in verschiedenen Befehlsablaufzyklen durch
geführt, die nachfolgend als Befehlszyklen bezeichnet werden.
Um z. B. einen 2-Byte-Befehl, bestehend aus einem 1-Byte-
OP-Code und einem 1-Byte-Datenteil in einem 4-Bit-
Mikroprozessor zu bearbeiten, sind zwei Befehlszyklen
erforderlich. In diesem Fall benötigt daher jeder Befehls
zyklus drei Rechnertaktzyklen. Diese herkömmliche Pipeline-
Bauart benötigt daher relativ lange Betriebszeiten, um ein bestimmtes
Programm zu erledigen.
Im allgemeinen ist der Bearbeitungszyklus zur Bearbeitung
von OP-Code oder Datenteilen kürzer, als der Befehlszyklus.
Dies bedeutet, daß es während des Ausführungszyklus einen
Zeitraum gibt, in dem keine Bearbeitung erfolgt. Wenn der
nächste Befehl bereits in diesem Zeitraum abgerufen werden
könnte, ließe sich die Laufzeit verkürzen.
Der Erfindung liegt die Aufgabe zugrunde, einen Mikroprozessor mit ei
nem Betriebsverfahren der eingangs genannten Art so zu verbessern, daß
durch einen anderen Arbeitszyklus eine Verkürzung des Befehlsablaufs
erreicht wird.
Die Lösung der gestellten Aufgabe ist im kennzeichnenden Teil des Patent
anspruchs angegeben.
Ein erfindungsgemäßer Mikroprozessor ist dadurch gekennzeichnet, 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 Dekoder 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 ei
nes Maschinenzyklus ein zeitkomprimiertes Abrufen des nächsten Be
fehlsbytes auf das erste Byte erfolgt.
Der Zähler spricht auf das Takten eines jeden Abrufzyklus an, um seinen
Zählwert schrittweise zu erhöhen, und so den Zählwert mit der Adresse in
Übereinstimmung zu halten, zu der der Zugriff in jedem Abrufzyklus er
folgt.
Die Befehlsdaten bestehen aus einem OP-Code-Byte und einem Operanden- oder
Datenbyte, wobei das OP-Code-Byte unmittelbar vor
dem Beginn eines Befehlszyklus bearbeitet wird und dieser
Bearbeitungsschritt den Schritt zur Bearbeitung des dem
bearbeiteten OP-Code-Byte zugeordneten Datenbytes enthält
und während des Beginns des Befehlszyklus abläuft.
Alternativ bestehen die Befehlsdaten aus einem OP-Code-Byte
und zwei Operanden- oder Datenbytes, wobei das OP-Code-Byte unmittel
bar vor dem Beginn eines ersten Befehls bearbeitet wird,
wobei dieser Bearbeitungsschritt die Schritte zur Be
arbeitung eines ersten, dem bearbeiteten OP-Code-Byte
zugeordneten Datenbytes enthält und während des Beginns
des Befehlszyklus abläuft, sowie die Schritte zur Be
arbeitung eines zweiten, dem ersten Datenbyte zuge
ordneten Datenbyte enthält, und zwar während des ersten
Befehlszyklus, der der Bearbeitung des ersten Datenbytes
folgt.
Die Zeichnung stellt ein Ausführungsbeispiel der
Erfindung dar. Es zeigen:
Fig. 1(A) und 1(B) Ablaufdiagramme von Befehlszyklen
herkömmlicher und erfindungsgemäß vorge
schlagener Ausführung von 2-Byte-Befehlen,
Fig. 2(A) und 2(B) Ablaufdiagramme von Befehlszyklen
konventioneller und erfindungsgemäßer
Art zur Ausführung von 3-Byte-Befehlen,
Fig. 3 ein schematisches Blockschaltbild eines
erfindungsgemäßen
Mikroprozessorsystems,
Fig. 4 den Vergleich von Ablaufdiagrammen von
konventionellen und erfindungsgemäßen
Befehlsabläufen mit einem Wert des
Programmzählers während der Ausführung
von 1-Byte-Befehlen (B) und der von
2-Byte-Befehlen (C),
Fig. 5(A) und 5(B) die Dauer der Befehlszyklen zur Aus
führung von 2-Byte- und 3-Byte-Befehlen
nach dem herkömmlichen und dem erfindungs
gemäßen Verfahren und
Fig. 6(A) und 6(B) Abbildungen eines herkömmlichen
und des Befehlsdekoders bei erfindungs
gemäßer Verfahrensführung.
Die Erfindung wird anhand der nachfolgenden Beschreibung
und den Zeichnungen einer bevorzugten Ausführungsform
erläutert, die jedoch keine Beschränkung der Anmeldung
beinhalten soll, da auch andere Ausführungsbeispiele
vorliegen, die unter den Erfindungsgedanken fallen.
Bezugnehmend auf Fig. 1(A) und 1(B) wird die grundlegende
Idee des erfindungsgemäßen Verfahrens im Vergleich zu
einem herkömmlichen Verfahren beschrieben. Fig. 1(A)
zeigt ein typisches konventionelles Verfahren und Fig.
1(B) das erfindungsgemäße Verfahren. Beide Diagramme
zeigen die Ausführung eines 2-Byte-Befehls, der einen
8-Bit-Operationsbefehl (OP-Code), wie z. B. LDA, und einen
8-Bit-Operanden- oder Datenteil, der in diesem Fall ein
Adreßenteil ist, der die zugehörige RAM-Adresse angibt,
enthält. Im gezeigten Beispiel veranlaßt der Befehl, daß der
Inhalt einer bestimmten RAM-Adresse in den Speicher über
tragen oder geladen wird.
Im herkömmlichen Ablauf nach Fig. 1(A) wird der OP-Code
LDA für den zweiten Befehlszyklus bearbeitet, bevor der
erste Befehlszyklus beginnt. Im nächsten bearbeiteten
Zyklus, der mit dem Beginn des ersten Befehlszyklus zu
sammenfällt, werden die vom Datenteil in der RAM-Adresse
festgestellten Daten bearbeitet. Die im Bearbeitungs
zyklus bearbeiteten Daten, die gleichzeitig mit dem ersten
Befehlszyklus beginnen, und der OP-Code LDA, der vor dem
ersten Befehlszyklus bearbeitet wurde, werden während des
zweiten Befehlszyklus verwendet.
Beim herkömmlichen Verfahren wird ferner ein Programmzähler am
Ende jedes Befehlszyklus um eins erhöht. Zu Beginn des
Bearbeitungszyklus des OP-Codes steht der Programmzähler auf
dem Wert PC. Zu Beginn des ersten Befehlszyklus wird der
Programmzähler um eins auf den Wert PC + 1 heraufgesetzt.
Entsprechend wird der Programmzähler zu Beginn des zweiten
Befehlszyklus um 1 heraufgesetzt, so daß sein Wert dann
PC + 2 beträgt.
Im Verfahren gemaß der Erfindung nach Fig. 1(B) wird der
OP-Code für den ersten Befehlszyklus, wie im oben be
schriebenen Verfahren, vor Beginn des ersten Befehls
zyklus bearbeitet. Dieser 2-Byte-OP-Code enthält eine
Anordnung, den Bearbeitungszyklus zu kürzen. Im Zeitraum M₂
bis M₃ des ersten Befehlszyklus werden Daten in der RAM-
Adresse, die vom Daten-RAM bestimmt werden, bearbeitet. Die
Datenteile, die im Zeitraum M₂ bis M₃ des ersten Befehls
zyklus bearbeitet werden, und der OP-Code, der vor dem
ersten Befehlszyklus bearbeitet wird, werden zur Aus
führung des ersten Befehlszyklus verwendet. Beim Verfahren
gemäß der Anmeldung werden die im Zeitraum M₂ bis M₃ bear
beiteten Daten der RAM-Adresse zur Ausführung des Befehls
im ersten Befehlszyklus erst im folgenden Zeitraum M₀ bis
M₁ benötigt.
Im Verlauf des Verfahrens wird am Ende jedes Befehlszyklus
der Programmzähler um eins erhöht. Der Programmzähler wird
also bei jedem M₃-Zeittakt um eins heraufgesetzt. Mit
anderen Worten wird am Ende des Bearbeitungszyklus für
den OP-Code der Wert des Programmzählers von PC auf PC + 1
erhöht. Im Zusammenhang mit dem M₃-Takt im ersten Befehls
zyklus wird der Programmzähler um eins erhöht und der
Wert des Zählers entsprechend von PC + 1 auf PC + 2 erhöht.
Anschließend wird der Programmzähler gemäß einem M₁-
Zeittakt am Ende des ersten Befehlszyklus erneut um eins
heraufgesetzt.
Im Zeitraum M₀ bis M₁ des ersten Befehlszyklus kann der
OP-Code für den nächsten Befehlszyklus bearbeitet werden.
Man benötigt daher ersichtlicherweise nur
einen Befehlszyklus, um einen 2-Byte-Befehl gemäß dem
Verfahren nach der Erfindung auszuführen.
Die Fig. 2(A) und 2(B) zeigen ein anderes Beispiel, das
die Ausführung eines 3-Byte-Befehls betrifft. Das gezeigte
Beispiel bezieht sich auf den Aufruf eines Unterprogramms,
durch das das Steuerprogramm auf eine 2-Byte-Programm
adresse, d. h. ein HIGH-Adreßbyte PH und ein LOW-Adreß
byte PL springt. Der Befehl enthält also einen 1-Byte-
(8-Bit)-OP-Code CALL und die zwei Datenbytes PH und PL.
Beim konventionellen Verfahren nach Fig. 2(A) wird der
OP-Code für den Befehl, der im dritten Befehlszyklus
ausgeführt werden soll, vor dem Beginn des ersten Befehls
zyklus bearbeitet. Im nächsten Bearbeitungszyklus der
zeitgleich mit dem ersten Befehlszyklus abläuft, wird das
HIGH-Adreßbyte PH bearbeitet. Ähnlich wird im zweiten
Befehlszyklus das LOW-Adreßbyte PL bearbeitet. Die HIGH- und
LOW-Adreßbytes PH und PL- die in Bearbeitungszyklen
zugleich mit dem ersten und zweiten Befehlszyklus bearbeitet
werden und der OP-Code CALL, der vor dem ersten Befehlszyklus
bearbeitet wird, werden dazu benutzt, den Aufruf des Unter
programms im dritten Befehlszyklus auszuführen.
Im Verlauf des Verfahrens wird am Ende jedes Befehlszyklus
der Programmzähler um eins erhöht. Entsprechend wird am
Ende des Bearbeitungszyklus für den OP-Code der Wert
des Programmzählers von PC auf PC + 1 erhöht. Am Ende des
ersten Befehlszyklus wird der Programmzähler um eins
heraufgesetzt, und der Wert des Zählers wächst entsprechend
von PC + 1 auf PC + 2. In gleicher Weise wird der Programm
zähler am Ende des zweiten und dritten Befehlszyklus
um eins erhöht.
Im Verfahren gemäß der Erfindung nach Fig. 2(B) wird
der OP-Code CALL für den Befehl, der im zweiten Befehls
zyklus ausgeführt werden soll, vor Beginn des ersten
Befehlszyklus ausgeführt. Der OP-Code CALL enthält
eine Anordnung, die nachfolgenden Bearbeitungszyklen zu
kürzen. Im Zeitraum M₂ bis M₃ im ersten Befehlszyklus
wird das HIGH-Adreßbyte PH bearbeitet. Im Zeitraum M₀
bis M₁ im ersten Befehlszyklus wird das LOW-Adreßbyte
PL bearbeitet. Die Adreßbytes PH und PL, die im ersten
Befehlszyklus bearbeitet werden und der OP-Code CALL,
der vor dem ersten Befehlszyklus bearbeitet wird, werden
dazu benutzt, den Aufruf des Unterprogramms im zweiten
Befehlszyklus auszuführen.
Im Verlauf des Verfahrens wird am Ende jedes Befehlszyklus
der Programmzähler um eins erhöht. Der Programmzähler
wird also bei jedem M₃-Zeittakt, der mitten (auf halbem
Wege) in jeden Befehlszyklus fällt, um eins heraufge
setzt. Am Ende des Bearbeitungszyklus für den OP-Code
erhöht sich der Wert des Programmspeichers von PC auf
PC + 1. Entsprechend dem M₃-Takt im ersten Befehlszyklus
wird der Programmzähler erneut um eins erhöht und der
Wert des Programmzählers steigt demzufolge auf PC + 2.
Schließlich wird der Programmzähler gemäß dem M₁-Zeittakt
am Ende des ersten Befehlszyklus um eins erhöht und so
weiter.
Zu Beginn des zweiten Befehlszyklus kann der OP-Code für
den nächsten auszuführenden Befehl bearbeitet werden.
Man benötigt daher, wie hieraus zu bemerken ist, nur zwei
Befehlszyklen, um einen 3-Byte-Befehl gemäß dem Verfahren
der vorliegenden Anmeldung auszuführen.
Fig. 3 zeigt ein Mikroprozessorsystem, das zur Ausführung
des Verfahrens gemäß der vorliegenden Erfindung geeignet
ist. Das Ausführungsbeispiel des Mikroprozessors enthält
ein programmierbares ROM (PROM) 1, einen Pufferspeicher 2,
einen Befehlsspeicher 3, einen Befehlsdekoder 4, der z. B.
auf einer programmierbaren Logikmatrix (PLA) basiert,
einen Programmzähler 5, ein RAM-Adreß-Speicher 6 und Feld
effekttransistoren 7 bis 9.
Die Wirkungsweise des Ausführungsbeispiels des Mikro
prozessors wird nachfolgend unter Bezug auf Fig. 4 be
schrieben. Fig. 4(A) zeigt Zeittakte M₂, M₃, M₀ und M₁,
die während jedes Befehlszyklus erzeugt werden. (B)
zeigt den Zählerwert des Programmzählers 5 während der
Ausführung von logisch fortlaufenden 1-Byte-Befehlen.
(C) zeigt die Änderung des Zählerwertes im Programmzähler
5 während der Ausführung von logisch fortlaufenden 2-Byte-
Befehlen.
Der Befehlsdekoder 4 gibt ein Signal PCUP zur Erhöhung des
Programmspeichers und einige Steuersignale C₁ bis C₃, die
den Informationsfluß zwischen den Mikroprozessorelementen
1 bis 6 steuern. Die Steuersignale C₁, C₂ und C₃ werden
mit dem Zeittakt M₃, M₁ bzw. M₃ verknüpft (AND), um die
FETs 7, 8 und 9 zu steuern. Wenn die FETs 7 und 8
leitend sind, lassen sie Daten, entweder Datenteile oder
OP-Codes, vom PROM 1 zum Pufferspeicher 2 oder zum
Befehlsspeicher 3 gelangen. Wenn FET 9 leitend ist,
läßt er den Datenteil aus dem Pufferspeicher 2 in den
Datenbus gelangen, von wo der Datenteil in den RAM-Adreß-
Speicher 6 als Menge, als Speichergröße oder als ähnlicher
Befehl oder in den Programmzähler 5 zum Aufruf von Unter
programmen usw. geladen werden kann.
Wenn ein OP-Code eine Anordnung zur beschleunigten
Bearbeitung des Datenteils enthält, gibt der Befehls
dekoder 4 sowohl einen PCUP-Impuls, als auch C₂- und
C₃-Impulse, die es ermöglichen, daß der Datenteil in und aus
dem Pufferspeicher 2 nach Maßgabe des nächsten M₁-Zeittaktes
geladen wird, und erhöht den Programmzähler, um zum
nächsten OP-Code zu gelangen.
Im Beispiel nach Fig. 4(B) wird ein 1-Byte-Befehl in einem
einzelnen Befehlszyklus ausgeführt. Die Bearbeitung der
Befehle in PROM 1 wird von der abfallenden Flanke des M₁-
Zeittaktimpulses getriggert, wenn die C₁-Ausgangsgröße
vom Befehlsdekoder 4 vorliegt. Zur gleichen Zeit wird
der Programmspeicher 5 gemäß dem PCUP-Signal um eins
erhöht. Der bearbeitete Befehl (OP-Code) wird in das
Befehlsregister 3 eingelesen und danach zum Befehlsdekoder
4 geleitet. Der Befehlsdekoder 4 entschlüsselt den über
mittelten Befehl und gibt geeignete Signale C₁, C₂, C₃
aus.
Die abfallende Flanke des M₁-Zeittaktimpulses bestimmt den
Beginn des Befehlszyklus, in welchem der Befehl des
vorangegangenen Befehlszyklus ausgeführt wird. Gleich
zeitig mit der Ausführung des Befehls des vorangegangenen
Zyklus wird der nächste 1-Byte-Befehl während des
laufenden Befehlszyklus bearbeitet. Die PROM-Adresse, die
den Befehl erhalten soll, wird durch den Zählerwert
(PC, PC + 1, PC + 2) dargestellt, der bei jeder ab
fallenden Flanke des M₁-Taktimpulses durch das PCUP-Signal
um eins erhöht wird.
Während der Ausführung von 1-Byte-Befehlen bleiben die Aus
gänge C₂ und C₃ des Befehlsdekoders inaktiv, wenn keine
Forderungen nach beschleunigter Behandlung des Datenteils
vorliegen. Demzufolge bleiben die FETs 8 und 9 nichtleitend.
Wenn in dieser Zeit das PCUP-Signal des Befehlsdekoders 4
nicht mitten im Befehlszyklus abgegeben wird, wird der
Programmzähler 5 nur von der abfallenden Flanke des M₁-
Taktimpulses heraufgesetzt.
Wenn, wie in Fig. 4(C) dargestellt ist, die 2-Byte-Befehle,
die aus einem 1-Byte-OP-Code und einem 1-Byte-Datenteil
bestehen, ausgeführt werden sollen, werden die C₂- und
C₃-Impulse vom Befehlsdekoder 4 ausgegeben, wenn der OP-
Code des Befehls, der auf die abfallende Flanke des M₁-
Taktimpulses folgt, bearbeitet ist. Die Ausgänge C₂
und C₃ machen die FETs 8 und 9 leitend, so daß der
Datenteil aus ROM 1 in den Pufferspeicher 2, den Programm
zähler 5 und/oder den RAM-Adreß-Speicher 6 geladen wird.
Bei der abfallenden Flanke des M₃-Taktimpulses wird der
Programmzähler 5 gemäß dem PCUP-Signal des Befehlsde
koders 4 um eins erhöht. Zur gleichen Zeit werden z. B.
die Daten aus dem RAM-Adreß-Speicher 6 ausgelesen und zur
Ausführung des Befehls im Zeitraum M₀ bis M₁ verwendet.
Im Zeitraum M₀ bis M₁ wird der nächste Befehl vom PROM
bearbeitet. Da in diesem Fall der Programmzähler 5 durch
PCUP gemäß der abfallenden Flanke des M₃-Taktimpulses
erhöht wird, wird die PROM-Adresse, die durch den Wert
des Zählers vertreten wird, mit der Adresse des OP-Codes
für den nächsten Befehl übereinstimmen.
Um eine Kürzung des Bearbeitungszyklus nach dem erfindungs
gemäßen Verfahren zu ermöglichen, ist es nötig, daß
die zweiten und/oder dritten Datenbytes keine OP-Code-
Komponenten, sondern nur Datenteile, wie Daten oder
Adressen, enthalten. Da in den meisten 4-Bit-Mikro
prozessoren die Befehle nur einen 1-Byte-OP-Code und einen
oder mehrere Daten-Bytes enthalten, ist das Verfahren für
die meisten Mikroprozessoren dieses Typs anwendbar.
Wie die Diagramme der Fig. 5(A) und 5(B) für das erfindungsgemäße
Verfahren zeigen, können 2-Byte-Befehle, die üblicher
weise zwei Befehlszyklen zur Ausführung erfordern, in einem
einzigen Befehlszyklus in einer Pipeline-Struktur ausgeführt
werden. Genau so können 3-Byte-Befehle, die üblicherweise
drei Befehlszyklen zur Ausführung erfordern, in zwei Befehls
zyklen ausgeführt werden. Bei Anwendung des Verfahrens gemäß
der Erfindung wird also die Betriebsablaufzeit erheblich
verkürzt.
Außerdem zeigen Fig. 6(A) und 6(B) als Diagramm die Flächen,
die für den Befehlsdekoder herkömmlicher Art und für das
System gemäß der Erfindung erforderlich sind, wobei (A)
ein konventionelles System und (B) das gemäß der Erfindung
zeigen. Die vertikalen Linien in Fig. 6(A) und 6(B) stellen
Auswahlzeilen von UND-Elementen und die horizontalen
Linien Auswahlzeilen von ODER-Elementen dar. m₁ stellt das
Auswahlsignal für Maschinenstatus 1, m₂ den Auswahleingang
für Maschinenstatus 2 und m₃ den Auswahleingang für
Maschinenstatus 3 dar.
Wie aus Fig. 6 (A) und 6 (B) zu entnehmen ist, sind beim
konventionellen System drei Maschinenzustände erforderlich,
um einen 3-Byte-Befehl mit drei Befehlszyklen auszuführen.
Beim Verfahren gemäß der Erfindung sind dagegen nur zwei
Befehlszyklen nötig, um 3-Byte-Befehle auszuführen.
Folglich sind auch nur zwei Maschinenzustände des Befehls
dekoders erforderlich, um 3-Byte-Befehle zu bearbeiten.
Die ODER-Element-Auswahlzeile, die zum Steuern einer
Signalzeile für Maschinenstatus 3 dient, wird daher über
flüssig. Das führt zu einer bemerkenswerten Verkürzung
der UND-Element-Auswahlzeilen und erlaubt eine entsprechende
Verkleinerung der Abmessungen des Befehlsdekoders.
Wie nochmals erwähnt sei, wurde die spezielle Anordnung
und eine bevorzugte Ausführungsform eines Mikroprozessors
hier nur mitgeteilt, um das der Erfindung zugrundeliegende
Prinzip besser verständlich zu machen. Andere Ausführungs
formen von Mikroprozessoren, die sich für das erfindungs
gemäße Verfahren eignen, lassen sich in dem dargelegten
Rahmen angeben.
Claims (1)
- Mikroprozessor mit verbessertem Befehlszyklus, mit einem Speicher (1), 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 (5), der einen er sten Eingang für den Empfang einer vorbestimmten Folge von einen Ma schinenzyklus bestimmenden Taktimpulsen sowie einen zweiten Eingang aufweist und der an seinem Ausgang sequentiell jeweils eine der Speicher adressen für das Auslesen der Befehlsbytes abgibt, dadurch gekenn zeichnet, daß mit dem Speicher (1) und dem Zähler (5) ein Dekoder (4) ver bunden 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 Deko der (4) anzeigt, daß der Befehl eine Mehrzahl von Operandenbytes aufweist, wobei der Zähler (5) unter Steuerung durch eines der Steuersignale um einen Zählerstand vorwärts zählt und innerhalb eines Maschinenzyklus ein zeitkomprimier tes Abrufen des auf das erste Byte folgenden nächsten Befehlsbytes erfolgt.
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 |
---|---|
DE3546332A1 DE3546332A1 (de) | 1986-07-10 |
DE3546332C2 true DE3546332C2 (de) | 1995-09-21 |
Family
ID=17575063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3546332A Expired - Fee Related DE3546332C2 (de) | 1984-12-29 | 1985-12-30 | Mikroprozessor 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 |
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 |
GB2230116B (en) * | 1989-04-07 | 1993-02-17 | Intel Corp | An improvement for pipelined decoding of instructions in a pipelined processor |
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 |
Family Cites Families (23)
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 |
US3771138A (en) * | 1971-08-31 | 1973-11-06 | Ibm | Apparatus and method for serializing instructions from two independent instruction streams |
BE789583A (fr) * | 1971-10-01 | 1973-02-01 | Sanders Associates Inc | Appareil de controle de programme pour machine de traitement del'information |
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 |
US4363091A (en) * | 1978-01-31 | 1982-12-07 | Intel Corporation | Extended address, single and multiple bit microprocessor |
US4462073A (en) * | 1978-11-08 | 1984-07-24 | Data General Corporation | Apparatus for fetching and decoding instructions |
CA1134952A (en) * | 1979-04-24 | 1982-11-02 | Thomas E. Kloos | Means and method within a digital processing system for prefetching both operation codes and operands |
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 | メモリ制御装置 |
JPS58149541A (ja) * | 1982-03-01 | 1983-09-05 | Hitachi 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 |
US4613935A (en) * | 1983-02-02 | 1986-09-23 | Couleur John F | Method and apparatus for pipe line processing with a single arithmetic logic 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
Also Published As
Publication number | Publication date |
---|---|
AU582408B2 (en) | 1989-03-23 |
NL193474B (nl) | 1999-07-01 |
FR2575563B1 (fr) | 1990-12-07 |
GB2169115A (en) | 1986-07-02 |
KR930009754B1 (ko) | 1993-10-09 |
KR860005297A (ko) | 1986-07-21 |
JPS61157946A (ja) | 1986-07-17 |
AU5147785A (en) | 1986-07-03 |
IT8548990A0 (it) | 1985-12-27 |
CN85109719A (zh) | 1986-07-02 |
CA1242802A (en) | 1988-10-04 |
IT1208731B (it) | 1989-07-10 |
AT396409B (de) | 1993-09-27 |
US5630085A (en) | 1997-05-13 |
FR2575563A1 (fr) | 1986-07-04 |
US6484252B1 (en) | 2002-11-19 |
GB2169115B (en) | 1989-01-11 |
CN1024960C (zh) | 1994-06-08 |
ATA376385A (de) | 1992-12-15 |
DE3546332A1 (de) | 1986-07-10 |
NL8503516A (nl) | 1986-07-16 |
JPH0776917B2 (ja) | 1995-08-16 |
NL193474C (nl) | 1999-11-02 |
US5621907A (en) | 1997-04-15 |
GB8531800D0 (en) | 1986-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2457612C3 (de) | Mikroprogrammier-Steuereinrichtung | |
DE4410775C2 (de) | Steuergerät und Arbeitsverfahren eines Betriebssystems für dieses Steuergerät | |
DE3732808A1 (de) | Verfahren und vorrichtung zum erzeugen und bearbeiten von unterbrechungspunkten in einem monitorprogramm | |
DE1275800B (de) | Steuerwerk fuer datenverarbeitende Maschinen | |
DE2812242C2 (de) | Verfahren zur Ablaufsteuerung | |
DE3546332C2 (de) | Mikroprozessor mit verbessertem Befehlszyklus | |
DE2944757C2 (de) | Programmierbare Prozeßsteuerung | |
DE2750344A1 (de) | Verfahren und vorrichtung zum gleichzeitigen betaetigen irgendeiner anzahl einer mehrzahl von vorrichtungen | |
DE2246863C3 (de) | Einrichtung zur Protokollierung des Programmablaufs in einer Datenverarbeitungsanlage | |
DE2617485A1 (de) | Verfahren und schaltungsanordnung zur abarbeitung von mikrobefehlsfolgen in datenverarbeitungsanlagen | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
EP0566942B1 (de) | Verfahren zur Reduzierung von Störsignalen die durch digitale Signalprozessoren verursacht werden | |
DE2418921A1 (de) | Vorrichtung und verfahren zum speichern und ausfuehren von mikroprogrammen in einem datenverarbeitungssystem | |
DE10065498A1 (de) | Verfahren und Vorrichtung zur Rekonstruktion des Prozessablaufs eines Steuerprogramms | |
DE3633898A1 (de) | Einrichtung zur folgesteuerung eines aeusseren kreises, beispielsweise eines pipelineprozessors | |
DE2606295C3 (de) | Anordnung zur Übertragung von Zeichen zwischen über einen Multiplexkanal ansteuerbaren peripheren Einheiten und einem Arbeitsspeicher eines Zentralprozessors | |
DE2419836C3 (de) | Schaltungsanordnung zur Durchführung von Unterprogramm-Sprungbefehlen in Datenverarbeitungsanlagen | |
DE69022183T2 (de) | Takterzeuger für seriellen Bus. | |
EP0612421B1 (de) | Speicherprogrammierbare steuerung | |
DE2216533C3 (de) | Anordnung zur Steuerung der Durchführung mehrerer Aufgaben in einer DTENVERARBEITUNGSANLAGE | |
EP1091290B1 (de) | Prozessorsystem mit Speicher- oder Ladebebefehl mit Trenninformation | |
DE1549582B1 (de) | Anordnung zur bestimmung der niedrigstwertigen bit position | |
CH663807A5 (de) | Mikrorechnersteuereinheit fuer den stellantrieb einer strickmaschine. | |
EP0326803B1 (de) | Anordnung zur Erweiterung eines Befehlsspeicherbereichs | |
DE2007401C (de) | Pufferspeicher zum Verzogern der Adressierung bei einer programmgesteuer ten Fernmeldeanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Free format text: PATENTANWAELTE MUELLER & HOFFMANN, 81667 MUENCHEN |
|
8339 | Ceased/non-payment of the annual fee |