DE3344340C2 - Datenverarbeitungsanordnung zum Durchführen von Mikrobefehlen - Google Patents

Datenverarbeitungsanordnung zum Durchführen von Mikrobefehlen

Info

Publication number
DE3344340C2
DE3344340C2 DE3344340A DE3344340A DE3344340C2 DE 3344340 C2 DE3344340 C2 DE 3344340C2 DE 3344340 A DE3344340 A DE 3344340A DE 3344340 A DE3344340 A DE 3344340A DE 3344340 C2 DE3344340 C2 DE 3344340C2
Authority
DE
Germany
Prior art keywords
address
input
multiplexer
memory
processor
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
DE3344340A
Other languages
English (en)
Other versions
DE3344340A1 (de
Inventor
Gerrit Ary Slavenburg
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.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
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 Philips Gloeilampenfabrieken NV filed Critical Philips Gloeilampenfabrieken NV
Publication of DE3344340A1 publication Critical patent/DE3344340A1/de
Application granted granted Critical
Publication of DE3344340C2 publication Critical patent/DE3344340C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • G06F9/30167Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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)
  • Advance Control (AREA)

Description

Die Erfindung betrifft eine Datenverarbeitungsanordnung nach dem Oberbegriff des Patentanspruchs 1.
Eine derartige Datenverarbeitungsanordnung ist bekannt aus der US-PS 4,446,517. Darin enthält jeder Mikrobefehl einen Adreßteil, der auf einen unmittelbar folgenden Mikrobefehl hinweist. Dadurch muß jeder Mikrobefehl relativ lang sein, so daß der Mikrocodespeicher einen großen Umfang hat.
Aus der DE 30 09 121 B1 ist eine Mikroprogramm-Steuer­ einrichtung bekannt, bei der jeweils zwei Mikrobefehls­ wörter gleichzeitig ausgegeben werden, die abhängig von der auszuführenden Operation nacheinander oder gleich­ zeitig wirksam werden können.
Aus der US-PS 4,070,703 ist eine Organisation eines Steuerspeichers für eine mikroprogrammierbare Daten­ verarbeitungsanordnung bekannt, bei der der Steuerspeicher in zwei Teile unterteilt ist, von denen der eine Teil den Steuercode und der andere, gleichzeitig adressierte Teil eine Folgeadresse enthält. Auch hierbei ist ein großer Mikrocodespeicher zum Speichern von Mikrobefehlen not­ wendig.
Aus der FR-OS 2 440 030 ist eine Datenverarbeitungsanord­ nung mit einem Mikrocodespeicher bekannt, der in mehrere Zonen mit nahezu gleicher Speicherkapazität unterteilt ist. Ferner ist ein Adreßgenerator mit einem ersten und einem zweiten Teiladreßgenerator vorgesehen. Der erste Teiladreßgenerator erzeugt eine Adresse eines Mikrobefehlsworts in einer Zone, während der zweite Teiladreßgenerator die Zone selbst adressiert. Wenn z. B. der Mikrocodespeicher in vier Zonen eingeteilt ist, aber der zu verarbeitende Makrobefehl in nur drei Schritten verarbeitbar ist, bedeutet dies, daß in der vierten Zone eine unbenutzte Speicherstelle vorhanden ist. Dadurch wird die verfügbare Speicherkapazität unwirtschaftlich ausgenutzt. Weiter wird bei diesem Aufbau häufig auf eine andere Zone umgeschaltet, wodurch die Ausführungszeit verlängert wird.
Aufgabe der Erfindung ist es daher, eine Datenverarbei­ tungsanordnung der eingangs genannten Art anzugeben, bei der die Speicherkapazität des Mikrocodespeichers wirt­ schaftlich ausgenutzt wird und die Ausführungszeit möglichst gering gehalten wird.
Diese Aufgabe wird erfindungsgemäß durch die im Patent­ anspruch 1 angegebenen Merkmale gelöst.
Auf diese Weise können die Mikrobefehle kürzer und der Mikrocodespeicher kleiner sein, da nun nicht mehr jeder Mikrobefehl einen Adreßteil enthalten muß. Der erste und der zweite Teiladreßgenerator erzeugen je eine Teil­ adresse, und beide Teiladressen bilden die Adresse für ein Mikrobefehlswort. Die erste Teiladresse stellt einen Bearbeiter dar und wird direkt aus dem Makrobefehl im Befehlsregister bestimmt. Ein Makrobefehl entspricht somit einem Bearbeiter, der eine Mehrzahl von Mikrobefehls­ wörtern umfaßt, die nun nacheinander über die zweite Teiladresse adressiert und ausgelesen werden. Die Adresse des ersten Mikrobefehlsworts im Bearbeiter wird durch den Makrobefehl gebildet, und die Adressen der dann folgenden Mikrobefehlswörter werden automatisch von der Folge­ steuerung gebildet, wobei auch Adressensprünge ausgeführt werden können, abhängig von dem Inhalt des jeweils vorher­ gehenden Mikrobefehlsworts und bestimmter Bedingungs­ signale. Sofern keine Sprünge in der Adressierung des Mikrocodespeichers ausgeführt werden, bleibt die Adresse bzw. der Adreßteil des Bearbeiters konstant, während der Adreßteil, der die Mikrobefehlswörter innerhalb des Bearbeiters angibt, automatisch weitergezählt wird. Dies ist dadurch leicht möglich, daß erfindungsgemäß für die Adresse des Bearbeiters und für die Adresse des Mikro­ befehlsworts innerhalb des Bearbeiters jeweils ein eigener Multiplexer zur Verfügung gestellt wird. Dadurch ist ein einfacher Aufbau der Folgesteuerung möglich, mit dem die Adressen der aufeinanderfolgenden Mikrobefehlswörter auch bei Adreßsprüngen sehr schnell gebildet werden können. Durch das automatische Fortschalten der zweiten Teil­ adresse innerhalb des Bearbeiters durch die Folgesteuerung muß diese zweite Teiladresse zwar eine Anzahl Bits haben, die für die maximale Anzahl von Mikrobefehlswörtern je Bearbeiter ausreicht, so daß bei anderen Bearbeitern nur ein Teil der möglichen Adressen ausgenutzt wird, jedoch führt dies nicht zu einer Vergrößerung des Mikrocode­ speichers, wenn dieser als sogenannter "dünner" Speicher ausgeführt wird, bei dem also nur diejenigen Adressen dekodiert werden, die auch tatsächlich vorkommen können.
Ausgestaltungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
Einige Ausführungsbeispiele der Erfindung werden nachstehend an Hand der Zeichnung näher erläutert.
Es zeigt
Fig. 1 eine Darstellung der wichtigsten Bestandteile eines Datenverarbeitungssystems;
Fig. 2 ein Beispiel einer Ausführung eines Steuer­ teils einer Datenprozessoreinheit,
Fig. 3a die verschiedenen Teile eines Speichers aus dem Steuerteil einer Datenprozessoreinheit,
Fig. 3b ein einfaches Beispiel der Struktur eines Mikrocodespeichers,
Fig. 3c und d Beispiele der Art, auf die die Adressen gebildet sind, und den Zusammenhang zwischen den Adressen und den Mikrobefehlswörtern,
Fig. 4 ein Ausführungsbeispiel einer Folgesteuerung als Teil des Steuerteils einer erfindungsgemäßen Daten­ prozessoreinheit.
Ein Datenverarbeitungssystem nach Fig. 1 enthält u. a. eine Datenprozessoreinheit 1 und einen Hauptspeicher 2. Die Datenprozessoreinheit und der Hauptspeicher sind an einen Bus 3 angeschlossen, über den Daten laufen. An den Bus können weitere Einheiten angeschlossen werden, wie bei Datenverarbeitungssystemen bekannt ist, aber diese sind nicht dargestellt, da sie für die Beschreibung der Erfindung unwichtig sind. In der Datenprozessoreinheit 1 lassen sich mehrere Teile unterscheiden. So enthält beispielsweise die Zentralprozessoreinheit einen inneren Speicherteil A, einen Steuerteil B, einen Verarbeitungsteil C und einen Eingabe/Aus­ gabe-Schnittstellenteil D. Diese Teile A, B, C und D sind alle an einen inneren Bus 4 angeschlossen, wodurch sie untereinander Informationen austauschen können. Der Steuer­ teil B sendet weiter Steuersignale über die Leitung 5 an jeden der übrigen Teile.
Die Erfindung bezieht sich auf den Steuerteil B der Datenprozessoreinheit, und insbesondere auf eine Ausführung dieses Steuerteils B. Der Steuerteil sorgt durch die Er­ zeugung von Steuersignalen dafür, daß zu verarbeitende Daten an den zugeordneten Stellen auf eine angegebene Weise behandelt werden.
Das System 15 nach Fig. 2 zeigt ein Beispiel der Ausführung eines Steuerteils aus einer erfindungsgemäßen Datenprozessoreinheit. Der Steuerteil 15 enthält eine Folgesteuerung 11 (sequencer), von dem ein erster Eingang mit einem Bedingungsregister 13 und ein zweiter Eingang mit einem Befehlsregister 10 verbunden ist. Ein Ausgangs­ leitungsbündel 16 der Folgesteuerung ist mit einem Adreß­ eingang eines Mikrocodespeichers 12 verbunden. Ein Daten­ ausgang dieses Mikrocodespeichers 12 ist an einen Eingang eines Mikrobefehlswortregisters 14 angeschlossen, von dem ein erster Ausgang mit der Leitung 5 der Datenprozessor­ einheit verbunden ist. Ein zweiter bzw. dritter Ausgang des Mikrobefehlsregisters 14 ist an einen dritten bzw. vierten Eingang der Folgesteuerung 11 angeschlossen. Das Mikrobefehlswortregister und seine damit verbundenen Aus­ gangsleitungen bilden eine "Rohrleitung-Sammelleitung" ("pipeline assembly-line"). Dieser Begriff wird beispiels­ weise auf Seiten 84 und 85 des Buchs "Computer Structures Reading and Examples" von C.G. Bell und A. Newell in der Ausgabe bei McGraw Hill Book Company (1971) beschrieben.
Das Befehlsregister 10 ist ein Teil des Eingabe/Aus­ gabe-Schnittstellenteils D der Datenprozessoreinheit. In das Befehlsregister 10 wird jeweils ein Binärcode für einen folgenden Befehl des von der Datenprozessoreinheit bearbeiteten Programms eingeschrieben. Die Befehle des durchgeführten Programms entstammen dem Hauptspeicher (2 nach Fig. 1) oder einer anderen an den Bus 3 angeschlossenen Einheit. Diese Befehle sind Makrobefehle, d. h. sie sind in einer kompakten Form formuliert. Ein Beispiel eines Makro­ befehls ist "ADD R1, R3". Mit dieser Formulierung stellt dieser Makrobefehl eine Bearbeitung dar, bei der der Inhalt des Registers R1 zum Inhalt des Registers R3 addiert werden muß. Der in das Befehlsregister eingeschriebene Makro­ befehl wird vom Steuerteil der Datenprozessoreinheit in Mikrobefehle übersetzt, die darauf der Verarbeitungsteil C durchführt. So wird der im Beispiel herangezogene Makro­ befehl "ADD R1, R3" beispielsweise in folgende Mikrobefehle übersetzt:
R1 → ALU 1; übertrage den Inhalt des Registers R1 auf den ersten Eingang der ALU (aritmetic logic unit, die ein Teil des Verarbeitungsteils C der Daten­ prozessoreinheit ist).
R3 → ALU 2; übertrage den Inhalt des Registers R3 auf den zweiten Eingang der ALU.
ALU → R3; schreibe das Ergebnis des Ausgangs der ALU in das Register R3.
PC + 1 → MEMADR; erhöhe den Inhalt des Programmzählers PC (program counter) auf eine folgende Speicher­ adresse des Speichers, in dem das Programm der Bearbeitung gespeichert ist.
MEM → IR; lies den Inhalt dieser folgenden Speicheradresse und schreibe diesen Inhalt in das Befehlsregister.
Diese letzten drei Mikrobefehle ergeben sich (fast) immer bei der Durchführung von Makrobefehlen. Die Mikro­ befehle sind in Form von Mikrobefehlswörtern in den Mikro­ codespeicher 12 eingeschrieben. Jedes Mikrobefehlswort wird mit Hilfe einer eindeutigen Adresse am Adreßeingang dieses Mikrocodespeichers adressiert. Diese Adresse entstammt der Folgesteuerung 11, in der sie dem Ausgangsleitungsbündel 16 zu­ geführt wird. In diesem Ausführungsbeispiel besteht diese Adresse aus drei charakteristischen Teilen. Diese drei charakteristischen Teile identifizieren das zugeordnete Befehlswort. Der Deutlichkeit halber ist es notwendig, zu­ nächst den Inhalt des Mikrocodespeichers 12 näher zu be­ trachten. Anschließend wird beschrieben, wie die Adresse in der Folgesteuerung 11 gebildet wird, sowie die Art der Funktion des Steuerteils 15.
In Fig. 3a ist ein Beispiel einer inneren Struktur eines Mikrocodespeichers 12 für einen Steuerteil einer Datenprozessoreinheit dargestellt. Ein derartiger Mikro­ codespeicher enthält einen Speicherteil 20 und einen damit verbundenen Adreßteil 21. Jeder Adresse aus dem Adreßteil 21 ist ein Mikrobefehlswort aus dem Speicherteil zugeordnet. Die Adresse gelangt an einen Adreßeingang 22, und das der zugeführten Adresse zugeordnete Mikrobefehlswort gelangt an einen Datenausgang 23. Der Mikrocodespeicher enthält z. B. eine UND-Matrixstruktur zum Decodieren des Adreßsignals und eine ODER-Matrixstruktur zum Speichern der Mikrobefehls­ wörter, die in den Speicherteil eingeschrieben sind.
In Fig. 3b ist eine derartige Mikrocodespeicher­ struktur an Hand eines einfachen Beispiels dargestellt. Die dem Adreßeingang 22 zugeführte Adresse hat z. B. eine Breite von 2 Bits (A1A0). Für jedes Adreßbit gibt es eine Adreßleitung, d. h. die Adreßleitung 24 bzw. 25 für das Adreßbit A0 bzw. A1. Jede Adreßleitung ist am Eingang des Adreßteils mit dem jeweiligen Eingang eines dieser Adreßleitung zugeordneten Inverters (G0, G1) verbunden. Ein Ausgang eines jeden Inverters (G0 bzw. G1) ist an eine Nebenadreßleitung (24′ bzw. 25′) angeschlossen. Die Adreßleitungen und die Nebenadreßleitungen bilden dabei die Spalten der Matrix. Zum Decodieren der Adreßinformation sind Transistoren vorgesehen, die mit einem Kreuz bezeichnet sind. Die Transistoren bilden die Matrixelemente, die an den Knotenpunkten der Zeilen und Spalten angeordnet sind. Die Adreßleitungen bzw. die Nebenadreßleitungen sind an eine erste Elektrode (beispielsweise die Basis) eines der­ artigen Transistors angeschlossen. Eine zweite Elektrode (beispielsweise der Kollektor) eines derartigen Transistors ist mit einem Punkt 26 verbunden, an den eine Spannungsquelle angeschlossen wird. Diese Spannungsquelle (in der Figur nicht dargestellt) erzeugt eine Spannung, die beispielsweise den Wert logisch "1" darstellt. Eine dritte Elektrode (beispiels­ weise der Emitter) eines derartigen Transistors ist an einen Eingang eines logischen UND-Gatters (27, 28, 29) angeschlos­ sen. In diesem Beispiel gibt es vier Eingänge zu jedem logischen UND-Gatter. Der Übersichtlichkeit in der Abbildung halber ist nur ein Eingang dargestellt. Das Besondere dieser Struktur besteht darin, daß nicht jeder Knotenpunkt mit einem derartigen Transistor versehen ist (es gibt Knoten­ punkte ohne Kreuz). An bestimmten Knotenpunkten ist der Transistor weggelassen (in der Praxis durch den Kurzschluß des Transistors verwirklicht). Ein derartiger Knotenpunkt an dem der Transistor entfallen ist, führt dabei immer den Wert logisch "1" ungeachtet des Werts des Adreßbits. Bei dem in Fig. 3b gegebenen Beispiel verfügt jede Zeile über nur zwei Transistoren. Der Vorteil einer derartigen Struktur besteht darin, daß auf diese Weise die Adreßwahl für die zu adressierenden Mikrobefehlswörter durchaus frei ist. Bei dem in Fig. 3b gegebenen Beispiel adressiert die Adresse A1A0 = 00 das Mikrobefehlswort auf der ersten Zeile des Speicherteils (Wert logisch "1111" an den vier Ein­ gängen des logischen UND-Gatters 27). Die Adresse A1A0 = 10 bzw. A1A0 = 11 adressiert das Mikrobefehlswort auf der zweiten bzw. der dritten Zeile des Speicherteils. Die Adresse A1A0 = 01 wird von dieser Struktur nicht decodiert und nicht als Adresse benutzt. Durch diese Wahlfreiheit der Adressen ist es nunmehr möglich, eine Verbindung zwischen dem Adreßwert und dem von dieser Adresse angegebenen Mikrobefehlswort herzustellen.
Der Speicherteil enthält eine analoge Struktur am Adreßteil. Hier ist jedoch jede Spalte mit einem logischen ODER-Gatter (30, 31, 32) verbunden. Die Struktur für den Datenspeicherteil wird daher auch mit ODER-Matrixstruktur bezeichnet.
Ein derartiger Speicher, bei dem viele Adressen nicht in Hardware verwirklicht sind, wird in der weiteren Beschreibung mit "dünnem Speicher" (sparse memory) bezeichnet. Ein derartiger dünner Speicher ist dabei nur teilweise mit Mikrocodewörtern im Vergleich zu einem normalen Speicher mit gleicher Speicherkapazität gefüllt.
Wie bereits bei der Beschreibung nach Fig. 2 erwähnt wurde, enthält das Adreßsignal in diesem Ausführungsbeispiel drei charakteristische Teile. In Fig. 3c ist der Adreßteil des Speichers 12 nach Fig. 3a und Fig. 2 dargestellt und werden diese drei charakteristischen Teile an Hand eines Beispiels veranschaulicht. Der Gedanke zum Aufbauen einer Adresse für einen Speicher eines Steuerteils einer Daten­ prozessoreinheit auf drei charakteristischen Teilen basiert darauf, daß sich nur eine beschränkte Anzahl von Mikro­ befehlssorten unterscheiden läßt. Ein Unterschied wird zwischen vier Mikrobefehlssorten gemacht:
  • 1. Das Aufrufen eines Mikrounterprogramms.
  • 2. Der Sprung nach einem Bearbeiter für einen neuen Makro­ befehl.
  • 3. Der Sprung nach besonderen Bearbeiterprogrammen, wie beispielsweise Fehlerbeseitigungsprogramme, oder nach einem Aufrufprogramm (fetch routine).
  • 4. Der Sprung in einem Bearbeiter.
