DE3852708T2 - Verfahren und Apparat zum Überspringen mittels Abbildung einer Einsprungstelle. - Google Patents

Verfahren und Apparat zum Überspringen mittels Abbildung einer Einsprungstelle.

Info

Publication number
DE3852708T2
DE3852708T2 DE19883852708 DE3852708T DE3852708T2 DE 3852708 T2 DE3852708 T2 DE 3852708T2 DE 19883852708 DE19883852708 DE 19883852708 DE 3852708 T DE3852708 T DE 3852708T DE 3852708 T2 DE3852708 T2 DE 3852708T2
Authority
DE
Germany
Prior art keywords
address
incrementing
microcode
memory
macroinstruction
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
DE19883852708
Other languages
English (en)
Other versions
DE3852708D1 (de
Inventor
Peter L Fu
Daniel E Lenoski
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.)
Tandem Computers Inc
Original Assignee
Tandem Computers Inc
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 Tandem Computers Inc filed Critical Tandem Computers Inc
Publication of DE3852708D1 publication Critical patent/DE3852708D1/de
Application granted granted Critical
Publication of DE3852708T2 publication Critical patent/DE3852708T2/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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/261Microinstruction address formation
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • 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

    TECHNISCHER HINTERGRUND
  • Die vorliegende Erfindung betrifft Verfahren und eine Vorrichtung zum Abbilden eines Makrobefehls in einen Mikrobefehlsspeicher.
  • Viele Computer führen heute Befehle durch Speichern einer Anzahl von Mikrokodebefehlen für jeden Makrobefehl in einem Mikrokodespeicher aus. Die Mikrokodebefehle werden dann für den speziellen Makrobefehl ausgeführt, um den Makrobefehl durchzuführen. Ein typisches Verfahren ist in Fig. 1 gezeigt, wobei ein Makrobefehl in ein Operationskode-Befehlsregister 10 gesetzt ist. Der Befehl im Register 10 wird dann durch eine Abbildungsschaltung 12 dekodiert, um eine Adresse zu erzeugen, die einem Mikrokodespeicher 14 bereitgestellt wird. Diese Adresse wird die Adresse des ersten Mikrobefehls in einer Reihe von Mikrobefehlen sein, um den speziellen Makrobefehl durchzuführen. Die verbleibenden Mikrobefehle werden durch Inkrementieren der ersten Mikrobefehlsadresse 16 um eins erhalten, nachdem der Mikrobefehl ausgeführt ist, um nachfolgende Mikrobefehle 18, 20 und 22 für den Makrobefehl zu erzeugen. Ein Beispiel dieses typischen bekannten Verfahrens ist auf den Seiten 61 bis 62 des Artikels in Microprocessors and Microsystems, Vol. 4, Nr. 2, März 1980, Seiten 57-62, angegeben.
  • Bei einer Ausführung ist jedem Makrobefehl eine feste Anzahl von Mikrobefehlen zugeordnet. Wenn diese feste Anzahl zum Beispiel vier ist, dann muß jeder Makrobefehl, der mehr als vier Mikrobefehle erfordert, einen Sprung zu einem separaten Bereich des Mikrokodespeichers 14 im letzten Mikrobefehl enthalten. Ein Sprung ist unerwünscht, da er zusätzliche Anforderungen an den Mikrokode hinsichtlich Zeit oder Platz stellt. Um einen Sprung auszuführen, muß eine Sprungadresse spezifiziert werden, und dies erfordert Platz. Zusätzlich kann ein anderer Taktzyklus für einen Sprung erforderlich sein. Um das Erfordernis eines Sprungs zu vermeiden, kann genügend Platz zugewiesen sein, um den größten Makrobefehl unterzubringen, jedoch führt dies zu einer großen Anzahl von verschwendeten Speicherplätzen für Makrobefehle, die weniger als die maximale Anzahl von Mikrobefehlen erfordern. Alternativ könnte der Mikrokodespeicher in Gruppen unterschiedlicher fester Größen unterteilt sein, wobei die Größen um ein Vielfaches von zwei variieren (d.h., Gruppen von vier, acht, sechzehn, etc.). Somit könnte ein kurzer Makrobefehl den Mikrokodeadressen 16 bis 22 zugeordnet sein, während einem längerer Makrobefehl acht Mikrokodespeicheradressen zugeordnet sein können, beginnend an der Stelle 23, wie in Fig. 1 gezeigt ist. Anzahlen von Mikrokodeadressen, die kein Vielfaches von zwei sind, können nicht ohne das Erfordernis einer zusätzlichen Schaltung für die Abbildungsschaltung 12 untergebracht werden. Eine Ausführung eines Vielfachen von zwei kann einfach durch Auslöschen unerwünschter Bits vorgenommen werden, um eine höhere Anzahl zu erhalten.
  • Die Abbildungsschaltung 12 könnte implementiert sein, um einen speziellen Befehlssatz unterzubringen, so daß die Anzahl von Mikrobefehlsadressen variiert, die einem speziellen Makrobefehl zugeordnet sind. Dies würde erfordern, daß entweder der Befehlssatz zu der Zeit festgelegt ist, zu der die Abbildung festgelegt wird, oder daß die Abbildungsschaltung selbst programmierbar ist.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Die vorliegende Erfindung verwendet eine feste Einsprungstellenabbildung, um eine Einsprungstellenadresse eines ersten Mikrobefehls für einen speziellen Makrobefehl zu erzeugen. Diese Adresse wird dann um eine feste Zahl, wie 512, inkrementiert, um die zweiten, dritten, etc. Mikrobefehle für diesen Makrobefehl zu erzeugen. Nach einer festen Anzahl dieser 512-Adressen- Sprünge, wie z.B. 6, werden die Adressen um 1 inkrementiert, so daß nachfolgende Mikrobefehle an benachbarten Adressenstellen sind.
  • Die Bestimmung, ob die Adresse um 512 oder um 1 zu inkrementieren ist, wird durch eine Dekodierschaltung ausgeführt, die einfach die gegebene Adresse betrachtet, um zu bestimmen, ob sie im Sprungbereich des Mikrokodespeichers oder dem nachfolgenden Inkrementierungsbereich ist. Die vorliegende Erfindung schafft somit eine Flexibilität der Mikrobefehlsadressierung mit minimalen zusätzlichen Schaltungen. Zusätzlich gestattet es das Verfahren der vorliegenden Erfindung, daß der Einsprungadressenbelegungsplan fest ist und es somit für ihn keine Notwendigkeit gibt, daß er programmierbar ist.
  • Die Makrobefehle sind so angeordnet, daß jeder Makrobefehl, der mehr als sechs Mikrobefehle erfordert, von einem oder mehreren Makrobefehlen gefolgt wird, der bzw. die sechs oder weniger Mikrobefehle erfordert/-n. Wenn der erste Makrobefehl das Ausführen von Mikrobefehlen in dem Speicherbereich mit der Inkrementierung um eins beginnt, werden diese Speicheradressen somit verfügbar sein, da die nächsten folgenden Makrobefehle sich nicht so weit erstrecken.
  • Wechselweise kann ein variabler Sprungbereich verwendet werden, um mehr Flexibilität zu erzeugen. Diese Flexibilität ermöglicht es den Sprungbereichen, bestimmt zu werden, wenn der Kode geschrieben wird, war somit die Optimierung des Speicherplatzes ermöglicht. Eine variable Sprungbereichsimplementierung erfordert ein geringfügig komplexeres Verfahren zum Bestimmen, ob die Adresse ein Inkrement von eins oder ein Sprunginkrement nach dem Rückkehren von Unterroutineaufrufen sein soll, da es nicht einfach von der festen Adresse abhängt.
  • Für ein vollständigeres Verständnis der Eigenart und der Vorteile der Erfindung soll auf die nachfolgende genaue Beschreibung Bezug genommen werden, die zusammen mit den begleitenden Zeichnungen herangezogen wird.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist ein Diagramm eines Mikrokode-Speicherbelegungsplanschemas nach dem Stand der Technik,
  • Fig. 2 ist ein Blockdiagramm einer bekannten Mikrokodeadressierschaltung,
  • Fig. 3 ist ein Diagramm eines Mikrokode-Belegungsplanschemas gemäß der vorliegenden Erfindung, und
  • Fig. 4 ist ein Blockdiagramm eines Mikrokodeaddressierungsschemas gemäß der vorliegenden Erfindung.
  • GENAUE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Fig. 2 zeigt eine Art einer Implementierung einer Mikrokodeadressenerzeugung nach dem Stand der Technik, die das Verständnis der vorliegenden Erfindung unterstützt. Ein Operationskoderegister 24 speichert einen Makrobefehl, der durch eine Abbildungsschaltung 26 dekodiert wird, um dem Zielregister 28 eine Mikrokodespeicheradresse bereitzustellen. Die Abbildungsschaltung 26 wird als ein programmierbarer Lesespeicher (PROM) gezeigt, kann jedoch andere Formen annehmen. Das Zielregister 28 empfängt die Anfangsadresse von der Abbildungsschaltung 26 durch einen Multiplexer 27 und stellt sie durch einen Multiplexer 30 dem Mikrokodespeicher 32 bereit. Der Mikrobefehl an dieser Adresse wird dem Mikrokoderegister 38 zugeführt. Die Adresse wird dann durch eine a+1-Inkrementiereinrichtung 34 inkrementiert, welche dann einem Mikroprogramm-Zählerregister 36 zugeführt wird. Diese inkrementierte Adresse wird durch den Multiplexer 30 zum Speicher 32 zurückgeführt, um dem Mikroregister 38 den nächsten Mikrobefehl zuzuführen. Diese Art der Inkrementierung geht weiter, bis ein Sprung oder ein anderer Befehl kommt, der durch die Dekodierungslogikeinrichtung 40 detektiert wird. Typischerweise wird ein Sprung durch Bereitstellen einer Sprungadresse vom Mikrokoderegister 38 zum Multiplexer 27 ausgeführt. Ein Auswahlsignal 37 wird vom Mikrokoderegister 38 bereitgestellt, um vom Mikrokoderegister 38 die Mikrokodesprungadresse auszuwählen, die dann dem Zielregister 28 zugeführt wird. In den Steuerregistern 39 wird/werden ein Steuerbit oder -bits gespeichert, das bzw. die dann durch die Dekodierlogikeinrichtung 40 dekodiert wird/werden. Die Dekodierlogikeinrichtung 40 liefert dann ein Auswahlsignal an den Multiplexer 30, um gegenüberstellend der Inkrementierungsadresse vom M ikroprogramm-Zählerregister 36 eine Sprungadresse im Zielregister 28 auszuwählen. Am Ende eines Mikrobefehls wird ein Befehlsverteilungssprung ausgeführt, in dem das Auswahlsignal 37 vom Multiplexer 27 die nächste Befehlsadresse von der Abbildungsschaltung 26 auswählt und dann ein neuer Befehl ausgeführt wird.
  • Fig. 3 ist ein Diagramm eines Mikrokode-Speicherbelegungsplanschemas gemäß der vorliegenden Erfindung. Ein Operationskoderegister 42 ist vorgesehen, um einen Makrobefehl zu halten. Ein fester Belegungsplan 44 dekodiert den Makrobefehl, um für einen Mikrokodespeicher 46 eine Adresse zu erzeugen. Die erste bereitgestellte Adresse ist eine Einsprungstellenadresse 48 in einem Eingangsblock 50. Der nächste Mikrobefehl wird durch Inkrementieren der Adresse 48 um eine feste Zahl gefunden, um eine zweite Adresse 52 zu erzeugen. Diese Adresse wird dann um dieselbe Zahl inkrementiert, um eine dritte Adresse 54 zu erzeugen. Diese Adressen sind in einem Sprungbereich 56 angeordnet, der bei einer Ausführungsform sechs Sprünge für jeden Makrobefehl enthält (nur drei sind in Fig. 3 gezeigt). Nach den sechs Sprüngen wird eine Adresse 58 um eins erhöht, um nacheinander Adressen 60 und 62 in einem Überlaufbereich 64 zu erzeugen.
  • Dieses Abbildungsschema schafft Flexibilität für die Abbildung von Makrobefehlen mit unterschiedlichen Anzahlen von Mikrobefehlen. Wenn zum Beispiel die Einsprungstellenadresse 48 die Adresse 212 ist und die Makrobefehle mit Einsprungstellenadressen 213 und 214 weniger als sechs Mikrobefehle lang sind, werden die Adressenstellen 60 und 62 leer sein, was es dem an der Adresse 48 startenden Makrobefehl gestattet, acht Mikrobefehle zu haben. Durch geeignete Anordnung der Startadresse jedes Makrobefehls können die Befehle durch geeignetes Programmieren des Mikrokodes so abgebildet oder belegt werden, um optimalen Gebrauch vom Speicher zu machen, während gleichzeitig ein einfacher fester Belegungsplan 44 zugelassen ist, und zwar wegen der festen Einsprungstellenadresse für jeden Makrobefehl. Die Verwendung einer festen Einsprungstelle erlaubt die Verwendung einer kleineren, schnelleren Logikeinrichtung. Die Logikeinrichtung ist schnell, da eine geringere Logikeinrichtung als ein RAM oder PROM erforderlich ist. Da die Logikeinrichtung einem speziellen Zweck dient, nimmt sie zusätzlich weniger Platz als ein RAM oder PROM ein, was insbesondere wichtig ist, wenn die Schaltung in einer integrierten Schaltung eingesetzt ist.
  • Ein Blockdiagramm einer Schaltung zum Durchführen des Abbildungsschemas von Fig. 3 ist in Fig. 4 gezeigt. Das Blockdiagramm von Fig. 4 folgt dem grundsätzlichen Aufbau von dem von Fig. 2. Jedoch wird anstelle der Verwendung einer a+1-Inkrementiereinrichtung 34, wie in Fig. 2, eine variable Inkrementiereinrichtung 66 mit einer Speicherbereich-Dekodierschaltung 68 verwendet. Die variable Inkrementiereinrichtung 66 enthält eine a+ 1-Inkrementiereinrichtung 70 und eine a+512-Inkrementiereinrichtung 72 sowie einen Multiplexer 74. Im Betrieb wird die dem Mikrokode-RAM 32 zugeführte Adresse von der Inkrementiereinrichtung 72 um 512 erhöht, wobei die neue Adresse durch den Multiplexer 74 zum Mikrokode-Programmzählerregister 36 geführt wird. Dieser Prozeß geht weiter, bis die Speicherbereich-Dekodierschaltung 68 detektiert, daß die Adresse dem Überlaufbereich 64 von Fig. 3 entspricht. An dieser Stelle liefert die Dekodierschaltung 68 ein Auswahlsignal an den Multiplexer 74, um die Ausgabe der +1-Inkrementiereinrichtung 70 auszuwählen. Entsprechend wird anschließend die Adresse zum Mikrokode-RAM 32 um eins erhöht, wie in Fig. 3 gezeigt ist.
  • Obwohl zum Zwecke des Verständnisses die variable Inkrementiereinrichtung 66 als ein Paar von Inkrementiereinrichtungen und ein Multiplexer gezeigt ist, kann sie durch einen einzelnen Zähler realisiert sein, der Mehrfach-Trägerbiteingaben zuläßt. Die Bereichsdekodierschaltung 68 kann einfach eine Stelle des Trägerbits auswählen, um das Inkrement zu variieren. Die Dekodierschaltung 68 braucht nur die oberen Bits der Adresse zu betrachten, um zu bestimmten, ob sie im Überlaufbereich 64 ist.
  • Obwohl ein 512-Inkrement, das sechsmal wiederholt wird, gezeigt ist, kann jegliche andere Anzahl verwendet werden. Fig. 3 zeigt tatsächlich drei Sprünge im Sprungbereich, obwohl jegliche andere Anzahl verwendet werden könnte.
  • Bei einer wechselweisen Ausführungsform kann der Sprungbereich von Fig. 3 von variabler Länge sein. Dies schafft eine zusätzliche Flexibilität, wenn der Mikrokode programmiert wird. Wenn eine Anzahl von Befehlen, von denen jeder nur wenig Adressenstellen benötigt, wie jeweils drei, miteinander gruppiert werden, dann ist zum Beispiel ein Speicherblock in dem Abschnitt, der normalerweise der vierten Adressenstelle für jeden Befehl entsprechen würde, für andere Verwendungen freigestellt.
  • Bei einer Ausführung eines variablen Sprungbereichs wird das Springen ausgeführt, bis ein Sprung oder eine Verzweigung in dem Programm auftritt. In diesem Fall wird nach einer Rückkehr vom Sprung oder von der Verzweigung die Sprung-lnkrementiereinrichtung nicht länger verwendet, und die + 1-Inkrementiereinrichtung wird verwendet. Wie in Fig. 4 gezeigt ist, kann ein Extrabit an einer gestrichelt am Mikro-PC-Register 36 angebrachten Position gespeichert werden. Eine Steuerleitung von der Bit-Position 41 zum Multiplexer 74 ist vorgesehen. Diese Steuerleitung ersetzt die Auswahlleitung von der Bereichsdekodierschaltung 68, die bei dieser Ausführung nicht verwendet werden würde. Nach einer Verzweigung wird ein Bit in Position 41 gespeichert, und nach der Rückkehr von der Verzweigung wählt dieses Bit die Inkrementiereinrichtung 70 durch das geeignete Steuersignal an den Multiplexer 74 aus. Typischerweise wird die Verzweigungsadresse in einem Rückkehrstapel (nicht gezeigt) gespeichert. Das Extrabit ist in dem Rückkehradressenstapel so positioniert, daß, wenn die Adresse dem Mikro-PC-Register 36 zugeführt wird, dieses Bit in Position 41 ist. Die Eingabe zur Bit-Position 41 wird durch eine Steuersignalleitung 37 geschaffen, die gestrichelt gezeigt ist. Das Läden dieses Bits in den Mikro-PC-Register 36 wird durch ein Ladesteuersignal vom Steuerregister 39 (gestrichelt gezeigt) erledigt.
  • Die variable Sprung-Ausführungsform gestattet somit eine Variation in der Anzahl von Adressenstellen pro Befehl, während weiterhin das feste Einsprungstellen-Beleg ungsplansystem aufrechterhalten wird. Diese Flexibilität erlaubt die Durchführung von Änderungen am Mikrokode, so, wie es durch Einstellen des Sprungbereichs komplizierter oder einfacher wird. Zusätzlich können Bereiche, die untereinander kein Vielfaches von zwei sind, verwendet werden, da die Bestimmung der Bereichslänge durch das Positionieren des Sprungbefehls ausgeführt wird, und nicht durch das Hinzufügen von Schaltungen zur Abbildungsschaltung.
  • Wie vom Fachmann verstanden wird, kann die vorliegende Erfindung in anderen spezifischen Formen ausgeführt werden, ohne ihren Umfang oder ihre wesentlichen Kennzeichen zu verlassen. Zum Beispiel könnte anstelle der Verwendung einer Dekodierschaltung zum Bestimmen, ob die Adresse in dem Sprung bereich oder dem Überlaufbereich ist, ein Zähler verwendet werden, um die Anzahl von Sprunginkrementen durch die Inkrementiereinrichtung 72 zu zählen. Der variable Sprungbereich könnte ebenfalls auf unterschiedliche Weisen implementiert werden, wie durch Verwendung eines Bits im Mikrokodebefehl, so daß der Sprungbereich nicht von Sprüngen abhängt. Entsprechend ist die Offenbarung der bevorzugten Ausführungsformen der Erfindung als Erläuterung und nicht als Begrenzung des Umfangs der Erfindung gedacht, die in den folgenden Ansprüchen angegeben ist.

