Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.


  1. Advanced Patent Search
Publication numberDE19654593 A1
Publication typeApplication
Application numberDE1996154593
Publication date2 Jul 1998
Filing date20 Dec 1996
Priority date20 Dec 1996
Also published asDE59713036D1, EP0947049A1, EP0947049B1, EP1146432A2, EP1146432A3, EP1146432B1, EP2214104A1, US6021490, US7174443, WO1998031102A1
Publication number1996154593, 96154593, DE 19654593 A1, DE 19654593A1, DE-A1-19654593, DE19654593 A1, DE19654593A1, DE1996154593, DE96154593
InventorsMartin Vorbach, Robert Muench
ApplicantPact Inf Tech Gmbh
Export CitationBiBTeX, EndNote, RefMan
External Links: DPMA, Espacenet
Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit Reconfiguration method for programmable devices at runtime translated from German
DE 19654593 A1
The invention relates to a method for reconfiguration during the running time of FPGA, in which there is a loading logic or several loading logics which react to signals of any kind and recognize and can process special loading logic commands within a configuration programme consisting of data and commands, and, on the basis of the source of an event, can compute an entry in a branch table. For this, there are one or more branch tables for locating the address of the configuration data to be loaded after computing. One or more configuration memory areas exist, in which one or more configuration programmes are loaded; and there are one or more FIFO memory areas into which configuration data is copied which could not be sent to the element or elements to be configured. When an event occurs, an address is computed in a branch table, based on the source of the event. FIFO memory area is provided and run through before each reloading, and, if the cell can not be reloaded, the configuration data is copied into it nearer the beginning; if the cell can be reloaded, the configuration data is transferred to the cell. The computed branch table entry is read-out, and the configuration data which is stored at the read-out address is loaded into the cell, or, if the cell cannot be reprogrammed, it is copied into the FIFO memory area.
Claims(11)  translated from German
1. Verfahren zum Umkonfigurieren zur Laufzeit von programmierbaren Bau steinen, mit einer zwei oder mehrdimensionalen Zellanordnung (zum Beispiel FPGAs, DPGAs, DFPs o. ä.) dadurch gekennzeichnet , daß 1. A method for reconfiguring the runtime of programmable building blocks, with a two-dimensional or multidimensional cell arrangement (eg FPGAs, DPGAs, DFP o. Ä.) Characterized in that
  • 1. eine Ladelogik oder mehrere Ladelogiken existieren, welche auf Signale, gleich welcher Art, reagieren und spezielle Ladelogik-Befehle, innerhalb eines Konfigurationsprogramms, bestehend aus Daten und Befehlen, erkennen und verarbeiten können, sowie auf Grund der Quelle eines Ereignisses einen Eintrag in einer Sprung-Tabelle berechnen können, und 1. a PLU or more loading logics exist which to signals of any kind, responsive and special loading logic commands can within a configuration program consisting of data and commands, recognize and process, as well as due to the source of an event an entry in a can calculate jump table, and
  • 2. eine oder mehrere Sprung-Tabellen zum Auffinden der Adresse der zu ladenden Konfigurationsdaten, welche berechnet wurde, existieren, 2. one or more jump tables for finding the address of the loaded configuration data, which was calculated to exist,
  • 3. ein oder mehrere Konfigurations-Speicherbereiche existieren, in denen ein oder mehrere Konfigurationsprogramme geladen werden, 3. One or more configuration storage areas exist in which one or more configuration programs are loaded,
  • 4. ein oder mehrere FIFO-Speicherbereiche existieren, in den Konfigura tionsdaten kopiert werden, welche nicht an die oder das zu konfigurie rende Element gesandt werden konnten, 4. One or more FIFO memory areas exist in the Configurati data are copied that to the CONFIGURIN-saving element could not be sent to or
  • 5. ein Ereignis eintrifft und auf Grund der Quelle des Ereignisses eine Adresse in einer Sprung-Tabelle berechnet wird 5. arrives an event and is calculated based on the source of the event an address in a jump table
  • 6. ein FIFO-Speicherbereich, der vor jedem Umladen durchlaufen wird, und falls die Zelle nicht umgeladen werden kann, die Konfigurations daten näher an den Anfang des FIFO-Speicherbereichs kopiert werden, oder, falls die Zelle umgeladen werden kann, die Konfigurationsdaten an die Zelle übertragen werden, 6. a FIFO memory area that runs before each transhipment, and if the cell can not be reloaded, the configuration is copied data closer to the beginning of the FIFO memory area, or if the cell can be recharged, the configuration data to the cell is transferred,
  • 7. der berechnete Sprung-Tabellen Eintrag ausgelesen wird, und die Kon figurationsdaten, welche an der ausgelesenen Adresse gespeichert sind, in die Zellen geladen werden oder, falls die Zelle nicht umprogrammiert werden kann, in den FIFO-Speicherbereich kopiert werden 7. the calculated jump-tables entry is read and the Kon configuration data stored in the read address is loaded into the cells or, if the cell can not be reprogrammed be copied into the FIFO memory area
  • 8. die Ladelogik in einen Zustand zurückspringt, in dem sie auf Ereignisse warten und auf diese reagieren kann. 8. the PLU jumps back into a state where it can listen for events and act on it.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Konfigurationsspeicher eine oder mehrere Konfigurationen speichert, wel che eine oder mehrere komplette Konfigurationen für einen oder mehrere Bausteine enthält. 2. The method according to claim 1, characterized in that the configuration memory stores one or more configurations, wel che one or more complete configurations for one or more blocks.
