DE10129237A1 - Integrated cell matrix circuit has at least 2 different types of cells with interconnection terminals positioned to allow mixing of different cell types within matrix circuit - Google Patents

Integrated cell matrix circuit has at least 2 different types of cells with interconnection terminals positioned to allow mixing of different cell types within matrix circuit

Info

Publication number
DE10129237A1
DE10129237A1 DE10129237A DE10129237A DE10129237A1 DE 10129237 A1 DE10129237 A1 DE 10129237A1 DE 10129237 A DE10129237 A DE 10129237A DE 10129237 A DE10129237 A DE 10129237A DE 10129237 A1 DE10129237 A1 DE 10129237A1
Authority
DE
Germany
Prior art keywords
code
processor
extracted
interface
reconfigurable
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.)
Withdrawn
Application number
DE10129237A
Other languages
German (de)
Inventor
Frank May
Armin Nueckel
Martin Vorbach
Markus Weinhardt
Joao Manuel Paiva Cardoso
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.)
Pact Informationstechnologie GmbH
Original Assignee
Pact Informationstechnologie GmbH
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
Priority to EP01969493A priority Critical patent/EP1377919A2/en
Priority to PCT/EP2001/008534 priority patent/WO2002008964A2/en
Priority to AU2001289737A priority patent/AU2001289737A1/en
Priority to US09/967,498 priority patent/US20040015899A1/en
Priority to AU2002257615A priority patent/AU2002257615A1/en
Priority to PCT/EP2002/002403 priority patent/WO2002071249A2/en
Priority to EP02712937A priority patent/EP1454258A2/en
Priority to US10/469,909 priority patent/US7444531B2/en
Priority to JP2002570103A priority patent/JP2004535613A/en
Priority to JP2002570104A priority patent/JP2004536373A/en
Priority to EP02727358A priority patent/EP1540507B1/en
Priority to JP2002570052A priority patent/JP4011488B2/en
Priority to US10/471,061 priority patent/US7581076B2/en
Priority to PCT/EP2002/002402 priority patent/WO2002071196A2/en
Priority to EP02724198.3A priority patent/EP1386220B1/en
Priority to AU2002254921A priority patent/AU2002254921A1/en
Priority to PCT/EP2002/002398 priority patent/WO2002071248A2/en
Priority to US10/469,910 priority patent/US20070299993A1/en
Publication of DE10129237A1 publication Critical patent/DE10129237A1/en
Application filed by Pact Informationstechnologie GmbH filed Critical Pact Informationstechnologie GmbH
Priority to PCT/EP2002/006865 priority patent/WO2002103532A2/en
Priority to US10/480,003 priority patent/US7657877B2/en
Priority to DE10227650A priority patent/DE10227650A1/en
Priority to AT02780770T priority patent/ATE478381T1/en
Priority to EP10005502A priority patent/EP2224330B1/en
Priority to EP02780770A priority patent/EP1402382B1/en
Priority to JP2003505782A priority patent/JP2004533691A/en
Priority to DE50214592T priority patent/DE50214592D1/en
Priority to AT10005502T priority patent/ATE557344T1/en
Priority to AU2002347560A priority patent/AU2002347560A1/en
Priority to JP2008249099A priority patent/JP2009032281A/en
Priority to JP2008249112A priority patent/JP2009020909A/en
Priority to JP2008249116A priority patent/JP2009043276A/en
Priority to JP2008249106A priority patent/JP2009054170A/en
Priority to JP2008249115A priority patent/JP2009043275A/en
Priority to US12/257,075 priority patent/US8099618B2/en
Priority to US12/389,116 priority patent/US20090210653A1/en
Priority to US12/496,012 priority patent/US20090300262A1/en
Priority to US12/570,984 priority patent/US8312301B2/en
Priority to US12/640,201 priority patent/US20100095094A1/en
Priority to US12/944,068 priority patent/US9037807B2/en
Priority to US13/043,102 priority patent/US20110173389A1/en
Priority to US13/653,639 priority patent/US9075605B2/en
Priority to US14/219,945 priority patent/US9552047B2/en
Priority to US14/223,793 priority patent/US10031733B2/en
Priority to US14/231,358 priority patent/US9436631B2/en
Priority to US14/318,211 priority patent/US9250908B2/en
Priority to US14/500,618 priority patent/US9141390B2/en
Priority to US15/225,638 priority patent/US10152320B2/en
Priority to US15/408,358 priority patent/US10331194B2/en
Priority to US16/190,931 priority patent/US20190102173A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • 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

Abstract

The circuit (1) has a number of adjacent cells (2a-2e) divided into at least 2 cell types, the cells having a sufficient size for integration of a number of logic elements (3a,3e), at least some of the cells having programmable logic elements. The terminals (5a-5d) for the interconnections between the cells are positioned to allow mixing of the different types of cells within the cell matrix. An Independent claim for a design method for an integrated cell matrix circuit is also included.

Description

Die vorliegende Erfindung befaßt sich mit herkömmlichen, d. h. konventionellen und rekonfigurierbaren Architekturen sowie mit Verfahren hierfür, die eine Übersetzung einer klassischen Hochsprache (PROGRAMM), wie Pascal, C, C++, Java, etc. ermög­ lichen, insbesondere auf eine rekonfigurierbare Architektur.The present invention is concerned with conventional, i.e. H. conventional and reconfigurable architectures as well with procedures for this, which are a translation of a classic High level language (PROGRAM) such as Pascal, C, C ++, Java, etc. possible lichen, especially on a reconfigurable architecture.

Unter einer konventionellen Prozessorarchitektur (PROZESSOR) werden vorliegend beispielsweise sequentielle Prozessoren mit einer von-Neumann- oder Havardarchitektur verstanden, wie z. B. Kontroller, CISC-, RISC-, VLIW-, DSP- u. ä. Prozessoren.Under a conventional processor architecture (PROZESSOR) are sequential processors in the present case one of von Neumann or Havard architecture understood how z. B. controller, CISC, RISC, VLIW, DSP and Processors.

Unter einer rekonfigurierbaren Zielarchitektur werden vorlie­ gend Bausteine (VPU) mit konfigurierbarer Funktion und/oder Vernetzung verstanden, insbesondere integrierte Bausteine mit einer Mehrzahl von ein- oder mehrdimensional angeordneten, arithmetischen und/oder logischen und/oder analogen und/oder speichernden Baugruppen, die direkt oder durch ein Bussystem miteinander verbunden sind.Under a reconfigurable target architecture are available gend blocks (VPU) with configurable function and / or Networking understood, especially with integrated modules a plurality of one- or multi-dimensionally arranged,  arithmetic and / or logical and / or analog and / or storing assemblies, directly or through a bus system are interconnected.

Zur Gattung dieser Bausteine zählen insbesondere systolische Arrays, neuronale Netze, Mehrprozessor-Systeme, Prozessoren mit mehreren Rechenwerken und/oder logischen Zellen, Vernet­ zungs- und Netzwerkbausteine wie z. B. Crossbar-Schalter, ebenso wie bekannte Bausteine der Gattung FPGA, DPGA, XPUTER, etc. Hingewiesen wird insbesondere in diesem Zusammenhang auf die folgenden Schutzrechte desselben Anmelders: P 44 16 881.0-53, DE 197 81 412.3, DE 197 81 483.2, DE 196 54 846.2-53, DE 196 54 593.5-53, DE 197 04 044.6-53, DE 198 80 129.7, DE 198 61 088.2-53, DE 199 80 312.9, PCT/DE 00/01869, DE 100 36 627.9-33, DE 100 28 397.7, DE 101 10 530.4, DE 101 11 014.6, PCT/EP 00/10516, EP 01 102 674.7. Diese sind hiermit zu Offenbarungszwecken vollumfänglich eingegliedert.The kind of these building blocks include in particular systolic ones Arrays, neural networks, multiprocessor systems, processors with several arithmetic units and / or logical cells, networked tion and network components such. B. crossbar switch, as well as known modules of the FPGA, DPGA, XPUTER, etc. It is particularly pointed out in this context to the following property rights of the same applicant: P 44 16 881.0-53, DE 197 81 412.3, DE 197 81 483.2, DE 196 54 846.2-53, DE 196 54 593.5-53, DE 197 04 044.6-53, DE 198 80 129.7, DE 198 61 088.2-53, DE 199 80 312.9, PCT / DE 00/01869, DE 100 36 627.9-33, DE 100 28 397.7, DE 101 10 530.4, DE 101 11 014.6, PCT / EP 00/10516, EP 01 102 674.7. These are hereby fully incorporated for disclosure purposes.

Es hat sich gezeigt, daß es bestimmte Verfähren und Pro­ grammabläufe gibt, die sich besser mit einer rekonfigurierba­ re Architektur abarbeiten lassen als mit einer konventionel­ len Prozessorarchitektur. Umgekehrt gibt es auch solche Ver­ fahren und Programmabläufe, die besser mit einer konventio­ nellen Prozessorarchitektur ausgeführt werden können.It has been shown that there are certain procedures and pro gram sequences that are better with a reconfigurable let architecture work through than with a conventional one len processor architecture. Conversely, there are also such ver drive and program flows that are better with a konventio nelle processor architecture can be executed.

Die Aufgabe dieser Erfindung besteht darin Neues für die ge­ werbliche Anwendung bereitzustellen.The object of this invention is new for the ge to provide advertising application.

Die Lösung dieser Aufgabe wird in unabhängiger Form bean­ sprucht. This task is solved in an independent form sprucht.  

Es wurde erkannt, daß es wünschenswert ist, daß Verfahren zur Datenverarbeitung so ausgelegt werden, daß nur die jeweils für die rekonfigurierbare Zielarchitektur besonders geeigne­ ten Teile des zu übersetzenden Programmes extrahiert werden. Die verbleibenden Teile des Programmes können dann auf eine konventionelle Prozessorarchitektur übersetzt werden.It has been recognized that it is desirable that methods for Data processing are designed so that only the respective particularly suitable for the reconfigurable target architecture parts of the program to be translated are extracted. The remaining parts of the program can then be on a conventional processor architecture can be translated.

Weiterhin sei angemerkt, daß die Verfahren auch auf Gruppen von mehreren Bausteinen angewendet werden können.Furthermore, it should be noted that the methods also apply to groups can be used by several blocks.

Systemaufbausystem Design

Ein PROZESSOR wird derart mit einer oder mehreren VPU(s) ver­ bunden, daß ein effizienter Informationsaustausch, insbeson­ dere in Form von Daten- und Statusinformation möglich ist.A PROCESSOR is thus ver with one or more VPU (s) bound that an efficient exchange of information, in particular which is possible in the form of data and status information.

Die Anordnung eines herkömmlichen Prozessors und eines rekon­ figurierbaren Prozessors, dergestalt, daß eine Daten- und Sta­ tusinformation zwischen denselben während der Abarbeitung ei­ nes oder mehrere Programme möglich ist und/oder ohne daß ins­ besondere die Datenverarbeitung auf dem rekonfigurierbaren Prozessor und/oder dem herkömmlichen Prozessor signifikant unterbrochen werden muß, sowie die Ausbildung eines derarti­ gen Systems soweit aus dem nachfolgenden ersichtlich, wird gleichfalls beansprucht.The arrangement of a conventional processor and a recon configurable processor, such that a data and sta information between them during processing nes or more programs is possible and / or without ins special the data processing on the reconfigurable Processor and / or the conventional processor significant must be interrupted, and the formation of such a systems as far as can be seen from the following likewise claimed.

Es werden zunächst beispielsweise folgende Verbindungsverfah­ ren und -mittel verwendet:
For example, the following connection methods and means are initially used:

  • a) Shared-Memorya) shared memory
  • b) Netzwerk (beispielsweise Bussysteme wie z. B. PCI-Bus, Se­ rielle Busse wie z. B. Ethernet)b) Network (for example bus systems such as PCI bus, Se rielle buses such. B. Ethernet)
  • c) Kopplung an einen internen Registersatz oder mehrere in­ terne Registersätze c) coupling to an internal register set or several in internal register sets  
  • d) andere Speichermedien (Festplatte, Flash-ROM, etc.)d) other storage media (hard disk, flash ROM, etc.)

Es sei erwähnt, daß hier als ein "Prozessor" auch ein Dual- Prozessorsystem und/oder ein andere Anordnungen aufweisendes System insbesondere mit mehr als zwei konventionellen Prozes­ soren gemeint sein kann. Gleichfalls und/oder alternativ sind mehrere rekonfigurierbare Bausteine gleichzeitig verwendbar.It should be mentioned that here as a "processor" also a dual Processor system and / or other arrangements System especially with more than two conventional processes sensors can be meant. Likewise and / or are alternative Several reconfigurable blocks can be used simultaneously.

Übersetzungsprinziptranslation principle

Aus einem PROGRAMM werden mittels eines PRÄPROZESSORS die Teile extrahiert, die sich auf die jeweils bestimmte(n) VPU(s) effizient und/oder sinnvoll abbilden lassen. Diese Teile werden in einem für VPUs geeigneten Format ausgegeben (NML).A PROGRAM is turned into a PREPROCESSOR Extracts parts that refer to the specific Have the VPU (s) displayed efficiently and / or sensibly. This Parts are issued in a format suitable for VPUs (NML).

Der verbleibende Code und/oder der extrahierte Code wird an der Stelle der durch die Extraktion fehlenden Code-Teile um einen Interface-Code erweitert, der entsprechend der Archi­ tektur des Zielsystems die Kommunikation zwischen PROZES­ SOR(en) und VPU(s) steuert. Der verbleibende und ggf. erwei­ terte Code wird in Form einer klassischen Hochsprache ausge­ geben (HOSTCODE), wobei die Gattung des ausgegebenen Codes insbesondere exakt der Gattung der ursprünglichen HOCHSPRACHE entsprechen kann.The remaining code and / or the extracted code is on the place of the missing code parts due to the extraction extended an interface code that corresponds to the Archi architecture of the target system the communication between PROZES SOR (en) and VPU (s) controls. The remaining and possibly extended The code is issued in the form of a classic high-level language enter (HOSTCODE), where the genus of the output code in particular exactly the genus of the original HIGH LANGUAGE can correspond.

Diese extrahierte HOCHSPRACHE wird mittels eines gewöhnlichen Standard-Übersetzers für den/die jeweiligen PROZESSOR(en) übersetzt, wobei es möglich ist, dies so zu gestalten, daß keinerlei besondere Anpassung des Übersetzers an die verwen­ dete Datenverarbeitungsarchitektur notwendig ist. This extracted HIGH LANGUAGE is made using an ordinary Standard translator for the respective PROCESSOR (s) translated, it being possible to do this in such a way that no special adaptation of the translator to the use dete data processing architecture is necessary.  

