DE102004031303A1 - Verfahren und Anordnung zur Instruktionswortdekodierung bei der Ansteuerung von Funkionseinheiten in einem Prozessor - Google Patents
Verfahren und Anordnung zur Instruktionswortdekodierung bei der Ansteuerung von Funkionseinheiten in einem Prozessor Download PDFInfo
- Publication number
- DE102004031303A1 DE102004031303A1 DE200410031303 DE102004031303A DE102004031303A1 DE 102004031303 A1 DE102004031303 A1 DE 102004031303A1 DE 200410031303 DE200410031303 DE 200410031303 DE 102004031303 A DE102004031303 A DE 102004031303A DE 102004031303 A1 DE102004031303 A1 DE 102004031303A1
- Authority
- DE
- Germany
- Prior art keywords
- instruction
- bus
- input
- configuration
- register
- 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.)
- Ceased
Links
- 238000000034 method Methods 0.000 title claims abstract description 13
- 238000012545 processing Methods 0.000 claims description 7
- 239000000872 buffer Substances 0.000 claims description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000006837 decompression Effects 0.000 description 4
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000003786 synthesis reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
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)
Abstract
Die Erfindung betrifft ein Verfahren und eine Anordnung zur Instruktionswortdekodierung, bei dem eine Ansteuerung von Funktionseinheiten in einem Prozessor erfolgt, indem Instruktionsworte als komprimierte, codierte Instruktionswortteile in einem Programmspeicher abgelegt werden und zur Befehlsabarbeitung in einem Zwischenspeicher (Fetch) temporär gespeichert vorliegen, wobei nachfolgend diese Instruktionswortteile decodiert und dekomprimiert zum jeweils gültigen Instruktionswort aufgebaut werden und das Instruktionswort die Funktionseinheiten eines Prozessors in der vollen Instruktionsbreite parallel ansteuert. Die erfindungsgemäße Aufgabenstellung, ein Verfahren und eine Anordnung zur Instruktionswortdekodierung/Dekomprimierung anzugeben, bei der bei der Synthese des Instruktionswortes die lokalen Änderungen an jeder einzelnen Funktionseinheit unabhängig von der Gestalt des gesamten generierten Instruktionswortes berücksichtigt wird und die Mittel zur Synthese des Instruktionswortes diesbezüglich lokal konfiguriert werden, wird dadurch erreicht, dass Instruktionswortteile des Instruktionswortes, welche jeweilig von einem dem Instruktionsdecoder zugehörigen ersten oder zweiten verteilten Instruktionsdecoder zu dekodieren sind, diesen verteilten Instruktionsdecoder über einen jeweilig zu einem ersten und/oder zweiten Bus zugehörigen Instruktionsbus ansteuert und dass ein den ersten oder zweiten verteilten Decoder zu konfigurierendes Steuer- und Konfigurationssignal über ...
Description
- Die Erfindung betrifft ein Verfahren zur Instruktionswortdekodierung bei dem eine Ansteuerung von Funktionseinheiten in einem Prozessor erfolgt, indem Instruktionsworte als komprimierte, codierte Instruktionswortteile in einem Programmspeicher abgelegt werden und zur Befehlsabarbeitung in einem Zwischenspeicher (Fetch) temporär gespeichert vorliegen, wobei nachfolgend die Instruktionswortteile decodiert und dekomprimiert zum jeweils gültigen Instruktionswort aufgebaut werden und dieses die Funktionseinheiten eines Prozessors in der vollen Instruktionsbreite parallel ansteuert.
- Die Erfindung betrifft weiterhin eine Anordnung zur Umsetzung des Verfahrens, wobei ein Programmspeicher, mit einem Zwischenspeicher (Fetch) in Verbindung steht und dessen Ausgang an einen Instruktionsdecoder angeschlossen ist, in welchem ein Decoder, ein Dekompressor und eine Syntheseeinrichtung zum Aufbau des jeweiligen Instruktionswortes enthalten sind und der Ausgang des Instruktionsdecoders über einen Bus mit einer jeweiligen Funktionseinheit eines Prozessors verbunden ist.
- Beim Stand der Technik sind als Hauptklassen von Instruction Set Architekturen (ISA) in Mikroprozessoren, Complex Instruction Set Computer (CISC), Reduced Instruction Set Computer (RISC) und Very Long Instruction Word (VLIW) bekannt.
- CISC und RISC verfügen über eine gute Code-Dichte aber einen geringen Instruction-Level der Parallelität.
- Mit der VLIW Instruction Set Architektur (ISA) ist eine gute Instruction-Level Parallelität bei großen Instruktionswort-Längen gegeben.
- Aber bei VLIW Prozessoren mit einer solchen Instruction Set Architektur ist nachteilig, dass hierbei eine Erhöhung der Instruktionswort-Länge zu einer rapiden Zunahme des Kodierungsumfanges führen kann.
- Vorteilhaft ist dagegen, dass in DSP (Digitale Signal-Prozessoren), die auf einer synchronen Transfer Architektur (STA) basieren, jede ihrer Funktionseinheiten unabhängig voneinander in einer gleichen hierarchischen Ebene arbeitet.
- Deshalb kann in diesen Architekturen die beste Leistungsfähigkeit erreicht werden, wenn die enthaltene Dekodier-Einheit mit einem Programmspeicher verbunden ist, der die gleiche Datenbreite wie das vollständige Instruktionswort aufweist.
- Mit den Deutschen Patentschriften
DE 198 59 389 C1 undDE 101 07 102 A1 und der Offenlegungsschrift 100 65 114 A1 sind weiterhin beim Stand der Technik Lösungen mit dieser Instruction Set Architektur bekannt, die auch auf der Anwendung von TVLIW (Tagged Very Long Instruction Word) basieren, wobei bei diesen genannten Lösungen immer ein Instruktionsdecoder für die Erzeugung des gesamten Instruktionswortes zur Anwendung kommt. - Bei diesen Realisierungen der Instruction Set Architektur (ISA) wird eine solche Kompressionsmethode beziehungsweise eine solche arithmetische Kodierung angewendet, die No-Operation Kommandos (NOP) weitgehend vermeidet und somit Speicherplatz einspart.
- Dies geschieht hauptsächlich dadurch, dass in der Konfigurationsphase (z.B. beim Kompilieren) eine Datensatz-Liste als Übersetzungswerkzeug verwendet wird, in der die gesamten Decoder-/Kompressionsschemata (Regeln des Dekodierens/Dekomprimierens) abgelegt sind.
- Durch die Anwendung von Puffern (Instruktionswortspeicher mit bestimmten Speichertiefen) braucht der Instruktionswort Decoder nur die Differenz zum gespeicherten Inhalt verarbeiten und zwischenspeichern.
- Mit diesen Methoden wird die Redundanz der Quellsoftware, die durch Primärinstruktionsworte repräsentiert wird, verringert.
- Als ein Beispiel für eine zeilenweise Kompression des jeweiligen Instruktionswortes sollen die genannten Anwendungen verstanden werden, wobei jede Zeile das jeweilige vollständige Instruktionswort enthält.
- Als beim Stand der Technik verbleibender Nachteil der bekannten Instruktionswortdecoder/-dekompressoren ist zu verzeichnen, dass durch die zeilenweise Verarbeitung des gesamten Instruktionswortes ein Datenstrom/Fluss an den Eingängen aller Funktionseinheiten des Prozessors unabhängig von lokalen Änderungen Instruktionswortes an nur einigen Funktionseinheiten bewirkt wird und die zu dieser Dekodierung erforderliche Hardware einen verhältnismäßig großen Aufwand zu ihrer Ansteuerung bzw. Konfiguration benötigt.
- Die erfindungsgemäße Aufgabenstellung besteht darin, eine Anordnung zur Instruktionswortdekodierung/Dekomprimierung anzugeben, bei der bei der Synthese des Instruktionswortes seine lokalen Änderungen an jeder einzelnen Funktionseinheit unabhängig von der Gestalt des gesamten generierten Instruktionswortes berücksichtigt wird und die Mittel zur Synthese des Instruktionswortes diesbezüglich lokal konfiguriert werden.
- Die verfahrensseitige Lösung der erfindungsgemäßen Aufgabenstellung wird dadurch erreicht, dass Instruktionswortteile des Instruktionswortes, welche jeweilig von einem dem Instruktionsdecoder zugehörigen ersten oder zweiten verteilten Instruktionsdecoder zu dekodierenden sind, diesen verteilten Instruktionsdecoder über einen jeweilig zu einem ersten und/oder zweiten Bus zugehörigen Instruktionsbus ansteuert. Weiterhin wird ein den ersten oder zweiten verteilten Decoder zu konfigurierendendes Steuer- und Konfigurationssignal über einen zu dem ersten und/oder zweiten Bus zugehörigen Konfigurationsbus angesteuert.
- Die anordnungsseitige Lösung der erfindungsgemäßen Aufgabenstellung wird dadurch erreicht, dass der Ausgang des Zwischenspeichers (Fetch) mit einem ersten und/oder zweiten Kanal verbunden ist, wobei der erste und/oder zweite Kanal aus einem ersten und/oder zweiten Bus und einem Instruktionsdecoder besteht und jeder erste und/oder zweite Bus jeweils einen Konfigurationsbus und einen Instruktionsbus enthält.
- Dieser Instruktionsdecoder wird durch einen ersten und/oder zweiten verteilten Instruktionsdecoder repräsentiert.
- Die jeweiligen Ausgänge der verteilten Instruktionsdecoder sind über einen ersten und/oder zweiten Teil-Prozessorbus mit einer jeweilig zugeordneten ersten und/oder zweiten Funktionseinheit des Prozessors verbunden.
- Die Lösung zielt darauf ab, in den Funktionseinheiten des Prozessors ein verteiltes Instruktionswort (Distributed Instruction Word) zu verarbeiten. Anstatt das gesamte Instruktionswort in einem einzelnen Instruktionsdecoder zu dekodieren und zu komprimieren, werden diese Vorgänge mit Instruktionswortteilen direkt an den verteilten Instruktionswortdecodern vorgenommenen, die den Funktionseinheiten des Prozessors zugeordnet sind.
- Hierbei ist gewährleistet, dass jede Funktionseinheit ihren eigenen Dekodierungszustand einnehmen kann. Auch eine kompatible Abarbeitung des Instruktionswortes nach Methoden des Standes der Technik (TVLIW etc.) wird möglich, wenn auf die vorteilhafte Instruktionsverarbeitung mit solchen eigenen Verarbeitungszuständen in den Funktionseinheiten verzichtet werden kann. In diesem Fall wird diese Kompatibilität der Dekompression dadurch realisiert, in dem die verwendete Datensatz-Liste auf einer dem Stand der Technik kompatiblen Datensatz-Liste basiert (Dictionary-based).
- Damit ergeben sich die Vorteile, dass mit einer geringeren Anzahl von Verbindungsleitungen und eine geringere Größe/Länge der eingesetzten Verbindungsleitungen ein geringer Energieverbrauch, einen geringerer Schaltungsaufwand und eine messbare Reduzierung des Code-Umfangs einhergeht.
- Mit dieser Lösung ergibt sich auch vorteilhaft, das auch beim Entwurf von Signalprozessoren der Einsatz von Technologien zur rekonfigurierbaren digitalen Logik möglich ist, insbesondere dann, wenn alle Funktionseinheiten Datensätze verarbeiten, die in sich abgeschlossen und in sich schlüssig sind.
- Ein besonderer Vorteil ist mit einer guten Skalierbarkeit der Prozessoren, die mit dieser Losung versehen sind, gegeben. Dies wird dadurch realisiert, dass zusätzliche Funktionseinheiten zum digitalen Signalprozessoren hinzugefügt werden können, ohne dass der Programm-Zwischenspeicher(Fetch) und die Decoder verändert werden müssen. Folglich ist es daher auch leicht möglich, einen digitalen Signalprozessor (DSP) auf zwei oder mehr virtuelle DSP aufzuteilen.
- Weiteren ergibt sich bezüglich des Zeitverhaltens/der Frequenz-Charakteristik beim Instruktionsdecoder dieser Lösung der Vorteil, dass einer oder mehrere enthaltene Kanäle mit gleicher oder unterschiedlicher Signal-Bandbreite betrieben werden können.
- Die Kanäle transferieren entlang ihrer Ausdehnung solche Instruktionen über den jeweiligen verteilten Instruktionsdecoder, die jeweils auf den betreffenden Datenpfad bezogenen sind, zu einem jeweiligen oder mehreren Funktionseinheit/en des Prozessors.
- In einem Prozessor-Zyklus sendet damit der Programm-Zwischenspeicher(Fetch) ein Instruktions- und ein Konfigurationssegment. Bei einer Zunahme der Anzahl der Kanäle können die verteilten Instruktionsdecoder mehr neue Daten in einem Zyklus erhalten.
- Eine Variante der Lösung der erfindungsgemäßen Aufgabenstellung wird dadurch ausgestaltet, dass mit einem ersten Eingang des verteilten Instruktionsdecoders mindestens ein Konfigurationsbus des ersten und/oder zweiten Bus und dass mit einem zweiten Eingang des verteilten Instruktionsdecoders mindestens ein Instruktionsbus des ersten und/oder zweiten Bus verbunden ist.
- Eine weitere Variante der Lösung der erfindungsgemäßen Aufgabenstellung wird dadurch angegeben, dass der Konfigurationsbus eine erste Anzahl von Bit-Leitungen enthält, die eine Konfigurationsbus-Adresse repräsentieren, und dass der Konfigurationsbus eine zweite Anzahl von Bit-Leitungen enthält, die ein Konfigurationsbus-Register-Kennzeichen repräsentieren und dass eine zusätzliche Bit-Leitung des Konfigurationsbus ein EX-Bit (Ausführungs-Bit) repräsentiert.
- Bei dieser Lösung wird vorteilhaft realisiert, dass verschiedenen Teile des Konfigurationsbus eine Konfiguration des verteilten Instruktionsdecoders gewährleisten. Dabei gilt, dass das EX-Bit Bit bei aktiven Zustand als ein globales Bit anliegt, d.h. seine Bedeutung gilt für alle Funktionseinheiten des Prozessors in gleicher Weise.
- Eine Ausgestaltung der Variante der Lösung der erfindungsgemäßen Aufgabenstellung wird dadurch erreicht, dass eine weitere Bit-Leitung des Konfigurationsbusses ein CFG/IW-Bit (Konfiguration/Instruktionswort-Bit) repräsentiert.
- Diese Lösung zielt darauf ab, dass je nach Logikzustand mit dem CFG/IW-Bit bestimmt wird, dass auch der verteilte Instruktionsdecoder einer weiteren Zustand der Konfiguration einnimmt, bei dem vorliegende Daten des Instruktionsbus nicht als Instruktion interpretierten werden, sondern als Daten die der Konfiguration dienen. In diesem unterbleibt eine gültige Instruktionsspeicherung in die Register. Dabei wird vorteilhaft realisiert, dass dieses Bit bei aktiven Zustand als ein globales Bit anliegt, d.h. seine Bedeutung gilt für alle verteilten Instruktionsdecoder in gleicher Weise.
- Eine weiterführende Ausgestaltung der Variante der Lösung der erfindungsgemäßen Aufgabenstellung wird dadurch angegeben, dass der Instruktionsbus eine erste Anzahl von Bit-Leitungen enthält, die ein Instruktionswort repräsentieren.
- Eine spezielle Variante der Lösung der erfindungsgemäßen Aufgabenstellung wird dadurch angegeben, dass der verteilte Instruktionsdecoder aus einem ersten Adresskomparator besteht.
- An den erstem Eingang des ersten Adresskomparators sind die Bit-Leitungen von mindestens einer zugehörigen Konfigurationsbus-Adresse bis maximal der Anzahl von zugehörigen Konfigurationsbus-Adressen, die gleich der Kanalanzahl ist, angeschlossen.
- An den zweiten Eingang des ersten Adresskomparators ist der Ausgang des ersten Adressespeichers angeschlossen, der eine Anzahl von mindestens einer bis maximal der Anzahl, die gleich der Kanalanzahl ist, an jeweilig zugehörigen im Konfigurationsbus zu vergleichenden gespeicherten Adressen enthält.
- Weiterhin besteht der verteilte Instruktionsdecoder aus einem ersten Multiplexer, an dessen erstem Eingang die Bit-Leitungen angeschlossen ist, die ein Konfigurationsbus-Register-Kennzeichen von einem Konfigurationsbus repräsentieren.
- Hierbei ist ein Ausgang des ersten Adresskomparators mit einem ersten Tor-Steuereingang des ersten Multiplexers verbunden und dessen Ausgang ist an einen jeweiligen Auswahl-Eingang eines ersten Register-Feldes angeschlossen, welches ein erstes und/oder zweites Register enthält.
- Zusätzlich ist der Ausgang des ersten Adresskomparators zumindest mittelbar mit einem Tor-Steuereingang eines zweiten Multiplexeres verbundene. Die Bit-Leitungen, die das Instruktionswort repräsentieren, sind an den Eingang des zweiten Multiplexers geschaltet.
- Hierbei ist dessen Ausgang mittelbar über einen Eingang des Register-Feldes mit einem jeweiligen Eingang des ersten und/oder zweiten Registers verbunden.
- Ein jeweiliger Ausgang des ersten und/oder zweiten Registers ist mittelbar über einen Ausgang des Register-Feldes verbunden, der zusammen mit der Bit-Leitung des Ex-Bits den Ausgang des verteilten Instruktionsdecoders repräsentiert. Dieser steht mittels des ersten oder zweiten Teil-Prozessorbus mit einem jeweiligen Datenpfad der Funktionseinheit des Prozessors in Verbindung.
- In einem Teil dieser Lösung wird erreicht, dass auftretende sich wiederholende Strukturen eines jeglichen Instruktionswort-Teiles, die nicht das gesamte Instruktionswort sondern den lokalen Datenstrom zwischen einer jeweiligen Funktionseinheit des Prozessors und dem verteilten Decoder betreffen, auch nur im verteilten Decoder vorteilhaft lokal dekodiert werden können.
- Dies geschieht insbesondere dadurch, dass nicht auf eine Speicherung des gesamten Instruktionswortes in einem einzelnen Registerfeld bzw. ersten und/oder zweiten Register, wie beim Stand der Technik (TVLIW etc.), orientiert wird, sondern es wird mit dem jeweiligen Registerfeld der verteilten Decoder eine erforderliche Speicherung unabhängig für jede Funktionseinheit vorgenommen. Dabei ist das auf der Datensatz-Liste basierende Dekompressions-Schema für eine jegliche Funktionseinheit in den angewendeten verteilten Decodern realisiert.
- Eine spezielle Ausgestaltung der Variante der Lösung der erfindungsgemäßen Aufgabenstellung wird dadurch erreicht, dass der Instruktionsbus eine zweite Anzahl von Bit-Leitungen enthält, die eine Instruktionsbus-Adresse repräsentieren.
- Zusätzlich enthält der Instruktionsbus eine weitere Anzahl von Bit-Leitungen, die ein Instruktionswortbus-Register-Kennzeichen repräsentieren.
- Bei dieser Lösung wird vorteilhaft erreicht, dass Teile des Instruktionswortes auch in bestimmten Prozessor-Zyklen Konfigurationsdateien für den verteilten Instruktionswortdecoder enthält. In diesem jeweiligen Prozessor-Zyklus wird hierbei vermieden, dass der verteilte Instruktionsdecoder die Daten des Instruktionsbus als Instruktionswort interpretiert.
- Eine weiterführende Ausgestaltung der Variante der Lösung der erfindungsgemäßen Aufgabenstellung wird damit angegeben, dass der verteilte Instruktionsdecoder aus einem zweiten Adresskomparator besteht. An dessen erstem Eingang sind die Bit-Leitungen von mindestens einer zugehörigen Instruktionsbus-Adresse bis maximal der Anzahl von zugehörigen Instruktionsbus-Adressen, die gleich der Kanalanzahl ist, angeschlossen. An dessen zweiten Eingang ist der Ausgang des zweiten Adressespeichers angeschlossen. Der zweiten Adressespeicher enthält eine Anzahl von mindestens einer bis maximal der Anzahl, die gleich der Kanalanzahl ist, an jeweilig zugehörigen im Instruktionsbus zu vergleichenden gespeicherten Adressen.
- Weiterhin sind an zweitem Eingang des ersten Multiplexers die Bit-Leitungen, die ein Instruktionsbus-Register-Kennzeichen des Instruktionsbus (
12 ) repräsentieren, angeschlossen. - Hierbei ist der Ausgang des zweiten Adresskomparators mit einem zweiten Tor-Steuereingang des ersten Multiplexers verbunden und dessen Ausgang an einen jeweiligen Auswahl-Eingang eines Registerblockes der ein erstes und/oder zweites Register-Feld enthält, ist, wobei jedes Register-Feld jeweils ein auszuwählendes erstes und/oder zweites Register enthält.
- Zusätzlich ist der Ausgang des ersten Adresskomparators an einen ersten Eingang einer CFG/IW-NAND-Verknüpfung geschaltet.
- Weiterhin wird Bit-Leitung des CFG/IW-Bits einerseits mit einem ENABLE-Eingang des zweiten Adresskomparators und anderseits mit einem zweiten Eingang der CFG/IW-NAND-Verknüpfung, der invertierend vorliegt, geschaltet.
- Dessen Ausgang ist mit dem Tor-Steuereingang des zweiten Multiplexeres verbundene, wobei dessen Ausgang mittelbar über einen Eingang des Registerblockes und weiterhin mittelbar über den jeweiligen Eingang des in ihm enthaltenen Register-Feldes mit dem jeweiligen Eingang des auszuwählenden ersten und/oder zweiten Registers verbunden.
- Diese Lösung zielt grundsätzlich darauf ab, dass bei nicht aktivierten CFG/IW-Bit des Konfigurationsbus das vorliegende Instruktionswort aus dem Instruktionswortes in das durch das vorliegenden Konfigurationsbus-Register-Kennzeichen ausgewählte Register eingeschrieben wird.
- Bei dieser Lösung wird weiterhin ermöglicht, dass ein Teil der vorteilhaften Anwendung dadurch realisiert wird, in dem das spezielle CFG/IW-Bit im Konfigurationsbus gesetzt wird. Damit wird der Instruktionsbus auch dafür genutzt, dass mit dessen Daten keine Instruktionsverarbeitung vorgenommen wird, sondern eine weitere Konfiguration des verteilten Instruktionsdecoders eingestellt wird. Bei dieser Konfiguration des verteilten Instruktionsdecoders kann (z.B. durch vorherige Auswahl eines bestimmten ersten und/oder zweiten Registers innerhalb des Registerblockes mittels eines nunmehr vorliegendes Instruktionswortes-Register-Kennzeichen) auch mit den Konfigurationsdaten aus dem vorliegenden Konfigurationsbus realisiert werden, dass in die Instruktionsdekodierung einer anderen Funktionseinheit Einfluss genommen wird.
- Die Erfindung soll anhand eines Ausführungsbeispiels näher erläutert werden. Dabei zeigt:
-
1 ein Blockschaltbild der Anordnung zur Instruktionswortdekodierung bei der Ansteuerung eines Prozessors7 und -
2 ein Blockschaltbild eines ersten oder zweiten verteilten Decoders15 ;16 . - Wie in
1 ersichtlich ist, werden zur Instruktionswortdekodierung bei der Ansteuerung von der ersten und/oder zweiten Funktionseinheit6 ;14 in einem Prozessor7 , in dem Programmspeicher1 die komprimierten, codierten Instruktionsworte als Instruktionswortteile bereitgestellt. Sie werden in der Ausführungsphase des Programms in einem Zwischenspeicher (Fetch)2 , der mit dem Programmspeicher1 in Verbindung steht, zwischengespeichert. - Der Ausgang des Zwischenspeichers (Fetch)
2 ist mit einem ersten und/oder zweiten Kanal9 ,10 verbunden. Hierbei besteht die Gesamtheit der Kanäle aus einem ersten und/oder zweiten Bus3 ;5 und einem Instruktionsdecoder4 . In diesem Instruktionsdecoder4 wird das jeweilige Instruktionswort aus decodierten Instruktionswortteilen dekomprimiert und aufgebaut und zur Ansteuerung des Prozessors7 bereitgestellt. - Erfindungsgemäß wird der Instruktionsdecoder
4 aus einem ersten und/oder zweiten verteilten Instruktionsdecoder15 ;16 repräsentiert. - Die jeweiligen Ausgänge des ersten und/oder zweiten verteilten Instruktionsdecoder
15 ;16 sind über einen ersten und/oder zweiten Teil-Prozessorbus8 ;13 mit einer jeweilig zugeordneten ersten und/oder zweiten Funktionseinheit6 ;14 des Prozessors7 verbunden. - Die Instruktionsworteile werden über den ersten und/oder zweiten Bus
3 ;5 zu dem jeweiligen ersten und/oder zweiten verteilten Instruktionsdecoder15 ;16 transferiert, wobei der erste und/oder zweite Bus3 ;5 jeweilig aus einem Konfigurationsbus11 und einem Instruktionsbus12 besteht. - Mit einem ersten Eingang des jeweiligen verteilten Instruktionsdecoders ist mindestens ein Konfigurationsbus
11 des ersten und/oder zweiten Bus3 ;5 und mit einem zweiten Eingang des verteilten Instruktionsdecoders ist mindestens ein Instruktionsbus12 des ersten und/oder zweiten Bus3 ;5 verbunden. - Dabei enthält der Konfigurationsbus
11 eine erste Anzahl von Bit-Leitungen, die eine Konfigurationsbus-Adresse19 repräsentieren und er enthält eine zweite Anzahl von Bit-Leitungen, die ein Konfigurationsbus-Register-Kennzeichen20 repräsentieren. Weiterhin präsentiert eine zusätzliche Bit- Leitung des Konfigurationsbus11 ein EX-Bit (Ausführungs-Bit)32 . - Der Instruktionsbus
12 enthält eine erste Anzahl von Bit-Leitungen, die ein Instruktionswort24 repräsentieren. - Außerdem enthält der Instruktionsbus
12 eine zweite Anzahl von Bit-Leitungen, die eine Instruktionsbus-Adresse22 repräsentieren und dass der Instruktionsbus12 eine weitere Anzahl von Bit-Leitungen enthält, die ein Instruktionswortbus-Register-Kennzeichen23 repräsentieren. - In
2 ist ersichtlich, dass der verteilte Instruktionsdecoder aus einem ersten Adresskomparator25 besteht, an dessen erstem Eingang die Bit-Leitungen von mindestens einer zugehörigen Konfigurationsbus-Adresse19 bis maximal der Anzahl von zugehörigen Konfigurationsbus-Adressen19 , die gleich der Kanalanzahl ist, angeschlossen sind. - An dessen zweiten Eingang der Ausgang des ersten Adressespeichers
26 angeschlossen ist, welcher eine Anzahl von mindestens einer bis maximal der Anzahl, die gleich der Kanalanzahl ist, an jeweilig im zugehörigen Konfigurationsbus zu vergleichenden gespeicherten Adressen enthält. - Der verteilte Instruktionsdecoder besteht außerdem aus einem zweiten Adresskomparator
27 , an dessen erstem Eingang die Bit-Leitungen von mindestens einer zugehörigen Instruktionsbus-Adresse22 bis maximal der Anzahl von zugehörigen Instruktionsbus-Adressen22 , die gleich der Kanalanzahl ist, angeschlossen sind. - An dessen zweiten Eingang ist der Ausgang des zweiten Adressespeichers
28 angeschlossen ist. Dieser enthält eine Anzahl von mindestens einer bis maximal der Anzahl, die gleich der Kanalanzahl ist, an jeweilig zugehörigen im Instruktionsbus zu vergleichenden gespeicherten Adressen. - Der verteilte Instruktionsdecoder besteht weiterhin aus einem ersten Multiplexer
29 , an dessen erstem Eingang die Bit- Leitungen, die ein Konfigurationsbus-Register-Kennzeichen20 von einem Konfigurationsbus11 repräsentieren. - Auch verfügt der erste Multiplexer
29 des verteilten Instruktionsdecoder über einen zweiten Eingang, an den die Bit-Leitungen, die ein Instruktionsbus-Register-Kennzeichen23 des Instruktionsbus12 repräsentieren, angeschlossen sind. - Einerseits ist der Ausgang des ersten Adresskomparators
25 mit dem ersten Tor-Steuereingang des ersten Multiplexers29 verbunden und zusätzlich ist dieser Ausgang an einen ersten Eingang einer CFG/IW-NAND-Verknüpfung17 geschaltet. - Anderseits ist der Ausgang des zweiten Adresskomparators
27 mit einem zweiten Tor-Steuereingang des ersten Multiplexers29 verbunden. - Weiterhin ist der Ausgang des ersten Multiplexers
29 an einen jeweiligen Auswahl-Eingang eines Registerblockes36 , der ein erstes und/oder zweites Register-Feld34 ;35 enthält, angeschlossen. Mit dieser Verbindung wird das jeweilige Register-Kennzeichen, das vom ersten Multiplexers29 bereitgestellt wird und die Auswahl des ersten und/oder zweiten Register-Feldes15 ;16 bewirkt, an den Auswahl-Eingang des Registerblockes36 transferiert. - Dieses jeweilig ausgewählte Register-Feld enthält jeweils ein auszuwählendes erstes und/oder zweites Register
30 ;31 . - Die Bit-Leitung des CFG/IW-Bits
21 ist einerseits mit einem ENABLE-Eingang des zweiten Adresskomparators27 und anderseits mit einem zweiten Eingang der CFG/IW-NAND-Verknüpfung17 geschaltet, der invertierend gestaltet ist. - Der Ausgang der CFG/IW-NAND-Verknüpfung
17 ist mit dem Tor-Steuereingang des zweiten Multiplexeres18 verbunden. - Die Bit-Leitungen des Instruktionsbus
12 , die ein Instruktionswort24 repräsentieren, sind an den Eingang des zweiten Multiplexeres18 angeschlossen. - Der Ausgang des zweiten Multiplexeres
18 ist mit einem Eingang des Registerblockes36 verbunden. Weiterhin besteht über den jeweiligen Eingang des in ihm enthaltenen ersten und/oder zweiten Register-Feldes15 ;16 mittelbar eine Verbindung zum auszuwählenden ersten und/oder zweiten Registers30 ;31 . - Es steht somit der Ausgang des zweiten Multiplexers
18 mittelbar über einen Eingang des Register-Feldes mit einem jeweiligen Eingang des ersten und/oder zweiten Registers30 ;31 in Verbindung. - Ebenfalls mittelbar steht über einen Ausgang des ersten und/oder zweiten Register-Feldes
34 ;35 ein jeweiliger Ausgang des ersten und/oder zweiten Registers30 ,31 mittels des ersten oder zweiten Teil-Prozessorbus8 ;13 mit einem jeweiligen Datenpfad der Funktionseinheit des Prozessors33 in Verbindung. - Hierbei ist zu realisieren, dass ein jeweiliger Ausgang des ersten und/oder zweiten Register-Feldes
34 ;35 zusammen mit der Bit-Leitung des Ex-Bits32 den Ausgang des verteilten Instruktionsdecoders repräsentiert. -
- 1
- Programmspeicher
- 2
- Zwischenspeicher (Fetch)
- 3
- erster Bus
- 4
- Instruktionsdecoder
- 5
- zweiter Bus
- 6
- erste Funktionseinheit
- 7
- Prozessor
- 8
- erster Teil-Prozessorbus
- 9
- erster Kanal
- 10
- zweiter Kanal
- 11
- Konfigurationsbus
- 12
- Instruktionsbus
- 13
- zweiter Teil-Prozessorbus
- 14
- zweite Funktionseinheit
- 15
- erster verteilter Instruktionsdecoder
- 16
- zweiter verteilter Instruktionsdecoder
- 17
- CFG/IW-Bit-NAND-Verknüpfung
- 18
- Zweiter Multiplexer
- 19
- Konfigurationsbus-Adresse
- 20
- Konfigurationsbus-Register-Kennzeichen
- 21
- CFG/IW-Bit (Konfigurations-/Instruktions-Bit)
- 22
- Instruktionsbus-Adresse
- 23
- Instruktionsbus-Register-Kennzeichen
- 24
- Instruktionswort
- 25
- erster Adresskomparator
- 26
- erster Adressspeicher
- 27
- zweiter Adresskomparator
- 28
- zweiter Adressspeicher
- 29
- erster Multiplexer
- 30
- erstes Register
- 31
- zweites Register
- 32
- EX-Bit (Ausführungs-Bit)
- 33
- Datenpfad der Funktionseinheit des Prozessors
- 34
- erstes Registerfeld
- 35
- zweites Registerfeld
- 36
- Registerblock
Claims (9)
- Verfahren zur Instruktionswortdekodierung bei dem eine Ansteuerung von Funktionseinheiten in einem Prozessor erfolgt, indem Instruktionsworte als komprimierte, codierte Instruktionswortteile in einem Programmspeicher abgelegt werden und zur Befehlsabarbeitung in einem Zwischenspeicher (Fetch) temporär gespeichert vorliegen, wobei nachfolgend die Instruktionswortteile decodiert und dekomprimiert zu dem jeweils gültigen Instruktionswort aufgebaut werden und dieses Instruktionswort die Funktionseinheiten eines Prozessors in der vollen Instruktionsbreite parallel ansteuert, dadurch gekennzeichnet, dass Instruktionswortteile des Instruktionswortes (
24 ), welche jeweilig von einem dem Instruktionsdecoder (4 ) zugehörigen ersten oder zweiten verteilten Instruktionsdecoder (15 ), (16 ) zu dekodierenden sind, diesen verteilten Instruktionsdecoder über einen jeweilig zu einem ersten und/oder zweiten Bus (3 ), (5 ) zugehörigen Instruktionsbus (12 ) ansteuert und dass ein den ersten oder zweiten verteilten Decoder (15 ), (16 ) zu konfigurierendendes Steuer- und Konfigurationssignal über einen zu dem ersten und/oder zweiten Bus (3 ), (5 ) zugehörigen Konfigurationsbus (11 ) ansteuert. - Anordnung zur Umsetzung des Verfahrens, wobei ein Programmspeicher, mit einem Zwischenspeicher (Fetch) in Verbindung steht und dessen Ausgang an einen Instruktionsdecoder angeschlossen sind, in welchem ein Decoder, ein Dekompressor und eine Syntheseeinrichtung zum Aufbau des jeweiligen Instruktionswortes enthalten sind und der Ausgang des Instruktionsdecoders über einen Bus mit einer jeweiligen Funktionseinheit eines Prozessors verbunden ist, dadurch gekennzeichnet, dass der Ausgang des Zwischenspeichers (Fetch) (
2 ) mit einem ersten und/oder zweiten Kanal (9 ), (10 ) verbunden ist, wobei der erste und/oder zweite Kanal aus einem ersten und/oder zweiten Bus (3 ), (5 ) und einem Instruktionsdecoder (4 ) besteht und jeder erste und/oder zweite Bus jeweils einen Konfigurationsbus und einen Instruktionsbus enthält, dass der Instruktionsdecoder (4 ) durch einen ersten und/oder zweiten verteilten Instruktionsdecoder (15 ), (16 ) repräsentiert wird, deren jeweiligen Ausgänge über einen ersten und/oder zweiten Teil-Prozessorbus (8 ), (13 ) mit einer jeweilig zugeordneten ersten und/oder zweiten Funktionseinheit (6 ), (14 ) des Prozessors (7 ) verbunden sind. - Anordnung nach Anspruch 2, dadurch gekennzeichnet, dass mit einem ersten Eingang des verteilten Instruktionsdecoders mindestens ein Konfigurationsbus (
11 ) des ersten und/oder zweiten Busses (3 ), (5 ) und dass mit einem zweiten Eingang des verteilten Instruktionsdecoders mindestens ein Instruktionsbus (12 ) des ersten und/oder zweiten Busses (3 ), (5 ) verbunden ist. - Anordnung nach einem der Ansprüche 2 oder 3, dadurch gekennzeichnet, dass der Konfigurationsbus (
11 ) eine erste Anzahl von Bit-Leitungen enthält, die eine Konfigurationsbus-Adresse (19 ) repräsentieren, und dass der Konfigurationsbus (11 ) eine zweite Anzahl von Bit-Leitungen enthält, die ein Konfigurationsbus-Register-Kennzeichen (20 ) repräsentieren und dass eine zusätzliche Bit-Leitung des Konfigurationsbus (11 ) ein EX-Bit (Ausführungs-Bit) (32 ) repräsentiert. - Anordnung nach Anspruch 4, dadurch gekennzeichnet, dass eine weitere Bit-Leitung des Konfigurationsbusses (
11 ) ein CFG/IW-Bit (Konfiguration/Instruktionswort-Bit) repräsentiert. - Anordnung nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass der Instruktionsbus (
12 ) eine erste Anzahl von Bit-Leitungen enthält, die ein Instruktionswort (24 ) repräsentieren. - Anordnung nach einem der Ansprüche 4 bis 4, dadurch gekennzeichnet, dass der verteilte Instruktionsdecoder aus einem ersten Adresskomparator (
25 ) besteht, an dessen erstem Eingang die Bit-Leitungen von mindestens einer zugehörigen Konfigurationsbus-Adresse (19 ) bis maximal der Anzahl von zugehörigen Konfigurationsbus-Adressen (19 ), die gleich der Kanalanzahl ist, angeschlossen sind und an dessen zweiten Eingang der Ausgang des ersten Adressespeichers (26 ) angeschlossen ist, der eine Anzahl von mindestens einer bis maximal der Anzahl, die gleich der Kanalanzahl ist, an jeweilig zugehörigen im Konfigurationsbus (11 ) zu vergleichenden gespeicherten Adressen enthält, dass der verteilte Instruktionsdecoder weiterhin aus einem ersten Multiplexer (29 ) besteht, an dessen erstem Eingang die Bit-Leitungen, die ein Konfigurationsbus-Register-Kennzeichen (20 ) von einem Konfigurationsbus (11 ) repräsentieren, wobei ein Ausgang des ersten Adresskomparators (25 ) mit einem ersten Tor-Steuereingang des ersten Multiplexers (29 ) verbunden ist und dessen Ausgang an einen jeweiligen Auswahl-Eingang eines ersten Register-Feldes (34 ), welches ein erstes und/oder zweites Register (30 ), (31 ) enthält, angeschlossen ist, dass zusätzlich der Ausgang des ersten Adresskomparators (25 ) zumindest mittelbar mit einem Tor-Steuereingang eines zweiten Multiplexeres (18 ) verbundene ist, dass die Bit-Leitungen, die das Instruktionswort (24 ) repräsentieren, an den Eingang des zweiten Multiplexers (18 ) geschaltet sind, wobei dessen Ausgang mittelbar über einen Eingang des Register-Feldes mit einem jeweiligen Eingang des ersten und/oder zweiten Registers (30 ), (31 ) verbunden ist, dass mittelbar über einen Ausgang des Register-Feldes ein jeweiliger Ausgang des ersten und/oder zweiten Registers (30 ), (31 ) zusammen mit der Bit-Leitung des Ex-Bits (32 ) den Ausgang des verteilten Instruktionsdecoders repräsentiert, welcher mittels des ersten oder zweiten Teil-Prozessorbus (8 ), (13 ) mit einem jeweiligen Datenpfad der Funktionseinheit des Prozessors (33 ) in Verbindung steht. - Anordnung nach einem der Ansprüche 4 bis 7, dadurch gekennzeichnet, dass der Instruktionsbus (
12 ) eine zweite Anzahl von Bit-Leitungen enthält, die eine Instruktionsbus-Adresse (22 ) repräsentieren und dass der Instruktionsbus (12 ) eine weitere Anzahl von Bit-Leitungen enthält, die ein Instruktionswortbus-Register-Kennzeichen (23 ) repräsentieren - Anordnung nach einem der Ansprüche 4 bis 8, dadurch gekennzeichnet, dass der verteilte Instruktionsdecoder aus einem zweiten Adresskomparator (
27 ) besteht, an dessen erstem Eingang die Bit-Leitungen von mindestens einer zugehörigen Instruktionsbus-Adresse (22 ) bis maximal der Anzahl von zugehörigen Instruktionsbus-Adressen (22 ), die gleich der Kanalanzahl ist, angeschlossen sind und an dessen zweiten Eingang der Ausgang des zweiten Adressespeichers (28 ) angeschlossen ist, der eine Anzahl von mindestens einer bis maximal der Anzahl, die gleich der Kanalanzahl ist, an jeweilig zugehörigen im Instruktionsbus (12 ) zu vergleichenden gespeicherten Adressen enthält, dass weiterhin an zweitem Eingang des ersten Multiplexers (29 ) die Bit-Leitungen, die ein Instruktionsbus-Register-Kennzeichen (23 ) des Instruktionsbus (12 ) repräsentieren, angeschlossen sind, wobei der Ausgang des zweiten Adresskomparators (27 ) mit einem zweiten Tor-Steuereingang des ersten Multiplexers (29 ) verbunden ist und dessen Ausgang an einen jeweiligen Auswahl-Eingang eines Registerblockes (36 ) der ein erstes und/oder zweites Register-Feld (34 ), (35 ) enthält, angeschlossen ist, wobei jedes Register-Feld jeweils ein auszuwählendes erstes und/oder zweites Register (30 ), (31 ) enthält, dass zusätzlich der Ausgang des ersten Adresskomparators (25 ) einen ersten Eingang einer CFG/IW-NAND-Verknüpfung (17 ) geschaltet ist, dass die Bit-Leitung des CFG/IW-Bits (21 ) einerseits mit einem ENABLE-Eingang des zweiten Adresskomparators (27 ) und anderseits mit einem zweiten Eingang der CFG/IW-NAND-Verknüpfung (17 ), der invertierend gestaltet ist, geschaltet ist und dessen Ausgang mit dem Tor-Steuereingang des zweiten Multiplexeres (18 ) verbundene ist, wobei dessen Ausgang mittelbar über einen Eingang des Registerblockes (36 ) und weiterhin mittelbar über den jeweiligen Eingang des in ihm enthaltenen Register-Feldes mit dem jeweiligen Eingang des auszuwählenden ersten und/oder zweiten Registers (30 ), (31 ) verbunden ist.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE200410031303 DE102004031303A1 (de) | 2004-06-28 | 2004-06-28 | Verfahren und Anordnung zur Instruktionswortdekodierung bei der Ansteuerung von Funkionseinheiten in einem Prozessor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE200410031303 DE102004031303A1 (de) | 2004-06-28 | 2004-06-28 | Verfahren und Anordnung zur Instruktionswortdekodierung bei der Ansteuerung von Funkionseinheiten in einem Prozessor |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102004031303A1 true DE102004031303A1 (de) | 2006-01-19 |
Family
ID=35508017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE200410031303 Ceased DE102004031303A1 (de) | 2004-06-28 | 2004-06-28 | Verfahren und Anordnung zur Instruktionswortdekodierung bei der Ansteuerung von Funkionseinheiten in einem Prozessor |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102004031303A1 (de) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1046983A1 (de) * | 1999-04-21 | 2000-10-25 | Mitsubishi Denki Kabushiki Kaisha | VLIW-Prozessor und Programmkomprimierungsgerät and -verfahren |
-
2004
- 2004-06-28 DE DE200410031303 patent/DE102004031303A1/de not_active Ceased
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1046983A1 (de) * | 1999-04-21 | 2000-10-25 | Mitsubishi Denki Kabushiki Kaisha | VLIW-Prozessor und Programmkomprimierungsgerät and -verfahren |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10085375B4 (de) | Verfahren und Einrichtung für einen pipeline-verschachtelten Multi-Thread-Befehlsdecodierer | |
DE69833008T2 (de) | Prozessor mit instruktionskodierung mittels eines schablonenfeldes | |
DE2704842C2 (de) | Im Pipeline-Betrieb arbeitende Datenverarbeitungseinrichtung | |
DE69502098T2 (de) | Datenverarbeitung mit mehrfachbefehlssätzen | |
DE19914210A1 (de) | Verfahren und Vorrichtung für eine gestaffelte Ausführung einer Anweisung | |
DE2339636A1 (de) | Programmsteuereinrichtung | |
DE2935906A1 (de) | Mikrokomputer | |
DE3856139T2 (de) | Mikroprozessor | |
DE2536622A1 (de) | Mikroprogrammsteuerung mit flexibler auswahl von steuerworten | |
DE68925376T2 (de) | In Direktabbildung und in Bankabbildung wirksamer Informationsprozessor und Verfahren zum Schalten der Abbildungsschemas | |
DE102004031303A1 (de) | Verfahren und Anordnung zur Instruktionswortdekodierung bei der Ansteuerung von Funkionseinheiten in einem Prozessor | |
DE3101270C2 (de) | Rechneranordnung zur Wortverarbeitung mit einer Einrichtung zur Funktionserweiterung | |
DE2622140C3 (de) | Einrichtung zur Steuerung manueller Operationen | |
DE10260103A1 (de) | Verfahren und Vorrichtung zur Änderung von Software in einem Steuergerät sowie entsprechendes Steuergerät | |
DE10107102B4 (de) | Verfahren und Anordnung zur Instruktionswortgenerierung bei der Ansteuerung von Funktionseinheiten in einem Prozessor | |
EP1764682A2 (de) | Verfahren zum Verarbeiten von Daten verschiedenen Datentyps in einer Prozessorarchitektur | |
DE2502005C2 (de) | Schaltungsanordnung zur Zuordnung von Adressen zu Operationen zwecks Ausführung von Befehlen in einer Datenverarbeitungseinrichtung | |
DE69923539T2 (de) | Ein Mehrport-Speicher | |
DE3539129A1 (de) | Schaltung zur aufbereitung externer daten fuer mikroprozessoren | |
EP1509842A2 (de) | Verfahren zum codieren/decodieren von vliw cached befehlen | |
DE19836578C2 (de) | Integrierter Speicher mit Interblockredundanz | |
DE10359949A1 (de) | Multithread-Prozessorarchitektur zum getriggerten Thread-Umschalten ohne Taktzyklusverlust, ohne Umschalt-Programmbefehl und ohne Erweiterung des Programmbefehlsformates | |
DE2326446C2 (de) | Datenverarbeitungsgerät mit einer Steuereinheit | |
DE10048674B4 (de) | Anzeigecomputer und Verfahren zum Betreiben eines Anzeigecomputers | |
DE19545516A1 (de) | Verfahren zum Ersetzen indirekter Adressen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |