EP1537501B1 - Verfahren und vorrichtung zur datenverarbeitung - Google Patents

Verfahren und vorrichtung zur datenverarbeitung Download PDF

Info

Publication number
EP1537501B1
EP1537501B1 EP03776856.1A EP03776856A EP1537501B1 EP 1537501 B1 EP1537501 B1 EP 1537501B1 EP 03776856 A EP03776856 A EP 03776856A EP 1537501 B1 EP1537501 B1 EP 1537501B1
Authority
EP
European Patent Office
Prior art keywords
data processing
data
elements
paths
selection
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.)
Expired - Lifetime
Application number
EP03776856.1A
Other languages
English (en)
French (fr)
Other versions
EP1537501A2 (de
Inventor
Martin Vorbach
Frank May
Armin NÜCKEL
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 XPP Technologies AG
Original Assignee
PACT XPP Technologies AG
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 claimed from PCT/EP2002/010065 external-priority patent/WO2003017095A2/de
Priority claimed from DE10238172A external-priority patent/DE10238172A1/de
Priority claimed from DE10238174A external-priority patent/DE10238174A1/de
Priority claimed from DE10238173A external-priority patent/DE10238173A1/de
Priority claimed from DE10240000A external-priority patent/DE10240000A1/de
Priority claimed from PCT/DE2002/003278 external-priority patent/WO2003023616A2/de
Priority claimed from DE10241812A external-priority patent/DE10241812A1/de
Priority claimed from PCT/EP2002/010084 external-priority patent/WO2003025770A2/de
Priority claimed from PCT/EP2002/010479 external-priority patent/WO2003025781A2/de
Priority claimed from DE2002143322 external-priority patent/DE10243322B4/de
Priority claimed from PCT/EP2002/010572 external-priority patent/WO2003036507A2/de
Priority claimed from PCT/EP2003/000624 external-priority patent/WO2003071418A2/de
Priority claimed from PCT/DE2003/000152 external-priority patent/WO2003060747A2/de
Priority claimed from PCT/DE2003/000489 external-priority patent/WO2003071432A2/de
Priority claimed from DE2003110195 external-priority patent/DE10310195A1/de
Priority claimed from PCT/DE2003/000942 external-priority patent/WO2003081454A2/de
Application filed by PACT XPP Technologies AG filed Critical PACT XPP Technologies AG
Priority to EP03776856.1A priority Critical patent/EP1537501B1/de
Priority claimed from PCT/EP2003/008081 external-priority patent/WO2004021176A2/de
Publication of EP1537501A2 publication Critical patent/EP1537501A2/de
Application granted granted Critical
Publication of EP1537501B1 publication Critical patent/EP1537501B1/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Definitions

  • the invention relates to the term claimed above and is thus concerned with improvements in multidimensional fields of data processing cells for data processing.
  • the present invention is concerned not only with the advantageous construction of a multidimensional array of reconfigurable elements as in reconfigurable processors, but also with methods of operation thereof, such as a translation of a classical high level language (PROGRAM) such as Pascal, C, C ++, Java etc. is made possible on a reconfigurable architecture.
  • PROGRAM classical high level language
  • a method for operating a multidimensional field of reconfigurable elements wherein groups of data-handling elements are configured in a predetermined manner during runtime for execution of given tasks in the field and wherein it is provided that for at least one to be processed Task a plurality of such element group arrangements is determined in the multidimensional field, which are suitable for processing the given task, for the execution of the given task a then particularly suitable element group arrangement is selected from the plurality and the selected arrangement is configured into the field.
  • the invention thus proposes, in the preparation of the actual data processing, to predetermine a multiplicity of arrangements or configurations and then to select from the predetermined element group arrangements such that is particularly well suited for the execution of the given task with the field resources then given.
  • This is a significant improvement in the operation of a multidimensional field of reconfigurable elements essentially by a simple extension of the compiler given that it translates the previously programmed codes by not only determining a single configuration for a given task, but using several such configurations, and thus exploiting that there is no definite solution to the problem, a piece of given high-level language code to translate a multidimensional field of reconfigurable elements.
  • compiler is used herein for a means that determines configurations, whether it is a router part, a translator part, or another part of a program code configuration determining means. This means can be realized by means of hardwiring, ie as hardware or as a software program.
  • the selection of the optimal configuration can take place in a preprocessor or a subregion of the multidimensional field of the reconfigurable elements and in particular be taken over by a data processing program and / or means, which temporally coordinates the execution of the various tasks, prioritizes, etc. It may be in particular, be a part of an operating system, provided that the multidimensional field reconfigurable elements as a processor or coprocessor is executed.
  • the usability of the CT, a scheduler for hyperthreading, multitasking, multithreading, etc. should be mentioned. Reference should be made in this regard to corresponding further parts of the present application. That such units may be implemented in hardware and / or software, should be mentioned.
  • volumes here refers to the volume of the multidimensional field, ie in the case of two-dimensional fields of reconfigurable elements, the area or area geometry of the reconfigurable elements available for the reconfiguration etc.
  • a first element group arrangement may be initially configured into the field and to start processing the task with this element group arrangement until a predetermined event occurs and then the task processing is continued in a further element group arrangement under at least partial reconfiguration. It can be provided, for example, that in order to achieve a preferred geometry of configurations in the multidimensional field, such as stripes arranged one behind the other cells for each task, at fixed cycle times, such as every thousand, ten thousand or one hundred thousand cycles, the execution of all or part of all configurations the results will be cached as required, even with data internally required in one configuration such as loop counts, counts, etc., and then reconfigured with appropriate preferred geometries so as to avoid a gradual decay of configurations already undesirable because of the increased demand for bus lines.
  • the selection of a given element group arrangement to be configured in one field, apart from the available geometry, can also be made dependent on other parameters. These include, among other things, the achievable processing speed, the priority of a task and / or the energy consumption required to complete a given task in a given time. It should be noted that several parameters can be considered simultaneously, either by first rejecting configurations considered equivalent by a first parameter such as the required field volume by considering a second parameter, or by using, for example, fuzzy logic methods , several parameters should be simultaneously optimized as much as possible.
  • a data processing device generally indicated at 1, comprises a multidimensional array of reconfigurable elements 2 and a preprocessor 3 which feeds configurations into the multidimensional array 1 via suitable data buses 4 and information about reconfigurable elements from the multidimensional array 2 receives multiple elements as well a slow access memory 5 in which configurations for tasks to be performed in the multidimensional field 2 are pre-stored.
  • the multidimensional processor 1 in the present example is an XPU architecture which has PAE as configurable elements and is constructed according to PACT02, 04, 08, 10, 13. It receives data from input / output interfaces 6 in real time for processing, whereby it is unpredictable how these data arrive and / or are to be processed. It can be provided for this purpose a keyboard, pictures retrieving cameras, A / D converter, etc.
  • the multidimensional field 2 consists, for simplicity of illustration, although not necessarily technologically compelling, in the present case only of a series of exclusively identical data-handling elements, between which suitable networks via buses and the like are configurable. For the sake of clarity, unlimited bus resources are assumed in the present case, although the typical application of even such resources and their scarcity in the predefinition of multiple configuration options is considered purely in practice.
  • the data-handling elements are suitable in the present case, the sequence To execute instructions as known per se, that is, it is possible to build sequencers over individual cells or groups of them. That a time division multiplexing is possible in this case, it should be mentioned. This allows a corresponding convolution of several operations, then then in large arrays or more space can be unfolded.
  • the multidimensional field 2 is runtime reconfigurable, that is, it is possible to associate individual ones of the data handling elements or groups with new tasks during runtime without interrupting the operation of the overall device or other elements or groups of them altogether.
  • the data handling elements are locally allocated to configuration memory, as are registers, namely forward and backward registers, bus lines, finite state machines for exchanging trigger signals with each other and with the preprocessing unit 3, etc.
  • configuration memory as are registers, namely forward and backward registers, bus lines, finite state machines for exchanging trigger signals with each other and with the preprocessing unit 3, etc.
  • the preprocessor 3 is adapted to load configurations into the multidimensional array via lines 4 when it receives from the multidimensional field the message that individual elements or groups thereof are reconfigurable.
  • the preprocessor 3 contains a local memory (cache) and is connected to a further memory 5 (hard disk, RAM), which can be accessed more slowly and on which configuration data is stored. Suitable is about a CT.
  • preprocessor 3 it is not necessary to provide the preprocessor 3 as an external component.
  • the illustration shown was chosen exclusively for didactic reasons. It may be integrated with the multidimensional array 2 on a single chip and / or its function may be performed by individual data handling elements 2 of the processor array.
  • Fig. D2 There are several configurations for two tasks a) and b). As can be seen, a total of four configurations are filed for the task a), all of which perform the same function, but have different connections of the cells with each other and differ in particular with respect to their outer geometric shape in which the cells are arranged.
  • the data processing can be continued with a configuration arrangement as shown in Fig. D3. It should be noted that in cases where different data handling elements are provided, the corresponding information can likewise be stored in the characteristic data record.
  • the present invention thus proposes, in a first aspect, a method for selecting one of a plurality of ways to obtain a data processing result in the data processing at least possible use of multi-dimensional fields configurable data handling elements, in which it is provided that the data handling elements configuration dependent consumption-related characteristic variables are assigned and a path selection based on the assignment.
  • the selection of a path may involve choosing a given algorithm from a variety of different algorithms, whether for tasks such as sorting data, certain mathematical transformations, or the like. If a plurality of sorting algorithms, algorithms for determining a Fourier transform or the like are present in a program module library, then z. B. for each a consumption-indicative size are determined and it will then be made taking into account the same a selection.
  • This makes it possible to choose algorithms which, for example, have a particularly low energy consumption. This can be useful for mobile applications such as laptops, cell phones and the like, but also offers benefits in areas where very compute-intensive tasks in servers, base stations, etc., where the power generated in a processing unit must be cooled and / or removed. As a result of the invention, overall system costs can be minimized.
  • a place & route algorithm can exploit the optimization, for example, to achieve low-energy arrangements. This is particularly preferred and is considered to be inventive in itself.
  • a given task of data processing or a partial task should be assigned to the considered multidimensional field of configurable data handling elements and / or another element for data processing outside the multidimensional field; For example, it may then be decided whether, when the multidimensional array serves as a coprocessor, a particular subtask is better processed on a purely sequential CPU or the reconfigurable multidimensional array typically operating as a data flow processor or the like. It is also possible to be beyond the requirement or meaningfulness of dedicated circuits such as ASICs for particular tasks.
  • the field of configurable data handling elements will be a two-dimensional field. It should be noted that the invention is applicable to fields such as FPGAs, XPP processors, etc. It is particularly preferred for components that can be configured at runtime and, in particular, partially reconfigured at runtime without disturbance without being reconfigured, partially reconfigurable processor fields.
  • the indicative value is only roughly estimated, such as determining whether a particular element is currently being used and / or configured, or whether it is not being used instead, and possibly even from a power supply to a wake -up circuit and / or is at least largely disconnected from a clock supply. It is therefore not necessary to carry out an absolutely exact consumption marking, for example by specifying the consumption of the specific product algebraic operation that is currently and / or permanently assigned to a respective arithmetic-logical unit. Rather, it may be sufficient to determine the consumption-indicative quantity only in terms of whether and how far actually the respective element is actually being used. Exceptions are possible. An exception can be made in particular for operations such as multiplications, in which very large circuit areas must be supplied with power. In such case, further detailing may be provided.
  • the selection will not be solely based on the consumption-indicative quantities, but may include other parameters such as a required execution time, required resources on a multidimensional field, current or expected processor utilization by other tasks, and / or a currently desired, expected, or allowed power consumption ,
  • the key figures are available through measured values and / or hardware or synthesis analyzes and can be stored in look-up tables.
  • the selection of the respective path can take place before the actual data processing, for example when determining configurations to be loaded later under a number of theoretically implementable configurations. In such a case it is particularly preferred if the characteristic quantity is also determined during the simulation of the data processing functions. Alternatively it can be provided that the selection takes place under different possible paths during the term. In such a case, about several possible algorithms, eg. For example, to sort data provided, it is then queried how many individual data are to be sorted and how the degree of order of these data is and only then is a choice among various previously determined algorithms based on their assigned parameterized consumption label sizes such as Total power consumption, etc. made. Similarly, a configuration at runtime depending on z. B. a currently possible or desired power consumption.
  • a desired type of data processing to be performed on the processor array is defined. For example, a Viterbi algorithm is programmed and a configuration suitable for the processor field considered is determined. It is then determined which units are used on the processor array and how many cycles this happens. When considering the elements used, ALUs, Forward and reverse registers (FREG and BREG) and switches in buses (LSW and RSW). It then determines the total energy consumption per element type and then the total energy consumption of all different units. The power consumption values for a single element per clock are in turn estimated from simulations of the hardware circuits in the architecture under consideration and are tabulated for the method of the invention.