Da nunmehr für den Mikrocodespeicher ein dünner Speicher verwendet wird, wird die Freiheit zum Wählen der Adressen, die ein derartiger Speicher bietet, zum Verbinden der Adressen mit den Mikrobefehlswörtern ausgenutzt. Eine Adresse für diesen dünnen Speicher wird jetzt aus drei charakteristischen Teilen zusammengesetzt und bildet so ein Tripel. Dieses Tripel enthält gemäß der Veranschau­ lichung in Fig. 3c;
I einen Hinweis auf den Bearbeitertyp,
II einen Hinweis, der die Nummer des Bearbeiters in einem Typ angibt,
III einen Hinweis auf das Mikrobefehlswort in einem Bearbeiter.
Die Bestandteile dieses Tripels werden jetzt näher erläutert.
I. Ein Hinweis auf den Bearbeiter
Dieser Teil hat, wie beispielsweise in Fig. 3c angegeben, eine Breite von zwei Bits und gibt den Bearbeitertyp an. So geben beispielsweise:
00: die Mikrounterprogramme (Bearbeiter vom ersten Typ)
01: die besonderen Bearbeiter (Bearbeiter vom zweiten Typ)
10: die Befehlsbearbeiter (Bearbeiter vom dritten Typ) an, die Bearbeiter zum Durchführen von Mikrobefehlen sind.
In dieser Ausführung zeigt eine Adresse für den dünnen Speicher, der mit 00 anfängt, immer auf ein Mikro­ unterprogramm und umgekehrt besitzt die Adresse eines Mikro­ unterprogramms aus dem dünnen Speicher immer 00 als Bitwert für die zwei ersten Bits. Die Adresse eines besonderen Bearbeiters bzw. eines Befehlsbearbeiters aus dem dünnen Speicher besitzt immer 01 bzw. 10 als Bitwert für die ersten zwei Bits. Hiermit ist dann eine erste Grobeinteilung zwi­ schen den verschiedenen Mikrobefehlsarten und der Art der Speicherung im dünnen Speicher verwirklicht. Diese Grob­ einteilung wird durch die zwei übrigen Teile als Tripels verfeinert.
II. Ein Hinweis, der die Nummer des Bearbeiters in einem Typ angibt
Dieser Teil hat eine Breite von k Bits (beispiels­ weise k = 8), wodurch jeder Typ höchstens 2k verschiedene Bearbeiter enthalten kann. Die Verwendung eines dünnen Speichers macht es überflüssig, alle diese Möglichkeiten zu verwenden, aber es wird die Möglichkeit geboten, für jeden Typ von Bearbeiter so viele verschiedene Adreßnummern zu belegen, wie dabei Anzahlen von Bearbeitern diesem be­ treffenden Typ zugeordnet sind. Die verschiedenen Bearbeiter eines bestimmten Typs können in der Aufeinanderfolge von 0, . . . I (0 I 2k-1) numeriert sein. Im Beispiel nach Fig. 3c sind als Bearbeiter vom ersten Typ drei verschiedene Bearbeiter von 0 . . . 00, 0 . . . 10 und 0 . . . 11 numeriert. Als Bearbeiter vom zweiten Typ sind zwei verschiedene Be­ arbeiter von 0 . . . 00 und 0 . . . 01 numeriert, und als Be­ arbeiter vom dritten Typ sind vier verschiedene Bearbeiter von 0 . . . 00, 0 . . . 01, 0 . . . 10 und 0 . . . 11 numeriert.
Wie aus dem Beispiel nach Fig. 3c bei den Bearbeitern vom ersten Typ ersichtlich ist, ist es nicht notwendig, daß die verschiedenen, einem bestimmten Typ zugeordneten Be­ arbeiter aufeinanderfolgend numeriert sind. Diese Freiheit in der Zuordnung von Nummern, die dabei als Adresse wirken, wie bereits erwähnt wurde, ist durch die Verwendung eines dünnen Speichers möglich.
III. Ein Hinweis auf das Mikrobefehlswort in einem Bearbeiter
Dieser Teil hat eine Breite von p Bits (beispielsweise p = 8), wodurch dabei maximal 2p Mikrobefehlsadressen für jeden einzelnen Bearbeiter zur Verfügung stehen. Dies be­ deutet, daß jeder Bearbeiter höchstens 2p Mikrobefehls­ wörter enthalten darf. Mit Hilfe des dritten Teils (III) des Tripels sind die Mikrobefehlswörter von 0 . . . N nume­ riert (0 N 2p-1). Wiederum ist es durch die Verwendung eines dünnen Speichers nicht notwendig, für jeden Be­ arbeiter alle 2p-1 Adressen zu verwenden, sondern es können so viele Adressen verwendet werden, als es Mikrobefehlswörter im betreffenden Bearbeiter gibt.
Der Zusammenhang zwischen einer Tripel-Adresse und einem Mikrobefehlswort wird an Hand eines Beispiels in Fig. 3d erläutert. In diesem Beispiel enthält der Teil I (Hinweis auf den Bearbeitertyp) nur ein Bit, der Teil II (Hinweis, der die Nummer des Bearbeiters in einem Typ angibt) zwei Bits und der Teil III (Hinweis für das Mikrobefehls­ wort) drei Bits. Angenommen sei, daß es sich um einen Bearbeiter vom ersten Typ handelt, also um ein Mikro­ unterprogramm (sbr), und daß es drei verschiedene Mikro­ unterprogramme gibt. Der Bitwert "0" in der ersten Spalte (I) der Adreßmatrix im Adreßteil 21 gibt an, daß es sich um ein Mikrounterprogramm handelt. Die zweite und die dritte Spalte, die zusammen für jede Zeile jeweils den Teil II des Tripels bilden, zeigen, daß das Mikrounterprogramm mit der Nummer 00 (Nr. 0), die Nummer 10 (Nr. 2) und die Nummer 11 (Nr. 3) in diesem Teil des Mikrocodespeichers gespeichert sind. Das Mikrounterprogramm mit der Nummer 01 ist nicht vorhanden, was hinsichtlich der Freiheit erlaubt ist, die bei der Verwendung eines dünnen Speichers gegeben ist. Die vierte, fünfte und sechste Spalte, die zusammen für jede Zeile den Teil III des Tripels bilden, geben für jede Reihe die Adressen der aufeinanderfolgenden Mikro­ befehlswörter eines jeden Mikrounterprogramms. Im Beispiel nach Fig. 3d enthält das Mikrounterprogramm mit der Nummer 00 fünf Mikrobefehlswörter (µ w r d 0 bis 4), das Mikro­ unterprogramm mit der Nummer 10 drei Mikrobefehlswörter (µ w r d 0 bis 2) und das Mikrounterprogramm mit d er Nummer 11 fünf Mikrobefehlswörter (µ w r d 0 bis 4). Die fünf Mikrobefehlswörter des Mikrounterprogramms mit der Nummer 00 enthalten für den Teil III der Tripeladresse eine aufeinanderfolgende Binärnumerierung von 000 bis 100. Für die drei Mikrobefehlswörter des Mikrounterprogramms mit der Nummer 10 enthält der Teil III der Tripeladresse eine aufeinanderfolgende Binärnumerierung von 000 bis 010. Für das Mikrounterprogramm mit der Nummer 11 gilt ein analoger Aufbau. Das Beispiel nach Fig. 3d zeigt also, wie die Information im dünnen Speicher gespeichert ist und wie der Wert jeder einem Mikrobefehlswort zugeordneten Adresse gewählt wird.
Diese besondere Wahl von Adressen hat selbstver­ ständlich ihre Folgen für die Implementierung der Folge­ steuerung 11 nach Fig. 2.
Fig. 4 zeigt ein Beispiel einer Implementierung einer Folgesteuerung. Diese Folgesteuerung 11 enthält für jeden Teil des genannten Tripels einen Multiplexer, d. h. den Multiplexer 50 für den Teil I, den Multiplexer 51 bzw. 52 für den Teil II bzw. den Teil III. Jeder Multiplexer (50, 51, 52) hat sein eigenes Ausgangsregister (53, 54, 55). Jedes Ausgangsregister ist dabei mit einer zugehörigen Ausgangsleitung 61, 62, 63 verbunden, die zusammen das Aus­ gangsleitungsbündel 16 der Folgesteuerung bilden und denen die Tripeladresse zum Adressieren des dünnen Speichers zuge­ führt wird. Die Folgesteuerung enthält weiter einen Stapel (stack) 58, d. h. ein LIFO-Register, sowie ein "plus 1"-Ele­ ment 56, einen Decoder 57 und einen Konstantengenerator 59. Die Funktion dieser Elemente und die Art ihrer Schaltung in der Folgesteuerung wird weiter unten näher erläutert. Der Deutlich­ keit halber sind in der Figur die Verbindungsleitungen als einfache Linien dargestellt, es ist jedoch klar, daß sich diese Leitungen zum Übertragen eines Signals mit einer Breite von mehreren Bits eignen. Der Stapel 58 hat drei Dateneingänge und drei Datenausgänge, von denen jeweils ein Dateneingang mit einem Datenausgang verknüpft ist. Jedes Paar ist jeweils mit einem bestimmten Multiplexer verbunden, und umgekehrt ist jedem Multiplexer ein Eingangs/Aus­ gangspaar des Stapels zugeordnet. Der Dateneingang des Paars P50 bzw. P51 ist mit der Ausgangsleitung 61 bzw. 62 des Multiplexers 50 bzw. 51 verbunden. Der Datenausgang des Paars P50 bzw. P51 ist mit dem Eingang M1 des Multi­ plexers 50 bzw. 51 verbunden. Der Datenausgang des Paars P52 ist mit dem Eingang M1 des Multiplexers 52 verbunden. Der Dateneingang des Paars P52 ist mit einem Ausgang des "plus 1"-Elements 56 verbunden.
Gemäß der Beschreibung nach Fig. 2 enthält die Folgesteuerung vier Eingänge, d. h. einen ersten mit einem Bedingungsregister verbundenen Eingang 80, einen zweiten mit einem Befehlsregister verbundenen Eingang 81, und einen dritten 78 und einen vierten 79 je mit einem Ausgang des Mikrocoderegisters verbundenen Eingang (14 in Fig. 2). Jedes Mikrobefehlswort enthält einen Mikrooperationscode, der in der weiteren Beschreibung mit Mikroopcode bezeichnet wird, und ein Mikroadreßfeld. Der Mikroopcode wird dem genannten dritten Eingang 78 und das Mikroadreßfeld dem vierten Eingang 79 der Folgesteuerung zugeführt.
Der Mikroopcode spezifiziert die Berechnung für die Adresse des folgenden Mikrobefehlsschritts für die Durch­ führung des Bearbeiters. Der dritte Eingang 78 der Folge­ steuerung ist mit einem ersten Eingang des Decoders 57 verbunden. Ein zweiter Eingang dieses Decoders ist mit dem ersten Eingang 80 der Folgesteuerung verbunden. Dieser Decoder decodiert die Bedingungen aus dem Bedingungsregister (13 in Fig. 2) und dem Mikroopcode. Das decodierte Signal steuert die drei Multiplexer (50, 51, 52) und den Stapel 58. Dazu ist ein erster Ausgang des Decoders 52 über eine Ver­ bindungsleitung 64 mit einem Steuereingang des Multiplexers 50 verbunden. Ein zweiter bzw. ein dritter Ausgang des Decoders 57 ist über die Verbindungsleitung 65 bzw. 66 mit einem Steuereingang des Multiplexers 51 bzw. 52 verbunden. Ein vierter Ausgang des Decoders ist über die Verbindungsleitung 67 mit einem Steuereingang des Stapels 58 verbunden. Ab­ hängig vom decodierten Signal an seinem Steuereingang wird ein Multiplexer in eine bestimmte Stellung gebracht, wodurch einer der Eingänge des Multiplexers ausgewählt und das Signal an diesem Eingang dem zugeordneten Ausgangsregister zugeführt wird. Diese Ausführung mit einem getrennten Decoder 57 ist nur eine der möglichen Lösungen. Eine andere Lösung ist beispielsweise die Ausrüstung eines jeden Multi­ plexers sowie des Stapels mit einem getrennten Decoder und die Zuführung des Mikroopcodes und der Bedingungssignale aus dem Bedingungsregister direkt zum Multiplexer und zum Stapel. Die Wahl einer dieser beiden Lösungen hat keine direkten Folgen für die Wirkung der Folgesteuerung, da beide Lösungen genau die selbe Aufgabe erfüllen. Diese Wahl spielt faktisch nur eine Rolle bei einer Verwirklichung nach einer gewählten Technologie einer erfindungsgemäßen Folgesteuerung.
Die Wirkung der Folgesteuerung wird jetzt an Hand der möglichen Mikroopcodes näher erläutert. Diese Mikro­ opcodes sind beispielsweise
  • a) NEXT: Adressiere das Mikrobefehlswort, das sich im Be­ arbeiter während der Durchführung an der Adresse befindet, die einen Adreßwert hat, der um genau eine Einheit höher als die Adresse ist, an der sich dieser Mikroopcode befindet (Adresse + 1 = neue Adresse).
  • b) BRANCH: Adressiere das Mikrobefehlswort, das sich im Bearbeiter während der Durchführung an der Adresse befindet, wie sie im zugeordneten Mikroadreßfeld angegeben ist, das hier den Teil III des Tripels darstellt. In diesem Mikroopcode kann noch zwischen einer unbedingten und einer bedingten Verzweigung unterschieden werden. Bei einer unbedingten Ver­ zweigung wird immer die Adresse, die im Mikro­ adreßfeld angegeben ist, adressiert. Dagegen wird bei einer bedingten Verzweigung die Adresse adres­ siert, die in Abhängigkeit von der gewählten Be­ dingung im Bedingungsregister bestimmt ist.
  • c) JUMP: Adressiere einen Bearbeiter vom gleichen Typ, aber mit einer anderen Nummer als die des durchgeführten Bearbeiters. Die Nummer des zu adressierenden Be­ arbeiters wird im zugeordneten Adreßfeld angegeben.
  • d) NEXT INSTRUKTION: Wähle an Hand des folgenden Mikrobe­ fehls im Befehlsregister den folgenden Befehls­ bearbeiter.
  • e) JSR: Adressiere einen Bearbeiter vom ersten Typ, und zwar ein Mikrounterprogramm, und bringe die Adresse des dem JSR-Befehl folgenden Mikrobefehls auf den Stapel.
  • f) RETURN: Nimm die Mikroadresse vom Stapel.
  • g) JUMP SP: Adressiere einen Bearbeiter vom zweiten Typ, und zwar einen besonderen Bearbeiter.
Für einen jeden dieser Mikroopcodes wird jetzt be­ schrieben, wie die Folgesteuerung sie verarbeitet. Die gleiche Reihenfolge der Aufzählung der Mikroopcodes wird eingehalten.
  • a) NEXT: Das Ausgangsregister 55 des Multiplexers 52 gibt über die Ausgangsleitung 63 den Teil III der Tripeladresse eines aufzurufenden Mikrobefehlsworts ab. Dieses aufzu­ rufende Mikrobefehlswort hat den Mikroopcode "NEXT". Das "plus-1"-Element 56, dessen Eingang mit der Ausgangsleitung 63 verbunden ist, zählt eine Einheit zu diesem genannten Teil III der Tripeladresse auf der Ausgangsleitung 63 (Adresse i → Adresse i + 1). Die um eine Einheit erhöhte Adresse gelangt über die Leitung 68 zum Eingang M6 des Multiplexers 52. Der Decoder 57 decodiert den Mikroopcode "next". Unter der Steuerung des decodierten "next"-Signals auf der Leitung 66 wird der Eingang M6 des Multiplexers 52 gewählt. Hierdurch wird der erhöhte Teil III der Tripel­ adresse über das Ausgangsregister 55 und die Leitung 63 auf das Ausgangsleitungsbündel 16 übertragen. Die decodier­ ten "next"-Signale auf den Leitungen 65 bzw. 64 sorgen dafür, daß die Eingänge M7 des Multiplexers 51 bzw. 50 ausgewählt und das Signal von diesem Eingang in das jeweilige Ausgangsregister eingeschrieben wird. Für die Multiplexer 50 und 51 ist der Eingang M7 jeweils direkt mit dem Ausgang seines jeweiligen Ausgangsregisters verbunden. Über die Leitung 61 bzw. 62 wird der Teil I bzw. der Teil II des Tripels auf das Ausgangsleitungsbündel 16 übertragen. Bei einem Mikroopcode "next" ist also nur der Teil III der Tripeladresse modifiziert, die Teile I und II bleiben unge­ ändert. Hierdurch wird also ein folgendes Befehlswort eines gleichen Bearbeiters vom gleichen Typ adressiert. Das dem Ausgangsleitungsbündel 16 zugeführte Adreßsignal hat dabei die Form (M7, M7, M6) (Adreßsignal, wie es bei diesem Mikro­ opcode dem Eingangsgatter Mi eines jeden Multiplexers zugeführt wird). Unter der Steuerung des decodierten "next"- Signals auf der Leitung 67 bleibt der Stapel 58 unwirksam.
  • b) BRANCH: 1. unbedingt: Die Adresse des zu adressierenden Mikrobefehlsworts wird im Mikroadreßfeld des Mikrobefehls­ worts angegeben, das als Mikroopcode "branch" enthielt. Diese Adresse (Teil III des Tripels) gelangt an die Folgesteuerung über den Eingang 79 und geht über die Leitung 60 zum Ein­ gang M5 des Multiplexers 52. Der Decoder 57 decodiert den Mikroopcode "branch". Unter der Steuerung des decodierten "branch"-Signals auf der Leitung 66 wird der Eingang M5 des Multiplexers 52 ausgewählt. Hierdurch wird der Teil III des Tripels der zu adressierenden Adresse über das Ausgangs­ register 55 und die Leitung 63 auf das Ausgangsleitungs­ bündel 16 übertragen. Da sich das zu adressierende Mikro­ befehlswort im gleichen Bearbeiter vom gleichen Typ be­ findet, bleiben die Teile I und II des Tripels ungeändert. Dies wird, wie auch beim Mikroopcode "next" beschrieben, durch die Wahl des Signals am Eingang M7 der Multiplexer 50 und 51 verwirklicht. Das dem Ausgangsleitungsbündel 16 zu­ geführte Adreßsignal hat jetzt die Form (M7, M7, M5). Unter der Steuerung des decodierten "branch"-Signals auf der Leitung 67 bleibt der Stapel 58 unwirksam, auch für eine bedingte Verzweigung.
  • 2.: bedingt: Wenn der Mikroopcode bedingt ausgeführt wird, wird diese Bedingung über den Eingang 80 dem Decoder 57 zugeführt. Abhängig von dieser Bedingung wählt der Decoder über ein Steuersignal auf der Leitung 66 den Eingang M5 des Multiplexers 52, wenn diese Bedingung erfüllt ist (Abzweigung ja) oder den Eingang M6 des Multiplexers 52, wenn diese Bedingung nicht erfüllt ist (keine Verzweigung, dann "next").
  • c) JUMP: Die Adresse des zu adressierenden Bearbeiters, d. h. in diesem Fall die Nummer dieses Bearbeiters, wird im Mikro­ adreßfeld des Mikrobefehlsworts angegeben, das "jump" als Mikroopcode enthält. Diese Adresse (Teil II des Tripels) gelangt an die Folgesteuerung über den Eingang 79 und geht über die Leitung 82 zum Eingang M5 des Multiplexers 51. Der Decoder 57 decodiert den Mikroopcode "jump". Unter der Steuerung des decodierten "jump"-Signals auf der Leitung 65 wird der Eingang M5 des Multiplexers 51 ausgewählt. Unter der Steuerung des decodierten "jump"-Signals auf der Leitung 67 bleibt der Stapel 58 unwirksam. Das decodierte "jump"- Signal auf der Leitung 66 wählt den Eingang M4 des Multi­ plexers 52.
Der Eingang M4 des Multiplexers 52 ist mit einem Ausgang 70 des Konstantengenerators 59 verbunden. Der Generator 59 erzeugt an diesem Ausgang 70 immer ein Adreß­ signal, das den Teil III der Tripeladresse eines ersten Mikrobefehlsworts eines Bearbeiters kennzeichnet. Im in Fig. 3d dargestellten Beispiel würde am Ausgang 70 des Generators das Adreßsignal "000" erzeugt werden. Das deco­ dierte "jump"-Signal auf der Leitung 64 wählt den Eingang M7 des Multiplexers 50. Das dem Ausgangsleitungsbündel 16 zugeführte Adreßsignal hat jetzt die Form (M7, M5, M4).
  • d) NEXT INSTRUKTION: Der Decoder 57 decodiert den Mikro­ opcode "next instruktion". Unter der Steuerung des decodier­ ten "next instruktion"-Signals auf der Leitung 66 wird der Eingang M4 des Multiplexers 52 ausgewählt, der mit dem Ausgang 70 des Konstantengenerators 59 verbunden ist, der ein Adreßsignal erzeugt, wie dies oben beim Mikroopcode "jump" beschrieben ist. Unter der Steuerung des decodierten "next instruktion"-Signals auf der Leitung 65 wird der Eingang M4 des Multiplexers 51 ausgewählt, der über die Leitung 74 mit dem Eingang 81 der Folgesteuerung 11 ver­ bunden ist. Diesem Eingang 81, der mit dem Befehlsregister (10 nach Fig. 2) verbunden ist, wird der folgende Makro­ befehl in Form einer (Adresse-) Nummer eines Bearbeiters zugeführt (Teil II des Tripels). Unter der Steuerung des decodierten "next instruktion"-Signals auf der Leitung 64 wird der Eingang M4 des Multiplexers 50 gewählt, der mit dem Ausgang 73 des Konstantengenerators 59 verbunden ist. Der Konstantengenerator 59 erzeugt an diesem Ausgang 73 immer ein Adreßsignal, das den Teil I der Tripeladresse für einen Befehlsbearbeiter kennzeichnet (Bearbeiter vom dritten Typ). Unter der Steuerung des decodierten "next- instruktion"-Signals auf der Leitung 67 bleibt der Stapel 58 unwirksam. In dem in Fig. 3d veranschaulichten Beispiel würde der Ausgang 73 des Konstantengenerators das Adreß­ signal "10" abgeben. Das dem Ausgangsleitungsbündel 16 zugeführte Adreßsignal hat jetzt die Form (M4, M4, M4).
  • e) JSR: Der Decoder 57 decodiert den Mikroopcode "JSR". Unter der Steuerung des decodierten "JSR"-Signals auf der Leitung 66 wird der Eingang M4 des Multiplexers 52 gewählt (wie beim Mikroopcode "jump"). Unter der Steuerung des decodierten "JSR"-Signals auf der Leitung 65 wird der Ein­ gang M5 des Multiplexers 51 gewählt, dem die Nummer des Bearbeiters im Mikrounterprogramm zugeführt wird. Diese Nummer rührt von dem Eingang 79 zugeführten Mikroadreß­ feld her (wie beim Mikroopcode "jump"). Unter der Steuerung des decodierten "JSR"-Signals auf der Leitung 64 wird der Eingang M2 des Multiplexers 50 gewählt, der mit dem Ausgang 71 des Konstantengenerators 59 verbunden ist. Der Konstanten­ generator 59 erzeugt an diesem Ausgang 71 immer ein Adreß­ signal, das den Teil I der Tripeladresse für ein Mikro­ unterprogramm kennzeichnet (Bearbeiter vom ersten Typ). Im Beispiel nach Fig. 3d würde dabei am Ausgang 71 des Konstantengenerators das Adreßsignal "00" erzeugt werden. Das dem Ausgangsleitungsbündel 16 zugeführte Adreßsignal hat jetzt die Form (M2, M5, M4). Unter der Steuerung des decodierten "JSR"-Signals auf ,der Leitung 67 wird der Stapel 58 aktiviert. Der Stapel führt eine "push"-Operation durch. Das bedeutet, daß oben auf dem Stapel das Tripel (j, k, l + 1) geschrieben wird, wenn (j, k. l) die Adresse dieses Mikrobefehlsworts mit dem Mikroopcode "JSR" war.
  • f) RETURN: Wenn der Decoder 57 den Mikroopcode "return" decodiert, wird unter der Steuerung dieses decodierten Signals auf den Leitungen 64, 65 und 66 bei jedem Multi­ plexer 50, 51, 52 der Eingang M1 gewählt, der mit einem zugeordneten Ausgang des Stapels 58 verbunden ist. Unter der Steuerung des decodierten "return"-Signals auf der Leitung 67 führt der Stapel eine "pop "-Operation durch, d. h. eine Operation, bei der das obere Element des Stapels aufge­ rufen und vom Stapel entfernt wird. Das dem Ausgangsleitungs­ bündel 16 zugeführte Adreßsignal hat jetzt die Form (M1, M1, M1).
  • g) JUMP SP: Die Wirkung bei diesem Mikroopcode für die Multiplexer 50 und 52 ist völlig gleich der Wirkung nach der Beschreibung beim Mikroopcode "JSR". Für den Multi­ plexer 50 wird jedoch unter der Steuerung des decodierten "JUMP SP"-Signals auf der Leitung 64 der Eingang M3 gewählt, der mit dem Ausgang 72 des Konstantengenerators 59 verbunden ist. Der Konstantengenerator 59 erzeugt an diesem Ausgang 72 immer ein Adreßsignal, das den Teil I der Tripeladresse für einen besonderen Bearbeiter (Bearbeiter vom zweiten Typ) charakterisiert. Im Beispiel nach Fig. 3d würde dabei am Ausgang 72 des Konstantengenerators das Adreßsignal "01" erzeugt werden. Das dem Ausgangsgattersystem 16 zugeführte Adreßsignal hat jetzt die Form (M3, M5, M4). Unter der Steuerung des decodierten "JUMP SP"-Signals auf der Leitung 67 bleibt der Stapel 58 unwirksam.

