WO2006046711A1 - 再構成可能な論理回路を有するデータ処理装置 - Google Patents

再構成可能な論理回路を有するデータ処理装置 Download PDF

Info

Publication number
WO2006046711A1
WO2006046711A1 PCT/JP2005/019924 JP2005019924W WO2006046711A1 WO 2006046711 A1 WO2006046711 A1 WO 2006046711A1 JP 2005019924 W JP2005019924 W JP 2005019924W WO 2006046711 A1 WO2006046711 A1 WO 2006046711A1
Authority
WO
WIPO (PCT)
Prior art keywords
cycle
information
circuit
mapping information
logic circuit
Prior art date
Application number
PCT/JP2005/019924
Other languages
English (en)
French (fr)
Inventor
Hiroki Honda
Original Assignee
Ipflex Inc.
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 Ipflex Inc. filed Critical Ipflex Inc.
Priority to EP20050805358 priority Critical patent/EP1806847B1/en
Priority to AT05805358T priority patent/ATE458309T1/de
Priority to US11/718,195 priority patent/US7779380B2/en
Priority to DE200560019448 priority patent/DE602005019448D1/de
Priority to JP2006542353A priority patent/JP4893309B2/ja
Publication of WO2006046711A1 publication Critical patent/WO2006046711A1/ja
Priority to US12/831,360 priority patent/US8713492B2/en
Priority to US14/095,317 priority patent/US9135387B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation

Definitions

  • the present invention relates to a data processing apparatus having a reconfigurable logic circuit.
  • FPGA Field Programmable Gate Array
  • FP GA Field Programmable Gate Array
  • the initial netlist that characterizes the logic circuit is divided into many pages, and the FPGA 1 It describes the implementation of one circuit. In this way, we are trying to enable the implementation of circuits that are much larger than the physical capacity of FPGAs.
  • Special Table 2003-518666 the design netlist is divided into a static macro group and a reconfigurable macro context group, and each of the reconfigurable contexts is concatenated to place the initial device context. The wiring is described.
  • the present invention provides a technology for mounting a circuit for executing an application on hardware that can be reconfigured on a cycle basis.
  • This hardware can change the circuit configuration for each site. Therefore, it is only possible to perform dynamic reconfiguration at the functional module level in units of 500 to 000 cycles using the above conventional technology. It becomes possible to perform dynamic reconfiguration in finer units or cycles, and the applicable range of dynamic reconfiguration is expanded.
  • the reconfiguration usage form qualitatively changes the function module level power to the operation state level. For this reason, control information and a method suitable for controlling a data processing apparatus having such a reconfigurable logic circuit are provided.
  • One aspect of the present invention is a data processing apparatus having a logic circuit that can be reconfigured for each cycle and a library that stores hardware control information.
  • the hardware control information includes multiple cycle-based mapping information for mapping multiple cycle-based circuits for realizing each cycle-by-cycle function for executing an application to individually reconfigurable logic circuits.
  • the configuration selection information for selecting at least one of the cycle-based mapping information depending on the execution state of the application.
  • the data processing apparatus includes a control unit that reconfigures at least a part of the logic circuit based on at least one of the plurality of cycle-based mapping information in response to a request for each cycle based on the configuration selection information.
  • the plurality of cycle-based mapping information may include composite cycle-based mapping information in which cycle-based mapping information that can be merged without hindering the function of each cycle is merged.
  • the plurality of cycle-based mapping information may include information for mapping the control unit for each cycle to the logic circuit. In this case, the control unit for each cycle is reconfigured to the logic circuit. .
  • Another aspect of the present invention is a data processing device having a logic circuit that can be reconfigured for each cycle and a library that stores hardware control information, and at least one of the logic circuits.
  • the part is reconstructed from at least one of the plurality of cycle-based mapping information according to the request for each cycle based on the configuration selection information.
  • Multiple cycle-based mapping information power When information for mapping the control unit for each cycle to the logic circuit is included, at least a part of the logic circuit is a control unit for each cycle reconfigured in the logic circuit. Reconfigured upon request.
  • One of the different aspects of the present invention is a method for controlling a data processing apparatus having a logic circuit that can be reconfigured for each cycle, and is reconfigurable based on hardware control information. Reconfiguring at least a part of the logic circuit, and the reconfiguring step selects at least one of a plurality of cycle-based mapping information in response to a request for each cycle based on the configuration selection information.
  • a control method comprising reconfiguring at least a part. Multiple cycle-based mapping information power Each of the information for mapping the control unit for each cycle to the logic circuit is included, and the reconfiguration step is a request for the control unit for each cycle reconfigured in the logic circuit. Reconfiguring at least part of the logic circuit.
  • One of the different aspects of the present invention is a generation system for generating hardware control information for controlling a reconfigurable logic circuit, and for each cycle for executing an application.
  • This is a generation system having a function of generating circuit information of a plurality of cycle-based circuits for realizing each function and a function of generating hardware control information.
  • One of the different aspects of the present invention is a method of generating information for controlling a reconfigurable logic circuit according to the present invention, which has a cycle-by-cycle function for executing an application. Steps for generating circuit information for multiple cycle-based circuits for realizing each, multiple cycle-based mapping information for mapping the cycle-based circuits to individually reconfigurable logic circuits, and execution of applications Generating hardware control information including configuration selection information for selecting at least one of the cycle-based mapping information depending on the state.
  • the functions for each cycle are circuitized for each cycle.
  • the cycle advances in units of clocks, so it can be said that the above-mentioned functions are circuitized for each clock.
  • the cycle-based circuit information (hereinafter also referred to as “CB circuit information”) for realizing the functions for each cycle for executing an application is described in RTL, RTL is generated for each cycle. Will be.
  • CB mapping information a cycle based circuit
  • CB Circuit a cycle based circuit
  • FFs are inserted in order to create a line
  • selectors for switching the inputs of logic elements such as arithmetic units and registers to share them, and generating selector control signals are not used. Basically it does not occur.
  • the configuration of the CB circuit mapped to the reconfigurable logic circuit basically does not include an input switching selector or the like, and the data path also represents only what is necessary in the cycle.
  • the selector control signal for selecting the logic by switching the input of the logic element is not necessary, and instead, the logic is selected by the configuration selection information for selecting the CB mapping information according to the execution state of the application. Therefore, according to the present invention, the reconfigurable circuit area can be changed from the functional module level usage form to the operation state level usage form.
  • a step of extracting cycle-based mapping information that can be merged without interfering with a function for each cycle from a plurality of cycle-based mapping information, and merging them to generate composite cycle-based mapping information desirable is not the case of combining circuits across cycles along the signal transmitted between cycles, but reducing the type of CB mapping information and the CB required to run the application.
  • the purpose is to reduce the amount of mapping information. Therefore, instead of selecting and merging adjacent CB mapping information as the timing for mapping, even if the timing is far away, the ones that have a common point in the configuration of the CB circuit are merged, and the function of a certain cycle is achieved. Is not necessary, but does not hinder its function, generating composite CB mapping information with wiring or merging the ones with little CB mapping information to generate independent CB circuit with one composite CB mapping information To include.
  • configuration selection information for each cycle can be generated and merged with cycle-based mapping information.
  • the CB circuit mapped by the CB mapping information includes a configuration that generates configuration selection information for each cycle, so the application is executed by mapping or reconfiguring the CB circuit to a reconfigurable logic circuit. it can.
  • step of generating circuit information information on a plurality of cycle-based circuits can be generated based on a control data flow diagram for executing an application. For example, when application specifications are given in a high-level language such as C language, CB circuit information can be generated from C language and CB mapping information can be generated. In the process of generating circuit information, it is possible to generate multiple cycle-based circuit information by disassembling the RTL for executing applications into a cycle base. Using RTL assets that have already been designed to RTL, CB circuit information can be generated and CB mapping information can be generated.
  • the hardware control information of the present invention can be provided by being recorded on a suitable recording medium such as a ROM.
  • the hardware control information can be transmitted by wire or wirelessly using a computer network such as the Internet. Then, an application can be executed by a data processing device having a reconfigurable logic circuit.
  • FIG. 1 shows a schematic configuration of a data processing device controlled by hardware control information.
  • FIG. 2 shows a schematic configuration of a data processing apparatus different from FIG.
  • FIG. 3 Shows the hardware configuration of the RC area where the circuit can be reconfigured on a cycle basis.
  • FIG. 10 Flowchart showing the process of determining the hardware configuration for C language specification for FPGA or ASIC.
  • FIG. 11 Flow chart showing the process of generating ASIC mask pattern and FPGA configuration information in more detail.
  • FIG. 12 is a block diagram showing an outline of a system for generating hardware control information.
  • FIG. 13 is a flowchart showing a method for generating hardware control information.
  • Fig. 14 (a) shows an example of C language specification
  • Fig. 14 (b) shows an example of CDFG.
  • Figure 16 shows an example of a circuit for ASIC or FPGA, and Figure 16 (b) shows an example of FSM.
  • FIG. 17 Shows the RTL description of the circuits of Fig. 16 (a) and (b).
  • FIG. 18 shows the circuit in cycle 0, and FIG. 18 (b) shows its RTL description.
  • Figure 19 shows the circuit of cycle 1 and Figure 19 (b) shows its RTL description.
  • FIG. 20 shows the circuit of cycle 2 and FIG. 20 (b) shows its RTL description.
  • Figure 22 shows the merged circuit of cycles 1 and 2, and Figure 20 (b) shows its RTL description.
  • FIG. 24 shows an outline of a control method of the data processing device.
  • FIG. 25 is a flowchart showing a different method for generating hardware control information.
  • FIG. 26 is a flowchart showing yet another method for generating hardware control information.
  • FIG. 28 shows an example of merging RTL descriptions.
  • the data processing apparatus 1 shown in FIG. 1 includes a logic circuit area (RC area, reconfigurable area) 10 capable of dynamically reconfiguring a circuit, and hardware for executing several applications.
  • An electronic device including a memory 3 for the library 2 storing (recording) the control information 20 is, for example, an LSI, an IC, a chip, or a chip set.
  • the data processing device 1 may be an optical device or an optoelectronic device. This data processing device 1 further acquires (cycles or downloads) desired cycle-based mapping information (CB mapping information) 21 of the hardware control information 20 from the library 2 and loads it into the RC area 10 or RC.
  • CB mapping information desired cycle-based mapping information
  • the data processor 1 includes a RAM 5 in which the application program 4 is stored, a memory 6 for work, an interrupt control unit (IU) 7 that receives an interrupt signal, and each hardware resource of the data processor 1.
  • a clock generation source 8 for supplying a clock signal to the external memory and a data input / output interface 9 for controlling data input / output to / from an external memory are provided.
  • MU11, RLC12, and IU7 can be mounted on or implemented in a data processing device by a fixed circuit.
  • the functions as the MU 11, RLC 12 and IU 7 are realized by mapping or reconfiguring a desired circuit in the RC area 10 using the CB mapping information 21.
  • the library 2 also stores hard- ware control information 29 for configuring a circuit that supports the basic system of the data processing apparatus 1.
  • FIG. 2 shows a schematic configuration of different data processing apparatuses.
  • This data processing device 1 is also a data processing device having an RC area 1 which is a logic circuit that can be reconfigured every cycle, and a memory 3 for the library 2 storing hardware control information 20.
  • information for generating a circuit that provides the functions as the MU 11 and the RLC 12 is included in the individual CB mapping information 21 of the hardware control information 20. . Therefore, CB times per cycle or upon request per cycle Reconfigured in RC region 10 along with circuitry to run the application as path 19.
  • the selection information 22 is also cycle-based and included in the CB mapping information 21. Therefore, this is an area that can be reconfigured on a cycle basis to execute the most powerful applications in the RC area 10. When multiple applications are executed simultaneously, different CB circuits 19 are reconfigured in the RC area 10 in order to execute multiple applications.
  • the reconfigurable area 10 can be reconfigured on a cycle basis, but does not necessarily need to be reconfigured on a site basis. Considering the power consumption required to reconfigure a circuit, it may be desirable not to reconfigure a circuit that does not require reconfiguration on a cycle basis. Furthermore, if there are enough hardware resources for the reconfigurable area 10 and it is sensible that the CB circuit 19 once configured is used even several clocks ahead, the CB circuit 19 can be continued. It is also effective. Therefore, the circuit configured in RC area 10 to execute the application can be divided into several CB circuits 19, all or part of which can be reconfigured on a cycle-by-cycle basis. Is done.
  • FIG. 3 shows an example of the RC region 10 in which the circuit can be reconfigured on a cycle basis.
  • This RC region 10 is arranged in a grid (array or matrix), and a circuit block (rxe-plane) 51, which is a set of a plurality of elements that can change each logical operation, and a circuit block 51 And wiring 52 for connecting the two.
  • the CB mapping information 21 is preferably generated so as to map the CB circuit 19 in units of the circuit block 51. That is, when the CB circuit 19 for realizing the function of a certain cycle is mapped by consuming a plurality of circuit blocks 51, the CB circuit 19 is configured by a plurality of CB mapping information 21 corresponding to the number of circuit blocks 51.
  • CB mapping information 21 It is desirable to generate CB mapping information 21. If the CB circuit 19 that realizes the function of the next cycle can be realized by reconfiguring one or more circuit blocks 51, the amount of CB mapping information 21 for mapping can be reduced. it can. In addition, the amount of information can be reduced by merging the CB mapping information 21 in units of the circuit block 51.
  • FIG. 4 shows the configuration of one circuit block 51.
  • This circuit block 51 has 16
  • the logic elements 53 are arranged in a 4 X 4 array structure! Each logical element 53 is connected to a logical element 53 adjacent in the four directions, top, bottom, left, and right of the drawing by a 4-bit layer 1 bus 54. Furthermore, a layer 2 bus 55 is also provided that connects to the logical element 53 located outside the logical element 53 adjacent to the upper, lower, left, and right sides. For this reason, the logic elements 53 can be connected more flexibly. Furthermore, it is possible to arrange a layer 3 bus that jumps three logic elements 53.
  • Each logical element 53 has a function as a logical operation element and a function as a wiring switch for switching connection between the logical elements. Since the logic to be operated and the state of the wiring connection need to be changed or exchanged at high speed, this RC area 10 has an element called RXE (Rapid exchange Element) 53 that can be exchanged at high speed. Is arranged.
  • RXE Rapid exchange Element
  • FIG. 5 shows the configuration of RXE53.
  • the RXE53 is a logical circuit for the four inputs 61, the four outputs 62, the input interface 63 for selecting arbitrary input data from the four inputs 61, and the input data ⁇ i selected by the input interface 63.
  • Computation core 65 that computes and outputs data, and output interface 64 that can select any of the four systems of input 61 and output data ⁇ o of computation core 65 and connect to four systems of output 62 ing.
  • the arithmetic core 65 is configured to change the logical operation, and functions as an arithmetic element capable of changing the logic.
  • the input interface 63 has a configuration in which a plurality of 16-to-1 selectors 63s for selecting an arbitrary 1 bit from the four systems of inputs 61 are arranged.
  • the output interface 64 has a configuration in which a plurality of 7-to-1 selectors 64s, which also serve as the routing of the output ⁇ from the arithmetic core 65 and the four inputs 61, are arranged.
  • FIG. 6 shows the configuration of the arithmetic core (rxe-core) 65.
  • the arithmetic core 65 is provided with a selector 66 that receives a 16-bit function code ⁇ f for instructing a logical operation and selects output data ⁇ o by input data ⁇ i.
  • the arithmetic core 65 further decodes the 4-bit input data ⁇ i to generate a selection signal for the 16-bit selector 66 and either the data of the four inputs 61 or the output data ⁇ o Register 68 and selectors 69a and 69b for selecting the signal latched in register 68. ing.
  • FIG. 7 and FIG. 8 show the operation of the arithmetic core 65.
  • the operation of the arithmetic core 65 changes depending on the mode signal ⁇ m.
  • the arithmetic core 65 In mode 0 of FIG. 7, the arithmetic core 65 generates 1-bit output data ⁇ from the 4-bit input data ⁇ ⁇ , latches the output data ⁇ ⁇ in the register 68, and outputs it.
  • the arithmetic core 65 In mode 1 of FIG. 7, the arithmetic core 65 generates 4-bit input data (1-bit output data ⁇ from ⁇ and outputs the output data ⁇ without latching it in the register 68.
  • Output data ⁇ ⁇ depends on the result of decoding the 16-bit function code ⁇ f and the input data ⁇ i, and therefore, in these modes 0 and 1, as shown in FIG.
  • the arithmetic core 65 can be used as more than nine different logic operation elements from 4-input AND to 4-input comparator.
  • the arithmetic core 65 performs a logical operation on the combination of the selector 66 and the function code ⁇ f. For this reason, there is no need to set logic in a lookup table (LUT) that uses storage elements such as SRAM, unlike conventional FPGAs. Therefore, the cycle for inputting / outputting to / from the SRAM can be omitted, and the calculation performed in the calculation core 65 can be exchanged instantaneously at the timing when the function code ⁇ f is output to the calculation core 65. For this reason, the calculation core 65 is called a high-speed exchange calculation element, and the calculation function can be changed on a cycle basis by switching and supplying the function code ⁇ ⁇ on a cycle basis.
  • the functions of input interface 63 and output interface 64 can also be changed on a cycle basis. Therefore, the functions and connections of RXE53 can be changed for each cycle, and a different circuit for each cycle can be configured in RC area 10 constituted by RXE53.
  • one arithmetic core 65 functions as two arithmetic elements that output a one-bit output signal ⁇ o with respect to a two-bit input signal ⁇ i.
  • the built-in 16-to-1 selector 66 force is set to operate as two 4-to-1 selectors.
  • the arithmetic core 65 is used as seven or more different logical arithmetic elements from the inverter to the 2-input EXNOR by changing the function code ⁇ ⁇ as shown in FIG. be able to.
  • the arithmetic core 65 can be used as an arithmetic element that outputs a 1-bit output signal ⁇ o with respect to a 3-bit input signal ⁇ i. If the additional Karobit input is allowed, the built-in 16-to-1 selector 66 can be set to operate as two 3-to-1 selectors. It can also be used as an arithmetic element. In these modes 5 to 7, as shown in FIG. 9, the arithmetic core 65 changes the function code ⁇ ⁇ so that it can be used as five or more different logical arithmetic elements from three-input AND to full one. Can be used.
  • the RXE 53 constituting the RC area 10 can exchange logic at high speed by a selector method.
  • the RXE53 further includes a register 68 for latching output data, so that output data can be output through or output in synchronization with the clock by the FZF. Therefore, a combinational circuit (decoder) often used in a digital circuit, a sequential circuit (state machine), and an arithmetic circuit (data path) must be efficiently implemented and executed by the CB mapping information 21 of the hardware control information 20. Can do.
  • This reconfigurable logic element (RXE) 53 is considered to form a two-dimensional array or matrix. Therefore, it is equipped with four input / output lines suitable for two-dimensional grid arrangement. However, if the network connecting the elements is one-dimensional, it can be handled with two or three inputs / outputs. Furthermore, if the network connecting the elements is three-dimensional, it is desirable to prepare more than 5 inputs and outputs.
  • this computing core (rxe-core) uses a look-up table (LUT) if it can allow multiple cycles of force logic to replace force logic that uses a selector method so that it can be exchanged at high speed. It is also possible to adopt an arithmetic core equipped with).
  • FIG. 10 shows an example of an ASIC or FPGA design method.
  • This design method 110 is a method for generating a circuit 93 to be mounted on an ASIC or FPGA from a behavioral level description such as C language 91, and has recently been widely used as the design scale increases.
  • the behavioral level description capability of C language 91 and the like is also generated through the behavioral synthesis tool to generate the hardware description 92 by RTL (Register Transfer Level).
  • RTL Registered Transfer Level
  • RTL92 is a representation of circuit functions using hardware description languages such as Verilog or VHDL, and is converted into the desired ASIC mask pattern or FPGA configuration information by using a logic synthesis tool and place-and-route tool for ASIC or FPGA.
  • This design method 110 is sometimes called behavioral synthesis. It is provided as a software synthesis tool for supporting the design and development of software (program) power ASIC or FPGA that performs these processes by a computer equipped with appropriate hardware resources. Many behavioral synthesis tools consist of a combination of tools (programs) that perform each process.
  • FIG. 11 is a flowchart showing the processing of the behavioral synthesis tool for ASICZFPGA.
  • the behavioral synthesis tool for ASICZFPGA first analyzes a behavior level description 91 such as C language to generate a control data flow graph (CDFG) 94.
  • CDFG control data flow graph
  • step 72 scheduling, arithmetic unit allocation, and register allocation are performed, and a data path 31 and a control state machine 32 for realizing a function for each cycle are generated.
  • step 81 these data paths 31 are combined into a pipeline, or an arithmetic unit and a register are shared so that the data path 31 can be realized with as few hardware resources as possible.
  • an input selector is inserted on the input side of the arithmetic unit and the register, and an FF is inserted to synchronize the timing.
  • the control state machine 32 is configured to output an appropriate selector control signal, and a target RTL (No. 1 software description) 92 is generated.
  • step 82 the netlist 95 is generated by the logic synthesis tool, and then in step 83, the timing convergence is examined by the place and route tool, and the mask pattern for manufacturing the ASIC or mapping to the FPGA is performed.
  • Generate configuration information 96 is generated by the logic synthesis tool, and then in step 83, the timing convergence is examined by the place and route tool, and the mask pattern for manufacturing the ASIC or mapping to the FPGA is performed.
  • FIG. 12 shows an outline of a system 100 that generates hardware control information 20 for controlling the data processing device 1 including the RC region 10 that is a logic circuit that can reconfigure a circuit on a cycle basis.
  • input information 106 is input to a storage device 105 such as an HDD, and a plurality of cycle-based circuit circuits for realizing functions for each cycle for executing an application from the input information 106 are provided.
  • a function 101 for generating the path information 38 and a function 102 for generating the hardware control information 20 are included. These functions 101 may exchange information in a state where the information 38 and 20 generated in each is stored in the storage device 105 which may be transmitted by communication between these functions.
  • the hardware control information 20 includes a plurality of cycle-based mapping information (CB mapping information) 21 for mapping a plurality of cycle-based circuits to the RC area 10 respectively, and at least of the cycle-based mapping information depending on the execution state of the application. It includes configuration selection information 22 for selecting one of them.
  • the generation system 100 further includes a function 103 that merges the CB mapping information 21 to generate hardware control information 20 including composite cycle-based mapping information.
  • the input information 106 of the generation system 100 may be a specification of the target application itself, for example, an application program, or nodeware information that has already been generated to execute the application. May be.
  • Input information 106 includes high-level language-based specifications such as C language program 91, data flow-based specifications such as CDFG94, and circuit information-based specifications such as RTL92.
  • This generation system 100 is provided as a tool for design and development support of the data processing apparatus 1.
  • the generation system 100 is realized by installing software (programs) for realizing the functions of the generation system 100 on a computer having appropriate hardware resources, like a compiler or other design support tool.
  • Each function 101 to 103 can be recorded on a suitable recording medium such as a CD-ROM as a tool (program) for performing each processing, or can be provided via a computer network.
  • the generation system 100 can also be realized by a distributed system composed of a plurality of sanoes connected by a computer network.
  • FIG. 13 is a flowchart showing a method 79 for generating hardware control information 20 having information suitable for mapping to a RC area 10 in which a circuit can be reconfigured on a cycle basis.
  • the method 79 for generating the hardware control information 20 is an example of a generation method that can be executed in the generation system 100, and the processing flow varies depending on the type of information input as a specification.
  • step 72 data path (data path for each cycle) 31 and control state machine (control FSM) 32 for realizing functions for each cycle by scheduling, arithmetic unit allocation, register allocation, or integration. And generate
  • step 73 cycle-by-cycle data path 31 is described by cycle-by-cycle RTL 33, and circuit information (CB circuit information) of the cycle base circuit (CB circuit) that performs the function for each cycle is generated.
  • the function of the control state machine 32 is converted into selection information 34 for selecting a cycle-based configuration.
  • information including CB circuit information 33 and selection information 34 is supplied to the next step as circuit information 38 of the cycle base circuit.
  • step 74 RTL33 for each cycle is individually logically synthesized, placed and routed, and CB mapping information 21 for mapping to RC area 10 for each cycle and its mapping information Hardware control information including configuration selection information 22 for selecting 21 on a cycle basis is generated.
  • step 75 in order to align the circuit scale for each cycle, information that can be merged without interfering with the function for each cycle in the plurality of CB mapping information 21 is merged, and combined cycle is performed.
  • Base mapping information (composite CB mapping information) 23 is generated.
  • the configuration selection information 22 is merged so that the CB mapping information 21 including the composite CB mapping information 23 is selected. In this way, nodeware control information 20 including CB mapping information 21 and configuration selection information 22 that configure a circuit for executing an application is generated.
  • the composite of the CB mapping information 21 can be performed at the RTL33 stage, and the composite CB mapping information 23 can be generated by logical synthesis, placement and routing of the composite RTL for each cycle. It is.
  • the circuit scale mapped by the CB mapping information 23 is set to the same level, for example, the scale corresponding to the unit of the circuit block (rxe-plane) 51 described above.
  • the types of CB mapping information 21 included in the hardware control information 20 can be reduced, and the amount of information of the hardware control information 20 necessary for executing the application can be reduced.
  • the same arithmetic unit may be selected for different purposes by switching the wiring itself every cycle.
  • the input / output to the arithmetic unit or register does not affect the function of the cycle, it may be combined by ignoring (don't care) those inputs / outputs.
  • FIG. 14 (a) shows a simple example of C source code 91
  • Fig. 14 (b) shows CDF G94 after analysis.
  • Figure 15 shows the results of extracting the functions for each cycle by scheduling this CDFG94 under the condition that "the delay time of the computing unit is greater than half the clock period". In this scheduling, calculation is performed over three cycles from cycle 0 to cycle 2 while storing the intermediate results in the three registers R1 to R3.
  • Figure 15 shows data path 31 and control FSM 32 that provide cycle-by-cycle functionality.
  • FIG. 16 (a) shows a circuit configuration 92c in which the data path 31 for each cycle is expressed as one integrated circuit including all functions for all cycles.
  • the circuit configuration 92c includes an input selector and its control signal (select signal) in addition to an arithmetic unit and a register for realizing a data path function.
  • Figure 16 (b) shows the circuit configuration of FSM32.
  • This circuit configuration 92c is a circuit generated for ASIC or FPGA, and a selector 92s is added to the input side of each arithmetic unit 92a, 92b and registers R1 and R3 in order to use the arithmetic units and registers. Yes.
  • the control signals of these selectors 92s are output from the FSM circuit 32 in FIG. 16 (b).
  • FIG. 17 shows an RTL description 92 corresponding to the circuit configuration 92c shown in FIG. 16 (a).
  • An RTL description 92 corresponding to the circuit configuration 92c in FIG. 16 (a) is generated and passed through a logic synthesis tool and a place-and-route tool to generate an ASIC mask pattern or FPGA configuration information 96. .
  • FIGS. 18 to 21 show circuit information 33 for each cycle and the CB circuit 33 a mapped by the circuit information 33.
  • the circuit information 33 for each cycle and the CB circuit 33a are examples generated in step 73 of the generation method 79 for the input information in FIG. 18A shows a CB circuit 33a corresponding to the data path 31 in cycle 0, and FIG. 18B shows the CB circuit information, that is, the RTL description 33.
  • 19A shows a circuit configuration 33a corresponding to the data path 33 in cycle 1
  • FIG. 19B shows its RTL description 33.
  • 20A shows a circuit configuration 33a corresponding to the data path 33 in cycle 2
  • FIG. 20B shows its RTL description 33.
  • FIG. 21 shows configuration selection information 34 obtained by converting information 32 for selecting a function in units of cycles into information for selecting a configuration in units of cycles. This configuration selection information 34 indicates the CB circuit 33a to be executed corresponding to the state number, and is simple information.
  • the processing given by the C source code 91 shown in Fig. 14 (a) can be realized by using the function 31 for each cycle shown as the data path in Fig. 15 in units of cycles. Therefore, it can be realized by reconfiguring the circuit 33a for each cycle shown in FIG. 18 (a), FIG. 19 (a) and FIG. 20 (a) in the RC region 10 of the data processor 1. Therefore, in step 74, the RTL descriptions 33 shown in Fig. 18 (b), Fig. 19 (b) and Fig. 20 (b) corresponding to the circuit 33a for each cycle are individually synthesized.
  • information (CB mapping information) 21 to be mapped to the RC area 10 can be generated.
  • the hardware control information 20 including the CB mapping information 21 and the information 22 for controlling the CB mapping information 21 is obtained. Can be generated.
  • the CB circuit 33a reconfigured in the RC area 10 of the data processing device 1 based on the CB mapping information 21 is the one shown in FIGS. 18 (a), 19 (a), and 20 (a). become.
  • the arithmetic units 37a and 37b and the registers R1 and R3 are input. There is no selector on the power side. Therefore, the configuration is simplified compared with the circuit shown in Fig. 16, and each CB circuit is realized even if the hardware scale of RC area 10 is small or a part of RC area 10 is used. it can.
  • the CB circuit 33a in cycle 1 in FIG. 19 (a) does not use the arithmetic unit 37a.
  • the CB circuit 33a in cycle 2 of Fig. 20 (a) does not use the arithmetic unit 37b and the register R2.
  • both arithmetic units are used in one cycle. Therefore, in order to implement the function of C source code 91 given in Fig. 14 (a) at the timing (performance) shown in Fig. 15, both computing units 37a and 37b are realized in one cycle. Therefore, it is necessary to secure reconfigurable hardware in the RC area 10 that is large enough for this.
  • FIG. 22 and FIG. 23 show an example in which the mapping information 21 for each cycle described above is merged in step 75.
  • FIGS. 23 and 24 show how the circuits for each cycle are merged by the CB circuit 33a and the information 33 corresponding thereto.
  • the hardware resources used to configure the circuit 33a for each individual cycle in the RC area 10 cannot be determined strictly unless logic synthesis and placement and routing are processed. Therefore, it is desirable to determine whether or not the CB mapping information 21 can be merged when the CB mapping information 21 is generated. At this time, if it is necessary to reexamine the circuit configuration, the RTL stage Go back and do the merge. When there is a margin in hardware resources or when it is possible to predict the consumption of hardware resources, it is possible to merge at the stage of RTL33, which is CB circuit information.
  • the CB circuit 33a of cycle 1 shown in FIG. 19 (a) and the CB circuit 33a of cycle 2 shown in FIG. 20 (a) can be merged.
  • Fig. 22 (a) shows the configuration of the merged composite CB circuit 35a
  • Fig. 22 (b) shows its RTL description 35.
  • the functions of cycles 1 and 2 can be obtained by executing circuit 35a continuously for 2 cycles. Therefore, the configuration selection information 34 is converted from FIG. 21 to FIG.
  • the cycle 0 CB circuit 33a and its RTL description are the same as those in Figs. 18 (a) and 18 (b).
  • the cycle shown in Fig. 18 (a) is merged with the circuit in cycle 1 shown in Fig.
  • the CB mapping information 21 can be reduced by one page. Therefore, the RC area 10 can be used effectively, the amount of hard drive control information 20 can be reduced, and the amount of memory 3 used for the hardware library 2 can be reduced. In addition, since the number of times of switching the configuration of the RC region 10 can be reduced, the power consumed for switching the configuration can also be reduced.
  • the RTL description 33 of the cycle 0 CB circuit and the RTL description 35 of the merged composite CB circuit are individually passed through the logic synthesis tool and the place-and-route tool.
  • Information to be mapped to area 10 (CB mapping information) 21 and composite CB mapping information 23 can be generated.
  • the information 34 for selecting the configuration in units of cycles can be converted into information 22 for controlling the CB mapping information 21.
  • the hardware control information 20 for controlling the RC area 10 for each cycle can be generated by using the CB mapping information 21 and 23 and the configuration selection information 22 for controlling the CB mapping information.
  • the arithmetic units 37a and 37b and the registers Rl to R3 are used for many cycles. There is an input selector to do this. However, if the purpose is to merge mapping information 21 and reduce its type, CB It is not prohibited to provide an input selector in circuit 33a or composite CB circuit 35a. However, providing an input selector consumes extra hardware resources, which is basically not preferable. To reduce the amount of CB mapping information 21, it is effective to merge multiple CB circuits while minimizing the addition of selectors. If a selector is added at the time of CB circuit merge, it is necessary to instruct the selector's select signal as well as instructing to select the circuit to be executed in the next cycle according to the configuration selection information.
  • the circuit configuration is fixed over two cycles. In cycle 1, the signal around the computing unit 37a is ignored, and in cycle 2, the signal around the computing unit 37b is ignored. Therefore, by combining the range of don't care for each cycle, the arithmetic units 37a and 37b are used for a plurality of cycles without providing an input selector.
  • the force that fixed the circuit configuration for 2 cycles was configured when the composite CB circuit 35a was configured at cycle 0, the CB circuit 33 was configured at cycle 1, and the composite CB circuit 35a was configured at cycle 2.
  • Usage is also possible, and it is fundamental that the composite CB mapping information 23 can be used discontinuously. Therefore, the composite CB mapping information 23 uses one cycle of the multi-cycle circuit configuration included in the CB mapping information 23 for each cycle, and instead of providing an input selector, the circuit is cycled. Replacing and using hardware resources will not change.
  • FIG. 24 shows an outline of a control method of the data processing device 1 having the RC area 10.
  • step 41 one of the CB mapping information 21 is selected from the hardware control information 20 based on the configuration selection information 22.
  • Step 42 smell Then, all or part of the RC area 10 is reconfigured by the selected CB mapping information 21.
  • the data processing apparatus 1 can provide a hardware environment suitable for executing an application. The number of cycles required to fetch and map the CB mapping information 21 If the number of cycles in the RC area 10 does not match the number of execution cycles, fetch the instruction sequence of a conventional software program such as prefetch Technology can be used.
  • the control description of the data processing device that combines the software instruction set and the hardware control information can be created. It is also possible to provide it.
  • the application instruction set functions as configuration selection information.
  • Such hardware control information 20 or the fusion control description can be provided by being recorded on an appropriate recording medium such as a ROM, and further via a computer network such as the Internet configured by wire or wireless. Can also be provided.
  • FIG. 25 shows a process of generating the hardware control information 20 from the existing RTL description 92 in the generation system 100.
  • the function 101 for generating the information of the cycle base circuit of the generation system 100 has the function of generating the information of the CB circuit from the existing RTL92. That is, in this hardware control information generation method 78, in step 76, the existing RTL 92 state machine is analyzed and decomposed into data paths 31 for each state. For example, the input selector is erased and the selector control signal is erased. As a result, functions for each cycle are extracted. After that, similar to the generation method 79 shown in Fig.
  • RTL CB circuit information 33 is generated for each cycle, and hardware control in step 74 is performed.
  • CB mapping information 21 is generated.
  • the hardware control information 20 is generated by merging the mergeable portions of the CB mapping information 21 in step 75.
  • This generation method 78 enables effective use of RTL assets designed and developed for existing FPGAs or ASICs.
  • hardware control information is available so that the software can operate with FPG A or ASIC configured based on the existing RTL. , And thereby the data processing device 1 can be reconfigured. For this reason, an application that operates on an existing FPGA or ASIC can be operated by the data processing device 1.
  • FIG. 26 shows a process of generating the split control type hardware control information 20 in the generation system 100.
  • the configuration selection information 22 is included in each CB mapping information 21, and does not have configuration selection information for overall control. Therefore, if the cycle-specific data path 31 and the control state machine 32 are generated by step 76 of the generation method 78 or step 72 of the generation method 79 described above, in step 73, the RTL 33 for each cycle is generated.
  • the function as the control state machine that is, the function of calculating the next state in each state is divided into circuits for each state (cycles) and added to the data path circuit.
  • circuit information 38 of the cycle base circuit including the function of calculating selection information such as the number of the circuit to be executed in the next cycle is generated as the RTL 33 for each cycle.
  • the circuit number to be executed in the next cycle is a constant.
  • mapping is performed in the next cycle using an appropriate function or status information.
  • the function of selecting the CB mapping information 21 to be added can be added to each CB mapping information 21.
  • the hardware control information 20 including the CB mapping information 21 can be generated by step 74.
  • the merging step 75 is performed in advance to try to merge RTL33 for each cycle to generate RTL36 for each combined cycle! / ⁇ .
  • This combined RTL 36 for each cycle is also circuit information 38 of the cycle base circuit including selection information.
  • RTL33 of cycle 1 and cycle 2 including control information can be combined to obtain RTL36.
  • This CB mapping information 21 includes the following support as described above. It includes a circuit that generates control information 22 for selecting CB mapping information 21 to be mapped by Ital.
  • the hardware control information 20 provided in the present invention implements, on a cycle basis, a circuit for executing an application on hardware that can be reconfigured on a cycle basis. And, it is not the design method based on long-term operation that changes the circuit configuration at the functional module level, that is, the operation state level, that is, the circuit configuration is changed for each state (each cycle), or the circuit configuration is replaced every cycle. This is assumed. Therefore, a process that examines the functional modules to be reconfigured first generates cycle-based circuit information, and then generates CB mapping information that is implemented in the actual architecture. For this reason, the reconfigurable circuit area is basically exchanged for each cycle, is controlled in a state without a fixed configuration, and executes an application.
  • the hardware control information 20 allows mapping information fixed in a circuit area that can be reconfigured over several cycles to be included.
  • the hardware configuration that executes the data processing including the data processing that is most preferable to pipeline processing such as vector operation and family analysis is as follows. It is because it is preferable to fix.
  • a hardware configuration for executing an application that requires state machine processing such as an MPEG decoder, it is desirable to change the circuit configuration for each cycle.
  • a processor that requires a state machine control processor such as RISC and a pipeline processor coprocessor function such as FFT is installed in the data processor 1, a part of the RC area 10 is The configuration changes, and other parts may be fixed in a state where a data flow is formed for several cycles or more.
  • the selection of such a reconfiguration is determined by the request for each cycle of the configuration selection information 22, and if there is no request for reconfiguration, the configuration of the RC region 10 is maintained. Therefore, the CB mapping information 21 of the hardware control information 20 can be controlled so that the RC area is reconfigured or the configuration of the RC area 10 is maintained by a request for each cycle by the configuration selection information 22.
  • the present invention can be applied to all data processing apparatuses that form a so-called circuit network. is there. That is, not only for data processing devices based on electrical or electronic level circuit technology, but also for all data processing devices that form circuits based on light, living organisms, molecules, atomic structures, gene structures, etc. This invention can be applied.

Abstract

 サイクル毎に再構成可能な論理回路(10)と、ハードウェア制御情報(20)を格納したライブラリ(2)とを有するデータ処理装置(1)を提供する。ハードウェア制御情報(20)は、アプリケーションを実行するためのサイクル毎の機能をそれぞれ実現するための複数のサイクルベース回路を個々に論理回路(10)にマッピングするための複数のサイクルベースマッピング情報(21)と、アプリケーションの実行状態により、それらのサイクルベースマッピング情報の少なくともいずれかを選択するための構成選択情報(22)とを備えている。データ処理装置(1)は、構成選択情報(22)に基づくサイクル毎の要請により、複数のサイクルベースマッピング情報(21)の少なくともいずれかにより論理回路(10)の少なくとも一部を再構成する制御ユニット(11)を有する。

Description

明 細 書
再構成可能な論理回路を有するデータ処理装置
技術分野
[0001] 本発明は、再構成可能な論理回路を有するデータ処理装置に関するものである。
背景技術
[0002] 回路を再構成できるプログラマブルデバイスとして、 FPGA (Field Programmable G ate Array)と称されるデバイスが知られている。特開 2000— 40745号公報には、 FP GAに論理回路の異なる部分を実装する技術の 1つとして、論理回路を特徴付ける 初期ネットリストを多くのページへと区分し、 FPGAにこれらのページの 1つの回路を 実装することが記載されている。これにより、 FPGAの物理的容量よりもはるかに大き な回路の実装を可能にしょうとしている。特表 2003— 518666号公報には、デザィ ンネットリストをスタティックマクロの組と、再構成可能なマクロコンテキストの組に分け 、再構成可能なコンテキストの各々をコンノ ィルして初期デバイスコンテキストを配置 配線することが記載されて 、る。
発明の開示
[0003] FPGAは動的に再構成可能であるとは言っても、プログラミングするのに少なくとも 数 10サイクルを要し、その間は有意義な仕事を行えない。したがって、上記のハード ウェアのセットを再構成する方法は、再構成する都度、 500〜1000サイクル以上、そ の構成を動かし、纏まった処理を行うことを想定している。つまり、再構成の対象とな る回路は、「パリティ有りモード用の処理回路」と「パリティ無しモード用の処理回路」 のように、モード毎に場合分けされた、単体の構成として、それなりに意義のある機能 モジュールである。アプリケーションが、そのような機能モジュールレベルの再構成の 可能性を持たない場合は、上記の従来技術を効果的に適用することは難しい。
[0004] 本発明にお!/、ては、サイクルベースで再構成可能なハードウェアに、アプリケーショ ンを実行するための回路を実装するための技術を提供する。このハードウェアは、サ イタル毎に回路構成を変えることができる。したがって、上記の従来技術を使って 50 0〜: L000サイクル単位で機能モジュールレベルの動的再構成を行えるだけでなぐ より細かな単位あるいはサイクルでの動的再構成をも行えるようになり、動的再構成 の適用可能範囲が広がる。再構成時間を数 10サイクルから 1サイクルへと量的に変 えることにより、再構成利用形態が機能モジュールレベル力も動作ステートレベルへ と質的に変わる。このため、そのような再構成可能な論理回路を備えたデータ処理装 置の制御に適した制御情報および方法を提供する。
[0005] 本発明の 1つの態様は、サイクル毎に再構成可能な論理回路と、ハードウェア制御 情報を格納したライブラリとを有するデータ処理装置である。ハードウェア制御情報は 、アプリケーションを実行するためのサイクル毎の機能をそれぞれ実現するための複 数のサイクルベース回路を個々に再構成可能な論理回路にマッピングするための複 数のサイクルベースマッピング情報と、そのアプリケーションの実行状態により、それ らのサイクルベースマッピング情報の少なくとも 、ずれかを選択するための構成選択 情報とを備えている。さらに、このデータ処理装置は、構成選択情報に基づくサイク ル毎の要請により、複数のサイクルベースマッピング情報の少なくとも 、ずれかにより 論理回路の少なくとも一部を再構成する制御ユニットを有する。
[0006] 複数のサイクルベースマッピング情報は、サイクル毎の機能を阻害することなくマー ジできるサイクルベースマッピング情報がマージされた複合サイクルベースマッピング 情報を含むものであっても良い。また、複数のサイクルベースマッピング情報は、サイ クル毎の制御ユニットを論理回路にマッピングするための情報をそれぞれ含んでいて も良ぐその場合は、サイクル毎の制御ユニットが論理回路に再構成される。
[0007] 本発明の他の態様の 1つは、サイクル毎に再構成可能な論理回路と、ハードウェア 制御情報を格納したライブラリとを有するデータ処理装置であって、論理回路の少な くとも一部が構成選択情報に基づくサイクル毎の要請により、複数のサイクルベース マッピング情報の少なくとも 、ずれか〖こより再構成されるものである。複数のサイクル ベースマッピング情報力 サイクル毎の制御ユニットを論理回路にマッピングするた めの情報をそれぞれ含んでいる場合は、論理回路の少なくとも一部は、論理回路に 再構成されたサイクル毎の制御ユニットの要請により再構成される。
[0008] 本発明のさらに異なる態様の 1つは、サイクル毎に再構成可能な論理回路を有する データ処理装置の制御方法であって、ハードウェア制御情報に基づき再構成可能な 論理回路の少なくとも一部を再構成する工程を有し、この再構成する工程が、構成 選択情報に基づくサイクル毎の要請により、複数のサイクルベースマッピング情報の 少なくともいずれかを選択して論理回路の少なくとも一部を再構成することを含む、 制御方法である。複数のサイクルベースマッピング情報力 サイクル毎の制御ユニット を論理回路にマッピングするための情報をそれぞれ含んで 、る場合は、再構成する 工程は、論理回路に再構成されたサイクル毎の制御ユニットの要請により、論理回路 の少なくとも一部を再構成することを含む。
[0009] 本発明のさらに異なる態様の 1つは、再構成可能な論理回路を制御するためのハ 一ドウエア制御情報を生成するための生成システムであって、アプリケーションを実行 するためのサイクル毎の機能をそれぞれ実現するための複数のサイクルベース回路 の回路情報を生成する機能と、ハードウ ア制御情報を生成する機能とを有する生 成システムである。
[0010] 本発明のさらに異なる態様の 1つは、本発明における再構成可能な論理回路を制 御するための情報を生成する方法であって、アプリケーションを実行するためのサイ クル毎の機能をそれぞれ実現するための複数のサイクルベース回路の回路情報を 生成する工程と、それらサイクルベース回路を個々に再構成可能な論理回路にマツ ビングするための複数のサイクルベースマッピング情報、および、アプリケーションの 実行状態により、それらのサイクルベースマッピング情報の少なくとも 、ずれかを選択 するための構成選択情報を含むハードウェア制御情報を生成する工程とを有する。
[0011] 固定化された回路を生成する場合、サイクル毎の機能を抽出するとしても、そのサ イタル毎の機能をサイクル毎に回路として具現ィ匕する必要はない。その代わりに、サ イタル毎の機能を実現するために、実空間に固定された論理回路を生成する。例え ば、サイクル毎の機能を、信号の伝達に従ってサイクルの範囲を超えて組み合わせ てノ ィプライン化された回路を生成する。あるいは、演算器やレジスタなどの論理素 子を共用するためにセレクタを配置して、全サイクル分の全機能を包含する 1つの統 合回路を生成する。そのような回路設計の結果は、通常、 RTL (Register Transfer Le vel)で表現される。さらに、その RTLを論理合成してネットリストを生成し、配置配線を 行なってハードウェア化する。 [0012] これに対し、本発明にお 、ては、サイクル毎の機能を、サイクル毎に回路化する。 通常は、クロック単位でサイクルが進むので、上記は、クロック毎の機能を、クロック毎 に回路化すると言っても良い。あるアプリケーションを実行するためのサイクル毎の機 能をそれぞれ実現するためのサイクルベース回路の情報 (以降では「CB回路情報」 とも称する)が RTLで記述されるのであれば、サイクル毎に RTLが生成されることに なる。
[0013] 複数のサイクルベース回路を再構成可能な論理回路にそれぞれマッピングするた めの複数のサイクルベースマッピング情報(以降では「CBマッピング情報」とも称する )により、サイクルベースの回路(以降では「CB回路」とも称する)をサイクル単位で再 構成可能な論理回路に再構成できる。論理合成ツールを用いるのであれば、サイク ル毎の RTLを論理合成ツールでサイクル毎にネットリストイ匕して、配置配線を行な ヽ 、 CBマッピング情報を生成する。この過程では、ノ ィプラインィ匕するために FFを挿入 したり、演算器やレジスタなどの論理素子の入力を切り換えてそれらを共用するため のセレクタを配置したり、セレクタ制御信号を生成するという作業は基本的には発生し ない。
[0014] したがって、再構成可能な論理回路にマッピングされる CB回路の構成は、入力切 替用のセレクタなどは基本的に含まず、データパスもそのサイクルで必要な分だけを 表すシンプルなものとなり、少ない論理素子で実装することが可能となる。また、論理 素子の入力を切り換えて論理を選択するためのセレクタ制御信号は不要となり、代わ りに、アプリケーションの実行状態により、 CBマッピング情報を選択する構成選択情 報により論理が選択される。したがって、本発明により、再構成可能な回路領域を、 機能モジュールレベルの利用形態から、動作ステートレベルの利用形態に変更する ことが可能となる。
[0015] 複数のサイクルベースマッピング情報の中の、サイクル毎の機能を阻害することなく マージできるサイクルベースマッピング情報を抽出し、それらをマージして複合サイク ルベースマッピング情報を生成する工程を設けることが望ましい。これは、サイクル間 を伝達される信号に沿ってサイクルを超えて回路を組み合わせるということではなぐ CBマッピング情報の種類を減らし、アプリケーションを実行するために必要となる CB マッピング情報の情報量を減らすことを目的とするものである。したがって、マッピング するタイミングとして隣接する CBマッピング情報を選択してマージするのではなく、タ イミングは離れて ヽても CB回路の構成に共通点があるものをマージして、あるサイク ルの機能には不要であるが、その機能を阻害しな 、配線を備えた複合 CBマッピング 情報を生成したり、 CBマッピング情報が少ないものをマージして、独立した CB回路 を 1つの複合 CBマッピング情報により生成したりすることが含まれる。
[0016] また、ハードウェア制御情報を生成する工程では、サイクル毎の構成選択情報を生 成し、サイクルベースマッピング情報にマージすることが可能である。この場合は、 C Bマッピング情報によりマッピングされる CB回路にサイクル毎の構成選択情報を生成 する構成が含まれるので、再構成可能な論理回路に CB回路をマッピング、あるいは 再構成することによりアプリケーションを実行できる。
[0017] 回路情報を生成する工程では、アプリケーションを実行するためのコントロールデ 一タフローダイアグラムに基づき、複数のサイクルベース回路の情報を生成できる。 例えば、 C言語などの高級言語によりアプリケーションの仕様が与えられたときに、 C 言語から CB回路情報を生成し、 CBマッピング情報を生成することができる。また、回 路情報を生成する工程では、アプリケーションを実行するための RTLをサイクルベー スに分解して、複数のサイクルベース回路情報を生成することも可能である。すでに RTLまで設計が進んだ RTL資産を用いて、 CB回路情報を生成し、 CBマッピング情 報を生成することができる。
[0018] 本発明のハードウェア制御情報は、 ROMなどの適当な記録媒体に記録して提供 することができる。ハードウェア制御情報は、インターネットなどのコンピュータネットヮ ークを用いて、有線により、あるいは無線により伝達することも可能である。そして、再 構成可能な論理回路を有するデータ処理装置によりアプリケーションを実行できる。 図面の簡単な説明
[0019] [図 1]ハードウェア制御情報により制御されるデータ処理装置の概略構成を示す。
[図 2]図 1と異なるデータ処理装置の概略構成を示す。
[図 3]サイクルベースで回路を再構成可能な RC領域のハードウェア構成を示す。
[図 4]エレメントの配置を示す。 [図 5]エレメントの構成を示す。
圆 6]演算コアの構成を示す。
[図 7]演算コアの動作例を示す。
圆 8]演算コアの他の動作例を示す。
圆 9]演算コアで実行可能な論理演算の例を示す。
[図 10]FPGAあるいは ASIC用に、 C言語の仕様力もハードウェア構成を決定する過 程を示すフローチャート。
[図 11]ASICのマスクパターンや FPGAの構成情報を生成する過程をさらに詳しく示 すフローチャート。
[図 12]ハードウェア制御情報の生成システムの概要を示すブロック図。
[図 13]ハードウェア制御情報を生成する方法を示すフローチャート。
[図 14]図 14 (a)は C言語仕様の一例、図 14 (b)は CDFGの一例を示す。
圆 15]サイクル毎の機能を抽出した状態を示す。
[図 16]図 16 (a)は ASICまたは FPGA用の回路例、図 16 (b)は FSMの例を示す。
[図 17]図 16 (a)および(b)の回路の RTL記述を示す。
[図 18]図 18 (a)は、サイクル 0の回路、図 18 (b)はその RTL記述を示す。
[図 19]図 19 (a)は、サイクル 1の回路、図 19 (b)はその RTL記述を示す。
[図 20]図 20 (a)は、サイクル 2の回路、図 20 (b)はその RTL記述を示す。
圆 21]選択構成情報を示す。
[図 22]図 22 (a)は、サイクル 1および 2マージした回路、図 20 (b)はその RTL記述を 示す。
圆 23]選択構成情報を示す。
[図 24]データ処理装置の制御方法の概要を示す。
[図 25]ハードウェア制御情報を生成する、異なる方法を示すフローチャート。
[図 26]ハードウェア制御情報を生成する、さらに異なる方法を示すフローチャート。
[図 27]サイクル毎に生成される RTL記述の異なる例を示す。
[図 28]RTL記述をマージした例を示す。
発明を実施するための形態 [0020] 図 1に示したデータ処理装置 1は、回路を動的に再構成可能な論理回路領域 (RC 領域、リコンフィギャラブル領域) 10と、幾つかのアプリケーションを実行するためのハ 一ドウエア制御情報 20を格納 (記録)したライブラリ 2のためのメモリ 3とを備えている 電子デバイス、例えば、 LSI, IC、チップあるいはチップセットである。データ処理装 置 1は、光デバイスあるいは光電子デバイスなどであっても良い。このデータ処理装 置 1は、さらに、このライブラリ 2からハードウェア制御情報 20の所望のサイクルベース マッピング情報(CBマッピング情報) 21を取得 (フェッチある 、はダウンロード)して R C領域 10に、あるいは RC領域 10の一部の適当な領域にマッピングして CB回路 19 を再構成する制御ユニットであるマッピングユニット(MU) 11と、ハードウェアを初期 化したり、ハードウェア制御情報 20の選択情報 22をデコードして所望の CBマツピン グ情報 21を選択したりする高速ローデイング制御ユニット (RLC) 12とを備えている。 さらに、データ処理装置 1は、アプリケーションプログラム 4が記憶された RAM5と、ヮ ーク用のメモリ 6と、割り込み信号を受信する割り込み制御ユニット (IU) 7と、データ 処理装置 1の各ハードウェア資源にクロック信号を供給するクロック発生源 8と、外部 メモリに対してデータの入出力を制御するデータ入出力インタフェース 9とを備えて ヽ る。
[0021] MU11、RLC12および IU7は、固定回路によりデータ処理装置に実装あるいは実 現することも可能である。このデータ処理装置 1においては、 MU11、 RLC12および IU7としての機能は、 RC領域 10に CBマッピング情報 21により所望の回路をマツピ ングあるいは再構成することにより実現している。したがって、ライブラリ 2には、このデ ータ処理装置 1の基本的なシステムをサポートする回路を構成するためのハードゥエ ァ制御情報 29も格納されて 、る。
[0022] 図 2に、異なるデータ処理装置の概略構成を示してある。このデータ処理装置 1も サイクル毎に再構成可能な論理回路である RC領域 1と、ハードウェア制御情報 20を 格納したライブラリ 2のためのメモリ 3とを有するデータ処理装置である。さらに、本図 に示したデータ処理装置 1では、 MU 11および RLC 12としての機能を提供する回路 を生成するための情報は、ハードウェア制御情報 20の個々の CBマッピング情報 21 に含まれている。したがって、サイクル毎に、あるいはサイクル毎の要請により、 CB回 路 19としてアプリケーションを実行するための回路と共に RC領域 10に再構成される 。さらに、選択情報 22もサイクルベース化されて CBマッピング情報 21に含まれてい る。したがって、 RC領域 10の全体力 あるアプリケーションを実行するためにサイク ルベースで再構成できる領域となる。複数のアプリケーションを同時実行する際は、 複数のアプリケーションを実行するために、異なる CB回路 19が RC領域 10に再構成 される。
[0023] また、再構成可能な領域 10は、サイクルベースで再構成可能であるが、必ずしもサ イタルベースで再構成する必要はない。回路を再構成するために要する電力消費な どを考えると、サイクルベースで再構成しないで良い回路は、サイクルベースで再構 成しないことが望ましいケースもある。さらに、再構成可能な領域 10のハードウェア資 源が十分にあり、いったん構成した CB回路 19が数クロック先でも使用されることが分 力つているのであれば、その CB回路 19を存続させておくことも有効である。したがつ て、アプリケーションを実行するために RC領域 10に構成される回路は、幾つかの CB 回路 19に分割することが可能であり、その全てあるいは一部がサイクル毎の要請に より再構成される。
[0024] 図 3に、サイクルベースで回路を再構成可能な RC領域 10の一例を示してある。こ の RC領域 10は、格子状 (アレイ状あるいはマトリクス状)に配列され、各々の論理演 算を変更可能な複数のエレメントの集合である回路ブロック (rxe— plane) 51と、回 路ブロック 51を接続する配線 52とを備えている。 CBマッピング情報 21は、回路プロ ック 51の単位で CB回路 19をマッピングするように生成することが望ましい。すなわち 、あるサイクルの機能を実現するための CB回路 19が複数の回路ブロック 51を消費し てマッピングされる場合、回路ブロック 51の数に対応した複数の CBマッピング情報 2 1により CB回路 19を構成するように CBマッピング情報 21を生成することが望ま 、。 これにより 1つまたは複数の回路ブロック 51を再構成することにより次のサイクルの機 能を実現する CB回路 19が実現できる場合は、マッピングするための CBマッピング 情報 21の情報量を少なくすることができる。また、回路ブロック 51の単位で、 CBマツ ビング情報 21をマージして情報量を少なくすることができる。
[0025] 図 4に、 1つの回路ブロック 51の構成を示してある。この回路ブロック 51には、 16個 の論理エレメント 53が 4 X 4のアレイ構造をなすように配列されて!、る。各々の論理工 レメント 53は図面の上下左右の 4方向に隣接する論理エレメント 53と 4ビットのレイァ 1のバス 54により接続されている。さらに、上下左右に隣接する論理エレメント 53を越 して、その外側に位置する論理エレメント 53と接続するレイァ 2のバス 55も用意され ている。このため、論理エレメント 53の間を、よりフレキシブルに接続することができる 。さらに、論理エレメント 53を 3つ飛び越したレイァ 3のバスを配置することも可能であ る。
[0026] 各々の論理エレメント 53は、論理演算エレメントとしての機能と、論理エレメント間の 接続切り換えを行う配線スィッチとしての機能を備えている。そして、演算する論理と 、配線接続の状態を高速で変更または交換する必要があるので、この RC領域 10に は、 RXE (Rapid exchange Element) 53と称される高速で交換動作が可能なエレメン トが配置されている。
[0027] 図 5に、 RXE53の構成を示してある。 RXE53は、 4系統の入力 61と、 4系統の出力 62と、 4系統の入力 61から任意の入力データを選択する入力インタフェース 63と、こ の入力インタフェース 63により選択された入力データ φ iを論理演算してデータを出 力する演算コア 65と、 4系統の入力 61と演算コア 65の出力データ φ oとを任意に選 択して 4系統の出力 62へ接続可能な出力インタフェース 64とを備えている。演算コ ァ 65は、論理演算を変更可能な構成になっており、論理を変更可能な演算エレメン トとしての機能を果たす。また、入力インタフェース 63は、 4系統の入力 61から任意 の 1ビットを選択するための 16対 1のセレクタ 63sが複数配置された構成となっている 。出力インタフェース 64は、演算コア 65からの出力 φ οと 4系統の入力 61のルーティ ングを兼ねた 7対 1のセレクタ 64sが複数配置された構成となっている。
[0028] 図 6に、演算コア(rxe— core) 65の構成を示してある。演算コア 65は、論理演算を 指示する 16ビットのファンクションコード φ fを入力とし、入力データ φ iにより出力デ ータ φ oを選択するセレクタ 66を備えている。演算コア 65は、さらに、 4ビットの入力 データ φ iをデコードして 16ビットのセレクタ 66の選択信号を生成するデコーダ 67と、 4系統の入力 61のいずれかのデータ、または、出力データ φ oをラッチするレジスタ 6 8と、レジスタ 68にラッチする信号を選択するためのセレクタ 69aおよび 69bとを備え ている。
[0029] 図 7および図 8に、演算コア 65の動作を示している。演算コア 65はモード信号 φ m によって動作が変わる。図 7のモード 0では、演算コア 65は、 4ビットの入力データ φ ί により 1ビットの出力データ φ οを生成し、その出力データ φ οをレジスタ 68でラッチし て出力する。図 7のモード 1では、演算コア 65は、 4ビットの入力データ (Ηにより 1ビッ トの出力データ φ οを生成し、その出力データ φ οをレジスタ 68でラッチせずに出力 する。出力データ φ οは、 16ビットのファンクションコード φ fと、入力データ φ iをデコ ードした結果〖こよる。したがって、図 9に纏めて示すように、これらのモード 0および 1 においては、ファンクションコード φ ίを変えることにより、演算コア 65を 4入力 ANDか ら 4入力コンパレータまで、 9種類以上の異なる論理演算素子として使用することがで きる。
[0030] さらに、演算コア 65は、セレクタ 66とファンクションコード φ fの組み合わせに論理演 算を行っている。このため、従来の FPGAのように SRAMなどの記憶素子を用いた ルックアップテーブル(LUT)に論理をセットする必要がない。したがって、 SRAMに 入出力を行うサイクルを省略することができ、ファンクションコード φ fを演算コア 65に 出力したタイミングで瞬時に演算コア 65で行う演算を交換することができる。このため 、この演算コア 65は高速交換演算素子と称されており、ファンクションコード φ ίをサイ クルベースで切り換えて供給することにより、サイクルベースで演算機能を変えること ができる。入力インタフェース 63および出力インタフェース 64の機能もサイクルベー スで変更することが可能である。したがって、 RXE53の機能および接続をサイクル毎 に変えることが可能であり、これらの RXE53により構成される RC領域 10にサイクル 毎の異なる回路を構成することができる。
[0031] 図 8に示したモード 2からモード 4においては、 1つの演算コア 65力 2ビットの入力 信号 φ iに対して 1ビットの出力信号 φ oを出力する 2つの演算素子として機能する。 すなわち、内蔵された 16対 1のセレクタ 66力 2つの 4対 1のセレクタとして動作する ようにセットされる。これらのモード 2から 4においては、演算コア 65は、図 9に示して あるように、ファンクションコード φ ίを変えることにより、インバータから 2入力 EXNOR まで、 7種類以上の異なる論理演算素子として使用することができる。 [0032] さらに、図 8に示したモード 5からモード 7においては、演算コア 65を、 3ビットの入力 信号 φ iに対して 1ビットの出力信号 φ oを出力する演算素子として使用できる。追カロ ビットの入力を許せば、内蔵された 16対 1のセレクタ 66を、 2つの 3対 1のセレクタとし て動作するようにセットできるので、演算コア 65を 2つの 3ビット入力 1ビット出力の演 算素子としても利用できる。これらのモード 5から 7においては、演算コア 65は、図 9に 示してあるように、ファンクションコード φ ίを変えることにより、 3入力 ANDからフルァ ダ一まで、 5種類以上の異なる論理演算素子として使用することができる。
[0033] この RC領域 10を構成する RXE53は、セレクタ方式で高速で論理を交換すること が可能である。 RXE53は、さらに、内部に出力データをラッチするレジスタ 68を備え ており、出力データをスルーで出力することも、 FZFによりクロックに同期した状態で 出力することができる。したがって、デジタル回路で良く使用される組み合わせ回路( デコーダ)と、順序回路 (ステートマシン)及び演算回路 (データパス)を、ハードウェア 制御情報 20の CBマッピング情報 21により効率よく実装し、実行することができる。
[0034] この論理を再構成可能なエレメント (RXE) 53は、 2次元アレイあるいはマトリクスを 構成することを考えている。したがって、 2次元に格子状に配置するのに適した 4系統 の入出力を備えている。し力しながら、エレメント間を接続するネットワークが 1次元的 であれば、 2系統あるいは 3系統の入出力で対応することができる。さらには、エレメ ント間を接続するネットワークが 3次元的であれば、 5系統以上の入出力を用意するこ とが望ましい。さらに、この演算コア (rxe— core)は、高速で交換動作が可能なように セレクタ方式を採用している力 ロジックの交換に複数サイクル力かることを許容でき るのであればルックアップテーブル (LUT)を備えた演算コアを採用することも可能で ある。
[0035] 図 10に、 ASICあるいは FPGAの設計手法の一例を示してある。この設計方法 11 0は、 C言語 91などの動作レベル記述から ASICあるいは FPGAに実装する回路 93 を生成する方法であり、近年、設計規模の増大にともない多用されつつある。この設 計方法 110は、 C言語 91などの動作レベル記述力も動作合成ツールを通して RTL ( Register Transfer Level)によるハードウェア記述 92を生成する、ビヘイビア合成と称 される工程 111と、論理合成ツールと配置配線ツールとを通して ASICあるいは FPG Aに実装する回路 93を生成する工程 112とを有する。 RTL92は、 Verilogあるいは VHDLなどのハードウェア記述言語による回路機能の表現であり、 ASIC向けないし FPGA向けの論理合成ツールと配置配線ツールとにより、所望の ASICマスクパター ンないし FPGA構成情報に変換する。この設計方法 110は、動作合成と呼ばれるこ ともある。適当なハードウェア資源を備えたコンピュータにより、これらの処理を行うソ フトウエア(プログラム)力 ASICあるいは FPGAの設計および開発支援用の動作合 成ツールとして提供されている。多くの動作合成ツールは、各処理を行うツール (プロ グラム)の組み合わせにより構成される。
[0036] 図 11に、 ASICZFPGA向けの動作合成ツールの処理をフローチャートにより示し ている。 ASICZFPGA向けの動作合成ツールは、ステップ 71において、 C言語など の動作レベル記述 91をまず解析して、コントロールデータフローグラフ(CDFG (Con trol Data Flow Graph) ) 94を生成する。ステップ 72において、スケジューリング、演算 器割り当て、およびレジスタ割り当てを行い、サイクル毎の機能を実現するためのデ ータパス 31と、制御ステートマシン 32とを生成する。
[0037] ステップ 81において、それらのデータパス 31を組み合わせてパイプライン化したり 、なるべく少な 、ノヽ一ドウエアリソースで実現できるよう演算器やレジスタを共有ィ匕し たりする。そのために、演算器およびレジスタの入力側に入力セレクタを挿入したり、 タイミングの同期を取るために FFを挿入したりする作業を行う。制御ステートマシン 3 2は、適当なセレクタ制御信号を出力するように構成され、 目的の RTL (ノ、一ドウエア 記述) 92が生成される。さらに、ステップ 82において、論理合成ツールによりネットリ スト 95を生成し、その後、ステップ 83において、配置配線ツールによりタイミング収束 などを検討して、 ASICを製造するためのマスクパターンや、 FPGAにマッピングする ための構成情報 96を生成する。
[0038] 図 12に、サイクルベースで回路を再構成可能な論理回路である RC領域 10を備え たデータ処理装置 1を制御するためのハードウ ア制御情報 20の生成するシステム 100の概要を示している。この生成システム 100は、 HDDなどのストレージデバイス 1 05に入力情報 106が入力され、その入力情報 106からアプリケーションを実行する ためのサイクル毎の機能をそれぞれ実現するための複数のサイクルベース回路の回 路情報 38を生成する機能 101と、ハードウェア制御情報 20を生成する機能 102とを 有する。これらの機能 101は、それぞれにおいて生成された情報 38および 20を、こ れらの機能間の通信により伝送しても良ぐストレージデバイス 105に格納した状態で 情報を交換しても良い。ハードウェア制御情報 20は、複数のサイクルベース回路を R C領域 10にそれぞれマッピングするための複数のサイクルベースマッピング情報(C Bマッピング情報) 21と、アプリケーションの実行状態により、それらのサイクルベース マッピング情報の少なくともいずれかを選択するための構成選択情報 22を含む。生 成システム 100は、さらに、 CBマッピング情報 21をマージして複合サイクルベースマ ッビング情報を含むハードウェア制御情報 20を生成する機能 103も備えている。
[0039] この生成システム 100の入力情報 106は、対象となるアプリケーションそのものの仕 様、たとえばアプリケーションプログラムであっても良ぐあるいは、そのアプリケーショ ンを実行するために既に生成されたノヽードウエア情報であっても良い。入力情報 106 には、 C言語プログラム 91などによる高級言語ベースの仕様、 CDFG94のようなデ 一タフローベースの仕様、 RTL92などの回路情報ベースの仕様などが含まれる。
[0040] この生成システム 100は、データ処理装置 1の設計および開発支援用のツールとし て提供される。生成システム 100は、コンパイラーあるいは他の設計支援ツールと同 様に、適当なハードウェア資源を備えたコンピュータに、生成システム 100の機能を 実現するためのソフトウェア(プログラム)をインストールすることにより実現される。そ れぞれの機能 101〜103は、各処理を行うツール(プログラム)として、 CD— ROMな どの適当な記録媒体に記録して、ある 、はコンピュータネットワークを介して提供する ことも可能である。また、生成システム 100はコンピュータネットワークにより接続され た複数のサーノ からなる分散システムにより実現することも可能である。
[0041] 図 13に、サイクルベースで回路を再構成可能な RC領域 10にマッピングするのに 適した情報を備えたハードウェア制御情報 20の生成方法 79をフローチャートにより 示してある。このハードウェア制御情報 20を生成する方法 79は、生成システム 100に おいて実行可能な生成方法の一例であり、仕様として入力される情報の種類などに より処理の流れは変わる。
[0042] 図 13に示したフローチャートでは、ステップ 71において、 C言語などの動作レベル 記述 91をまず解析して、 CDFG94を生成する。ステップ 72において、スケジユーリン グ、演算器割り当て、レジスタ割り当て、あるいは統合を行い、サイクル毎の機能を実 現するためのデータパス(サイクル毎のデータパス) 31と、制御ステートマシン(コント ロール FSM) 32とを生成する。次のステップ 73において、サイクル毎のデータパス 3 1をサイクル毎の RTL33で記述し、サイクル毎の機能を果たすサイクルベース回路( CB回路)の回路情報 (CB回路情報)を生成する。このステップ 73において、制御ス テートマシン 32の機能は、サイクルベースの構成を選択する選択情報 34に変換され る。この例では、 CB回路情報 33と、選択情報 34とを含む情報がサイクルベース回路 の回路情報 38として次のステップに供給される。
[0043] ステップ 74において、これらのサイクル毎の RTL33を、個々に、論理合成し、配置 •配線を行なって、サイクル毎に RC領域 10にマッピングするための CBマッピング情 報 21と、そのマッピング情報 21をサイクルベースで選択する構成選択情報 22と含む ハードウェア制御情報を生成する。
[0044] さらに、ステップ 75において、サイクル毎の回路規模を揃えるために、複数の CBマ ッビング情報 21の中の、サイクル毎の機能を阻害することなくマージできる情報をマ ージし、複合サイクルベースマッピング情報 (複合 CBマッピング情報) 23を生成する 。また、複合 CBマッピング情報 23を含んだ CBマッピング情報 21を選択するように構 成選択情報 22もマージする。このようにして、アプリケーションを実行するための回路 を構成する CBマッピング情報 21と構成選択情報 22とを備えたノヽードウエア制御情 報 20が生成される。
[0045] CBマッピング情報 21の複合ィ匕は、 RTL33の段階で行なうことも可能であり、複合 化したサイクル毎の RTLを論理合成および配置配線して複合 CBマッピング情報 23 を生成することも可能である。この複合ィ匕する工程は、 CBマッピング情報 23によりマ ッビングされる回路規模を同程度、例えば、上述した回路ブロック (rxe— plane) 51 の単位に合致した規模にしょうとするものである。これにより、ハードウェア制御情報 2 0に含まれる CBマッピング情報 21の種類を減らし、アプリケーションを実行するため に必要となるハードウェア制御情報 20の情報量を減らすことができる。
[0046] したがって、 CBマッピング情報 21を複合ィ匕する典型的な工程では、サイクル間を 伝達される信号に沿ってサイクルを超えて回路を組み合わせてノ ィプラインィ匕するこ とはなく、また、演算器およびレジスタを多サイクルにわたり使用するために入力セレ クタを設けてマルチ化することもない。逆に、サイクルは離れていても CB回路の RTL 33に共通点があるものをマージして、あるサイクルの機能には不要である力 その機 能を阻害しない配線を備えた複合 CBマッピング情報 23を生成する。また、 CBマツピ ング情報が少ないもの同士をマージして、 rxe— plane51に適したサイズにする、とい うタイプの複合化も行なう。さらに、同一の演算器およびレジスタを複数のサイクルで 共用するように複合化されることもある。入力セレクタにより回路を切り換える代わりに 、サイクル毎に配線自体を切り換えることにより同一の演算器が異なる目的で選択さ れるように複合ィ匕することがある。また、演算器あるいはレジスタに対する入出力がそ のサイクルの機能には影響を及ぼさな 、なら、それらの入出力を無視 (ドントケア)す ることにより複合ィ匕することがある。
[0047] 簡単な具体例を用いて、ハードウ ア制御情報の生成にさらに説明する。図 14 (a) に Cソースコード 91の簡単な具体例を示し、図 14 (b)に、それを解析した後の CDF G94を示してある。図 15に、この CDFG94を、「演算器の遅延時間はクロック周期の 半分より大きい」という条件でスケジューリングして、サイクル毎の機能を抽出した結果 を示してある。このスケジューリングでは、 3つのレジスタ R1〜R3に中間結果を保存 しつつ、サイクル 0からサイクル 2まで 3サイクルかけて演算する。図 15に、 CDFG94 に加えて、サイクル毎の機能を提供するデータパス 31および制御 FSM32を示して いる。
[0048] 図 16 (a)に、これらのサイクル毎のデータパス 31を、全サイクル分の全機能を包含 する 1つの統合回路として表現した回路構成 92cを示してある。この回路構成 92cに は、データパスの機能を実現するための演算器およびレジスタにカ卩えて、それらの入 力セレクタとその制御信号 (セレクト信号)が含まれている。また、図 16 (b)に FSM32 の回路構成を示してある。この回路構成 92cは、 ASICまたは FPGA向けに生成され る回路であり、演算器やレジスタを使い回すために、各演算器 92a、 92bおよびレジ スタ R1および R3の入力側にセレクタ 92sが追加されている。これらのセレクタ 92sの 制御信号は、図 16 (b)の FSM回路 32から出力される。 [0049] 図 17に、図 16 (a)に示した回路構成 92cに対応した RTL記述 92を示してある。こ のような図 16 (a)の回路構成 92cに対応した RTL記述 92を生成し、論理合成ツール および配置配線ツールに通すことにより、 ASICのマスクパターンないし FPGAの構 成情報 96が生成される。
[0050] 図 18〜図 21に、サイクル毎の回路情報 33と、それによりマッピングされる CB回路 3 3aとを示してある。これらのサイクル毎の回路情報 33と、 CB回路 33aとは、生成方法 79のステップ 73において、図 14の入力情報に対して生成される例である。図 18 (a) は、サイクル 0のデータパス 31に対応する CB回路 33aであり、図 18 (b)は、その CB 回路情報、すなわち、 RTL記述 33である。図 19 (a)は、サイクル 1のデータパス 33に 対応する回路構成 33aであり、図 19 (b)は、その RTL記述 33である。図 20 (a)は、 サイクル 2のデータパス 33に対応する回路構成 33aであり、図 20 (b)は、その RTL記 述 33である。さらに、図 21に、サイクル単位の機能を選択する情報 32を、サイクル単 位の構成を選択する情報に変換した構成選択情報 34を示してある。この構成選択 情報 34は、ステート番号に対応する実行すべき CB回路 33aを指示するものであり、 簡単な情報となる。
[0051] 図 14 (a)に示した Cソースコード 91により与えられた処理は、図 15にデータパスとし て示したサイクル毎の機能 31を、サイクル単位で用いることにより実現できる。したが つて、図 18 (a)、図 19 (a)および図 20 (a)に示したサイクル毎の回路 33aを、データ 処理装置 1の RC領域 10に再構成することにより実現できる。このため、ステップ 74に おいて、それらのサイクル毎の回路 33aに対応する、図 18 (b)、図 19 (b)および図 2 0 (b)に示した RTL記述 33を、個々に論理合成ツールおよび配置配線ツールに通 すことにより、 RC領域 10にマッピングする情報 (CBマッピング情報) 21を生成できる 。さらに、サイクル単位で構成を選択する情報 34を、 CBマッピング情報 21を制御す る情報 22に変換することにより、 CBマッピング情報 21と、それを制御する情報 22とを 含むハードウェア制御情報 20を生成できる。
[0052] これらの CBマッピング情報 21により、データ処理装置 1の RC領域 10に再構成され る CB回路 33aは、図 18 (a)、図 19 (a)および図 20 (a)に示したものになる。これらの CB回路 33aにおいては、演算器 37aおよび 37b、さらにはレジスタ R1および R3の入 力側にセレクタは配置されていない。したがって、図 16に示した回路と比較し、構成 が簡略ィ匕されており、 RC領域 10のハードウェア規模が小さくても、あるいは RC領域 10の一部を用いて、それぞれの CB回路を実現できる。
[0053] 図 19 (a)のサイクル 1の CB回路 33aは、演算器 37aを用いない。図 20 (a)のサイク ル 2の CB回路 33aは、演算器 37bおよびレジスタ R2を用いない。一方、図 18 (a)の サイクル 0の CB回路 33aでは、 1つのサイクルで両方の演算器を使用する。したがつ て、図 14 (a)で与えられた Cソースコード 91の機能を図 15のタイミング (性能)で実装 するためには、両方の演算器 37aおよび 37bを 1サイクルの間に実現するのに十分 な規模の再構成可能なハードウェアを RC領域 10に確保する必要がある。サイクル 0 以外の回路について、両方の演算器 37aおよび 37bを含む程度の規模までマージし ても、 RC領域 10の面積的なペナルティはない。したがって、サイクル 1および 2の CB 回路 33aをマージして CBマッピング情報 21を削減することによりハードウェア制御情 報 20の情報量を減らすことができる。
[0054] サイクルの異なる CB回路 33aをマージする代わりに、演算器 37aおよび 37bの内、 それぞれのサイクルで使用しない演算器をサイクル毎に開放することも可能である。 演算器の使用が要請されな 、サイクルでは、演算器を開放しても CB回路の処理速 度は低下しない。したがって、 1つのアプリケーションを実行するためのハードウェア 制御情報 20を、他のアプリケーションの処理から開放された演算器を使用するように 生成できる。これにより、アプリケーションの実行速度を低下させずに、多種多様なァ プリケーシヨンを並列に実行できる。
[0055] 図 22および図 23に、ステップ 75において、上述したサイクル毎のマッピング情報 2 1をマージする例を示してある。なお、説明を簡単にするために、図 23および図 24に おいては、 CB回路 33aおよびそれらに対応する情報 33により、サイクル毎の回路が マージされる様子を示している。しかしながら、 RC領域 10に個々のサイクル毎の回 路 33aを構成するために使用されるハードウェア資源は、論理合成および配置配線 まで処理しないと厳密には決定できない。したがって、 CBマッピング情報 21が生成 された段階で、複数の CBマッピング情報 21をマージできる力否かを決定することが 望ましい。この際、回路構成を再度検討する必要があるのであれば、 RTLの段階に 戻ってマージを行なうことになる。ハードウェア資源に余裕がある場合、ハードウェア 資源の消費の見通しがつく場合などは、 CB回路情報である RTL33の段階でマージ することも可會である。
[0056] 本例においては、図 19 (a)に示したサイクル 1の CB回路 33aと、図 20 (a)に示した サイクル 2の CB回路 33aとをマージすることが可能である。図 22 (a)にマージした複 合 CB回路 35aの構成を示し、図 22 (b)にその RTL記述 35を示してある。マージす ることにより、サイクル 1および 2の機能は、回路 35aを続けて 2サイクル実行すること で得ることができる。そのため、構成選択情報 34は、図 21から図 23に変換される。な お、サイクル 0の CB回路 33aおよび、その RTL記述は図 18 (a)および(b)と同じであ る。 図 22 (a)に示すように、図 19 (a)および図 20 (a)に示したサイクル 1の回路とサ イタル 2の回路とをマージすることにより、図 18 (a)に示したサイクル 0の回路と回路規 模のバランスが取れた両用回路を生成することができる。そして、 CBマッピング情報 21を 1ページ分削減できる。したがって、 RC領域 10を有効に活用でき、ハードゥエ ァ制御情報 20の情報量を削減でき、ハードウェアライブラリ 2に使用されるメモリ 3の 量を削減できる。また、 RC領域 10の構成を切り換える回数を減らすことができるので 、構成切り替えのために消費する電力も低減できる。
[0057] ステップ 75のマージする工程では、サイクル 0の CB回路の RTL記述 33と、マージ された複合 CB回路の RTL記述 35を、個々に論理合成ツールおよび配置配線ツー ルに通すことにより、 RC領域 10にマッピングする情報 (CBマッピング情報) 21と複合 CBマッピング情報 23を生成できる。また、サイクル単位で構成を選択する情報 34を 、 CBマッピング情報 21を制御する情報 22に変換することができる。そして、これらの CBマッピング情報 21および 23と、 CBマッピング情報を制御する構成選択情報 22と により、 RC領域 10をサイクル毎に制御するためのハードウェア制御情報 20を生成で きる。
[0058] 本例のハードウェア制御情報 20により RC領域 10にマッピングあるいは再構成され るサイクルベースの回路 33aおよび 35aには、演算器 37aおよび 37b、レジスタ Rl〜 R3を多サイクルにわたって使!、まわしするための入力セレクタは設けられて ヽな 、。 ただし、マッピング情報 21をマージしてその種類を減らすことを目的とした場合、 CB 回路 33aあるいは複合 CB回路 35aに入力セレクタを設けることを禁止するものでは ない。しかしながら、入力セレクタを設けることにより余分なハードウェア資源が消費さ れるので、基本的には好ましくない。 CBマッピング情報 21の情報量を削減するため には、セレクタの追加を最小限に抑えながら複数の CB回路をマージすることが有効 である。 CB回路マージの際にセレクタを追加した場合は、構成選択情報によって、 次サイクルで実行すべき回路を選択指示するだけではなぐセレクタのセレクト信号も 指示してやる必要がある。
[0059] サイクルベースで再構成可能な RC領域 10においては、図 18 (a)〜図 21 (a)に示 すようにサイクル単位で回路を交換することにより、入力セレクタを設けなくても演算 器 37aおよび 37bを多サイクルにわたり使いまわしすることが可能である。さらに、そ の使いまわしできる範囲は入力セレクタがカバーする限定的な信号の範囲ではなぐ 基本的には無制限である。そして、本発明のハードウェア制御情報 20は、 RC領域 1 0のハードウェア資源の無制限の使い回しをサイクル単位で可能とするものである。
[0060] 複合 CBマッピング情報 23によりマッピングされた、図 22 (a)の複合 CB回路 35aに おいては、 2サイクルにわたり回路構成が固定される。そして、サイクル 1においては、 演算器 37aの周りの信号は無視され、サイクル 2においては、演算器 37bの周りの信 号は無視される。したがって、サイクル毎にドントケアの範囲を組み合わせることにより 、入力セレクタを設けずに演算器 37aおよび 37bを複数サイクルにわたり使 、まわし している。本例では、 2サイクルにわたり回路構成を固定している力 サイクル 0で複 合 CB回路 35aを構成し、サイクル 1で CB回路 33を構成し、サイクル 2で複合 CB回 路 35aを構成するといつた使用方法も可能であり、複合 CBマッピング情報 23は非連 続で使用できることが基本である。したがって、複合 CBマッピング情報 23は、 CBマツ ビング情報 23に含まれて 、る多サイクルの回路構成の 1サイクル分をサイクル毎に使 用しており、入力セレクタを設ける代わりに、サイクル単位で回路を交換することにより ハードウェア資源を使 、まわしして 、ることに変わりはな 、。
[0061] 図 24に、 RC領域 10を有するデータ処理装置 1の制御方法の概要を示してある。
図 24に示すように、ステップ 41において、ハードウェア制御情報 20から、構成選択 情報 22に基づき、 CBマッピング情報 21のいずれかを選択する。ステップ 42におい て、選択された CBマッピング情報 21により RC領域 10の全部あるいは一部を再構成 する。これらのプロセス 41および 42を繰り返すことにより、アプリケーションを実行す るために適したハードウェア環境をデータ処理装置 1により提供できる。 CBマツピン グ情報 21をフェッチしてマッピングするために要するサイクル数力 RC領域 10にお いて処理を実行するサイクル数と合致しない場合は、プリフェッチなどの、従来のソフ トウエアプログラムの命令シーケンスをフェッチする技術を用いることが可能である。さ らに、アプリケーションの命令シーケンスと、 CBマッピング情報 21とをレイテンシーを ずらせて組み合わせたプログラムを生成することにより、ソフトウェアの命令セットと、 ハードウェア制御情報とを融合したデータ処理装置の制御記述を提供することも可 能である。この場合は、アプリケーションの命令セットが構成選択情報として機能する 。このようなハードウェア制御情報 20あるいは融合制御記述は、 ROMなどの適当な 記録媒体に記録して提供することが可能であり、さらに、有線あるいは無線により構 成されるインターネットなどのコンピュータネットワークを介して提供することも可能で ある。
図 25に、生成システム 100において、既存の RTL記述 92から、ハードウェア制御 情報 20を生成する過程を示してある。生成システム 100のサイクルベース回路の情 報を生成する機能 101は、既存の RTL92から CB回路の情報を生成する機能を備 えている。すなわち、このハードウェア制御情報の生成方法 78においては、ステップ 76において、既存の RTL92のステートマシンを解析して、ステート毎のデータパス 3 1に分解する。例えば、インプットセレクタを消去し、セレクタ制御信号を消去する。こ れにより、サイクル毎の機能が抽出される。その後は、図 13に示した生成方法 79と同 様に、ステップ 73のサイクルベースの回路情報を生成する工程において、サイクル 毎の RTL (CB回路情報) 33を生成し、ステップ 74のハードウェア制御情報を生成す る工程において、 CBマッピング情報 21を生成する。必要であれば、ステップ 75にお V、て、 CBマッピング情報 21のマージ可能な部分をマージしてハードウェア制御情報 20を生成する。この生成方法 78により、既存の FPGAあるいは ASIC用に設計およ び開発された RTL資産を有効に活用できる。また、既存の RTLに基づく構成の FPG Aあるいは ASICで動作して!/、るソフトウェアができるようにハードウェア制御情報 20 を生成し、それによりデータ処理装置 1を再構成できる。このため、既存の FPGAある いは ASICで動作するアプリケーションをデータ処理装置 1により動作させることが可 能となる。
[0063] 図 26に、生成システム 100において、分割制御型のハードウェア制御情報 20を生 成する過程を示して 、る。この生成方法 77により生成される分割制御型のハードゥエ ァ制御情報 20は、構成選択情報 22が、それぞれの CBマッピング情報 21に含まれ ており、全体制御用の構成選択情報を持たない。そのため、上述した生成方法 78の ステップ 76または生成方法 79のステップ 72により、サイクル毎のデータパス 31と制 御ステートマシン 32が生成されると、ステップ 73において、サイクル毎の RTL33を生 成する際に、制御ステートマシンとしての機能、すなわち、各ステートにおける次ステ ートを計算する機能をステート毎 (サイクル毎)の回路に分割してデータパス回路に 付加する。
[0064] これにより、図 27に示すように、サイクル毎の RTL33として、次サイクルで実行すベ き回路の番号などの選択情報を計算する機能を含んだサイクルベース回路の回路 情報 38が生成される。本例においては、次サイクルで実行すべき回路番号が定数で あるが、 RTL33に次のサイクルの回路番号を指定する機能を設けることにより、適当 な関数により、あるいはステータス情報により、次サイクルでマッピングする CBマツピ ング情報 21を選択する機能を、各々の CBマッピング情報 21に付加できる。
[0065] 構成選択情報 22を演算する機能を含めた CB回路の情報 33から、ステップ 74によ り、 CBマッピング情報 21を含むハードウェア制御情報 20を生成することができる。図 26に示した生成方法 77においては、マージするステップ 75を先行して行い、サイク ル毎の RTL33のマージをトライし、複合化されたサイクル毎の RTL36を生成して!/ヽ る。この複合ィ匕されたサイクル毎の RTL36も選択情報を含んだサイクルベース回路 の回路情報 38である。本例であると、図 28に示すように、サイクル 1とサイクル 2の RT L33を、制御情報を含めて複合化し、 RTL36を得ることができる。そして、これらの R TL33および 36を、ハードウェア制御情報を生成するステップ 74で論理合成および 配置配線して、 RC領域 10にマッピングできる CBマッピング情報 (複合 CBマッピング 情報も含めて) 21を生成する。この CBマッピング情報 21には、上述したように次のサ イタルでマッピングする CBマッピング情報 21を選択するための制御情報 22を生成 する回路が含まれている。
[0066] 本発明にお 、て提供されるハードウェア制御情報 20は、サイクルベースで再構成 可能なハードウェアに、アプリケーションを実行するための回路をサイクルベースで実 装するものである。そして、機能モジュールレベルで回路構成を変えるという長期稼 動を前提とした設計方法ではなぐ動作ステートレベル、すなわち、ステート毎 (サイク ル毎)に回路構成を変える、あるいは回路構成をサイクル毎に交換することを前提と している。したがって、再構成対象の機能モジュールを吟味するというようなプロセス はなぐサイクルベースの回路情報を先ず生成して、それを実際のアーキテクチャに 実装する CBマッピング情報に生成するプロセスが採用されている。このため、再構成 可能な回路領域は、基本的にはサイクル毎に構成が交換され、固定された構成を持 たな 、状態で制御され、アプリケーションを実行する。
[0067] 一方、このハードウェア制御情報 20は、数サイクルにわたり再構成可能な回路領域 に固定されるマッピング情報が含まれることを許容するものである。ベクトル演算、フ 一リエ解析のようなパイプライン処理をすることが最も好ましいデータ処理を含むアブ リケーシヨンを実行するハードウェア構成としては、パイプラインを構成するハードゥエ ァを数クロックあるいはそれ以上の間、固定することが好ましいからである。これに対 し、 MPEGデコーダのようなステートマシン系の処理を必要とするアプリケーションを 実行するハードウェア構成としては、サイクル毎に回路構成を変えることが望まし 、。 RISCのようなステートマシンの制御プロセッサと、 FFTのようなパイプライン処理用の コプロセッサ機能とを必要とするプロセッサをデータ処理装置 1に実装する場合は、 R C領域 10の一部はサイクル毎に構成が変わり、他の部分は数サイクルあるいはそれ 以上、データフローが形成された状態で固定されるという状態が発生しうる。そのよう な再構成の選択は構成選択情報 22のサイクル毎の要請により決まり、再構成の要請 が無ければ RC領域 10の構成は維持される。したがって、ハードウェア制御情報 20 の CBマッピング情報 21は、構成選択情報 22によりサイクル毎の要請により、 RC領 域が再構成され、あるいは、 RC領域 10の構成が維持されるように制御することも含 む。 また、上記においては、半導体集積回路技術をベースにした LSIに本発明を適用 する例を説明しているが、いわゆる回路網を形成するデータ処理装置のすべてに本 発明を適用することが可能である。すなわち、電気あるいは電子レベルの回路技術 をベースにしたデータ処理装置に限らず、光、生体、分子あるいは原子構造、遺伝 子構造などをベースにした回路網を形成する全てのデータ処理装置に対して本発 明を適用することができる。

Claims

請求の範囲
[1] サイクル毎に再構成可能な論理回路と、ハードウェア制御情報を格納したライブラリ とを有するデータ処理装置であって、
前記ハードウェア制御情報は、アプリケーションを実行するためのサイクル毎の機 能をそれぞれ実現するための複数のサイクルベース回路を個々に前記論理回路に マッピングするための複数のサイクルベースマッピング情報と、前記アプリケーション の実行状態により、それらのサイクルベースマッピング情報の少なくとも 、ずれかを選 択するための構成選択情報とを備えており、さらに、当該データ処理装置は、 前記構成選択情報に基づくサイクル毎の要請により、前記複数のサイクルベースマ ッビング情報の少なくともいずれかにより前記論理回路の少なくとも一部を再構成す る制御ユニットを有するデータ処理装置。
[2] 請求項 1にお 、て、前記複数のサイクルベースマッピング情報は、前記サイクル毎 の機能を阻害することなくマージできるサイクルベースマッピング情報がマージされた 複合サイクルベースマッピング情報を含む、データ処理装置。
[3] 請求項 1にお 、て、前記複数のサイクルベースマッピング情報は、サイクル毎の前 記制御ユニットを前記論理回路にマッピングするための情報をそれぞれ含んでおり、 前記サイクル毎の制御ユニットが、前記論理回路に再構成される、データ処理装置
[4] サイクル毎に再構成可能な論理回路と、ハードウェア制御情報を格納したライブラリ とを有するデータ処理装置であって、
前記ハードウェア制御情報は、アプリケーションを実行するためのサイクル毎の機 能をそれぞれ実現するための複数のサイクルベース回路情報を個々に、前記論理 回路にマッピングするための複数のサイクルベースマッピング情報と、前記アプリケ ーシヨンの実行状態により、それらのサイクルベースマッピング情報の少なくとも 、ず れかを選択するための構成選択情報とを備えており、
前記論理回路の少なくとも一部は、前記構成選択情報に基づくサイクル毎の要請 により、前記複数のサイクルベースマッピング情報の少なくとも 、ずれかにより再構成 される、データ処理装置。
[5] 請求項 4にお 、て、前記複数のサイクルベースマッピング情報は、サイクル毎の前 記制御ユニットを前記論理回路にマッピングするための情報をそれぞれ含んでおり、 前記論理回路の少なくとも一部は、前記論理回路に再構成された前記サイクル毎 の制御ユニットの要請により再構成される、データ処理装置。
[6] サイクル毎に再構成可能な論理回路を有するデータ処理装置の制御方法であって 、ハードウェア制御情報に基づき前記論理回路の少なくとも一部を再構成する工程 を有し、
前記ハードウェア制御情報は、アプリケーションを実行するためのサイクル毎の機 能をそれぞれ実現するための複数のサイクルベース回路を個々に前記論理回路に マッピングするための複数のサイクルベースマッピング情報と、前記アプリケーション の実行状態により、それらのサイクルベースマッピング情報の少なくとも 、ずれかを選 択するための構成選択情報とを含み、
前記再構成する工程は、前記構成選択情報に基づくサイクル毎の要請により、前 記複数のサイクルベースマッピング情報のいずれかを選択して前記論理回路の少な くとも一部を再構成することを含む、制御方法。
[7] 請求項 6にお 、て、前記複数のサイクルベースマッピング情報は、サイクル毎の前 記制御ユニットを前記論理回路にマッピングするための情報をそれぞれ含んでおり、 前記再構成する工程は、前記論理回路に再構成された前記サイクル毎の制御ュニ ットの要請により、前記論理回路の少なくとも一部を再構成することを含む、データ処 理装置。
[8] 再構成可能な論理回路を制御するためのハードウェア制御情報を生成するための 生成システムであって、
アプリケーションを実行するためのサイクル毎の機能をそれぞれ実現するための複 数のサイクルベース回路の回路情報を生成する機能と、
前記複数のサイクルベース回路を前記論理回路にそれぞれマッピングするための 複数のサイクルベースマッピング情報、および、前記アプリケーションの実行状態によ り、それらのサイクルベースマッピング情報の少なくとも 、ずれかを選択するための構 成選択情報を含む前記ハードウェア制御情報を生成する機能とを有する、生成シス テム。
[9] 請求項 8において、さらに、前記複数のサイクルベースマッピング情報の中の、前記 サイクル毎の機能を阻害することなくマージできるサイクルベースマッピング情報を抽 出して、それらをマージして複合サイクルベースマッピング情報を生成する機能を有 する、生成システム。
[10] 請求項 8にお 、て、前記ハードウェア制御情報を生成する機能は、サイクル毎の前 記構成選択情報を生成して前記サイクルベースマッピング情報にマージする、生成 システム。
[11] 請求項 8において、前記回路情報を生成する機能は、前記アプリケーションを実行 するためのコントロールデータフローダイアグラムに基づき、前記複数のサイクルベー ス回路の情報を生成する、生成システム。
[12] 請求項 8において、前記回路情報を生成する機能は、前記アプリケーションを実行 するための RTLをサイクルベースに分解して、前記複数のサイクルベース回路の情 報を生成する、生成システム。
[13] 再構成可能な論理回路を制御するためのハードウェア制御情報を生成する方法で あって、
アプリケーションを実行するためのサイクル毎の機能をそれぞれ実現するための複 数のサイクルベース回路の回路情報を生成する工程と、
前記複数のサイクルベース回路を前記論理回路にそれぞれマッピングするための 複数のサイクルベースマッピング情報、および、前記アプリケーションの実行状態によ り、それらのサイクルベースマッピング情報の少なくとも 、ずれかを選択するための構 成選択情報を含む前記ハードウェア制御情報を生成する工程とを有する、生成する 方法。
[14] 請求項 13において、さらに、前記複数のサイクルベースマッピング情報の中の、前 記サイクル毎の機能を阻害することなくマージできるサイクルベースマッピング情報を 抽出して、それらをマージして複合サイクルベースマッピング情報を生成する工程を 有する、生成する方法。
[15] 請求項 13において、前記ハードウェア制御情報を生成する工程では、サイクル毎 の前記構成選択情報を生成し、前記サイクルベースマッピング情報にマージする、 生成する方法。
[16] 請求項 13において、前記回路情報を生成する工程では、前記アプリケーションを 実行するためのコントロールデータフローダイアグラムに基づき、前記複数のサイクル ベース回路の情報を生成する、生成する方法。
[17] 請求項 13において、前記回路情報を生成する工程では、前記アプリケーションを 実行するための RTLをサイクルベースに分解して、前記複数のサイクルベース回路 の情報を生成する、生成する方法。
[18] 再構成可能な論理回路を有するデータ処理装置を制御するためのハードウェア制 御情報であって、アプリケーションを実行するためのサイクル毎の機能をそれぞれ実 現するための複数のサイクルベース回路を個々に前記論理回路にマッピングするた めの複数のサイクルベースマッピング情報と、前記アプリケーションの実行状態により 、それらのサイクルベースマッピング情報の少なくとも 、ずれかを選択するための構 成選択情報とを有するハードウ ア制御情報が記録されている記録媒体。
[19] 請求項 18にお 、て、前記複数のサイクルベースマッピング情報は、前記サイクル毎 の機能を阻害することなく、複数のサイクルベースマッピング情報がマージされた複 合サイクルベースマッピング情報を含んで 、る、記録媒体。
[20] 請求項 18において、前記構成選択情報は、サイクル毎の構成選択情報であり、前 記サイクルベースマッピング情報にマージされて 、る、記録媒体。
PCT/JP2005/019924 2004-10-28 2005-10-28 再構成可能な論理回路を有するデータ処理装置 WO2006046711A1 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
EP20050805358 EP1806847B1 (en) 2004-10-28 2005-10-28 Data processing device having reconfigurable logic circuit
AT05805358T ATE458309T1 (de) 2004-10-28 2005-10-28 Datenverarbeitungsgerät mit rekonfigurierbarer logischer schaltung
US11/718,195 US7779380B2 (en) 2004-10-28 2005-10-28 Data processing apparatus including reconfigurable logic circuit
DE200560019448 DE602005019448D1 (de) 2004-10-28 2005-10-28 Datenverarbeitungsgerät mit rekonfigurierbarer logischer schaltung
JP2006542353A JP4893309B2 (ja) 2004-10-28 2005-10-28 再構成可能な論理回路を有するデータ処理装置
US12/831,360 US8713492B2 (en) 2004-10-28 2010-07-07 Data processing apparatus including reconfigurable logic circuit
US14/095,317 US9135387B2 (en) 2004-10-28 2013-12-03 Data processing apparatus including reconfiguarable logic circuit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004-313710 2004-10-28
JP2004313710 2004-10-28

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US11/718,195 A-371-Of-International US7779380B2 (en) 2004-10-28 2005-10-28 Data processing apparatus including reconfigurable logic circuit
US12/831,360 Division US8713492B2 (en) 2004-10-28 2010-07-07 Data processing apparatus including reconfigurable logic circuit

Publications (1)

Publication Number Publication Date
WO2006046711A1 true WO2006046711A1 (ja) 2006-05-04

Family

ID=36227951

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/019924 WO2006046711A1 (ja) 2004-10-28 2005-10-28 再構成可能な論理回路を有するデータ処理装置

Country Status (6)

Country Link
US (3) US7779380B2 (ja)
EP (1) EP1806847B1 (ja)
JP (1) JP4893309B2 (ja)
AT (1) ATE458309T1 (ja)
DE (1) DE602005019448D1 (ja)
WO (1) WO2006046711A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009152790A (ja) * 2007-12-19 2009-07-09 Fujitsu Microelectronics Ltd 動的再構成支援プログラム、動的再構成支援方法、動的再構成回路、動的再構成支援装置および動的再構成システム
US7900180B2 (en) 2006-10-25 2011-03-01 Sony Corporation Semiconductor chip using specification interface
WO2014132669A1 (ja) * 2013-03-01 2014-09-04 アトナープ株式会社 データ処理装置およびその制御方法
JPWO2014132670A1 (ja) * 2013-03-01 2017-02-02 アトナープ株式会社 再構成する情報を生成する装置および方法
WO2023181380A1 (ja) * 2022-03-25 2023-09-28 Chiptip Technology株式会社 情報処理システム、情報処理装置、サーバ装置、プログラム、リコンフィグラブルデバイス、又は方法

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7167025B1 (en) 2004-02-14 2007-01-23 Herman Schmit Non-sequentially configurable IC
JP4893309B2 (ja) 2004-10-28 2012-03-07 富士ゼロックス株式会社 再構成可能な論理回路を有するデータ処理装置
US7743085B2 (en) * 2004-11-08 2010-06-22 Tabula, Inc. Configurable IC with large carry chains
US7372297B1 (en) * 2005-11-07 2008-05-13 Tabula Inc. Hybrid interconnect/logic circuits enabling efficient replication of a function in several sub-cycles to save logic and routing resources
US8463836B1 (en) 2005-11-07 2013-06-11 Tabula, Inc. Performing mathematical and logical operations in multiple sub-cycles
US8863067B1 (en) 2008-02-06 2014-10-14 Tabula, Inc. Sequential delay analysis by placement engines
US8555218B2 (en) * 2008-05-24 2013-10-08 Tabula, Inc. Decision modules
WO2010001411A2 (en) * 2008-07-01 2010-01-07 Nandy S K A method and system on chip (soc) for adapting a runtime reconfigurable hardware to decode a video stream
WO2011123151A1 (en) 2010-04-02 2011-10-06 Tabula Inc. System and method for reducing reconfiguration power usage
US8650514B2 (en) 2010-06-23 2014-02-11 Tabula, Inc. Rescaling
US8788987B2 (en) 2010-06-23 2014-07-22 Tabula, Inc. Rescaling
US8941409B2 (en) 2011-07-01 2015-01-27 Tabula, Inc. Configurable storage elements
US8984464B1 (en) 2011-11-21 2015-03-17 Tabula, Inc. Detailed placement with search and repair
US9203397B1 (en) 2011-12-16 2015-12-01 Altera Corporation Delaying start of user design execution
US8789001B1 (en) 2013-02-20 2014-07-22 Tabula, Inc. System and method for using fabric-graph flow to determine resource costs
US9000801B1 (en) 2013-02-27 2015-04-07 Tabula, Inc. Implementation of related clocks
US9235669B2 (en) * 2014-02-18 2016-01-12 Codasip S.R.O. Method and an apparatus for automatic processor design and verification
US20160246490A1 (en) * 2015-02-25 2016-08-25 Bank Of America Corporation Customizable Dashboard
US11113091B2 (en) * 2019-03-12 2021-09-07 Arm Limited Apparatus for forwarding a mediated request to processing circuitry in response to a configuration request

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000040745A (ja) 1998-01-21 2000-02-08 Lucent Technol Inc ハ―ドウェアのセットを再構成する方法および再構成可能ハ―ドウェア装置
JP2003518666A (ja) 1999-12-14 2003-06-10 アトメル・コーポレイション 動的に再構成可能な論理回路のための物理設計を実現する方法
US20040103265A1 (en) * 2002-10-16 2004-05-27 Akya Limited Reconfigurable integrated circuit

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4831573A (en) * 1987-03-06 1989-05-16 Altera Corporation Programmable integrated circuit micro-sequencer device
US6173434B1 (en) * 1996-04-22 2001-01-09 Brigham Young University Dynamically-configurable digital processor using method for relocating logic array modules
JPH10173515A (ja) * 1996-12-12 1998-06-26 Pfu Ltd Fpga装置
US6321366B1 (en) * 1997-05-02 2001-11-20 Axis Systems, Inc. Timing-insensitive glitch-free logic system and method
US6138266A (en) * 1997-06-16 2000-10-24 Tharas Systems Inc. Functional verification of integrated circuit designs
JP3489608B2 (ja) * 1997-06-20 2004-01-26 富士ゼロックス株式会社 プログラマブル論理回路システムおよびプログラマブル論理回路装置の再構成方法
US6466898B1 (en) * 1999-01-12 2002-10-15 Terence Chan Multithreaded, mixed hardware description languages logic simulation on engineering workstations
US6415430B1 (en) * 1999-07-01 2002-07-02 Nec Usa, Inc. Method and apparatus for SAT solver architecture with very low synthesis and layout overhead
EA004196B1 (ru) * 1999-08-30 2004-02-26 Ай Пи ФЛЕКС ИНК. Управляющий программный продукт и система обработки данных
US7036106B1 (en) * 2000-02-17 2006-04-25 Tensilica, Inc. Automated processor generation system for designing a configurable processor and method for the same
US6970957B1 (en) * 2000-04-24 2005-11-29 Microsoft Corporation Dynamically configuring resources for cycle translation in a computer system
US6816826B1 (en) * 2000-10-05 2004-11-09 International Business Machines Corporation Fully exhibiting asynchronous behavior in a logic network simulation
US6691287B2 (en) * 2000-12-14 2004-02-10 Tharas Systems Inc. Functional verification system
US20020133325A1 (en) * 2001-02-09 2002-09-19 Hoare Raymond R. Discrete event simulator
US6598209B1 (en) * 2001-02-28 2003-07-22 Sequence Design, Inc. RTL power analysis using gate-level cell power models
US20020194558A1 (en) * 2001-04-10 2002-12-19 Laung-Terng Wang Method and system to optimize test cost and disable defects for scan and BIST memories
US7996827B2 (en) * 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7076416B2 (en) * 2001-08-20 2006-07-11 Sun Microsystems, Inc. Method and apparatus for evaluating logic states of design nodes for cycle-based simulation
US7257524B2 (en) * 2001-09-19 2007-08-14 Quickturn Design Systems, Inc. Simulation and timing control for hardware accelerated simulation
US7200735B2 (en) * 2002-04-10 2007-04-03 Tensilica, Inc. High-performance hybrid processor with configurable execution units
JP2004200311A (ja) * 2002-12-17 2004-07-15 Fujitsu Ltd 論理検証装置
WO2004061722A1 (ja) * 2002-12-27 2004-07-22 Fujitsu Limited 論理シミュレーション装置
DE10302141A1 (de) 2003-01-21 2004-08-05 Siemens Ag Verfahren zum Konfigurieren eines Array-Prozessors
US6944834B2 (en) * 2003-01-22 2005-09-13 Stmicroelectrontronics, Inc. Method and apparatus for modeling dynamic systems
US20050050482A1 (en) * 2003-08-25 2005-03-03 Keller S. Brandon System and method for determining applicable configuration information for use in analysis of a computer aided design
CN100580621C (zh) * 2003-08-29 2010-01-13 Ip菲力股份有限公司 数据处理装置、控制方法、自动控制装置、终端、生成方法
US7167025B1 (en) * 2004-02-14 2007-01-23 Herman Schmit Non-sequentially configurable IC
JP4893309B2 (ja) 2004-10-28 2012-03-07 富士ゼロックス株式会社 再構成可能な論理回路を有するデータ処理装置
US7428721B2 (en) * 2004-12-01 2008-09-23 Tabula, Inc. Operational cycle assignment in a configurable IC
US8138788B2 (en) * 2005-05-31 2012-03-20 Fuji Xerox Co., Ltd. Reconfigurable device
US7437690B2 (en) * 2005-10-13 2008-10-14 International Business Machines Corporation Method for predicate-based compositional minimization in a verification environment
US20070219771A1 (en) * 2005-12-01 2007-09-20 Verheyen Henry T Branching and Behavioral Partitioning for a VLIW Processor
JP5003097B2 (ja) * 2006-10-25 2012-08-15 ソニー株式会社 半導体チップ
JP5119902B2 (ja) * 2007-12-19 2013-01-16 富士通セミコンダクター株式会社 動的再構成支援プログラム、動的再構成支援方法、動的再構成回路、動的再構成支援装置および動的再構成システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000040745A (ja) 1998-01-21 2000-02-08 Lucent Technol Inc ハ―ドウェアのセットを再構成する方法および再構成可能ハ―ドウェア装置
JP2003518666A (ja) 1999-12-14 2003-06-10 アトメル・コーポレイション 動的に再構成可能な論理回路のための物理設計を実現する方法
US20040103265A1 (en) * 2002-10-16 2004-05-27 Akya Limited Reconfigurable integrated circuit

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CRONQUIST D C ET AL., ADVANCED RESEARCH IN VLSI, 24 March 1999 (1999-03-24), pages 23 - 40
CRONQUIST D C ET AL: "Architecture design of reconfigurable pipelined datapaths.", ADVANCED RESEARCH IN VLSI., 24 March 1999 (1999-03-24), pages 23 - 40, XP010329009 *
VILLASENOR J, JONES C, SCHONER B.: "Video communications using rapidly reconfigurable hardware.", CIRCUITS ANS SYSTEMS FOR VIDEO TECHNOLOGY, IEEE TRANSACTIONS., vol. 5, no. 6, December 1995 (1995-12-01), pages 565 - 567, XP002995737 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7900180B2 (en) 2006-10-25 2011-03-01 Sony Corporation Semiconductor chip using specification interface
JP2009152790A (ja) * 2007-12-19 2009-07-09 Fujitsu Microelectronics Ltd 動的再構成支援プログラム、動的再構成支援方法、動的再構成回路、動的再構成支援装置および動的再構成システム
WO2014132669A1 (ja) * 2013-03-01 2014-09-04 アトナープ株式会社 データ処理装置およびその制御方法
JPWO2014132670A1 (ja) * 2013-03-01 2017-02-02 アトナープ株式会社 再構成する情報を生成する装置および方法
JPWO2014132669A1 (ja) * 2013-03-01 2017-02-02 アトナープ株式会社 データ処理装置およびその制御方法
US9667256B2 (en) 2013-03-01 2017-05-30 Axion Research Inc. Data processing device and control method therefor
JP2018029377A (ja) * 2013-03-01 2018-02-22 アクシオンリサーチ株式会社 データ処理装置およびその制御方法
US10009031B2 (en) 2013-03-01 2018-06-26 Axion Research Inc. Data processing device and control method therefor
WO2023181380A1 (ja) * 2022-03-25 2023-09-28 Chiptip Technology株式会社 情報処理システム、情報処理装置、サーバ装置、プログラム、リコンフィグラブルデバイス、又は方法

Also Published As

Publication number Publication date
EP1806847B1 (en) 2010-02-17
JP4893309B2 (ja) 2012-03-07
EP1806847A4 (en) 2008-02-06
US20140096095A1 (en) 2014-04-03
US7779380B2 (en) 2010-08-17
US8713492B2 (en) 2014-04-29
ATE458309T1 (de) 2010-03-15
US9135387B2 (en) 2015-09-15
US20080141019A1 (en) 2008-06-12
US20110004744A1 (en) 2011-01-06
EP1806847A1 (en) 2007-07-11
DE602005019448D1 (de) 2010-04-01
JPWO2006046711A1 (ja) 2008-05-22

Similar Documents

Publication Publication Date Title
JP4893309B2 (ja) 再構成可能な論理回路を有するデータ処理装置
Gokhale et al. Reconfigurable computing: Accelerating computation with field-programmable gate arrays
Hauck et al. Reconfigurable computing: the theory and practice of FPGA-based computation
Compton et al. Reconfigurable computing: a survey of systems and software
Gschwind et al. FPGA prototyping of a RISC processor core for embedded applications
JP4104538B2 (ja) リコンフィギュラブル回路、リコンフィギュラブル回路を備えた処理装置、リコンフィギュラブル回路における論理回路の機能決定方法、回路生成方法および回路
JP6059413B2 (ja) 再構成可能命令セル・アレイ
Cardoso et al. Compilation techniques for reconfigurable architectures
JP5077597B2 (ja) データ処理装置
Hubner et al. A heterogeneous multicore system on chip with run-time reconfigurable virtual FPGA architecture
Bondalapati et al. Reconfigurable computing: Architectures, models and algorithms
US10867090B2 (en) Method and apparatus for implementing an application aware system on a programmable logic device
Herpel et al. A reconfigurable computer for embedded control applications
Van Essen et al. Static versus scheduled interconnect in coarse-grained reconfigurable arrays
Tatas et al. A survey of existing fine-grain reconfigurable architectures and CAD tools
Le Lann et al. An integrated toolchain for overlay-centric system-on-chip
Galanis et al. A reconfigurable coarse-grain data-path for accelerating computational intensive kernels
Patterson et al. Slotless module-based reconfiguration of embedded FPGAs
Masselos et al. Introduction to reconfigurable hardware
Woods et al. FPGA Synthesis on the XC6200 using IRIS and Trianus/Hades (or from Heaven to Hell and back again)
Hazelwood et al. Creating applications in RCADE
Capalija Architecture, Mapping Algorithms and Physical Design of Mesh-of-Functional-Units FPGA Overlays for Pipelined Execution of Data Flow Graphs
Shriram Methodology For Designing High Speed Reconfigurable Custom Computer
Ligon III et al. Creating Applications in RCADE
Xydis et al. Flexibility Inlining into Arithmetic Data-paths Exploiting A Regular Interconnection Scheme

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BW BY BZ CA CH CN CO CR CU CZ DK DM DZ EC EE EG ES FI GB GD GE GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV LY MD MG MK MN MW MX MZ NA NG NO NZ OM PG PH PL PT RO RU SC SD SG SK SL SM SY TJ TM TN TR TT TZ UG US UZ VC VN YU ZA ZM

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SZ TZ UG ZM ZW AM AZ BY KG MD RU TJ TM AT BE BG CH CY DE DK EE ES FI FR GB GR HU IE IS IT LU LV MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW MR NE SN TD TG

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: 2006542353

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2005805358

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWP Wipo information: published in national office

Ref document number: 2005805358

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 11718195

Country of ref document: US