3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Konfigurationsspeicher eine oder mehrere Teilkonfigurationen speichert, welche nur einen Teil einer kompletten Konfiguration, eines oder mehrerer Bausteine darstellt. 3. The method according to claim 1, characterized in that the configuration memory stores one or more partial configurations representing only part of a complete configuration of one or more blocks.
4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Ladelogik ein Start-Konfigurations-Register enthält, welches auf eine Startkonfiguration zeigt, welche den oder die Bausteine in einen gültigen Zustand versetzt. 4. The method according to claim 1, characterized in that the loading logic contains a start configuration register, which points to a start configuration which puts the blocks or in a valid state.
5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Ladelogik ein FIFO-Start-Register enthält, welches auf den Beginn des speziellen Speicherbereichs zeigt, in den Konfigurationsdaten kopiert werden. 5. The method according to claim 1, characterized in that the loading logic contains a FIFO start register which points to the beginning of the special memory area are copied to the configuration data.
6. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Ladelogik ein FIFO-End-Register enthält, welches auf das Ende des spe ziellen Speicherbereichs zeigt, in den Konfigurationsdaten kopiert werden. 6. The method according to claim 1, characterized in that the loading logic contains a FIFO end register which points to the end of the spe cial memory area are copied to the configuration data.
7. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Ladelogik ein FIFO-Free-Entry-Register enthält, welches auf den ersten freien Eintrag, des speziellen Speicherbereichs zeigt, in den Konfigurations daten kopiert werden, zeigt, der dem Beginn dieses Speicherbereichs am nächsten ist. 7. The method according to claim 1, characterized in that the loading logic contains a FIFO free entry register which points to the first free entry of the special memory area, data is copied in the configuration shows, the at the beginning of this memory area next is.
8. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Ladelogik ein Programmzähler Register enthält, welches auf den zu ver arbeitenden Eintrag innerhalb des Konfigurationsspeichers zeigt. 8. The method according to claim 1, characterized in that the loading logic contains a program counter register which points to the entry to ver working within the configuration memory.
9. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Ladelogik ein Adress-Register enthält, welches die Adresse (Nummer, Koordianten etc.) der Zelle enthält, welche ein Ereignis ausgelöst hat. 9. The method according to claim 1, characterized in that the loading logic contains an address register containing the address (number, Koordianten etc.) of the cell that triggered event.
10. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Ladelogik ein Data Register enthält, welches die Konfigurationsdaten der Zelle enthält, welche an die Zelle, bei einer Umkonfigurierung, übertragen werden. 10. The method according to claim 1, characterized in that the loading logic contains a data register containing the configuration data of the cell, which are transferred to the cell, at a reconfiguration.
11. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Ladelogik ein Dispatch-Register enthält, welches die aus der Zell Adresse berechnete Adresse des Eintrags in der Sprung-Tabelle enthält. 11. The method according to claim 1, characterized in that the loading logic contains a dispatch register containing the address calculated from the cell address of the entry in the jump table.
Description  translated from German
1. Hintergrund der Erfindung 1. Background of the Invention 1.1 Stand der Technik 1.1 state of the art

Programmierbare Bausteine mit zwei oder mehrdimensionaler Zellanordnung (ins besondere FPGAs, DPGAs und DFPs o. ä.) werden heutzutage auf zwei verschiedene Arten programmiert. Programmable devices with two or multi-dimensional cell array (FPGAs in particular, DPGAs and DFP o. Ä.) Are now programmed in two different ways.

  • - Einmalig, das heißt die Konfiguration kann nach der Programmierung nicht mehr geändert werden. - Once, that is, the configuration can not be changed after programming. Alle Konfigurierten Elemente des Bausteins führen also die gleiche Funktion, über den gesamten Zeitraum durch, in dem die Anwendung abläuft. All Configured elements of the block thus perform the same function, over the whole period by where the application runs.
  • - Im Betrieb, das heißt die Konfiguration kann nach Einbau des Bausteins, durch daß Laden einer Konfigurationsdatei, zum Startbeginn der Anwendung, geändert werden. - In operation, ie the configuration after installation of a block, that by loading a configuration file, the start date of application, as amended. Die meisten Bausteine (insbesondere die FPGA Bausteine), lassen sich während des Betriebes nicht wieder umkonfigurieren. Most components (especially the FPGA blocks) can not be reconfigured again during operation. Bei umkon figurierbaren Bausteinen, ist eine Weiterverarbeitung von Daten während des Umkonfigurierens meistens nicht möglich und die benötigte Umkonfigurie rungszeit erheblich zu groß. In umkon urable blocks further processing of data while reconfiguring is usually not possible and the Umkonfigurie required delay time considerably too large.

Neben den FPGAs, gibt es noch die sogenannten DPGAs. In addition to FPGAs, there are the so-called DPGAs. Diese Bausteine speichern eine kleine Anzahl an verschiedenen Konfigurationen, welche durch ein spezielles Datenpaket ausgewählt werden. These devices store a small number of different configurations, which are selected by a special data packet. Eine Umkonfigurierung dieser Speicher während der Laufzeit ist nicht möglich. A reconfiguration of memory during runtime is not possible.

1.2 Probleme 1.2 Problems

Große Probleme bereitet die Umkonfigurierung von gesamten programmierbaren Bausteinen oder Teilen davon während der Laufzeit und dabei besonders die Syn chronisation. A major concern is the reconfiguration of programmable devices whole or parts thereof during the term of this nization and especially the Syn. Alle bisherigen Lösungen halten die Verarbeitung des kompletten Bau steins, während der Umkonfigurierung, an. All previous solutions stop processing the complete construction steins, during the reconfiguration at. Ein weiteres Problem ist die Selektion der neu zu ladenden Teilkonfiguration und das Integrieren dieser Teilkonfiguration in die bereits bestehende Konfiguration. Another problem is the selection of the newly loaded part configuration and integrating this part configuration to the existing configuration.

1.3 Verbesserung durch die Erfindung 1.3 Improving the invention

Durch das in der Erfindung beschriebene Verfahren ist es möglich einen, zur Lauf zeit, umkonfigurierbaren Baustein, effizient und ohne Beeinflussung der nicht an der Umkonfigurierung beteiligten Bereiche, umzuladen. By the method described in the present invention, it is possible one, at run time reconfigurable module, efficiently and without affecting the areas not involved in the reconfiguration to reload. Weiterhin ermöglicht das Verfahren das Selektieren von Konfigurationen in Abhängigkeit der aktuellen Kon figuration. Furthermore, the method allows the discrimination of configurations configuration depending on the current Kon. Das Problem der Synchronisation der an der Umkonfiguration beteiligten und nicht beteiligten Bereiche wird ebenfalls gelöst. The problem of synchronization of those involved in the reconfiguration and not participating areas is also solved.

2. Beschreibung der Erfindung 2. Description of the Invention 2.1 Übersicht über die Erfindung, Abstrakt 2.1 Overview of the invention, Abstract

Beschrieben wird ein Verfahren zum Umkonfigurieren von programmierbaren Bau steinen, bestehend aus einer zwei oder mehrdimensionalen Zellanordnung. A method for reconfiguring programmable building blocks is described, consisting of a two-dimensional or multidimensional cell array. Das Ver fahren ermöglicht die Umkonfigurierung des Bausteins oder der Bausteine, ohne die Arbeitsfähigkeit, der nicht an der Umkonfigurierung beteiligten Zellen, einzu schränken. The drive Ver allows reconfiguring the device or devices, without the work ability of the cells not involved in the reconfiguration, einzu limit. Das Verfahren ermöglicht das Laden von kompletten Konfigurationen oder von Teilkonfigurationen in den oder die programmierbaren Bausteine. The method allows the loading of complete configurations or configurations of part or the said modules. Die Ein zelheiten und besondere Ausgestaltungen, sowie Merkmale des erfindungsgemäßen Verfahrens zum Umkonfigurierens von programmierbaren Bausteinen, sind Gegen stand der Patentansprüche. The A zelheiten and special embodiments and features of the method for reconfiguring programmable devices are subject stood the claims.

2.2 Detailbeschreibung der Erfindung 2.2 Detailed Description of the Invention

