INSTRUCTION DECODER FOR A PROCESSOR CONTROL UNIT

Abstract: The instructions of a processor to be executed are decoded by the instruction decoder of the control unit and control signals for individual units are generated from these. In order to achieve a low space requirement for the instruction decoder and a low wiring outlay between the instruction decoder and the units to be controlled, and also a low transit time for the control signals, the instruction decoder (BD) consists of two decoding stages (DES1, DES2) which have a regular structure. Both contain an AND level and an OR level. The OR level is compressed in each case to a line of logic elements. The instructions (BEF) are fed to the first decoding stage (DES1). Signals (AS) are decoded from the instructions in the first decoding stage (DES1). The control signals (S) required for controlling the units of the processor are formed from said signals at the correct time by gating with corresponding clock signals (TS) during an instruction cycle in the second decoding stage (DES2). <IMAGE>

Description: Befehlsdecoder fdr ein Steuerwerk eines Prozessors Die Erfindung bezieht sich auf einen Befehlsdecoder für ein Steuerwerk eine Prozessors, der die vom Prozessor auszuführenden Befehle decodiert und daraus Steuersignale für andere Einheiten des Prozessors erzeugt, bestehend aus einer ersten Decodierungsstufe mit einer aus sich kreuzenden ersten Leitungen und zweiten Leitungen aufgebauten und an den Kreuzungspunkten verknup,baren UND-Ebene, deren ersten Leitungen die Befehle zugefhrt werden und bei der entsprechend den Befehlen eine Verknüpfung von den ersten Le-- stunden zu den zweiten Leitungen vorliegt, und mit einer ODER-Ebene, durch die die zweiten Leitungen über Verkn-- pfungsglieder zur Erzeugung von Ausgangssignalen mit Ausgangsleitungen verknüpfbar sind, und einer zweiten Decodierungsstufe, der die Ausgangssignale der ersten Decodierungsstufe und Taktsignaie zugeführt werden und die aus den Ausgangs signalen und den Taktsignalen die taktrichtigen Steuersignale für die anderen Einheiten des Prozessors erzeugt. Beim Entwurf hochintegrierter Bausteine mit Prozessorstruturen ist im Steuerwerk der Befehlsdecoder meist eine kri- tische Einheit, bei deren Entwurf ein grosser Teil des Zeitaufwandes auftritt. Durch eine Realisierung des Befehlsdecoders mit regelmässigen Strukturen kann dieser Entwurfsaufwand reduziert werden und der Entwurf selber übersicht- licher und sicherer werden. Aus diesem Grunde werden bei derartigen Mikroprozessorstrukturen die Befehlsdecoder mit Hilfe von ROMs oder programmierbaren Schaltungen (PLAì rea- lisiert. Nachteilig bei diesen Lösungen ist der relativ hohe Flächenbedarf, wenn ein herkömmliches ROM oder eine herkömmliche programmierbare Schaltung verwendet wird. Der Flächenbedarf steigt stark mit der Zahl der Eingänge, die entsprechend der Breite des Befehlswortes z.B. zwischen 16 und 48 liegen kann, und der Zahl der Ausgänge, für die typische Werte 100 bis 300 sind. Ein Ausweg aus diesem Problem kann die Teilung des Befehlsdecoders in mehrere kleine programmierbare Schaltungen oder ROMs sein Dann aber kann die Anordnung und die Verdrahtung der einzelnen ROMs oder programmierbaren Schaltungen zu einem Problem werden. in Steuerwerk bei einem Prozessor mit eie Befehlsdeco- der der eingangs angegebenen Art kann .3. aus H.G.Sc'n-wartzel, CAD für VLSI, Springerverlag 1982, S. 50 bis 62 entnommen werden. Die der Erfindung zugrundeliegende Aufgabe besteht darin, einen 3efehlsdecoder für ein Steuerr erz eines Prozessors derart aufzubauen, das regelmc51=e Strukturen verwendbar sind, aber der Aufwand für die verwendeten Schaltungen und für die Verdrahtung dieser Schaltungen nicht gross ist. Diese Aufgabe wird bei einem Steuerwerk der eingangs angegebenen Art durch folgende Merkmale gelöst: a) die ODER-Ebene der ersten Decodierungsstufe besteht aus einer Linie von Verknüpfungsgliedern, b) jede zweite Leitung der UND-Ebene der ersten Decodierungsstufe ist jeweils nur mit einem ihr zugeordneten Verknüpfungsglied der ODER-Ebene verbunden7 c) durch die ODER-Ebene sind mehrere zweite Leitungen der UND-Ebene zu einer Ausgangsleitung verbindbar, d) die zweite Decodierungsstufe besteht aus einer aus sich kreuzenden dritten und vierten Leitungen aufgebauten und an den Kreuzungspunkten zwischen den dritten und vierten Leitungen verknüpfbaren UND-Ebene und aus einer ODER-Ebene aus in einer Linie angeordneten Verknüpfungsgliedern, e) die dritten Leitungen der UND-Ebene der zweiten Decodierungsstufe sind jeweils mit Ausgangsleitungen der ersten Decodierungsstufe verknüpft, f) an den vierten Leitungen liegen zeitlich versetzte Taktsignale an, g-) zur ze-itlicben Festlegung eines jeden usgangssignals von der ersten Decodierungsstufe ist die vierte Leitung, auf der das Taktsignal zum gewünschten Zeitpunkt auftritt, mit der diesem Ausgangssignal zugeordneten dritten Leitung verknüpft, h) jede dritte Leitung der zweiten Decodierungsstufe ist jeweils nur mit einem iEnr zugeorcneten Verknüpfungsglied dnr ODER-Ebene verbunden, i) durch die ODER-Ebene sind mehrere dritte Leitungen mit einer Leitung für ein Steuersignal verbindbar. Zur Realisierun des Befehlsdecoders werden somit zwei Decodierungsstufen verwendet, die gleiche Struktur aufweisen, nämlich eine UND-Ebene und eine auf eine Linie reduzierte ODER-Ebene. Die Auswahl bestimmter Gruppen von Bitmustern in den Sefehlsworten erfolgt in der UND-Ebene durch sog. Produktter-'e. Diese Produktterme werden nicht wie üblich mehrfach ausgenutzt. Sie werden ggf. sogar mehrfach gebildet, um die Decodierung einzelner Befehle voneinander zu entkoppeln. Die Folge fst, dass die ODER-Ebene auf eine Linie von Verknüpfungsgliedern reduziert werden kann, die zudem gegenüber einer programmierbaren Schaltung (PLA) gedreht werden kann und neben die UND-Ebene angeordnet werden kann. Die Folge ist ein geringerer Flächenbedarf für die erste und entsprechend auch für die zweite Decodierungsstufe. Zur Erzeugung von Steuersignalen beliebigen zeitlichen Verlaufs können die Verknüpfungsglieder der ODER-Ebene der zweiten Decodierungsstufe mehrere dritte Leitungen, die über Ve,rknüpfungsglieder mit verschiedenen vierten Lei tungen verknüpft sind, zusammenfassen. Der Verdrahtungsaufwand innerhalb des Prozessorbausteins kann dadurch reduziert werden, dass die Decodierungsstufen räumlich benachbart neben den¯-Einneit-en des Prozessors zur geordnet sind, denen die meisten Steuersignale zugeführt werden, dass sowohl die erste als auch die zweite Decodie rungsstufe in Scheiben eingeteilt ist, wobei jeder Unter einheit der anzusteuernden Einheiten jeweils eine oder mehrere Scheiben der ersten und zweiten Decodierungsstufe zugeordnet sind, und dass die Scheiben sowohl der ersten Decodier'zgsstufe als auch der zeiten Decodierungsstufe unabhängig von anderen Scheiben der ersten und zweiten De codierungsstufe arbeiten. Um einen geraden Leitungsverlauf für die Steuersignale zwischen den Decodierungsstufen und den zu steuernden Ein- reiten zu erreichen, ist es ggf. zweckmässig, zwischen ein denen Scheiben der ersten und zweiten Decodierungsstufe Leerscheoen einzufügen. ie einfache Struktur, der beiden Decodierungsstufen wird insbesondere auch dadurch erreicht, dass den zu steuernden einheiten möglichst scharf abgegrenzte Bitgruppen Im 3efehlswort zugeordnet werden und die einzelnen Bits der Be fehlsworte möglichst nicht mehrfach belegt werden. Die Erfindung hat somit folgende Vorteile: Die einzelnen Scheiben der ersten bzw. zweiten Decodie rungsstufe sind voneinander entkoppelt. Dies hat zur Folge, dass die Decodierungsstufen leicht geändert werden können und an neue zu steuernde Einheiten einfach angepasst werden können. Durch das Einfügen von leeren Scheiben innerhalb der beiden .Decodierungsstufen wird eine schräge Verdrahtung zwischen den Decodierungsstufen und den zu steuernden Einheiten vermieden und damit der Flächenbedarf für die Ver drahtung verringert. Damit erreicht man kurze Ve¯^i-;unns'eitüngen zszne den Decodierungsstufen und z steuernden Einheiten und geringe Laufzeiten für die Steuersignale. Im folgenden wird die Erfindung anhand eines Ausführungs- beispiels weiter erläutert. Es zeigen Fig 1 ein Blockschaltbild eines Prozessors, aus dem sich ergibt, wie das Steuerwerk zu den anderen Einhei ten des Prozessors angeordnet ist, Fig. 2 ein, Blockschaltbild des Befehlsdecoders bestehend aus der ersten Decodierungsstufe und der zweiten Decodierungsstufe Fig. 3 eine Realisierun- der ersten Decbdierungsstufe, Fig. 4 eine Realisierurg der zweiten Decodierungsstufe, Fig. 1 zeigt ein Blockschaltbild eines Prozessors und insbesondere die Anordnung des Steuerwerks CU innerhalb des Prozessors. Neben dem Steuerwerk CU ist eine Dateneinheit DU angeordnet, in dem die Einheiten zusammengefasst sind, die zur Bearbeitung von Daten im Prozessor erforderlich sind. Auf der anderen Seite des Steuerwerks CU liegt die Speichereinheit MU. Diese besteht im Ausführungsbeispiel aus einem RAM, e-i-nem iiM und einem- Adrssenregister AR. Die Dateneinheit DU enthält im Ausführungsbeispiel ein Rechenwerk RALU, einen Zeitzähler TC und einen Sequencer SE. Mit Hilfe des Steuerwerks CU werden Befehle decodiert und entsprechend den decodierten Befehlen Steuersignale S1, S2, S3 z.B. für die Einheiten der Dateneinheit DU erzeugt. Das Steuerwerk CU enthält zu diesem Zwecke einen Befehlsdecoder BD. Dieser erhält von einem Befehleregister BR die zu decodierenden Befehle. Die Befehle werden entweder vom ROM oder von RAM in das Befehlsregister BR geladen. Um die takvric:^tigisn Steuersignale S bilden zu können, ist Cir, Taktgeneratcr SG vorgesehen, der zeitlich versetzte Takt- signale dem efehlsdecoder 5 zuführt. Die Verbindung innerhalb der einzelnen Einheiten des Prozessors und die Verbindung mit anderen Einheiten auRerhalo des Prozessors erfolgen über Busse, z.B. Datenbusse DB und Adressbusse AB. Im folgenden wird der Aufbau der Dateneinheit DU und der Speichereinheit MU als bekannt vorausgesetzt und nur auf die Realisierung des Steuerwerks CU näher eingegangen und hier ins besondere auf die Realisierung des Befehlsdecoders BD. Aus Fig. 2 ergibt sich, dass der Befehlsdecoder BD zweistufig aufgebaut ist. Er besteht aus einer ersten Deco dierungestufe DES1 und einer zweiten Decodierungsstufe DES2. Der ersten Decodierungsstufe DES1 werden die Befehle BEF zugeführt. Die Breite der Befehle BEF kann z.B. 32 bit sein. Die erste Decodierungsstufe DES1 decodiert die Befehle BEF und erzeugt auf Ausgangsleitungen AGL Ausgangssignale AS, die allerdings noch nicht taktrichtig auftreten. Die Anzahl der Ausgagsleitungen kann z.B. 300 sein. in der zweiten Decodierungsstufe DES2 werden die Ausgang signale AS mit' Taktsignalen TS so verknüpft, dass die Steuersignale S am Ausgang der zweiten Decodierungsstufe DES2 zeitrichtig auftreten. Um dies zu erreichen, können z.B. 10 zeitlich versetzt auftretende Taktsignale TS der zweiten Decodierungsstufe DES2 zugeführt werden. Die Anzahl der am Ausgang der zweiten Decodierungsstufe DES2 auf Steuerleitungen SL auftretenden Steuersignale S kann z.B. 230 betragen. Die Realisierung der ersten Decodierungsstufe DES, ergibt sich aus Fig. 3. Diese besteht aus zwei Bestandteien, einer UND-Ebene AND. und einer ODER-Ebene OR Die UND-Ebene ist wie bei einer programmierbaren Schaltung aufgebaut und besteht aus sich kreuzenden ersten Leitungen L1 und zweiten Leitungen L2. Entsprechend der gewünschten Programmierung ist an den Kreuzungspunkten der UND-Ebene AND1 jeweils ein Verknüpfungsglied VG angeordnet. Der Auf- bau und die Funktion einer derartigen UND-Ebene ist bekannt und braucht daher hier nicht weiter erläutert zu werden. Die einzelnen Bits der Befehle BEF können entweder invertiert oder nicht invertiert innerhalb der UND-Ebene AND1 verwendet werden, um bei einem entsprechenden Bitmuster im Befehlswort auf einer der zweiten Leitungen L2 ein Signal zu erzeugen. Dieses Signal liegt solange auf dieser Leitung L2, solange das Befehlswort BEF anliegt. Die ODER-Ebene OR, besteht nach Fig. 3 aus einer Linie von Verknüpfungsgliedern VG. Jede zweite Leitung L2 ist jeweils nur mit einem Verknüpfungsglied VG der ODER-Ebene verbunden (keine Mehrfachausnutzung von Produkttermen). Mit Hilfe der ODER-Ebene - ORr.kännen mehrere zweite Leitungen L2 zu einer Ausgangsleitung AS verknüpft werden. Da einer zu steuernden Einheit ganz bestimmte Bits innerhalb des- Befehls zugeordnet sind, ist es möglich, die erste Decodierungsschaltung DES1 in Scheiben SCB1 auf2zu- teilen In Fig. 3 sind drei derartige Scheiben SCB1 dargestellt. Eine solche Scheibe SCB1 ist somit einer bestimmten zu steuernden Einheit oder zu steuernden Untereinheit zugeordnet und decodiert aus dem Befehl BEF die Untergruppe, durch die diese Einheit oder Untereinheit gesteuert wird. Durch diese Zuordnung von Bitgruppen des Befehls BEF z@ Z@ Steuernden Einheiten wird erreicht, dass die ainzelnen Scheiben SCB, der Decodierungsschaltung DES, unachängig voneinander sind. wodurch Änderungen wesentlich erleichtert werden. Auf den Ausgangsleitungen AGL treten die Ausgangssignale AS auf, die in der zweiten Decodierungsstufe DES2 weiter bearbeitet werden Diese zweite Decodierungsstufe DES2, die in Fig. 4 gezeigt ist, besteht ebenfalls aus einer UND-Ebene AND2 und einer ODER-Ebene OR2. Die UND-Ebene AMD2 ist aus sich kreuzenden dritten Leitungen. L3 und vierten Leitungen @@ aufgebaut, an deren Kreuzungspunkte Verknüpfungsglieder VG angeordnet werden- können. Den vierten Lei tungen L4 werden dle Taktsignale TS zugeführt die dritten Leitungen L 3 Sind mit Ausgangs leitungen AGL von der ersten Dacodierongsstufe DES, verknüpft. Je nachdem, an welchen Kreuzungspunkten der UND-Ebene AND2 Verknüpfungsglieder VG angeordnet sind, werden die Ausgangsssignale AS der ersten Decodierungsstufe mit den entsprechenden Taktsignalen ver knüpft. Diese nunmehr taktrichtigen Signale werden mit Hilfe der Verknüpfungsglieder VG der ODER-Ebene 0R2 auf die Steuerleitungen SL als Steuersignale übertragen und den zu steuernden Einheiten zugeführt. Durch entsprechende Verknüpfung zwischen den Signalen TS und den Signalen auf den Leitungen L3 der UND-Ebene AND2 sowie durch entsprechende Zusammenfassung dieser Signale durch die ODER-Ebene OR2 können Steuersignale S auf den Steuerleitungen SL mit beliebiger Impulsform erzeugt werden. Zum Beispiel könnten mehrere Leitungen L3 mit verschiedenen Leitungen L4 ver knüpft werden und -über-die ODER-Ebene OR2 zu einer Steuerleitung SL zusammengefasst werden und dadurch ein Impuls zug gewünschter Form erzeugt werden. Aus Fig. 4 ergibt sich, dass auch die zweite Decodierungs- stufe DES in Scheiben aufgeteIlt ist. Diese Scheiben snd mit SO32 bezeichnet. Auch bei der zweiten Decodierungs- stufe DES2 arbeiten die einzelnen Scheiben SDB2 unabhangig voneinander, so dass es möglich ist, einzelne SCB2 hinzu- zufügen oder wegzunehmen, ohne dass die Funktion der übri- gen Scheiben SCB2 dadurch beeinflusst würde. Deshalb ist es auch möglich, Leerscheiben einzufügen, um eine gewunscflte gerade Verdrahtung der Steuerleitungen SL zu den zu steuern- den Einheiten zu erreichen. Aus Fig. 3 und Fig. a ergibt sich, dass durch die zweite Decodierungsstufe DES, mehrere Scheiben SCB1 der ersten De codierungsstufe DES1, verknüpft werden können. Die Ges als tung der ersten oder zweiten Decodierungsstufe DES1 und DES2 hängt davon ab, durch wieviele Bitkombinationen des Beeehls- wortes eine Einheit gesteuert Wind unc zu welchen Zeitpunk- ten die den Bitkombinationen zugeordneten Steuersignale auftreten sollen. Durch entsprechende Gestaltung der ersten Decodierungsschaltung und der zweiten Decodierungsschaltung können die gewünschten Steuersignale auf einfache Welse erzeugt werden. 6 Patentansprüche 4 Figuren

Claims: Instruction decoder for a processor control unit, which decodes the instructions to be executed by the processor and generates from these control signals for other units of the processor, comprising: a) a first decoding stage (DES₁) which a1) exhibits an AND plane (AND₁) which is built up of intersecting first lines (L₁) and second lines (L₂) and of logic elements (VG) arranged at the points of intersection, the first lines (L₁) of which are supplied with the instructions and in which a logic combination from the first lines (L₁) to the second lines (L₂) exists in accordance with the instructions, a2) exhibits an OR plane (OR₁) having in each case one logic element (VG) per second line (L₂) of the AND plane (AND₁), which element is only connected to a single second line (L₂) and which forwards the product term signal of the associated second line as output signal (AS), in connection with which a plurality of output signals (AS) logically combined with one another can be supplied to an output line (AGL), b) a second decoding stage (DES₂) which b1) exhibits an AND plane (AND₂) which is built up of intersecting third lines (L₃) and fourth lines (L₄) and logic elements (VG) arranged at the points of intersection, the third lines (L₃) of which are in each case connected to output lines (AGL) of the first decoding stage (DES₁), the fourth lines (L₄) of which are supplied with clock signals (TS) which are offset with respect to one another in time, and in which the fourth line (L₄), on which the clock signal occurs at the desired line (L4), is logically combined, for defining each output signal in time, with the third line (L₃) associated with this output signal, b2) exhibits an OR plane (OR₂) having in each case one logic element (VG) per third line (L₃) of the AND plane (AND₂), which element is only connected to a single third line and which forwards the signal on the associated third line (L₃) to a line (SL) for a control signal, in which arrangement a plurality of logic elements can be connected to a line (SL) for control signals, c) in which arrangement the logic elements (VG) of each OR plane (OR) are located adjacent to the associated AND plane (AND) in a line which extends parallel to the first lines (L₁) and fourth lines (L₄), respectively. Instruction decoder according to Claim 1, characterised in that the logic elements (VG) of the OR plane (OR₂) of the second decoding stage (DES₂) combine a plurality of third lines (L₃) which are logically combined to various fourth lines (L₄) via logic elements (VG). Instruction decoder according to Claim 1, characterised in that a third line (L₃) is connected to a plurality of fourth lines (L₄) via in each case one logic element (VG). Instruction decoder according to one of the preceding claims, characterised in that the decoding stages (DES₁, DES₂) are spatially adjacently arranged next to the units of the processor which are supplied with most of the control signals (S), in that both the first and the second decoding stage is divided into slices (SCB₁, SCB₂), in each case one or more slices of the first decoding stage (DES₁) and of the second decoding stage (DES₂) being allocated to each unit or subunit of a unit to be controlled, and in that these slices both of the first and the second decoding stage operate independently of other slices of the first and second decoding stage. Instruction decoder according to Claim 4, characterised in that, in order to obtain a straight line run for the control signals (S) between the second decoding stage (DES₂) and the unit to be controlled, if necessary, no dummy slices exhibiting used circuits are in each case inserted between individual slices of the first decoding stage (DES₁) and the second decoding stage (DES₂).

Inventors: MOELLER, WOLF-DIETRICH, DR. ING., SANDWEG, GERD, DR. ING., WALLSTAB, STEFAN, DIPL.-ING.
Applicants: SIEMENS AKTIENGESELLSCHAFT
Application year: 1984
Main classification: G06F9
IPC codes: G06F9