WO2003025770A2 - Reconfigurable system - Google Patents

Reconfigurable system Download PDF

Info

Publication number
WO2003025770A2
WO2003025770A2 PCT/EP2002/010084 EP0210084W WO03025770A2 WO 2003025770 A2 WO2003025770 A2 WO 2003025770A2 EP 0210084 W EP0210084 W EP 0210084W WO 03025770 A2 WO03025770 A2 WO 03025770A2
Authority
WO
WIPO (PCT)
Prior art keywords
vpu
data processing
cpu
processor
data
Prior art date
Application number
PCT/EP2002/010084
Other languages
German (de)
French (fr)
Other versions
WO2003025770A3 (en
Inventor
Martin Vorbach
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
Application filed by Pact Xpp Technologies Ag filed Critical Pact Xpp Technologies Ag
Priority to EP02779326A priority Critical patent/EP1449109A2/en
Priority to AU2002342668A priority patent/AU2002342668A1/en
Priority to US10/487,681 priority patent/US7577822B2/en
Priority to PCT/EP2002/010479 priority patent/WO2003025781A2/en
Priority to AU2002338729A priority patent/AU2002338729A1/en
Priority to US10/490,081 priority patent/US8429385B2/en
Priority to EP02791644A priority patent/EP1472616B8/en
Priority to JP2003538928A priority patent/JP4456864B2/en
Priority to AU2002357982A priority patent/AU2002357982A1/en
Priority to AT02791644T priority patent/ATE533111T1/en
Priority to PCT/EP2002/010572 priority patent/WO2003036507A2/en
Publication of WO2003025770A2 publication Critical patent/WO2003025770A2/en
Priority to AU2003286131A priority patent/AU2003286131A1/en
Priority to EP03776856.1A priority patent/EP1537501B1/en
Priority to PCT/EP2003/008081 priority patent/WO2004021176A2/en
Priority to JP2005506110A priority patent/JP2005535055A/en
Priority to EP03784053A priority patent/EP1535190B1/en
Priority to PCT/EP2003/008080 priority patent/WO2004015568A2/en
Priority to AU2003260323A priority patent/AU2003260323A1/en
Priority to US10/523,764 priority patent/US8156284B2/en
Publication of WO2003025770A3 publication Critical patent/WO2003025770A3/en
Priority to US12/247,076 priority patent/US8209653B2/en
Priority to US12/570,943 priority patent/US8914590B2/en
Priority to US12/621,860 priority patent/US8281265B2/en
Priority to JP2009271120A priority patent/JP2010079923A/en
Priority to US12/947,167 priority patent/US20110238948A1/en
Priority to US13/023,796 priority patent/US8686475B2/en
Priority to US14/923,702 priority patent/US10579584B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture

Definitions

  • the present invention relates to what is claimed in the preamble.
  • the present invention thus addresses the question of how a reconfigurable processor can be connected to a standard processor in a particularly favorable manner.
  • a reconfigurable architecture is understood to mean modules (VPU) with configurable function and / or networking, in particular integrated modules with a plurality of arithmetic and / or logical and / or logical and / or analog and / or storing and / or internal / external arranged in one or more dimensions networking modules that are connected to each other directly or through a bus system.
  • the category of these modules includes, in particular, systolic arrays, neural networks, multiprocessor systems, processors with a plurality of arithmetic units and / or logical cells and / or communicative / peripheral cells (10), networking and network components such as crossbar switches, as well as known ones Modules of the genus FPGA, DPGA, Chameleon, XPUTER, etc.
  • the above Architecture is used as an example for clarification and is referred to below as the VPU.
  • the architecture consists of any arithmetic, logical (also memory) and / or memory cells and / or network cells and / or communicative / peripheral (IO) cells (PAEs), which can be arranged in a one- or multi-dimensional matrix (PAC), whereby the matrix can have different, arbitrarily designed cells; the bus systems are also understood as cells.
  • a configuration unit (CT) is assigned to the matrix as a whole or parts thereof, which influences the networking and function of the PA.
  • the object of the invention is to provide something new for commercial use.
  • a reconfigurable processor is therefore designed into a technical environment that has a standard processor (CPU), such as a DSP, RISC, CISC processor or (micro) controller.
  • CPU such as a DSP, RISC, CISC processor or (micro) controller.
  • the design is such that there is a connection that is as simple as possible and yet very powerful.
  • VPUs Reconfigurable modules
  • PACT XPP technology a technical environment and programming methods.
  • Morphics a technical environment in which a prosthesis is atypically atypically atypically atypically atypically atypically atypically atypically atypically atypically atypically atypically atypically atypically atypically atypically atypically atypicallybstructive XPP technology, Morphics, Morphosys, Chameleon
  • VPUs Reconfigurable modules of different types (such as PACT XPP technology, Morphics, Morphosys, Chameleon) are largely incompatible with existing technical environments and programming methods.
  • the programs of the blocks are further incompatible with existing programs from CPUs.
  • a considerable development effort for programming is required, eg. B. especially for building blocks of the genera Morphics, Morphosys.
  • Chameleon already integrates a standard processor (ARC) on the reconfigurable modules. This means that programming tools are available.
  • ARC standard processor
  • a VPU (or, without being specifically mentioned, several VPUs) is coupled to a preferred CPU in such a way that it takes the place and function of a coprocessor there.
  • the function as a coprocessor enables simple integration into existing program codes in accordance with the already existing methods for handling coprocessors according to the prior art.
  • the system can in particular be designed as a (standard) processor or assembly and / or be integrated in a semiconductor (system on chip SoC).
  • CPU and VPU In order to provide the coprocessor connection between CPU and VPU, data or information exchange between CPU and VPU is necessary.
  • the processor must typically convey data and instructions to the coprocessor unit as to what must be done with them.
  • the data exchange between CPU and VPU can now take place by means of memory coupling and / or IO coupling.
  • the CPU and VPU can share all resources; in special configurations, on the other hand, it is also possible for the CPU and VPU to use only a part of the resources together, while other resources are explicitly and exclusively available for the CPU or VPU.
  • the question of which variant is preferred will typically depend, among other things, on the overall design of the system, the possible costs, available resources, the expected data load, etc. It should be noted that, where reference has been made to a single CPU, several CPUs can also be addressed together.
  • data records and / or configurations can be copied or written / read into memory areas specially provided for this purpose and / or corresponding base addresses can be set so that they point to the respective data areas.
  • Variant provided a record that, for example, the
  • Basic settings of a VPU includes, such as certain base addresses. Furthermore, status variables to control and function control of a VPU by a CPU in the data record or for separate transmission and be exchanged with or separately from data.
  • the addresses can be flexibly distributed and assigned. Preferably, therefore, only a basic address in the I / O or memory address space needs to be firmly agreed in order to serve with its data record as a pointer to the flexibly defined addresses.
  • the data record can be exchanged via a common memory (RAM) and / or via a common peripheral address space (10).
  • RAM common memory
  • the addresses can be flexibly distributed and assigned.
  • one-sided or mutual interrupt procedures e.g. interrupt lines
  • Interrupts can also be used to synchronize data and / or DMA transfers.
  • a VPU is started by a CPU and then independently processes the started or instructed application.
  • a preferred structure is particularly powerful, in which the VPU used provides its own mechanisms for loading and checking configurations.
  • the genus of these VPUs include, for example, PACT XPP and Chameleon.
  • the circuits according to the invention enable a method of operation in such a way that all configurations of the VPU or part of the VPU configurations are loaded into a memory together with the program to be executed by the CPU.
  • the CPU can refer the VPU to the memory locations during the execution of the program (e.g. by specifying the addresses or Pointer) that contain the configurations to be executed.
  • the VPU can then load the configurations independently and without further influence from the CPU.
  • the processor issues the instruction to the CPU to load a specific configuration.
  • the reconfigurable processor which then serves as a coprocessor, can therefore preferably be called up via a single command to the loading logic.
  • prior agreement between the VPU and CPU that is, the calling host processor, can be used to determine exactly which configuration is to be carried out by which call.
  • corresponding control means can be provided in the charging logic unit, be it dedicated, implemented or formed by one or more reconfigurable cells of the reconfigurable processor. Execution starts immediately or if necessary with additional information (eg interrupt and / or start command) from the CPU.
  • the VPU can read and write data independently within one or more memories, some of which can be together with or independent of the CPU.
  • the VPU can also independently load new configurations from the memory and, if necessary, reconfigure itself without the need for further influence by the CPU.
  • sequence control of a VPU can be carried out directly by a program running on the CPU, which is basically the main program that outsources certain subroutines to the VPU. This is a particularly easy to implement variant.
  • Mechanisms controlled by the operating system are preferably used for synchronization and sequence control.
  • a simple scheduler can, after transfer of the function to the VPU, especially where possible,
  • the task scheduler switches over to another task (for example another main program).
  • the VPU can continue to work in the background regardless of the current CPU task.
  • Each newly activated task if it uses the VPU, is typically checked before use to determine whether it is available for data processing or is currently still processing data in a way that blocks the required VPU resources; then either the termination of the data transfer work or, if preferred, the task can be changed.
  • descriptor tables which can be implemented as follows, for example:
  • each task To call up the VPU, each task generates one or more tables (VPUPROC) with a suitable defined data format in the memory area assigned to it.
  • This table contains all tax information for a VPU, e.g. the program / configuration to be executed (or pointer to the corresponding memory locations) and / or memory location (s) (or pointer to it) and / or data sources (or pointer to it) of the input data and / or the memory location (s) (or pointers to them) of the operands or the result data.
  • a table or linked list (LINKLIST), which points to all VPUPROC tables in the order in which they were created and / or called, can be located in the memory area of the operating system, for example.
  • the data processing on the VPU is now preferably carried out in such a way that a main program creates a VPUPROC and calls the VPU via the operating system.
  • the operating system creates an entry in the LINKLIST.
  • the VPU processes the LINKLIST and executes the referenced VPUPROC.
  • the termination of a respective data processing is then preferably indicated in each case by a corresponding entry in the LINKLIST and / or VPUCALL table, which the CPU z. B. can poll by regular pollen.
  • the VPU works largely independently of the CPU.
  • the CPU and the VPU can perform independent and different tasks per time unit.
  • the operating system and / or the respective tasks only have to monitor the tables (LINKLIST or VPUPROC).
  • the LINKLIST can also be dispensed with by linking the VPUPROCs to one another using pointers, as is the case, for example, with B. is known from lists. Processed VPUPROCs are removed from the list, new ones are added to the list. The method is known to programmers and therefore does not have to be carried out further.
  • FIG. 1 shows a section from an exemplary CPU system, for example a DSP of the type C6000 from Texas Instruments or a microcontroller from ARM (0201).
  • Program memory (0202), data memory (0203), any peripherals (0204) and EMIF (0205) are shown.
  • a VPU is integrated as a coprocessor (0208) via a memory bus (0206) and a peripheral bus (0207).
  • a DMA controller (EDMA) (0209) can perform any DMA transfers, for example between memory (0203) and VPU (0208) or memory (0203) and peripherals (0204).
  • the VPU and / or CPU can also access the memory independently without the aid of a DMA.
  • the shared memory can in particular also be designed as a dual-port or multi-port memory.
  • Additional modules can be assigned to the system, in particular reconfigurable FPGAs can be used to enable fine-grained processing of individual signals or data bits and / or flexible adaptable interfaces (eg various serial interfaces (V24, USB, etc.), various parallel interfaces , Hard disk interfaces, Ethernet, telecommunications interfaces (a / b, T0, ISDN, DSL, etc)).
  • reconfigurable FPGAs can be used to enable fine-grained processing of individual signals or data bits and / or flexible adaptable interfaces (eg various serial interfaces (V24, USB, etc.), various parallel interfaces , Hard disk interfaces, Ethernet, telecommunications interfaces (a / b, T0, ISDN, DSL, etc)).
  • FIG 3 shows a more abstract system definition.
  • a CPU (0301) is assigned memory (0302), to which it has write and / or read access.
  • a VPU (0303) is coupled to the memory.
  • the VPU is divided into a CT part (0309) and the reconfigurable elements for data processing (0310).
  • the memory can have several independent access busses that can possibly be used simultaneously (multiport).
  • the memory is segmented into a number of independent segments (memory banks), with each bank being able to be accessed independently. All segments are preferably within a uniform address space.
  • one segment is mainly available for the CPU (0304), another segment is mainly available for data processing of the VPU (0305), another segment is mainly available for configuration data of the VPU (0306).
  • a fully configured VPU typically and preferably has its own address generators and / or DMAs in order to carry out data transfers.
  • a DMA (0307) is provided within the system (FIG. 3) for data transfers with the VPU.
  • the system contains IO means (0308) to which the CPU and VPU can have access. Both the CPU and the VPU can each have dedicated memory areas and IO areas to which the other has no access.
  • a data record (0311) which, as shown graphically, can be in the memory area and / or in the IO area and / or partially in one of the two is used for communication between CPU and VPU, e.g. B. for the exchange of basic parameters and control information.
  • the data record can contain the following information, for example, and thus represents a basic setting data record:
  • the CPU and VPU are synchronized by polling status data and / or information and / or preferably by interrupt control (0312).
  • the basic setting data record can be a LINKLIST and / or
  • Contain VPUCALLs or alternatively point to the LINKLIST and / or VPUCALLs or the first entry of each by pointer.
  • FIG. 4 shows a possible configuration of the interface structure of a VPU for integration into a system similar to FIG. 3.
  • the VPU is assigned a memory / DMA and / or IO interface for data transfer (0401); another system interface (0402) takes over the sequential control such as B. managing interrupts, starting / stopping processing, exchanging error states, etc.
  • the memory / DMA and / or IO interface is connected to a memory bus and / or IO bus.
  • the system interface is preferably connected to an IO bus, but can alternatively or additionally be connected to a memory in accordance with 0311.
  • the interfaces (0401, 0402) can be designed to adapt different operating frequencies of the CPU and / or VPU and / or system and can have a clock adaptation circuit, for example the system or the CPU can
  • the interfaces can carry out a translation of the bus protocols with a protocol adaptation circuit, for example
  • the VPU internal protocol can be converted to an external AMBA bus protocol and vice versa.
  • the memory / DMA and / or IO interface supports the memory access of the CT to an external memory, which is preferably done directly (memory mapped).
  • the data transfer of the CT (s) and / or PAC (s) can be buffered e.g. B. via FIFO stages.
  • External memory e.g. 0308, 0203
  • DMA internal and / or external DMA transfers can also be carried out.
  • the data processing is controlled via the system interface, such as the initialization and / or the start of configurations. Status and / or error states are also exchanged. Interrupts for the control and synchronization between the CT's and a CPU can be supported.
  • the system interface can convert internal VPU protocols in such a way that they are converted to external (standard) protocols (e.g. AMBA).
  • AMBA external (standard) protocols
  • bus interfaces RAM cells, I / O cells and the like as parts (PAEs) of a VPU. This also applies if these units are to be used for the processor-coprocessor coupling.
  • a preferred method for code generation for the system described is described in the patent application PACT20, which is fully incorporated for the purposes of disclosure.
  • the method describes a compiler that divides program code into code for a CPU and code for a VPU. Disassembly is carried out on the different processors using different methods. In a particularly preferred embodiment, the respective disassembled The interface codes for communication between the CPU and the VPU have been added to the codes. The expansion can be done automatically by the compiler.
  • An advantage according to the invention is that administration and / or interface expenditure and programming of the system according to the invention are inexpensive and simple.
  • the following tables show exemplary communications between a CPU and a VPU.
  • the respective active units are assigned to the columns: CPU, system DMA and DMA interface (EDMA) or memory interface (memory I / F), system interface (system I / F, 0402), CT's , as well as the PAC.
  • EDMA system DMA and DMA interface
  • memory I / F system interface
  • system I / F system interface
  • CT's system interface
  • the execution cycles of the individual cycles are entered in the lines.
  • Kl references a configuration to be executed 1.
  • the first table shows, for example, a sequence when using the system DMA (EDMA) for data transfer.
  • EDMA system DMA
  • Each line shows a sequential control process; the columns show the respective activity in the corresponding assembly:
  • a second table shows, for example, a preferred, optimized process.
  • the VPU itself has direct access to the configuration memory (0306). Furthermore, the data transfers are carried out by DMA circuitry within the VPU, which can, for example, be permanently implemented (PACT03) and / or arise from the configuration of configurable parts of the PAC.
  • PACT03 permanently implemented
  • the work and synchronization effort for the CPU is minimal, which means maximum performance.
  • the method can provide for several configurations to be carried out on different areas of the VPU, that is to say on different PAEs at the same time, or to be time-multiplexed on the same resources.
  • a type of "double buffering" can be used for particularly simple and at the same time fast reconfiguration, in which a plurality of VPUs are provided, one part being able to be reconfigured at a time of the VPUs, while another part is computing and possibly another is inactive can be.
  • the data, trigger, status connections etc. are suitably exchanged between the plurality of VPUs and, if necessary, interconnected by addressed buses and / or multiplexers / demultiplexers in accordance with the currently active and / or reconfigurable VPUs.
  • the query as to whether the CPU can then process the program parts to be executed by it finished, can in turn via polling or the like. happen.
  • all of the methods described can be used both for coupling a CPU to a VPU as a coprocessor and vice versa. What is important here is the type of coupling for which the operating system is designed. It should be pointed out that it is in particular possible to provide an operating system which enables mutual coupling, that is to say in particular optionally couples the CPU to the VPU or parts thereof and vice versa.
  • the latter is particularly advantageous, for example, if entire program blocks with predominantly sequential parts are to be delivered by the VPU as the host to the CPU as coprocessor and these program blocks still have partially strong vectorial or parallel code that can be quasi retransmitted by the CPU, in particular in response to a determined current or forecasted VPU load.

Abstract

The invention relates to a reconfigurable processor (VPU) which is designed to be integrated into a technical environment comprising a standard processor (CPU), such as a DSP, RISC, or CISC processor or a (micro)controller. Said processor must be designed in such a way that a connection is created which is as simple and as efficient as possible. According to another aspect of the invention, the system created is easy to programme. The invention takes into account the continued use of existing programmes of the CPU, the code compatibility and the simple integration of the VPU into the existing programmes.

Description

Titel: Rekonfigurierbares SystemTitle: Reconfigurable system
Beschreibungdescription
Die vorliegende Erfindung betrifft das oberbegrifflich Beanspruchte. Damit befaßt sich die vorliegender Erfindung mit der Frage, wie ein rekonfigurierbarer Prozessor auf besonders günstige Art und Weise mit einem Standardprozessor verbunden werden kann.The present invention relates to what is claimed in the preamble. The present invention thus addresses the question of how a reconfigurable processor can be connected to a standard processor in a particularly favorable manner.
Unter einer rekonfigurierbaren Architektur werden vorliegend Bausteine (VPU) mit konfigurierbarer Funktion und/oder Vernetzung verstanden, insbesondere integrierte Bausteine mit einer Mehrzahl von ein- oder mehrdimensional angeordneten arithmetischen und/oder logischen und/oder analogen und/oder speichernden und/oder intern/extern vernetzenden Baugruppen, die direkt oder durch ein Bussystem miteinander verbunden sind.In the present case, a reconfigurable architecture is understood to mean modules (VPU) with configurable function and / or networking, in particular integrated modules with a plurality of arithmetic and / or logical and / or logical and / or analog and / or storing and / or internal / external arranged in one or more dimensions networking modules that are connected to each other directly or through a bus system.
Zur Gattung dieser Bausteine zählen insbesondere systolische Arrays, neuronale Netze, Mehrprozessor Systeme, Prozessoren mit mehreren Rechenwerken und/oder logischen Zellen und/oder kommunikativen/peripheren Zellen (10) , Vernetzungs- und Netz- werkbausteine wie z.B. Crossbar-Schalter, ebenso wie bekannte Bausteine der Gattung FPGA, DPGA, Chameleon, XPUTER, etc. Hingewiesen wird insbesondere in diesem Zusammenhang auf 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, DE 196 51 075.9-53, DE 196 54 846.2-53, DE 196 54 593.5-53, DE 197 04 728.9, DE 198 07 872.2, DE 101 39 170.6, DE 199 26 538.0, DE 101 42 904.5, DE 101 10 530.4, DE 102 02 044.2, DE 102 06 857.7,The category of these modules includes, in particular, systolic arrays, neural networks, multiprocessor systems, processors with a plurality of arithmetic units and / or logical cells and / or communicative / peripheral cells (10), networking and network components such as crossbar switches, as well as known ones Modules of the genus FPGA, DPGA, Chameleon, XPUTER, etc. Reference is made in this connection in particular to the following property rights and applications by the same applicant: P 44 16 881.0-53, DE 197 81 412.3, DE 197 81 483.2, DE 196 54 846.2- 53, DE 196 54 593.5-53, DE 197 04 044.6-53, DE 198 80 129.7, DE 198 61 088.2-53, DE 199 80 312.9, PCT / DE 00/01869, DE 100 36 627.9-33, DE 100 28 397.7, DE 101 10 530.4, DE 101 11 014.6, PCT / EP 00/10516, EP 01 102 674.7, DE 196 51 075.9-53, DE 196 54 846.2-53, DE 196 54 593.5-53, DE 197 04 728.9, DE 198 07 872.2, DE 101 39 170.6, DE 199 26 538.0, DE 101 42 904.5, DE 101 10 530.4, DE 102 02 044.2, DE 102 06 857.7,
DE 101 35 210.7-53, EP 02 001 331.4, 60/317,876. Diese sind hiermit zu Offenbarungszwecken vollumfänglich eingegliedert.DE 101 35 210.7-53, EP 02 001 331.4, 60 / 317,876. These are hereby fully incorporated for disclosure purposes.
Die o.g. Architektur wird beispielhaft zur Verdeutlichung herangezogen und im folgenden VPU genannt. Die Architektur besteht aus beliebigen arithmetischen, logischen (auch Speicher) und/oder Speicherzellen und/oder Vernetzungszellen und/oder kommunikativen/peripheren (IO) Zellen (PAEs), die zu einer ein- oder mehrdimensionalen Matrix (PAC) angeordnet sein können, wobei die Matrix unterschiedliche, beliebig ausgestaltete Zellen aufweisen kann; auch die Bussysteme werden dabei als Zellen verstanden. Der Matrix als Ganzes oder Teilen davon zugeordnet ist eine Konfigurationseinheit (CT) , die die Vernetzung und Funktion des PA beeinflußt.The above Architecture is used as an example for clarification and is referred to below as the VPU. The architecture consists of any arithmetic, logical (also memory) and / or memory cells and / or network cells and / or communicative / peripheral (IO) cells (PAEs), which can be arranged in a one- or multi-dimensional matrix (PAC), whereby the matrix can have different, arbitrarily designed cells; the bus systems are also understood as cells. A configuration unit (CT) is assigned to the matrix as a whole or parts thereof, which influences the networking and function of the PA.
Aufgabe der Erfindung ist es, Neues für die gewerbliche Nutzung bereitzustellen.The object of the invention is to provide something new for commercial use.
Die Lösung der Aufgabe wird unabhängig beansprucht. Bevorzug- te Ausführungsformen finden sich in den Unteransprüchen.The solution to the problem is claimed independently. Preferred embodiments can be found in the subclaims.
Ein rekonfigurierbarer Prozessor (VPU) wird demnach in eine technische Umgebung hineinentworfen, die einen Standardprozessor (CPU) besitzt, wie beispielsweise einen DSP, RISC, CISC-Prozessor oder (Mikro) -Kontroller aufweist. Das Design erfolgt dabei derart, dass eine möglichst einfache und dennoch sehr leistungsfähige Anbindung besteht. Ein weitererA reconfigurable processor (VPU) is therefore designed into a technical environment that has a standard processor (CPU), such as a DSP, RISC, CISC processor or (micro) controller. The design is such that there is a connection that is as simple as possible and yet very powerful. Another
Aspekt, der sich ergibt, ist die einfache Programmierung des entstehenden Systems . Die Weiterverwendung bestehender Programme der CPU sowie die Codekompatibilität und die einfache Integration der VPU in bestehende Programme finden durch das beschriebene Verfahren problemfrei Berücksichtigung.Aspect that results is the simple programming of the emerging system. The use of existing programs of the CPU as well as the code compatibility and the simple integration of the VPU into existing programs are easily taken into account by the described method.
Stand der TechnikState of the art
Rekonfigurierbare Bausteine (VPUs) unterschiedlicher Gattungen (wie z. B. PACT XPP-Technologie, Morphics, Morphosys, Chameleon) sind zu bestehenden technischen Umgebungen und Programmierverfahren weitgehend inkompatibel.Reconfigurable modules (VPUs) of different types (such as PACT XPP technology, Morphics, Morphosys, Chameleon) are largely incompatible with existing technical environments and programming methods.
Die Programme der Bausteine sind weiter inkompatibel zu bereits bestehenden Programmen von CPUs. Dadurch wird ein er- heblicher Entwicklungsaufwand zur Programmierung erforderlich, z. B. besonders für Bausteine der Gattungen Morphics, Morphosys. Chameleon integriert bereits einen Standardprozessor (ARC) auf den rekonfigurierbaren Bausteinen. Dadurch stehen Tools zur Programmierung zur Verfügung. Allerdings ist nicht jede technische Umgebung für den Einsatz von ARC-The programs of the blocks are further incompatible with existing programs from CPUs. As a result, a considerable development effort for programming is required, eg. B. especially for building blocks of the genera Morphics, Morphosys. Chameleon already integrates a standard processor (ARC) on the reconfigurable modules. This means that programming tools are available. However, not every technical environment is suitable for the use of ARC
Prozessoren geeignet, insbesondere liegen bestehende Programme, Codebibliotheken etc. oftmals für beliebige unbestimmte andere CPUs vor.Processors suitable, in particular existing programs, code libraries etc. are often available for any indefinite other CPUs.
Beschreibung der ErfindungDescription of the invention
Eine VPU (oder ohne jeweils besonders erwähnt zu werden, mehrere VPUs) wird derart mit einer bevorzugten CPU gekoppelt, dass sie dort die Stelle und Funktion eines Coprozessors ein- nimmt. Die Funktion als Coprozessor ermöglicht dabei die einfache Einbindung in bestehende Programmcodes entsprechend den bereits existierenden Methoden zum Umgang mit Coprozessoren nach dem Stand der Technik. Das System kann insbesondere als (Standard) -Prozessor oder Baugruppe ausgestaltet sein und/oder in einem Halbleiter (System on Chip SoC) integriert sein.A VPU (or, without being specifically mentioned, several VPUs) is coupled to a preferred CPU in such a way that it takes the place and function of a coprocessor there. The function as a coprocessor enables simple integration into existing program codes in accordance with the already existing methods for handling coprocessors according to the prior art. The system can in particular be designed as a (standard) processor or assembly and / or be integrated in a semiconductor (system on chip SoC).
Um die Coprozessor-Anbindung zwischen CPU und VPU vorzusehen, ist ein Daten- bzw. Informationsaustausch zwischen CPU und VPU erforderlich. Insbesondere muß der Prozessor der Coprozessor-Einheit typisch Daten und Anweisungen übermitteln, was mit diesen geschehen muß. Der Datenaustausch zwischen CPU und VPU kann nun mittels Speicherkopplung und/oder IO-Kopplung erfolgen. CPU und VPU können dabei prinzipiell sämtliche Ressourcen teilen; in besonderen Ausgestaltungen ist es hingegen auch möglich, daß CPU und VPU nur einen Teil der Ressourcen gemeinsam verwenden, während andere Ressourcen jeweils explizit und exklusive für die CPU oder VPU zur Verfügung stehen. Die Frage, welche Variante bevorzugt ist, wird typisch unter anderem von der Gesamtauslegung des Systems, den möglichen Kosten, verfügbaren Ressourcen, der erwarteten Datenlast usw. abhängen. Es sei darauf hingewiesen, daß dort, wo auf eine einzelne CPU Bezug genommen wurde und wird, auch mehrere CPUs gemeinsam angesprochen werden können.In order to provide the coprocessor connection between CPU and VPU, data or information exchange between CPU and VPU is necessary. In particular, the processor must typically convey data and instructions to the coprocessor unit as to what must be done with them. The data exchange between CPU and VPU can now take place by means of memory coupling and / or IO coupling. In principle, the CPU and VPU can share all resources; in special configurations, on the other hand, it is also possible for the CPU and VPU to use only a part of the resources together, while other resources are explicitly and exclusively available for the CPU or VPU. The question of which variant is preferred will typically depend, among other things, on the overall design of the system, the possible costs, available resources, the expected data load, etc. It should be noted that, where reference has been made to a single CPU, several CPUs can also be addressed together.
Um einen Datenaustausch durchzuführen, können Datensätze und/oder Konfigurationen in jeweils besonders dafür vorgesehen Speicherbereiche kopiert bzw. geschrieben/gelesen werden und/oder entsprechende Basisadressen so gesetzt werden, daß diese auf die jeweiligen Datenbereiche zeigen.In order to carry out a data exchange, data records and / or configurations can be copied or written / read into memory areas specially provided for this purpose and / or corresponding base addresses can be set so that they point to the respective data areas.
Zur Steuerung des Coprozessors wird nun in einer bevorzugtenTo control the coprocessor is now preferred
Variante ein Datensatz vorgesehen, der beispielsweise dieVariant provided a record that, for example, the
Grundeinstellungen einer VPU beeinhaltet, wie beispielsweise bestimmte Basisadressen. Des weiteren können Statusvariablen zur Ansteuerung und Funktionssteuerung einer VPU durch eine CPU im Datensatz bzw. für die separate Übertragung vorgesehen sein und mit oder getrennt von Daten ausgetauscht werden. In einer besonders bevorzugten Variante können die Adressen fle- xibel verteilt und zugewiesen werden. Bevorzugt braucht somit lediglich eine Grundadresse im I/O- oder Speicheradressraum fest vereinbart zu werden, um mit ihrem Datensatz als Zeiger auf die flexibel definierten Adressen zu dienen.Basic settings of a VPU includes, such as certain base addresses. Furthermore, status variables to control and function control of a VPU by a CPU in the data record or for separate transmission and be exchanged with or separately from data. In a particularly preferred variant, the addresses can be flexibly distributed and assigned. Preferably, therefore, only a basic address in the I / O or memory address space needs to be firmly agreed in order to serve with its data record as a pointer to the flexibly defined addresses.
Der Datensatz kann über einen gemeinsamen Speicher (RAM) und/oder über einen gemeinsamen peripheren Adressraum (10) ausgetauscht werden. Die Adressen können flexibel verteilt und zugewiesen werden.The data record can be exchanged via a common memory (RAM) and / or via a common peripheral address space (10). The addresses can be flexibly distributed and assigned.
Zur Synchronisation der CPU und VPU können einseitig oder gegenseitig Interruptverfahren (z. B. Interruptleitungen) vorgesehen sein und/oder die Synchronisation erfolgt mittels Pollingverfahren. Weiterhin können Interrupts zur Synchronisation von Daten- und/oder DMA-Transfers verwendet werden. In einer besonders zu bevorzugenden Ausgestaltung wird eine VPU durch eine CPU gestartet und arbeitet danach unabhängig die gestartete bzw. angewiesenen Applikation ab.To synchronize the CPU and VPU, one-sided or mutual interrupt procedures (e.g. interrupt lines) can be provided and / or the synchronization is carried out using a polling procedure. Interrupts can also be used to synchronize data and / or DMA transfers. In a particularly preferred embodiment, a VPU is started by a CPU and then independently processes the started or instructed application.
Besonders leistungsfähig ist ein bevorzugter Aufbau, bei wel- chen die verwendete VPU eigene Mechanismen zum Laden und Kontrollieren von Konfigurationen vorsieht. Zur Gattung dieser VPUs gehören beispielsweise PACT XPP und Chameleon. Die erfindungsgemäßen Schaltungen ermöglichen ein Verfahren zum Betrieb derart, daß alle Konfigurationen der VPU oder ein Teil der VPU-Konfigurationen zusammen mit dem auszuführenden Programm der CPU in einen Speicher geladen werden. Die CPU kann während der Ausführung des Programmes die VPU auf die Speicherstellen verweisen (z. B. durch Angabe der Adressen oder Pointer), die die jeweils auszuführenden Konfigurationen beinhalten. Die VPU kann daraufhin die Konfigurationen selbständig und ohne weitere Einflußnahme durch die CPU laden. Wenn und soweit die VPU, d. h. das rekonfigurierbare Feld mit insbesondere grobgranular laufzeitkonfigurierbaren Elementen eine Ladelogik zum Laden von Konfigurationen besitzt, kann es ausreichen, wenn der Prozessor an die CPU die Anweisung ausgibt, eine bestimmte Konfiguration zu laden. Der Aufruf des dann als Coprozessor dienenden rekonfigurierbaren Prozessors kann also bevorzugt über einen einzigen Befehl an die Ladelogik erfolgen. Es sei darauf hingewiesen, daß durch vorherige Vereinbarung zwischen VPU und CPU, also dem aufrufenden Host- Prozessor, genau festgelegt werden kann, welche Konfiguration durch welchen Aufruf auszuführen ist. Daß hierbei entspre- chende Steuermittel in der Ladelogikeinheit, sei sie dedi- ziert, implementiert oder durch ein oder mehrere rekonfigurierbare Zellen des rekonfigurierbaren Prozessors gebildet, vorgesehen sein können, sei erwähnt. Das Ausführen startet sofort oder ggf. durch eine zusätzliche Information (z.B. In- terrupt und/oder Start Befehl) durch die CPU.A preferred structure is particularly powerful, in which the VPU used provides its own mechanisms for loading and checking configurations. The genus of these VPUs include, for example, PACT XPP and Chameleon. The circuits according to the invention enable a method of operation in such a way that all configurations of the VPU or part of the VPU configurations are loaded into a memory together with the program to be executed by the CPU. The CPU can refer the VPU to the memory locations during the execution of the program (e.g. by specifying the addresses or Pointer) that contain the configurations to be executed. The VPU can then load the configurations independently and without further influence from the CPU. If and to the extent that the VPU, ie the reconfigurable field with, in particular, coarse-grained runtime configurable elements, has loading logic for loading configurations, it may be sufficient if the processor issues the instruction to the CPU to load a specific configuration. The reconfigurable processor, which then serves as a coprocessor, can therefore preferably be called up via a single command to the loading logic. It should be noted that prior agreement between the VPU and CPU, that is, the calling host processor, can be used to determine exactly which configuration is to be carried out by which call. It should be mentioned that corresponding control means can be provided in the charging logic unit, be it dedicated, implemented or formed by one or more reconfigurable cells of the reconfigurable processor. Execution starts immediately or if necessary with additional information (eg interrupt and / or start command) from the CPU.
In einer besonders bevorzugten Erweiterung kann die VPU selbständig innerhalb eines oder mehrerer Speicher (s), von denen einige jeweils gemeinsam mit oder unabhängig von der CPU sein können, Daten lesen und schreiben.In a particularly preferred extension, the VPU can read and write data independently within one or more memories, some of which can be together with or independent of the CPU.
In einer besonders bevorzugten Erweiterung kann die VPU ebenfalls selbständig neue Konfigurationen aus dem Speicher laden und sich bei Bedarf neu konfigurieren, ohne daß es eines wei- teren Einflusses durch die CPU bedarf.In a particularly preferred extension, the VPU can also independently load new configurations from the memory and, if necessary, reconfigure itself without the need for further influence by the CPU.
Diese Ausgestaltungen ermöglichen einen weitestgehend vonThese configurations allow a largely from
CPUs unabhängigen Betrieb von VPUs . Lediglich ein Synchroni- sationsaustausch zwischen CPU und VPU, der bevorzugt bidirektional stattfinden kann, sollte zusätzlich vorgesehen werden, um die Datenverarbeitungen und/oder Konfigurationsausführungen aufeinander abzustimmen.CPU-independent operation of VPUs. Just a synchronization Exchange of information between the CPU and the VPU, which can preferably take place bidirectionally, should also be provided in order to coordinate the data processing and / or configuration executions.
Grundsätzlich kann die Ablaufsteuerung einer VPU zwar direkt von einem auf der CPU ausgeführten Programm erfolgen, das quasi das Hauptprogramm darstellt, das bestimmte Unterprogramme auf die VPU auslagert. Dies ist eine besonders einfach zu implementierende Variante.In principle, the sequence control of a VPU can be carried out directly by a program running on the CPU, which is basically the main program that outsources certain subroutines to the VPU. This is a particularly easy to implement variant.
Bevorzugt werden jedoch zur Synchronisation und Ablaufsteuerung über das Betriebssystem (insbesondere den Scheduler) gesteuerte Mechanismen verwendet. Ein einfacher Scheduler kann nach Übertragung der Funktion auf die VPU, insbesondere wo möglich,Mechanisms controlled by the operating system (in particular the scheduler) are preferably used for synchronization and sequence control. A simple scheduler can, after transfer of the function to the VPU, especially where possible,
1. das aktuelle Hauptprogramm auf der CPU weiterlaufen lassen, sofern dieses unabhängig und parallel zur Datenver- arbeitung auf einer VPU ablaufen kann, wobei auch und/oder alternativ,1. Allow the current main program to continue to run on the CPU, provided that this can run independently and in parallel to data processing on a VPU, with and / or alternatively,
2. sofern oder sobald das Hauptprogramm auf die Beendigung der Datenverarbeitung auf der VPU warten muß, der Task- scheduler auf einen anderen Task (z. B. ein anderes Hauptprogramm) umschaltet. Die VPU kann dabei unabhängig von dem gerade aktuellen CPU-Task im Hintergrund weiterarbeiten.2. if or as soon as the main program has to wait for the data processing on the VPU to end, the task scheduler switches over to another task (for example another main program). The VPU can continue to work in the background regardless of the current CPU task.
Jeder neu aktivierte Task wird typisch, sofern er die VPU verwendet, vor Verwendung prüfen, ob diese für eine Datenverarbeitung zur Verfügung steht oder aktuell noch Daten in einer Weise verarbeitet, welche die benötigten VPU-Ressourcen blockiert; dann muß entweder auf die Beendigung der Datenver- arbeitung gewartet oder, falls etwa nach Priorität bevorzugt, der Task gewechselt werden..Each newly activated task, if it uses the VPU, is typically checked before use to determine whether it is available for data processing or is currently still processing data in a way that blocks the required VPU resources; then either the termination of the data transfer work or, if preferred, the task can be changed.
Ein einfaches und dennoch leistungsfähiges Verfahren kann insbesondere durch sogenannte Descriptor Tables aufgebaut bzw. realisiert werden, die bespielsweise folgendermaßen realisiert werden können:A simple, yet powerful process can be set up or implemented in particular by so-called descriptor tables, which can be implemented as follows, for example:
Jeder Task generiert zum Aufruf der VPU eine oder mehrere Ta- belle (n) (VPUPROC) mit einem geeigneten festgelegten Datenformat in dem ihm zugewiesenen Speicherbereich. Diese Tabelle beeinhaltet sämtliche Steuerinformation für eine VPU, wie z.B. das auszuführende Programm / die auszuführende Konfiguration (oder Zeiger auf die entsprechenden Speicherstellen) und/oder Speicherstelle (n) (oder jeweils Zeiger darauf) und/oder Datenquellen (oder jeweils Zeiger darauf) der Eingangsdaten und/oder die Speicherstelle (n) (oder jeweils Zeiger darauf) der Operanden oder der Ergebnisdaten.To call up the VPU, each task generates one or more tables (VPUPROC) with a suitable defined data format in the memory area assigned to it. This table contains all tax information for a VPU, e.g. the program / configuration to be executed (or pointer to the corresponding memory locations) and / or memory location (s) (or pointer to it) and / or data sources (or pointer to it) of the input data and / or the memory location (s) (or pointers to them) of the operands or the result data.
Im Speicherbereich des Betriebssystems kann sich beispielsweise eine Tabelle oder verkettete Liste (LINKLIST) befinden, die auf sämtliche VPUPROC-Tabellen in der Reihenfolge ihrer Erstellung und/oder Aufrufs zeigt.A table or linked list (LINKLIST), which points to all VPUPROC tables in the order in which they were created and / or called, can be located in the memory area of the operating system, for example.
Die Datenverarbeitung auf der VPU läuft nunmehr bevorzugt derart ab, daß ein Hauptprogramm einen VPUPROC erstellt und über das Betriebssystem die VPU aufruft. Das Betriebssystem erstellt einen Eintrag in der LINKLIST. Die VPU arbeitet die LINKLIST ab und führt die jeweils referenzierten VPUPROC aus. Die Beendigung einer jeweiligen Datenabarbeitung wird dann bevorzugt jeweils durch einen entsprechenden Eintrag in die LINKLIST und/oder VPUCALL Tabelle angezeigt, den die CPU z. B. durch regelmäßiges Pollen abfragen kann. Alternativ können Interrupts von der VPU zur CPU als Anzeige und ggf. auch zum Austausch des VPU-Status verwendet werden; dabei ist nicht nur möglich, das Erreichen des Programmendes anzuzeigen; vielmehr kann auch angezeigt werden, daß und gegebenenfalls welcher Punkt im Unterprogramm bereits erreicht wurde.The data processing on the VPU is now preferably carried out in such a way that a main program creates a VPUPROC and calls the VPU via the operating system. The operating system creates an entry in the LINKLIST. The VPU processes the LINKLIST and executes the referenced VPUPROC. The termination of a respective data processing is then preferably indicated in each case by a corresponding entry in the LINKLIST and / or VPUCALL table, which the CPU z. B. can poll by regular pollen. Alternatively, you can Interrupts from the VPU to the CPU are used as a display and, if necessary, also for exchanging the VPU status; it is not only possible to indicate that the program has ended; Rather, it can also be displayed that and, if appropriate, which point in the subroutine has already been reached.
Die VPU arbeitet in diesem erfindungsgemäß bevorzugten Verfahren weitgehend unabhängig von der CPU. Insbesondere können die CPU und die VPU unabhängige und unterschiedliche Tasks je Zeiteinheit ausführen. Das Betriebssystem und/oder die jeweiligen Tasks müssen lediglich die Tabellen (LINKLIST bzw. VPUPROC) überwachen.In this preferred method according to the invention, the VPU works largely independently of the CPU. In particular, the CPU and the VPU can perform independent and different tasks per time unit. The operating system and / or the respective tasks only have to monitor the tables (LINKLIST or VPUPROC).
Alternativ kann auch auf die LINKLIST verzichtet werden, in- dem die VPUPROCs untereinander durch Pointer verkettet werden, wie es z. B. aus Listen bekannt ist. Abgearbeitete VPUPROCs werden aus der Liste entfernt, neue in die Liste eingefügt. Das Verfahren ist Programmierern bekannt und muß daher nicht weitergehend ausgeführt werden.Alternatively, the LINKLIST can also be dispensed with by linking the VPUPROCs to one another using pointers, as is the case, for example, with B. is known from lists. Processed VPUPROCs are removed from the list, new ones are added to the list. The method is known to programmers and therefore does not have to be carried out further.
Der Aufbau einer besonders bevorzugten VPU ist in Figur 1 dargestellt. Vorzugsweise hierarchische Konfigurationsmanager (CT's) (0101) steuern und verwalten eine Anordnung von rekonfigurierbaren Elementen (PACs) (0102). Den CT's ist ein loka- 1er Speicher für die Konfigurationen zugeordnet (0103) . Der Speicher verfügt weiterhin über ein Interface (0104) zu einem globalen Speicher, der die Konfigurationsdaten zur Verfügung stellt. Über ein Interface (0105) sind die Konfigurationsabläufe steuerbar. Ein Interface der rekonfigurierbaren Ele en- te (0102) zur Ablaufsteuerung und Ereignisverwaltung (0106) ist vorhanden, ebenso ein Interface zum Datenaustausch (0107) . Figur 2 zeigt einen Ausschnitt aus einem beispielhaften CPU- System, beispielsweise einem DSP des Types C6000 von Texas Instruments oder ein Mikrokontroller von ARM (0201) . Dargestellt sind Programmspeicher (0202) , Datenspeicher (0203) , beliebige Peripherie (0204) und EMIF (0205) . Über einen Speicherbus (0206) und einen Peripheriebus (0207) ist eine VPU als Coprozessor integriert (0208) . Ein DMA-Kontroller (EDMA) (0209) kann beliebige DMA-Transfers, beispielsweise zwischen Speicher (0203) und VPU (0208) oder Speicher (0203) und Peri- pherie (0204) durchführen. Prinzipiell kann auch die VPU und/oder CPU selbständig ohne Zuhilfenahme eines DMAs auf den Speicher zugreifen. Der gemeinsame Speicher kann insbesondere auch als Dualport- oder Multiportspeicher ausgestaltet sein. Dem System können weitere Baugruppen zugeordnet werden, ins- besondere können rekonfigurierbare FPGAs eingesetzt werden, um eine feingranulare Verarbeitung einzelner Signale oder Datenbits zu ermöglichen und/oder flexible adaptierbare Interface (z.B. diverse serielle Schnittstellen (V24, USB, etc.), diverse parallele Schnittstellen, Festplattenschnittstellen, Ethernet, Telekommunikationsschnittstellen (a/b, T0, ISDN, DSL, etc) ) aufbauen zu können.The structure of a particularly preferred VPU is shown in Figure 1. Preferably hierarchical configuration managers (CT's) (0101) control and manage an arrangement of reconfigurable elements (PACs) (0102). A local memory for the configurations is assigned to the CT's (0103). The memory also has an interface (0104) to a global memory that provides the configuration data. The configuration processes can be controlled via an interface (0105). An interface of the reconfigurable element (0102) for sequence control and event management (0106) is available, as is an interface for data exchange (0107). FIG. 2 shows a section from an exemplary CPU system, for example a DSP of the type C6000 from Texas Instruments or a microcontroller from ARM (0201). Program memory (0202), data memory (0203), any peripherals (0204) and EMIF (0205) are shown. A VPU is integrated as a coprocessor (0208) via a memory bus (0206) and a peripheral bus (0207). A DMA controller (EDMA) (0209) can perform any DMA transfers, for example between memory (0203) and VPU (0208) or memory (0203) and peripherals (0204). In principle, the VPU and / or CPU can also access the memory independently without the aid of a DMA. The shared memory can in particular also be designed as a dual-port or multi-port memory. Additional modules can be assigned to the system, in particular reconfigurable FPGAs can be used to enable fine-grained processing of individual signals or data bits and / or flexible adaptable interfaces (eg various serial interfaces (V24, USB, etc.), various parallel interfaces , Hard disk interfaces, Ethernet, telecommunications interfaces (a / b, T0, ISDN, DSL, etc)).
Figur 3 zeigt eine abstraktere Systemdefinition. Einer CPU (0301) ist Speicher (0302) zugeordnet, auf den diese schreibenden und/oder lesenden Zugriff besitzt. Eine VPU (0303) ist mit dem Speicher gekoppelt. Die VPU ist in einen CT-Teil (0309) und die rekonfigurierbaren Elemente zur Datenverarbeitung (0310) untergliedert.Figure 3 shows a more abstract system definition. A CPU (0301) is assigned memory (0302), to which it has write and / or read access. A VPU (0303) is coupled to the memory. The VPU is divided into a CT part (0309) and the reconfigurable elements for data processing (0310).
Zur Steigerung der Speicherzugriffe kann der Speicher mehrere unabhängige, unter Umständen gleichzeitig verwendbare Zugriffsbusse aufweisen (multiport) . In einer besonders bevor- zugten Ausgestaltung ist der Speicher in mehrere unabhängige Segmente (Speicherbanks) segmentiert, wobei auf jede Bank unabhängig Zugriffen werden kann. Sämtliche Segmente liegen vorzugsweise innerhalb eines einheitlichen Adressraums.In order to increase the memory accesses, the memory can have several independent access busses that can possibly be used simultaneously (multiport). In a particularly In a preferred embodiment, the memory is segmented into a number of independent segments (memory banks), with each bank being able to be accessed independently. All segments are preferably within a uniform address space.
Vorzugsweise steht ein Segment hauptsächlich für die CPU zur Verfügung (0304), ein weiteres Segment steht hauptsächlich für die Datenverarbeitung der VPU zur Verfügung (0305) , ein weiteres Segment steht hauptsächlich für die Konfigurations- daten der VPU zur Verfügung (0306) .Preferably, one segment is mainly available for the CPU (0304), another segment is mainly available for data processing of the VPU (0305), another segment is mainly available for configuration data of the VPU (0306).
Typischerweise und bevorzugt weist eine vollausgestaltete VPU eigene Adressgeneratoren und/oder DMAs auf, um Datentransfers durchzuführen. -Alternativ und/oder zusätzlich ist es möglich, dass ein DMA (0307) innerhalb des Systems (Fig.3) für Datentransfers mit der VPU vorgesehen ist.A fully configured VPU typically and preferably has its own address generators and / or DMAs in order to carry out data transfers. Alternatively and / or additionally, it is possible that a DMA (0307) is provided within the system (FIG. 3) for data transfers with the VPU.
Das System enthält IO-Mittel (0308), auf die CPU und VPU Zugriff haben können. Sowohl CPU als auch VPU können jeweils dedizierte Speicherbe- reiche und IO-Bereiche aufweisen, auf die der jeweils andere keinen Zugriff hat.The system contains IO means (0308) to which the CPU and VPU can have access. Both the CPU and the VPU can each have dedicated memory areas and IO areas to which the other has no access.
Ein Datensatz (0311) der, wie graphisch dargestellt, im Speicherbereich und/oder im IO-Bereich und/oder partiell in einem von beiden liegen kann, wird zur Kommunikation zwischen CPU und VPU verwendet, z. B. zum Austausch von Basisparametern und Steuerinformation. Der Datensatz kann beispielsweise folgende Information beeinhalten und stellt somit einen Grundeinstellungsdatensatz dar:A data record (0311) which, as shown graphically, can be in the memory area and / or in the IO area and / or partially in one of the two is used for communication between CPU and VPU, e.g. B. for the exchange of basic parameters and control information. The data record can contain the following information, for example, and thus represents a basic setting data record:
1. Basisadresse (n) des CT-Speicherbereiches in 0306 zur Lo- kalisierung der Konfigurationen,1. Base address (es) of the CT memory area in 0306 for localizing the configurations,
2. Basisadresse (n) von Datentransfers mit 0305,2. Base address (es) of data transfers with 0305,
3. I/O-Adressen von Datentransfers mit 0308, 4. Synchronisationsinformation, z. B. Zurücksetzen, Anhalten, Starten der VPU,3. I / O addresses for data transfers with 0308, 4. synchronization information, e.g. B. resetting, stopping, starting the VPU,
5. Statusinformation der VPU, z. B. Fehler oder Zustand der Datenverarbeitung . 6.5. Status information of the VPU, e.g. B. Error or state of data processing. 6th
Die Synchronisation der CPU und VPU erfolgt durch Polling von Statusdaten und/oder -Informationen und/oder bevorzugt durch Interruptsteuerung (0312) .The CPU and VPU are synchronized by polling status data and / or information and / or preferably by interrupt control (0312).
Der Grundeinstellungsdatensatz kann eine LINKLIST und/oderThe basic setting data record can be a LINKLIST and / or
VPUCALLs enthalten, oder alternativ auf die LINKLIST und/oder VPUCALLs oder den jeweils ersten Eintrag derer durch Pointer zeigen.Contain VPUCALLs, or alternatively point to the LINKLIST and / or VPUCALLs or the first entry of each by pointer.
Figur 4 zeigt eine mögliche Ausgestaltung der Interfacestruktur einer VPU zur Einbindung in ein System ähnlich Figur 3. Dazu werden der VPU ein Speicher/DMA- und/oder IO-Interface zum Datentransfer zugeordnet (0401) ; ein weiteres System- Interface (0402) übernimmt die Ablaufsteuerung wie z. B. das Verwalten von Interrupts, das Starten/Stoppen der Verarbeitung, Austausch von Fehlerzuständen, etc.FIG. 4 shows a possible configuration of the interface structure of a VPU for integration into a system similar to FIG. 3. For this purpose, the VPU is assigned a memory / DMA and / or IO interface for data transfer (0401); another system interface (0402) takes over the sequential control such as B. managing interrupts, starting / stopping processing, exchanging error states, etc.
Das Speicher/DMA- und/oder IO-Interface wird an einen Speicherbus und/oder IO-Bus angeschlossen. Das System-Interface wird vorzugsweise an einen IO-Bus ange- schlössen, kann jedoch alternativ oder zusätzlich entsprechend 0311 auch an einen Speicher angeschlossen sein. Die Interface (0401, 0402) können zur Anpassung von unterschiedlichen Arbeitsfrequenzen von CPU und/oder VPU und/oder System ausgestaltet sein und eine Taktanpassungsschaltung aufweisen, beispielsweise kann das System bzw. die CPU mitThe memory / DMA and / or IO interface is connected to a memory bus and / or IO bus. The system interface is preferably connected to an IO bus, but can alternatively or additionally be connected to a memory in accordance with 0311. The interfaces (0401, 0402) can be designed to adapt different operating frequencies of the CPU and / or VPU and / or system and can have a clock adaptation circuit, for example the system or the CPU can
400MHz und die VPU mit 200MHz arbeiten.400MHz and the VPU work at 200MHz.
Die Interface können mit einer Protokollanpassungsschaltung eine Übersetzung der Busprotokolle durchführen, beispielswei- se kann das VPU interne Protokoll auf ein externes AMBA- Busprotokoll umgesetzt werden und umgekehrt.The interfaces can carry out a translation of the bus protocols with a protocol adaptation circuit, for example The VPU internal protocol can be converted to an external AMBA bus protocol and vice versa.
Das Speicher/DMA- und/oder IO-Interface unterstützt den Speicherzugriff der CT auf einen externen Speicher, der vorzugs- weise direkt (memory mapped) erfolgt. Der Datentransfer der CT(s) und/oder PAC(s) kann gepuffert z. B. über FIFO-Stufen erfolgen. Externer Speicher (z.B. 0308, 0203) kann direkt angesprochen und adressiert werden, weiterhin können DMA interne und/oder externe DMA-Transfers durchgeführt werden. Über das System-Interface erfolgt die Steuerung der Datenverarbeitung, wie beispielsweise die Initialisierung und/oder der Start von Konfigurationen. Des weiteren werden Status und/oder Fehlerzustände ausgetauscht. Interrupts für die Steuerung und Synchronisation zwischen den CT's und einer CPU können unterstützt werden.The memory / DMA and / or IO interface supports the memory access of the CT to an external memory, which is preferably done directly (memory mapped). The data transfer of the CT (s) and / or PAC (s) can be buffered e.g. B. via FIFO stages. External memory (e.g. 0308, 0203) can be addressed and addressed directly, and DMA internal and / or external DMA transfers can also be carried out. The data processing is controlled via the system interface, such as the initialization and / or the start of configurations. Status and / or error states are also exchanged. Interrupts for the control and synchronization between the CT's and a CPU can be supported.
Das System-Interface kann VPU-interne Protokolle derart konvertieren, daß diese auf externe (Standard) -Protokolle umgesetzt werden (z. B. AMBA) .The system interface can convert internal VPU protocols in such a way that they are converted to external (standard) protocols (e.g. AMBA).
Es wird darauf hingewiesen, daß es auch möglich ist, Businterfaces, RAM-Zellen, I/O-Zellen und dergleichen als Teile (PAEs) einer VPU vorzusehen. Dies gilt auch dann, wenn diese Einheiten für die Prozessor-Coprozessor-Kopplung verwendet werden sollen.It is pointed out that it is also possible to provide bus interfaces, RAM cells, I / O cells and the like as parts (PAEs) of a VPU. This also applies if these units are to be used for the processor-coprocessor coupling.
Ein bevorzugtes Verfahren zur Codegenerierung für das beschriebene System ist in der Patentanmeldung PACT20 beschrieben, die zu Offenbarungszwecken vollumfänglich eingegliedert wird. Das Verfahren beschreibt einen Compiler, der Pro- grammcode in Code für eine CPU und Code für eine VPU zerteilt. Nach unterschiedlichen Verfahren wird die Zerlegung auf die unterschiedlichen Prozessoren durchgeführt. In einer besonders bevorzugten Ausführen werden die jeweiligen zerleg- ten Codes um die Interface-Routinen zur Kommunikation zwischen CPU und VPU erweitert. Die Erweiterung kann automatisch durch den Compiler erfolgen.A preferred method for code generation for the system described is described in the patent application PACT20, which is fully incorporated for the purposes of disclosure. The method describes a compiler that divides program code into code for a CPU and code for a VPU. Disassembly is carried out on the different processors using different methods. In a particularly preferred embodiment, the respective disassembled The interface codes for communication between the CPU and the VPU have been added to the codes. The expansion can be done automatically by the compiler.
Ein erfindungsgemäßer Vorteil ist, dass Verwaltungs- und/oder Interfaceaufwand sowie Programmierung des erfindungsgemäßen Systemes unaufwendig und einfach sind.An advantage according to the invention is that administration and / or interface expenditure and programming of the system according to the invention are inexpensive and simple.
Die nachfolgenden Tabellen zeigen beispielhafte Kommunikatio- nen zwischen einer CPU und einer VPU. Den Spalten sind die jeweilig aktiven Funktionseinheiten zugeordnet: CPU, System- DMA und DMA-Interface (EDMA) bzw. Speicher-Interface (Spei- cher-I/F) , System-Interface (System-I/F, 0402), CT's, sowie die PAC. In den Zeilen sind die einzelnen Zyklen in ihrer Ausführungsreihenfolge eingetragen. Kl referenziert eine auszuführende Konfiguration 1.The following tables show exemplary communications between a CPU and a VPU. The respective active units are assigned to the columns: CPU, system DMA and DMA interface (EDMA) or memory interface (memory I / F), system interface (system I / F, 0402), CT's , as well as the PAC. The execution cycles of the individual cycles are entered in the lines. Kl references a configuration to be executed 1.
Die erste Tabelle zeigt beispielsweise einen Ablauf bei Verwendung der System-DMA (EDMA) zum Datentransfer. Jede Zeile zeigt einen sequentiell ablaufenden Steuervorgang; die Spalten zeigen die jeweilige Aktivität in der entsprechenden Baugruppe :The first table shows, for example, a sequence when using the system DMA (EDMA) for data transfer. Each line shows a sequential control process; the columns show the respective activity in the corresponding assembly:
Figure imgf000015_0001
Figure imgf000015_0001
Figure imgf000016_0001
Figure imgf000016_0001
Es ist zu erwähnen, dass die Synchronisation zwischen der EDMA und der VPU automatisch über das Interface 0401 erfolgt, d.h. DMA-Tranfers finden nur statt, wenn die VPU dafür bereit ist.It should be mentioned that the synchronization between the EDMA and the VPU takes place automatically via the interface 0401, i.e. DMA transfers only take place if the VPU is ready for it.
In einer zweiten Tabelle ist beispielsweise ein bevorzugter optimierter Ablauf dargestellt. Die VPU besitzt selbst direkten Zugriff auf den Konfigurationsspeicher (0306) . Des weite- ren werden die Datentransfers durch DMA-Schaltung innerhalb der VPU ausgeführt, die beispielsweise fest implementiert sein können (PACT03) und/oder durch die Konfiguration von konfigurierbaren Teilen der PAC entstehen.A second table shows, for example, a preferred, optimized process. The VPU itself has direct access to the configuration memory (0306). Furthermore, the data transfers are carried out by DMA circuitry within the VPU, which can, for example, be permanently implemented (PACT03) and / or arise from the configuration of configurable parts of the PAC.
Figure imgf000016_0002
Figure imgf000017_0001
Figure imgf000016_0002
Figure imgf000017_0001
Der Arbeits- und Synchronisationsaufwand für die CPU ist minimal, wodurch eine maximale Performance erreicht wird.The work and synchronization effort for the CPU is minimal, which means maximum performance.
Weiterhin kann das Verfahren vorsehen, mehrere Konfigurationen auf unterschiedlichen Bereichen der VPU, also auf unterschiedlichen PAEs zugleich, auszuführen oder auf denselben Ressourcen zeitgemultiplext auszuführen.Furthermore, the method can provide for several configurations to be carried out on different areas of the VPU, that is to say on different PAEs at the same time, or to be time-multiplexed on the same resources.
Insbesondere kann eine Art "Double-Buffering" zur besonders einfachen und zugleich schnellen Rekonfiguration angewendet werden, in welchem eine Mehrzahl von VPUs vorgesehen sind, wobei ein Teil zu einem Zeitpunkt der VPUs rekonfiguriert werden kann, während ein anderer Teil rechnet und möglicherweise ein Weiterer inaktiv sein kann. Die Daten-, Trigger-, Statusverbindungen etc. werden zwischen der Mehrzahl von VPUs geeignet ausgetauscht und ggf. durch adressierte Busse und/oder Multiplexer/Demultiplexer entsprechend der aktuell aktiven und/oder zu rekonfigurierenden VPUs verschaltet.In particular, a type of "double buffering" can be used for particularly simple and at the same time fast reconfiguration, in which a plurality of VPUs are provided, one part being able to be reconfigured at a time of the VPUs, while another part is computing and possibly another is inactive can be. The data, trigger, status connections etc. are suitably exchanged between the plurality of VPUs and, if necessary, interconnected by addressed buses and / or multiplexers / demultiplexers in accordance with the currently active and / or reconfigurable VPUs.
Sämtliche erwähnten PACT Patentanmeldungen und deren Familienmitglieder sind zu Offenbarungszwecken vollumfänglich eingegliedert.All mentioned PACT patent applications and their family members are fully incorporated for disclosure purposes.
Beliebige weitere Ausgestaltungen und Kombinationen der erläuterten Erfindungen sind möglich und einem Fachmann offensichtlich. Es sei in diesem Zusammenhang insbesondere erwähnt, daß anstelle einer Kopplung einer VPU an einen CPU unter Verwendung der VPU als Koprozessor gleichfalls eine sol- ehe Kopplung unter Verwendung der CPU als Koprozessor möglich ist. Ein solcher Fall ist insbesondere dann bevorzugt, um bei der Compilierung als Programmteile mit nur geringer Parallelität und/oder geringen Vektoranteilen erkannte Befehlsstrukturen sequenziell abarbeiten zu lassen. Es ist dann insbeson- dere möglich, daß die VPU über Linklisten oder Tabellen die CPU aufruft. Die Linklisten oder Tabellen können dabei etwa Information enthalten, die angibt, wo Daten zu holen sind, unter welcher Adresse die CPU auf von ihr abzuarbeitende Programminformation zugreifen kann usw. Die Abfrage, ob die CPU dann mit der Abarbeitung der von ihr auszuführenden Programm- Teile fertig ist, kann wiederum über ein Polling oder dergl . geschehen. Auch hier ist es möglich, das Betriebssystem einzusetzen, um der CPU Aufgaben zuzuweisen und/oder die von ihr auszuführenden Tasks zu überwachen. Prinzipiell lassen sich demnach alle beschriebenen Verfahren sowohl für die Kopplung einer CPU an eine VPU als Coprozessor als auch umgekehrt verwenden. Wichtig kann dabei alleine werden, für welche Art der Kopplung das Betriebssystem ausgelegt ist. Es sei darauf hingewiesen, daß es insbesondere möglich ist, ein Betriebssystem vorzusehen, das eine wechselseitige Kopplung ermöglicht, also insbesondere wahlweise die CPU an die VPU bzw. Teile davon koppelt und umgekehrt. Letzteres ist etwa besonders vorteilhaft, wenn ganze Programmblöcke mit überwiegend sequenziellen Anteilen von der VPU als Host an die CPU als Koprozessor ab- gegeben werden sollen und diese Programmblöcke noch partiell stark vektoriellen oder parallelen Code aufweist, der von der CPU quasi Rückübertragen werden kann, insbesondere im Ansprechen auf eine ermittelte derzeitige oder prognostizierte VPU- Last . Any other configurations and combinations of the described inventions are possible and obvious to a person skilled in the art. In this context, it should be mentioned in particular that instead of coupling a VPU to a CPU using the VPU as a coprocessor, such a coupling is also possible using the CPU as a coprocessor is. Such a case is particularly preferred in order to have command structures identified as program parts with only low parallelism and / or small vector parts processed sequentially during compilation. It is then possible, in particular, for the VPU to call up the CPU via link lists or tables. The link lists or tables can contain information indicating where data can be obtained, the address at which the CPU can access the program information to be processed, etc. The query as to whether the CPU can then process the program parts to be executed by it finished, can in turn via polling or the like. happen. Here, too, it is possible to use the operating system to assign tasks to the CPU and / or to monitor the tasks to be performed by it. In principle, all of the methods described can be used both for coupling a CPU to a VPU as a coprocessor and vice versa. What is important here is the type of coupling for which the operating system is designed. It should be pointed out that it is in particular possible to provide an operating system which enables mutual coupling, that is to say in particular optionally couples the CPU to the VPU or parts thereof and vice versa. The latter is particularly advantageous, for example, if entire program blocks with predominantly sequential parts are to be delivered by the VPU as the host to the CPU as coprocessor and these program blocks still have partially strong vectorial or parallel code that can be quasi retransmitted by the CPU, in particular in response to a determined current or forecasted VPU load.

Claims

Titel: Rekonfigurierbares SystemTitle: Reconfigurable system
Patentansprücheclaims
1. Datenverarbeitungssystem, dadurch gekennzeichnet, daß zumindest ein rekonfigurierbarer Prozessor mit einem Standardprozessor (CPU) gekoppelt ist.1. Data processing system, characterized in that at least one reconfigurable processor is coupled to a standard processor (CPU).
2. Datenverarbeitungssystem nach Anspruch 1, dadurch gekennzeichnet, daß der rekonfigurierbare Prozessor als Coprozessor angeordnet ist.2. Data processing system according to claim 1, characterized in that the reconfigurable processor is arranged as a coprocessor.
3. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß ein Speicherund/oder I/O-Kopplungsmittel zur Ankopplung von Standardprozessor und rekonfigurierbarem Prozessor aneinander vorgesehen ist.3. Data processing system according to one of the preceding claims, characterized in that a memory and / or I / O coupling means for coupling the standard processor and the reconfigurable processor to one another is provided.
4. Datenverarbeitungssystem nach einem der vorhergehenden4. Data processing system according to one of the preceding
Ansprüche, dadurch gekennzeichnet, daß die Kopplungsmittel zur Ankopplung durch Übertragung von Daten und/oder Statusinformationen und/oder Konfigurationen ausgebildet sind.Claims, characterized in that the coupling means are designed for coupling by transmission of data and / or status information and / or configurations.
Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß die CPU und der rekonfigurierbare Prozessor und/oder deren Peripherie so ausgebildet sind, daß sie auf zumindest einen Teil der ihnen zur Verfügung stehenden Ressourcen und insbesondere auf einen Teil des Speicherbereiches gemeinsam zugreifen können. Data processing system according to one of the preceding claims, characterized in that the CPU and the reconfigurable processor and / or their peripherals are designed in such a way that they can jointly access at least part of the resources available to them and in particular part of the memory area.
6. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß zur Synchronisation zwischen CPU und rekonfigurierbarem Prozessor zumindest eine ein- und/oder mehrseitige Interrupt-Leitung vorgesehen ist.6. Data processing system according to one of the preceding claims, characterized in that at least one and / or multi-sided interrupt line is provided for synchronization between the CPU and the reconfigurable processor.
7. Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, daß der rekonfigurierbare Prozessor eigene Konfigurationslade- und/oder Kon- trollmittel aufweist, insbesondere zur zumindest partiellen Neu- und/oder Umkonfiguration ohne CPU-Eingang während der Laufzeit.7. Data processing system according to one of the preceding claims, characterized in that the reconfigurable processor has its own configuration loading and / or control means, in particular for at least partial reconfiguration and / or reconfiguration without CPU input during the runtime.
8. Ein auf einem Chip integriertes Datenverarbeitungssystem nach einem der vorhergehenden Ansprüche.8. A data processing system integrated on a chip according to one of the preceding claims.
9. Verfahren zur Datenverarbeitung mit einem rekonfigurierbaren und einem Standard-Prozessor, worin der Standardprozessor auf dem rekonfigurierbaren Prozessor auszufüh- rende Unterprogramme bzw. Unterprogrammteile aufruft und diese auf dem rekonfigurierbaren Prozessor ausgeführt werden oder umgekehrt.9. A method for data processing with a reconfigurable and a standard processor, wherein the standard processor calls subroutines or subroutine parts to be executed on the reconfigurable processor and these are executed on the reconfigurable processor or vice versa.
10. Datenverarbeitungsverfahren nach dem vorhergehenden An- spruch, dadurch gekennzeichnet, daß beim Aufruf des rekonfigurierbaren Prozessors Steuerinformation generiert wird.10. Data processing method according to the preceding claim, characterized in that control information is generated when the reconfigurable processor is called.
11. Datenverarbeitungsverfahren nach dem vorhergehenden An- spruch, dadurch gekennzeichnet, daß die Steuerinformation als Tabelle generiert wird, die insbesondere die auszuführende Konfiguration und/oder Zeiger auf entsprechende11. Data processing method according to the preceding claim, characterized in that the control information is generated as a table, in particular the configuration to be carried out and / or pointer to corresponding
Speicherstellen und/oder Datenquellen und/oder Operanden- Speicherstellen und/oder Ergebnisdaten-Speicherstellen bzw. Zeiger darauf umfaßt.Storage locations and / or data sources and / or operands Storage locations and / or result data storage locations or pointers to them.
12. Verfahren zum Betrieb eines Datenverarbeitungssystems nach einem der vorhergehenden Verfahrensansprüche, worin bei Aufruf des Coprozessors eine Linkliste erstellt und vom rekonfigurierbaren Prozessor abgearbeitet wird.12. A method for operating a data processing system according to one of the preceding method claims, wherein a link list is created when the coprocessor is called and is processed by the reconfigurable processor.
13. Verfahren nach einem der vorhergehenden Verfahrensansprü- ehe, dadurch gekennzeichnet, daß die zwischen rekonfigu- rierbarem -und Standardprozessor ausgetauschten Informationen eine Basisadresse eines Ladelogikspeicherbereiches zur Lokalisierung von Konfigurationen, eine Basisadresse von Datentransfers, I/O-Adressen von Datentransfers, Syn- chronisationsinformation, insbesondere betreffend Zurücksetzen, Anhalten oder Starten der VPU, und/oder Statusinformationen der VPU, insbesondere Fehler und/oder Zustände der Datenverarbeitung betrifft.13. The method according to any one of the preceding claims, characterized in that the information exchanged between the reconfigurable and standard processor includes a base address of a loading logic memory area for localizing configurations, a base address for data transfers, I / O addresses for data transfers, synchronization information , in particular with regard to resetting, stopping or starting the VPU, and / or status information of the VPU, in particular relating to errors and / or states of the data processing.
14. Verfahren zur Datenverarbeitung nach einem der vorhergehenden Verfahrensansprüche, dadurch gekennzeichnet, daß eine Synchronisation von CPU und VPU durch Polling von Statusdaten und/oder -Informationen und/oder durch eine Interruptsteuerung erfolgt. 14. Method for data processing according to one of the preceding method claims, characterized in that the CPU and VPU are synchronized by polling status data and / or information and / or by interrupt control.
PCT/EP2002/010084 2001-09-03 2002-09-09 Reconfigurable system WO2003025770A2 (en)

Priority Applications (26)

Application Number Priority Date Filing Date Title
EP02779326A EP1449109A2 (en) 2001-09-07 2002-09-09 Reconfigurable system
AU2002342668A AU2002342668A1 (en) 2001-09-07 2002-09-09 Reconfigurable system
US10/487,681 US7577822B2 (en) 2001-12-14 2002-09-09 Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization
PCT/EP2002/010479 WO2003025781A2 (en) 2001-09-19 2002-09-18 Router
AU2002338729A AU2002338729A1 (en) 2001-09-19 2002-09-18 Router
US10/490,081 US8429385B2 (en) 2001-09-03 2002-09-19 Device including a field having function cells and information providing cells controlled by the function cells
EP02791644A EP1472616B8 (en) 2001-09-19 2002-09-19 Reconfigurable elements
JP2003538928A JP4456864B2 (en) 2001-09-19 2002-09-19 Reconfigurable element
AU2002357982A AU2002357982A1 (en) 2001-09-19 2002-09-19 Reconfigurable elements
AT02791644T ATE533111T1 (en) 2001-09-19 2002-09-19 RECONFIGURABLE ELEMENTS
PCT/EP2002/010572 WO2003036507A2 (en) 2001-09-19 2002-09-19 Reconfigurable elements
EP03776856.1A EP1537501B1 (en) 2002-08-07 2003-07-23 Method and device for processing data
PCT/EP2003/008081 WO2004021176A2 (en) 2002-08-07 2003-07-23 Method and device for processing data
AU2003286131A AU2003286131A1 (en) 2002-08-07 2003-07-23 Method and device for processing data
JP2005506110A JP2005535055A (en) 2002-08-07 2003-07-24 Data processing method and data processing apparatus
EP03784053A EP1535190B1 (en) 2002-08-07 2003-07-24 Method of operating simultaneously a sequential processor and a reconfigurable array
PCT/EP2003/008080 WO2004015568A2 (en) 2002-08-07 2003-07-24 Data processing method and device
AU2003260323A AU2003260323A1 (en) 2002-08-07 2003-07-24 Data processing method and device
US10/523,764 US8156284B2 (en) 2002-08-07 2003-07-24 Data processing method and device
US12/247,076 US8209653B2 (en) 2001-09-03 2008-10-07 Router
US12/570,943 US8914590B2 (en) 2002-08-07 2009-09-30 Data processing method and device
US12/621,860 US8281265B2 (en) 2002-08-07 2009-11-19 Method and device for processing data
JP2009271120A JP2010079923A (en) 2001-09-19 2009-11-30 Processing chip, system including chip, multiprocessor device, and multi-core processor device
US12/947,167 US20110238948A1 (en) 2002-08-07 2010-11-16 Method and device for coupling a data processing unit and a data processing array
US13/023,796 US8686475B2 (en) 2001-09-19 2011-02-09 Reconfigurable elements
US14/923,702 US10579584B2 (en) 2002-03-21 2015-10-27 Integrated data processing core and array data processor and method for processing algorithms

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US31787601P 2001-09-07 2001-09-07
US60/317,876 2001-09-07
EP01129923 2001-12-14
EP01129923.7 2001-12-14
DE10206856 2002-02-18
DE10206856.9 2002-02-18

Publications (2)

Publication Number Publication Date
WO2003025770A2 true WO2003025770A2 (en) 2003-03-27
WO2003025770A3 WO2003025770A3 (en) 2004-02-26

Family

ID=27214707

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2002/010084 WO2003025770A2 (en) 2001-09-03 2002-09-09 Reconfigurable system

Country Status (3)

Country Link
EP (1) EP1449109A2 (en)
AU (1) AU2002342668A1 (en)
WO (1) WO2003025770A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2043000A2 (en) 2002-02-18 2009-04-01 PACT XPP Technologies AG Bus systems and reconfiguration method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994006077A1 (en) * 1992-08-28 1994-03-17 Siemens Aktiengesellschaft Computer system with at least one microprocessor and at least one coprocessor, and a method of operating the system
US5970254A (en) * 1997-06-27 1999-10-19 Cooke; Laurence H. Integrated processor and programmable data path chip for reconfigurable computing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994006077A1 (en) * 1992-08-28 1994-03-17 Siemens Aktiengesellschaft Computer system with at least one microprocessor and at least one coprocessor, and a method of operating the system
US5970254A (en) * 1997-06-27 1999-10-19 Cooke; Laurence H. Integrated processor and programmable data path chip for reconfigurable computing

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DONANDT J: "Improving response time of programmable logic controllers by use of a Boolean coprocessor" COMPEURO '89., 'VLSI AND COMPUTER PERIPHERALS. VLSI AND MICROELECTRONIC APPLICATIONS IN INTELLIGENT PERIPHERALS AND THEIR INTERCONNECTION NETWORKS', PROCEEDINGS. HAMBURG, WEST GERMANY 8-12 MAY 1989, WASHINGTON, DC, USA,IEEE COMPUT. SOC. PR, US, 8. Mai 1989 (1989-05-08), Seiten 4-167-4-169, XP010016181 ISBN: 0-8186-1940-6 *
HAUSER J R ET AL: "Garp: a MIPS processor with a reconfigurable coprocessor" FIELD-PROGRAMMABLE CUSTOM COMPUTING MACHINES, 1997. PROCEEDINGS., THE 5TH ANNUAL IEEE SYMPOSIUM ON NAPA VALLEY, CA, USA 16-18 APRIL 1997, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 16. April 1997 (1997-04-16), Seiten 12-21, XP010247463 ISBN: 0-8186-8159-4 *
KOCH A ET AL: "PRACTICAL EXPERIENCES WITH THE SPARXIL CO-PROCESSOR" CONFERENCE RECORD OF THE 31ST ASILOMAR CONFERENCE ON SIGNALS, SYSTEMS & COMPUTERS. PACIFIC GROVE, CA., NOV. 2 - 5, 1997, ASILOMAR CONFERENCE ON SIGNALS, SYSTEMS AND COMPUTERS, LOS ALAMITOS, CA.: IEEE, US, Bd. 1, 2. November 1997 (1997-11-02), Seiten 394-398, XP000883965 ISBN: 0-8186-8317-1 *
TENCA A F ET AL: "A variable long-precision arithmetic unit design for reconfigurable coprocessor architectures" FPGAS FOR CUSTOM COMPUTING MACHINES, 1998. PROCEEDINGS. IEEE SYMPOSIUM ON NAPA VALLEY, CA, USA 15-17 APRIL 1998, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 15. April 1998 (1998-04-15), Seiten 216-225, XP010298173 ISBN: 0-8186-8900-5 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2043000A2 (en) 2002-02-18 2009-04-01 PACT XPP Technologies AG Bus systems and reconfiguration method

Also Published As

Publication number Publication date
WO2003025770A3 (en) 2004-02-26
EP1449109A2 (en) 2004-08-25
AU2002342668A1 (en) 2003-04-01

Similar Documents

Publication Publication Date Title
EP1402382B1 (en) Data processing method
EP1146432B1 (en) Reconfiguration method for programmable components during runtime
DE10085374B4 (en) System management memory for the system management interrupt handlers is integrated into the memory controller, regardless of the BIOS and operating system
DE4222043C1 (en)
DE60008139T2 (en) CACHE STORAGE ARRANGEMENT FOR A DIGITAL SIGNAL PROCESSOR
DE19815263C2 (en) Device for fault-tolerant execution of programs
US20040249880A1 (en) Reconfigurable system
DE102013113262B4 (en) trigger routing unit
EP1518186A2 (en) Method and device for data processing
EP1449083B1 (en) Method for debugging reconfigurable architectures
DE4429764C2 (en) Timer device for a microcomputer
EP1116129B1 (en) Configurable hardware block
DE10139660B4 (en) Programmatic unit with debug resources
EP1449109A2 (en) Reconfigurable system
EP1308846B1 (en) Data Transfer Device
EP1260905B1 (en) Program-controlled unit
EP0108415B1 (en) Integrated microprogrammed device for the control of information processing execution and method for its operation
WO1999044135A1 (en) Synchronisation and/or data exchange method for secure, fault-tolerant computers and corresponding device
EP1365325B1 (en) Device for in-circuit-emulation of a programmable unit
DE10212622A1 (en) Computer program translation method allows classic language to be converted for system with re-configurable architecture
DE19827914C1 (en) Application specific integrated circuit for processing defined sequences of assembly commands
DE102009037158B4 (en) Control device for controlling an electric drive
DE4142161C2 (en) Bus emulation device
WO2001065369A2 (en) Computer node architecture comprising a dedicated middleware processor
EP1249759A1 (en) Program controlled unit

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY CA CH CN CO CR CU CZ DE DK DM DZ EC EE FI GB GD GE GH GM HR HU ID IL IN JP KE KG KP KR KZ LC LK LR LS LT LV MA MD MG MK MN MW MX MZ NZ OM PH PL PT RO RU SD SE SG SI SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ UG ZM ZW AM AZ BY KG KZ RU TJ TM AT BE BG CH CY CZ DK EE ES FI FR GB GR IE IT LU MC PT SE SK TR BF BJ CF CG CI GA GN GQ GW ML MR NE SN TD TG AE AG AL AM AT AZ BA BB BG BR BY BZ CA CH CN CO CR CZ DE DK DM DZ EC EE ES FI GB GD GE GM HR HU ID IL IN IS JP KE KG KP KR KZ LK LR LS LT LU LV MA MD MG MK MN MX MZ NO NZ OM PH PL PT RO RU SD SE SI SK SL TJ TM TN TR TT TZ UA UG UZ VC YU ZA ZM ZW GH GM KE LS MW MZ SL SZ TZ UG ZM ZW

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2002779326

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 10487681

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 2002779326

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 2002779326

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP