DE10296742T5 - Effizientes Hochleistungsdatenoperationselement zur Verwendung in einer Umgebung einer umkonfigurierbaren Logik - Google Patents

Effizientes Hochleistungsdatenoperationselement zur Verwendung in einer Umgebung einer umkonfigurierbaren Logik Download PDF

Info

Publication number
DE10296742T5
DE10296742T5 DE10296742T DE10296742T DE10296742T5 DE 10296742 T5 DE10296742 T5 DE 10296742T5 DE 10296742 T DE10296742 T DE 10296742T DE 10296742 T DE10296742 T DE 10296742T DE 10296742 T5 DE10296742 T5 DE 10296742T5
Authority
DE
Germany
Prior art keywords
reconfigurable
unit
chip
functional units
command
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
DE10296742T
Other languages
English (en)
Inventor
Joshua Canton Lindner
Gary Sunnyvale Lai
Peter Santa Clara Lam
Mark Edward Stittsville Rollins
Vladimir Mountain View Dinkevich
Craig Bradley Sunnyvale Greenberg
Christopher E. San Jose Phillips
Hsin Fremont Wang
Bradley L. Oakland Taylor
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE10296742T5 publication Critical patent/DE10296742T5/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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • 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/30181Instruction operation extension or modification
    • 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, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units

Abstract

Ein umkonfigurierbares Chip, enthaltend:
mehrere umkonfigurierbare Funktionseinheiten, die so ausgebildet sind, daß sie verschiedene Funktionen implementieren, wobei die umkonfigurierbaren Funktionseinheiten Multiplexer, wenigstens eine Schiebereinheit und wenigstens eine arithmetisch-logische Einheit einschließen, wobei die umkonfigurierbaren Funktionseinheiten durch einen Umkonfigurierbare-Funktionseinheit-Befehl konfiguriert werden, wobei der Befehl die Konfiguration der Multiplexer, der Schiebereinheit und der arithmetisch-logischen Einheit kontrolliert; und
Verbindungselemente, die so ausgebildet sind, daß sie einige der umkonfigurierbaren Funktionseinheiten selektiv miteinander verbinden.