Landscapes

  • Logic Circuits (AREA)

Description

  • Die Erfindung betrifft das oberbegrifflich Beanspruchte und befaßt sich somit mit Verbesserungen bei multidimensionalen Feldern aus datenverarbeitenden Zellen zur Datenverarbeitung.
  • Es sind bereits multidimensionale Felder aus datenverarbeitenden Zellen bekannt. Zur Gattung dieser Bausteine zählen insbesondere systolische Arrays, neuronale Netze, Mehrprozessor Systeme, Prozessoren mit mehreren Rechenwerken und/oder logischen Zellen und/oder kommunikati-ven/peripheren Zellen (IO), Vernetzungs- und Netzwerkbausteine wie z.3. Crossbar-Schalter, ebenso wie bekannte Bausteine der Gattung FPGA, DPGA, Chameleon, XPUTER, etc.. Es sind insbesondere Bausteine bekannt, bei denen erste Zellen während der Laufzeit ohne Störung des Betriebes weiterer Zellen umkonfigurierbar sind, vgl. etwa die folgenden Schutzrechte und Anmeldungen 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 .
  • Die vorliegende Erfindung befasst sich aber nicht nur mit dem vorteilhaften Aufbau eines multidimensionalen Feldes rekonfigurierbarer Elemente wie bei rekonfigurierbaren Prozessoren, sondern auch mit Verfahren zu deren Betrieb, etwa derart, daß eine Übersetzung einer klassischen Hochsprache (PROGRAMM) wie Pascal, C, C++, Java etc. auf eine rekonfigurierbare Architektur ermöglicht wird.
  • Oftmals wird hier nicht das gesamte multidimensionale Feld rekonfigurierbarer Elemente samt aller zwischen den Daten handhabenden Elementen vorgesehenen Bussystemen, Verbindungsleitungen usw. zur Umkonfiguration freigegeben, sondern es besteht vielmehr das Erfordernis, eine neue Aufgabe einem kleinen Teilbereich des multidimensionalen Feldes zuzuordnen. Es ist überdies häufig nicht vorhersagbar, wie dieser Teilbereich beschaffen sein wird. Dies gilt insbesondere dann, wenn auf dem multidimensionalen Feld rekonfigurierbarer Elemente mehrere Aufgaben parallel abgearbeitet werden müssen, etwa im Wege des Multitasking, und/oder nicht vorhergesagt werden kann, wann dort, etwa bei Echtzeitanwendungen, welche Ressourcen zwecks Umkonfiguration freigegeben werden.
  • Prinzipiell besteht die Möglichkeit, einen Code, der auf dem multidimensionalen Feld rekonfigurierbarer Elemente abgearbeitet werden soll, zur Laufzeit zu übersetzen, also erst dann, wenn die Abarbeitung anderer Aufgaben schon begonnen hat, festzulegen, wie der als nächstes auszuführende Code bestimmten rekonfigurierbaren Elementen zuzuordnen ist, wie die Verbindung zwischen diesen laufen soll, welche Zwischenspeicherungen erforderlich sind usw. Es ist einsichtig, dass eine solche Vorgehensweise zur Übersetzung einen vergleichsweise hohen momentanen Datenverarbeitungsaufwand erfordert. Gerade in kritischen Rechnerapplikationen, die ein Höchstmaß an Rechenleistung erfordern, ist es gewünscht, für eine solche Übersetzung während der Laufzeit keine zusätzliche Rechenleistung zu verbrauchen. Es ist daher auch schon üblich, Programmcode vor Beginn des Programmes zu kompilieren und dann Teilkonfigurationen zu bestimmen, die jeweils in das Feld hinein konfiguriert werden, sobald dort entsprechende Ressourcen frei sind.
  • Ein Problem besteht allerdings darin, dass, gerade bei Echtzeitanwendungen, im Vorfeld nicht feststeht, wie die jeweils verfügbaren Ressourcen angeordnet sind. Dies betrifft einerseits die Funktionalität der zur Datenhandhabung verfügbaren Elemente, in die hinein konfiguriert werden könnte, sofern nicht alle Daten handhabenden Elemente dieselbe Funktion besitzen. So wäre denkbar, in einem multidimensionalen Feld rekonfigurierbarer Elemente verschiedene Zellen mit Rechenwerken auszustatten, die für Fließkomma-Berechnungen ausgelegt sind, Elemente vorzusehen, die lediglich Bool'sche Daten handhaben, Elemente, die über zugeordnete Speicher verfügen, Elemente, mit oder in denen Sequenzer vorgesehen werden können usw. Hier ist eine Ausführung mit Vorkompilierung darauf angewiesen, entweder mit der Umkonfiguration zu warten, bis genau jene Zellen zur Verfügung stehen, die die in der Vorkompilierung festgelegten Funktionen und Anordnungen besitzen. Auch muß bei der Vorkompilierung zudem der kleinste, allen Zellen gemeinsame Funktionsumfang verwendet werden. Beides verschwendet Ressourcen. Zudem ist meist nicht klar, wie die für die Umkonfiguration freigegebenen Elemente angeordnet sind und welche Verbindungen verfügbar sind; auch dadurch wird gegebenenfalls die Hineinkonfiguration einer neuen Aufgabe (Task) massiv erschwert.
  • Das Problem wird noch gravierender, wenn große Bereiche des multidimensionalen Feldes freigegeben werden und prinzipiell die Möglichkeit und/oder der Zwang besteht, mehrere Konfigurationen für unterschiedliche Aufgaben gleichzeitig in das Feld hinein zu konfigurieren.
  • Es wird somit gemäß einem ersten wesentlichen Aspekt der Erfindung ein Verfahren zum Betrieb eines multidimensionalen Feldes rekonfigurierbarer Elemente vorgeschlagen, worin Gruppen zusammen datenhandhabender Elemente in vorbestimmter Weise während der Laufzeit zur Abarbeitung vorgegebener Aufgaben im Feld konfiguriert werden und wobei vorgesehen ist, dass für zumindest eine abzuarbeitende Aufgabe eine Mehrzahl von solchen Elementgruppenanordnungen im multidimensionalen Feld bestimmt wird, die zur Abarbeitung der vorgegebenen Aufgabe geeignet sind, für die Abarbeitung der vorgegebenen Aufgabe eine dann besonders geeignete Elementgruppenanordnung aus der Mehrzahl ausgewählt wird und die ausgewählte Anordnung in das Feld hinein konfiguriert wird.
  • Die Erfindung schlägt somit vor, bei der Vorbereitung der eigentlichen Datenverarbeitung eine Vielzahl von Anordnungen bzw. Konfigurationen vorherzubestimmen und dann aus den vorbestimmten Elementgruppenanordnungen eine solche auszuwählen, die für die Abarbeitung der vorgegebenen Aufgabe bei den dann gegebenen Feldressourcen besonders gut geeignet ist. Damit ist eine wesentliche Verbesserung im Betrieb eines multidimensionalen Feldes rekonfigurierbarer Elemente im Wesentlichen durch eine einfache Erweiterung des Compilers gegeben, mit dem die zuvor programmierten Codes übersetzt werden, und zwar dadurch, dass dieser nicht nur eine einzige Konfiguration für eine gegebene Aufgabe bestimmt, sondern mehrere solcher Konfigurationen und somit ausnützt, dass keine eindeutige Lösung für das Problem besteht, ein Stück gegebenen Hochsprachecode auf ein multidimensionales Feld rekonfigurierbarer Elemente zu übersetzen. Es sei erwähnt, daß hier der Begriff "Compiler" verwendet wird für ein Mittel, das Konfigurationen bestimmt, unabhängig davon, ob es sich um einen Routerteil, einen Übersetzerteil oder einen anderen Teil eines Mittels zur Konfigurationsbestimmung anhand von Programmcodes handelt. Dieses Mittel kann mittels Festverdrahtung, d. h. als Hardware oder als Softwareprogramm realisiert sein.
  • Es ist möglich, aus dieser Vielzahl von potentiell möglichen Konfigurationen, die zur Abarbeitung eines gegebenen Stück-Codes möglich sind, eine Auswahl anhand der Geometrie zu treffen, die diese Elementgruppenanordnung im Vergleich zu jener besitzt, die die im multidimensionalen Feld für die Umkonfiguration verfügbaren bzw. vermutlich bald verfügbar werdenden Elemente besitzen. So kann durch einen einfachen Mustervergleich versucht werden, eine Konfiguration, d. h. Elementgruppenanordnung, auszuwählen, die möglichst alle der frei gewordenen oder frei werdenden Elemente abdeckt bzw. möglichst wenig Elemente des multidimensionalen Feldes ungenutzt lässt. Wenn lediglich auf die Geometrie Rücksicht genommen wird, etwa weil alle Daten handhabenden Elemente des multidimensionalen Feldes den für die Hineinkonfiguration erforderlichen Funktionsumfang besitzen, so kann die Auswahl mit per se bekannten Algorithmen wie bei der Schnittmusteroptimierung erfolgen. Es kann dabei entweder auf die bereits verfügbaren Elemente Bezug genommen werden oder es kann, insbesondere im Hinblick darauf, dass die Umkonfiguration oftmals die Übertragung von Konfigurationsdaten zu den Elementen umfasst und eine solche Umkonfigurationsdatenübertragung Zeit in Anspruch nimmt, vorgesehen werden, dass auch vermutlich bald verfügbare Elemente mit bei der Auswahl der jeweils optimalen Geometrie berücksichtigt werden. Dabei kann ausgenützt werden, dass es häufig möglich ist, vorherzusagen, dass bestimmte Elemente bald für die Umkonfiguration verfügbar werden, etwa wenn sie Daten für die Weiterverarbeitung von Zellen erhalten haben, die bereits ihre Umkonfigurierbarkeit angedeutet haben und die Anzahl der noch erforderlichen Verarbeitungstakte, der hierzu datenstromabwärts liegenden Zellen endlich und abschätzbar oder bekannt ist. Derartige Information ist erfindungsgemäß als Umkonfigurierbarkeits-Vorhersage verwaltbar. Daß zu den verfügbaren und/oder benötigten Elementen auch Busverbindungen, Leitungen etc. zählen, sei erwähnt.
  • Die Auswahl der optimalen Konfiguration kann dabei in einem Präprozessor oder einem Teilbereich des multidimensionalen Feldes der rekonfigurierbaren Elemente erfolgen und insbesondere von einem Datenverarbeitungsprogramm und/oder -mittel übernommen werden, das die Durchführung der verschiedenen Aufgaben zeitlich koordiniert, Priorisierungen vornimmt usw. Es kann sich hierbei insbesondere um einen Teil eines Betriebssystems handeln, sofern das multdimensionale Feld rekonfigurierbarer Elemente als Prozessor oder Koprozessor ausgeführt ist. Die Verwendbarkeit der CT, eines Schedulers für Hyperthreading, Multitasking, Multithreading usw. sei erwähnt. Auf entsprechende weitere Teile der vorliegenden Anmeldung sei diesbezüglich verwiesen. Daß solche Einheiten hard- und/oder softwaremäßig implementierbar sind, sei erwähnt.
  • Gerade dann, wenn Konfigurationsdaten aus einem Speicher eingelesen werden, der nicht vernachlassigbare Zugriffszeiten besitzt, bzw. wenn sie, sollte eine Echtzeitbestimmung einer Konfiguration gewünscht werden, mit nicht vernachlässigbaren Generierungszeiten generiert werden, ist es wünschenswert, zunächst einen Kenndatensatz vorzusehen, der gegenüber dem eigentlichen Konfigurationsdatensatz in der Grösse reduziert ist und dann eine Auswahl nur auf Grund dieses Kenndatensatzes zu treffen. So kann etwa beim Laden einer neuen Konfiguration aus einem langsamen Speicher wie von einer Festplatte zunächst lediglich ein Kenndatensatz bzw. eine Kenndatensatzgruppe heruntergeladen werden, der die Umrisse der Konfiguration betrifft. Da ein solcher Umrisskenndatensatz in der Größe gegenüber dem vollständigen Konfigurationsdatensatz typisch sehr reduziert sein wird, ist es auch möglich, eine Vielzahl von Kenndatensätzen für eine Vielzahl unterschiedlicher Konfigurationen vorab in einen Hauptspeicher zu laden, der einen sehr schnellen Zugriff erlaubt, an Hand der unterschiedlichen Konfigurationsdatensätze eine schnelle Auswahl zu treffen und dann aus dem langsamen Speicher die kompletten Konfigurationsdaten zur ausgewählten Konfiguration herunter zu laden. Es sei darauf hingewiesen, dass es in solchen Fällen auch möglich ist, einen Teil der Konfigurationen vorneweg miteinzulesen, etwa dann, wenn absehbar ist, dass bestimmte Konfigurationen typisch bevorzugt sind, sei es, weil statistische Auswertungen des typischen Datenverarbeitungsbetriebes für eine Vielzahl von multidimensionalen Feldern rekonfigurierbarer Elemente oder für ein einzelnes multidimensionales Feld dies ergeben haben, etwa weil zu einer Gruppe von Anwendungen wie im UMTS-Base-Station-Bereich durch Analyse typischer Aufgaben festgestellt wurde, dass bestimmte Umkonfigurationen besonders häufig auftreten, oder weil für einen einzelnen Benutzer festgestellt wurde, dass immer wieder dieselben Anwendungen parallel in bestimmter Weise in das Feld hinein konfiguriert werden müssen. Das Vorab-Mitladen bestimmter Konfigurationen kann auch dann sinnvoll sein, wenn sich diese Konfigurationen durch eine besonders einfache Geometrie auszeichnet, etwa weil sehr kleine Volumina des multidimensionalen Feldes rekonfigurierbarer Elemente davon überdeckt werden (Volumina nimmt hier auf das Volumen des multidimensionalen Feldes Bezug, bezeichnet also bei zweidimensionalen Felder rekonfigurierbarer Elemente die Fläche bzw. Flächengeometrie der für die Umkonfiguration verfügbaren rekonfigurierbaren Elemente etc.).
  • Es ist auch möglich und insbesondere bei der Abarbeitung komplexer Aufgabenstellungen, sei es durch die Abarbeitung besonders rechenintensiver Probleme, sei es im Multitasking, Multithreading oder bei anderen Formen der Parallelabarbeitung von Daten, auch bevorzugt, zu überprüfen, ob mehrere, insbesondere gleich priorisierte Elementgruppenanordnungen für unterschiedliche Aufgaben simultan durch geeignete Auswahl in das Feld hinein konfigurierbar sind. Dabei kann, abhängig von der Priorisierung einer bestimmten Aufgabe vorgesehen werden, dass die für die Abarbeitung einer vorgegebenen Aufgabe zur Verfügung gestellte Fläche oder Abarbeitungszeit größer oder kleiner ausfällt, etwa indem durch Aufbau von Sequenzern mit den Daten handhabenden Elementen die Größe einer Konfiguration unter Verlangsamung der Datenabarbeitung verringert wird.
  • Es kann auch erwünscht sein, dass zunächst eine erste Elementgruppenanordnung in das Feld hinein konfiguriert wird und begonnen wird, mit dieser Elementgruppenanordnung die Aufgabe abzuarbeiten, bis ein vorgegebenes Ereignis auftritt und dann unter zumindest partieller Rekonfiguration mit der Aufgabenabarbeitung in einer weiteren Elementgruppenanordnung fortgefahren wird. Hierbei kann etwa vorgesehen werden, dass zur Erzielung einer bevorzugten Geometrie von Konfigurationen auf dem multidimensionalen Feld, etwa streifenförmig hintereinander angeordneten Zellen für jede Aufgabe, zu festgelegten Taktzeiten, etwa alle tausend, zehntausend oder hunderttausend Takte, die Abarbeitung aller oder eines Teiles aller Konfigurationen unterbrochen wird, die Ergebnisse wie erforderlich zwischengespeichert werden, auch was nur in einer Konfiguration intern erforderliche Daten wie Schleifen-, Zählerstände usw. angeht, und dann eine Neukonfiguration mit entsprechenden, bevorzugten Geometrien vorgenommen wird, um so ein allmähliches Zerfasern von Konfigurationen zu vermeiden, was schon aufgrund des erhöhten Bedarfs an Busleitungen unerwünscht ist.
  • Alternativ und/oder zusätzlich ist es auch möglich, selbstfaltende Konfigurationen vorzusehen, wobei etwa zunächst mit der Abarbeitung einer Konfiguration über das gesamte Array begonnen wird, und sich dann, sobald zusätzliche Ressourcen durch eine andere Aufgabe angefordert werden, diese erste Konfiguration mehr oder minder selbsttätig zusammenzieht, etwa durch Sequenzerbildung mit einem Element, um Elemente für die neue Aufgabe freizugeben. Dieses Zusammenziehen kann durch Vorgabe neuer, Platz sparenderer Konfigurationen für ein und dieselbe Aufgabe erreicht werden, insbesondere dann, wenn diese Platz sparenderen Konfigurationen in bei den Daten handhabenden Elementen vorgesehenen Konfigurationsspeichern mit abgelegt werden. Auf die Anmeldung zur Wave-Rekonfiguration sei dabei nur beispielsweise hingewiesen. Es ergibt sich dann eine Situation, bei der Konfigurationen allmählich enger und enger zusammenrücken.
  • Die Auswahl einer vorgegebenen Elementgruppenanordnung, die in ein Feld hinein zu konfigurieren ist, kann, abgesehen von der verfügbaren Geometrie, auch von anderen Parametern abhängig gemacht werden. Hierzu zählt unter anderem die erzielbare Abarbeitungsgeschwindigkeit, die Priorität einer Aufgabe und/oder der Energieverbrauch, der zur Abarbeitung einer vorgegebenen Aufgabe in einer vorgegebenen Zeit erforderlich ist. Es sei darauf hingewiesen, dass mehrere Parameter gleichzeitig betrachtet werden können, sei es dadurch, dass zunächst anhand eines ersten Parameters wie des benötigten Feldvolumens als gleichwertig angesehene Konfigurationen durch Betrachten eines zweiten Parameters verworfen werden, sei es, indem, etwa mit Methoden der unscharfen Logik, mehrere Parameter gleichzeitig soweit wie möglich optimiert werden.
  • Die Erfindung wird nun im Folgenden nur beispielsweise anhand der Figuren erläutert, worin gezeigt ist durch
  • Fig. D1
    ein multidimensionales Feld Daten handhabender Elemente in teilweise zu rekonfigurierendem Zustand;
    Fig. D2
    Beispiele für unterschiedliche Konfigurationsgeometrien;
    Fig. D3
    ein teilweise zur Laufzeit umkonfigurierter Prozessor.
  • Nach Fig. D1 umfasst eine allgemein mit 1 bezeichnete Datenverarbeitungsvorrichtung 1 ein multidimensionales Feld rekonfigurierbarer Elemente 2 sowie einen Präprozessor 3, der Konfigurationen in das multidimensionale Feld 1 über geeignete Datenbusse 4 einspeist und Informationen über rekonfigurierbare Elemente aus dem multidimensionalen Feld 2 mehrere Elemente erhält sowie mit einem Speicher 5 mit langsamem Zugriff verbunden ist, in dem Konfigurationen für in dem multidimensionalen Feld 2 abzuarbeitende Aufgaben vorab abgelegt sind.
  • Der multidimensionale Prozessor 1 ist im vorliegenden Beispiel eine XPU-Architektur, die PAE als konfigurierbare Elemente aufweist und nach PACT02, 04, 08, 10, 13 aufgebaut ist. Er erhält Daten von Eingabe-/Ausgabe-Schnittstellen 6 in Echtzeit zur Abarbeitung, wobei nicht vorhersehbar ist, wie diese Daten eintreffen und/oder abzuarbeiten sind. Es können hierfür eine Tastatur, Bilder abrufende Kameras, A/D-Wandler usw. vorgesehen sein.
  • Das multidimensionale Feld 2 besteht, zur Vereinfachung der Veranschaulichung, obwohgl technologisch keinesfalls zwingend, vorliegend nur aus einer Reihe ausschließlich identischer datenhandhabender Elemente, zwischen denen geeignete Vernetzungen über Busse und dergleichen konfigurierbar sind. Aus Gründen der Anschaulichkeit wird vorliegend von unbegrenzten Busressourcen ausgegangen, obgleich rein praktisch die typische Anwendung auch solcher Ressourcen und deren Knappheit bei der Vorabbestimmung multipler Konfigurationsmöglichkeiten berücksichtigt wird. Die datenhandhabenden Elemente sind im vorliegenden Fall geeignet, sequenzartig die Befehle abzuarbeiten, wie dies per se bekannt ist, das heißt, es ist möglich, Sequenzer über einzelne Zellen oder Gruppen derer aufzubauen. Daß hierbei ein Zeitteilungsmultiplexing möglich ist, sei erwähnt. Dies erlaubt eine entsprechende Faltung mehrerer Operationen, dann dann bei großen Arrays bzw. mehr Platz auch ausgefaltet werden können.
  • Das multidimensionale Feld 2 ist laufzeitrekonfigurierbar, das heißt es ist möglich, einzelnen der datenhandhabenden Elemente oder Gruppen derer neue Aufgaben während der Laufzeit zuzuordnen, ohne den Betrieb der Gesamt-Anordnung oder anderer Elemente bzw. Gruppen derer insgesamt zu unterbrechen. Wie bevorzugt und per se bekannt sind den datenhandhabenden Elementen Konfigurationsspeicher lokal zugeordnet, genau so wie Register, nämlich Forward- und Backward-Register, Busleitungen, feingranulare Zustandsmaschinen zum Austausch von Triggersignalen untereinander und mit der Präprozessoreinheit 3 usw. Auf die Möglichkeit der Ausgestaltung der rekonfigurierbaren Elemente nach PCT-DE 97/02949 , PCT-DE 97/02998 , PCT-DE 98/00334 , PCT/DE 99/00504 , PCT/DE 99/00505 , PCT/DE 00/01869 usw. sei hingewiesen.
  • Der Präprozessor 3 ist dazu ausgebildet, Konfigurationen in das multidimensionale Feld hinein zu laden und zwar über Leitungen 4, wenn er aus dem multidimensionalen Feld die Meldung erhält, dass einzelne Elemente oder Gruppen derer rekonfigurierbar sind. Der Präprozessor 3 enthält einen lokalen Speicher (Cache) und ist mit einem weiteren Speicher 5 (Harddisk, RAM) verbunden, auf den langsamer zugegriffen werden kann und auf dem Konfigurationsdaten abgelegt sind. Geeignet ist etwa eine CT.
  • Es sei darauf hingewiesen, dass es nicht erforderlich ist, den Präprozessor 3 als externes Bauteil vorzusehen. Die gezeigte Darstellung wurde ausschließlich aus didaktischen Gründen gewählt. Er kann integriert sein mit dem multidimensionalen Feld 2 auf einem einzelnen Chip und/oder seine Funktion kann durch einzelne Daten handhabende Elemente 2 des Prozessorfeldes ausgeführt werden.
  • Über die Leitungen 4 werden Konfigurationsdaten und Konfigurationsanforderungen übertragen. Auf die Implementierung von Rdy/Ack-Protokollen, Vorab-Konfiguration von Elementen in e-lementennahen Speichern etc., die möglich, aber nicht zwingend ist, wird hingewiesen.
  • Im Speicher 5 sind nun eine Vielzahl von Konfigurationen für unterschiedliche Aufgaben und Kenndaten hierzu abgelegt. Dies wird für ein einfaches Beispiel mit Bezug auf Fig. 2 erläutert.
  • Nach Fig. D2 sind etliche Konfigurationen für zwei Aufgaben a) und b) abgelegt. Wie ersichtlich, sind für die Aufgabe a) insgesamt vier Konfigurationen abgelegt, die alle dieselbe Funktion ausführen, aber unterschiedliche Verbindungen der Zellen untereinander haben und sich insbesondere hinsichtlich ihrer äußeren geometrischen Gestalt unterscheiden, in der die Zellen angeordnet sind.
  • Wie ersichtlich, sind beispielsweise drei Konfigurationen vorabgelegt, in denen sieben datenhandhabende Elemente wie PAEs benötigt werden und eine Konfiguration, in der unter Ausnutzung der Sequenzereigenschaft der datenhandhabenden Elemente nur vier Elemente benötigt werden. Die geometrische Form der jeweiligen Konfiguration ist dabei wie durch die Zahlen in Klammern angedeutet, gleichfalls mitabgelegt. Dieser Kenndatensatz umfasst eine erste Ziffer, die angibt, wieviele Spalten Abstand die äußersten Zellen links und rechts voneinander haben; es folgen dann nach einem Komma die Anzahl der Elemente in einer Spalte, die benötigt werden. Sind in einer Spalte Reihen frei, d. h. nicht belegt, steht gleichfalls ein b in der Kennung. Ist dabei eine Spalte freigelassen, das heißt von der jeweiligen Konfiguration bis auf Busse nicht belegt, so steht hierfür ein b in der Konfiguration. Dies ist ersichtlich an den Konfigurationen I und II. Die Daten zu einer Spalte sind von jenen der nächsten Spalte durch Komma getrennt. Ähnliche Konfigurationsdaten sind auch für eine zweite Konfiguration abgelegt b).
  • Die Anordnung wird verwendet wie folgt:
    • Wenn im multidimensionalen Feld rekonfigurierbarer Elemente Ressourcen für die Rekonfiguration freigegeben sind, wie dies durch die "0" in Fig. D2 dargestellt ist, so lädt der Präprozessor 3 aus dem Speicher 5 zunächst die wenig umfangreichen und damit schnell zu ladenden Kennsätze zu den Konfigurationnen. Er bestimmt dann, welche Aufgabe schnell abzuarbeiten ist und welche Konfigurationen gemeinsam besonders gut in das Feld eingeladen werden können. Dies geschieht durch Vergleich der maximalen Spaltenbreite einer möglichen Konfiguration mit der tatsächlich verfügbaren Spaltenbreite. Zur Aufgabe a) können so Konfiguration III und IV verworfen werden, die zuviel Spalten benötigen. Aus den verbleibenden sind aufgrund der geometrischen Form die Konfigurationen I und II gleichfalls zu verwerfen. Es wird dann untersucht, welche Konfiguration von b) zu laden wäre. Hier sind per se alle drei Konfigurationen ladbar.
  • Nun wird untersucht, ob es eine Möglichkeit gibt, von den verbleibenden Konfigurationen zu den Aufgaben gleichzeitig zwei Konfigurationen in das Feld zu laden. Dazu werden die Konfigurationen in unterschiedlicher Weise aneinander gesetzt und es wird die benötigte maximale Spalten- und Reihenzahl mit der verfügbaren Maximalzahl verglichen. Es wird so festgestellt, daß sich eine optimale Ausnutzung der freigewordenen Elemente ergibt, wenn die Konfiguration Ib und die Konfiguration Ia unmittelbar übereinander angeordnet werden. Diese Konfigurationen werden dann in das Prozessorfeld geladen.
  • Daraufhin kann die Datenverarbeitung mit einer Konfigurationsanordnung wie in Fig. D3 gezeigt fortgesetzt werden. Es sei erwähnt, dass in Fällen, in denen unterschiedliche Daten handhabende Elemente vorgesehen werden, die entsprechende Information gleichfalls im Kenndatensatz abgelegt werden kann.
  • Wie vorstehend ersichtlich, ist die Art und Weise, wie ein gegebenes Prozessorfeld für eine vorgegebene Weise konfiguriert werden muß, nicht eindeutig. Dies gilt insbesondere dann, wenn es sich um komplexe Felder handelt, bei denen etwa zumindest zum Teil in den Leitungen Register vorgesehen sind und weiter mit diesen insbesondere auch Additionen und/oder Vergleiche von Daten durchzuführen sind, wie dies auch in arithmetische Logikeinheiten (ALUs) aufweisenden Logikzellen des Feldes der Fall sein kann. Oft ist es auch möglich und/oder nötig, etwa bei Inbetriebnahme, aus vielen Konfigurationen mehrere mögliche zu wählen.
  • Es ist bereits vorgeschlagen worden, eine Konfiguration aus mehreren per se verwendbaren auszuwählen anhand der momentanen Konfigurierbarkeit unter geometrischen Aspekten, der Ressourcenverfügbarkeit und/oder auszuwählen aufgrund von Geschwindigkeitsaspekten. Dies kann die Auswahl erleichtern, stellt aber oftmals nur unzureichende Kriterien dar. Es ist wünschenswert, die Konfigurationsauswahl weiter verbessern zu können. Es ist weiter oftmals möglich, eine bestimmte Datenverarbeitungsaufgabe selbst auf unterschiedliche Weise durchzuführen. So ist etwa eine Reihe von Algorithmen bekannt, die es erlauben, einen Satz Daten auf unterschiedliche Weise zu sortieren. Auch hier ist es erforderlich, zwischen unterschiedlichen Algorithmen, die prinzipiell geeignet sind, eine bestimmte Datenverarbeitungsaufgabe zu bewältigen, aufgrund von objektivierbaren Kriterien zu wählen. Daß diese Wahl zur Laufzeit und/oder davor erfolgen kann, sei erwähnt. Insgesamt ist es somit wünschenswert, Auswahlmöglichkeiten bei der Datenverarbeitung mit konfigurierbaren multidimensionalen Prozessorfeldern zu verbessern, etwa um bei festgespeicherten Konfigurationen sicherzustellen, daß eine bereits anwendungszweckoptimierte Auswahl getroffen wurde.
  • Die vorliegende Erfindung schlägt somit in einem ersten Grundgedanken ein Verfahren zur Auswahl eines aus einer Vielzahl von Wegen zur Erzielung eines Datenverarbeitungsergebnisses bei der Datenverarbeitung unter zumindest möglicher Verwendung multidimensionaler Felder konfigurierbarer Datenhandhabungselemente vor, bei welchem vorgesehen ist, daß den Datenhandhabungselementen konfigurationsabhängig verbrauchsbezogene kennzeichnende Größen zugeordnet werden und eine Wegauswahl anhand der Zuordnung erfolgt.
  • Ein weiterer Grundgedanke kann somit in der Erkenntnis gesehen werden, daß bestimmten Datenverarbeitungswegen typische Leistungs- bzw. Energieaufnahmewerte zugeordnet werden können, um dann eine Wegauswahl unter Berücksichtigung derselben vorzunehmen. Als Erzielung eines Datenverarbeitungsergebnisses wird auch eine bestimmte Art und Weise einer Zwischenergebnisberechnung und/oder einer Datenhandhabung etc. betrachtet. Durch die Zuordnung verbrauchskennzeichnender Größen wird also eine wesentliche Ojektivierung der Wegauswahl möglich.
  • Die Auswahl eines Weges kann beispielsweise die Wahl eines gegebenen Algorithmus aus einer Vielzahl unterschiedlicher Algorithmen umfassen, sei es für Aufgaben wie das Sortieren von Daten, bestimmte mathematische Transformationen oder dergleichen. Liegen in einer Programmmodul-Bibliothek etwa mehrere Sortieralgorithmen, Algorithmen zur Bestimmung einer Fourier-Transformierten oder dergleichen vor, so kann z. B. zu jeder eine verbrauchskennzeichnende Größe ermittelt werden und es wird dann unter Berücksichtigung derselben eine Auswahl vorgenommen. So wird es möglich, Algorithmen zu wählen, die beispielsweise einen besonders niedrigen Energieverbrauch besitzen. Dies kann für mobile Anwendungen wie bei Laptops, Funktelefonen und dergleichen sinnvoll sein, bietet aber auch in Bereichen Vorteile, bei denen sehr rechenintensive Aufgaben zu bewältigen sind, etwa in Servern, Basestations usw., wo die in einer Verarbeitungseinheit erzeugte Leistung weggekühlt und/oder abgeführt werden muß. Durch die Erfindung können so Systemgesamtkosten minimiert werden. Auch kann etwa ein Place&Route-Algorithmus die Optimierung ausnutzen, etwa zur Erzielung niederenergetischer Anordnungen. Dies ist besonders bevorzugt und wird als für sich erfinderisch angesehen.
  • Es ist weiter möglich, für ein und denselben Algorithmus eine Vielzahl unterschiedlicher Konfigurationen vorzusehen, etwa unter Berücksichtigung verschiedener, simultan und/oder sequenziell auf das multidimensionale Feld zu konfigurierender Teilaufgaben, und dann eine Auswahl aus diesen unter Auswertung der jeweils zugeordneten Größe vorzunehmen.
  • Weiter ist es möglich, unter Anwendung des erfindungsgemäßen Verfahrens darüber zu befinden, ob eine gegebene Aufgabe der Datenverarbeitung, bzw. eine Teilaufgabe, dem betrachteten multidimensionalen Feld konfigurierbarer Datenhandhabungselemente und/oder einem anderen Element zur Datenverarbeitung außerhalb des multidimensionalen Feldes zugeordnet werden soll; so kann etwa darüber entschieden werden, ob dann, wenn das multidimensionale Feld als Koprozessor dient, eine bestimmte Teilaufgabe besser auf einer rein sequenziell arbeitenden CPU oder dem rekonfigurierbaren, typisch als Datenflußprozessor oder dergleichen arbeitenden multidimensionalen Feld abgearbeitet werden soll. Es ist auch möglich, über das Erfordernis oder die Sinnhaftigkeit dedizierter Schaltkreise wie ASICs für bestimmte Aufgaben zu befinden.
  • Typisch wird es sich bei dem Feld konfigurierbarer Datenhandhabungselemente um ein zweidimensionales Feld handeln. Es sei erwähnt, daß die Erfindung für Felder wie FPGAs, XPP-Prozessoren usw. anwendbar ist. Es ist besonders bevorzugt für zur Laufzeit konfigurierbare, insbesondere partiell zur Laufzeit ohne Störung nicht umzukonfigurierende Elemente teil-rekonfigurierbarer Prozessorfelder.
  • In typischen Anwendungen wie bei XPP-Feldern werden als zu berücksichtigende Datenhandhabungselemente insbesondere zumindest einige, bevorzugt alle der Elemente Busse, Register, ALUs, RAMs, I/O-Ports sowie konfigurierende Einheiten (CT's) erfaßt. Es sei darauf hingewiesen, daß von bestimmten dieser Teile nur eine abgeschätzte oder partielle Verbrauchsberücksichtigung erforderlich ist; so brauchen etwa bei Bussen lediglich bestimmte Treiberstufen und dergleichen berücksichtigt werden. Weiter kann es erforderlich sein, auch Taktbeschaltungen mit zu erfassen, sei es, weil in bestimmten Datenverarbeitungswegen eine Voll- oder Teilabschaltung eines Taktzweiges möglich ist, sei es, weil bestimmte Schaltungsbereiche mit einem unterschiedlichen Takt versorgt werden können oder müssen.
  • Es ist bevorzugt, wenn der kennzeichnende Wert nur grob abgeschätzt wird, etwa dahingehend, daß festgestellt wird, ob ein bestimmtes Element momentan verwendet wird und/oder konfiguriert ist, oder ob es stattdessen nicht verwendet wird und gegebenenfalls sogar von einer Spannungsversorgung bis auf einen Wake-up-Schaltkreis und/oder von einer Taktversorgung zumindest weitgehend abgeklemmt ist. Es ist also nicht erforderlich, eine absolut exakte Verbrauchskennzeichnung vorzunehmen, etwa unter Festlegung des Verbrauchs der spezifischen algebraischen Operation, die einer jeweiligen arithmetisch-logischen Einheit aktuell und/oder dauerhaft zugeordnet wird. Vielmehr kann es ausreichend sein, die verbrauchskennzeichnende Größe nur dahingehend zu bestimmen, ob und wie weit tatsächlich das jeweilige Element im Augenblick verwendet wird. Ausnahmen hiervon sind möglich. Eine Ausnahme kann insbesondere gemacht werden für Operationen wie Multiplikationen, bei denen sehr große Schaltkreisflächen mit Leistung versorgt werden müssen. In einem solchen Fall kann eine weitere Detaillierung vorgesehen werden.
  • Es ist möglich und bevorzugt, jedem unterschiedlichen Datenhandhabungselement unterschiedliche Kennzahlen, wie strom- und/oder leistungsaufnahmebezogener Größen als verbrauchskennzeichnende Größen zuzuordnen. Dieses kann gegebenenfalls in taktabhängiger Weise (Leistungsaufnahme pro Taktfrequenz) geschehen. Weiter ist es möglich, eine Auswahl unter Berücksichtigung eines Summenwertes vorzunehmen, also über die Betrachtung des Gesamtverbrauchs oder abgeschätzten Gesamtverbrauchs eines betrachteten Weges zu entscheiden.
  • Die Auswahl wird typisch nicht alleine unter Berücksichtigung der verbrauchskennzeichnenden Größen erfolgen, sondern kann andere Parameter miterfassen, etwa eine erforderliche Ausführungszeit, erforderliche Ressourcen auf einem multidimensionalen Feld, eine aktuelle oder erwartete Prozessorauslastung durch andere Aufgaben und/oder eine aktuell gewünschte beziehungsweise erwartete oder zulässige Leistungsaufnahme. Die Kennzahlen sind durch Meßwerte und/oder Hardware- bzw. Syntheseanalysen erhältlich und insbesondere in Look-Up-Tabellen hinterlegbar.
  • Die Auswahl des jeweiligen Weges kann vor der eigentlichen Datenverarbeitung erfolgen, etwa bei der Festlegung von später zu ladenden Konfigurationen unter mehreren, theoretisch implementierbaren Konfigurationen. In einem solchen Fall ist es besonders ist bevorzugt, wenn die kennzeichnende Größe während der Simulation der Datenverarbeitungsfunktionen mit ermittelt wird. Alternativ kann vorgesehen werden, daß die Auswahl unter verschiedenen möglichen Wegen während der Laufzeit erfolgt. In einem solchen Fall werden etwa mehrere mögliche Algorithmen, z. B. um Daten zu sortieren, bereitgestellt, es wird dann abgefragt, wie viele einzelne Daten zu sortieren sind und wie gegebenenfalls der Ordnungsgrad dieser Daten ist und es wird erst danach eine Auswahl unter verschiedenen, vorher bestimmten Algorithmen anhand der ihnen zugeordneten parametrierten Verbrauchskennzeichnungsgrößen wie der Gesamtleistungsaufnahme usw. vorgenommen. Analog kann auch eine Konfiguration zur Laufzeit abhängig von z. B. einer momentan möglichen oder gewünschten Stromaufnahme erfolgen.
  • Dieser Aspekt der Erfindung wird im folgenden nur beispielsweise beschrieben, ohne daß Bezug genommen wird auf eine
    Figur.
  • Es wird zunächst eine gewünschte Art der Daten-Bearbeitung festgelegt, die auf dem Prozessorfeld durchgeführt werden soll. Beispielsweise wird ein Viterbi-Algorithmus programmiert und eine für das betrachtete Prozessorfeld geeignete Konfiguration bestimmt. Es wird dann ermittelt, welche Einheiten auf dem Prozessorfeld verwendet werden und über wie viele Takte dies geschieht. Bei der Betrachtung der verwendeten Elemente werden in einem Beispiel berücksichtigt ALUs, Vorwärts- und Rückwärts-Register (FREG und BREG) sowie Schalter in Bussen (LSW und RSW). Es wird dann der gesamte Energieverbrauch je Elementart bestimmt und anschließend der gesamte Energieverbrauch aller unterschiedlichen Einheiten. Die Energieverbrauchswerte für ein einzelnes Element je Takt sind ihrerseits abgeschätzt aus Simulationen der Hardwareschaltungen bei der betrachteten Architektur und sind für das Verfahren der Erfindung tabellarisch hinterlegt.
  • In dem betrachteten praktischen Beispiel sind für die Implementierung eines gegebenen Viterbi-Algorithmus 10 ALUs, 17 Vorwärtsregister, 23 Rückwärtsregister sowie 30 Busschalter (LSW) in einer und 35 Schalter in der entgegengesetzten Richtung (RSW) erforderlich. Bei einem Energieverbrauch von 4,85 pW/Hz je ALU, 7,01 pW/Hz pro FREG, 7,02 pW/Hz je BREG sowie 2,03 pW/Hz je Busschalter ergibt sich folgende Tabelle:
    Number of cycles: 1582
    Energy consumption
    Einzelkennzahl Gesamtkennzahl
    ALU: 10,00 x 4,85 = 48,50
    FREG: 17,00 x 7,01 = 119,17
    BREG: 23,00 x 7,02 = 161,46
    LSW: 30,00 x 2,03 = 60,90
    RSW: 35,00 x 2,03 = 71,05
    Total: 461,08 pW/Hz
  • Es kann nun der Implementierung der Viterbi-Transformation ein Gesamtleistungsverbrauch von 461,08 pW/Hz zugeordnet werden und dieser so erhaltene Wert verglichen werden mit Werten, die bei anderen Algorithmen und/oder Konfigurationen erhalten werden und/oder durch dedizierte Schaltkreise wie ASICs zu erhalten sind.
  • Es sei nun erwähnt, daß die Auswahl einer aus einer Vielzahl von Konfigurationen, auch dann sinnvoll sein kann, wenn das Datenverarbeitungslogikzellen- und/oder, hier gleichbedeutend, Mischfeld aus analogen und/oder digitalen Zellen (wie beschrieben) an eine insbesondere sequentielle CPU angekoppelt ist.

Claims (16)

  1. Verfahren zur Datenverarbeitung
    unter Verwendung eines multidimensionalen Feldes
    konfigurierbarer Datenhandhabungselemente,
    bei welchem
    eine Vielzahl von
    Wegen
    zur Erzielung eines Datenverarbeitungsergebnisses bei der Datenverarbeitung
    bestimmt wird,
    und zwar so,
    dass
    gemäß zumindest einem der möglichen Wege Daten
    unter Verwendung des multidimensionalen Feldes konfigurierbarer Datenhandhabungselemente
    verarbeitet werden sollen
    und
    dass
    Unterschiede für die Wege
    hinsichtlich kennzeichnender Größen
    bestehen,
    eine Auswahl unter den Wegen getroffen wird,
    und
    eine Datenverarbeitung entsprechend des ausgewählten Weges erfolgt,
    wobei konfigurationsabhängig
    auf die Leistungsaufnahme
    der Datenhandhabungselemente
    bezogene Größen
    bestimmt
    und
    den Wegen
    diesbezügliche Unterschiede kennzeichnende Größen
    zugeordnet werden
    dadurch gekennzeichnet, dass
    eine Wegauswahl
    unter Bewertung der zugeordneten Größen
    zur Laufzeit
    erfolgt,
    entsprechend
    der Bewertung zur Laufzeit eine Konfiguration für das Feld konfigurierbarer Elemente vorgesehen wird
    und
    Daten entsprechend dem ausgewählten Weg verarbeitet werden.
  2. Verfahren nach dem vorhergehenden Anspruch,
    dadurch gekennzeichnet, dass
    die Wegauswahl
    zur Laufzeit
    weiter
    unter Berücksichtigung von zumindest einer der Größen
    erforderliche Ausführungszeit,
    erforderliche Ressourcen,
    aktuelle Prozessorauslastung,
    erwartete zukünftige Prozessorauslastung aktuelle
    gewünschte oder
    mögliche
    Leistungsaufnahme
    erfolgt.
  3. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass Datenverarbeitungswege bestimmt werden, bei denen Unterschiede dahingehend bestehen, dass in bestimmten Datenverarbeitungswegen eine Voll- oder Teilabschaltung eines Taktzweiges vorgesehen ist und zur Laufzeit unter diesen Datenverarbeitungswegen ausgewählt wird.
  4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass eine Konfiguration ausgewählt wird, bei welcher bestimmte Schaltungsbereiche mit einem unterschiedlichen Takt versorgt werden.
  5. Verfahren nach einem der beiden vorhergehenden Ansprüche, dadurch gekennzeichnet, dass das multidimensionale Datenverarbeitungsfeld weiter einen Cache aufweist, der sliceweise ausgestaltet ist und Cache-Bereiche sliceweise durch einen von
    Heruntertaktung,
    Taktabtrennung oder
    Leistungsabtrennung
    abgetrennt sind.
  6. Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass die Vielzahl von Wegen unterschiedliche Algorithmen implementieren.
  7. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Vielzahl von Wegen unterschiedliche Konfigurationen implementieren.
  8. Verfahren nach dem vorhergehenden unabhängigen Anspruch oder einem Unteranspruch hierzu, dadurch gekennzeichnet, dass über die Zuordnung einer gegebenen Datenverarbeitungsaufgabe und/oder -teilaufgabe an ein multidimensionales Feld konfigurierbarer Datenhandhabungselemente und/oder einer anderen Datenverarbeitungsarchitektur, insbesondere an ein ASIC, und/oder an eine rein sequenziell arbeitende CPU bei der Wegauswahl entschieden wird.
  9. Verfahren nach dem vorhergehenden unabhängigen Anspruch oder einem Unteranspruch hierzu, dadurch gekennzeichnet, dass ein zweidimensionales Feld konfigurierbarer Datenhandhabungselemente betrachtet wird.
  10. Verfahren nach dem vorhergehenden unabhängigen Anspruch oder einem Unteranspruch hierzu, dadurch gekennzeichnet, dass eine Auswahl aus einem zur Laufzeit konfigurierbaren, insbesondere störungsfrei partiell rekonfigurierbaren Prozessorfeld vorgenommen wird.
  11. Verfahren nach dem vorhergehenden unabhängigen Anspruch oder einem Unteranspruch hierzu , dadurch gekennzeichnet, dass als konfigurierbare Datenhandhabungselemente zumindest einige, bevorzugt alle der Elemente Busse, Register, ALUs, RAMs und/oder andere grobgranulare Datenhandhabungselemente betrachtet werden.
  12. Verfahren nach dem vorhergehenden unabhängigen Anspruch oder einem Unteranspruch hierzu, dadurch gekennzeichnet, dass der kennzeichnende Wert unabhängig von der tatsächlichen aktuell zugeordneten Aufgabe nur davon abhängig gewählt wird, ob das jeweilige Datenhandhabungselement überhaupt verwendet wird oder nicht.
  13. Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass jeder Konfiguration eine eigene Kennzahl bei der Verwendung zugeordnet wird.
  14. Verfahren nach dem vorhergehenden unabhängigen Anspruch oder einem Unteranspruch hierzu, dadurch gekennzeichnet, dass eine strom-, arbeits- und/oder leistungsbezogene Größe als verbrauchskennzeichnende Größe zugeordnet wird.
  15. Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass eine Auswahl unter Berücksichtigung eines Summenwertes verbrauchskennzeichnender Größen erfolgt.
  16. Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass eine Auswahl vor der eigentlichen Datenverarbeitung erfolgt.
EP03776856.1A 2002-08-07 2003-07-23 Verfahren und vorrichtung zur datenverarbeitung Expired - Lifetime EP1537501B1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP03776856.1A EP1537501B1 (de) 2002-08-07 2003-07-23 Verfahren und vorrichtung zur datenverarbeitung

Applications Claiming Priority (60)

Application Number Priority Date Filing Date Title
DE10236271 2002-08-07
DE10236269 2002-08-07
DE10236269 2002-08-07
DE10236272 2002-08-07
DE10236271 2002-08-07
DE10236272 2002-08-07
PCT/EP2002/010065 WO2003017095A2 (de) 2001-08-16 2002-08-16 Verfahren zum übersetzen von programmen für rekonfigurierbare architekturen
WOPCT/EP02/10065 2002-08-16
DE10238173 2002-08-21
DE10238173A DE10238173A1 (de) 2002-08-07 2002-08-21 Rekonfigurationsdatenladeverfahren
DE10238172 2002-08-21
DE10238174 2002-08-21
DE10238172A DE10238172A1 (de) 2002-08-07 2002-08-21 Verfahren und Vorrichtung zur Datenverarbeitung
DE10238174A DE10238174A1 (de) 2002-08-07 2002-08-21 Verfahren und Vorrichtung zur Datenverarbeitung
DE10240000A DE10240000A1 (de) 2002-08-27 2002-08-27 Busssysteme und Rekonfigurationsverfahren
DE10240000 2002-08-27
DE10240022 2002-08-27
DE10240022 2002-08-27
PCT/DE2002/003278 WO2003023616A2 (de) 2001-09-03 2002-09-03 Verfahren zum debuggen rekonfigurierbarer architekturen
WOPCT/DE02/03278 2002-09-03
DE10241812 2002-09-06
DE10241812A DE10241812A1 (de) 2002-09-06 2002-09-06 Rekonfigurierbare Sequenzerstruktur
PCT/EP2002/010084 WO2003025770A2 (de) 2001-09-07 2002-09-09 Rekonfigurierbares system
WOPCT/EP02/10084 2002-09-09
DE10243322 2002-09-18
WOPCT/EP02/10479 2002-09-18
PCT/EP2002/010479 WO2003025781A2 (de) 2001-09-19 2002-09-18 Verfahren zur konfiguration der verbindung zwischen datenverarbeitungszellen
EP0210464 2002-09-18
WOPCT/EP02/10464 2002-09-18
DE2002143322 DE10243322B4 (de) 2002-09-18 2002-09-18 Analoge rekonfigurierbare Datenverarbeitungseinrichtung
EP0210536 2002-09-19
PCT/EP2002/010572 WO2003036507A2 (de) 2001-09-19 2002-09-19 Rekonfigurierbare elemente
WOPCT/EP02/10572 2002-09-19
WOPCT/EP02/10536 2002-09-19
EP02022692 2002-10-10
EP02027277 2002-12-06
EP02027277 2002-12-06
DE10300380 2003-01-07
DE10300380 2003-01-07
DE300152Q 2003-01-20
PCT/DE2003/000152 WO2003060747A2 (de) 2002-01-19 2003-01-20 Reconfigurierbarer prozessor
WOPCT/EP03/00624 2003-01-20
PCT/EP2003/000624 WO2003071418A2 (de) 2002-01-18 2003-01-20 Übersetzungsverfahren
DE300489Q 2003-02-18
PCT/DE2003/000489 WO2003071432A2 (de) 2002-02-18 2003-02-18 Bussysteme und rekonfigurationsverfahren
DE2003110195 DE10310195A1 (de) 2003-03-06 2003-03-06 Datenverarbeitungsergebniserzielungswegoptimierungsverfahren
DE10310195 2003-03-06
DE300942Q 2003-03-21
PCT/DE2003/000942 WO2003081454A2 (de) 2002-03-21 2003-03-21 Verfahren und vorrichtung zur datenverarbeitung
DE10361529 2003-04-04
DE10361529 2003-04-04
EP02022692 2003-04-30
DE10321834 2003-05-15
DE10321834 2003-05-15
EP03013694 2003-06-17
EP03013694 2003-06-17
EP03015015 2003-07-02
EP03015015 2003-07-02
PCT/EP2003/008081 WO2004021176A2 (de) 2002-08-07 2003-07-23 Verfahren und vorrichtung zur datenverarbeitung
EP03776856.1A EP1537501B1 (de) 2002-08-07 2003-07-23 Verfahren und vorrichtung zur datenverarbeitung

Publications (2)

Publication Number Publication Date
EP1537501A2 EP1537501A2 (de) 2005-06-08
EP1537501B1 true EP1537501B1 (de) 2015-03-11

Family

ID=34528557

Family Applications (1)

Application Number Title Priority Date Filing Date
EP03776856.1A Expired - Lifetime EP1537501B1 (de) 2002-08-07 2003-07-23 Verfahren und vorrichtung zur datenverarbeitung

Country Status (1)

Country Link
EP (1) EP1537501B1 (de)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SNIDER G ED - ASSOCIATION FOR COMPUTING MACHINERY: "PERFORMANCE-CONSTRAINED PIPELINING OF SOFTWARE LOOPS ONTO RECONFIGURABLE HARDWARE", FPGA 2002.10TH.ACM INTERNATIONAL SYMPOSIUM ON FIELD - PROGRAMMABLE GATE ARRAYS. MONTEREY, CA, FEB. 24 - 26, 2002; [ACM/SIGDA INTERNATIONAL SYMPOSIUM ON FIELD PROGRAMMABLE GATE ARRAYS], NEW YORK, NY : ACM, US, 24 February 2002 (2002-02-24), pages 177 - 186, XP001504599, ISBN: 978-1-58113-452-0, DOI: 10.1145/503048.503075 *

Also Published As

Publication number Publication date
EP1537501A2 (de) 2005-06-08

Similar Documents

Publication Publication Date Title
WO2004021176A2 (de) Verfahren und vorrichtung zur datenverarbeitung
DE4416881C2 (de) Verfahren zum Betrieb einer Datenverarbeitungseinrichtung
EP1402382B1 (de) Verfahren zur bearbeitung von daten
EP1057117B1 (de) VERFAHREN ZUM HIERARCHISCHEN CACHEN VON KONFIGURATIONSDATEN VON DATENFLUSSPROZESSOREN UND BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALER PROGRAMMIERBARER ZELLSTRUKTUR (FPGAs, DPGAs, o.dgl.)
EP0948842B1 (de) VERFAHREN ZUM SELBSTÄNDIGEN DYNAMISCHEN UMLADEN VON DATENFLUSSPROZESSOREN (DFPs) SOWIE BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN (FPGAs, DPGAs, o.dgl.)
DE69637399T2 (de) Grobkörnig strukturierte integrierte Halbleiterschaltung mit Nachschlagtabellen
EP1228440B1 (de) Sequenz-partitionierung auf zellstrukturen
DE69827589T2 (de) Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen
EP0875031B1 (de) Prozessor zur bildverarbeitung
DE102021121732A1 (de) Vektorprozessorarchitekturen
WO2004038599A1 (de) Rekonfigurierbare sequenzerstruktur
EP1451040B1 (de) Steuervorrichtung
DE19722365A1 (de) Rekonfigurierbares Rechenbauelement
EP0308660A2 (de) Vorrichtung zur Herstellung einer testkompatiblen, weitgehend fehlertoleranten Konfiguration von redundant implementierten systolischen VLSI-Systemen
WO2005036750A1 (de) Konfigurierbare logikschaltungsanordnung
DE69327504T2 (de) Datenprozessor mit Operationseinheiten, die gemeinsam Gruppen von Registerspeichern benutzen
WO2002071196A2 (de) Verfahren und vorrichtung zu datenbe- und/oder verarbeitung
EP0657044B1 (de) Verfahren zum betrieb eines rechnersystems mit mindestens einem mikroprozessor und mindestens einem coprozessor
EP1537501B1 (de) Verfahren und vorrichtung zur datenverarbeitung
DE60008689T2 (de) Arithmetische einheit mit, und verfahren zur das nach wahl verspäten von einem multiplikationsresultat
DE10238173A1 (de) Rekonfigurationsdatenladeverfahren
DE69726403T2 (de) Eliminierung des ''read crossbar'' in einem vliw-prozessor
DE4447706B4 (de) Partiell zur Laufzeit rekonfigurierbarer Datenflussprozessor
DE4447707B4 (de) Videointerface mit zur Laufzeit rekonfigurierbarer Schaltlogik
EP1348257B1 (de) Zellenanordnung mit segmentierter zwischenzellstruktur

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20050307

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR

AX Request for extension of the european patent

Extension state: AL LT LV MK

DAX Request for extension of the european patent (deleted)
RIN1 Information on inventor provided before grant (corrected)

Inventor name: VORBACH, MARTIN

Inventor name: NUECKEL, ARMIN

Inventor name: MAY, FRANK

17Q First examination report despatched

Effective date: 20070824

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: KRASS, MAREN

Owner name: RICHTER, THOMAS

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: PACT XPP TECHNOLOGIES AG

GRAP Despatch of communication of intention to grant a patent

Free format text: ORIGINAL CODE: EPIDOSNIGR1

INTG Intention to grant announced

Effective date: 20140919

111L Licence recorded

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR

Name of requester: XILINX, INC., US

Effective date: 20141010

GRAS Grant fee paid

Free format text: ORIGINAL CODE: EPIDOSNIGR3

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

111L Licence recorded

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR

Name of requester: XILINX, INC., US

Effective date: 20141010

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LI LU MC NL PT RO SE SI SK TR

REG Reference to a national code

Ref country code: GB

Ref legal event code: FG4D

Free format text: NOT ENGLISH

REG Reference to a national code

Ref country code: CH

Ref legal event code: EP

Ref country code: CH

Ref legal event code: PK

Free format text: ERGAENZUNG LIZENZEINTRAG: NICHT AUSSCHLIESSLICHE LIZENZ

REG Reference to a national code

Ref country code: IE

Ref legal event code: FG4D

Free format text: LANGUAGE OF EP DOCUMENT: GERMAN

REG Reference to a national code

Ref country code: AT

Ref legal event code: REF

Ref document number: 715674

Country of ref document: AT

Kind code of ref document: T

Effective date: 20150415

REG Reference to a national code

Ref country code: DE

Ref legal event code: R096

Ref document number: 50315224

Country of ref document: DE

Effective date: 20150423

REG Reference to a national code

Ref country code: NL

Ref legal event code: VDEP

Effective date: 20150311

REG Reference to a national code

Ref country code: NL

Ref legal event code: VDEP

Effective date: 20150311

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: ES

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150311

Ref country code: FI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150311

Ref country code: SE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150311

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150612

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: NL

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150311

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150311

Ref country code: CZ

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150311

Ref country code: RO

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150311

Ref country code: EE

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150311

Ref country code: PT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150713

REG Reference to a national code

Ref country code: DE

Ref legal event code: R097

Ref document number: 50315224

Country of ref document: DE

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IT

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150311

PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DK

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150311

REG Reference to a national code

Ref country code: DE

Ref legal event code: R119

Ref document number: 50315224

Country of ref document: DE

26N No opposition filed

Effective date: 20151214

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: MC

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150311

Ref country code: SI

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150311

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 20150723

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150723

REG Reference to a national code

Ref country code: IE

Ref legal event code: MM4A

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20160202

Ref country code: CH

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20150731

Ref country code: LI

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20150731

Ref country code: GB

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20150723

REG Reference to a national code

Ref country code: FR

Ref legal event code: ST

Effective date: 20160331

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FR

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20150731

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20150723

REG Reference to a national code

Ref country code: AT

Ref legal event code: MM01

Ref document number: 715674

Country of ref document: AT

Kind code of ref document: T

Effective date: 20150723

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: AT

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20150723

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BG

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150311

Ref country code: HU

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO

Effective date: 20030723

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: CY

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150311

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20150731

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: TR

Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT

Effective date: 20150311