Das beschriebene Verfahren setzt einen programmierbaren Baustein voraus, welcher folgende Eigenschaften aufweist: The method described requires a programmable device, which has the following properties:

  • - Ladelogik - PLU
    Die Ladelogik ist der Teil des Bausteins, welcher das Laden und Eintragen von Konfigurationsworten in die zu konfigurierenden Elemente des Bausteins (Zellen) durchführt. The primary logic is the part of the block which performs the loading and configuration entries of words in the elements to be configured the module (cells).
  • - Zellen - Cells
    Der Baustein besitzt eine Vielzahl an Zellen, welche einzeln durch die Lade logik adressiert werden können. The block has a plurality of cells that can be individually addressed by the charging logic.
  • - Rückmeldung Ladelogik - Feedback PLU
    Jede Zelle oder Gruppe von Zellen muß der Ladelogik mitteilen können, ob sie umkonfiguriert werden kann. Each cell or group of cells must be able to tell the PLU whether they can be reconfigured.
  • - Rückmeldung Zellen - Feedback cells
    Jede Zelle muß die Möglichkeit haben, ein STOP Signal an die Zellen zu senden, von denen sie ihre zu verarbeitenden Daten erhält. Each cell must be able to send a stop signal to the cells from which it receives its data to be processed.
  • - START/STOP Kennung - START / STOP ID
    Jede Zelle muß eine Möglichkeit besitzen, ein START/STOP Kennung einzu stellen. Each cell must have a way to make einzu a START / STOP identifier.
  • - Die START Kennung zeichnet eine Zelle als den Beginn einer längeren Verarbeitungskette (Makro) aus. - The START identifier distinguishes a cell as the beginning of a longer processing chain (macro).
  • - Die STOP Kennung markiert das Ende des Makros, also den Punkt, an dem die Verarbeitung des Makros ein Ergebnis geliefert hat. - The STOP identification marks the end of the macro, ie the point at which the processing of the macro has delivered a result.
2.2.1 Aufbau eines Konfigurationswortes 2.2.1 Design of a configuration word

Die Ladelogik ist eine Zustandsmaschine, welche Konfigurationsworte verarbeiten kann. The load logic is a state machine which can process configuration words.

Neben Konfigurationsworten für Zellen, existieren Einträge, welche durch die La delogik als Befehle erkannt werden können. In addition to configuration words for cells exist entries, which can be recognized as commands by the La delogik. Es ist also möglich zu unterscheiden ob der Inhalt des Konfigurationswortes an eine Zelle zu übertragen ist oder einen Befehl für die Zustandsmaschine darstellt. It is therefore possible to distinguish whether the content of the configuration word is to be transferred to a cell or represents a command for the state machine.

Ein Konfigurationswort, welches an Zellen des Bausteins übertragen wird, muß da bei mindestens folgende Daten enthalten: A configuration word, which is transmitted to cells of the unit, there must contain at least the following information:

  • - Adresse der Zelle. - Address of the cell. Zum Beispiel als lineare Nummer oder als X,Y Koordinaten. For example, as a linear number or as X, Y coordinates.
  • - Konfigurationswort, welches in die Zelle übertragen wird. - Configuration word which is transmitted into the cell.
2.2.2 Kennungen und Befehle für die Ladelogik 2.2.2 Identifiers and commands for the PLU

Für eine korrekte Arbeitsweise der Ladelogik, muß diese nur zwei Befehlsworte erkennen können. For proper operation of the charging logic, it must be able to recognize only two instruction words. Dies sind: These are:

  • - END - END
    Dies ist ein Befehl, welche die Ladelogik in einen Zustand versetzt, in dem sie auf das Eintreffen von Ereignissen von Zellen, wartet. This is a command, which enables the loading logic into a state in which they are for the arrival of events of cells waiting. ( Fig. 2) (Fig. 2)
  • - DISPATCH (Eintragsnummer, Adresse) - DISPATCH (entry number, address)
  • - Die Ladelogik trägt in die Adresse, welche durch den Parameter Eintragsnum mer angegeben wird, der Sprung-Tabelle den Wert des Parameters Adresse ein. - The charge carries logic in the address which is indicated by the number Eintragsnum parameters, the jump table the value of the parameter address.

Weiterhin kann die Ladelogik einen Eintrag als Leer-Eintrag erkennen. Furthermore, the load logic can detect an entry as a blank entry. Dies wird dadurch erreicht, daß ein bestimmtes Bit-Muster als Leer-Kennung definiert ist, welches durch die Ladelogik erkannt werden kann. This is achieved in that a specific bit pattern is defined as an empty identifier which can be recognized by the charging logic.

2.2.3 Die Sprung-Tabelle 2.2.3 The jump table

Im Konfigurationsspeicher, existiert eine Sprung-Tabelle ( 0506 ). In the configuration memory, there is a jump table (0506). Die Größe der Sprung-Tabelle ist dabei so gewählt, daß für jede Zelle, welche von der Ladelogik adressiert werden kann, genau ein einziger Eintrag vorhanden ist. The size of the jump table is chosen so that a single entry exists for each cell, which can be addressed by the PLU, exactly. Zu jeder Zell adresse existiert genau ein einziger Eintrag in der Sprung-Tabelle, welcher durch die Ladelogik berechnet werden kann. For each cell address, there is exactly one entry in the jump table, which can be calculated by the PLU. ( Fig. 5 und 6). (FIGS. 5 and 6).

In einem Eintrag der Sprung-Tabelle steht eine Speicheradresse ( 0601 ). In an entry in the jump table is a memory address (0601). Diese Spei cheradresse gibt an, von wo weitere Konfigurationsdaten ( 0508 ), aus dem Konfi gurationsspeicher, zu lesen sind, falls von dieser Zelle eine Rückmeldung an die Ladelogik erfolgt. This SpeI O number indicates where further configuration data (0508) is to be read from the confi gurationsspeicher, if done from this cell to provide feedback to the PLU.

2.2.4 Start des Systems 2.2.4 Starting the system

Durch einen Reset also dem Rücksetzen des Systems, beginnt die Ladelogik mit dem Empfangen oder Laden von Konfigurationsdaten, von einem Speicher, in den Konfigurationsspeicher ( 0101 ). A reset so the system reset, the PLU begins by receiving or loading configuration data from a memory in the configuration memory (0101). Alle Zellen des Bausteines sind in dem Zustand, in dem sie konfiguriert werden können. All cells of the block are in the state in which it can be configured. Danach springt die Ladelogik, durch Laden des Programmzählers (PC) ( 0505 ), an eine Speicherstelle, welche die Adresse ei ner Startkonfiguration ( 0507 ) enthält ( 0102 ). Then the PLU jumps, by loading the program counter (PC) (0505), to a memory location address ei ner startup configuration (0507) contains (0102). Diese Startkonfiguration wird solange abgearbeitet, bis die Ladelogik eine END-Kennung erkennt ( 0103 ). This startup configuration is executed as long as until the PLU an END identifier identifies (0103). Diese Start konfiguration programmiert den Baustein derart, daß eine Verarbeitung von Daten beginnen kann. This startup configuration programmed the block such that a data processing can begin. Nach dem Eintragen der Startkonfiguration, wechselt die Ladelogik, auf Grund der END-Kennung, in einen Zustand, in dem sie auf Ereignisse von den Zellen wartet ( 0104 ). After entering the boot configuration, change the PLU, due to the END identifier, in a state where it waits for events from the cells (0104).