Description

  • Verwandte Anmeldung/Priorität
  • Die vorliegende Anmeldung beansprucht die Priorität der provisorischen Anmeldung Nr. 60/288,298, die am 2. Mai 2001 eingereicht worden ist.
  • Hintergrund der Erfindung
  • Die vorliegende Erfindung bezieht sich auf umkonfigurierbare Logikchips, insbesondere auf umkonfigurierbare Logikchips, die für eine umkonfigurierbare Datenverarbeitung verwendet werden.
  • Anwenderprogrammierbare Gate-Arrays (FPGAs) sind programmierbare Chips, die verschiedene Konfigurationen implementieren können. Üblicherweise wird ein Design unter Verwendung von Entwurfswerkzeugen erzeugt, und ein FPGA wird für ein spezielles Design konfiguriert. Obwohl sich die Entwürfe ändern können, verwendet das FPGA üblicherweise eine einzige Konfiguration aufgrund der im Vergleich zu der Betriebszeit des Chips relativ langen Zeit, die erforderlich wäre, um eine Konfiguration zu ändern.
  • Jüngst wurden umkonfigurierbare Chips geschaffen, die so ausgebildet sind, daß schnell Teile eines Algorithmus auf ein umkonfigurierbares Chip geschaltet werden können. Die umkonfigurierbaren Chips sind so ausgebildet, daß sie die umkonfigurierbaren Elemente des Chips derart verwenden, daß Ressourcen für die Implementierungsabschnitte eines Algorithmus zur Verfügung gestellt werden.
  • Es ist erwünscht, ein Datenoperationselement oder eine umkonfigurierbare Funktionseinheit zur Verwendung in einem umkonfigurierbaren Chip zur Verfügung zu haben, das beziehungsweise die ein verbessertes Design implementiert, um Algorithmen auf einem umkonfigurierbaren Chip effektiver zu implementieren.
  • Zusammenfassende Darstellung der Erfindung
  • Die vorliegende Erfindung betrifft ein umkonfigurierbares Chip, das mehrere umkonfigurierbare Funktionseinheiten (wie beispielsweise eine Datenpfadeinheit) enthält, die so ausgebildet sind, daß sie verschiedene Funktionen implementieren. Die umkonfigurierbaren Funktionseinheiten enthalten vorzugsweise Multiplexer, wenigstens eine Schiebeeinheit und wenigstens eine arithmetisch-logische Einheit (ALU). Die umkonfigurierbaren Funktionseinheiten werden durch Umkonfigurierbare-Funktionseinheit-Befehle konfiguriert. Die Befehle steuern die Konfiguration der Multiplexer und der Schiebeeinheit und der ALU. Das umkonfigurierbare Chip enthält darüber hinaus Verbindungen, die so ausgebildet sind, daß sie die umkonfigurierbaren Funktionseinheiten miteinander verbinden. Auf diese weise können Daten zwischen den umkonfigurierbaren Funktionseinheiten weitergeleitet werden.
  • Der Umkonfigurierbare-Funktionseinheit-Befehl enthält vorzugsweise eine Reihe von Feldern für die Multiplexer, die Schiebeeinheit und die arithmetisch-logische Einheit. Diese Felder konfigurieren diese Elemente in der umkonfigurierbaren Funktionseinheit auf eine gewünschte Weise.
  • Bei einem bevorzugten Ausführungsbeispiel gibt es für jede umkonfigurierbare Funktionseinheit einen zugeordneten Befehlsspeicher. Der Befehlsspeicher speichert mehrere Befehle für die umkonfigurierbare Funktionseinheit. Bei einem bevorzugten Ausführungsbeispiel adressiert die Zustandsmaschine den Befehlsspeicher, um den nächsten in die umkonfigurierbare Funktionseinheit zu ladenden Befehl zu bestimmen. Bei einem bevorzugten Ausführungsbeispiel stellen die umkonfigurierbaren Funktionseinheiten eine Rückkopplung an die Zustandsmaschine zur Verfügung, welche anzeigt, wenn eine Funktion beendet ist, und somit, wenn die nächste Funktion in die umkonfigurierbare Funktionseinheit geladen werden kann.
  • Bei einem Ausführungsbeispiel ist die Schiebereinheit mit einer Reihe verschiedener Modi konfigurierbar. Diese Modi sind vorzugsweise durch ein Feld des Umkonfigurierbare-Funktionseinheit-Befehls auswählbar.
  • Bei einem Ausführungsbeispiel sind Verbindungselemente so ausgebildet, daß sie selektiv einige der umkonfigurierbaren Funktionseinheiten derart verbinden, daß Daten von Wortlänge übertragen werden. Die übertragenen Daten weisen vorzugsweise eine feste Datenlänge von 32 Bits oder mehr auf. Die Übertragung von Daten fester Länge gestattet es dem Verbindungssystem, bei einem Verlust einer Flexibilität bei der Datenübertragung vereinfacht zu werden. Die Schiebereinheit in der umkonfigurierbaren Funktionseinheit gestattet es der arithmetisch-logischen Einheit, an verschiedenen Bits in den Eingabedaten von Wortlänge der umkonfigurierbaren Funktionseinheit zu wirken, was die feste Struktur der Verbindungselemente kompensiert. Wenn somit Daten in einem bestimmten Platz innerhalb eines Worts benötigt werden, kann der Schieber diesen Bitort an die geeignete Position zur Manipulation durch die arithmetisch-logische Einheit bewegen.
  • Ein anderes Ausführungsbeispiel der vorliegenden Erfindung umfaßt die Verwendung eines Multiplexers mit einer Verzögerungseinheit-Eingabe und einer Eingabe, die die Verzögerungseinheit umgeht. Auf diese weise kann die umkonfigurierbare Funktionseinheit eine variable Verzögerung implementieren, was die Flexibilität des Systems erhöht.
  • KURZBESCHREIBUN DER ZEICHNUNGSFIGUREN
  • 1 ist eine Übersicht des umkonfigurierbaren Chips eines Ausführungsbeispiels der vorliegenden Erfindung;
  • 2 ist ein vereinfachtes Schema einer umkonfigurierbaren Funktionseinheit eines Ausführungsbeispiels der vorliegenden Erfindung;
  • 3 ist ein Schema einer umkonfigurierbaren Funktionseinheit eines Ausführungsbeispiels der vorliegenden Erfindung;
  • 4 ist ein Schema einer Multiplizierereinheit, welche bei dem Ausführungsbeispiel der vorliegenden Erfindung verwendet werden kann;
  • 5 ist ein Schema einer Scheibe (slice) der in 1 gezeigten umkonfigurierbaren Funktionseinheit, das die Verbindung zwischen den Datenpfadeinheiten veranschaulicht;
  • 6 ist ein Schema, das die Verbindungen zwischen der Datenpfadeinheit und den horizontalen und vertikalen Busleitungen veranschaulicht;
  • 7 ist ein Schema, das die Verbindung einer Datenpfadeinheit in einer Kachel (tile) zu einer Datenpfadeinheit mit einer anderen Kachel veranschaulicht;
  • 8 ist ein Schema, das die Verbindung der Datenpfadeinheiten und eines lokalen Systemspeichers eines Ausführungsbeispiels der vorliegenden Erfindung veranschaulicht;
  • 9 ist ein Schema, das eine Zustandsmaschine und einen Funktionsblockkonfigurationsspeicher, die den Befehl der Konfigurationsinformationen für die Funktionsblockdateneinheit erzeugen, veranschaulicht;
  • 10A ist ein Schema, das die Verbindung einer Zustandsmaschine, eines Konfigurationszustandsspeichers und einer Datenpfadeinheit gemäß der vorliegenden Erfindung veranschaulicht und das den Befehl und Befehlsfelder für die Datenpfadeinheit zeigt;
  • 10B ist ein Schema, das eine Datenpfadeinheit veranschaulicht, die einen Decodierer für zumindest einen Teil des Befehls verwendet;
  • 11 ist ein Schema, das den Steuersystemkonfigurationsspeicher bei der Datenpfadeinheit als einem Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht;
  • 12 ist ein Schema einer Verbindungslogikeinheit zur Verwendung bei einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 13A und 13B sind Übersichten, die die Abschnitte der Befehle für die ALU veranschaulichen;
  • 14 ist ein Schema, das die Flags für das System eines Ausführungsbeispiels der vorliegenden Erfindung veranschaulicht;
  • 15 ist ein Schema, das den Schiebemodus für den Schieber veranschaulicht;
  • 16 ist ein Schema des Befehls eines Ausführungsbeispiels des Schiebers;
  • 17 ist ein Schema, das die Wirkungsweise des Schiebers gemäß 16 veranschaulicht;
  • 18 ist ein Schema eines mehrere Master-Latch-Speicher verwendenden Logiksystems eines Ausführungsbeispiels der vorliegenden Erfindung;
  • 19 ist ein Schema, das die Hintergrund- und Vordergrund-Ebene-Latch-Speicher eines Ausführungsbeispiels der vorliegenden Erfindung veranschaulicht;
  • 20 ist ein Schema eines Ausführungsbeispiels einer umkonfigurierbaren Funktionseinheit für einen Datenpfad bei einem Ausführungsbeispiel der vorliegenden Erfindung;
  • 21 ist ein Schema der Eingangsmultiplexer für das System gemäß 20;
  • 22 ist ein Schema des Schiebemodus für den Schieber eines Ausführungsbeispiels der vorliegenden Erfindung;
  • 23 ist ein Schema, das einige Schiebemodi für den Schieber eines Ausführungsbeispiels der vorliegenden Erfindung veranschaulicht; und
  • 24 ist ein Schema, das die Implementierung einer Turbo-Nachschlagetabelle eines Ausführungsbeispiels der vorliegenden Erfindung veranschaulicht.
  • Detaillierte Beschreibung der Erfindung
  • 1 veranschaulicht ein umkonfiguierbares Chip 20. Das umkonfigurierbare Chip 20 enthält eine zentrale Verarbeitungseinheit (CPU) 22, vorzugsweise eine CPU eines reduzierten Befehlssatzes (RISC). Daten aus dem (nicht gezeigtem) externen Speicher werden unter Verwendung des Speicher-Controllers 24 übertragen. Ein Bus 26, der Roadrunner-Bus genannt wird, wird verwendet, um Daten aus dem Speicher-Controller in das umkonfigurierbare Gebilde (fabric) 28 zu übertragen. Das umkonfigurierbare Gebilde 28 ist in eine Anzahl von Scheiben unterteilt. Jede Scheibe (slice) wird in eine Anzahl von Kacheln (tiles) aufgeteilt. Jede Kachel enthält eine Datenpfadeinheit (umkonfigurierbare Funktionseinheit), Steuereinheiten und lokale Systemspeichereinheiten. Die lokalen Systemspeichereinheiten treten mit den Datenpfadeinheiten, wie sie unten beschrieben werden, in Interaktion. Bei einem bevorzugten Ausführungsbeispiel weist jede Kachel darüber hinaus eine Reihe von Multiplizierereinheiten auf.
  • 2 veranschaulicht ein vereinfachtes Schema einer umkonfigurierbaren Funktionseinheit eines Ausführungsbeispiels der vorliegenden Erfindung. Die umkonfigurierbare Funktionseinheit enthält Eingangsmultiplizierer 30 und 32. Wie unten beschrieben wird, gestatten es die Eingangsmultiplizierer der Datenpfadeinheit, Eingangssignale aus einer Reihe verschiedener Orte zu empfangen, die in der Nähe angeordnete Datenpfadeinheiten ebenso wie Datenbusse einschließen. Der ausgewählte Ausgang der Eingangsmultiplizierer wird weiter an die Register 36 und 38 gesendet. Darüber hinaus geht das Ausgangssignal des Multiplizierers 32 zur Schiebeeinheit 34. Wie unten beschrieben wird, gestattet die Schiebereinheit 34 die Auswahl verschiedener Bits, an denen die ALU 40 wirken sollen. Da die Verbindungen zwischen den Datenpfadeinheiten Verbindungen fest vorgegebener Wortlänge verwenden, um das Verbindungssystem zu vereinfachen, gestattet die Verwendung einer Schiebereinheit der Datenpfadeinheit den Zugriff auf Bits, die im Inneren eines Worts gepackt sind.
  • Wie unten beschrieben werden wird, weist die Schiebereinheit 34 vorzugsweise eine Reihe von Modi auf, welche mehr als nur logische und arithmetische Verschiebungen nach links und nach rechts implementieren. Diese verschiedenen Modi gestatten es dem System; auf eine effizientere Weise betrieben zu werden. Die arithmetisch-logische Einheit 40, die unten beschrieben wird, verwendet vorzugsweise ein Feld des Befehls für die Datenpfadeinheit, um eine Funktion zu implementieren. Die Ausgabe der ALU 40 geht vorzugsweise an ein Ausgabere- gister 42. Die Ausgabe kann darüber hinaus tatsächlich an einen optionalen Bitschieber 44 gesendet werden, so daß ein verschobener wert erzeugt wird.
  • Bei einem Ausführungsbeispiel wird außerdem eine umgehende (bypassing) ALU-Rückkopplungsausgabe auf Leitung 46 verwendet. Diese gestattet es, daß Teile der Datenpfadeinheit arbeiten, während das Ausgaberegister 42 steuert, welche Ausgaben aus der Datenpfadeinheit hinaus gesendet werden. Dies ist nützlich, wenn das Ausgaberegister 42 verwendet wird, um eine lokale Systemspeichereinheit zu adressieren.
  • Der Bitschieber 44 wird verwendet, um das lineare Rückkopplungsschieberegister zu implementieren, wie es in der Patentanmeldung „Modifications to Reconfigurable Functional Unit in a Reconfigurable Chip to Perform Linear Feedback Shift Register Function" von Peter Lam, Anwaltsakte Nummer 032001-060, beschrieben ist.
  • Man beachte, daß die Multiplexer, Schiebereinheit 34 und ALU 40 vorzugsweise von einem Befehl für die Datenpfadeinheit gesteuert werden. Dieser Befehl ist vorzugsweise in eine Reihe verschiedener Felder unterteilt, die Multiplexerinstruktionsfelder für die Multiplexer, Schiebereinheitfelder für den Schieber 34 und ein ALU-Instruktionsfeld für die ALU 40 umfassen. Bei einem Ausführungsbeispiel wird ein Decodierer für zumindest einen Teil des Befehls verwendet.
  • 3 ist ein detailliertes Schema eines Ausführungsbeispiels der vorliegenden Erfindung. Die Eingangsmultiplexer 50 und 52 empfangen als Eingaben Daten von in der Nähe befindlichen Einheiten. Bei einem Beispiel werden Datenworte aus 16 Einheiten, die Datenpfadeinheiten und Multiplizierereinheiten einschließen, als Eingaben verwendet. Globale vertikale und horizontale Verbindungen (interconnections) werden verwendet. Bei einem Ausführungsbeispiel eine Verbindung für die Rückkopplung des linearen Rückkopplungsschieberegisters, eine Konstanten-Eingabe einer logischen Null und eine Eingabe für eine lokale Systemspeichereinheit. Eine weitere Eingabe ist die Übertragseingabe aus der vorhergehenden Datenpfadeinheit, welche direkt an die ALU 54 geliefert wird. Der Multi plexer 50 ist mit dem Schieber 56 verbunden, der eine Reihe verschiedener Betriebsmodi einschließt. Der Schieber 56 ist mit einem weiteren Multiplexer 58 verbunden, so daß das Ausgangssignal des Multiplexers 50 die Schiebereinheit 56 entweder vermeiden oder verwenden kann. Die Schiebereinheit 56 kann darüber hinaus die A-Eingabe aus dem Eingangsmultiplexer 52 für einige der Modi verwenden. Die Ausgabe des Multiplexers 58 und die Ausgabe des Multiplexers 52 können an die Register 60 beziehungsweise 62 gesendet werden. Die Register 60 und 62 können auch aus einer Quelle außerhalb des Chips geladen werden. Diese Logik 64 und 66 gestattet es, daß die Registerwerte als Maskenregister für das System dienen. Die Multiplexer 68 und 70 wählen die Eingaben in die ALU 54 aus. Die Ausgaben an die ALU können an eine Reihe verschiedener möglicher Pfade gesendet werden. Man beachte, daß die Datenpfadausgabe aus dem Multiplexer 72 der Wert aus dem Ausgaberegister 74 oder der Wert aus dem Multiplexer 76 (welcher der ALU-Wert oder die aus dem lokalen Systemspeicher gelesenen Daten auf Leitung 78 sein können) sein kann. Die Flag-Werte aus der ALU werden an die Multiplexer 80 und 82 gesendet, welche den gewünschten Flag-Wert auswählen. Dieser Flag-Wert kann in den Registern 88 und 90 gespeichert werden, und der Wert der Register 88 oder 90 wird an die Multiplexer 92 und 94 gesendet, oder der ausgewählte Wert aus den Multiplexern 80 oder 82 wird verwendet. Der CONF-wert ist ein Feld in dem Befehl, welches anzeigt, welches Flag auszuwählen ist.
  • Bei einem Ausführungsbeispiel können die Register 60, 62 und 74 unter Verwendung mehrerer Master-Slave-Latch-Speicher implementiert werden, wie es in 18 gezeigt ist, um das Laden von Hintergrundkonfigurationsdaten in das Register zu ermöglichen. Bei einem Ausführungsbeispiel kann der Betrieb dieser Register durch das Feld des Umkonfigurierbare-Funktionseinheit-Befehls gesteuert werden.
  • 4 ist ein Schema einer Multiplizierereinheit. Die Multiplizierereinheit orientiert sich etwas an der umkonfigurierbaren Funktionseinheit, die in 3 gezeigt ist. Jedoch weist die Multiplizierereinheit einen speziellen Mul-tiplizierer anstelle einer ALU auf.
  • Wie es in 5 gezeigt ist, gibt es bei einem Ausführungsbeispiel für jeweils sieben Datenpfadeinheiten oder umkonfigurierbare Funktionseinheiten in einer Kachel zwei Mul-tiplizierereinheiten.
  • 6 veranschaulicht die Verbindungen benachbarter Datenpfadeinheiten und Multiplizierer in die Datenpfadeinheitseingänge. Man beachte, daß gemäß 5 die Datenpfadeinheit 100 Ausgaben von acht vorhergehenden Datenpfadeinheiten (und Multiplizierern) darüber und sieben der nächsten Datenpfadeinheiten (und Multiplizierer) darunter als Eingaben empfangen kann. Die Ausgabe der Datenpfadeinheit 100 wird darüber hinaus zu ihr selbst zurückgekoppelt. Die Ausgaben beliebiger dieser Einheiten können unter Verwendung der Eingangsmultiplexer des Systems für entweder die A- oder die B-Eingänge ausgewählt werden.
  • 6 ist ein Schema, das die Verbindungen der umkonfigurierbaren Funktionseinheiten (Datenpfadeinheiten) der einen Kachel mit horizontalen und vertikalen Verbindungsleitungen veranschaulicht. Indem Multiplexer verwendet werden, können die Ausgänge und Eingänge der Datenpfadeinheiten mit sowohl den vertikalen Routing-Leitungen als auch den horizontalen Routing-Leitungen verbunden werden.
  • 7 veranschaulicht ein Beispiel des Verbindens einer Datenpfadeinheit in einer Kachel mit einer Datenpfadeinheit in einer anderen Kachel unter Verwendung vertikaler Verbindungsleitungen. Man beachte, daß das System der vorliegenden Erfindung für die Verbindungen vorzugsweise wort-basierte Verbindungen verwendet. Bei einem Ausführungsbeispiel ermöglichen die Verbindungsleitungen die Verbindung von 32 Bit breiten Daten. Die Schiebereinheit in der Datenpfadeinheit gestattet die Ausrichtung der Daten, sobald sie in einer Datenpfadeinheit aus dem Verbindungssystem empfangen worden sind. Da das System Daten in einem 32-Bit-Wort sendet, wird die Komplexität des Verbindungssystems reduziert und vereinfacht, was die Flexibilität der Verbindung ein wenig verringert.
  • 8 veranschaulicht die Verbindung zwischen den Datenpfadeinheiten und dem lokalen Systemspeicher (LSM). In einer bevorzugten Umgebung werden abwechselnde Datenpfadeinheiten verwendet, um die Schreiboperationen und Leseoperationen des lokalen Systemspeichers zu implementieren. Beispielsweise stellt die Datenpfadeinheit 102 Leseadressen an den lokalen Systemspeicher 104 zur Verfügung und empfängt gelesene Daten aus dem lokalen Systemspeicher 104. Die Datenpfadeinheit 106 stellt Schreibadressen und Schreibdaten an den lokalen Systemspeicher 104 zur Verfügung. Man beachte, daß durch die Verwendung der Durchlaßgatter, wie beispielsweise der Durchlaßgatter 106, 108, 110 und 112, die Datenpfadeinheiten 102 und 106 sich mit anderen lokalen Systemspeichern, wie beispielsweise dem lokalen Systemspeicher 114, verbinden können, und die Datenpfadeinheiten 116 und 118 sich mit dem lokalen Systemspeicher 104 verbinden können. Bei einem anderen Ausführungsbeispiel kann eine Datenpfadeinheit aus einem lokalen Systemspeicher sowohl lesen als auch in ihn schreiben. Eine der Verwendungen einer Datenpfadeinheit besteht darin, eine Adresse an einen lokalen Systemspeicher zur Verfügung zu stellen, um Daten aus einem lokalen Systemspeicher zu gewinnen, welche dann auf die horizontalen und vertikalen Verbindungsbusse gegeben werden können. Die in 8 gezeigten Verbindungen sind die direkten Verbindungen zum Lesen und Schreiben von Daten in bzw. aus dem lokalen Systemspeicher. Bei einer bevorzugten Umgebung wird der lokale Systemspeicher global ausgelesen und eingeschrieben unter Verwendung des Speichersteuersystems. Dieses allgemeine Speichersteuersystem wird zur Konfiguration des Systems und zum Gewinnen der Daten, an denen die Datenpfadeinheiten Operationen ausführen, verwendet. Man beachte, daß, wie oben beschrieben wurde, bei einem bevorzugten Ausführungsbeispiel die Datenpfadeinheiten Strukturen enthalten, die es ermöglichen, daß Adressen und Daten dem lokalen Systemspeicher zur Verfügung gestellt werden, während die Datenpfadeinheit irgendeine andere Funktion ausführt.
  • 9 ist eine Offenbarung einer Steuergebildeeinheit (controll fabric unit) 132 für die umkonfigurierbare Funktionseinheit 130. Bei diesem Ausführungsbeispiel erzeugt die Steuergebildeeinheit 132 eine Steuer- oder Befehlszeile für die umkonfigurierbare Funktionseinheit 130. Bei diesem Ausführungsbeispiel besteht die Steuergebildeeinheit 132 vorzugsweise aus einer Zustandsmaschineneinheit 134 und einer Funktionsblockkonfigurationsspeichereinheit 136. Die Zustandsmaschine 134 erzeugt die Adressen in den Befehlsspeicher 136. Eine Implementierung der Zustandsmaschine 134 verwendet eine umkonfigurierbare programmierbare Summe-der-Produkte-Einheit 136.
  • 10A veranschaulicht ein System mit der Zustandsmaschinenkonfigurationseinheit 136, dem Konfigurationszustandsspeicher 138' und der Datenpfadeinheit 130'. Man beachte, daß die Konfiguration aus dem Konfigurationszustandsspeicher 138' als Befehl für die Datenpfadeinheit 130' angesehen werden kann. Der Befehl enthält vorzugsweise Felder, wie beispielsweise ein ALU-Konfigurationsfeld, ein Schieberegisterkonfigurationsfeld und ein Multiplexerkonfigurationsfeld. Bei einem Ausführungsbeispiel werden einige der Flags aus der Datenpfadeinheit 130' an die Zustandsmaschine 136' gesendet, um Konfigurationen für die Datenpfadeinheit umzuschalten, nachdem die Datenpfadeinheit die Operation an einem Satz von Daten erledigt hat. Die Konfigurationszustandsmaschine 138' kann darüber hinaus aus einer externen Konfiguration aus einem externen Speicher oder aus dem Prozessor geladen werden.
  • 10B ist ein Schema, das eine Datenpfadeinheit veranschaulicht, die einen Decodierer zum Decodieren zumindest eines Teil eines Befehls verwendet.
  • 11 zeigt das Steuersystem einschließlich der Zustandsmaschinen für die verschiedenen Konfigurationszustandsspeicher. Die Datenpfadeinheit-Flags werden an das Steuersystem gewendet, wie es oben beschrieben wurde.
  • 12 ist ein Schema, das ein Beispiel einer arithmetisch-logischen Einheit veranschaulicht. Diese arithmetisch-logische Einheit enthält eine Arithmetikeinheit 142, eine parallele Logikeinheit 140 und eine Flag-Einheit 144. Darüber hinaus ist eine Übertragsauswahleinheit 146 gezeigt.
  • Das ALU-Befehlsfeld aus dem Befehl wird gesendet, um die Operationen der ALU auszuwählen. Die Arithmetikeinheit 142 verwendet eine Übertragseingabe. Bei einem bevorzugten Ausführungsbeispiel ist dieser Übertragswert entweder der Übertrag aus der vorhergehenden Datenpfadeinheit oder das Steuersignal oder ein Übertrag, welcher Teil des Befehls ist.
  • 13A und 13B veranschaulichen eine Liste einiger der Befehlscodes (Opcodes), die bei einem Ausführungsbeispiel einer ALU der umkonfigurierbaren Funktionseinheit gemäß der vorliegenden Erfindung verwendet werden. Details dieser Opcodes werden im Anhang I beschrieben, auf den hiermit Bezug genommen wird.
  • 14 ist ein Schema des Flag-Systems für die vorliegende Erfindung. Die Flag-Einheit befindet sich innerhalb der Datenpfadeinheit und wird zum Erzeugen der Flags verwendet, welche zu der Steuereinheit sowie zu der nächsten Datenpfadeinheit laufen. Die Auswahl der verwendeten Flags... ... der Steuerung eines Feldes des Umkonfigurierbar-Funktionseinheit-Befehls und sind von der vorliegenden Erfindung bevorzugt. Eine Beschreibung einiger dieser Flags ist unten angegeben.
  • ROXR wird in jedem Zyklus angesteuert. Es wird ausgewählt durch conf = 1.
  • Die Operation ist:
    Figure 00120001
  • Abkürzungen
    • CO – Auslaufender Übertrag (Carry Out) (der Additions-/Subtraktionsoperation)
    • OV – Überlauf (Overflow) (der Additions-/Subtraktionsoperation)
    • EQ – Gleich (Equal) (A = B)
    • GT – Größer als (Greater Than)
    • LT – Weniger als (Less Than)
    • SN – Vorzeichen (Sign) (Vorzeichenbit des Ergebnisses) Vorhergehendes Flag
    • Cin – Übertrag in vorhergehender Zeile (Carry in previous row)
    • Ctrl – Einlaufender Übertrag aus Steuerung (Carry in from control)
    • Max – Ox7fff[ffff] (für 16/32 Bits)
    • Min – Ox8000[0000] (für 16/32 Bits)
  • 15 veranschaulicht den Schiebemodus und die Betriebsweise einiger der Modi der Schiebeeinheit eines Ausführungsbeispiels der vorliegenden Erfindung. Da die Schiebeeinheit eine Reihe verschiedener Modi aufweist, wird die Flexibilität des Systems gemäß der vorliegenden Erfindung erhöht. [0060] 16 und 17 veranschaulichen eine Implementierung der Schiebeeinheit unter Verwendung mehrerer Zeilen von Multiplexern. Eine zusätzliche Logik wird ebenfalls verwendet, um eine spezielle Ausgabe zu erzeugen. 17 veranschaulicht den Betrieb einiger der Implementierungen des Schieberegisters.
  • Dieser in der Datenpfadeinheit verwendete Schieber führt mehr als nur Recht-/Links-Schiebeoperationen aus. Der Schieber enthält ein Array von Multiplexern, welche über Mul-tiplexerauswahlsignale gesteuert werden. Bei einem 4 × 6-Multiplexer-Array-Schieberausführungsbeispiel wird ein 32-Bit-Operant, welcher in vier Gruppen von acht Signalen unterteilt wird, mit einer ersten Zeile von vier Multiplexern gekoppelt. Im Unterschied zur letzten Zeile werden die Ausgangssignale der Multiplexer in einer vorhergehenden Zeile mit den Eingangssignalen der nächsten Zeile von Multiplexern gekoppelt. Jeder Multiplexer in dem Array wird unabhängig gesteuert. Die Steuersignale bestimmen, wie die Signale in dem Array gelenkt werden, und somit die Art der an dem Operanden ausgeführten Operation. Bei einem Ausführungsbeispiel umfassen Beispiele von Operationen: logisches 32-Bit-Rechts-/Links-Schieben, arithmetisches 32-Bit-Recht-/Links-Schieben, unteres 16-Bit-Vorzeichen Erweitern auf 32 Bit, Konstantenerzeugung, Duplizieren untere 16 Bit in obere 16 Bit, Duplizieren obere 16 Bit in untere 16 Bit, Austauschen untere und obere 16 Bit, arithmetisches 16-Bit-Rechtsschieben und Byte-Austauschen.
  • 18 veranschaulicht ein System mit mehreren Master-Latch-Speichern, das bei einem Ausführungsbeispiel des Systems der vorliegenden Erfindung verwendet wird. Bei diesem Beispiel werden zwei Master-Latch-Speicher verwendet. Einer der Master-Latch-Speicher wird für die Hintergrundkonfiguration des Systems verwendet. Der andere Master-Latch-Speicher empfängt Daten aus der Pipeline in der Datenpfadeinheit oder aus dem Prozessor. Die Eingaben in das Latch 150 werden über den Multiplexer 152 zur Verfügung gestellt. Das Latch 154 ist mit dem Konfigurationsbus verbunden, um Daten aus der Hintergrundkonfiguration zu empfangen. Der Multiplexer 156 kann verwendet werden, um die Eingabe in den Slave-Latch-Speicher 158 auszuwählen. Die Verwendung eines Hintergrundkonfigurationsspeichers für das System gestattet den schnellen Betrieb des Systems bei der vorliegenden Erfindung.
  • Das Speicherelement gemäß 18 weist mehrere Master-Latch-Speicher auf, welche sich einen einzigen Slave-Latch-Speicher über einen Multiplexer teilen, was ein Multifunktionsspeicherelement zur Verfügung stellt. Indem darüber hinaus ein Slave-Latch gemeinsam benutzt wird, werden signifikante Flächeneinsparungen verwirklicht (etwa 25%). Dies ist insbesondere bei einem System der Fall, das zahlreiche Speicherelemente verwendet. Das Speicherelement-Design vertraut auf den Umstand, daß Konfigurationsbits selten in Speicherelemente geladen werden. Statt einen separaten Slave-Latch-Speicher für jeden Master-Latch-Speicher, der mit einem Konfigurationsbitstromsignal gekoppelt ist, vorzusehen, teilen sich gemäß der Erfindung die mit dem Konfigurationsbitstromsignal gekoppelten Master-Latch-Speicher ihr Slave-Latch mit einem anderen Master-Latch. Somit teilen sich zwei oder mehr Master-Latch-Speicher einen einzigen Slave-Latch-Speicher. Ein Multiplexer ist zwischen den Master-Latch-Speichern und dem einzelnen Slave-Latch eingekoppelt, um auszuwählen, welches Master-Latch mit dem Slave-Latch gekoppelt wird.
  • Bei einem Ausführungsbeispiel ist ein Eingang des Master-Latch-Speichers mit einem Signal gekoppelt, das häufig die Speicherelementfunktionalität erfordert, und der Eingang des anderen Master-Latch-Speichers ist mit einem Signal gekoppelt, das die Speicherelementfunktionalität seltener erfordert. Bei einem Ausführungsbeispiel ist das erste Master-Latch mit dem Datenpfadsignal und das zweite Master-Latch mit dem Konfigurationsbitsignal gekoppelt. Wenn das Datenpfadsignal zu dem Slave-Latch weitergeleitet wird, funktioniert das Speicherelement so, daß es die Datenpfadpipeline in Stufen unterteilt. Wenn das Konfigurationsbitstromsignal zu dem Slave-Latch weitergeleitet wird, funktioniert das Speicherelement so, daß es Konfigurationsbits speichert. Bei einem anderen Ausführungsbeispiel ist ein Master-Latch mit dem Datenpfadsignal und mehr als ein Master-Latch mit einem Konfigurationsbitsignal gekoppelt, wobei die Ausgänge sämtlicher Master-Latch-Speicher mit dem Multiplexer gekoppelt sind, welcher verwendet wird, um eines der Signale auszuwählen und von den Master-Latch-Speichern an dem gemeinsamen Slave-Latch-Speicher weiterzuleiten.
  • Bei 18:
    • – Master-Latch-Speicher werden bei 'RESET' oder 'INIT' zurückgesetzt
    • – Slave-Latch-Speicher werden nur bei 'RESET' zurückgesetzt
    • – Multiplexer A wählt Konfigurationspfad immer dann aus, wenn Konfiguration aktivierend ist (ferner qualifiziert durch die spezielle Scheibe, die ausgewählt wird)
    • – Multiplexer B wählt arc-Bus aus, wenn arc schreibt (ferner qualifiziert durch Decodieren zugehöriger arc adress. Siehe ARC ext spec für Adreßabbildung)
    • – Master-Latch-Speicher sind nur während Takt niedrig transparent
    • – Slave-Latch-Speicher sind nur während Takt hoch transparent
    • – Master-Latch 0 ist transparent, wenn die latpipe 0 freigegeben oder ein arc-Schreiben in dieses Register auftritt
    • – Master-Latch 1 ist transparent, wenn config-Laden aktiviert ist und entsprechende config-Adresse decodiert ist
    • – Slave-Latch ist transparent, wenn 1. config aktiviert zu dieser Scheibe oder 2. arc-Schreiben in dieses Register oder 3. latpipe-Signal aus Steuerung ist hoch
    • – Dieses Setup ist unter der Annahme, daß Konfiguration und arc-Schreiben nicht gleichzeitig auftreten. Wenn dies auftritt, hat die Konfiguration die höhere Priorität.
  • Ein weiteres Ausführungsbeispiel der vorliegenden Erfindung betrifft die variablen Verzögerungseinheiten der vorliegenden Erfindung. Variable Verzögerungseinheiten bestehen aus einem Multiplexer, welcher eine erste Eingabe, die an ein Register gesendet wird, und die zweite Eingabe, welche das Register umgeht, empfängt. Auf diese Weise kann eine variable Verzögerung implementiert werden. Bei der umkonfigurierbaren Funktionseinheit gemäß 3 können das mit dem Multiplexer 68 verbundene Register 60 und das aus dem Multiplexer 70 verbundene Register 62 und das mit dem Multiplexer 92 verbundene Register 88, das mit dem Multiplexer 94 verbundene Register 90 und das mit dem Multiplexer 72 verbundene Register 74 eine solche variable Verzögerung implementieren. Ein Multiplexer kann ein verzögertes oder ein Umgehungssignal auswählen; das Verzögerungssignal geht durch ein Verzögerungselement, wie beispielsweise ein Flip-Flop.
  • Das flexible adaptive Verzögerungselement enthält eine Speichereinrichtung (z. B. ein Flip-Flop, Latch), dessen Eingang mit einem Eingangssignal und dessen Ausgang mit einem ersten Eingang eines Multiplexers gekoppelt ist. Der andere Eingang des Multiplexers ist mit dem Eingangssignal gekoppelt. Im Ergebnis ist der erste Eingang des Multiplexers mit dem Eingangssignal und ein zweiter Eingang des Multiplexers mit dem um den von der Speichereinrichtung zur Verfügung gestellten Betrag verzögerten Eingangssignal gekoppelt. Das Auswahlsignal kann dann verwendet werden, um entweder das verzögerte Signal oder das unverzögerte Signal auszuwählen.
  • 19 zeigt eine alternative Ausführungsform einer Hintergrund-Vordergrund-Ebenen-Anordnung.
  • Die vorliegende Erfindung nimmt durch Bezugnahme die folgenden früheren Patentanmeldungen in sich auf: "A HIGH PERFORMANCE DATA PATH UNIT FOR BEHAVIORAL DATA TRANSMISSION AND RECEPTION", Erfinder Hsinshih Wang, Serien Nr. 09/307,072, angemeldet am 7. Mai 1999 (Anwaltsakte Nr. 032001–014); "CONTROL FABRIC FOR ENABLING DATA PATH FLOW", Erfinder Shaila Hanrahan, et al., Serien Nr. 09/401,194, angemeldet am 23. September 1999 (Anwaltsakte Nr. 032001–016); sowie "CONFIGURATION STATE MEMORY FOR FUNCTIONAL BLOCKS ON A RECONFIGURABLE CHIP", Erfinder Shaila Hanrahan und Christopher E. Phillips, Serien Nr. 09/401,312 und angemeldet am 23. September 1999 (Anwaltsakte Nr. 032001–035).
  • Vermont-Ausführungsbeispiele
  • 20 veranschaulicht ein letztes Ausführungsbeispiel der umkonfigurierbaren Funktionseinheit oder Datenpfadeinheit. Bei diesem Ausführungsbeispiel sind ein zusätzliches Register und Multiplexer zu dem B-Eingangspfad vor dem Schieber hinzugefügt. Zusätzlich ist der Eingangsmultiplexer geringfügig modifiziert. Der Eingangsmultiplexer ist unter Bezugnahme auf 21 gezeigt.
  • 22 veranschaulicht die Schieber-Modus-Tabelle für das neue Ausführungsbeispiel gemäß 19.
  • 23 veranschaulicht die Implementierung der neuen Modi gemäß 22.
  • 24 veranschaulicht eine Turbo-Nachschlagetabelle zur Verwendung bei dem System gemäß der vorliegenden Erfindung. Die Turbo-Nachschlagetabelle ist nützlich bei der Addition von Daten, die in einem logarithmischen Format gespeichert sind. Dies ist bei vielen Kommunikationssystem nützlich. Bei einem früheren Ausführungsbeispiel mußten, um die Multiplikation von im logarithmischen Format gespeicherten Daten auszuführen, die Daten in das normale Format durch Ausführen einer exponentiellen Expansion der Daten konvertiert werden. Die exponentiell expandierten Daten werden miteinander addiert und dann die kombinierten Informationen zurück in das logarithmische Format konvertiert. Bei dem bevorzugten Ausführungsbeispiel wird die Turbo-Nachschlagetabelle bei der Erzeugung einer Abschätzung der Addition eines Korrekturfaktors verwendet. Diese Abschätzung verwendet den Wert des größten Werts von A und B als erste Abschätzung des Werts der Addition von A plus B. Der Absolutwert dieser Differenz von A minus B wird als eine Eingabe in eine Nachschlagetabelle verwendet, um einen Korrekturfaktor zum Addieren zu dem größten Wert von A oder B zur Verfügung zu stellen. Durch Addieren dieses Korrekturfaktors zu dem größten Wert von A oder B wird eine relativ genaue Abschätzung erzeugt. Man beachte, daß die Nachschlagetabelle nicht dieselbe Anzahl von Eingangsbits von A zu haben braucht. Bei einem bevorzugten Ausführungsbeispiel werden nur wenige Bits der Genauigkeit verwendet. Wenn der Betrag von A minus B relativ groß ist, unterscheidet sich der kombinierte Wert nicht signifikant von dem größten Wert von A oder B. Beispielsweise ist die Summe von 1.000.000 und 0,1 etwa 1.000.000. Die Summe von 1.000.000 und 1.000.000 ist im Endeffekt das Doppelte des Maximalwerts.
  • Die Anhänge II und III veranschaulichen das Vermont-Ausführungsbeispiel der umkonfigurierbaren Funktionseinheiten näher.
  • Für Fachleute ist es klar, daß die Erfindung in anderen speziellen Formen implementiert werden kann, ohne vom Geist oder deren Charakter abzuweichen. Die hier offenbarten Ausführungsbeispiele sind dementsprechend in einem veranschaulichenden und keinem einschränkenden Sinne zu verstehen. Der Umfang der Erfindung wird durch die beigefügten Ansprüche nicht durch die vorstehende Beschreibung veranschaulicht, und sämtliche Änderungen, die innerhalb der Bedeutung und der Reichweite der ihrer Äquivalente liegen, sollen hier eingeschlossen sein.
  • Anhang I
  • 1.9 Befehlscode-Details
  • Figure 00190001
  • Figure 00200001
  • Figure 00210001
  • Figure 00220001
  • Figure 00230001
  • Figure 00240001
  • Figure 00250001
  • Anhang II
  • 1.10 DPU-Schnittstellensignale (32-Bit-DPU)
  • Figure 00260001
  • Figure 00270001
  • 1.11 DPU-Funktionen – Nach dem Schieber/Maske
  • Figure 00280001
  • CS2212 ALU-Befehlscode-Additionen
  • Die folgenden Befehlscodes werden zu dem CS2212 hinzugefügt:
    Figure 00290001
  • CS2212 Multiplizierer-Ausgabe-Mux-Spezifikation
  • Der Ausgangs-Mux für den Multiplizierer ändert sich für den CS2212, um es den A- oder B-Operanden zu ermöglichen, bei dem O-Register latch-gespeichert zu werden. Dies umgeht im Endeffekt die Multiplikationsoperation. Dies erfordert die Addition eines Bits zu dem "muxmultlsmsel"-Feld in dem MULT CSM. Das Signal "muxmultlsmsel" wählt den Eingang in das O-Register auf folgende Weise aus:
    Figure 00300001
  • Diese Funktionalität gestattet es dem Benutzer, den Multiplizierer als dynamisch konfigurierbare Routing-Ressource zu benutzen, wenn er nicht für seine primäre Funktion verwendet wird.
  • CS2212 Pipeline-Registerspezifikation
  • Der CS2212 weist Register auf, die verwendet werden können entweder als Maskenregister oder Pipeline-Register. Um es dem Benutzer zu ermöglichen, Pipelineregister in den A- und B-Operandenpfaden zu verwenden und die Maskenregister zu verwenden, enthält der CS2212 zusätzliche Register. Diese Register werden eingefügt nach dem A- und B-Eingang und werden als "apipe" und "bpipe" bezeichnet. Diese Register können durch die Signale "muxapipe" bzw. "muxbpipe" umgangen werden. Man nehme Bezug auf das Blockschaltbild der DPU CS2212 bezüglich der Anordnung dieser Register und Multiplexer. Die Multiplexer werden auf folgende Weise ausgewählt:
    Figure 00310001
  • CS2212 LSM-Schreib-Daten-Mux-Spezifikation
  • Der CS2212 ist in der Lage, in den LSM mit der Schieber-Ausgabe sowie mit der ALU-Ausgabe zu schreiben. Um diese hinzugefügte Funktionalität zu erleichtern, wird ein Multiplexer zu dem LSM-Schreib-Datenpfad hinzugefügt. Dieser Multiplexer wird als "muxlsmwd" bezeichnet und wird durch "muxlsmwdsel" auf folgende Weise ausgewählt:
    Figure 00320001
  • Siehe das CS2212-Blockschaltbild für die Anordnung von "muxlsmwd".
  • 2.1 Allgemeine Beschreibung
  • Das Gebilde (fabric) ist umkonfigurierbar und wird durch Konfig.-Bits kontrolliert. Die Konfig.-Bits werden in das Gebilde durch die Ausgabe von arc-Befehlen (über Lade-Speichere) geladen, und dann überträgt der Konfigurations-Controller die Konfig.-Bits in die Konfigurationsebene des Gebildes.
  • Die folgende Tabelle soll Software-Informationen darüber zur Verfügung stellen, welcher Adresse in dem Adreßraum jedes Konfig.-Signal entspricht. Bis hier wurde die Basisadresse der Konfiguration noch nicht bestimmt, und somit startet die folgende Adresse bei 0.
  • 2.2 Details
    • – Die oberen 16 Bits sind die eingebettete Adresse
    • – Das oberste Bit (Bit[127]) ist das Paritätsbit. Die Hardware überprüft hinsichtlich einer geraden Parität in jeder Zeile von 128 Bits. Bezüglich des Verhaltens der Parität siehe ARC-Erweiterungs-Spezifikation von Dani.
    • – Die Adresse unten ist relativ in Bezug auf irgendeine Basisadresse (base_address)
    • – Jede 128-Bit-Zeile trägt 112 Bits Konfig.-Daten
    • – Während des Konfig.-Ladens kann die Hardware höchstens 112 Bit Zeile in jedem Zyklus speichern
    • – Die Zeilen, welche für eine bestimmte Konfiguration nicht benötigt werden, können übersprungen werden.
    • – Die Scheibenadresse ist nicht in der aktuellen Adreßabbildung eingebettet und wird jetzt aus der aktuellen Abbildung gelöscht. Ein Benutrer sollte in der arc-Erweiterungs-Spezifikation nachsehen, um zu sehen, wie mehrere Scheiben in einer Operation zu konfigurieren sind.
  • 2.3. Adress-Abbildung
  • Figure 00330001
  • Figure 00340001
  • Figure 00350001
  • Figure 00360001
  • Figure 00370001
  • Figure 00380001
  • Figure 00390001
  • Die PLA_in_sel sind 64-zu-1-Mux-Auswahl. Es gibt 16 von ihnen für jede PLA (jedes Bit wird individuell gesteuert).
  • Figure 00390002
  • Zusammenfassung
  • Ein umkonfigurierbares Chip (20) wird gelehrt, welches umkonfigurierbare Funktionseinheiten, die ein Schieberegister, eine arithmetische Logik und Multiplexer einschließen, aufweist. Die Datenpfade sind mit weiteren Datenpfadeinheiten verbunden. Eine Verbindung wird zur Verfügung gestellt, indem Daten von Wortlänge übertragen werden. Die Schieber ermöglichen es bei den Daten von Wortlänge, dass diese zur Verwendung in der arithmetisch-logischen Einheit eingestellt werden. Die umkonfigurierbaren Funktionseinheiten werden durch Umkonfigurierbare-Funktionseinheit-Befehle gesteuert. Die Umkonfigurierbare-Einheit-Befehle sind in einem Umkonfigurierbare-Funktionseinheit-Befehlsspeicher gespeichert, welcher von einer Zustandsmaschine auf dem Chip adressiert wird.
  • (1)

Claims (44)

  1. Ein umkonfigurierbares Chip, enthaltend: mehrere umkonfigurierbare Funktionseinheiten, die so ausgebildet sind, daß sie verschiedene Funktionen implementieren, wobei die umkonfigurierbaren Funktionseinheiten Multiplexer, wenigstens eine Schiebereinheit und wenigstens eine arithmetisch-logische Einheit einschließen, wobei die umkonfigurierbaren Funktionseinheiten durch einen Umkonfigurierbare-Funktionseinheit-Befehl konfiguriert werden, wobei der Befehl die Konfiguration der Multiplexer, der Schiebereinheit und der arithmetisch-logischen Einheit kontrolliert; und Verbindungselemente, die so ausgebildet sind, daß sie einige der umkonfigurierbaren Funktionseinheiten selektiv miteinander verbinden.
  2. Das umkonfigurierbare Chip nach Anspruch 1, wobei der Umkonfigurierbare-Funktionseinheit-Befehl in eine Reihe von Feldern unterteilt ist, die ein Multiplexer-Feld, ein Schiebereinheit-Feld und ein Arithmetisch-Logische-Einheit-Feld einschließen.
  3. Das umkonfigurierbare Chip nach Anspruch 1, wobei die umkonfigurierbare Funktionseinheit aus der Datenpfadeinheit besteht.
  4. Das umkonfigurierbare Chip nach Anspruch 1, wobei die Verbindungselemente so ausgebildet sind, daß sie Daten von Wortlänge übertragen.
  5. Das umkonfigurierbare Chip nach Anspruch 4, wobei die Daten von Wortlänge 32 Bits breit oder breiter sind.
  6. Das umkonfigurierbare Chip nach Anspruch 1, ferner aufweisend einen Befehlsspeicher, der mehrere Befehle für die umkonfigurierbaren Funktionseinheiten speichert.
  7. Das umkonfigurierbare Chip nach Anspruch 1, wobei die Schiebereinheit in einer Reihe von Modi konfigurierbar ist.
  8. Das umkonfigurierbare Chip nach Anspruch 7, wobei der Umkonfigurierbare-Funktionseinheit-Befehl ein Schiebereinheit-Feld enthält, welches den Modus der Schiebereinheit steuert.
  9. Das umkonfigurierbare Chip nach Anspruch 1, wobei wenigstens einer der Multiplexer einer Verzögerungseinheit-Eingabe und einer Eingabe, die die Verzögerungseinheit umgeht, zugeordnet ist, um ein System variabler Verzögerung zu implementieren.
  10. Das umkonfigurierbare Chip nach Anspruch 1, wobei die umkonfigurierbare Funktionseinheit Register zum vorübergehenden Speichern von Werten innerhalb der umkonfigurierbaren Funktionseinheit enthält.
  11. Ein umkonfigurierbares Chip, enthaltend: mehrere umkonfigurierbare Funktionseinheiten, wobei die umkonfigurierbaren Funktionseinheiten Multiplexer, wenigstens eine Schiebereinheit und wenigstens eine arithmetisch-logische Einheit einschließen, wobei die Schiebereinheit so ausgebildet ist, daß sie es der arithmetisch-logischen Einheit ermöglicht, an verschiedenen Bits innerhalb der Eingabedaten der umkonfigurierbaren Funktionseinheit von Wortlänge zu operieren; und Verbindungselemente, die so ausgebildet sind, daß sie einige der umkonfigurierbaren Funktionseinheiten selektiv miteinander verbinden, wobei die Verbindungselemente so ausgebildet sind, daß sie Daten von Wortlänge übertragen.
  12. Das umkonfigurierbare Chip nach Anspruch 11, wobei die Daten von Wortlänge 32 Bits oder mehr sind.
  13. Das umkonfigurierbare Chip nach Anspruch 12, wobei die Daten von Wortlänge 32 Bits lang sind.
  14. Das umkonfigurierbare Chip nach Anspruch 11, wobei die umkonfigurierbaren Funktionseinheiten durch einen Umkonfigurierbare-Funktionseinheit-Befehl konfiguriert werden, wobei der Befehl die Konfiguration der Multiplexer, der Schiebereinheit und der arithmetisch-logischen Einheit steuert.
  15. Das umkonfigurierbare Chip nach Anspruch 11, wobei das umkonfigurierbare Chip ferner einen Befehlsspeicher aufweist, der mehrere Befehle für die umkonfigurierbare Funktionseinheit speichert.
  16. Das umkonfigurierbare Chip nach Anspruch 11, wobei die Schiebereinheit in eine Reihe von verschiedenen Modi konfigurierbar ist.
  17. Das umkonfigurierbare Chip nach Anspruch 11, wobei einige der Multiplexer einer Verzögerungseinheit-Eingabe und eine Eingabe, die die Verzögerungseinheit umgeht, zugeordnet sind.
  18. Ein umkonfigurierbares Chip, enthaltend: mehrere umkonfigurierbare Funktionseinheiten, wobei die umkonfigurierbaren Funktionseinheiten Multiplexer, wenigstens eine Schiebereinheit und wenigstens eine arithmetisch-logische Einheit einschließen, wobei die umkonfigurierbaren Funktionseinheiten durch einen Umkonfigurierbare-Funktionseinheit-Befehl konfiguriert werden, wobei der Befehl die Konfiguration der Multiplexer, der Schiebereinheit und der arithmetisch-logischen Einheit steuert; und einen Befehlsspeicher, der mehrere Befehle für die umkonfigurierbaren Funktionseinheiten speichert.
  19. Das umkonfigurierbare Chip nach Anspruch 18, wobei jeder umkonfigurierbaren Funktionseinheit ein Befehlsspeicher zugeordnet ist.
  20. Das umkonfigurierbare Chip nach Anspruch 18, wobei der Befehlsspeicher einer Zustandsmaschine zugeordnet ist, die eine Adresse für den Befehlsspeicher erzeugt.
  21. Das umkonfigurierbare Chip nach Anspruch 18, wobei der Umkonfigurierbare-Funktionseinheit-Befehl Felder zum Konfigurieren der Multiplexer, ein Schiebereinheit-Steuerfeld und ein Steuerfeld für die arithmetisch-logische Einheit enthält.
  22. Das umkonfigurierbare Chip nach Anspruch 18, ferner aufweisend Verbindungselemente, die so ausgebildet sind, daß sie selektiv einige der umkonfigurierbaren Funktionseinheiten miteinander verbinden.
  23. Das umkonfigurierbare Chip nach Anspruch 22, wobei die Verbindungselemente so ausgebildet sind, daß sie Daten von Wortlänge übertragen.
  24. Das umkonfigurierbare Chip nach Anspruch 18, wobei die Schiebereinheit in eine Reihe von Modi konfigurierbar ist.
  25. Das umkonfigurierbare Chip nach Anspruch 24, wobei die Schiebereinheit durch ein Schiebereinheit-Feld des Umkonfigurierbare-Einheit-Befehls gesteuert wird.
  26. Das umkonfigurierbare Chip nach Anspruch 18, wobei wenigstens einer der Multiplexer einer Verzögerungseinheit-Eingabe und einer Eingabe, die die Verzögerungseinheit umgeht, zugeordnet ist, so daß eine variable Verzögerung implementiert werden kann.
  27. Ein umkonfigurierbares Chip, enthaltend: mehrere umkonfigurierbare Funktionseinheiten, wobei die umkonfigurierbaren Funktionseinheiten Multiplexer, wenigstens eine Schiebereinheit und wenigstens eine arithmetisch-logische Einheit einschließen, wobei die Schiebereinheit in eine Reihe von Modi konfigurierbar ist; und Verbindungselemente, die so ausgebildet sind, daß sie selektiv einige der umkonfigurierbaren Funktionseinheiten miteinander verbinden.
  28. Das umkonfigurierbare Chip nach Anspruch 27, wobei die Schieber-Modi Modi einschließen, die über das logische und arithmetische Schieben nach links und nach rechts hinausgehen.
  29. Das umkonfigurierbare Chip nach Anspruch 27, wobei wenigstens ein Modus Blöcke des Eingabeworts neu anordnet.
  30. Das umkonfigurierbare Chip nach Anspruch 27, wobei einer der Modi eine Konstantenerzeugung umfaßt.
  31. Das umkonfigurierbare Chip nach Anspruch 27, wobei einer der Modi die Duplizierung eines Satzes von Bits in einen weiteren Satz von Bits umfaßt.
  32. Das umkonfigurierbare Chip nach Anspruch 27, wobei einer der Modi das Austauschen einiger der Gruppen von Bits mit anderen Gruppen von Bits umfaßt.
  33. Das umkonfigurierbare Chip nach Anspruch 27, wobei die umkonfigurierbaren Funktionseinheiten durch Umkonfigurierbare-Funktionseinheit-Befehle konfiguriert werden, wobei der Umkonfigurierbare-Funktionseinheit-Befehl die arithmetisch-logische Einheit, Schiebereinheit und die Multiplexer konfiguriert.
  34. Das umkonfigurierbare Chip nach Anspruch 33, wobei der Umkonfigurierbare-Funktionseinheit-Befehl ein Feld zum Steuern der Schiebereinheit enthält, welches den Modus der Schiebereinheit steuert.
  35. Das umkonfigurierbare Chip nach Anspruch 27, wobei die Verbindungselemente so ausgebildet sind, daß sie Daten von Wortlänge übertragen.
  36. Das umkonfigurierbare Chip nach Anspruch 27, ferner aufweisend einen Befehlsspeicher, der Befehle für die umkonfigurierbare Funktionseinheit speichert.
  37. Das umkonfigurierbare Chip nach Anspruch 27, wobei wenigstens einer der Multiplexer der Verzögerungseinheit-Eingabe und einer Eingabe, die die Verzögerungseinheit umgeht, zugeordnet ist, so daß eine variable Verzögerung implementiert wird.
  38. Ein umkonfigurierbares Chip, enthaltend: mehrere umkonfigurierbare Funktionseinheiten, wobei die umkonfigurierbaren Funktionseinheiten Multiplexer, wenigstens eine Schiebereinheit und wenigstens eine arithmetisch-logische Einheit einschließen, wobei wenigstens einer der Multiplexer einer Verzögerungseinheit-Eingabe und einer Eingabe, die die Verzögerungseinheit umgeht, zugeordnet ist; und Verbindungselemente, die so ausgebildet sind, daß sie selektiv einige der umkonfigurierbaren Funktionseinheiten miteinander verbinden.
  39. Das umkonfigurierbare Chip nach Anspruch 38, wobei die umkonfigurierbaren Funktionseinheiten durch einen Umkonfigurierbare-Funktionseinheit-Befehl neu konfiguriert werden, wobei der Befehl die Konfiguration der Multiplexer, der Schiebereinheit und der arithmetisch-logischen Einheit steuert.
  40. Das umkonfigurierbare Chip nach Anspruch 39, wobei der Umkonfigurierbare-Funktionseinheit-Befehl eine Reihe verschiedener Felder zum Steuern der Konfiguration der Multiplexer, der Schiebereinheit und der arithmetisch-logischen Einheit enthält.
  41. Das umkonfigurierbare Chip nach Anspruch 39, wobei ein Feld eines Befehls für die umkonfigurierbare Funktionseinheit den Modus der Schiebereinheit kennzeichnet.
  42. Das umkonfigurierbare Chip nach Anspruch 38, wobei die Verbindungselemente so ausgebildet sind, daß sie Daten von Wortlänge übertragen.
  43. Das umkonfigurierbare Chip nach Anspruch 38, ferner aufweisend einen Befehlsspeicher, der mehrere Befehle für die umkonfigurierbaren Funktionseinheiten speichert.
  44. Das umkonfigurierbare Chip nach Anspruch 38, wobei die umkonfigurierbaren Funktionseinheiten eine Schiebereinheit einschließen, die in eine Reihe verschiedener Modi konfigurierbar ist.