Claims (19)

1. Verfahren zum Implementieren eines Makrobefehls durch Adressieren einer Reihe von Mikrocodebefehlen in einem Speicher, enthaltend die Schritte:
a) Bereitstellen einer Einsprungstellenadresse des Speichers in Abhängigkeit von dem Makrobefehl,
b) Inkrementieren der Einsprungstellenadresse um eine erste vorgegebene Zahl, um eine Adresse eines nächsten Mikrocodebefehls in dem Speicher bereitzustellen,
c) Wiederholen des Schrittes b) eine zweite Anzahl mal, um nachfolgende Mikrocodebefehle zu erzeugen,
d) Inkrementieren der Mikrocodebefehlsadresse um eins nach dem Inkrementieren der Adresse eine zweite Anzahl mal,
e) Wiederholen des Schritte d) für eine verbleibende Zahl von Mikrocodebefehlen für den Makrobefehl.
2. Verfahren nach Anspruch 1, wobei die zweite Anzahl fest ist.
3. Verfahren nach Anspruch 2, ferner enthaltend die Schritte des Inkrementierens der Mikrocodebefehlsadresse um eins während Sprüngen, wobei das Inkrementieren während Sprüngen von der zweiten Anzahl ausgenommen ist.
4. Verfahren nach Anspruch 2, wobei die erste vorgegebene Zahl 512 ist.
5. Verfahren nach Anspruch 2, wobei die zweite vorgegebene Anzahl fünf ist.
6. Verfahren nach Anspruch 2, ferner enthaltend den Schritt des Einrichtens der Einsprungstellenadresse für eine Mehrzahl von Makrobefehlen, derart, daß einem Makrobefehl mit einer dritten Anzahl von Mikrocodebefehlen, die größer als die zweite Anzahl plus eins ist, die dritte Zahl von Makrobefehlen mit einer Anzahl von Mikrocodebefehlen folgt, die kleiner oder gleich der zweiten Anzahl plus eins ist.
7. Verfahren nach Anspruch 1, wobei die zweite Anzahl variabel ist.
8. Verfahren nach Anspruch 7, wobei die zweite Anzahl eine Anzahl von Mikrocodebefehlen bis zu einem ersten Sprung ist.
9. Vorrichtung zum lmplementieren einer Makrobefehl durch Adressieren einer Reihe von Mikrocodebefehlen in einem Speicher, enthaltend:
einen Befehlsregister zum Halten des Makrobefehls, auf den Makrobefehl ansprechende Einrichtungen zum Bereitstellen einer Einsprungstellenadresse des Speichers,
erste Einrichtungen zum Inkrementieren der Adresse um eine erste vorgegebene Zahl,
zweite Einrichtungen zum Inkrementieren der Adresse um eins, und Einrichtungen zum Koppeln eines Ausgangs der ersten Inkrementiereinrichtungen an den Speicher eine zweite Anzahl von Inkrementen der Adresse mal und zum anschließenden Koppeln der zweiten Inkrementiereinrichtungen an den Speicher.
10.Vorrichtung nach Anspruch 9. wobei die zweite Anzahl fest ist.
11. Vorrichtung nach Anspruch 10, wobei die Einrichtungen zum Bereitstellen einer Einsprungstellenadresse permanent fixiert sind.
12. Vorrichtung nach Anspruch 10, wobei die erste Zahl 512 ist.
13. Vorrichtung nach Anspruch 10, wobei die zweite Anzahl sechs ist.
14. Vorrichtung nach Anspruch 10, wobei die ersten und zweiten Inkrementiereinrichtungen einen einzelnen Zähler mit Mehrfachübertragungseingängen enthalten.
15. Vorrichtung nach Anspruch 10, wobei die Koppeleinrichtungen eine auf einen Teil einer gegenwärtigen Mikrocodespeicheradresse ansprechende Dekodierschaltung enthalten, um ein Signal zu erzeugen, um die ersten Inkrementiereinrichtungen für einen ersten Adressenblock und die zweiten Inkrementiereinrichtungen für einen zweiten Adressenblock auszuwählen.
16. Vorrichtung nach Anspruch 9 wobei die zweite Anzahl variabel ist.
17. Vorrichtung nach Anspruch 16, wobei die Koppeleinrichtungen einen Bit-Ausgang eines Mikroprogrammzählerregisters enthalten, wobei der Bit-Ausgang einem Bit-Eingang entspricht, und ferner einen Mikrocodebefehlsregister enthält, der einen an den Bit-Eingang gekoppelten Ausgang hat.
18. Vorrichtung nach Anspruch 17, wobei der Bit-Ausgang eine getrennte Ladefreigabe hat, und ferner ein Steuerregister enthalten ist, der einen an den Mikrocodebefehlsregister gekoppelten Eingang und einen an die Ladefreigabe gekoppelten Ausgang hat.
19. Vorrichtung zum Implementieren einer Makrobefehl durch Adressieren einer Reihe von Mikrocodebefehlen in einem Speicher, enthaltend:
einen Befehlsregister zum Halten des Makrobefehls,
auf den Makrobefehl ansprechende Einrichtungen zum Bereitstellen einer Einsprungstellenadresse des Speichers,
erste Einrichtungen zum Inkrementieren der Adresse um eine erste vorgegebene Zahl,
zweite Einrichtungen zum Inkrementieren der Adresse um eins, und eine auf einen Teil einer gegenwärtigen Mikrocodespeicheradresse ansprechende Dekodierschaltung, um ein Signal zu erzeugen, um die ersten Inkrementiereinrichtungen für einen ersten Adressenblock und die zweiten Inkrementiereinrichtungen für einen zweiten Adressenblock auszuwählen.
DE19883852708 1987-04-10 1988-04-05 Verfahren und Apparat zum Überspringen mittels Abbildung einer Einsprungstelle. Expired - Fee Related DE3852708T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US3660687A 1987-04-10 1987-04-10