2.3 Eintreffen eines Ereignisses einer Zelle 2.3 occurrence of an event of a cell

Nach der Verarbeitung von Daten kann eine Zelle eine Rückmeldung an die Lade logik senden. After the processing of data, a cell can send feedback to the charging logic. Diese Rückmeldung (Ereignis) zeigt an, daß die Zelle und damit das Makro in dem die Zelle enthalten ist, seine Arbeit beendet hat und das Umladen erfolgen kann. This feedback (event) indicates that the cell, and thus the macro in which the cell is contained, has finished its work and the transhipment can take place.

Bevor allerdings mit dem Laden einer neuen Konfiguration begonnen wird, wird der nachfolgend beschriebene FIFO-Speicher (First-In-First-Out Speicher) abgearbeitet ( 0201 ). Before, however, started to load a new configuration that is described below FIFO (First-In-First-Out Memory) is executed (0201).

Wichtig ist, daß der Speicher als FIFO-Speicher organisiert ist. It is important that the memory is organized as a FIFO memory. Diese Organisati on garantiert, daß Zellen die im ersten Versuch nicht umgeladen werden konnten, garantiert im zweiten Versuch als erste wieder an der Reihe sind. This tive organizations ensures that cells could not be transferred in the first attempt guaranteed at the second attempt as the first turn again are. Dadurch wird verhindert, daß Zellen welche zwischenzeitlich signalisiert haben, daß sie umkonfi guriert werden können, ganz nach hinten in der Bearbeitung rutschen. This prevents cells have indicated that in the meantime, that they can be configured umkonfi, all the way back to slip in processing. In diesem Fall könnte ein Deadlock-Situation auftreten, in der das eine Makro erst umkonfiguriert werden kann, wenn ein anderes Makro umkonfiguriert wurde. In this case a deadlock situation could arise in which the macro can only be reconfigured when another macro was reconfigured.

Durch die Rückmeldung an die Ladelogik, erhält die Ladelogik auch die Adresse oder Nummer der Zelle, welche die Rückmeldung ausgelöst hat. Through the feedback to the PLU, the PLU also receives the address or number of the cell that triggered the response. Mit Hilfe dieser Nummer, wird der passende Eintrag in der Sprung-Tabelle selektiert ( 0203 , 0204 ). Using this number, the matching entry is selected in the jump table (0203, 0204). Die Adresse, welche in diesem Eintrag enthalten ist, gibt den Beginn der zu ladenden Konfiguration innerhalb des Konfigurationsspeichers an ( 0205 ). The address contained in this entry, indicates the beginning of the loaded configuration within the configuration memory of (0205).

2.3.1 FIFO-Speicher 2.3.1 FIFO memory

Das Verfahren muß berücksichtigen, daß es sein kann, daß einige Zellen ihre Arbeit noch nicht beendet haben, diese Zellen jedoch schon umgeladen werden sollen. The process has to consider that it may be that some cells have not yet completed their work, these cells should be, however, already reloaded. Alle Konfigurationsdaten der Zellen, bei denen eine solche Bedingung zu trifft, werden in einen speziellen Speicherbereich (FIFO-Speicher) kopiert ( 0506 ). All configuration data of the cells in which such a condition is true, is copied to a special memory area (FIFO) (0506).

Jedesmal, bevor eine neue Konfiguration geladen werden soll, wird der FIFO-Speicher durchlaufen. Each time before a new configuration will be loaded, the FIFO is run. Da eine neue Konfiguration geladen werden soll, haben einige Zellen ih re Arbeit beendet und sind in den Zustand "umkonfigurierbar" übergegangen. As a new configuration will be loaded, some cells th e ir work are finished and are "reconfigurable" gone over to the state. Unter diesen Zellen können sich auch solche befinden, bei denen eine Umkonfigurierung, durch die Ladelogik, in einem früheren Versuch gescheitert ist, da diese Zellen ih re Arbeit noch nicht beendet hatte, diese Umkonfigurierung jetzt aber erfolgreich durchgeführt werden kann. Under these cells can also find those in which reconfiguration is failed by the PLU, in a previous attempt, since these cells had th e ir work is not yet finished, but this reconfiguration can now be carried out successfully.

Die Ladelogik lädt den PC mit dem Inhalt des Registers, welches auf den Beginn des FIFO-Speicher zeigt (FIFO-Start-REG) ( 0502 ) und ließt die Daten aus dem FIFO-Speicher. The charging logic loads the PC with the contents of the register points to the beginning of the FIFO (FIFO start REG) (0502) and reads the data from the FIFO memory. Ein Vergleich stellt fest, ob das Ende des FIFO-Speichers erreicht wurde ( 0301 ). A comparison determines whether the end of the FIFO memory is reached (0301). Ist dies der Fall, so wird an die Stelle in der Zustandsmaschine zurückge sprungen, an der die Umkonfigurierung fortläuft ( 0202 ). If this is the case, then skipped to the location in the state machine zurückge where the reconfiguration continue running (0202).

Die Abarbeitung des FIFO-Speichers geschieht ähnlich dem einer Konfiguration innerhalb des Konfigurationsspeichers. The processing of the FIFO memory is done similar to that of a configuration in the configuration memory. Es kann der Fall eintreten, daß eine Zelle auch bei einem weiteren Versuch immer noch nicht umkonfiguriert werden kann. It may be the case that a cell may still not be reconfigured in a further experiment. In diesem Fall werden die Konfigurationsdaten, falls eine leere Speicherstelle weiter vorne im FIFO-Speicher existiert, in diese Speicherstelle kopiert ( 0302 ). In this case, the configuration data, if an empty memory location further forward in the FIFO memory exists, be copied into this memory location (0302).

Dieser Kopiervorgang wird dadurch erreicht, daß die Ladelogik die Startadresse des FIFO-Speichers im FIFO-Start-REG ( 0502 ) gespeichert hat und die Endeadresse im FIFO-End-REG ( 0503 ). This copying is achieved by the PLU has the start address of the FIFO memory stored in the FIFO start REG (0502) and the end address in the FIFO end REG (0503). Weiterhin kennt die Ladelogik die Adresse des nächsten freien Eintrags (beginnend vom Anfang des FIFO-Speichers) mittels des FIFO-Free- Entry-REG ( 0504 , 0303 ). Furthermore, the load logic knows the address of the next free entry (starting from the beginning of the FIFO memory) using the FIFO Free-Entry-REG (0504, 0303). Nachdem das Konfigurationswort in den freien Eintrag kopiert wurde ( 0304 ), positioniert die Ladelogik den Zeiger des FIFO-Free-Entry- REG auf den nächsten freien Eintrag ( 0305 ), innerhalb des FIFO-Speichers. After the configuration word is copied to the free entry (0304), the PLU positions the pointer of the FIFO free entry-REG to the next free entry (0305), within the FIFO memory. Die Suche erfolgt dabei in Richtung des Endes des FIFO-Speichers. The search is carried out towards the end of the FIFO memory. Danach wird der PC auf den nächsten Eintrag innerhalb des FIFO-Speichers gesetzt ( 0306 ). Now the client is set to the next entry in the FIFO memory (0306).

