WO2005091160A1 - Methode de creation d'un code d'activation - Google Patents

Methode de creation d'un code d'activation Download PDF

Info

Publication number
WO2005091160A1
WO2005091160A1 PCT/JP2005/004963 JP2005004963W WO2005091160A1 WO 2005091160 A1 WO2005091160 A1 WO 2005091160A1 JP 2005004963 W JP2005004963 W JP 2005004963W WO 2005091160 A1 WO2005091160 A1 WO 2005091160A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing
information
data
function
data path
Prior art date
Application number
PCT/JP2005/004963
Other languages
English (en)
Japanese (ja)
Inventor
Hiroshi Shimura
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 JP2006511244A priority Critical patent/JP4208919B2/ja
Publication of WO2005091160A1 publication Critical patent/WO2005091160A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Definitions

  • the present invention relates to a method for generating a code for executing an application using a data processing device that configures a data path using a plurality of processing elements.
  • Japanese Patent Application Laid-Open No. 2004-40188 discloses an arithmetic circuit group including a processor, a plurality of arithmetic units, and a connection path for variably connecting the arithmetic units, and a parameter capable of changing processing specifications by parameter setting.
  • an integrated circuit characterized by including dedicated hardware, an interface between modules for connecting the processor, the arithmetic circuit group, and the dedicated hardware with parameters to each other.
  • processing that can be handled by changing parameters such as the number of data and accuracy of processing is executed by a combination of dedicated hardware for the processing and a parameter holding register.
  • the contents of the parameter holding register are set by some method before operating the integrated circuit.
  • International Publication No. 02Z095946 discloses that a plurality of elements for performing various logical operations have a region called a matrix in which the elements are arranged two-dimensionally.
  • a data processing device capable of flexibly reconfiguring a data path by a plurality of elements by switching.
  • the configuration in which the data path can be dynamically reconfigured is not limited to this, and elements that perform appropriate logical operations (processing elements, PEs) are connected in a tree shape, and adjacent elements are connected to each other.
  • PEs processing elements
  • a configuration in which the elements are connected and the elements are used as a communication path can be considered.
  • the function of each element is provided by preparing a configuration memory for storing the configuration data of each element. Can be controlled.
  • the processing or operation can be changed for each element by the configuration data, and the connection between elements can be changed It is also possible to control the operation and non-operation of each element.
  • a data processing device requiring a plurality of elements, one or more kinds of elements are prepared in order to enhance versatility, and many data paths are provided among the plurality of elements. It is configured using some elements.
  • the data processing device uses a plurality of elements physically arranged in a certain area in accordance with a predetermined rule. It is necessary to select the elements required to configure the data path to be used, and to determine the physical arrangement of the elements required for the target data path and the connection between those elements. The process of determining the physical placement and connection of these elements is called the placement and routing step, mapping step or layout step.
  • a. The process of designing a data path (data flowgram) to achieve the desired function.
  • b. The process of realizing the target data path by connecting one or more types of prepared elements, that is, designing a data path for each element.
  • c. The process of converting the target element-based data node into layout information, which is the specific element arrangement and their combination.
  • the data path executes a process involving transfer between memories
  • the data path having the same configuration can be obtained by changing parameters such as a copy source address, a copy destination address, and a copy word number.
  • parameters such as a copy source address, a copy destination address, and a copy word number.
  • a method designed to actually reconfigure data paths with different parameters is used. The conclusion is that the design is much more economical. If there are some bottlenecks in reconfiguring the data path and you do not want to change the configuration of the data path, use a memory or register that is physically fixed and can be called by a program, and include wiring to that register. There is a method of laying out the data path and rewriting the contents of the memory by a program.
  • This method not only requires extra registers for setting parameters, but also adds elements to configure the data path that performs the desired processing and connects them to registers for setting parameters. Also requires an extra data path. Therefore, the use efficiency of the element is reduced and the data path is complicated. Therefore, it is an inapplicable solution when trying to perform various processes by dynamically reconfiguring multiple data paths.
  • dedicated hardware with parameters can be provided independently of a reconfigurable circuit.
  • the reconfigurable circuit has enough elements to form a data path to be configured with dedicated hardware with parameters
  • the dedicated hardware with parameters will be redundant hardware. It is difficult to adopt this technology if it is required to reduce the size of data processing devices packaged in the form of LSI or ASIC, reduce power consumption, and reduce costs.
  • a data processing device capable of configuring a data path using a plurality of processing elements is provided with a configuration stored in each memory corresponding to each processing element. It is an object of the present invention to provide a method for generating a code that can be easily controlled in a unit of a processing element when using a program. Then, the configuration information of each processing element can be handled freely without the user being aware of the physical address of each processing element, and the processing of the data node composed of those elements can be performed on the source code.
  • An object of the present invention is to provide a user with an environment in which parameters can be freely changed by changing parameters.
  • the present invention provides a method for generating an activation code for executing an application by a data processing device in which the function of a processing element is controlled, the method including the following steps.
  • a computer generates layout information for mapping a first data path for performing processing including a first function to at least one circuit section, the layout information including connection information of a plurality of processing elements.
  • the activation code is executed by one data path mounted in a circuit section by the activation code, and is transferred to a memory area corresponding to an element related to a first parameter of another data path. It may access and change parameters. If the data processing device has a control unit that controls the processing element function by setting configuration information in the memory area, for example, a control processor such as RISC, the activation code Is an execution program (execution code) executed by the control unit.
  • the second step includes a plurality of processing elements (hereinafter, sometimes referred to as elements) that can execute logic of appropriate scale and Z or arithmetic operation.
  • the layout information for mapping the data path to the circuit section is generated using a computer.
  • the processing in the computer when generating the layout information is traced, and the processing related to the first parameter is performed. It is possible to generate access information indicating the address of the memory area of the element.
  • the access information may be information indicating the entire memory area corresponding to each element. Further detailed access information may be a detailed address of a memory area in a word or byte unit in which some processing is performed in accordance with the first parameter in the memory area corresponding to the element.
  • the access information to the memory area related to the first parameter is converted to a third step of generating an activation code, for example, an execution program by compiling a source code. give feedback.
  • an activation code for example, an execution program by compiling a source code.
  • the instruction related to the first parameter Can be converted into an activation code including information for specifically accessing a memory area affected by the first parameter.
  • a memory area affected by the first parameter can be converted into an execution code operated based on the specific address. Therefore, the user who generates the source code can describe the first parameter without being conscious of the physical address of the processing element specifically operated by the first parameter.
  • One preferred embodiment of the present invention is a case where the first function includes a function whose processing is changed by the first parameter.
  • the access information includes an address of a memory area of the processing element whose processing is changed by the first parameter
  • the source code includes an instruction to change the first parameter.
  • the user can freely handle the configuration information of each processing element without being aware of the physical address of the processing element. It is the most useful effect of the present invention that the parameters that change the function of the circuit can be described without stress, but the functions released as user-friendly functions according to the present invention are not limited to this. According to the present invention, software design of all processes that require access to the configuration information of the processing element is facilitated. For example, it is very easy to generate code (program) for reading and writing configuration information of a desired element for debugging purposes.
  • code program
  • a program for generating, ie, compiling, the activation code of the present invention using a computer uses at least a part of an application by utilizing a first function related to a first parameter. For executing a layout process for mapping a first data node that performs a process including a first function to a circuit section of a data processing device in accordance with a source code generated to be executed by the including. Then, in the layout process, layout information including connection information of a plurality of processing elements is generated, and access information for accessing a memory area corresponding to the processing element related to the first parameter is generated.
  • the connrill program further includes a source code including an instruction related to the first parameter and access information, at least as inputs, for executing a process of generating an activation code of the data processing device. It may have a description.
  • the description to be executed by the computer includes source code or instructions in a computer-executable form, an instruction group, a macro instruction, an instruction to call a module or a subroutine for performing each processing, and the like.
  • This compiling program or program product can be recorded on a suitable recording medium such as a CD-ROM and provided, or can be provided via a computer network such as the Internet. .
  • a source code including an instruction related to the first parameter, and address information.
  • the relationship between the processing element and the memory area in the circuit section of the data processing device is not particularly limited as long as the function of the processing element can be dynamically controlled by the configuration information set in the memory area. It is not necessary that the write element and the memory area are arranged at the same position. In consideration of the wiring delay, the configuration of each gate or transistor that constitutes a processing element, and the amount of information in the memory area, the processing element physically has a force including the memory area, or at least It is preferable that a memory area is arranged in the vicinity of the processing element in a group unit.
  • the access information includes information corresponding to a physical address enabling access to the processing element itself.
  • a reconfigurable data processing device having connection means for reconfiguring a data path by changing a connection of a plurality of processing elements
  • connection means for reconfiguring a data path by changing a connection of a plurality of processing elements at least one circuit partitioning power is used.
  • Have instructions to In the second step of generating layout information the layout information for reconfiguring the first data path and the access for enabling access to the memory area in the reconfigured first data path are included. Generate information. Therefore, the present invention is also useful in the design and development of a data processing device that forms a fixed data path by using processing elements, and the design and development of a data processing device that forms a reconfigurable data path. It is also useful in development.
  • the activation code generation method of the present invention reconfigures a data path at an arbitrary position as well as a data processing device that reconfigures a data path at a fixed position of at least one circuit area. It is also useful in the design and development of data processing equipment.
  • the access information will include the relative address.
  • the layout step may include a step for reconfiguring the first data node in any location. And generates the layout information and the relative address information of the memory area in the first data path reconstructed at an arbitrary location.
  • the first function can be described in an instance format in the source code.
  • the second step of generating layout information information that enables access to a memory area for each instance by using library information describing the first function in an object format, for example, memory for each instance, is used. Generate access information including the address of the area.
  • an instruction related to the first parameter can be converted into a code for accessing a memory area corresponding to a processing element for each instance.
  • FIG. 1 is a diagram showing an outline of a processing unit (PU).
  • FIG. 2 is a diagram showing an outline of a matrix.
  • FIG. 3 is a diagram showing an example of a processing element (PE).
  • PE processing element
  • FIG. 4 is a diagram showing another example of PE.
  • FIG. 5 is a diagram showing a configuration for loading configuration data into PEs.
  • FIG. 6 is a diagram showing a process of generating a program for execution.
  • FIG. 7 is a diagram showing an example of a DDDL code.
  • FIG. 8 is a diagram showing an example of access information.
  • FIG. 9 is a diagram showing an example of a user source program.
  • FIG. 1 shows an example of a data processing device that executes an application using an execution program generated according to the present invention.
  • the data processing device 1 is a single processing unit (PU) 1 on a chip. As shown in FIG. 2, a circuit called a matrix in which a data path can be reconfigured by a plurality of processing elements (PE) 21 Block 19 is provided.
  • the data processing device 1 further includes a control processor (RISC) 35 for supplying and controlling the configuration information (configuration data) to the PE 21 and the like, and a control processor for transmitting the configuration information.
  • RISC control processor
  • a unit (TCU) 59 and transfer paths 51-58 are provided.
  • the transfer paths 51-58 are provided in each of the segments 10-15 in which the plurality of PEs 21 are grouped into a plurality, the input buffer 33, and the output buffer 34. These are not only supplied from RISC35 but also supplied from other PU1 etc. It also has a function to transfer the migration data to PE21.
  • the TCU 59 is connected to a bus switching unit (bus interface, BSU) 36, and the RISC 35 supplies configuration data to each PE 21 via the BCU 36 via the TCU 59.
  • the PU 1 has two types of interfaces for inputting and outputting data inside the matrix 19.
  • One is a direct input 31a-31c and a direct output 32a-32c, which can directly input and output data from the outside to the PE21 of the matrix 19.
  • Multiple PU1s can be connected using direct inputs 31a-31c and direct outputs 32a-32c to further increase the real number of PE21s that make up the data node.
  • PU1 is further provided with a configuration for supplying data to the matrix 19 using an input buffer 33 and an output buffer 34 as another input method.
  • the input buffer 33 has four input elements LDB, and the configuration and control of the buffer 33 can be set by configuration data.
  • the output buffer 34 is the same, has four output elements STB, and the configuration and control can be set by configuration data.
  • a plurality of components or interfaces are connected to the BSU 36.
  • the configuration data can be sent to the matrix 19 by using not only the RISC 35 but also these components or interfaces.
  • the configuration data for configuring another data path inside the matrix 19 can be supplied to the PE 21.
  • external memory can provide configuration data via the SDRAM interface 37, and configuration data can also be supplied from an external processor connected to the PCI bus via the PCI bus interface 38.
  • a DMAC 39 is connected as another component, and a general-purpose interface 40 such as an asynchronous communication device (UART) serving as a serial interface controller is connected via a bus bridge circuit 41.
  • UART asynchronous communication device
  • the circuit area is a circuit area in which a plurality of processing elements are arranged two-dimensionally in an array or a matrix. Therefore, the circuit area 19 is called a matrix.
  • the matrix 19 of PU1 includes 368 PE21s, and is formally divided into six segments 10 to 15 to separately form a transfer path for supplying configuration data to them.
  • the PEs 21 are not divided into a plurality of groups by these segments 10-15. Therefore, the PEs 21 can be flexibly connected by the wiring group 22, and a data path or a data flow extending over a plurality of segments can be freely configured.
  • the matrix 19 is composed of a plurality of processing elements (PEs) 21 arranged two-dimensionally in the vertical and horizontal directions, wirings 22 arranged in a grid pattern therebetween, and vertical and horizontal wirings 22 at connection points of the wirings 22. And a switching unit 23 that can freely switch the connection between the two.
  • the function of the PE 21 may be freely set by a look-up table or the like.
  • the PE21 has some elements such as an element for arithmetic logic operation, an element for delay, an element for memory, an element for generating an address for inputting or outputting data, and an element for inputting or outputting data. Contains functionally different elements.
  • PU1 multiple types of elements with an internal configuration suitable for functionally different processes are prepared, and the functionally different elements are divided into groups and arranged to improve the space efficiency of matrix 19. ing.
  • PU1 also has the advantage that the AC characteristics and processing speed can be improved because the redundancy is reduced by arranging the elements in a certain number of functional groups.
  • FIG. 3 and FIG. 4 are examples of the PE 21.
  • the PE 21 includes an internal data path area 29 whose function can be changed, and a setting unit 60 that controls the function of the internal data path area 29 based on configuration information.
  • the internal data path area 29 and the wiring 22 are connected via input / output selectors 25 and 26. Therefore, one of the plurality of buses included in the wiring 22 is selected as the input bus and the output bus based on the configuration information, and the configuration of the data path formed by the PE 21 can be controlled by the configuration information.
  • the internal data path area 29a of the PE 21a shown in FIG. It has a raw circuit 28 and a selector SEL.
  • the setting unit 60 includes a configuration memory 68 in which configuration information is stored. The function of the internal data path area 29a is controlled by the configuration information.
  • the address generated by the address generation circuit 28 under the conditions set by the configuration information is output to the wiring 22 as an output signal do.
  • the address signal is fed back to the PE 21a as an input signal di X or diy as it is or after being processed by another PE 21 via the row wiring and the column wiring.
  • the address selected by the selector SEL under the condition set by the configuration information is output from the matrix 19 as a data input or output address.
  • the function of the PE 21a can be freely controlled by rewriting the configuration information stored in the configuration memory 68. For example, if a data path that executes processing involving transfer between memories is configured using one or more PE21a, the copy source address, copy destination address, and copy word count included in the configuration information By changing the parameters such as the above, it can be used for various purposes with the same configuration data path.
  • the PE 21b shown in FIG. 4 has a configuration suitable for arithmetic operations and logical operations.
  • the internal data path unit 29b includes a shift circuit SHIFT, a mask circuit MASK, and a logical operation unit ALU. Then, as in the case of the PE 21a, the states of the shift circuit SHIFT, the mask circuit MASK, and the logical operation unit ALU are set by the configuration information stored in the configuration memory 68 of the setting unit 60. Therefore, by changing the configuration information, the input data dix and diy can be added or subtracted, compared, and a logical sum or a logical product can be calculated, and the result is output as an output signal do as a wiring (bus). 22 can be output.
  • FIG. 5 shows a mechanism for inputting and outputting data using the transfer path in the PE 21.
  • Each of the transfer paths 51-56 is a wiring for serially connecting a 1-word (32-bit) register (flip-flop) provided in PE21 included in each of the segments 10-15 shown in FIG. You.
  • the transfer path 51 will be described as an example.
  • the setting unit 60 of the PE 21 has a 32-bit register (FF) 61, and the FF 61 of the PE 21 adjacent to the front and rear by the 32-bit transfer path 51. Is connected to Therefore, in the transfer path 51, the one-word data 75 transmitted to the FF61 of one PE21 is transmitted to the FF61 of the next PE21 with one clock or one cycle delay.
  • FF 32-bit register
  • the setting unit 60 includes a decoder 62 that decodes data 75 stored in the FF 61, a background operation unit 63 that operates in the background to store the data 75, and a oral data path area. And a foreground operation unit 64 in which configuration data for setting 29 are stored.
  • the knock operation unit 63 selects three banks of the background memory 65, a selector 66 for distributing the data 75 stored in the FF 61 to each bank of the background memory 65 and a line to be directly output, and selects a bank of the memory 65.
  • a selector 67 capable of outputting data.
  • the foreground operating section 64 includes a foreground memory 68 that maintains the current configuration of the data path area 29. Therefore, this foreground memory 68 is a configuration memory that actually controls the function of the data path area 29.By rewriting a part or all of the configuration data of this memory 68, the function or operation of PE21 is It can be controlled freely within the designed range.
  • the foreground operation unit 64 includes a selector 69 that selects and supplies data from the knock ground memory 65 or the FF 61 of the transfer path 51 to the foreground memory 68.
  • the selectors 67 and 69 for selecting the configuration data (setting data) to be loaded into the foreground memory 68 are controlled by the second selectors 72 and 70 for selecting the selection signal, and are set to FF61 by the transfer path 51. Data and configuration data set in the foreground memory 68 can also be controlled.
  • the selectors 67 and 69 may be controlled by a signal supplied directly from the RISC 35.
  • the setting unit 60 can select the data 75 to be supplied to the FF61 of the downstream PE21 from any one of the data of the FF61 of the own PE21, the data of the bank of the background memory 65, and the data of the foreground memory 68.
  • An output selector 71 is provided.
  • the decoder 62 switches the output selector 71 by analyzing the data 75 transferred to the FF61 of its own PE21, and selects the data 75 transferred to the FF61 of the downstream PE21.
  • the PU1 can supply appropriate configuration data to the setting unit 60 of each PE21, and more specifically, the configuration memory 68 corresponding to the PE21 in a timely manner by the RISC 35. it can.
  • the data node composed of a plurality of PEs 21 can be dynamically changed.
  • the hardware capable of dynamically changing the connection of the PE 21 to reconfigure the data node is not limited to this.
  • the wiring group 22 to connect the PEs 21 it is also possible to use the PEs 21 themselves as connection means and connect the PEs 21 to each other to form a changeable data path.
  • FIG. 6 shows a process of generating an execution program for executing a given user specification (application) by the PU1.
  • the application generally indicates the tasks to be processed by PU1 or devices such as electronic devices that implement PU1, and is determined by the specifications of the user.
  • the user specification indicating the application is given in the C source code (userO.c) 81 which is a device-independent description.
  • the C source ⁇ sco. ⁇ (userO.c) 81 is referenced by a DDDL (Device Dependent Description Language) compiler 101 with reference to a hardware library 82 containing PU1 hardware information.
  • DDDL Device Dependent Description Language
  • step ST-A most of the processing described in the source code 81 is converted to be executed using the data path constituted by the PE 21 of the matrix 19 of PU1. Therefore, the DDDL source code 85 that describes the processing to be executed using the data path configured by the PE 21 in a format that depends on the device, that is, the function of the PE 21 included in the matrix 19 is used by the DDDL compiler 101. Generated. Further, a source code (userl.c) 84 including a description for controlling the matrix 19 whose data path is formed by the DDDL source code 85 is also generated by the DDDL compiler 101.
  • the matrix library 83 referred to by the DDDL compiler 101 has a module in which functions frequently used in a user program are described in the DDDL, so that the time required to generate the D DDL source code 85 can be reduced. it can.
  • the functions to be modularized include, for example, functions related to input / output such as access control to a memory, and functions related to data processing such as Fourier transform.
  • by preparing DDDL sources of multiple data paths with the optimal configuration for several conditions for one function in the library 83 so that the compiler 101 can select them it is possible to shorten the user time. You can generate a DDDL source suitable for using.
  • a DDDL source suitable for use by a user by changing a parameter of a data path for realizing a certain function.
  • one or more parameters that can be changed from the user source code and DDDL code that describes a data path for realizing the function are prepared in the library 83. Therefore, in addition to the user source code 84 for realizing the user specification and the user DDDL code 85 for realizing the user specification, the DDDL compiler 101 can be used for the user source code 84 or the user DDDL code (user.dd2) 85 Or, output DDDL code (matrix. Dd2) 86 of multiple modules. Then, the user source code 84 includes an instruction for defining or changing a parameter that determines the processing of the selected DDDL code 86.
  • the functions to be realized by the module can be described in the source code (source program) 84 in the instance format. Therefore, the commands that control the parameters used in the module can be described in instance form. This Therefore, a configuration in which an instance of the same module is used in a plurality of data paths can be described very easily in a user source program.
  • the DDDL compiler 101 generates a plurality of data node configurations for using the PE 21 of the matrix 19 in a time-division manner, and outputs a plurality of DDDL codes describing the configuration of each data path.
  • user source code 84 includes instructions to reconfigure the data path.
  • the DNA compiler 102 performs arrangement and wiring of the matrix 19 by using the user source code 84, the user DDDL code 85, and the DDDL code 86 of one or more modules as inputs. Therefore, the DNA compiler 102 maps the data path described in the DDDL code into the matrix 19 and outputs the layout information 87.
  • the step STB for performing this layout when mapping the DDDL code 86 of the module in which the parameter that can be changed by the user source code 84 is defined, the access indicating the address of the configuration memory 68 of the PE 21 related to the parameter is performed. The information is output as a header file (matr ix.h) 88 together with the layout information 87.
  • step ST-A the user source code is executed by the DDDL compiler 101 so that at least a part of the application is executed using a function (first function) related to a certain (first) parameter.
  • Generate 84 and DDDL source code 85 For example, in the source code 85, the specific operation of the function is determined by setting or changing parameters.
  • step ST-B in addition to the layout information, access information that enables access to the configuration memory 68 corresponding to the PE 21 related to the first parameter is generated.
  • the specific position of the PE21 for realizing the data path and the specific configuration of the gate circuit included in the PE21 are determined. . Therefore, if the DDDL code 86 includes a parameter that can be changed in advance, the specific PE21 affected by the parameter and the specific gate circuit included in the PE21 are specified, and the gate circuit is controlled. Configuration information The address of the configuration memory 68 to be stored is also specified. Alternatively, the address of the configuration memory 68 of the PE 21 affected by the parameter and the position of the word or bit affected by the parameter in the data set in the configuration memory 68 are specified.
  • the address of the configuration memory itself is the same as the address of the PE21 in the matrix.
  • the address of the PE 21 and the address of the configuration memory may not correspond one-to-one.
  • the access information 88 including the address where the data for controlling the PE 21 affected by the change of the parameter is stored can be generated in the common configuration memory.
  • the configuration data is compressed to reduce the amount of data before control at the front, and updating in the compressed state requires hardware for expansion and compression. And processing time are required, which is not preferable.
  • the DNA compiler 102 maps the data path into the matrix 19 for each instance, and outputs the layout information 87 including the arrangement and wiring information. Output.
  • the DNA connector 102 outputs access information 88 including the address of the configuration memory of the PE 21 affected by the parameter for each data path, that is, for each instance.
  • the DNA compiler 102 when a plurality of data paths need to be dynamically reconfigured in the matrix 19, the DNA compiler 102 outputs layout information 87 for reconfiguring the data paths in the matrix 19. Further, the DNA compiler 102 outputs access information 88 including the address of the configuration memory of the PE 21 affected by the parameter in the reconfigured data path.
  • the PE 21 forming the matrix 19 is a single configuration, the data By configuring tapas anywhere in the matrix 19, the resources of the matrix 19 can be used more efficiently. However, the absolute position of PE21 is not determined until the data node is actually mounted on Matrix 19, and the configuration memory address of PE21 is not determined until then. Therefore, when the DNA compiler 102 generates the layout information for such PU1, the relative layout information 87 for reconfiguring the data path by the DDDL code 85 or 86 to an arbitrary place of the matrix 19 is used. And outputs access information 88 including the address of the configuration memory of PE21 affected by the parameter in the data path reconfigured anywhere. By providing PU1 with a function of processing the access information 88 based on the reference address of the matrix 19 in which the data path is mounted, it is possible to handle the access information 88 in the same way as access information including absolute addresses.
  • the DNA compiler 102 outputs a source code (matrix, c) 89 that controls a function of changing a parameter of the modularized DDDL code 86.
  • a source code matrix, c
  • the user source program 88 an advanced mode is described in which an instruction for individually changing parameters related to a certain module is described, and parameters related to a certain module are changed collectively. Supports basic mode in which macro instructions can be described. Therefore, by preparing a source program 89 that defines the function to change the parameters related to the DDDL code 86 using the macro instruction described in the user source program 88, the C compiler 103 analyzes the macro instruction and executes the execution program. So that it can be generated.
  • the C compiler (gcc) 103 that generates an execution program converts the user source program 90, the source code 89 of the module whose data path is converted into the matrix 19, and the source code of the module contained in the C source library 91. Generates an executable code 93 as input to PU1!
  • the user source program 90 is a source program 84 in which the access information generated in the step ST-B for generating layout information is included as a header file 88. Therefore, in the step ST-C for generating the execution program, the user source program 84 including the instruction related to the parameter, for example, the instruction for changing the noramometer, and the access information 88 are compiled.
  • the execution program 93 is generated based on the information included in the input information of the line 103.
  • the address of the memory to be accessed by the instruction for changing the parameter included in the user source program 84 is clear, and the configuration of the memory address is specified.
  • An execution program 93 for writing the configuration data or rewriting the configuration data at the address of the memory is automatically generated.
  • the DDDL connoiler 101, DNA connoiler 102, and C connoiler 103 that execute a series of processes ST-A, ST-B, and ST-C for generating these execution programs have functions as a compiler including the above-described functions. Is recorded on a recording medium such as a CD-ROM and provided as a program product having a description for executing the program on a computer having appropriate resources. These program products can also be made available on different media such as the Internet. In addition, these program products can be provided as independent products, or can be provided as a single package.
  • the process ST—A of generating a device-dependent source program 84 and DDDL code 85 from the device-independent source program 81 is executed by an element to be converted into a device-dependent format.
  • This is a process that utilizes the ideas and experiences of programmers who have many factors to consider for optimization such as allocation. Therefore, at present, semi-automatic operations are often performed by co-design with software, and are often performed manually.
  • the process ST-B for performing placement and routing and the process ST-C for generating an execution program require a large number of elements to be converted and a large number of program steps. It is realistic and must be automatically generated by a computer.
  • step ST-B which is a hardware design field for automatically generating placement and routing by a computer
  • access information 88 is generated in a software design field for automatically generating an execution program by a computer.
  • the access information 88 is used in a certain step ST.
  • FIG. 7 shows an example of the DDDL code (matrix. Dd2) 86 excerpted.
  • the DDDL source code with the macro name “cp” is defined.
  • Parameters that can be changed are specified in object format by the description 86c.
  • FIG. 8 shows an example of the access information (matrix, h) 88.
  • This access information 88 is used when the user source program 84 describes “matrix” defined in the DDDL code 86 with an instance name of “ cp i” and an instruction to change the data path parameter. Output in response to the instruction. Therefore, the address of the PE21 where the parameter is used is described in the instance format of "'.'Cpl-U6" and “'.'cpl-U8 ()", and “dna-setparmphy-cp1-U6,) "And” dna-setparmphy-cp1-U8 () "define the detailed address of the memory that needs to be rewritten by the parameter.
  • FIG. 9 shows an excerpt of an example of the user source code (user2.c) 90 including the access information 88.
  • the access information 88 is fetched by the header description 90a.
  • the configuration data of the data path “matrix” of the DDDL code 86 is loaded to the appropriate PE21 setting unit 60 of the matrix 19 that is a circuit block.
  • the loaded configuration data is loaded into the foreground memory (configuration memory) 68 of the setting unit 60 of the PE 21 for configuring the data path, and the internal data path unit 29 is loaded. Control.
  • a target data path is formed in the matrix 19, which is a circuit section.
  • a macro instruction 90d specifying an instance name cpl of "dna-setparmmacro-cpl (;)” sets a parameter that is open as changeable in the data path "matrix" to a predefined value of "inputl”. Then, the processing by the data path "matrix” is started by the description 90e of "dna_run (;)". When the processing of the data path ends, the operation of the data path is stopped by the description 90f of “dna_stop (;)”. In this way, the process controlled by the parameters set by the description 90d is executed. Further, the configuration data is loaded into the foreground configuration memory 68 again according to the description 90g.
  • the parameter of the data path “matrix” is set to a predefined value of “input 2” by the macro instruction 90h “dna—setparmmacro—cpl (;)”, and the data path “matrix” is described by the description 90j. To start the process. This allows the same configuration data path “matrix” to operate with different parameters, without having to load new configuration data!
  • the C compiler 103 is changed in macro instructions 90d and 90h of “dna—setparmmacro—cp 1 (;)”. Details of these parameters can be found by referring to source code 89 of data path “matrix”. In addition, the C compiler 103 determines the detailed address of the memory in which the data to be changed according to those parameters is stored or the memory in which the data is stored is referred to by referring to the access information 88 included in the source code 90.
  • the C compiler 103 can execute the macro instruction 90d and 90h to change the parameter.
  • An execution instruction for rewriting the contents of the corresponding address of the configuration memory 68 for controlling the corresponding PE 21 can be automatically generated.
  • the activation code generated by the present invention is It is not limited to the execution program of the control processor.
  • the matrix 19 By configuring an appropriate data path in the matrix 19, which is a reconfigurable circuit section, it is possible to give the matrix 19 a function as a control processor and control other data paths in the matrix 19.
  • the activation code generated according to the present invention is executed in the matrix 19.
  • the configuration information also has a function as an activation code (activation code).
  • activation code activation code
  • a source program is described in C language.
  • a language suitable for describing another source program such as JAVA (registered trademark) can be used.
  • the application program that is the object of the present invention includes the entire software to be processed in a data processing device that can form a data path by connecting elements. This includes application programs that have been used, as well as debugging programs.
  • the force S described in the example of a program for changing parameters is used, and the design and development of a program for debugging, including the process of reading and rewriting parameters reflecting the processing results of the data path, are also described. It is possible to apply the invention.
  • the present invention when determining a layout so that a data path that realizes a function of changing the processing content to a parameter is realized by connecting a plurality of elements. Then, access information indicating the address of the memory area where the confidential information of the processing element related to the parameter is stored is generated, and the source code is used to compile the source code to generate the activation code.
  • This generation method is not limited to semiconductor integrated circuits including electric or electronic circuits, system LSIs, ASICs, FPGAs, etc. It can be applied to all data processing systems that can compose a data node by connecting different processing elements. Further, the present invention is also applied to a distributed data processing system in which a computing unit having an appropriate computer function such as a personal computer is connected as an element by a computer network to form a data node. It is possible to do.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