Durch dieses Verfahren wird der Implementierungsaufwand der Programmierumgebung erheblich vereinfacht. Zudem kann der An­ wender den PROZESSOR weiterhin in der ihm bekannten Program­ mierumgebung, die er frei wählen kann, programmieren und de­ buggen.With this procedure the implementation effort of Programming environment considerably simplified. In addition, the An continue to use the PROCESSOR in the program known to him programming environment, which he can choose freely, programming and de Buggen.

Übersetzungsablauftranslation process Extraktionextraction

Zunächst wird der für eine VPU geeignet erscheinende Code aus dem PROGRAMM extrahiert. Die Extraktion kann auf unterschied­ lichen Methoden basieren, die einzeln oder kombiniert ange­ wendet werden. Folgende Methoden sollen beispielhaft detail­ lierter beschrieben werden.First, the code that appears suitable for a VPU is made extracted from the PROGRAM. The extraction can differ on based methods that are used individually or in combination be applied. The following methods are intended as examples in detail be described.

Extraktion durch HintsHints extraction

Der Programmierer gibt explizit durch Hinweise (Hints) inner­ halb des PROGRAMMES Anweisungen, welche Teile extrahiert wer­ den sollen. Beispielsweise kann dies folgendermaßen erfolgen:
The programmer explicitly gives instructions (hints) within the PROGRAM which parts should be extracted. For example, this can be done as follows:

. . .
Code
. . .
/ / START_NML_EXTRACTION
Zu extrahierender Code
/ / END_NML_EXTRACTION
. . .
Code
. . .
, , ,
code
, , ,
// START_NML_EXTRACTION
Code to extract
// END_NML_EXTRACTION
, , ,
code
, , ,

"/ / START_NML_EXTRACTION" kennzeichnet den Beginn eines zu extrahierenden Codes.
"/ / END_NML_EXTRACTION" kennzeichnet das Ende eines zu extra­ hierenden Codes.
"/ / START_NML_EXTRACTION" marks the beginning of a code to be extracted.
"/ / END_NML_EXTRACTION" marks the end of a code to be added here.

In einem solchen Fall ist die Einheit zur Umsetzung des Pro­ gramms in Konfigurationscodes dazu ausgebildet, die Hints be­ ziehungsweise Umsetzungsvorgaben zu erkennen.In such a case, the unit to implement the pro trained in configuration codes to be the Hints to recognize implementation specifications.

Extraktion durch Aufruf von NML-RoutinenExtraction by calling NML routines

Der Programmierer implementiert Teile des PROGRAMMES direkt in NML und springt in die NML-Routinen durch Aufrufe (calls). Beispielsweise erfolgt dies derart:
The programmer implements parts of the PROGRAM directly in NML and jumps into the NML routines through calls. For example, this is done as follows:

  • a) NML-Code
    . . .
    procedure EXAMPLE
    begin
    . . .
    end
    . . .
    a) NML code
    , , ,
    procedure EXAMPLE
    begin
    , , ,
    end
    , , ,
  • b) PROGRAMM Code
    . . .
    Code
    . . .
    call EXAMPLE / / Aufruf des NML-Codes
    . . .
    Code
    . . .
    b) PROGRAM code
    , , ,
    code
    , , ,
    call EXAMPLE // call the NML code
    , , ,
    code
    , , ,

In diesem Fall ist die Einheit zur Umsetzung dazu ausge­ bildet, NML-Programmteile, das heißt Programmteile zur Aus­ führung in und/oder auf einem rekonfigurierbaren Array in ein größeres Programm einzubinden. In this case, the unit for implementation is out forms, NML program parts, that is, program parts for training guidance in and / or on a reconfigurable array integrate larger program.  

Extraktion durch AnalyseExtraction by analysis

Durch an die jeweilig VPU angepaßte Analysemethoden werden Teile innerhalb des PROGRAMMES erkannt, die effizient und/oder sinnvoll auf die VPU abbildbar sind. Diese Teile werden aus dem PROGRAMM extrahiert.Through analysis methods adapted to the respective VPU Parts recognized within the PROGRAM that are efficient and / or can be meaningfully mapped to the VPU. These parts are extracted from the PROGRAM.

Eine beispielsweise für viele VPUs geeignete Analysemethode ist der Aufbau von Datenfluß- und/oder Kontrollflußgraphen aus dem PROGRAMM. Diese Graphen können hinsichtlich ihrer möglichen Partitionierung und/oder Abbildung auf die Ziel-VPU automatisch untersucht werden. In diesem Fall werden die Tei­ le der generierten Graphen bzw. die entsprechenden PROGRAMM- Teile, extrahiert; die sich hinreichend gut partitionieren und/oder abbilden lassen. Hierzu kann eine Partitionierbar­ keits- und/oder Abbildbarkeitsanalyse erfolgen, die die je­ weilige Eigenschaft bewertet.An analysis method suitable for many VPUs, for example is the construction of data flow and / or control flow graphs from the PROGRAM. These graphs can be viewed in terms of their possible partitioning and / or mapping to the target VPU are automatically examined. In this case, the Tei of the generated graphs or the corresponding PROGRAM Parts, extracted; that partition well enough and / or have them displayed. A partition can be used for this Ability and / or reproducibility analysis carried out, which the each property valued.

Übersetzung in NMLTranslation into NML

Eine für die implementierte VPU geeignete Übersetzung des ex­ trahierten Codes nach NML wird durchgeführt.A translation of the ex. Suitable for the implemented VPU traced codes according to NML is carried out.

Für datenflußorientierte VPUs kann beispielsweise automatisch ein Datenfluß- und/oder Kontrollflußgraph aufgebaut werden. Die Graphen werden dann in NML-Code übersetzt. Dabei kann ge­ gebenenfalls bereits das Abbilden auf die VPU erfolgen, bei­ spielsweise mittels der Durchführung des Plazierens der benö­ tigten Ressourcen und des Routens der Verbindungen (Place and Route). Dies geschieht zum Beispiel nach typischen bekannten Regeln des Plazierens und Routens. For data flow oriented VPUs, for example, can be automatic a data flow and / or control flow graph are built. The graphs are then translated into NML code. Here, ge if necessary, the mapping to the VPU already takes place at for example, by performing the placement of the benö resources and routing of connections (place and Route). This happens, for example, according to typical known ones Rules of placement and routing.  

Analyseanalysis

Mittels einer automatischen Analysemethode wird der extra­ hierte Code und/oder der übersetzte NML-Code auf seine Verar­ beitungseffizienz hin analysiert. Dabei ist die Analysemetho­ de bevorzugt so gewählt, daß der Interface-Code und die dar­ aus entstehenden Performanceeinflüsse an geeigneter Stelle mit in die Analyse einfließen.Using an automatic analysis method, the extra code and / or the translated NML code to its processing processing efficiency analyzed. Here is the analytical method de preferably chosen so that the interface code and the arising from performance influences at a suitable point flow into the analysis.

Gegebenenfalls wird die Analyse durch eine komplette Überset­ zung und Implementierung auf dem Hardware-System durchge­ führt, indem das PROGRAMM ausgeführt und mit geeigneten Me­ thoden, wie sie beispielsweise nach dem Stand der Technik be­ kannt sind, vermessen wird.If necessary, the analysis is carried out by a complete translation implementation and implementation on the hardware system leads by executing the PROGRAM and using appropriate ME methods as they are, for example, according to the prior art are known, is measured.