2.3.2 Umladen von Zellen 2.3.2 transhipment of cells

Die Ladelogik liest nun die Konfigurationsdaten aus dem Konfigurationsspeicher. The charging logic reads the configuration data from the configuration memory. In diesen Daten ist die Adresse der Zelle enthalten, welche umgeladen werden soll ( Fig. 4). In these data, the address of the cell (FIG. 4) is included, which is to be reloaded. Jede Zelle kann signalisieren, daß sie umgeladen werden kann. Each cell can signal that it can be reloaded. Die Ladelogik testet dies ( 0401 ). The charging logic testing this (0401). Kann die Zelle umgeladen werden, werden die Konfigurationsda ten von der Ladelogik an die Zelle übertragen. The cell can be recharged, the Konfigurationsda are received from the PLU transferred to the cell.

Ist die Zelle noch nicht bereit, werden die durch die Ladelogik gelesenen Daten in einen Speicherbereich, den FIFO-Speicher, innerhalb des Konfigurationsspeichers geschrieben ( 0402 ). Is not ready, the cell can be read by the PLU data in a storage area, the FIFO memory, written within the configuration memory (0402). Die Adresse an welche die Daten geschrieben werden, ist in einem Register, innerhalb der Ladelogik, abgelegt (FIFO-End-Reg) ( 0503 ). The address to which the data is to be written in a register within the PLU stored (FIFO-end Reg) (0503).

Dieser Vorgang wird so oft wiederholt, bis die Ladelogik die END-Kennung des Konfigurationsprogramms erkennt und wieder in den Zustand übergeht, in dem die Ladelogik auf Ereignisse der Zellen wartet ( 0403 ). This process is repeated until the PLU recognizes the END identifier of the configuration program and re-enters the state in which the PLU waits for events of the cells (0403).

2.3.3 Aufbau des Konfigurationsprogramms 2.3.3 Structure of the Configuration Utility

Nachdem eine Zelle das Signal zum Umladen gegeben hat und das Makro, in dem die Zelle integriert ist, umgeladen wurde, entsteht eine neue Konfiguration. Once a cell has given the signal for transshipment and the macro in which the cell is integrated, the transfer was made, a new configuration. Die Zelle die vorher das Signal an die Ladelogik geben hat, kann jetzt eine ganz andere Aufgabe haben, insbesondere kann sie nicht mehr die Zelle sein, welche ein Umladesignal, an die Ladelogik abschickt. The cell has previously give the signal to the PLU, can now have a completely different task, in particular, they can no longer be the cell, which, submits a reload signal to the PLU. Wobei es möglich sein kann, daß in der neuen Konfiguration wieder die selbe Zelle das Umladesignal an die Ladelogik schickt. And it may be possible that the same cell again sends the new configuration, the reload signal to the PLU.

Mittels des DISPATCH-Befehls, innerhalb des Konfigurationsprogramms, kann eine neue Adresse an die Eintragsposition der Zelle in der Sprung-Tabelle geschrieben werden ( 0604 ). Using the DISPATCH command inside the Configuration Utility, a new address can be written to the entry position of the cell in the jump table (0604). Diese neue Adresse kann auf eine neue Konfiguration oder Teilkon figuration zeigen, welche bei einer Rückmeldung von dieser Zelle geladen werden soll. This new address configuration can point to a new configuration or Teilkon, which will be charged at a confirmation of that cell.

3. Kurzbeschreibung der Diagramme 3. Brief description of the diagrams

Fig. 1 ist ein Ablaufplan der Schritte, die nach einem Systemstart durch zuführen sind. FIG. 1 is a flow chart of the steps that are performed after a system restart.

Fig. 2 ist ein Ablaufplan der Schritte, die nach dem Eintreffen einer Umkon figurierungsanforderung durchzuführen sind. Fig. 2 is a flow chart of the steps to be performed after the arrival of a figurierungsanforderung Umkon.

Fig. 3 ist ein Ablaufplan der Schritte, die bei der FIFO-Speicher Bearbeitung durchzuführen sind. Fig. 3 is a flow chart of the steps to be carried out in the FIFO memory processing.

Fig. 4 ist ein Ablaufplan der Schritte, die bei der Konfigurierung der Zellen durchzuführen sind. Fig. 4 is a flow chart of the steps to be performed during the configuration of the cells.

Fig. 5 zeigt die Ladelogik mit ihren Registern. Fig. 5 shows the PLU with their registers. Weiterhin ist der Konfigurati onsspeicher sowie die Unterteilung in Sprung-Tabelle, Start-Konfiguration, weitere Konfigurationen und der FIFO-Speicher zu sehen. Furthermore, the Configurati onsspeicher and the division in jump table, start configuration, other configurations of the FIFO memory is to be seen.

Fig. 6 zeigt zwei Ausschnitte aus einem Konfigurationsprogramm und vier Ausschnitte aus der Sprung-Tabelle und wie diese in zeitlichem Zu sammenhang stehen. Fig. 6 shows two excerpts from a configuration utility and four sections of the jump table and how these relate to context in temporal.

4. Detailbeschreibung der Diagramme 4. Detailed description of the diagrams

Fig. 1 zeigt in einem Ablaufplan, welche Schritte nach einem Systemstart durch zuführen sind. Fig. 1 shows a flow diagram of the steps after the system boots by are out. Durch einen Vergleich mit der END-Kennung der Start-Konfiguration wird in den Wartezustand gesprungen ( 0104 ). By comparing with the END identifier of the startup configuration is bound to the wait state (0104).

Fig. 2 zeigt in einem Ablaufplan die notwendigen Schritte, welche während des Wartezustandes und, nach dem eine Umkonfigurierung durch eine Zelle signalisiert wurde, durchzuführen sind. Fig. 2 shows in a flowchart the necessary steps, which are during the waiting condition and, after the reconfiguration was signaled by a cell to conduct. Der Ablaufplan besitzt einen Einsprungspunkt ( 0202 ), der von anderer Stelle angesprungen wird. The flowchart has one entry point (0202), which is jumped from elsewhere.

Fig. 3 zeigt in einem Ablaufplan, wie die Behandlung des FIFO-Speichers durch zuführen ist. Fig. 3 shows in a flow chart how the handling of the FIFO memory is carried out. Weiterhin ist dargestellt, wie der Kopiervorgang innerhalb des FIFO- Speichers arbeitet. Furthermore, it is shown how the copying process is operating within the FIFO memory.

Fig. 4 zeigt in einem Ablaufplan, welche Schritte bei der Umkonfigurierung der Zellen notwendig sind und wie eine Konfiguration innerhalb des Konfigurierungs programms abgearbeitet wird. Fig. 4 shows, in a flowchart, the steps involved in re-configuration of the cells are necessary, and as a configuration within the Konfigurierungs program is executed.

Fig. 5 stellt die Ladelogik und ihre Register dar. Die Ladelogik besitzt fünf ver schiedene Register. Fig. 5 shows the charging logic and registers. The PLU has five different ver register. Dies sind: These are:

  • - Das Start-Konfiguration-REG ( 0501 ). - The start configuration REG (0501). In diesem Register steht die Adresse der Startkonfiguration innerhalb des Konfigurationspeichers. In this register, the address of the start configuration is within the configuration memory. Die Daten sind derart in dem Konfigurationsprogramm enthalten, daß sie von der Ladelogik erkannt und in das Start-Konfiguration-REG übernommen werden können. The data contained in the configuration program so that they can be recognized by the PLU and copied to the startup configuration-REG.
  • - Ein FIFO-Start-REG ( 0502 ). - A FIFO start REG (0502). Das FIFO-Start-REG zeigt auf den Beginn des FIFO-Speicherbereichs, innerhalb des Konfigurationsspeichers. The FIFO start REG points to the beginning of the FIFO memory area, within the configuration memory.
  • - Ein FIFO-End-REG ( 0503 ). - A FIFO end REG (0503). Das FIFO-End-REG kennzeichnet das Ende des FIFO-Speichers. The FIFO-end REG indicates the end of the FIFO memory. An diese Stelle werden die Konfigurationsworte kopiert, wel che durch die Ladelogik nicht verarbeitet werden konnten. At this point, the configuration words are copied, wel che could not be processed by the PLU.
  • - Ein FIFO-Free-Entry-REG ( 0504 ). - A FIFO free entry REG (0504). Das FIFO-Free-Entry-REG zeigt auf den freien Eintrag, der dem Beginn (FIFO-Start-REG) des FIFO-Speichers am nächsten ist. The FIFO free entry REG, overlooking the entry that is the beginning (FIFO start REG) of the FIFO memory to the next. An diese Stelle werden die Konfigurationsworte kopiert, welche während des Durchlaufens des FIFO-Speichers, wiederum nicht durch die La delogik verarbeitet werden konnten. At this point, the configuration words are copied, which, in turn, could not be processed by the La delogik during the passage of the FIFO memory.
  • - Einen Programmzähler (PC). - A program counter (PC). Der PC zeigt auf die Adresse, innerhalb des Konfigurationsspeichers, in dem das nächste, durch die Ladelogik zu verarbei tende, Konfigurationswort, steht. The PC points to the address within the configuration memory, in which the next, by the PLU to proces trend, configuration word is.
  • - Ein Adress-REG ( 0510 ). - An address-REG (0510). In diesem Register wird die Adresse einer zu adres sierenden Zelle gespeichert. In this register, the address of a cell-organizing adres is stored.
  • - Ein Data-REG ( 0511 ). - A data-REG (0511). Dieses Register speichert die Konfigurationsdaten, wel che an die Zelle gesendet werden sollten, welche durch das Adress-REG ange sprochen wird. This register stores the configuration data, wel che should be sent to the cell, which is by the address-REG is discussed.
  • - Ein Dispatch-REG ( 0512 ). - A dispatch REG (0512). Das Dispatch-REG speichert die Adresse des Ein trags in der Sprung-Tabelle, auf welchen die Ladelogik zugreift. The Dispatch-REG stores the address of a contract in the jump table to which accesses the PLU.

Weiterhin ist der Konfigurationsspeicher und sein verschiedenen Sektionen zu sehen. Furthermore, the configuration memory and its different sections can be seen. Dies sind: These are:

  • - Die Sprung-Tabelle ( 0506 ). - The jump table (0506). Für jede Zelle, welche durch die Ladelogik konfigu rierbar ist, existiert ein einziger Eintrag. For each cell, which is confi gurable by the PLU, there is a single entry. In diesem Eintrag steht die Adresse, welche bei einer Signalisierung durch diese Zelle, in den PC geladen wird. This entry contains the address, which is charged at a signaling through the cell into the PC.
  • - Eine Start-Konfiguration ( 0507 ). - A launch configuration (0507). Die Start-Konfiguration ist jeden Konfigu ration, welche nach dem starten des Systems in den Baustein geladen wird. The startup configuration is configu ration each, which is loaded after the start of the system in the block.
  • - Weitere Konfigurationen ( 0508 ). - Other configurations (0508). Diese Konfigurationen können während der These configurations can during the
  • - Laufzeit des Systems in den Baustein geladen werden. - Duration of the system are loaded into the module. Die Konfigurationen bestehen aus Konfigurationswörtern und Ladelogik Befehlen. The configurations consist of configuration words and loading logic commands.
  • - Einen FIFO-Speicher Bereich ( 0509 ). - A FIFO memory area (0509). Der FIFO-Speicher Bereich enthält alle die Konfigurationsworte, welche durch die Ladelogik in einem ersten Versuch nicht erfolgreich verarbeitet werden konnten. The FIFO memory area contains all the configuration words that could not be successfully processed by the PLU in a first attempt.

Fig. 6 zeigt zwei Ausschnitte aus einer Konfiguration. Fig. 6 shows two sections of a configuration. In diesen Ausschnitten sind die Befehle und Konfigurationsworte zu sehen, welche durch die Ladelogik, verar beitet werden. In these extracts the commands and configuration words are seen, which, proces be processed by the PLU. Weiterhin sind zwei Ausschnitte aus der Sprung-Tabelle zu sehen ( 0601 und 0607 ) und der Zustand dieser Ausschnitte ( 0602 und 0608 ) nach der Abarbeitung der beiden Konfigurationsausschnitte. Furthermore, two excerpts can be seen from the jump table (0601 and 0607) and the state of these cutouts (0602 and 0608) after execution of the configuration snippets.

5. Ausführungsbeispiele 5. embodiments

Es wird angenommen, daß ein Baustein oder mehrere Bausteine durch eine Lade logik, wie in der Erfindung beschrieben, umkonfiguriert werden sollen. It is assumed that a block or several blocks are to be reconfigured by a charging logic, as described in the invention. Weiterhin sei angenommen, daß das System bereits die Startkonfiguration geladen hat, und die Ladelogik sich im Zustand "warten auf ein Ereignis" befindet. Moreover, assume that the system has already loaded the startup configuration, and the PLU is in the "wait for an event" is. Die Ausführung beginnt mit dem eintreffen eines Ereignisses von Zelle Nummer 41. Execution begins with the arrive of an event of cell number 41st