Est fournie une mEthode de crEation de code d'activation afin d'exEcuter une application par un dispositif de traitement de l'information ayant une partition de circuit oU le trajet des donnEes se fait A partir d'ElEments de traitement de liaison, dont le fonctionnement est contrOlE en configurant une information dans une zone de la mEmoire correspondant aux ElEments de traitement. La mEthode inclue une Etape gEnErant un renseignement sur la mise en page pour suivre le tacE d'une information sur la partition du circuit crEant une information d'accEs permettant un accEs A la zone de la mEmoire correspondant A l'ElEment de traitement en corrElation avec le premier paramEtre. Il est possible de fournir A un utilisateur un environnement capable de modifier librement le traitement du trajet de l'information configurEe par les ElEments de traitements en modifiant le paramEtre sur le code de la source.
PCT/JP2005/004963 2004-03-19 2005-03-18 Methode de creation d'un code d'activation WO2005091160A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006511244A JP4208919B2 (ja) 2004-03-19 2005-03-18 活性化コードの生成方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004-080000 2004-03-19
JP2004080000 2004-03-19

Publications (1)

Publication Number Publication Date
WO2005091160A1 true WO2005091160A1 (fr) 2005-09-29

Family

ID=34993900

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/004963 WO2005091160A1 (fr) 2004-03-19 2005-03-18 Methode de creation d'un code d'activation

Country Status (2)

Country Link
JP (1) JP4208919B2 (fr)
WO (1) WO2005091160A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113348439A (zh) * 2019-02-26 2021-09-03 株式会社日立制作所 应用画面显示程序执行方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06301522A (ja) * 1993-04-09 1994-10-28 Sony Corp 計算機システム構成方法
JP2000089963A (ja) * 1998-09-11 2000-03-31 Canon Inc データ処理装置及びその処理方法
WO2002095946A1 (fr) * 2001-05-24 2002-11-28 Ip Flex Inc. Dispositif a circuit integre
JP2004040188A (ja) * 2002-06-28 2004-02-05 Fujitsu Ltd 集積回路及びシステム開発方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06301522A (ja) * 1993-04-09 1994-10-28 Sony Corp 計算機システム構成方法
JP2000089963A (ja) * 1998-09-11 2000-03-31 Canon Inc データ処理装置及びその処理方法
WO2002095946A1 (fr) * 2001-05-24 2002-11-28 Ip Flex Inc. Dispositif a circuit integre
JP2004040188A (ja) * 2002-06-28 2004-02-05 Fujitsu Ltd 集積回路及びシステム開発方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113348439A (zh) * 2019-02-26 2021-09-03 株式会社日立制作所 应用画面显示程序执行方法