Looploop

Basierend auf den durchgeführten Analysen, können verschiede­ ne durch die Extraktion für eine VPU gewählte Teile als unge­ eignet identifiziert werden. Umgekehrt kann die Analyse erge­ ben, daß bestimmte für einen PROZESSOR extrahierte Teile zur Ausführung auf einer VPU geeignet wären.Based on the analyzes carried out, various ne parts selected by extraction for a VPU as unused suitable to be identified. Conversely, the analysis can be successful that certain parts extracted for a PROCESSOR are used for Execution on a VPU would be suitable.

Eine optionale Schleife, die nach der Analyse basierend auf geeigneten Entscheidungskriterien zurück in den Extraktion­ steil führt, um diesen mit entsprechend der Analyse angepaß­ ten Extraktionsvorgaben erneut auszuführen, ermöglicht die Optimierung des Übersetzungsergebnisses. Man hat somit eine Iteration.An optional loop based on analysis after analysis appropriate decision criteria back in the extraction leads steeply to this with adjusted according to the analysis Executing the extraction specifications again enables the Optimization of the translation result. So you have one Iteration.

Die Schleife kann an mehreren unterschiedlichen Stellen in den Compilerlauf eingebracht sein.The loop can be in several different places be brought into the compiler run.

Einbindung der PROZESSOR- und VPU-CompilerIntegration of the PROCESSOR and VPU compilers

Der ausgegebene Code ist üblicherweise vollständig und ohne weitere Eingriffe auf den jeweils nachfolgenden Compilern ausführbar. Gegebenenfalls werden Compilerflags und Con­ straints für die nachfolgenden Compiler generiert, wobei der Anwender optional eigene Vorgaben hinzufügen und/oder die ge­ nerierten Vorgaben modifizieren kann. Die nachfolgenden Com­ piler benötigen keine wesentlichen Modifikationen, sodaß Standard-Tools einsetzbar sind.The code that is output is usually complete and without further interventions on the subsequent compilers executable. If necessary, compiler flags and con  straints for the subsequent compilers, where the Users optionally add their own specifications and / or the ge modified specifications. The following Com piler do not require any major modifications, so Standard tools can be used.

Das vorgeschlagene Verfahren eignet sich somit beispielsweise insbesondere als Präprozessor vor Compilern und Entwicklungs­ systemen.The proposed method is therefore suitable, for example especially as a preprocessor before compilers and development systems.

Interface-CodeInterface Code

Der Interface-Code, der in den extrahierten Code eingesetzt wird, kann durch unterschiedliche Verfahren vorgegeben wer­ den. Bevorzugt wird der Interface-Code in einer Datenbank ab­ gelegt, auf die zugegriffen wird. Die Einheit zur Umsetzung kann so ausgebildet sein, daß sie eine Auswahl des Program­ mierers berücksichtigt, der beispielsweise durch Hinweise im PROGRAMM oder durch Compilerflags den passenden Interface- Code auswählt. Dabei kann der für das jeweils verwendete Im­ plementierungsverfahren geeignete Interface-Code gewählt wer­ den.The interface code that is used in the extracted code can be specified by different procedures the. The interface code is preferably stored in a database that are accessed. The unit for implementation can be designed to be a selection of the program mierers is taken into account, for example, by references in PROGRAM or the appropriate interface through compiler flags Selects code. The Im suitable interface code the.

Die Datenbank selbst kann durch unterschiedliche Methoden aufgebaut und gewartet werden. Einige Beispiele sollen zur Verdeutlichung der Möglichkeiten angeführt werden:
The database itself can be set up and maintained using different methods. Some examples are given to illustrate the possibilities:

  • a) Der Interface-Code kann vom Lieferanten des Compilers für bestimmte Verbindungsverfahren vorgegeben werden. Dies kann bei der Organisation der Datenbank berücksichtigt werden, indem entsprechende Speichermittel für diese An­ gaben bereitgehalten werden.a) The interface code can be obtained from the supplier of the compiler for certain connection procedures are specified. This can be taken into account when organizing the database be by appropriate storage means for this An were kept ready.
  • b) Der Interface-Code kann vom Benutzer, der den Systemauf­ bau bestimmt hat, selbst geschrieben oder aus bestehenden (Beispiel-) Interface-Codes modifiziert und der Datenbank zugefügt werden. Das Datenbankmittel wird hierzu bevor­ zugt benutzermodifizierbar gestaltet, um dem Benutzer die Datenbankmodifikation zu ermöglichen.b) The interface code can be created by the user who started the system construction has determined, written itself or from existing ones  (Example) interface codes modified and the database be added. The database means will do this before user-modifiable designed to give the user the To enable database modification.
  • c) Der Interface-Code kann von einem Entwicklungssystem, mit dem beispielsweise der Systemaufbau geplant und/oder be­ schrieben und/oder getestet wurde, automatisch generiert werden.c) The interface code can be from a development system, with for example, the system structure is planned and / or be was written and / or tested, generated automatically become.

Der Interface-Code ist gewöhnlicherweise derart gestaltet, daß er den Anforderungen der Programmiersprache entspricht, in der der extrahierte Code vorliegt in den der Interface- Code eingefügt werden soll.The interface code is usually designed in such a way that it meets the requirements of the programming language, in which the extracted code is available in which the interface Code to be inserted.

Debugging und Integration der ToolsetsDebugging and integration of the tool sets

In die Interface-Codes können Kommunikationsroutinen einge­ führt werden, um die unterschiedlichen Entwicklungssysteme für PROZESSOR und VPU zu synchronisieren. Insbesondere kann der Code für die jeweiligen Debugger aufgenommen werden.Communication routines can be entered in the interface codes be led to the different development systems for PROCESSOR and VPU to synchronize. In particular, the Code for the respective debugger can be included.

Der Interface-Code steuert den Datenaustausch zwischen PRO­ ZESSOR und VPU. Er ist daher eine geeignete und bevorzugte Schnittstelle, um die jeweiligen Entwicklungssysteme und De­ buggets zu steuern. Es ist beispielsweise möglich, einen De­ bugger für den PROZESSOR solange zu aktivieren, wie die Daten von dem Prozessor verarbeitet werden. Sobald die Daten über den Interface-Code an eine (oder mehrere) VPU übergeben wer­ den, ist ein Debugger für VPUs zu aktivieren. Wird der Code zurück an den PROZESSOR gesendet, soll wiederum der PROZES­ SOR-Debugger aktiviert werden. The interface code controls the data exchange between PRO ZESSOR and VPU. It is therefore a suitable and preferred one Interface to the respective development systems and De control buggets. For example, a De activate bugger for the PROCESSOR as long as the data processed by the processor. Once the data is over hand over the interface code to one (or more) VPU a debugger for VPUs must be activated. Will the code sent back to the PROCESSOR, the PROZES should again SOR debugger can be activated.  

Es ist daher also möglich und bevorzugt, derartige Abläufe durch das Einfügen von Steuercodes für Debugger und/oder Ent­ wicklungssysteme in den Interface-Code abzuwickeln.It is therefore possible and preferred to have such processes by inserting control codes for debuggers and / or Ent development systems in the interface code.