Die Ladelogik beginnt zuerst mit der Abarbeitung des FIFO-Speichers ( 0201 ). The PLU first begins execution of the FIFO memory (0201). Dabei wird der Beginn des FIFO-Speichers aus dem Register FIFO-Start-REG in den PC übertragen. Particular, the beginning of the FIFO memory is transferred from the register FIFO start REG in the PC. Die Daten an der Stelle, auf die der PC zeigt, werden gelesen. The data at the location pointed to by the PC, are read. Nun wird überprüft, ob das Ende des FIFO-Speichers erreicht wurde. Now it is checked whether the end of the FIFO memory has been reached. Dies ist in diesem Ausführungsbeispiel der Fall, da das System das erste Mal umgeladen wird. This is the case in this embodiment, since the system is transferred, for the first time.

Die Adresse der Zelle, welche das Signal ausgelöst hat, wird durch die Ladelogik in eine Adresse der Sprung-Tabelle umgerechnet. The address of the cell, which has triggered the signal is converted by the PLU to an address of the jump table. Diese berechnete Adresse wird in das Distpatch-REG geladen ( 0512 ). This computed address is loaded into the Distpatch-REG (0512). Die Ladelogik liest nun die Adresse aus der Sprung-Tabelle ( 0506 ), welche an der Speicheradresse gespeichert ist, die durch das Dispatch-REG adressiert wird ( 0601 ). The charging logic then reads the address from the jump table (0506) which is stored at the memory address that is addressed by the dispatch REG (0601). Diese Adresse wird in den PC geladen. This address is loaded into the PC.

Daraufhin beginnt die Verarbeitung der Konfigurationsworte ( 0603 ). Then, the processing of the configuration words (0603) begins. Es sei ange nommen, daß der Befehl Nummer 3 (1,3 MUL) nicht ausgeführt werden kann, da die Zelle mit der Adresse (1,3) nicht umkonfiguriert werden kann. It should be assumed that the instruction number 3 (1.3 MUL) can not be performed because the cell with address (1.3) can not be reconfigured. Die Daten werden nun in den FIFO-Speicher kopiert. The data will be copied into the FIFO memory. Mit Erreichen des DISPATCH-Befehls ( 0604 ) wird an die Adresse 41 in der Sprung-Tabelle, eine neue Adresse eingetragen ( 0602 ). Upon reaching the DISPATCH command (0604) is at the address 41 in the jump table, a new address is entered (0602). Der END-Befehl versetzt die Ladelogik wieder in den "warten auf ein Ereignis" Zustand. The END command places the PLU back to "wait for an event" state.

Nach einiger Zeit triff nun wieder ein Signal von der Zelle 41 ein. After some time now Meet again a signal from the cell 41. Jetzt steht an der Adresse 42 der Sprung-Tabelle eine andere Adresse ( 0602 ). Now a different address (0602) at the address 42 of the jump table. Die Ladelogik ar beitet wieder zuerst den FIFO-Speicher ab. The PLU ar processed first again from the FIFO memory. Nun befinden sich Daten in dem FIFO- Speicher. Now data is in the FIFO memory.

Die Daten aus dem FIFO-Speicher werden gelesen und es wird versucht die adres sierte Zelle mit den Daten zu laden. The data from the FIFO memory is read and it will download the adres-based cell with the data. Da die Zelle jetzt umkonfiguriert werden kann, gelingt dies. Since the cell can now be reconfigured, this is achieved. Der Eintrag des FIFO-Speichers wird daraufhin mit einer Leer-Kennung beschrieben. The entry of the FIFO memory is then written with a dummy identifier.

Die ursprüngliche Verarbeitung wird fortgeführt und das Lesen von Konfigurations daten beginnt nun an einer unterschiedlichen Adresse ( 0605 ). The initial processing is continued and the reading of configuration data is now starting at a different address (0605).

Diese Konfiguration wird abgearbeitet, der DISPATCH-Befehl schreibt diesmal eine Adresse in den Eintrag Nummer 12 der Sprung-Tabelle ( 0606 ). This configuration is processed, the DISPATCH command writes this time an address in the entry number 12 of the jump table (0606). Danach versetzt der END-Befehl die Ladelogik wieder in den Zustand "warten auf ein Ereignis". Then the END command the PLU restored to the state "wait for an event".

Dieses Wechselspiel wiederholt sich während der gesamten Laufzeit des Systems. This interaction is repeated throughout the life time of the system.

7. Begriffsdefinition 7. Definition

konfigurierbares Element: Ein konfigurierbares Element stellt eine Einheit ei nes Logik-Bausteines dar, welche durch ein Konfigurations wort für eine spezielle Funktion eingestellt werden kann. configurable element: A configurable element represents a unit ei nes logic block, which can be set for a specific function word by a configuration. Kon figurierbare Elemente sind somit, alle Arten von RAM-Zellen, Multiplexer, Arithmetische logische Einheiten, Register und alle Arten von interner und externer Vernetzungsbeschreibung etc. Kon urable elements are therefore all types of RAM cells, multiplexers, arithmetic logic units, registers, and all types of internal and external interconnection descriptions, etc.

Konfigurieren: Einstellen der Funktion und Vernetzung eines konfigurierbaren Elements. Configuring: Setting the function and interconnection of a configurable element.

Konfigurationsspeicher: Der Konfigurationsspeicher enthält ein oder mehrere Konfigurationsworte. Configuration memory: The configuration memory contains one or more configuration words.

Konfigurationswort: Ein Konfigurationswort besteht aus einer beliebig langen Bit-Reihe. Configuration Word: A configuration word consists of an arbitrarily long bit string. Diese Bit-Reihe stellt eine gültige Einstellung für das zu konfigurierende Element dar, so das eine funktionsfähi ge Einheit entsteht. This bit array represents a valid setting for the element to be configured, so the result is a funktionsfähi ge unit.

Ladelogik: Einheit zum Konfigurieren und Umkonfigurieren von program mierbaren Bausteinen. PLU: Unit for configuring and reconfiguring program mable blocks. Ausgestaltet durch einen speziell an seine Aufgabe angepaßten Mikrokontroller oder eine Zustands maschine. Designed by a machine specially designed for this purpose microcontroller, or a state.

Makro: Ein Makro ist eine Menge von Zellen, welche zusammen eine Aufgabe, Funktion etc. implementieren. Macro: A macro is a set of cells which together implement a task, function, etc..

Umkonfigurieren: Neues Konfigurieren von einer beliebigen Menge von konfigu rierbaren Elementen eines programmierbaren Bausteins während eine beliebige Restmenge von konfigurierbaren Elementen ihre eigenen Funktionen fortsetzen (vgl. konfigurieren). Reconfiguring: New configuration of any number of confi urable elements of a programmable block while any remaining amount of configurable elements continue their own functions (. See configure).

Rückmeldung: Eine Rückmeldung ist eine Aktion, welche eine Zelle auslösen kann. Response: A response has an action, which can trigger a cell. Bei einer Rückmeldung können verschiedene Informatio nen an die Einheit gesandt werden, welche die Rückmeldung empfängt. In a feedback various infor can be sent to the NEN unit which receives the feedback.

Zelle: siehe konfigurierbares Element. Cell: see configurable element.