Also Published As

Publication number Publication date
JP4208919B2 (ja) 2009-01-14
JPWO2005091160A1 (ja) 2008-02-07

Similar Documents

Publication Publication Date Title
Vipin et al. FPGA dynamic and partial reconfiguration: A survey of architectures, methods, and applications
JP4208577B2 (ja) 集積回路装置
JP5270529B2 (ja) 再構成可能なマルチ処理粗粒アレイ
JP4896242B2 (ja) マスクプログラム可能なロジックデバイスをプログラムする方法およびその方法によってプログラムされたデバイス
JP5077597B2 (ja) データ処理装置
US20230359509A1 (en) Programming Flow for Multi-Processor System
US20050283743A1 (en) Method for generating hardware information
EP1184785A2 (fr) Système et méthode pour la préparation d'un logiciel pour exécution dans un environnement de matériel configurable dynamiquement
JP2005182654A (ja) リコンフィギュラブル回路、リコンフィギュラブル回路を備えた処理装置、リコンフィギュラブル回路における論理回路の機能決定方法、回路生成方法および回路
Otero et al. Dreams: A tool for the design of dynamically reconfigurable embedded and modular systems
WO2002061631A2 (fr) Systeme, methode et article manufacture permettant d'utiliser une application de bibliotheque pour la conception efficace de coeurs ip
US11232247B1 (en) Adaptable dynamic region for hardware acceleration
US20040172519A1 (en) Processor, system LSI circuit, method of designing same, and recording medium having said method recorded thereon
Gokhale et al. Co-synthesis to a hybrid RISC/FPGA architecture
Silva et al. Support for partial run-time reconfiguration of platform FPGAs
JPH05101141A (ja) 高位合成装置
JP4208919B2 (ja) 活性化コードの生成方法
Zamacola et al. An integrated approach and tool support for the design of fpga-based multi-grain reconfigurable systems
JP2002099498A (ja) プログラム実行装置およびプログラム開発支援装置
Ferreira et al. Run-time reconfiguration support for FPGAs with embedded CPUs: The hardware layer
Wu et al. Run-time dynamic reconfiguration: a reality check based on FPGA architectures from Xilinx
Luchterhandt et al. Towards a Rocket Chip Based Implementation of the RISC-V GPC Architecture
Neuendorffer FPGA platforms for embedded systems
Thomas et al. HoneyComb: an application-driven online adaptive reconfigurable hardware architecture
Nicolescu et al. FPGA Platforms for Embedded Systems

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 BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML 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: 2006511244

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

122 Ep: pct application non-entry in european phase