EP1537501B1 - Verfahren und vorrichtung zur datenverarbeitung - Google Patents
Verfahren und vorrichtung zur datenverarbeitung Download PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 48
- 238000000034 method Methods 0.000 title claims description 23
- 238000004422 calculation algorithm Methods 0.000 claims description 16
- 230000001419 dependent effect Effects 0.000 claims description 10
- 238000000926 separation method Methods 0.000 claims 2
- 230000009849 deactivation Effects 0.000 claims 1
- 230000015654 memory Effects 0.000 description 14
- 238000005265 energy consumption Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000003491 array Methods 0.000 description 4
- 238000013519 translation Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 241001136792 Alle Species 0.000 description 1
- 241000122205 Chamaeleonidae Species 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000013215 result calculation Methods 0.000 description 1
- 238000010972 statistical evaluation Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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 consumptionEinzelkennzahl 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)
- 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. - 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. - 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.
- 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.
- 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. - Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass die Vielzahl von Wegen unterschiedliche Algorithmen implementieren.
- Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Vielzahl von Wegen unterschiedliche Konfigurationen implementieren.
- 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.
- Verfahren nach dem vorhergehenden unabhängigen Anspruch oder einem Unteranspruch hierzu, dadurch gekennzeichnet, dass ein zweidimensionales Feld konfigurierbarer Datenhandhabungselemente betrachtet wird.
- 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.
- 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.
- 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.
- Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass jeder Konfiguration eine eigene Kennzahl bei der Verwendung zugeordnet wird.
- 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.
- Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass eine Auswahl unter Berücksichtigung eines Summenwertes verbrauchskennzeichnender Größen erfolgt.
- Verfahren nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, dass eine Auswahl vor der eigentlichen Datenverarbeitung erfolgt.
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) |
-
2003
- 2003-07-23 EP EP03776856.1A patent/EP1537501B1/de not_active Expired - Lifetime
Non-Patent Citations (1)
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 |