Zustandsmaschine: Logik, die diversen Zuständen annehmen kann. State machine: logic, which may take various states. Die Über gänge zwischen den Zuständen sind von verschiedenen Ein gangsparametern abhängig. About The transitions between the states are input parameters of different A-dependent. Diese Maschinen werden zur Steue rung komplexer Funktionen eingesetzt und entsprechen dem Stand der Technik. These machines are used for Actuation is complex functions and the prior art.

Referenced by
Citing PatentFiling datePublication dateApplicantTitle
EP1845623A28 Oct 200117 Oct 2007PACT XPP Technologies AGMethod and device
EP2293193A1 *25 Feb 19999 Mar 2011Richter, ThomasMethod and device for data processing
US765044810 Jan 200819 Jan 2010Pact Xpp Technologies AgI/O and memory bus system for DFPS and units with two- or multi-dimensional programmable cell architectures
US765786123 Jul 20032 Feb 2010Pact Xpp Technologies AgMethod and device for processing data
US765787720 Jun 20022 Feb 2010Pact Xpp Technologies AgMethod for processing data
US778208714 Aug 200924 Aug 2010Martin VorbachReconfigurable sequencer structure
US78228817 Oct 200526 Oct 2010Martin VorbachProcess for automatic dynamic reloading of data flow processors (DFPs) and units with two- or three-dimensional programmable cell architectures (FPGAs, DPGAs, and the like)
US782296810 Feb 200926 Oct 2010Martin VorbachCircuit having a multidimensional structure of configurable cells that include multi-bit-wide inputs and outputs
US78408423 Aug 200723 Nov 2010Martin VorbachMethod for debugging reconfigurable architectures
US784479630 Aug 200430 Nov 2010Martin VorbachData processing device and method
US78999623 Dec 20091 Mar 2011Martin VorbachI/O and memory bus system for DFPs and units with two- or multi-dimensional programmable cell architectures
US792876314 Jul 201019 Apr 2011Martin VorbachMulti-core processing system
US799682716 Aug 20029 Aug 2011Martin VorbachMethod for the translation of programs for reconfigurable architectures
US805889913 Feb 200915 Nov 2011Martin VorbachLogic cell array and bus system
US806937315 Jan 200929 Nov 2011Martin VorbachMethod for debugging reconfigurable architectures
US809961823 Oct 200817 Jan 2012Martin VorbachMethods and devices for treating and processing data
US812706118 Feb 200328 Feb 2012Martin VorbachBus systems and reconfiguration methods
US814588124 Oct 200827 Mar 2012Martin VorbachData processing device and method
US815628424 Jul 200310 Apr 2012Martin VorbachData processing method and device
US815631219 Jun 200710 Apr 2012Martin VorbachProcessor chip for reconfigurable data processing, for processing numeric and logic operations and including function and interconnection control units
US819585621 Jul 20105 Jun 2012Martin VorbachI/O and memory bus system for DFPS and units with two- or multi-dimensional programmable cell architectures
US82096537 Oct 200826 Jun 2012Martin VorbachRouter
US823041113 Jun 200024 Jul 2012Martin VorbachMethod for interleaving a program over a plurality of cells
US825050317 Jan 200721 Aug 2012Martin VorbachHardware definition method including determining whether to implement a function as hardware or software
US828110820 Jan 20032 Oct 2012Martin VorbachReconfigurable general purpose processor having time restricted configurations
US828126519 Nov 20092 Oct 2012Martin VorbachMethod and device for processing data
US83018724 May 200530 Oct 2012Martin VorbachPipeline configuration protocol and configuration unit communication
US83102744 Mar 201113 Nov 2012Martin VorbachReconfigurable sequencer structure
US831220021 Jul 201013 Nov 2012Martin VorbachProcessor chip including a plurality of cache elements connected to a plurality of processor cores
US831230130 Sep 200913 Nov 2012Martin VorbachMethods and devices for treating and processing data
US840752524 Oct 201126 Mar 2013Pact Xpp Technologies AgMethod for debugging reconfigurable architectures
US842938519 Sep 200223 Apr 2013Martin VorbachDevice including a field having function cells and information providing cells controlled by the function cells
US84683298 Jun 201218 Jun 2013Martin VorbachPipeline configuration protocol and configuration unit communication
US84715934 Nov 201125 Jun 2013Martin VorbachLogic cell array and bus system
US86864759 Feb 20111 Apr 2014Pact Xpp Technologies AgReconfigurable elements
US868654930 Sep 20091 Apr 2014Martin VorbachReconfigurable elements
US872625010 Mar 201013 May 2014Pact Xpp Technologies AgConfigurable logic integrated circuit having a multidimensional structure of configurable elements
US880355225 Sep 201212 Aug 2014Pact Xpp Technologies AgReconfigurable sequencer structure
US881282019 Feb 200919 Aug 2014Pact Xpp Technologies AgData processing device and method
US881950530 Jun 200926 Aug 2014Pact Xpp Technologies AgData processor having disabled cores
US88691217 Jul 201121 Oct 2014Pact Xpp Technologies AgMethod for the translation of programs for reconfigurable architectures
US891459030 Sep 200916 Dec 2014Pact Xpp Technologies AgData processing method and device
US903780711 Nov 201019 May 2015Pact Xpp Technologies AgProcessor arrangement on a chip including data processing, memory, and interface elements
US904744028 May 20132 Jun 2015Pact Xpp Technologies AgLogical cell array and bus system
US907560517 Oct 20127 Jul 2015Pact Xpp Technologies AgMethods and devices for treating and processing data
USRE4436521 Oct 20109 Jul 2013Martin VorbachMethod of self-synchronization of configurable elements of a programmable module
USRE4510921 Oct 20102 Sep 2014Pact Xpp Technologies AgMethod of self-synchronization of configurable elements of a programmable module
USRE4522321 Oct 201028 Oct 2014Pact Xpp Technologies AgMethod of self-synchronization of configurable elements of a programmable module
WO2002013000A2 *13 Jun 200114 Feb 2002Pact Informationstechnologie GmbhPipeline configuration unit protocols and communication
WO2002013000A3 *13 Jun 200126 Jun 2003Volker BaumgartePipeline configuration unit protocols and communication
WO2002071196A25 Mar 200212 Sep 2002Pact Informationstechnologie GmbhMethods and devices for treating and processing data
WO2003025781A218 Sep 200227 Mar 2003Pact Xpp Technologies AgRouter
WO2006082091A26 Feb 200610 Aug 2006Pact Xpp Technologies AgLow latency massive parallel data processing device
International ClassificationH03K19/177, G06F9/24, G06F15/78, G06F9/06
Cooperative ClassificationG06F9/24, G06F15/7867
European ClassificationG06F9/24, G06F15/78R
Legal Events
2 Jul 1998OP8Request for examination as to paragraph 44 patent law
6 May 20048127New person/name/address of the applicant
12 Oct 20068139Disposal/non-payment of the annual fee