Claims (3)

1. Datenverarbeitungsanordnung mit einem Verarbeitungs­ teil (A) zum Durchführen von Mikrobefehlen und mit einem Steuerteil (B), der einen Mikrocodespeicher (12) zum Speichern von Mikrobefehlswörtern an je einer Adresse und eine Folgesteuerung (11) zum Erzeugen von Adressen für den Mikrocodespeicher mit Hilfe von Multiplexern (50, 51, 52), die von einem Befehlsregister (10) und vom Ausgang des Mikrocodespeichers (12) angesteuert werden, aufweist, dadurch gekennzeichnet,
daß die Mikrobefehlswörter im Mikrocodespeicher (12) in einer Vielzahl von Gruppen gespeichert sind, die jeweils einen sogenannten Bearbeiter bilden und eine unterschiedliche Anzahl von aufeinander­ folgenden Adressen in dem Mikrocodespeicher (12) belegen, wobei jedes Mikrobefehlswort einen Teil zum Speichern eines Operanden umfaßt,
daß die Multiplexer (50, 51, 52) wenigstens einen ersten Multiplexer (51) zum Erzeugen der Adresse eines Bearbeiters und einen zweiten Multi­ plexer (52) zum Erzeugen einer Adresse innerhalb eines Bearbeiters umfassen,
daß der zweite Multiplexer (52) einen Rückkopplungsweg (55, 56, 68) zum Erzeugen einer Folge von Adressen innerhalb eines Bearbeiters aufweist,
und daß ein Decoder (57) vorgesehen ist zum Decodieren eines aus dem Mikrocodespeicher (12) ausgelesenen Operanden und zum Steuern wenigstens eines der Multi­ plexer (50, 51, 52).
2. Datenverarbeitungsanordnung nach Anspruch 1, dadurch gekennzeichnet, daß die Folgesteuerung (11) einen dritten Multiplexer (50) aufweist, der eine Adresse jeweils einer Gruppe von Bearbeitern erzeugt, wobei die Gruppen eine unterschiedliche Anzahl Bearbeiter aufweisen.
3. Datenverarbeitungsanordnung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß der Mikrocodespeicher (12) eine erste Matrix (21) aus UND-Gliedern (27, 28, 29) mit Eingängen (24, 24′, 25, 25′), denen die Adressen (A0, A1) zugeführt werden, und eine an die Ausgänge der UND-Glieder (27, 28, 29) angeschlossene zweite Matrix (20) aus ODER- Gliedern (30, 31, 32) umfaßt, deren Ausgänge (23) die Mikrobefehlswörter abgeben.
DE3344340A 1982-12-31 1983-12-08 Datenverarbeitungsanordnung zum Durchführen von Mikrobefehlen Expired - Fee Related DE3344340C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
NL8205076A NL8205076A (nl) 1982-12-31 1982-12-31 Data processor eenheid voorzien van een stuurgedeelte welk een adresgenerator bevat voor het genereren van adressen welke uit karakteristieke adresdelen zijn samengesteld.