Publications (2)

Publication Number Publication Date
DE3852708D1 DE3852708D1 (de) 1995-02-23
DE3852708T2 true DE3852708T2 (de) 1995-06-01

Family

ID=21889561

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19883852708 Expired - Fee Related DE3852708T2 (de) 1987-04-10 1988-04-05 Verfahren und Apparat zum Überspringen mittels Abbildung einer Einsprungstelle.

Country Status (4)

Country Link
EP (1) EP0286352B1 (de)
JP (1) JP2804266B2 (de)
AU (1) AU607481B2 (de)
DE (1) DE3852708T2 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0574980B1 (de) * 1992-06-15 1999-06-09 Koninklijke Philips Electronics N.V. Prozessor zur Verarbeitung zeitdiskreter Signale
US8214754B2 (en) * 2005-04-15 2012-07-03 Microsoft Corporation Registration of applications and complimentary features for interactive user interfaces

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59183433A (ja) * 1982-12-06 1984-10-18 Sanyo Electric Co Ltd マイクロプログラム制御方式の中央処理装置

Also Published As

Publication number Publication date
EP0286352A2 (de) 1988-10-12
JPS644833A (en) 1989-01-10
AU1443788A (en) 1988-10-13
DE3852708D1 (de) 1995-02-23
EP0286352A3 (en) 1990-08-29
EP0286352B1 (de) 1995-01-11
JP2804266B2 (ja) 1998-09-24
AU607481B2 (en) 1991-03-07