Die Kommunikation und Steuerung zwischen den unterschiedli­ chen Entwicklungssystemen soll daher bevorzugt mittels in die Interface-Codes von PROZESSOR und/oder VPU eingebrachte Steu­ ercodes abgewickelt werden. Die Steuercodes können dabei be­ stehenden Standards für die Steuerung von Entwicklungssyste­ men weitgehend entsprechen.Communication and control between the differ Chen development systems should therefore preferably by means of Interface codes from PROCESSOR and / or VPU code can be processed. The tax codes can be standards for the control of development systems men largely correspond.

Die Verwaltung und Kommunikation der Entwicklungssysteme wird vorzugsweise wie beschrieben in die Interface-Codes abgewic­ kelt, kann jedoch - sofern sinnvoll - auch getrennt von die­ sen, nach einem entsprechenden ähnlichen Verfahren abgewic­ kelt werden.The management and communication of the development systems will preferably as described in the interface codes kelt, but can - if it makes sense - also separate from the sen, followed a similar procedure become cold.

Beschreibung der FigurenDescription of the figures

Fig. 1 verdeutlicht das vorgeschlagene Verfahren und zeigt einen möglichen Systemaufbau. Dabei ist ein PROZESSOR (0101) über ein geeignetes Interface (0102) zum Daten- und Statu­ saustausch mit einer VPU (0103) verbunden. Fig. 1 illustrates the proposed method and shows a possible system structure. A PROCESSOR ( 0101 ) is connected to a VPU ( 0103 ) via a suitable interface ( 0102 ) for data and status exchange.

Ein PROGRAMM-Code (0110) wird in einen für den PROZESSOR ge­ eigneten Teil (0111) und einen VPU-geeigneten Teil (0112) zerlegt.A PROGRAM code ( 0110 ) is broken down into a part suitable for the PROCESSOR ( 0111 ) and a part suitable for the VPU ( 0112 ).

0111 wird durch einen Standard-Compiler (0113) übersetzt, wo­ bei zusätzlicher Code zur Beschreibung und Verwaltung des In­ terfaces (0102) aus einer Datenbank (0114) eingefügt wird. Auf 0101 ausführbarer sequentieller Code wird generiert (0116) und sofern notwendig die entsprechende Programmierung (0117) des Interfaces (0102). 0111 is translated by a standard compiler ( 0113 ), where additional code for describing and managing the interface ( 0102 ) is inserted from a database ( 0114 ). Sequential code executable on 0101 is generated ( 0116 ) and, if necessary, the corresponding programming ( 0117 ) of the interface ( 0102 ).

0112 wird durch einen VPU-Compiler (0115) übersetzt, wobei ein zusätzlicher Code zur Beschreibung und Verwaltung des Inter­ faces (0102) aus einer Datenbank (0114) eingefügt wird. Auf 0103 ausführbare Konfigurationen werden generiert (0118) und sofern notwendig die entsprechende Programmierung (0119) des Interfaces (0102). 0112 is translated by a VPU compiler ( 0115 ), an additional code for describing and managing the interface ( 0102 ) from a database ( 0114 ) being inserted. Configurations executable on 0103 are generated ( 0118 ) and, if necessary, the corresponding programming ( 0119 ) of the interface ( 0102 ).

In Fig. 2 ist beispielhaft ein prinzipieller Ablauf einer Compilation dargestellt. Ein PROGRAMM (0201) wird in der Ex­ traktionseinheit (0202) nach unterschiedlichen Verfahren in VPU-Code (0203) und PROZESSOR-Code (0204) zerlegt. Unter­ schiedliche Methoden können in beliebiger Kombination zur Ex­ traktion angewendet werden, beispielsweise Hinweise im ur­ sprünglichen PROGRAMM (0205), Unterprogrammaufrufe (0206) und/oder Analyseverfahren (0207). Der jeweils extrahierte Code wird ggf. übersetzt und ggf. auf seine Eignung für das jeweilige Zielsystem hin überprüft (0208). Dabei ist eine Rückkopplung (0209) auf die Extraktion möglich, um Verbesse­ rungen durch eine geänderte Zuordnung der Codes zum PROZESSOR oder einer VPU zu erhalten.A basic sequence of a compilation is shown by way of example in FIG. 2. A PROGRAM ( 0201 ) is broken down in the extraction unit ( 0202 ) according to different procedures into VPU code ( 0203 ) and PROCESSOR code ( 0204 ). Different methods can be used in any combination for extraction, for example information in the original PROGRAM ( 0205 ), subroutine calls ( 0206 ) and / or analysis methods ( 0207 ). The code extracted in each case is translated and, if necessary, checked for its suitability for the respective target system ( 0208 ). A feedback ( 0209 ) to the extraction is possible in order to obtain improvements by changing the assignment of the codes to the PROCESSOR or a VPU.

Danach (0211) wird 0203 durch den Interface-Code aus einer Datenbank (0210) erweitert (0212) und/oder 0204 wird durch den Interface-Code aus 0210 zu 0213 erweitert.Then ( 0211 ) 0203 is extended ( 0212 ) by the interface code from a database ( 0210 ) and / or 0204 is expanded by 0210 to 0213 by the interface code.

Der entstandene Code wird auf seine Performance analysiert (0214), ggf. ist eine Rückkopplung (0215) auf die Extraktion möglich, um Verbesserungen durch eine geänderte Zuordnung der Codes zum PROZESSOR oder einer VPU zu erhalten.The resulting code is analyzed for its performance ( 0214 ), feedback ( 0215 ) on the extraction may be possible in order to obtain improvements by changing the assignment of the codes to the PROCESSOR or a VPU.

Der entstandene VPU-Code (0216) wird für eine weitere Über­ setzung an einen nachgeschalteten für die VPU geeigneten Com­ piler weitergegeben. Der entstandene PROZESSOR-Code (0217) wird für die weitere Übersetzung in einem beliebigen nachge­ schalteten für den PROZESSOR geeigneten Compiler weiterverar­ beitet. The resulting VPU code ( 0216 ) is passed on to a downstream compiler suitable for the VPU for further translation. The resulting PROCESSOR code ( 0217 ) is processed for further translation in any downstream compiler suitable for the PROZESSOR.

Es soll angemerkt werden, daß einzelne Schritte je nach Ver­ fahren ausgelassen werden können. Wesentlich ist, daß weitge­ hend kompletter und ohne Eingriff durch den Programmierer di­ rekt übersetzbarer Code an die jeweils nachgeschalteten Com­ pilersysteme ausgegeben wird.It should be noted that individual steps depending on Ver driving can be left out. It is essential that far more complete and without intervention by the programmer di directly translatable code to the downstream Com pilersysteme is issued.

Die Datenbank für die Interface-Codes (0210) wird unabhängig und vor dem Compilerdurchlauf aufgebaut. Beispielsweise sind folgende Quellen für die Datenbank möglich: Vom Lieferanten vorgegeben (0220), vom Benutzer programmiert (0221) oder au­ tomatisch von einem Entwicklungssystem generiert (0222).The database for the interface codes ( 0210 ) is set up independently and before the compiler run. For example, the following sources are possible for the database: predefined by the supplier ( 0220 ), programmed by the user ( 0221 ) or automatically generated by a development system ( 0222 ).

Zusammenfassend befaßt sich die vorliegende Erfindung mit Verfahren, die eine Übersetzung einer klassischen Hochsprache wie Pascal, C, C++, Java, etc. auf eine rekonfigurierbare Ar­ chitektur ermöglicht. Das Verfahren ist derart ausgelegt, daß nur die jeweils für die rekonfigurierbare Zielarchitektur ge­ eigneten Teile des zu übersetzenden Programmes extrahiert werden. Die verbleibenden Teile des Programmes werden auf ei­ ne konventionelle Prozessorarchitektur übersetzt.In summary, the present invention is concerned with Procedure that requires a translation of a classic high-level language like Pascal, C, C ++, Java, etc. on a reconfigurable Ar architecture enables. The process is designed such that only the ge for the reconfigurable target architecture suitable parts of the program to be translated are extracted become. The remaining parts of the program are on ei ne conventional processor architecture translated.

Claims (14)

1. Verfahren zur Übersetzung von Programmen auf ein System bestehend aus wenigstens einem ersten Prozessor und einer rekonfigurierbaren Einheit, dadurch gekennzeichnet, daß die Codeteile, die für die rekonfigurierbare Einheit ge­ eignet sind, bestimmt und extrahiert werden und der verbleibende Code zur Abarbeitung durch den ersten Prozessor derart extrahiert wird.1. A method for translating programs onto a system consisting of at least a first processor and a reconfigurable unit, characterized in that the code parts which are suitable for the reconfigurable unit are determined and extracted and the remaining code for processing by the first Processor is extracted in this way. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß dem für den Prozessor extrahierten Code derart Interface-Code zugefügt wird, daß eine Kommunikation zwischen Prozessor und rekonfigurierbarer Einheit entsprechend des Systems möglich ist. 2. The method according to claim 1, characterized in that the for the processor extracted code such interface code is added that communication between processor and reconfigurable unit according to the system is possible.   3. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß dem für die rekonfigurierbare Einheit extrahierten Code derart Interface-Code zugefügt wird, daß eine Kommunikation zwischen Prozessor und rekonfigurierba­ rer Einheit entsprechend des Systems möglich ist.3. The method according to any one of the preceding claims, characterized characterized in that for the reconfigurable unit extracted code such that interface code is added such that communication between processor and reconfigurable unit according to the system is possible. 4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß der zu extrahierende Code aufgrund von Analysen festge­ stellt wird.4. The method according to any one of the preceding claims, characterized characterized in that the code to be extracted is determined based on analyzes is posed. 5. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß der zu extrahierende Code aufgrund von Hinweisen im Code festgestellt wird.5. The method according to any one of the preceding claims, characterized characterized in that the code to be extracted based on clues in the code is detected. 6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß der zu extrahierende Code aufgrund von Aufrufen von Unter­ programmen festgestellt wird.6. The method according to any one of the preceding claims, characterized characterized in that the code to extract based on calls to sub programs is determined. 7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß der Interface-Code eine Speicherkopplung (Shared-Memory) vorsieht.7. The method according to any one of the preceding claims, characterized characterized in that the interface code a memory coupling (shared memory) provides. 8. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß der Interface-Code eine Registerkopplung vorsieht.8. The method according to any one of the preceding claims, characterized characterized in that the interface code provides for register coupling. 9. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Interface-Code eine Kopplung mittels eines Netzwerkes vorsieht. 9. The method according to claim 1, characterized in that the interface code is a coupling via a network provides.   10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß der extrahierte Code analysiert wird und gegebenenfalls die Extraktion mit neuen verbesserten Parametern erneut gestartet wird.10. The method according to any one of the preceding claims, characterized characterized in that the extracted code is analyzed and, if necessary, the extraction with new improved ones Parameters is started again. 11. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß dem extrahierten Code Steuer-Code zur Verwaltung und/oder Steuerung und/oder Kommunikation der Entwicklungssysteme zugefügt wird.11. The method according to claim 1, characterized in that the extracted code control code for management and / or Control and / or communication of the development systems is added. 12. Verfahren nach einem der vorhergehenden Ansprüche, worin der erste Prozessor eine konventionelle Prozessorarchitek­ tur aufweist, insbesondere ein Prozessor mit von -Neumann- und/oder Harvardarchitektur, Kontroller, CISC-, RISC-, VLIW-, DSP-Prozessor.12. The method according to any one of the preceding claims, wherein the first processor is a conventional processor architecture tur, in particular a processor with von -Neumann- and / or Harvard architecture, controller, CISC, RISC, VLIW, DSP processor. 13. Verfahren insbesondere nach einem der vorhergehenden An­ sprüche zur Übersetzung von Programmen auf ein System be­ stehend aus einem Prozessor und einer rekonfigurierbaren Einheit, dadurch gekennzeichnet, daß
die Codeteile, die für die rekonfigurierbare Einheit ge­ eignet sind, extrahiert werden,
der verbleibende Code derart extrahiert wird, daß er mit­ tels eines beliebigen gewöhnlichen unmodifizierten für den Prozessor geeigneten Compilers übersetzbar ist.
13. The method in particular according to one of the preceding claims for translating programs to a system consisting of a processor and a reconfigurable unit, characterized in that
the code parts suitable for the reconfigurable unit are extracted,
the remaining code is extracted such that it can be translated using any conventional unmodified processor-compatible compiler.
14. Vorrichtung zur Datenverarbeitung mit wenigstens einem herkömmlichen Prozessor und wenigstens einer rekonfigu­ rierbaren Einheit, dadurch gekennzeichnet, daß sie ein Mittel zum Informationsaustausch, insbesondere in Form von Daten- und Statusinformation zwischen herkömmlichem Pro­ zessor und rekonfigurierbarer Einheit aufweist, wobei das Mittel so ausgebildet ist, daß eine Daten- und Statusinfor­ mation zwischen denselben während der Abarbeitung eines oder mehrerer Programme möglich ist und/oder ohne daß ins­ besondere die Datenverarbeitung auf dem rekonfigurierbaren Prozessor und/oder dem herkömmlichen Prozessor signifikant unterbrochen werden muß.14. Device for data processing with at least one conventional processor and at least one reconfigured ratable unit, characterized in that it is a Means for exchanging information, in particular in the form of Data and status information between conventional Pro processor and reconfigurable unit, the  Means is designed so that a data and status information mation between the same during the processing of a or several programs is possible and / or without special the data processing on the reconfigurable Processor and / or the conventional processor significant must be interrupted.
DE10129237A 2000-07-24 2002-06-20 Integrated cell matrix circuit has at least 2 different types of cells with interconnection terminals positioned to allow mixing of different cell types within matrix circuit Withdrawn DE10129237A1 (en)

Priority Applications (49)

