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 PDF

Info

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
Application number
DE200410031303
Other languages
English (en)
Inventor
Gordon Dipl.-Inf. Cichon
Hendrik Dipl.-Ing. Seidel
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.)
Technische Universitaet Dresden
Original Assignee
Technische Universitaet Dresden
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 Technische Universitaet Dresden filed Critical Technische Universitaet Dresden
Priority to DE200410031303 priority Critical patent/DE102004031303A1/de
Publication of DE102004031303A1 publication Critical patent/DE102004031303A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel 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 und DE 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 Prozessors 7 und
  • 2 ein Blockschaltbild eines ersten oder zweiten verteilten Decoders 15; 16.
  • Wie in 1 ersichtlich ist, werden zur Instruktionswortdekodierung bei der Ansteuerung von der ersten und/oder zweiten Funktionseinheit 6; 14 in einem Prozessor 7, in dem Programmspeicher 1 die komprimierten, codierten Instruktionsworte als Instruktionswortteile bereitgestellt. Sie werden in der Ausführungsphase des Programms in einem Zwischenspeicher (Fetch) 2, der mit dem Programmspeicher 1 in Verbindung steht, zwischengespeichert.
  • Der Ausgang des Zwischenspeichers (Fetch) 2 ist mit einem ersten und/oder zweiten Kanal 9, 10 verbunden. Hierbei besteht die Gesamtheit der Kanäle aus einem ersten und/oder zweiten Bus 3; 5 und einem Instruktionsdecoder 4. In diesem Instruktionsdecoder 4 wird das jeweilige Instruktionswort aus decodierten Instruktionswortteilen dekomprimiert und aufgebaut und zur Ansteuerung des Prozessors 7 bereitgestellt.
  • Erfindungsgemäß wird der Instruktionsdecoder 4 aus einem ersten und/oder zweiten verteilten Instruktionsdecoder 15; 16 repräsentiert.
  • Die jeweiligen Ausgänge des ersten und/oder zweiten verteilten Instruktionsdecoder 15; 16 sind ü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.
  • Die Instruktionsworteile werden über den ersten und/oder zweiten Bus 3; 5 zu dem jeweiligen ersten und/oder zweiten verteilten Instruktionsdecoder 15; 16 transferiert, wobei der erste und/oder zweite Bus 3; 5 jeweilig aus einem Konfigurationsbus 11 und einem Instruktionsbus 12 besteht.
  • Mit einem ersten Eingang des jeweiligen verteilten Instruktionsdecoders ist mindestens ein Konfigurationsbus 11 des ersten und/oder zweiten Bus 3; 5 und mit einem zweiten Eingang des verteilten Instruktionsdecoders ist mindestens ein Instruktionsbus 12 des ersten und/oder zweiten Bus 3; 5 verbunden.
  • Dabei enthält der Konfigurationsbus 11 eine erste Anzahl von Bit-Leitungen, die eine Konfigurationsbus-Adresse 19 repräsentieren und er enthält eine zweite Anzahl von Bit-Leitungen, die ein Konfigurationsbus-Register-Kennzeichen 20 repräsentieren. Weiterhin präsentiert eine zusätzliche Bit- Leitung des Konfigurationsbus 11 ein EX-Bit (Ausführungs-Bit) 32.
  • Der Instruktionsbus 12 enthält eine erste Anzahl von Bit-Leitungen, die ein Instruktionswort 24 repräsentieren.
  • Außerdem enthält der Instruktionsbus 12 eine zweite Anzahl von Bit-Leitungen, 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.
  • In 2 ist ersichtlich, 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.
  • 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-Adresse 22 bis maximal der Anzahl von zugehörigen Instruktionsbus-Adressen 22, 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-Kennzeichen 20 von einem Konfigurationsbus 11 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-Kennzeichen 23 des Instruktionsbus 12 repräsentieren, angeschlossen sind.
  • Einerseits ist der Ausgang des ersten Adresskomparators 25 mit dem ersten Tor-Steuereingang des ersten Multiplexers 29 verbunden und zusätzlich ist dieser Ausgang an einen ersten Eingang einer CFG/IW-NAND-Verknüpfung 17 geschaltet.
  • Anderseits ist der Ausgang des zweiten Adresskomparators 27 mit einem zweiten Tor-Steuereingang des ersten Multiplexers 29 verbunden.
  • Weiterhin ist der Ausgang des ersten Multiplexers 29 an einen jeweiligen Auswahl-Eingang eines Registerblockes 36, der ein erstes und/oder zweites Register-Feld 34; 35 enthält, angeschlossen. Mit dieser Verbindung wird das jeweilige Register-Kennzeichen, das vom ersten Multiplexers 29 bereitgestellt wird und die Auswahl des ersten und/oder zweiten Register-Feldes 15; 16 bewirkt, an den Auswahl-Eingang des Registerblockes 36 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 Adresskomparators 27 und anderseits mit einem zweiten Eingang der CFG/IW-NAND-Verknüpfung 17 geschaltet, der invertierend gestaltet ist.
  • Der Ausgang der CFG/IW-NAND-Verknüpfung 17 ist mit dem Tor-Steuereingang des zweiten Multiplexeres 18 verbunden.
  • Die Bit-Leitungen des Instruktionsbus 12, die ein Instruktionswort 24 repräsentieren, sind an den Eingang des zweiten Multiplexeres 18 angeschlossen.
  • Der Ausgang des zweiten Multiplexeres 18 ist mit einem Eingang des Registerblockes 36 verbunden. Weiterhin besteht über den jeweiligen Eingang des in ihm enthaltenen ersten und/oder zweiten Register-Feldes 15; 16 mittelbar eine Verbindung zum auszuwählenden ersten und/oder zweiten Registers 30; 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 Registers 30; 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 Registers 30, 31 mittels des ersten oder zweiten Teil-Prozessorbus 8; 13 mit einem jeweiligen Datenpfad der Funktionseinheit des Prozessors 33 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-Bits 32 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)

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Anordnung nach Anspruch 4, dadurch gekennzeichnet, dass eine weitere Bit-Leitung des Konfigurationsbusses (11) ein CFG/IW-Bit (Konfiguration/Instruktionswort-Bit) repräsentiert.
  6. 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.
  7. 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.
  8. 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
  9. 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.
DE200410031303 2004-06-28 2004-06-28 Verfahren und Anordnung zur Instruktionswortdekodierung bei der Ansteuerung von Funkionseinheiten in einem Prozessor Ceased DE102004031303A1 (de)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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