DE10296742T 2001-05-02 2002-05-02 Effizientes Hochleistungsdatenoperationselement zur Verwendung in einer Umgebung einer umkonfigurierbaren Logik Ceased DE10296742T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US28829801P 2001-05-02 2001-05-02
US60/288,298 2001-05-02
PCT/US2002/011870 WO2002103518A1 (en) 2001-05-02 2002-05-02 Efficient high performance data operation element for use in a reconfigurable logic environment

Publications (1)

Publication Number Publication Date
DE10296742T5 true DE10296742T5 (de) 2004-04-29

Family

ID=23106530

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10296742T Ceased DE10296742T5 (de) 2001-05-02 2002-05-02 Effizientes Hochleistungsdatenoperationselement zur Verwendung in einer Umgebung einer umkonfigurierbaren Logik

Country Status (7)

Country Link
US (1) US20030088757A1 (de)
JP (1) JP2004531149A (de)
KR (1) KR100628448B1 (de)
CN (1) CN1860441A (de)
DE (1) DE10296742T5 (de)
GB (1) GB2398653A (de)
WO (1) WO2002103518A1 (de)

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI234737B (en) * 2001-05-24 2005-06-21 Ip Flex Inc Integrated circuit device
US6781408B1 (en) 2002-04-24 2004-08-24 Altera Corporation Programmable logic device with routing channels
US7142011B1 (en) 2002-04-24 2006-11-28 Altera Corporation Programmable logic device with routing channels
WO2006042736A1 (fr) * 2004-10-18 2006-04-27 Nuyens Hildegarde Francisca Fe Systeme de processeur parallele reconfigurable, modulaire et hierarchique
GB2423840A (en) * 2005-03-03 2006-09-06 Clearspeed Technology Plc Reconfigurable logic in processors
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
US8266199B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8041759B1 (en) 2006-02-09 2011-10-18 Altera Corporation Specialized processing block for programmable logic device
US8266198B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8301681B1 (en) 2006-02-09 2012-10-30 Altera Corporation Specialized processing block for programmable logic device
US7836117B1 (en) 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for programmable logic device
US7822799B1 (en) 2006-06-26 2010-10-26 Altera Corporation Adder-rounder circuitry for specialized processing block in programmable logic device
US8099583B2 (en) * 2006-08-23 2012-01-17 Axis Semiconductor, Inc. Method of and apparatus and architecture for real time signal processing by switch-controlled programmable processor configuring and flexible pipeline and parallel processing
US8386550B1 (en) 2006-09-20 2013-02-26 Altera Corporation Method for configuring a finite impulse response filter in a programmable logic device
US7930336B2 (en) * 2006-12-05 2011-04-19 Altera Corporation Large multiplier for programmable logic device
US8386553B1 (en) 2006-12-05 2013-02-26 Altera Corporation Large multiplier for programmable logic device
US7814137B1 (en) 2007-01-09 2010-10-12 Altera Corporation Combined interpolation and decimation filter for programmable logic device
US7865541B1 (en) 2007-01-22 2011-01-04 Altera Corporation Configuring floating point operations in a programmable logic device
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US8645450B1 (en) 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
US7949699B1 (en) 2007-08-30 2011-05-24 Altera Corporation Implementation of decimation filter in integrated circuit device using ram-based data storage
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US8244789B1 (en) 2008-03-14 2012-08-14 Altera Corporation Normalization of floating point operations in a programmable integrated circuit device
US8181003B2 (en) * 2008-05-29 2012-05-15 Axis Semiconductor, Inc. Instruction set design, control and communication in programmable microprocessor cores and the like
US8078833B2 (en) * 2008-05-29 2011-12-13 Axis Semiconductor, Inc. Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions
US8626815B1 (en) 2008-07-14 2014-01-07 Altera Corporation Configuring a programmable integrated circuit device to perform matrix multiplication
US8255448B1 (en) 2008-10-02 2012-08-28 Altera Corporation Implementing division in a programmable integrated circuit device
US8307023B1 (en) 2008-10-10 2012-11-06 Altera Corporation DSP block for implementing large multiplier on a programmable integrated circuit device
US8468192B1 (en) 2009-03-03 2013-06-18 Altera Corporation Implementing multipliers in a programmable integrated circuit device
US8886696B1 (en) 2009-03-03 2014-11-11 Altera Corporation Digital signal processing circuitry with redundancy and ability to support larger multipliers
US8645449B1 (en) 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US8805916B2 (en) * 2009-03-03 2014-08-12 Altera Corporation Digital signal processing circuitry with redundancy and bidirectional data paths
US8706790B1 (en) 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8549055B2 (en) * 2009-03-03 2013-10-01 Altera Corporation Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry
US8650236B1 (en) 2009-08-04 2014-02-11 Altera Corporation High-rate interpolation or decimation filter in integrated circuit device
US8396914B1 (en) 2009-09-11 2013-03-12 Altera Corporation Matrix decomposition in an integrated circuit device
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US8539016B1 (en) 2010-02-09 2013-09-17 Altera Corporation QR decomposition in an integrated circuit device
US7948267B1 (en) 2010-02-09 2011-05-24 Altera Corporation Efficient rounding circuits and methods in configurable integrated circuit devices
US8601044B2 (en) * 2010-03-02 2013-12-03 Altera Corporation Discrete Fourier Transform in an integrated circuit device
US8458243B1 (en) 2010-03-03 2013-06-04 Altera Corporation Digital signal processing circuit blocks with support for systolic finite-impulse-response digital filtering
US8484265B1 (en) 2010-03-04 2013-07-09 Altera Corporation Angular range reduction in an integrated circuit device
US8510354B1 (en) 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8539014B2 (en) 2010-03-25 2013-09-17 Altera Corporation Solving linear matrices in an integrated circuit device
US8645807B2 (en) * 2010-05-31 2014-02-04 National Chiao Tung University Apparatus and method of processing polynomials
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8589463B2 (en) 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8577951B1 (en) 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
US8645451B2 (en) 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US10534608B2 (en) * 2011-08-17 2020-01-14 International Business Machines Corporation Local computation logic embedded in a register file to accelerate programs
US8812576B1 (en) 2011-09-12 2014-08-19 Altera Corporation QR decomposition in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8762443B1 (en) 2011-11-15 2014-06-24 Altera Corporation Matrix operations in an integrated circuit device
US8543634B1 (en) 2012-03-30 2013-09-24 Altera Corporation Specialized processing block for programmable integrated circuit device
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US9379687B1 (en) 2014-01-14 2016-06-28 Altera Corporation Pipelined systolic finite impulse response filter
CN104900260B (zh) * 2014-03-07 2018-08-24 中芯国际集成电路制造(上海)有限公司 延时选择器
US11797473B2 (en) * 2014-05-29 2023-10-24 Altera Corporation Accelerator architecture on a programmable platform
EP3149600A4 (de) * 2014-05-29 2017-12-20 Altera Corporation Beschleunigerarchitektur auf einer programmierbaren plattform
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device
US10565036B1 (en) 2019-02-14 2020-02-18 Axis Semiconductor, Inc. Method of synchronizing host and coprocessor operations via FIFO communication
JP7433931B2 (ja) 2020-01-27 2024-02-20 キヤノン株式会社 情報処理装置及びその制御方法及びプログラム
JP7471913B2 (ja) 2020-05-20 2024-04-22 キヤノン株式会社 信号処理装置及びその駆動制御方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4761755A (en) * 1984-07-11 1988-08-02 Prime Computer, Inc. Data processing system and method having an improved arithmetic unit
US4862407A (en) * 1987-10-05 1989-08-29 Motorola, Inc. Digital signal processing apparatus
DE69132495T2 (de) * 1990-03-16 2001-06-13 Texas Instruments Inc Verteilter Verarbeitungsspeicher
USH1385H (en) * 1991-10-18 1994-12-06 The United States Of America As Represented By The Secretary Of The Navy High speed computer application specific integrated circuit
US5517439A (en) * 1994-02-14 1996-05-14 Matsushita Electric Industrial Co., Ltd. Arithmetic unit for executing division
US5649174A (en) * 1994-12-09 1997-07-15 Vlsi Technology Inc. Microprocessor with instruction-cycle versus clock-frequency mode selection
US6052773A (en) * 1995-02-10 2000-04-18 Massachusetts Institute Of Technology DPGA-coupled microprocessors
US5794062A (en) * 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
US6510510B1 (en) * 1996-01-25 2003-01-21 Analog Devices, Inc. Digital signal processor having distributed register file
US5956518A (en) * 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device
US5828858A (en) * 1996-09-16 1998-10-27 Virginia Tech Intellectual Properties, Inc. Worm-hole run-time reconfigurable processor field programmable gate array (FPGA)
FR2757973B1 (fr) * 1996-12-27 1999-04-09 Sgs Thomson Microelectronics Processeur de traitement matriciel
US5970254A (en) * 1997-06-27 1999-10-19 Cooke; Laurence H. Integrated processor and programmable data path chip for reconfigurable computing
US5948098A (en) * 1997-06-30 1999-09-07 Sun Microsystems, Inc. Execution unit and method for executing performance critical and non-performance critical arithmetic instructions in separate pipelines
US6122719A (en) * 1997-10-31 2000-09-19 Silicon Spice Method and apparatus for retiming in a network of multiple context processing elements
US6108760A (en) * 1997-10-31 2000-08-22 Silicon Spice Method and apparatus for position independent reconfiguration in a network of multiple context processing elements
US6128724A (en) * 1997-12-11 2000-10-03 Leland Stanford Junior University Computation using codes for controlling configurable computational circuit
DE69827589T2 (de) * 1997-12-17 2005-11-03 Elixent Ltd. Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen
US6226735B1 (en) * 1998-05-08 2001-05-01 Broadcom Method and apparatus for configuring arbitrary sized data paths comprising multiple context processing elements