Similar Documents

Publication Publication Date Title
DE2755273C2 (de)
DE4035405C2 (de)
DE3854701T2 (de) Methode und Vorrichtung zum Verändern von Mikrobefehlen mit einer Makrobefehlspipeline.
DE68927371T2 (de) Verfahren und Vorrichtung zur Verarbeitung von mehreren Zustandscodes wie für einen Parallel-Pipeline-Rechner
DE1931966C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE69738188T2 (de) Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE69027932T2 (de) Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen
DE2524046C2 (de) Elektronische Datenverarbeitungsanlage
DE2145120B2 (de) Digitales datenverarbeitungsgeraet
DE2540975A1 (de) Multi-mikro-prozessor-einheit
DE2555963A1 (de) Einrichtung zur funktionsmodifizierung
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE1499193A1 (de) Datenverarbeitungsanlage
DE2813128A1 (de) Mikroprogrammspeicher
DE2318069A1 (de) Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix
DE1275800B (de) Steuerwerk fuer datenverarbeitende Maschinen
DE2457612A1 (de) Mikroprogrammier-steuersystem
DE2717658A1 (de) Anordnung zur ansteuerung eines mikroprogrammspeichers
DE2556617C2 (de) Schiebe- und Rotierschaltung
DE3043653A1 (de) Datenverarbeitungsanlage
DE2426874A1 (de) Verfahren und schaltungsanordnung zur bestimmung der adressenart eines befehls
DE68927313T2 (de) Operandenspezifiererverarbeitung
DE602004008818T2 (de) Verfahren zur Bezugnahme auf die Adresse von Vektordaten und Vektorprozessor
DE2433436A1 (de) Verfahren und anordnung zum mehrfachverzweigen des programms in einem digitalen computer

Legal Events

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