Publications (2)

Publication Number Publication Date
DE3344340A1 DE3344340A1 (de) 1984-07-05
DE3344340C2 true DE3344340C2 (de) 1994-09-22

Family

ID=19840833

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3344340A Expired - Fee Related DE3344340C2 (de) 1982-12-31 1983-12-08 Datenverarbeitungsanordnung zum Durchführen von Mikrobefehlen

Country Status (7)

Country Link
US (1) US4750108A (de)
JP (1) JPH0640303B2 (de)
DE (1) DE3344340C2 (de)
FR (1) FR2538928B1 (de)
GB (1) GB2133189B (de)
IT (1) IT1170295B (de)
NL (1) NL8205076A (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5454088A (en) * 1985-11-15 1995-09-26 Mitsubishi Denki Kabushiki Kaisha Microprogram control device for controlling data path section including designation of instruction cycle values
JPS62117038A (ja) * 1985-11-15 1987-05-28 Mitsubishi Electric Corp マイクロプログラム制御装置
GB2203572B (en) * 1987-03-24 1991-11-27 Insignia Solutions Limited Improvements in data processing means
US4980821A (en) * 1987-03-24 1990-12-25 Harris Corporation Stock-memory-based writable instruction set computer having a single data bus
US5113507A (en) * 1988-10-20 1992-05-12 Universities Space Research Association Method and apparatus for a sparse distributed memory system
EP0374830A3 (de) * 1988-12-19 1992-03-18 Bull HN Information Systems Inc. Adressengenerator eines Mikrobefehlsspeichers zur Herstellung einer einzigen Befehlsstartadresse
JP2001195250A (ja) * 2000-01-13 2001-07-19 Mitsubishi Electric Corp 命令トランスレータ、トランスレータ付命令メモリおよびそれらを用いたデータ処理装置
JP2001306316A (ja) * 2000-04-21 2001-11-02 Sharp Corp 制御回路およびそれを用いた半導体装置
US6957322B1 (en) * 2002-07-25 2005-10-18 Advanced Micro Devices, Inc. Efficient microcode entry access from sequentially addressed portion via non-sequentially addressed portion

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1054725A (de) * 1964-04-06
IT995721B (it) * 1973-10-10 1975-11-20 Honeywell Inf Systems Italia Apparato per l interpretazione di codici di funzione in calcolatori microprogrammati e per l indirizza mento indipendente di fasi inter pretative ed esecutive di micro programma
US3958227A (en) * 1974-09-24 1976-05-18 International Business Machines Corporation Control store system with flexible control word selection
US3990054A (en) * 1974-11-05 1976-11-02 Honeywell Inc. Microprogram organization techniques
US4038643A (en) * 1975-11-04 1977-07-26 Burroughs Corporation Microprogramming control system
JPS52119832A (en) * 1976-04-01 1977-10-07 Toshiba Corp Electroinc calculator of microprogram control system
US4173041A (en) * 1976-05-24 1979-10-30 International Business Machines Corporation Auxiliary microcontrol mechanism for increasing the number of different control actions in a microprogrammed digital data processor having microwords of fixed length
US4070703A (en) * 1976-09-27 1978-01-24 Honeywell Information Systems Inc. Control store organization in a microprogrammed data processing system
HU172445B (hu) * 1976-10-13 1978-09-28 Bhg Hiradastech Vallalat Programmiruemoe ustrojstvo dlja upravlenija sredne- i malojomkostnymi perekljuchateljami telefonnykh centrov
US4179737A (en) * 1977-12-23 1979-12-18 Burroughs Corporation Means and methods for providing greater speed and flexibility of microinstruction sequencing
JPS5539914A (en) * 1978-09-12 1980-03-21 Nec Corp Address control system of microprogram control device
DE2846537C2 (de) * 1978-10-26 1986-09-18 Standard Elektrik Lorenz Ag, 7000 Stuttgart Mikroprogrammierte Datenverarbeitungseinrichtung
DE3009121C2 (de) * 1980-03-10 1982-02-18 Siemens AG, 1000 Berlin und 8000 München Mikroprogramm-Steuereinrichtung
JPS57753A (en) * 1980-06-02 1982-01-05 Hitachi Ltd Microprogram controller
GB2077010B (en) * 1980-06-02 1984-10-31 Hitachi Ltd Microprogramme control method and apparatus therefor
JPS5797151A (en) * 1980-12-10 1982-06-16 Hitachi Ltd Instruction storage device
JPS57203141A (en) * 1981-06-10 1982-12-13 Hitachi Ltd Method and device for controlling microprogram
US4509114A (en) * 1982-02-22 1985-04-02 International Business Machines Corporation Microword control mechanism utilizing a programmable logic array and a sequence counter

Also Published As

Publication number Publication date
NL8205076A (nl) 1984-07-16
GB2133189A (en) 1984-07-18
JPH0640303B2 (ja) 1994-05-25
GB2133189B (en) 1987-05-07
IT8324416A0 (it) 1983-12-28
IT8324416A1 (it) 1985-06-28
DE3344340A1 (de) 1984-07-05
IT1170295B (it) 1987-06-03
US4750108A (en) 1988-06-07
FR2538928B1 (fr) 1989-07-28
GB8334334D0 (en) 1984-02-01
JPS59136851A (ja) 1984-08-06
FR2538928A1 (fr) 1984-07-06

Similar Documents

Publication Publication Date Title
DE1774296C2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE2555963C2 (de) Einrichtung zur Funktionsmodifizierung
DE2364408C3 (de) Schaltungsanordnung zur Adressierung der Speicherplätze eines aus mehreren Chips bestehenden Speichers
DE3687724T2 (de) Digitalprozessorsteuerung.
DE2540975C2 (de) Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse
DE3126878C2 (de) Mikroprogramm-Steuerschaltung zum Ausführen eines aus einem Steuerspeicher in einem Quellenregister aufgenommenen Mikrobefehls
DE69130723T2 (de) Verarbeitungsgerät mit Speicherschaltung und eine Gruppe von Funktionseinheiten
DE2813128C2 (de) Steuereinrichtung für Mikroprogrammspeicher
DE3689595T2 (de) Datenverarbeitungssystem.
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
CH620779A5 (de)
DE2746505C2 (de)
DE2719635A1 (de) Anordnung fuer eine erweiterung einer mikroprogrammsteuerung einer datenverarbeitungsanlage
DE3688232T2 (de) Datenverarbeitungssystem.
DE2717658A1 (de) Anordnung zur ansteuerung eines mikroprogrammspeichers
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE3344340C2 (de) Datenverarbeitungsanordnung zum Durchführen von Mikrobefehlen
DE2951040C2 (de)
DE2744359C2 (de)
DE2551741A1 (de) Datenverarbeitungseinrichtung
DE2364323C2 (de) Verfahren zur Behandlung von Unterbrechungsbedingungen in einer Datenverarbeitungsanlage
DE2227761B2 (de) Speichersystem
DE2854400A1 (de) Anordnung zum wechsel zwischen verzahnt zu verarbeitenden programmen
DE2418921A1 (de) Vorrichtung und verfahren zum speichern und ausfuehren von mikroprogrammen in einem datenverarbeitungssystem
CH632349A5 (de) Einrichtung zur mikrobefehlssteuerung.

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: PHILIPS ELECTRONICS N.V., EINDHOVEN, NL

8339 Ceased/non-payment of the annual fee