Application Number Priority Date Filing Date Title
EP01969493A EP1377919A2 (en) 2000-07-24 2001-07-24 Integrated circuit
PCT/EP2001/008534 WO2002008964A2 (en) 2000-07-24 2001-07-24 Integrated circuit
AU2001289737A AU2001289737A1 (en) 2000-07-24 2001-07-24 Integrated circuit
US09/967,498 US20040015899A1 (en) 2000-10-06 2001-09-28 Method for processing data
AU2002257615A AU2002257615A1 (en) 2001-03-05 2002-03-05 Methods and devices for treating and/or processing data
PCT/EP2002/002403 WO2002071249A2 (en) 2001-03-05 2002-03-05 Method and devices for treating and/or processing data
EP02712937A EP1454258A2 (en) 2001-03-05 2002-03-05 Method and devices for treating and/or processing data
US10/469,909 US7444531B2 (en) 2001-03-05 2002-03-05 Methods and devices for treating and processing data
JP2002570103A JP2004535613A (en) 2001-03-05 2002-03-05 Data processing method and data processing device
JP2002570104A JP2004536373A (en) 2001-03-05 2002-03-05 Data processing method and data processing device
EP02727358A EP1540507B1 (en) 2001-03-05 2002-03-05 Device for processing data with an array of reconfigurable elements
JP2002570052A JP4011488B2 (en) 2001-03-05 2002-03-05 Data processing and / or data processing method and apparatus
US10/471,061 US7581076B2 (en) 2001-03-05 2002-03-05 Methods and devices for treating and/or processing data
PCT/EP2002/002402 WO2002071196A2 (en) 2001-03-05 2002-03-05 Methods and devices for treating and processing data
EP02724198.3A EP1386220B1 (en) 2001-03-05 2002-03-05 Methods and devices for treating and processing data
AU2002254921A AU2002254921A1 (en) 2001-03-05 2002-03-05 Methods and devices for treating and processing data
PCT/EP2002/002398 WO2002071248A2 (en) 2001-03-05 2002-03-05 Methods and devices for treating and/or processing data
US10/469,910 US20070299993A1 (en) 2001-03-05 2002-03-05 Method and Device for Treating and Processing Data
PCT/EP2002/006865 WO2002103532A2 (en) 2001-06-20 2002-06-20 Data processing method
US10/480,003 US7657877B2 (en) 2001-06-20 2002-06-20 Method for processing data
DE10227650A DE10227650A1 (en) 2001-06-20 2002-06-20 Reconfigurable elements
AT02780770T ATE478381T1 (en) 2001-06-20 2002-06-20 DATA PROCESSING PROCEDURES
EP10005502A EP2224330B1 (en) 2001-06-20 2002-06-20 Method and device for partitioning large computer programs
EP02780770A EP1402382B1 (en) 2001-06-20 2002-06-20 Data processing method
JP2003505782A JP2004533691A (en) 2001-06-20 2002-06-20 Methods for processing data
DE50214592T DE50214592D1 (en) 2001-06-20 2002-06-20 METHOD FOR PROCESSING DATA
AT10005502T ATE557344T1 (en) 2001-06-20 2002-06-20 METHOD AND DEVICE FOR PARTITIONING LARGE COMPUTER PROGRAMS
AU2002347560A AU2002347560A1 (en) 2001-06-20 2002-06-20 Data processing method
JP2008249099A JP2009032281A (en) 2001-03-05 2008-09-26 Method for data transmission
JP2008249112A JP2009020909A (en) 2001-03-05 2008-09-26 Method for partitioning graph
JP2008249116A JP2009043276A (en) 2001-03-05 2008-09-26 Fifo storage method
JP2008249106A JP2009054170A (en) 2001-03-05 2008-09-26 Management method for data flow
JP2008249115A JP2009043275A (en) 2001-03-05 2008-09-26 Method of forming sequence
US12/257,075 US8099618B2 (en) 2001-03-05 2008-10-23 Methods and devices for treating and processing data
US12/389,116 US20090210653A1 (en) 2001-03-05 2009-02-19 Method and device for treating and processing data
US12/496,012 US20090300262A1 (en) 2001-03-05 2009-07-01 Methods and devices for treating and/or processing data
US12/570,984 US8312301B2 (en) 2001-03-05 2009-09-30 Methods and devices for treating and processing data
US12/640,201 US20100095094A1 (en) 2001-06-20 2009-12-17 Method for processing data
US12/944,068 US9037807B2 (en) 2001-03-05 2010-11-11 Processor arrangement on a chip including data processing, memory, and interface elements
US13/043,102 US20110173389A1 (en) 2001-03-05 2011-03-08 Methods and devices for treating and/or processing data
US13/653,639 US9075605B2 (en) 2001-03-05 2012-10-17 Methods and devices for treating and processing data
US14/219,945 US9552047B2 (en) 2001-03-05 2014-03-19 Multiprocessor having runtime adjustable clock and clock dependent power supply
US14/223,793 US10031733B2 (en) 2001-06-20 2014-03-24 Method for processing data
US14/231,358 US9436631B2 (en) 2001-03-05 2014-03-31 Chip including memory element storing higher level memory data on a page by page basis
US14/318,211 US9250908B2 (en) 2001-03-05 2014-06-27 Multi-processor bus and cache interconnection system
US14/500,618 US9141390B2 (en) 2001-03-05 2014-09-29 Method of processing data with an array of data processors according to application ID
US15/225,638 US10152320B2 (en) 2001-03-05 2016-08-01 Method of transferring data between external devices and an array processor
US15/408,358 US10331194B2 (en) 2001-03-05 2017-01-17 Methods and devices for treating and processing data
US16/190,931 US20190102173A1 (en) 2001-03-05 2018-11-14 Methods and systems for transferring data between a processing device and external devices

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EPPCT/EP00/10516 2000-10-09
EP01102674 2001-02-07

Publications (1)

Publication Number Publication Date
DE10129237A1 true DE10129237A1 (en) 2002-04-18

Family

ID=45727532

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10129237A Withdrawn DE10129237A1 (en) 2000-07-24 2002-06-20 Integrated cell matrix circuit has at least 2 different types of cells with interconnection terminals positioned to allow mixing of different cell types within matrix circuit

Country Status (1)

Country Link
DE (1) DE10129237A1 (en)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006082091A2 (en) 2005-02-07 2006-08-10 Pact Xpp Technologies Ag Low latency massive parallel data processing device
US7650448B2 (en) 1996-12-20 2010-01-19 Pact Xpp Technologies Ag I/O and memory bus system for DFPS and units with two- or multi-dimensional programmable cell architectures
US7657877B2 (en) 2001-06-20 2010-02-02 Pact Xpp Technologies Ag Method for processing data
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US7782087B2 (en) 2002-09-06 2010-08-24 Martin Vorbach Reconfigurable sequencer structure
US7822881B2 (en) 1996-12-27 2010-10-26 Martin Vorbach Process for automatic dynamic reloading of data flow processors (DFPs) and units with two- or three-dimensional programmable cell architectures (FPGAs, DPGAs, and the like)
US7822968B2 (en) 1996-12-09 2010-10-26 Martin Vorbach Circuit having a multidimensional structure of configurable cells that include multi-bit-wide inputs and outputs
US7840842B2 (en) 2001-09-03 2010-11-23 Martin Vorbach Method for debugging reconfigurable architectures
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US8099618B2 (en) 2001-03-05 2012-01-17 Martin Vorbach Methods and devices for treating and processing data
US8127061B2 (en) 2002-02-18 2012-02-28 Martin Vorbach Bus systems and reconfiguration methods
US8156284B2 (en) 2002-08-07 2012-04-10 Martin Vorbach Data processing method and device
US8209653B2 (en) 2001-09-03 2012-06-26 Martin Vorbach Router
US8230411B1 (en) 1999-06-10 2012-07-24 Martin Vorbach Method for interleaving a program over a plurality of cells
US8250503B2 (en) 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software
US8281108B2 (en) 2002-01-19 2012-10-02 Martin Vorbach Reconfigurable general purpose processor having time restricted configurations
US8301872B2 (en) 2000-06-13 2012-10-30 Martin Vorbach Pipeline configuration protocol and configuration unit communication
USRE44365E1 (en) 1997-02-08 2013-07-09 Martin Vorbach Method of self-synchronization of configurable elements of a programmable module
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US8812820B2 (en) 2003-08-28 2014-08-19 Pact Xpp Technologies Ag Data processing device and method
US8819505B2 (en) 1997-12-22 2014-08-26 Pact Xpp Technologies Ag Data processor having disabled cores
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements

Cited By (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156312B2 (en) 1996-12-09 2012-04-10 Martin Vorbach Processor chip for reconfigurable data processing, for processing numeric and logic operations and including function and interconnection control units
US7822968B2 (en) 1996-12-09 2010-10-26 Martin Vorbach Circuit having a multidimensional structure of configurable cells that include multi-bit-wide inputs and outputs
US8195856B2 (en) 1996-12-20 2012-06-05 Martin Vorbach I/O and memory bus system for DFPS and units with two- or multi-dimensional programmable cell architectures
US7899962B2 (en) 1996-12-20 2011-03-01 Martin Vorbach I/O and memory bus system for DFPs and units with two- or multi-dimensional programmable cell architectures
US7650448B2 (en) 1996-12-20 2010-01-19 Pact Xpp Technologies Ag I/O and memory bus system for DFPS and units with two- or multi-dimensional programmable cell architectures
US7822881B2 (en) 1996-12-27 2010-10-26 Martin Vorbach Process for automatic dynamic reloading of data flow processors (DFPs) and units with two- or three-dimensional programmable cell architectures (FPGAs, DPGAs, and the like)
USRE45223E1 (en) 1997-02-08 2014-10-28 Pact Xpp Technologies Ag Method of self-synchronization of configurable elements of a programmable module
USRE44365E1 (en) 1997-02-08 2013-07-09 Martin Vorbach Method of self-synchronization of configurable elements of a programmable module
USRE44383E1 (en) 1997-02-08 2013-07-16 Martin Vorbach Method of self-synchronization of configurable elements of a programmable module
USRE45109E1 (en) 1997-02-08 2014-09-02 Pact Xpp Technologies Ag Method of self-synchronization of configurable elements of a programmable module
US8819505B2 (en) 1997-12-22 2014-08-26 Pact Xpp Technologies Ag Data processor having disabled cores
US8468329B2 (en) 1999-02-25 2013-06-18 Martin Vorbach Pipeline configuration protocol and configuration unit communication
US8312200B2 (en) 1999-06-10 2012-11-13 Martin Vorbach Processor chip including a plurality of cache elements connected to a plurality of processor cores
US8726250B2 (en) 1999-06-10 2014-05-13 Pact Xpp Technologies Ag Configurable logic integrated circuit having a multidimensional structure of configurable elements
US8230411B1 (en) 1999-06-10 2012-07-24 Martin Vorbach Method for interleaving a program over a plurality of cells
US8301872B2 (en) 2000-06-13 2012-10-30 Martin Vorbach Pipeline configuration protocol and configuration unit communication
US8471593B2 (en) 2000-10-06 2013-06-25 Martin Vorbach Logic cell array and bus system
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US9047440B2 (en) 2000-10-06 2015-06-02 Pact Xpp Technologies Ag Logical cell array and bus system
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US8145881B2 (en) 2001-03-05 2012-03-27 Martin Vorbach Data processing device and method
US8099618B2 (en) 2001-03-05 2012-01-17 Martin Vorbach Methods and devices for treating and processing data
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US9075605B2 (en) 2001-03-05 2015-07-07 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US8312301B2 (en) 2001-03-05 2012-11-13 Martin Vorbach Methods and devices for treating and processing data
US7657877B2 (en) 2001-06-20 2010-02-02 Pact Xpp Technologies Ag Method for processing data
US8869121B2 (en) 2001-08-16 2014-10-21 Pact Xpp Technologies Ag Method for the translation of programs for reconfigurable architectures
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
US8429385B2 (en) 2001-09-03 2013-04-23 Martin Vorbach Device including a field having function cells and information providing cells controlled by the function cells
US7840842B2 (en) 2001-09-03 2010-11-23 Martin Vorbach Method for debugging reconfigurable architectures
US8069373B2 (en) 2001-09-03 2011-11-29 Martin Vorbach Method for debugging reconfigurable architectures
US8407525B2 (en) 2001-09-03 2013-03-26 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US8209653B2 (en) 2001-09-03 2012-06-26 Martin Vorbach Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US8281108B2 (en) 2002-01-19 2012-10-02 Martin Vorbach Reconfigurable general purpose processor having time restricted configurations
US8127061B2 (en) 2002-02-18 2012-02-28 Martin Vorbach Bus systems and reconfiguration methods
US8156284B2 (en) 2002-08-07 2012-04-10 Martin Vorbach Data processing method and device
US8281265B2 (en) 2002-08-07 2012-10-02 Martin Vorbach Method and device for processing data
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
US8803552B2 (en) 2002-09-06 2014-08-12 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US7928763B2 (en) 2002-09-06 2011-04-19 Martin Vorbach Multi-core processing system
US8310274B2 (en) 2002-09-06 2012-11-13 Martin Vorbach Reconfigurable sequencer structure
US7782087B2 (en) 2002-09-06 2010-08-24 Martin Vorbach Reconfigurable sequencer structure
US8812820B2 (en) 2003-08-28 2014-08-19 Pact Xpp Technologies Ag Data processing device and method
WO2006082091A2 (en) 2005-02-07 2006-08-10 Pact Xpp Technologies Ag Low latency massive parallel data processing device
US8250503B2 (en) 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software

Similar Documents

Publication Publication Date Title
DE10129237A1 (en) Integrated cell matrix circuit has at least 2 different types of cells with interconnection terminals positioned to allow mixing of different cell types within matrix circuit
EP1402382B1 (en) Data processing method
DE2521289C2 (en) Data processing arrangement with data field auxiliary processor
DE3610433C2 (en) Method for controlling a machine with a programmable logic controller with a function chart interpreter
DE60010420T2 (en) Automatic regression testing of workstation software
EP1330685B1 (en) Testing method and testing device for starting up systems which are controlled by means of a program logic
DE19926538A1 (en) Hardware with decoupled configuration register partitions data flow or control flow graphs into time-separated sub-graphs and forms and implements them sequentially on a component
EP2214104A1 (en) Reconfiguration method for programmable components during runtime
EP2799983B1 (en) Flexible distribution of I/O channels of a hardware component
EP0825540B1 (en) Pipeline processor
DE69812990T2 (en) METHOD FOR GENERATING ISA SIMULATORS AND ASSEMBLERS FROM A MACHINE DESCRIPTION
DE4418892A1 (en) Microcomputer
EP3568757A1 (en) Method for generating source code
DE19581754B4 (en) System and method for conditionally compiling a software compilation unit
EP2306349A1 (en) Method for verifying the real-time capability of a system
DE19947892C2 (en) Process for the implementation of interface definitions and intermediate format table therefor
EP0657044B1 (en) Method of operating a computer system with at least one microprocessor and at least one coprocessor
EP2366146B1 (en) Method and data processing system for simulating an embedded system
EP2363809B1 (en) Method for optimizing a control program for actuators
EP1046991B1 (en) Method for testing the autonomy and compatibilty of a software module
DE112018002316T5 (en) CODE COVERAGE TRACKING FOR A MICROCONTROLLER PROGRAM
DE102020124080A1 (en) Procedure for incremental code generation
EP0664905B1 (en) Process for performing tests on objects of an object-oriented program capable of running in parallel on a computer
EP1010070A1 (en) Method for converting an object code into a programme code
EP2302554A2 (en) Method for identifying a section of computer program contained in a computer storage system

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8143 Withdrawn due to claiming internal priority