Also Published As

Publication number Publication date
KR20040005944A (ko) 2004-01-16
CN1860441A (zh) 2006-11-08
WO2002103518A1 (en) 2002-12-27
JP2004531149A (ja) 2004-10-07
US20030088757A1 (en) 2003-05-08
GB2398653A (en) 2004-08-25
GB0327399D0 (en) 2003-12-31
KR100628448B1 (ko) 2006-09-26

Similar Documents

Publication Publication Date Title
DE10296742T5 (de) Effizientes Hochleistungsdatenoperationselement zur Verwendung in einer Umgebung einer umkonfigurierbaren Logik
DE69637399T2 (de) Grobkörnig strukturierte integrierte Halbleiterschaltung mit Nachschlagtabellen
EP1116128B1 (de) Verfahren zum konfigurieren eines konfigurierbaren hardware-blocks
EP0948842B1 (de) VERFAHREN ZUM SELBSTÄNDIGEN DYNAMISCHEN UMLADEN VON DATENFLUSSPROZESSOREN (DFPs) SOWIE BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN (FPGAs, DPGAs, o.dgl.)
DE68929518T2 (de) Verfahren zur Verwendung einer elektronisch wiederkonfigurierbaren Gatterfeld-Logik und dadurch hergestelltes Gerät
DE4417575A1 (de) Verbesserte Array-Architektur für programmierbare logische Zellen
DE4416881C2 (de) Verfahren zum Betrieb einer Datenverarbeitungseinrichtung
EP1329816B1 (de) Verfahren zum selbständigen dynamischen Umladen von Datenflussprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o.dgl.)
DE60316151T2 (de) Zugriff zum breiten speicher
DE4010119C2 (de) Anordnung und Verfahren zur Umordnung eines Speicherformats in einem Mikroprozessor
WO1998026356A1 (de) EINHEIT ZUR VERARBEITUNG VON NUMERISCHEN UND LOGISCHEN OPERATIONEN, ZUM EINSATZ IN PROZESSOREN (CPUs), MEHRRECHNERSYSTEMEN
DE19654595A1 (de) I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
DE602004006516T2 (de) Parallel-verarbeitungs-array
DE2716369A1 (de) Mikroprozessorsystem
WO2000077652A9 (de) Sequenz-partitionierung auf zellstrukturen
WO2007082730A1 (de) Hardwaredefinitionsverfahren
EP1599794B1 (de) Prozessor mit verschiedenartigen steuerwerken für gemeinsam genutzte ressourcen
DE3114921C2 (de) Mikroprogramm-Speicheranordnung
DE112011105670T5 (de) Verschiebbarer Speicher, der Ringregister verwendet
DE602004006841T2 (de) Elektronischer schaltkreis mit einem feld programmierbarer logischer zellen
DE102005005073B4 (de) Rechnereinrichtung mit rekonfigurierbarer Architektur zur parallelen Berechnung beliebiger Algorithmen
DE602005001900T2 (de) Rekonfigurierbarer Prozessor und Halbleiterbaustein
DE69828890T2 (de) Konfigurierbare speichersteuerungsvorrichtung und verfahren hierfür
DE102004052576A1 (de) Paralleler Verarbeitungsmechanismus für Multiprozessorsysteme
DE19530669A1 (de) Verfahren zum automatischen Auswählen eines taktsteuernden Signalpfads in umprogrammierbaren Systemen zur Hardware-Emulation

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law

Ref document number: 10296742

Country of ref document: DE

Date of ref document: 20040429

Kind code of ref document: P

8131 Rejection