WO2007034936A1 - Processor, compiler apparatus and program - Google Patents

Processor, compiler apparatus and program Download PDF

Info

Publication number
WO2007034936A1
WO2007034936A1 PCT/JP2006/318920 JP2006318920W WO2007034936A1 WO 2007034936 A1 WO2007034936 A1 WO 2007034936A1 JP 2006318920 W JP2006318920 W JP 2006318920W WO 2007034936 A1 WO2007034936 A1 WO 2007034936A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
execution
intermediate data
execution calculation
calculation
Prior art date
Application number
PCT/JP2006/318920
Other languages
French (fr)
Japanese (ja)
Inventor
Yasunori Sakakibara
Shinichi Iwamoto
Takayuki Sugawara
Original Assignee
Sonac Incorporated
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 Sonac Incorporated filed Critical Sonac Incorporated
Publication of WO2007034936A1 publication Critical patent/WO2007034936A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Definitions

  • the present invention relates to a processor including one or more execution calculation units that execute a program and a compiler device that generates an executable program for the plug processor.
  • Non-Patent Document 1 For the purpose of improving the processing speed, various processors including a plurality of execution calculation units for executing a program have been proposed and put into practical use (for example, see Non-Patent Document 1). According to 1, operating system power Executable programs can be processed in parallel in multiple execution calculation units by disposing the executable program into processes and threads and assigning processing to multiple execution calculation units Making it possible.
  • Non-Patent Document 2 describes a processor that executes data processing by setting processing contents in each arithmetic unit and connection between arithmetic units by programming in arithmetic units arranged in a matrix. It is described.
  • it is necessary to consider the number of computing units implemented. In other words, in order to execute the same processing as an executable program created with a processor having a certain number of arithmetic units as targets, for example, with a processor having a smaller number of arithmetic units than the target processor, again, It is necessary to modify the program in consideration of the number of arithmetic units.
  • Non-Patent Document 1 Akira Nakamori, "Introduction to Microprocessor 'Architecture", CQ Publishing Co., Ltd., published on April 41, 2004, p. 231 -p. 233
  • Non-Patent Document 2 Design Wave Magazine, CQ Publisher, August 2004, p. 24-p. 29 Disclosure of Invention
  • an object of the present invention is to provide a processor that can use the same executable program without an operating system regardless of the number of execution calculation units that execute the program. It is another object of the present invention to provide a compiler device and a program for the processor.
  • the processor of the present invention has one or more execution calculation means that have one or more ports for input and output, each of which has multiple calculation information that defines the processing contents of one execution calculation means, and intermediate data between the calculation information
  • This is a processor that executes an executable program that includes connection information that defines the input / output relationship of the program in one or more stages, and each port has an intermediate data storage means and each execution calculation means.
  • Intermediate data storage means that can be connected and control means for holding connection information that is information about Z or other execution calculation means.
  • the control means at each stage, includes the number of execution calculation means, connection information, and connection information. Based on the connection information, the calculation information to be executed in the stage is determined, and the execution calculation means for executing the calculation information is performing input / output with the calculation information not executed in the stage.
  • the intermediate data is input / output to / from the intermediate data storage means.
  • the execution calculation means is provided corresponding to each port, and selects one intermediate data storage means or another execution calculation means from the connected intermediate data storage means and Z or other execution calculation means, and corresponds.
  • Selection means for connecting to the port, and the control means outputs control information based on the operation information and connection information to be executed at each stage, and the selection means determines whether the intermediate data storage means or the other is in accordance with the control information. It is also preferable to select an execution calculation method.
  • the execution calculation means can select a port for inputting / outputting intermediate data, and the control means can select a port for inputting / outputting intermediate data at each stage based on calculation information and connection information to be executed. preferable.
  • a compiler device that outputs an executable program for a processor having one or more predetermined execution calculation units, which analyzes a source program and determines the number of execution calculation units required and the number of execution calculation units in each execution calculation unit.
  • Optimization means for determining the processing contents and the connection relation for input / output of intermediate data between each execution calculation section, operation information for each execution calculation section that encodes the processing contents in each execution calculation section, and The connection information describing the input / output relationship of the intermediate data between the execution calculation units as the input / output relationship of the calculation information executed by the execution calculation unit
  • a code generation means for generating an executable program.
  • a computer is caused to function as the compiler apparatus.
  • Each executable program has calculation information that defines the processing content to be executed by one execution calculation unit, and connection information that specifies the input / output relationship of intermediate data between the calculation information. Based on the number of execution calculation means installed in the processor, between the execution calculation means and between the execution calculation means and the intermediate data storage means, the calculation information to be executed at each stage is determined. By storing intermediate data with computation information that is not executed at each stage in the intermediate data storage means and acquiring it from the Z or intermediate data storage means, the same executable program can be installed regardless of the number of execution calculation means. Grams can be used.
  • the execution calculation means has a selection means for each port, and switches between the execution calculation means or the intermediate data storage means as the connection destination.
  • the execution calculation means by providing the execution calculation means with an input / output port selection function for inputting / outputting intermediate data, restrictions on the selection of operation information to be executed are relaxed.
  • FIG. 1 is a block diagram of a processor according to the present invention.
  • FIG. 2 is a block diagram of an execution calculation unit.
  • FIG. 3 is a diagram showing an embodiment of a processor of the present invention configured with four execution calculation units.
  • FIG. 4 is a diagram showing an embodiment of a processor of the present invention configured with two execution calculation units.
  • FIG. 5 is a diagram showing one form of a processor of the present invention configured by one execution calculation unit.
  • FIG. 6 is a diagram showing one form of an executable program output by the compiler apparatus according to the present invention.
  • FIG. 7 is a diagram showing another form of an executable program output by the compiler apparatus according to the present invention.
  • FIG. 8 is a diagram illustrating a processing mode assumed by the compiler apparatus.
  • FIG. 9 is a diagram showing an executable program corresponding to the processing mode shown in FIG. 8.
  • FIG. 10 is a diagram for explaining an execution method of the executable program shown in FIG. 9.
  • FIG. 11 is a diagram showing another processing mode assumed by the compiler apparatus.
  • FIG. 12 is a diagram showing an executable program corresponding to the processing mode shown in FIG. 11.
  • FIG. 13 is a diagram for explaining an execution method of the executable program shown in FIG. 12.
  • FIG. 14 is a diagram showing connection information.
  • FIG. 15 is a block diagram of a compiler apparatus according to the present invention.
  • FIG. 1 is a block diagram of a processor according to the present invention.
  • the processor includes one or more execution calculation units 1, an intermediate data storage unit 2, and a control unit 3.
  • Execution calculation unit 1 is connected to other execution calculation units 1 and Z or intermediate data storage unit 2 by line 5.
  • the connection between the execution calculation units 1 is an example, and is not limited to the configuration of FIG.
  • the control unit 3 is connected to the execution calculation unit 1 and the intermediate data storage unit 2 via a bus (not shown), and an execution calculation unit for an executable program stored in a main storage device (not shown) outside the processor. Has a function to control loading to 1.
  • FIG. 2 is a block diagram of the execution calculation unit 1.
  • the execution calculation unit 1 includes a calculation unit 100, one or more input side multiplexers 101, one or more output side multiplexers 102, and an input / output control unit 103.
  • the computing unit 100 also includes, for example, a RISC (Reduced Instruction Set Computer) core, a VLIW (Very Long Instruction Word) core, or computing power arranged in a predetermined number of matrices, and includes one or more input ports and outputs.
  • a port is provided, and the calculation information 602 of the executable program 6 shown in FIG. 6 and FIG. 7 is loaded, and has a function of executing processing according to the calculation information 602.
  • the input port and output port of the arithmetic unit 100 are also referred to as the input port and output port of the execution calculation unit 1.
  • the input side multiplexer 101 is provided for each input port of the arithmetic unit 100, and based on the selection signal 104 from the input / output control unit 103, the output side multiplexer 102 and Z or intermediate data of the other execution calculation unit 1
  • One line from multiple lines 5 connected to storage 2 This function has a function to select 5 and connect to the corresponding input port of the arithmetic unit 100.
  • the output-side multiplexer 102 is provided for each output port of the arithmetic unit 100, and based on the selection signal 104 from the input / output control unit 103, the input-side multiplexer 101 and Z or intermediate data of the other execution calculation unit 1 It has a function of selecting one line 5 from a plurality of lines 5 connected to the storage unit 2 and connecting it to the corresponding output port of the arithmetic unit 100.
  • the input / output control unit 103 Based on the control information from the control unit 3, the input / output control unit 103 outputs a selection signal 104 for determining the line 5 to be selected to each input-side multiplexer 101 and output-side multiplexer 102.
  • the intermediate data storage unit 2 temporarily stores the intermediate data output by the execution calculation unit 1 based on the control information from the control unit 3, and also stores the intermediate data temporarily stored. Is output to the execution calculation unit 1.
  • the control unit 3 connects the connection information, that is, the information of the intermediate data storage unit 2 and Z or the execution calculation unit 1 to which each input and Z or output port can be connected.
  • the executable program 6 shown in FIG. 6 or 7 is read from a main storage device (not shown), and is based on the number of execution calculation units 1, connection information, and connection information 601 of the executable program 6, 1
  • the execution calculation unit 1 and the intermediate data storage unit 2 are controlled so as to divide the process into more stages. A more detailed description of the control unit 3 will be described later.
  • FIGS. 3 to 5 are diagrams showing a configuration example of a processor according to the present invention, and the control unit 3 is omitted for simplicity.
  • four execution calculation units 10 to 13 are provided, and the execution calculation units 10 to 13 are bidirectionally connected to all the other execution calculation units and the intermediate data storage unit 2.
  • two execution calculation units 10 and 11 are provided.
  • the execution calculation units 10 and 11 are bidirectionally connected to the intermediate data storage unit 2, and the execution calculation units 10 and 11 are actually connected. Connection is made only in the direction from the line calculation unit 10 to the execution calculation unit 11.
  • FIG. 5 only 10 execution calculation units are provided, and the intermediate data storage unit 2 is connected bidirectionally.
  • the execution calculation units 10 to 13 and the execution calculation unit 1 in FIG. 1 are the same, and the line 5 represents one or more lines collectively.
  • FIG. 6 and FIG. 7 are diagrams showing the structure of the executable program 6 output from the conoiler device according to the present invention.
  • the compiler apparatus according to the present invention analyzes a source program and Outputs executable program 6 for the processor according to Ming. At this time, the compiler apparatus calculates the required number of execution calculation units 1 regardless of the number of execution calculation units 1 installed in the processor that executes the executable program 6 that is actually output, An executable program 6 is generated based on the calculated number.
  • the executable program 6 executed by the processor according to the present invention comprises a plurality of execution calculation information 60.
  • the calculation information 602 of each execution calculation information 60 is an instruction to be loaded and executed by one execution calculation unit, and the connection information 601 is the other execution calculation information 60 of the calculation information 602 in the same execution calculation information 60.
  • This information specifies the input / output relationship of intermediate data with the calculation information 602. That is, when the calculation information 602 is loaded into the execution calculation unit 1 and executed, the execution calculation unit 1 is executed by the port number for inputting / outputting intermediate data and the execution calculation unit 1 on the other side. And the information of the port number that the execution calculation unit 1 on the other side inputs / outputs intermediate data.
  • FIG. 7 is a diagram showing another structure of the executable program 6 output from the compiler apparatus according to the present invention.
  • FIG. 6 differs from FIG. 7 in that only one piece of connection information 601 is provided as the entire connection information 601 in the structure shown in FIG.
  • FIG. 8 shows a processing mode assumed by the compiler apparatus according to the present invention, and a square frame shows calculation information executed by the execution calculation unit 1.
  • the compiler unit analyzes the source program, uses two execution calculation units, and sets output port # 1 of one execution calculation unit and input port # 1 of the other execution calculation unit to one of the execution calculation units.
  • the processing described in the source program is executed by connecting the output port # 2 of the execution calculation unit and the input port # 2 of the other execution calculation unit to transfer intermediate data.
  • FIG. 9 shows an executable program 6 corresponding to the processing mode assumed by the conoiler device shown in FIG.
  • the executable program is shown in the structure of FIG.
  • the executable program 6 comprises execution calculation information A executed by one execution calculation unit and execution calculation information B executed by the other execution calculation unit.
  • the calculation information included in each execution calculation information defines the processing contents in the execution calculation unit.
  • the connection information of A depends on the output ports # 1 and # 2 of the execution calculation unit 1 that executes the calculation information A, and the input ports # 1 and # 2 of the execution calculation unit that executes the calculation information B and the line 5 respectively. Connect and transfer intermediate data, that is, specify the input / output relationship of intermediate data between computation information!
  • the control unit 3 acquires the executable program 6 shown in FIG. 9 from a main storage (not shown) and analyzes it, and the executable program 6 requires two execution calculation units, Connect the output port # 1 of the execution calculator to the input port # 1 of the other execution calculator, and connect the output port # 2 of one execution calculator to the input port # 2 of the other execution calculator Recognize what you need. From the connection information shown in FIG. 14, the control unit 3 causes the execution calculation unit 10 to execute the calculation information A and the calculation information B to be executed by the execution calculation unit 11, and outputs the output port # 1 and the output of the execution calculation unit 10.
  • the control unit 3 controls the load of the calculation information A to the execution calculation unit 10 and the load control of the calculation information B to the execution calculation unit 11. Do it. Further, the input / output control units 103 of the execution calculation unit 10 and the execution calculation unit 11 output control information for outputting the selection signal 104 for selecting the line 5 described above.
  • the load control of the calculation information to the execution calculation units 10 and 11 is performed by the control unit 3 even if the control unit 3 acquires the main storage device power (not shown) and loads it to the execution calculation units 10 and 11.
  • Sections 10 and 11 store the calculation information to be loaded !, not shown !, notify the address of the main memory, and each execution calculation section 10 and 11 based on the notification from the control section 3, Not shown! /,
  • the configuration may be such that the calculation information is obtained directly from the main memory.
  • the processor having the execution calculation units 10 and 11 shown in FIG. 4 executes the executable program 6 in one stage.
  • connection information held by the control unit 3 is obtained by removing the execution calculation unit 11 from the connection information of the execution calculation unit 10 in FIG.
  • the input side multiplexer 101 and the output The side multiplexer 102 can be omitted.
  • the control unit 3 acquires the executable program 6 shown in FIG. 9 from a main storage (not shown) and analyzes it, and the executable program 6 requires two execution calculation units, Connect the output port # 1 of the execution calculator to the input port # 1 of the other execution calculator, and connect the output port # 2 of one execution calculator to the input port # 2 of the other execution calculator Recognize what you need. Since the control unit 3 recognizes that there is only one execution calculation unit 10 on the processor, the control unit 3 analyzes the connection information, and calculates the calculation information A without any intermediate data input from the other as the first calculation unit A. As the calculation information to be executed on the stage, load control of calculation information A to the execution calculation unit 10 is performed.
  • the control unit 3 performs control for storing the intermediate data required by the calculation information B in the intermediate data storage unit 2.
  • Information is output to the execution calculation unit 10 and the intermediate data storage unit 2.
  • the control information for the execution calculation unit 10 includes information for causing the output side multiplexer 102 corresponding to the output port # 1 and output port # 2 of the execution calculation unit 10 that outputs intermediate data to select the intermediate data storage unit 2. Contains. Further, the control information for the intermediate data storage unit 2 includes information for causing the intermediate data storage unit 2 to store the intermediate data output from the output ports # 1 and # 2 of the execution calculation unit 10.
  • Reference numeral 40 in FIG. 10 represents the connection state of the execution calculation unit 10 in the first stage, and reference numeral 90 represents calculation information B that does not actually exist when the execution calculation unit 10 executes the calculation information A. This represents an execution calculation unit to be executed.
  • the calculation unit 100 of the execution calculation unit 10 executes the calculation information A and outputs intermediate data to the intermediate data storage unit 2.
  • control unit 3 uses the remaining calculation information B as calculation information to be executed in the second stage, and performs load control of the calculation information B to the execution calculation unit 10.
  • the control unit 3 outputs the intermediate data to the execution calculation unit 10 that executes the calculation information B from the intermediate data storage unit 2 stored in the first stage according to the connection information.
  • Control the execution calculation unit 10 so that the input side multiplexer 101 corresponding to the input ports # 1 and # 2 selects the intermediate data storage unit 2 and the arithmetic unit 100 inputs the intermediate data from the input ports # 1 and # 2.
  • control information for causing the intermediate data stored in the first stage to be output to the input ports # 1 and # 2 of the execution calculation unit 10 is output from the intermediate data storage unit 2 to the intermediate data storage unit 2, respectively.
  • Reference numeral 41 denotes a connection state of the execution calculation unit 10 in the second stage
  • reference numeral 90 denotes an execution for executing the calculation information A that does not actually exist when the execution calculation unit 10 executes the calculation information B. Represents the calculation unit.
  • the calculation unit 100 of the execution calculation unit 10 executes the calculation information B using the intermediate data from the intermediate data storage unit 2 as an input.
  • the executable program 6 shown in FIG. 8 is executed by only one execution calculation unit 10.
  • FIG. 11 and FIG. 12 are diagrams for explaining another example of the executable program 6.
  • FIG. 11 is a diagram illustrating a processing mode assumed by the conoiler device according to the present invention, and a square frame indicates calculation information executed by the execution calculation unit.
  • the compiler device analyzes the source program and uses the five execution calculators to realize the processing described in the source program! / Speak.
  • FIG. 12 shows an executable program 6 corresponding to the processing mode assumed by the compiler apparatus shown in FIG.
  • the executable program is shown in the structure of FIG.
  • the executable program 6 includes the operation information A, B, C, D, and E executed by one execution calculation unit 1 and the intermediate data input / output relationship between each operation information. Connection information.
  • the control unit 3 acquires the executable program 6 shown in FIG. 12 from a main storage (not shown) and analyzes it, and recognizes that the executable program 6 requires five execution calculation units. . Since control unit 3 recognizes that there are only two execution calculation units 10 and 11 on the processor, it analyzes the connection information and needs intermediate data from other calculation information in the first stage. Toshin ⁇ It decides to execute the calculation information A and assigns the execution calculation unit 10 as the execution destination. Subsequently, when the calculation information A decided to be executed is removed from the connection information, calculation information B and calculation information C that do not require intermediate data from other calculation information are executed in the first stage. Candidate for computation information.
  • the execution calculation unit 11 decides to execute the calculation information B. As a result, the number of pieces of computation information to be executed becomes equal to the number of installed execution calculation units, so the process moves to the execution of the first stage. If this is not possible, other candidates are determined in the same manner.
  • the control unit 3 performs load control of the calculation information A to the execution calculation unit 10, load control of the calculation information B to the execution calculation unit 11, and outputs of the execution calculation unit 10
  • Select execution calculator 11 for output multiplexer 102 corresponding to ports # 1 and # 2, and select intermediate data storage 2 for output multiplexer 102 corresponding to output ports # 3 and # 4
  • Control information is output to the execution calculation unit 10 so that the execution calculation unit 11
  • Execution calculation so that the input side multiplexer 101 corresponding to the output ports # 1 and # 2 selects the execution calculation unit 10, and the output side multiplexer 102 corresponding to the output port # 1 selects the intermediate data storage unit 2.
  • the intermediate data is also received by the intermediate data storage unit 2 and the control information is output so as to be stored.
  • the processor is in the state indicated by reference numeral 42.
  • the calculation unit 100 of the execution calculation unit 10 executes the calculation information A.
  • the intermediate data output from the execution calculator 10 is input to the execution calculator 11 and output from the output ports # 3 and # 4. Is stored in the intermediate data storage unit 2.
  • the calculation unit 100 of the execution calculation unit 11 receives the intermediate data from the execution calculation unit 10 and executes calculation information B.
  • the intermediate data output from the execution calculation unit 11 is stored in the intermediate data storage unit 2. Is done.
  • the control unit 3 does not need intermediate data from other calculation information when the calculation information A and B already executed is removed!
  • the execution calculation section 10 is assigned as the execution destination.
  • the operation information C decided to be executed and the operation information A and B that have already been executed are removed, the operation information D and the operation information E are not obtained without requiring intermediate data from other operation information.
  • the execution calculation unit 11 executes the calculation information E.
  • the number of pieces of calculation information to be executed becomes equal to the number of installed execution calculation units, so that the process moves to the execution of the second stage.
  • control unit 3 generally repeats the above processing until each candidate stage has no computation information or until the number of computation information to be executed is equal to the number of execution calculation means. The operation information to be executed is determined.
  • the control unit 3 performs load control of the calculation information C to the execution calculation unit 10 and load control of the calculation information E to the execution calculation unit 11, and executes based on the connection information.
  • the input side multiplexer 101 corresponding to the input port # 4 of the calculation unit 10 selects the intermediate data storage unit 2 and the output side multiplexer 102 corresponding to the output port # 2 selects the intermediate data storage unit 2, and the output port Output control information is output to the execution calculation unit 10 so that the output side multiplexer 10 2 corresponding to # 3 and # 4 selects the execution calculation unit 11, and corresponding to the input ports # 3 and # 4 of the execution calculation unit 11
  • the control information is output to the input / output control unit 103 of the execution calculation unit 11 so that the input side multiplexer 101 selects the execution calculation unit 10.
  • intermediate data received from the output port # 4 of the execution calculation unit 10 that executed the calculation information A in the previous stage is also executed for the intermediate data storage unit 2 in the stage.
  • the processor enters a state indicated by reference numeral 43.
  • the calculation unit 100 of the execution calculation unit 10 executes the calculation information C using the intermediate data from the intermediate data storage unit 2 as an input.
  • the intermediate data output from the execution calculation unit 10 is stored in the intermediate data storage unit 2, and the intermediate data output from the output ports # 3 and # 4 is Is input to the execution calculation unit 11.
  • the calculation unit 100 of the execution calculation unit 11 receives the intermediate data from the execution calculation unit 10 and executes calculation information E.
  • control unit 3 determines the remaining calculation information D as calculation information to be executed in the third stage, and performs load control to the execution calculation unit 10.
  • control unit 3 sends control information to the execution calculation unit 10 in order to cause the execution calculation unit 10 to input intermediate data to the execution calculation unit 10 already stored in the intermediate data storage unit 2. Is output.
  • the input / output control unit 103 of the execution calculation unit 10 selects the intermediate data storage unit 2 by the input side multiplexer 101 corresponding to the input ports # 1, # 2, and # 3. Is output.
  • intermediate data received from output port # 3 of execution calculation unit 10 that executed operation information A in the first stage is input to input port # 3 of execution calculation unit 10.
  • the intermediate data received from output port # 1 of execution calculation unit 11 that has been output and executed operation information B in the first stage is output to input port # 1 of execution calculation unit 10 and output in the second stage.
  • Calculation information C Executed execution
  • the control information is output so that the intermediate data received from the output port # 2 of the calculation unit 10 is output to the input port # 2 of the execution calculation unit 10.
  • the processor is in a state indicated by reference numeral 44.
  • the calculation unit 100 of the execution calculation unit 10 executes the calculation information D with the intermediate data from the intermediate data storage unit 2 as an input.
  • the executable program 6 shown in FIG. 11 is executed by the two execution calculation units 10 and 11.
  • the executable program 6 has a relation between the calculation information 602 that defines the processing content to be executed by one execution calculation unit 1 and the intermediate data input / output relationship between the calculation information 602. Based on the number of execution calculation units 1 installed in its own processor, connection information, and connection information 601, the processor control unit 3 has the specified connection information 601, and the executable program 6 is put into multiple stages. By dividing and executing, the same executable program 6 can be used regardless of the number of execution calculation units 1 installed!
  • the port for inputting / outputting intermediate data of the execution calculation unit 1 that executes the calculation information 602 is fixed. That is, the port number indicated by the connection information is the port number of the execution calculation unit that executes the corresponding calculation information.
  • the control unit 3 increases the degree of freedom in selecting computation information to be executed at each stage, and execution calculation The number of lines 5 set between part 1 can be reduced.
  • connection information defines the connection relationship of the logical port numbers between the calculation information
  • control unit 3 determines the logical port number based on the connection information and the calculation information to be executed.
  • Control information for each execution calculation unit 1 so that the intermediate data is input / output from the corresponding input port and output port corresponding to the physical port number of the execution calculation unit 1 that actually inputs / outputs intermediate data. Is output.
  • a loop is an execution calculation when the execution calculation unit 1 is a node and the input / output relationship of intermediate data is represented by an arrow from the execution calculation unit 1 that outputs the intermediate data to the execution calculation unit 1 that is input. It follows that there is a route that goes back in the direction of the arrow from part 1 and returns to the same execution calculation part 1.
  • the executable program 6 includes information specifying one or more pieces of calculation information to be executed first, and the control unit 3 determines the execution order of the calculation information based on the information. Can be dealt with. After the calculation information to be executed first, the calculation information of the intermediate data output destination of the executed calculation information is executed in order.
  • FIG. 15 is a block diagram of a conoiler device according to the present invention.
  • the compiler apparatus has a syntax analysis unit 81, an optimization unit 82, and a code generation unit 83.
  • the compiler apparatus has information on the type of the target execution calculation unit 1, that is, the type of hardware constituting the calculation unit 100 such as the RISC core, the VLIW core, or a predetermined number of arithmetic units arranged in a matrix. Then, with the source program 7 as an input, an executable program 6 that is executed by a processor equipped with one or more target execution calculation units 1 is output.
  • the syntax analysis unit 81 performs lexical analysis and syntax analysis of the source program 7, and the optimization unit 82 performs semantic analysis and performs optimization based on the type of the target execution calculation unit 1.
  • the compiler device is required for the number of execution calculation units 1, the processing contents to be executed by each execution calculation unit 1, and the connection relation for input / output of intermediate data between each execution calculation unit 1. Determine.
  • the code generation unit 83 generates code as processing information for the processing executed by each execution calculation unit 1, and establishes a connection relation for input / output of intermediate data between the execution calculation units 1.
  • the connection information described as the connection relation of the computation information executed in 1 is generated, and the executable program 6 is output.
  • the optimization unit 82 selects one or more pieces of calculation information to be executed first.
  • Decide and The mode generation unit 83 outputs an executable program including information for specifying one or more pieces of calculation information to be executed first.
  • the compiler apparatus according to the present invention can also be realized by a program that causes a computer to execute the above functions.

Abstract

A processor wherein the same executable program can be used regardless of the number of execution calculating parts on board. The processor comprises execution calculating parts, an intermediate data storing part, and a control part that holds information of the wiring between the execution calculating parts and also holds information of the wiring between the intermediate data storing part and each of the execution calculating parts. An executable program, which includes a plurality of pieces of calculation information defining the contents of processings in the execution calculating parts and also includes connection information defining the input/output relationships of the intermediate data between the pieces of calculation information, is divided, in one or more stages, for execution, based on the number of the execution calculating parts, the wiring information and the connection information. At this moment, the control part outputs control information to the execution calculating parts and/or the intermediate data storing part such that an intermediate data of the information of unexecuted calculation is acquired from the intermediate data storing part or stored into the intermediate data storing part.

Description

明 細 書  Specification
プロセッサ、コンパイラ装置及びプログラム  Processor, compiler apparatus and program
技術分野  Technical field
[0001] 本発明は、プログラムの実行を行う実行計算部を 1つ以上備えたプロセッサと、該プ 口セッサ用の実行可能プログラムを生成するコンパイラ装置に関する。  The present invention relates to a processor including one or more execution calculation units that execute a program and a compiler device that generates an executable program for the plug processor.
背景技術  Background art
[0002] 処理速度の向上を目的とし、プログラムの実行を行う実行計算部を複数備えたプロ セッサが各種提案され、実用化されている (例えば、非特許文献 1参照。 ) o非特許文 献 1によると、オペレーティングシステム力 実行可能プログラムをプロセスや、スレツ ドに分解して複数ある実行計算部に処理を割り当てることで、 1つの実行可能プログ ラムを複数の実行計算部で並行して処理させることを可能としている。  [0002] For the purpose of improving the processing speed, various processors including a plurality of execution calculation units for executing a program have been proposed and put into practical use (for example, see Non-Patent Document 1). According to 1, operating system power Executable programs can be processed in parallel in multiple execution calculation units by disposing the executable program into processes and threads and assigning processing to multiple execution calculation units Making it possible.
[0003] また、非特許文献 2には、マトリックス状に配置された演算器の、各演算器での処理 内容及び演算器間の接続をプログラミングにより設定することでデータ処理を実行す るプロセッサについて記載がされている。これらプロセッサに対する実行可能プロダラ ムの作成には、実装されている演算器数を考慮する必要がある。即ち、ある数の演算 器を実装しているプロセッサをターゲットとして作成された実行可能プログラムと同一 の処理を、例えば、ターゲットのプロセッサより演算器数の少ないプロセッサで実行す るためには、再度、演算器数を考慮したうえでプログラムの修正を行う必要がある。  [0003] In addition, Non-Patent Document 2 describes a processor that executes data processing by setting processing contents in each arithmetic unit and connection between arithmetic units by programming in arithmetic units arranged in a matrix. It is described. When creating executable programs for these processors, it is necessary to consider the number of computing units implemented. In other words, in order to execute the same processing as an executable program created with a processor having a certain number of arithmetic units as targets, for example, with a processor having a smaller number of arithmetic units than the target processor, again, It is necessary to modify the program in consideration of the number of arithmetic units.
[0004] 非特許文献 1:中森章、 "マイクロプロセッサ 'アーキテクチャ入門"、 CQ出版社、 200 4年 41日発行、 p. 231 -p. 233  [0004] Non-Patent Document 1: Akira Nakamori, "Introduction to Microprocessor 'Architecture", CQ Publishing Co., Ltd., published on April 41, 2004, p. 231 -p. 233
非特許文献 2 :デザインウェーブマガジン、 CQ出版社、 2004年 8月号、 p. 24-p. 29 発明の開示  Non-Patent Document 2: Design Wave Magazine, CQ Publisher, August 2004, p. 24-p. 29 Disclosure of Invention
[0005] 従って、本発明は、プログラムの実行を行う実行計算部の搭載数によらず、ォペレ 一ティングシステムなしに、同一実行可能プログラムの使用が可能なプロセッサを提 供することを目的とする。また、該プロセッサ用のコンパイラ装置及びプログラムを提 供することも目的とする。  Accordingly, an object of the present invention is to provide a processor that can use the same executable program without an operating system regardless of the number of execution calculation units that execute the program. It is another object of the present invention to provide a compiler device and a program for the processor.
[0006] 本発明におけるプロセッサによれば、 入力及び出力のためのポートを 1つ以上有する、 1つ以上の実行計算手段を備え、 それぞれが 1つの実行計算手段での処理内容を規定する複数の演算情報と、演算 情報間での中間データの入出力関係を規定する接続情報とを含む実行可能プログ ラムを、 1回以上のステージに分割して実行するプロセッサであって、中間データ記 憶手段と、各実行計算手段について、各ポートが接続可能な中間データ記憶手段 及び Z又は他の実行計算手段についての情報である結線情報を保持する制御手段 とを有し、制御手段は、各ステージにおいて、実行計算手段の数、結線情報及び接 続情報に基づき、該ステージにおいて実行する演算情報を決定し、演算情報を実行 する実行計算手段は、該ステージにおいて実行されない演算情報との間で入出力 する中間データを、中間データ記憶手段との間で入出力することを特徴とする。 [0006] According to the processor of the present invention, It has one or more execution calculation means that have one or more ports for input and output, each of which has multiple calculation information that defines the processing contents of one execution calculation means, and intermediate data between the calculation information This is a processor that executes an executable program that includes connection information that defines the input / output relationship of the program in one or more stages, and each port has an intermediate data storage means and each execution calculation means. Intermediate data storage means that can be connected and control means for holding connection information that is information about Z or other execution calculation means. The control means, at each stage, includes the number of execution calculation means, connection information, and connection information. Based on the connection information, the calculation information to be executed in the stage is determined, and the execution calculation means for executing the calculation information is performing input / output with the calculation information not executed in the stage. The intermediate data is input / output to / from the intermediate data storage means.
[0007] 本発明のプロセッサにおける他の実施形態によれば、  [0007] According to another embodiment of the processor of the present invention,
実行計算手段は、各ポートに対応して設けられ、接続している中間データ記憶手段 及び Z又は他の実行計算手段から、 1つの中間データ記憶手段又は他の実行計算 手段を選択して対応するポートに接続する選択手段を備え、制御手段は、各ステー ジにおいて、実行する演算情報及び接続情報に基づき、制御情報を出力し、選択手 段は、該制御情報に従い、中間データ記憶手段又は他の実行計算手段を選択する ことも好まし 、。  The execution calculation means is provided corresponding to each port, and selects one intermediate data storage means or another execution calculation means from the connected intermediate data storage means and Z or other execution calculation means, and corresponds. Selection means for connecting to the port, and the control means outputs control information based on the operation information and connection information to be executed at each stage, and the selection means determines whether the intermediate data storage means or the other is in accordance with the control information. It is also preferable to select an execution calculation method.
[0008] また、本発明のプロセッサにおける他の実施形態によれば、  [0008] Also, according to another embodiment of the processor of the present invention,
実行計算手段は、中間データを入出力させるポートの選択が可能であり、制御手段 は、各ステージにおいて、実行する演算情報及び接続情報に基づき、中間データを 入出力させるポートの選択を行うことも好ましい。  The execution calculation means can select a port for inputting / outputting intermediate data, and the control means can select a port for inputting / outputting intermediate data at each stage based on calculation information and connection information to be executed. preferable.
[0009] 本発明におけるコンパイラ装置によれば、  According to the compiler apparatus of the present invention,
所定の実行計算部を 1つ以上有しているプロセッサ用の実行可能プログラムを出力 するコンパイラ装置であって、ソースプログラムを解析し、必要となる実行計算部の数 と、各実行計算部での処理内容と、各実行計算部間での中間データの入出力のた めの接続関係を決定する最適化手段と、各実行計算部での処理内容をコード化した 実行計算部ごとの演算情報と、各実行計算部間での中間データの入出力関係を、 実行計算部で実行されている演算情報での入出力関係として記述した接続情報とを 含む実行可能プログラムを生成するコード生成手段とを有することを特徴とする。 A compiler device that outputs an executable program for a processor having one or more predetermined execution calculation units, which analyzes a source program and determines the number of execution calculation units required and the number of execution calculation units in each execution calculation unit. Optimization means for determining the processing contents and the connection relation for input / output of intermediate data between each execution calculation section, operation information for each execution calculation section that encodes the processing contents in each execution calculation section, and The connection information describing the input / output relationship of the intermediate data between the execution calculation units as the input / output relationship of the calculation information executed by the execution calculation unit And a code generation means for generating an executable program.
[0010] 本発明におけるプログラムによれば、  [0010] According to the program of the present invention,
コンピュータを、上記コンパイラ装置として機能させることを特徴とする。  A computer is caused to function as the compiler apparatus.
[0011] 実行可能プログラムは、それぞれが 1つの実行計算部で実行する処理内容を規定 する演算情報と、演算情報間での中間データの入出力関係を規定する接続情報を 有し、制御手段が、自プロセッサが搭載している実行計算手段の数、実行計算手段 間及び実行計算手段と中間データ記憶手段間の結線情報並びに接続情報に基づ き、各ステージで実行する演算情報を決定し、各ステージで実行されない演算情報 との中間データを中間データ記憶手段に保存及び Z又は中間データ記憶手段から 取得させることで、搭載して 、る実行計算部手段の数によらず同一の実行可能プロ グラムを使用することが可能となる。  Each executable program has calculation information that defines the processing content to be executed by one execution calculation unit, and connection information that specifies the input / output relationship of intermediate data between the calculation information. Based on the number of execution calculation means installed in the processor, between the execution calculation means and between the execution calculation means and the intermediate data storage means, the calculation information to be executed at each stage is determined. By storing intermediate data with computation information that is not executed at each stage in the intermediate data storage means and acquiring it from the Z or intermediate data storage means, the same executable program can be installed regardless of the number of execution calculation means. Grams can be used.
[0012] 実行計算手段は、ポートごとに選択手段を有し、接続先となる実行計算手段又は 中間データ記憶手段の切替えを行う。また、実行計算手段に、中間データを入出力 させる入出力ポートの選択機能を持たせることで、実行する演算情報の選択の制限 が緩和される。  [0012] The execution calculation means has a selection means for each port, and switches between the execution calculation means or the intermediate data storage means as the connection destination. In addition, by providing the execution calculation means with an input / output port selection function for inputting / outputting intermediate data, restrictions on the selection of operation information to be executed are relaxed.
図面の簡単な説明  Brief Description of Drawings
[0013] [図 1]本発明によるプロセッサのブロック図である。  [0013] FIG. 1 is a block diagram of a processor according to the present invention.
[図 2]実行計算部のブロック図である。  FIG. 2 is a block diagram of an execution calculation unit.
[図 3]4つの実行計算部で構成した本発明のプロセッサの 1形態を示す図である。  FIG. 3 is a diagram showing an embodiment of a processor of the present invention configured with four execution calculation units.
[図 4]2つの実行計算部で構成した本発明のプロセッサの 1形態を示す図である。  FIG. 4 is a diagram showing an embodiment of a processor of the present invention configured with two execution calculation units.
[図 5]1つの実行計算部で構成した本発明のプロセッサの 1形態を示す図である。  FIG. 5 is a diagram showing one form of a processor of the present invention configured by one execution calculation unit.
[図 6]本発明によるコンパイラ装置が出力する実行可能プログラムの 1形態を示す図 である。  FIG. 6 is a diagram showing one form of an executable program output by the compiler apparatus according to the present invention.
[図 7]本発明によるコンパイラ装置が出力する実行可能プログラムの他の形態を示す 図である。  FIG. 7 is a diagram showing another form of an executable program output by the compiler apparatus according to the present invention.
[図 8]コンパイラ装置が想定した処理形態を示す図である。  FIG. 8 is a diagram illustrating a processing mode assumed by the compiler apparatus.
[図 9]図 8に示す処理形態に対応する実行可能プログラムを示す図である。  FIG. 9 is a diagram showing an executable program corresponding to the processing mode shown in FIG. 8.
[図 10]図 9に示す実行可能プログラムの実行方法を説明する図である。 [図 11]コンパイラ装置が想定した、他の処理形態を示す図である。 FIG. 10 is a diagram for explaining an execution method of the executable program shown in FIG. 9. FIG. 11 is a diagram showing another processing mode assumed by the compiler apparatus.
[図 12]図 11に示す処理形態に対応する実行可能プログラムを示す図である。  FIG. 12 is a diagram showing an executable program corresponding to the processing mode shown in FIG. 11.
[図 13]図 12に示す実行可能プログラムの実行方法を説明する図である。  FIG. 13 is a diagram for explaining an execution method of the executable program shown in FIG. 12.
[図 14]結線情報を示す図である。  FIG. 14 is a diagram showing connection information.
[図 15]本発明によるコンパイラ装置のブロック図である。  FIG. 15 is a block diagram of a compiler apparatus according to the present invention.
発明を実施するための最良の形態  BEST MODE FOR CARRYING OUT THE INVENTION
[0014] 本発明を実施するための最良の実施形態について、以下では図面を用いて詳細 に説明する。尚、本発明は以下の実施形態に限定されるものではない。  The best mode for carrying out the present invention will be described below in detail with reference to the drawings. The present invention is not limited to the following embodiment.
[0015] 図 1は、本発明によるプロセッサのブロック図である。図 1によると、プロセッサは、 1 つ以上の実行計算部 1と、中間データ記憶部 2と、制御部 3とを備えている。実行計 算部 1は、他の実行計算部 1及び Z又は中間データ記憶部 2とライン 5により接続さ れている。尚、実行計算部 1間の接続は、例示であり図 1の構成に限定されるもので はない。また、制御部 3は、図示しないバスにより実行計算部 1及び中間データ記憶 部 2と接続しており、プロセッサ外部にある図示しな ヽ主記憶装置が保存する実行可 能プログラムの、実行計算部 1へのロードを制御する機能を有する。  FIG. 1 is a block diagram of a processor according to the present invention. According to FIG. 1, the processor includes one or more execution calculation units 1, an intermediate data storage unit 2, and a control unit 3. Execution calculation unit 1 is connected to other execution calculation units 1 and Z or intermediate data storage unit 2 by line 5. The connection between the execution calculation units 1 is an example, and is not limited to the configuration of FIG. The control unit 3 is connected to the execution calculation unit 1 and the intermediate data storage unit 2 via a bus (not shown), and an execution calculation unit for an executable program stored in a main storage device (not shown) outside the processor. Has a function to control loading to 1.
[0016] 図 2は、実行計算部 1のブロック図である。図 2によると、実行計算部 1は、演算部 1 00と、 1つ以上の入力側マルチプレクサ 101と、 1つ以上の出力側マルチプレクサ 10 2と、入出力制御部 103とを備えている。  FIG. 2 is a block diagram of the execution calculation unit 1. According to FIG. 2, the execution calculation unit 1 includes a calculation unit 100, one or more input side multiplexers 101, one or more output side multiplexers 102, and an input / output control unit 103.
[0017] 演算部 100は、例えば、 RISC (Reduced Instruction Set Computer)コア、 VLIW(Very Long Instruction Word)コア又は所定数のマトリックス状に配列 された演算器力もなり、 1つ以上の入力ポート及び出力ポートを備え、図 6や図 7に示 す実行可能プログラム 6の演算情報 602がロードされ、演算情報 602に従った処理を 実行する機能を有する。尚、図 1に示すプロセッサ内に設けられる複数の実行計算 部 1は、総て同一の演算部 100を有する。また、演算部 100の入力ポート及び出力ポ ートを、実行計算部 1の入力ポート及び出力ポートとも呼ぶ。  [0017] The computing unit 100 also includes, for example, a RISC (Reduced Instruction Set Computer) core, a VLIW (Very Long Instruction Word) core, or computing power arranged in a predetermined number of matrices, and includes one or more input ports and outputs. A port is provided, and the calculation information 602 of the executable program 6 shown in FIG. 6 and FIG. 7 is loaded, and has a function of executing processing according to the calculation information 602. Note that the plurality of execution calculation units 1 provided in the processor shown in FIG. In addition, the input port and output port of the arithmetic unit 100 are also referred to as the input port and output port of the execution calculation unit 1.
[0018] 入力側マルチプレクサ 101は、演算部 100の入力ポートごとに設けられ、入出力制 御部 103からの選択信号 104に基づき、他の実行計算部 1の出力側マルチプレクサ 102及び Z又は中間データ記憶部 2と接続されている複数のライン 5から 1つのライ ン 5を選択して演算部 100の対応する入力ポートに接続する機能を有する。 [0018] The input side multiplexer 101 is provided for each input port of the arithmetic unit 100, and based on the selection signal 104 from the input / output control unit 103, the output side multiplexer 102 and Z or intermediate data of the other execution calculation unit 1 One line from multiple lines 5 connected to storage 2 This function has a function to select 5 and connect to the corresponding input port of the arithmetic unit 100.
[0019] 出力側マルチプレクサ 102は、演算部 100の出力ポートごとに設けられ、入出力制 御部 103からの選択信号 104に基づき、他の実行計算部 1の入力側マルチプレクサ 101及び Z又は中間データ記憶部 2と接続されている複数のライン 5から 1つのライ ン 5を選択して演算部 100の対応する出力ポートに接続する機能を有する。 The output-side multiplexer 102 is provided for each output port of the arithmetic unit 100, and based on the selection signal 104 from the input / output control unit 103, the input-side multiplexer 101 and Z or intermediate data of the other execution calculation unit 1 It has a function of selecting one line 5 from a plurality of lines 5 connected to the storage unit 2 and connecting it to the corresponding output port of the arithmetic unit 100.
[0020] 入出力制御部 103は、制御部 3からの制御情報に基づき、各入力側マルチプレク サ 101及び出力側マルチプレクサ 102に対し、選択するライン 5を決定する選択信号 104を出力する。 Based on the control information from the control unit 3, the input / output control unit 103 outputs a selection signal 104 for determining the line 5 to be selected to each input-side multiplexer 101 and output-side multiplexer 102.
[0021] 図 1に戻り、中間データ記憶部 2は、制御部 3からの制御情報に基づき、実行計算 部 1が出力する中間データを一時的に記憶し、また、一時的に記憶した中間データ を実行計算部 1に出力する機能を有する。  Returning to FIG. 1, the intermediate data storage unit 2 temporarily stores the intermediate data output by the execution calculation unit 1 based on the control information from the control unit 3, and also stores the intermediate data temporarily stored. Is output to the execution calculation unit 1.
[0022] 制御部 3は、結線情報、即ち、それぞれの実行計算部 1につ!、て、各入力及び Z 又は出力ポートが接続可能な中間データ記憶部 2及び Z又は実行計算部 1の情報 を有し、図 6又は 7に示す実行可能プログラム 6を、図示しない主記憶装置から読み 込み、実行計算部 1の数と、結線情報と、実行可能プログラム 6の接続情報 601に基 づき、 1回以上のステージに分割して処理するように実行計算部 1及び中間データ記 憶部 2を制御する。制御部 3についてのより詳細な説明は後述する。  [0022] The control unit 3 connects the connection information, that is, the information of the intermediate data storage unit 2 and Z or the execution calculation unit 1 to which each input and Z or output port can be connected. The executable program 6 shown in FIG. 6 or 7 is read from a main storage device (not shown), and is based on the number of execution calculation units 1, connection information, and connection information 601 of the executable program 6, 1 The execution calculation unit 1 and the intermediate data storage unit 2 are controlled so as to divide the process into more stages. A more detailed description of the control unit 3 will be described later.
[0023] 図 3から図 5は、本発明によるプロセッサの構成例を示す図であり、簡単のため制御 部 3は省略している。図 3では、 4つの実行計算部 10〜13が設けられており、実行計 算部 10〜13は、他の総ての実行計算部及び中間データ記憶部 2と双方向で接続し ている。また、図 4では、 2つの実行計算部 10及び 11が設けられており、実行計算部 10及び 11は、中間データ記憶部 2とは双方向で接続し、実行計算部 10と 11は、実 行計算部 10から実行計算部 11方向のみで接続している。更に、図 5においては、実 行計算部 10力^つのみ設けられており、中間データ記憶部 2と双方向で接続してい る。尚、実行計算部 10〜13及び図 1の実行計算部 1は、同じものであり、ライン 5は 1 つ以上のラインをまとめて表したものである。  FIGS. 3 to 5 are diagrams showing a configuration example of a processor according to the present invention, and the control unit 3 is omitted for simplicity. In FIG. 3, four execution calculation units 10 to 13 are provided, and the execution calculation units 10 to 13 are bidirectionally connected to all the other execution calculation units and the intermediate data storage unit 2. In FIG. 4, two execution calculation units 10 and 11 are provided. The execution calculation units 10 and 11 are bidirectionally connected to the intermediate data storage unit 2, and the execution calculation units 10 and 11 are actually connected. Connection is made only in the direction from the line calculation unit 10 to the execution calculation unit 11. Furthermore, in FIG. 5, only 10 execution calculation units are provided, and the intermediate data storage unit 2 is connected bidirectionally. The execution calculation units 10 to 13 and the execution calculation unit 1 in FIG. 1 are the same, and the line 5 represents one or more lines collectively.
[0024] 図 6及び図 7は、本発明によるコンノイラ装置が出力する実行可能プログラム 6の構 造を示す図である。本発明によるコンパイラ装置は、ソースプログラムを解析して本発 明によるプロセッサのための実行可能プログラム 6を出力する。このとき、コンパイラ装 置は、実際に出力した実行可能プログラム 6を実行するプロセッサが搭載している実 行計算部 1の数に係らず、必要な実行計算部 1の数を算出して、前記算出した数に 基づき実行可能プログラム 6を生成する。 FIG. 6 and FIG. 7 are diagrams showing the structure of the executable program 6 output from the conoiler device according to the present invention. The compiler apparatus according to the present invention analyzes a source program and Outputs executable program 6 for the processor according to Ming. At this time, the compiler apparatus calculates the required number of execution calculation units 1 regardless of the number of execution calculation units 1 installed in the processor that executes the executable program 6 that is actually output, An executable program 6 is generated based on the calculated number.
[0025] 図 6によると、本発明によるプロセッサが実行する実行可能プログラム 6は、複数の 実行計算情報 60からなる。各実行計算情報 60の演算情報 602は、実行計算部 1〖こ ロードされて実行される命令であり、接続情報 601は同一実行計算情報 60内にある 演算情報 602の、他の実行計算情報 60の演算情報 602との中間データの入出力関 係を規定する情報である。即ち、演算情報 602が実行計算部 1にロードされて実行さ れたときに、その実行計算部 1が中間データを入出力するポート番号と、相手側とな る実行計算部 1で実行されている演算情報と、相手側となる実行計算部 1が中間デ ータを入出力するポート番号の情報である。  According to FIG. 6, the executable program 6 executed by the processor according to the present invention comprises a plurality of execution calculation information 60. The calculation information 602 of each execution calculation information 60 is an instruction to be loaded and executed by one execution calculation unit, and the connection information 601 is the other execution calculation information 60 of the calculation information 602 in the same execution calculation information 60. This information specifies the input / output relationship of intermediate data with the calculation information 602. That is, when the calculation information 602 is loaded into the execution calculation unit 1 and executed, the execution calculation unit 1 is executed by the port number for inputting / outputting intermediate data and the execution calculation unit 1 on the other side. And the information of the port number that the execution calculation unit 1 on the other side inputs / outputs intermediate data.
[0026] また、図 7は、本発明によるコンパイラ装置が出力する実行可能プログラム 6の他の 構造を示す図である。図 6は、接続情報 601が、演算情報 602ごとに設けられるのに 対し、図 7に示す構造では、全体の接続情報 601として 1つのみ設けられている点で 相違する。  FIG. 7 is a diagram showing another structure of the executable program 6 output from the compiler apparatus according to the present invention. FIG. 6 differs from FIG. 7 in that only one piece of connection information 601 is provided as the entire connection information 601 in the structure shown in FIG.
[0027] 続いて、図 8及び図 9を用い実行可能プログラム 6をより具体的に説明する。図 8は 、本発明によるコンパイラ装置が想定した処理形態を示しており、四角の枠は、実行 計算部 1が実行する演算情報を示している。図 8によると、コンパイラ装置は、ソース プログラムの解析を行い、 2つの実行計算部を用い、一方の実行計算部の出力ポー ト # 1と他方の実行計算部の入力ポート # 1を、一方の実行計算部の出力ポート # 2 と他方の実行計算部の入力ポート # 2を接続して中間データの受渡しを行うことで、 ソースプログラムに記述された処理を実行するものとして 、る。  Subsequently, the executable program 6 will be described more specifically with reference to FIGS. 8 and 9. FIG. 8 shows a processing mode assumed by the compiler apparatus according to the present invention, and a square frame shows calculation information executed by the execution calculation unit 1. According to Fig. 8, the compiler unit analyzes the source program, uses two execution calculation units, and sets output port # 1 of one execution calculation unit and input port # 1 of the other execution calculation unit to one of the execution calculation units. The processing described in the source program is executed by connecting the output port # 2 of the execution calculation unit and the input port # 2 of the other execution calculation unit to transfer intermediate data.
[0028] 図 9は、図 8に示すコンノイラ装置が想定した処理形態に対応する実行可能プログ ラム 6である。尚、ここでは実行可能プログラムを、図 6の構造で示している。図 9に示 す様に、実行可能プログラム 6は、一方の実行計算部で実行する実行計算情報 Aと、 他方の実行計算部で実行する実行計算情報 Bとから構成されて 、る。それぞれの実 行計算情報に含まれる演算情報は実行計算部での処理内容を規定し、実行計算部 Aの接続情報は、演算情報 Aを実行する実行計算部 1の出力ポート # 1及び # 2を、 それぞれ、演算情報 Bを実行する実行計算部の入力ポート # 1及び # 2とライン 5に より接続して、中間データの受渡しをすることを、即ち、演算情報間での中間データ の入出力関係を規定して!/、る。 FIG. 9 shows an executable program 6 corresponding to the processing mode assumed by the conoiler device shown in FIG. Here, the executable program is shown in the structure of FIG. As shown in FIG. 9, the executable program 6 comprises execution calculation information A executed by one execution calculation unit and execution calculation information B executed by the other execution calculation unit. The calculation information included in each execution calculation information defines the processing contents in the execution calculation unit. The connection information of A depends on the output ports # 1 and # 2 of the execution calculation unit 1 that executes the calculation information A, and the input ports # 1 and # 2 of the execution calculation unit that executes the calculation information B and the line 5 respectively. Connect and transfer intermediate data, that is, specify the input / output relationship of intermediate data between computation information!
[0029] 続いて、図 9に示す実行可能プログラム 6を、図 4に示す、実行計算部 10及び 11を 有するプロセッサで実行する場合の動作を説明する。ここで、実行計算部 10の入力 ポート # 1〜4に対応する入力側マルチプレクサ 101は、中間データ記憶部 2とのみ 接続しており、実行計算部 10の出力ポート # k(k= l、 2、 3、 4)に対応する出力側 マルチプレクサ 102は、中間データ記憶部 2及び実行計算部 11の入力ポート # kに 対応する入力側マルチプレクサ 101と接続しており、実行計算部 11の入力ポート # k (k= l、 2、 3、 4)に対応する入力側マルチプレクサ 101は、中間データ記憶部 2及 び実行計算部 10の出力ポート # k(k= l、 2、 3、 4)に対応する出力側マルチプレク サ 102と接続しており、実行計算部 11の出力ポート # 1〜4に対応する出力側マル チプレクサ 102は、中間データ記憶部 2とのみ接続しているものとする。従って、制御 部 3が保持している結線情報は、図 14に示す通りとなる。また、上記接続は例示であ り、各実行計算部の入力側と出力側のポート番号の接続は同一番号のみに限定さ れるものではない。 Next, the operation when the executable program 6 shown in FIG. 9 is executed by the processor having the execution calculation units 10 and 11 shown in FIG. 4 will be described. Here, the input side multiplexer 101 corresponding to the input ports # 1 to # 4 of the execution calculation unit 10 is connected only to the intermediate data storage unit 2, and the output port #k (k = l, 2 of the execution calculation unit 10). , 3, and 4) are connected to the input side multiplexer 101 corresponding to the intermediate data storage unit 2 and the input port #k of the execution calculation unit 11, and to the input port # of the execution calculation unit 11. Input side multiplexer 101 corresponding to k (k = l, 2, 3, 4) corresponds to output port #k (k = l, 2, 3, 4) of intermediate data storage unit 2 and execution calculation unit 10 It is assumed that the output multiplexer 102 corresponding to the output ports # 1 to 4 of the execution calculation unit 11 is connected only to the intermediate data storage unit 2. Accordingly, the connection information held by the control unit 3 is as shown in FIG. Further, the above connection is an example, and the connection of the port numbers on the input side and output side of each execution calculation unit is not limited to the same number.
[0030] 制御部 3は、図 9に示す実行可能プログラム 6を図示しない主記憶装置から取得し て解析を行い、実行可能プログラム 6が、 2つの実行計算部を必要としていることと、 一方の実行計算部の出力ポート # 1と他方の実行計算部の入力ポート # 1との接続 、及び、一方の実行計算部の出力ポート # 2と他方の実行計算部の入力ポート # 2と の接続を必要としていることを認識する。制御部 3は、図 14に示す結線情報から、演 算情報 Aを実行計算部 10で実行させ、演算情報 Bを実行計算部 11で実行させ、実 行計算部 10の出力ポート # 1及び出力ポート # 2に対応する出力側マルチプレクサ 102に実行計算部 11を選択させ、実行計算部 11の入力ポート # 1及び入力ポート # 2に対応する入力側マルチプレクサ 101に実行計算部 10を選択させることで、コン ノイラ装置が想定した構成を実現できることを認識する。よって、制御部 3は、演算情 報 Aの実行計算部 10へのロード制御と、演算情報 Bの実行計算部 11へのロード制 御を行う。また、実行計算部 10及び実行計算部 11の各入出力制御部 103が、上述 したライン 5を選択する選択信号 104を出力するための制御情報を出力する。演算 情報の実行計算部 10及び 11へのロード制御は、制御部 3が図示しない主記憶装置 力も取得して実行計算部 10及び 11にロードする形態であっても、制御部 3が実行計 算部 10及び 11に、ロードすべき演算情報が保存されて!、る図示しな!、主記憶装置 のアドレスを通知し、各実行計算部 10及び 11が、制御部 3からの通知に基づき、図 示しな!/、主記憶装置から、演算情報を直接取得する構成であってもよ ヽ。 [0030] The control unit 3 acquires the executable program 6 shown in FIG. 9 from a main storage (not shown) and analyzes it, and the executable program 6 requires two execution calculation units, Connect the output port # 1 of the execution calculator to the input port # 1 of the other execution calculator, and connect the output port # 2 of one execution calculator to the input port # 2 of the other execution calculator Recognize what you need. From the connection information shown in FIG. 14, the control unit 3 causes the execution calculation unit 10 to execute the calculation information A and the calculation information B to be executed by the execution calculation unit 11, and outputs the output port # 1 and the output of the execution calculation unit 10. By causing the output multiplexer 102 corresponding to the port # 2 to select the execution calculator 11 and causing the input multiplexer 101 corresponding to the input port # 1 and the input port # 2 of the execution calculator 11 to select the execution calculator 10. Recognize that the conceiver device can realize the assumed configuration. Therefore, the control unit 3 controls the load of the calculation information A to the execution calculation unit 10 and the load control of the calculation information B to the execution calculation unit 11. Do it. Further, the input / output control units 103 of the execution calculation unit 10 and the execution calculation unit 11 output control information for outputting the selection signal 104 for selecting the line 5 described above. The load control of the calculation information to the execution calculation units 10 and 11 is performed by the control unit 3 even if the control unit 3 acquires the main storage device power (not shown) and loads it to the execution calculation units 10 and 11. Sections 10 and 11 store the calculation information to be loaded !, not shown !, notify the address of the main memory, and each execution calculation section 10 and 11 based on the notification from the control section 3, Not shown! /, The configuration may be such that the calculation information is obtained directly from the main memory.
[0031] これにより、図 4に示す実行計算部 10及び 11を有するプロセッサは、実行可能プロ グラム 6を 1回のステージで実行する。  Thus, the processor having the execution calculation units 10 and 11 shown in FIG. 4 executes the executable program 6 in one stage.
[0032] 続いて、図 9に示す実行可能プログラム 6を、図 5に示す実行計算部 10のみを有す るプロセッサで実行する場合の動作について図 10を用いて説明する。尚、制御部 3 が保持している結線情報は、図 14の実行計算部 10の結線情報において、実行計算 部 11を除いたものとする。尚、図 5に示す様に、実行計算部 10が 1つのみの場合や 、実行計算部が複数あっても実行計算部 1間での配線を行わない場合には、入力側 マルチプレクサ 101及び出力側マルチプレクサ 102を省略可能である。  Next, an operation when the executable program 6 shown in FIG. 9 is executed by a processor having only the execution calculation unit 10 shown in FIG. 5 will be described with reference to FIG. It is assumed that the connection information held by the control unit 3 is obtained by removing the execution calculation unit 11 from the connection information of the execution calculation unit 10 in FIG. As shown in FIG. 5, when there is only one execution calculation unit 10 or when there is no execution calculation unit 1 even if there are multiple execution calculation units, the input side multiplexer 101 and the output The side multiplexer 102 can be omitted.
[0033] 制御部 3は、図 9に示す実行可能プログラム 6を図示しない主記憶装置から取得し て解析を行い、実行可能プログラム 6が、 2つの実行計算部を必要としていることと、 一方の実行計算部の出力ポート # 1と他方の実行計算部の入力ポート # 1との接続 、及び、一方の実行計算部の出力ポート # 2と他方の実行計算部の入力ポート # 2と の接続を必要としていることを認識する。制御部 3は、プロセッサ上には 1つの実行計 算部 10のみし力ないことも認識しているため、接続情報を解析し、他から中間データ の入力がない演算情報 Aを、第 1のステージで実行する演算情報とし、演算情報 Aの 実行計算部 10へのロード制御を行う。また、制御部 3は、演算情報 Aの中間データの 出力先である演算情報 Bが同時に実行されないことから、演算情報 Bが必要とする中 間データを中間データ記憶部 2に保存させるための制御情報を、実行計算部 10及 び中間データ記憶部 2に出力する。実行計算部 10に対する制御情報は、中間デー タを出力する実行計算部 10の出力ポート # 1及び出力ポート # 2に対応する出力側 マルチプレクサ 102に、中間データ記憶部 2を選択させるための情報を含んでいる。 また、中間データ記憶部 2に対する制御情報は、中間データ記憶部 2に、実行計算 部 10の出力ポート # 1及び # 2から出力される中間データを保存させるための情報 が含まれている。 The control unit 3 acquires the executable program 6 shown in FIG. 9 from a main storage (not shown) and analyzes it, and the executable program 6 requires two execution calculation units, Connect the output port # 1 of the execution calculator to the input port # 1 of the other execution calculator, and connect the output port # 2 of one execution calculator to the input port # 2 of the other execution calculator Recognize what you need. Since the control unit 3 recognizes that there is only one execution calculation unit 10 on the processor, the control unit 3 analyzes the connection information, and calculates the calculation information A without any intermediate data input from the other as the first calculation unit A. As the calculation information to be executed on the stage, load control of calculation information A to the execution calculation unit 10 is performed. In addition, since the calculation information B, which is the output destination of the intermediate data of the calculation information A, is not executed at the same time, the control unit 3 performs control for storing the intermediate data required by the calculation information B in the intermediate data storage unit 2. Information is output to the execution calculation unit 10 and the intermediate data storage unit 2. The control information for the execution calculation unit 10 includes information for causing the output side multiplexer 102 corresponding to the output port # 1 and output port # 2 of the execution calculation unit 10 that outputs intermediate data to select the intermediate data storage unit 2. Contains. Further, the control information for the intermediate data storage unit 2 includes information for causing the intermediate data storage unit 2 to store the intermediate data output from the output ports # 1 and # 2 of the execution calculation unit 10.
[0034] 図 10の符号 40は、第 1ステージにおける、実行計算部 10の接続状態であり、符号 90は、実行計算部 10で演算情報 Aを実行しているときには実在しない、演算情報 B を実行する実行計算部を表している。符号 40に示す接続状態において、実行計算 部 10の演算部 100は、演算情報 Aを実行し、中間データを中間データ記憶部 2に出 力する。  Reference numeral 40 in FIG. 10 represents the connection state of the execution calculation unit 10 in the first stage, and reference numeral 90 represents calculation information B that does not actually exist when the execution calculation unit 10 executes the calculation information A. This represents an execution calculation unit to be executed. In the connection state indicated by reference numeral 40, the calculation unit 100 of the execution calculation unit 10 executes the calculation information A and outputs intermediate data to the intermediate data storage unit 2.
[0035] 第 1ステージの終了後、制御部 3は、残りの演算情報 Bを第 2のステージで実行する 演算情報とし、演算情報 Bの実行計算部 10へのロード制御を行う。同時に、制御部 3 は、演算情報 Bを実行する実行計算部 10への中間データを、第 1のステージで保存 した中間データ記憶部 2から出力させるために、結線情報に従い、実行計算部 10の 入力ポート # 1及び # 2に対応する入力側マルチプレクサ 101に中間データ記憶部 2を選択させ、演算部 100が中間データを入力ポート # 1及び # 2から入力するように 、実行計算部 10に制御情報を出力する。また、中間データ記憶部 2から、第 1ステー ジで保存した中間データをそれぞれ実行計算部 10の入力ポート # 1及び # 2に出力 させるための制御情報を、中間データ記憶部 2に出力する。  After the end of the first stage, the control unit 3 uses the remaining calculation information B as calculation information to be executed in the second stage, and performs load control of the calculation information B to the execution calculation unit 10. At the same time, the control unit 3 outputs the intermediate data to the execution calculation unit 10 that executes the calculation information B from the intermediate data storage unit 2 stored in the first stage according to the connection information. Control the execution calculation unit 10 so that the input side multiplexer 101 corresponding to the input ports # 1 and # 2 selects the intermediate data storage unit 2 and the arithmetic unit 100 inputs the intermediate data from the input ports # 1 and # 2. Output information. In addition, control information for causing the intermediate data stored in the first stage to be output to the input ports # 1 and # 2 of the execution calculation unit 10 is output from the intermediate data storage unit 2 to the intermediate data storage unit 2, respectively.
[0036] 符号 41は、第 2ステージにおける、実行計算部 10の接続状態であり、符号 90は、 実行計算部 10で演算情報 Bを実行しているときには実在しない、演算情報 Aを実行 する実行計算部を表している。符号 41に示す接続状態において、実行計算部 10の 演算部 100は、中間データ記憶部 2からの中間データを入力として、演算情報 Bを実 行する。これにより、図 8に示す実行可能プログラム 6を、 1つの実行計算部 10のみで 実行する。  Reference numeral 41 denotes a connection state of the execution calculation unit 10 in the second stage, and reference numeral 90 denotes an execution for executing the calculation information A that does not actually exist when the execution calculation unit 10 executes the calculation information B. Represents the calculation unit. In the connection state indicated by reference numeral 41, the calculation unit 100 of the execution calculation unit 10 executes the calculation information B using the intermediate data from the intermediate data storage unit 2 as an input. As a result, the executable program 6 shown in FIG. 8 is executed by only one execution calculation unit 10.
[0037] 図 11及び図 12は、実行可能プログラム 6の他の例を説明する図である。図 11は、 本発明によるコンノイラ装置が想定した処理形態を示す図であり、四角の枠は実行 計算部が実行する演算情報を示している。図 11によると、コンパイラ装置は、ソース プログラムの解析を行い、 5つの実行計算部を用いることにより、ソースプログラムに 記述された処理を実現するものとして!/ヽる。 [0038] 図 12は、図 11に示すコンパイラ装置が想定した処理形態に対応する実行可能プ ログラム 6である。尚、ここでは実行可能プログラムを、図 7の構造で示している。図 12 に示す様に、実行可能プログラム 6は、それぞれが 1つの実行計算部 1で実行される 演算情報 A、 B、 C、 D及び Eと、各演算情報間での中間データの入出力関係を示す 接続情報とを有している。 FIG. 11 and FIG. 12 are diagrams for explaining another example of the executable program 6. FIG. 11 is a diagram illustrating a processing mode assumed by the conoiler device according to the present invention, and a square frame indicates calculation information executed by the execution calculation unit. According to Fig. 11, the compiler device analyzes the source program and uses the five execution calculators to realize the processing described in the source program! / Speak. FIG. 12 shows an executable program 6 corresponding to the processing mode assumed by the compiler apparatus shown in FIG. Here, the executable program is shown in the structure of FIG. As shown in Fig. 12, the executable program 6 includes the operation information A, B, C, D, and E executed by one execution calculation unit 1 and the intermediate data input / output relationship between each operation information. Connection information.
[0039] 続いて、図 12に示す実行可能プログラム 6を、図 4に示す実行計算部 10及び 11を 有するプロセッサで実行する場合の動作について図 13を用いて説明する。尚、制御 部 3が保持している結線情報は、図 14に示す通りとする。  Next, an operation when the executable program 6 shown in FIG. 12 is executed by the processor having the execution calculation units 10 and 11 shown in FIG. 4 will be described with reference to FIG. The connection information held by the control unit 3 is as shown in FIG.
[0040] 制御部 3は、図 12に示す実行可能プログラム 6を図示しない主記憶装置から取得し て解析を行い、実行可能プログラム 6が、 5つの実行計算部を必要としていることを認 識する。制御部 3は、プロセッサ上には 2つの実行計算部 10及び 11のみしかないこ とも認識しているため、接続情報を解析し、第 1のステージにおいて、他の演算情報 からの中間データを必要としな ヽ演算情報 Aを実行することを決定し、実行先として 実行計算部 10を割り当てる。続いて、接続情報から、実行することを決定した演算情 報 Aを除いたときに、他の演算情報からの中間データを必要としない演算情報 B及び 演算情報 Cを第 1のステージで実行する演算情報の候補とする。続いて、候補とした 演算情報のどちらか一方、ここでは、演算情報 Bを実行計算部 11で実行するとした 場合に、本ステージで実行する演算情報を実行先の実行計算部と置き、該ステージ で実行されない演算情報を中間データ記憶部 2と置き換えた構成を実現できるか否 かを判定する。ここでは、実現可能であるため、演算情報 Bを実行計算部 11で実行 することを決定する。これにより実行する演算情報の数が、搭載している実行計算部 の数と等しくなるため、第 1のステージでの処理の実行に移る。尚、実現不可能であ る場合には、他の候補について同様に判定する。  [0040] The control unit 3 acquires the executable program 6 shown in FIG. 12 from a main storage (not shown) and analyzes it, and recognizes that the executable program 6 requires five execution calculation units. . Since control unit 3 recognizes that there are only two execution calculation units 10 and 11 on the processor, it analyzes the connection information and needs intermediate data from other calculation information in the first stage. Toshin ヽ It decides to execute the calculation information A and assigns the execution calculation unit 10 as the execution destination. Subsequently, when the calculation information A decided to be executed is removed from the connection information, calculation information B and calculation information C that do not require intermediate data from other calculation information are executed in the first stage. Candidate for computation information. Subsequently, if one of the candidate computation information, here, computation information B is executed by the execution calculation unit 11, the calculation information to be executed in this stage is placed in the execution calculation unit of the execution destination, and the stage It is determined whether or not a configuration in which the operation information not executed in step 1 is replaced with the intermediate data storage unit 2 can be realized. Here, since it is feasible, the execution calculation unit 11 decides to execute the calculation information B. As a result, the number of pieces of computation information to be executed becomes equal to the number of installed execution calculation units, so the process moves to the execution of the first stage. If this is not possible, other candidates are determined in the same manner.
[0041] 処理の実行のため、制御部 3は、演算情報 Aの実行計算部 10へのロード制御と、 演算情報 Bの実行計算部 11へのロード制御を行うと共に、実行計算部 10の出力ポ ート # 1及び # 2に対応する出力側マルチプレクサ 102に、実行計算部 11を選択さ せ、出力ポート # 3及び # 4に対応する出力側マルチプレクサ 102に、中間データ記 憶部 2を選択させるように、実行計算部 10に制御情報を出力し、実行計算部 11の入 力ポート # 1及び # 2に対応する入力側マルチプレクサ 101に、実行計算部 10を選 択させ、出力ポート # 1に対応する出力側マルチプレクサ 102に中間データ記憶部 2 を選択させるように、実行計算部 11に制御情報を出力する。また、中間データ記憶 部 2に対しても中間データを受信し、保存するように制御情報を出力する。結果、プロ セッサは、符号 42に示す状態となる。 [0041] For execution of the process, the control unit 3 performs load control of the calculation information A to the execution calculation unit 10, load control of the calculation information B to the execution calculation unit 11, and outputs of the execution calculation unit 10 Select execution calculator 11 for output multiplexer 102 corresponding to ports # 1 and # 2, and select intermediate data storage 2 for output multiplexer 102 corresponding to output ports # 3 and # 4 Control information is output to the execution calculation unit 10 so that the execution calculation unit 11 Execution calculation so that the input side multiplexer 101 corresponding to the output ports # 1 and # 2 selects the execution calculation unit 10, and the output side multiplexer 102 corresponding to the output port # 1 selects the intermediate data storage unit 2. Output control information to part 11. The intermediate data is also received by the intermediate data storage unit 2 and the control information is output so as to be stored. As a result, the processor is in the state indicated by reference numeral 42.
[0042] 符号 42に示す接続状態において、実行計算部 10の演算部 100は、演算情報 Aを 実行する。実行計算部 10から出力される中間データのうち、出力ポート # 1及び # 2 から出力される中間データは、実行計算部 11に入力され、出力ポート # 3及び # 4か ら出力される中間データは、中間データ記憶部 2に保存される。実行計算部 11の演 算部 100は、実行計算部 10からの中間データを入力とし、演算情報 Bを実行し、実 行計算部 11から出力される中間データは、中間データ記憶部 2に保存される。  [0042] In the connection state indicated by reference numeral 42, the calculation unit 100 of the execution calculation unit 10 executes the calculation information A. Of the intermediate data output from the execution calculator 10, the intermediate data output from the output ports # 1 and # 2 is input to the execution calculator 11 and output from the output ports # 3 and # 4. Is stored in the intermediate data storage unit 2. The calculation unit 100 of the execution calculation unit 11 receives the intermediate data from the execution calculation unit 10 and executes calculation information B. The intermediate data output from the execution calculation unit 11 is stored in the intermediate data storage unit 2. Is done.
[0043] 続、て、制御部 3は、既に実行した演算情報 A及び Bを除 、たときに、他の演算情 報からの中間データを必要としな!/、演算情報 Cをまず第 2のステージで実行する演 算情報に決定し、実行先として実行計算部 10を割り当てる。続いて、実行することを 決定した演算情報 C並びに既に実行した演算情報 A及び Bを除いたときに、他の演 算情報からの中間データを必要としな 、演算情報 D及び演算情報 Eを第 2のステー ジで実行する演算情報の候補とする。続いて、候補とした演算情報のどちらか一方、 ここでは、演算情報 Eを実行計算部 11で実行するとした場合に、該ステージで実行 する演算情報を実行先の実行計算部と置き、該ステージで実行されな 、演算情報を 中間データ記憶部 2と置き換えた構成を実現できる力否かを判定する。ここでは、実 現可能であるため、演算情報 Eを実行計算部 11で実行することを決定する。これによ り実行する演算情報の数が、搭載している実行計算部の数と等しくなるため、第 2ス テージでの処理の実行に移る。  Subsequently, the control unit 3 does not need intermediate data from other calculation information when the calculation information A and B already executed is removed! The execution calculation section 10 is assigned as the execution destination. Subsequently, when the operation information C decided to be executed and the operation information A and B that have already been executed are removed, the operation information D and the operation information E are not obtained without requiring intermediate data from other operation information. Candidates for computation information to be executed at stage 2. Subsequently, when one of the candidate calculation information, here, calculation information E is executed by the execution calculation unit 11, the calculation information to be executed in the stage is placed in the execution calculation unit of the execution destination, and the stage If not, it is determined whether or not it is possible to realize a configuration in which the operation information is replaced with the intermediate data storage unit 2. Here, since it can be realized, it is determined that the execution calculation unit 11 executes the calculation information E. As a result, the number of pieces of calculation information to be executed becomes equal to the number of installed execution calculation units, so that the process moves to the execution of the second stage.
[0044] 尚、制御部 3は、一般的には、候補となる演算情報がなくなるまで、又は、実行する 演算情報の数が実行計算手段の数と等しくなるまで上記処理を繰り返して各ステー ジで実行する演算情報を決定する。 Note that the control unit 3 generally repeats the above processing until each candidate stage has no computation information or until the number of computation information to be executed is equal to the number of execution calculation means. The operation information to be executed is determined.
[0045] 処理の実行のため、制御部 3は、演算情報 Cの実行計算部 10へのロード制御と、 演算情報 Eの実行計算部 11へのロード制御を行うと共に、接続情報に基づき、実行 計算部 10の入力ポート # 4に対応する入力側マルチプレクサ 101に中間データ記 憶部 2を選択させ、出力ポート # 2に対応する出力側マルチプレクサ 102に中間デー タ記憶部 2を選択させ、出力ポート # 3及び # 4に対応する出力側マルチプレクサ 10 2に実行計算部 11を選択させるように実行計算部 10に制御情報を出力し、実行計 算部 11の入力ポート # 3及び # 4に対応する入力側マルチプレクサ 101に実行計算 部 10を選択させるように、実行計算部 11の入出力制御部 103に制御情報を出力す る。また、中間データ記憶部 2に対しても、前のステージで演算情報 Aを実行した実 行計算部 10の出力ポート # 4から受信した中間データを、該ステージにおいて演算 情報 Cを実行している実行計算部 10の入力ポート # 4に出力し、当該ステージで新 たに受信する中間データを保存するように制御情報を出力する。結果、プロセッサは 、符号 43に示す状態となる。 [0045] For execution of the process, the control unit 3 performs load control of the calculation information C to the execution calculation unit 10 and load control of the calculation information E to the execution calculation unit 11, and executes based on the connection information. The input side multiplexer 101 corresponding to the input port # 4 of the calculation unit 10 selects the intermediate data storage unit 2 and the output side multiplexer 102 corresponding to the output port # 2 selects the intermediate data storage unit 2, and the output port Output control information is output to the execution calculation unit 10 so that the output side multiplexer 10 2 corresponding to # 3 and # 4 selects the execution calculation unit 11, and corresponding to the input ports # 3 and # 4 of the execution calculation unit 11 The control information is output to the input / output control unit 103 of the execution calculation unit 11 so that the input side multiplexer 101 selects the execution calculation unit 10. In addition, intermediate data received from the output port # 4 of the execution calculation unit 10 that executed the calculation information A in the previous stage is also executed for the intermediate data storage unit 2 in the stage. Output to the input port # 4 of the execution calculation unit 10 and output control information so as to store the intermediate data newly received at the relevant stage. As a result, the processor enters a state indicated by reference numeral 43.
[0046] 符号 43に示す接続状態において、実行計算部 10の演算部 100は、中間データ記 憶部 2からの中間データを入力として、演算情報 Cを実行する。実行計算部 10から 出力される中間データのうち、出力ポート # 2から出力される中間データは、中間デ ータ記憶部 2に保存され、出力ポート # 3及び # 4から出力される中間データは、実 行計算部 11に入力される。実行計算部 11の演算部 100は、実行計算部 10からの 中間データを入力とし、演算情報 Eを実行する。  In the connection state indicated by reference numeral 43, the calculation unit 100 of the execution calculation unit 10 executes the calculation information C using the intermediate data from the intermediate data storage unit 2 as an input. Of the intermediate data output from the execution calculation unit 10, the intermediate data output from the output port # 2 is stored in the intermediate data storage unit 2, and the intermediate data output from the output ports # 3 and # 4 is Is input to the execution calculation unit 11. The calculation unit 100 of the execution calculation unit 11 receives the intermediate data from the execution calculation unit 10 and executes calculation information E.
[0047] 最後に、制御部 3は、残りの演算情報 Dを第 3のステージで実行する演算情報と決 定し、実行計算部 10へのロード制御を行う。  Finally, the control unit 3 determines the remaining calculation information D as calculation information to be executed in the third stage, and performs load control to the execution calculation unit 10.
[0048] 同時に、制御部 3は、既に中間データ記憶部 2に保存されている実行計算部 10へ の中間データを、実行計算部 10に入力させるために実行計算部 10に対して制御情 報を出力する。この制御情報に基づき、実行計算部 10の入出力制御部 103は、入 力ポート # 1、 # 2及び # 3に対応する入力側マルチプレクサ 101に中間データ記憶 部 2を選択させるための選択信号 104を出力する。また、中間データ記憶部 2に対し ても、第 1のステージで演算情報 Aを実行した実行計算部 10の出力ポート # 3から受 信した中間データを、実行計算部 10の入力ポート # 3に出力し、第 1のステージで演 算情報 Bを実行した実行計算部 11の出力ポート # 1から受信した中間データを、実 行計算部 10の入力ポート # 1に出力し、第 2のステージで演算情報 C実行した実行 計算部 10の出力ポート # 2から受信した中間データを、実行計算部 10の入力ポート # 2に出力するように制御情報を出力する。結果、プロセッサは、符号 44に示す状態 となる。 At the same time, the control unit 3 sends control information to the execution calculation unit 10 in order to cause the execution calculation unit 10 to input intermediate data to the execution calculation unit 10 already stored in the intermediate data storage unit 2. Is output. Based on this control information, the input / output control unit 103 of the execution calculation unit 10 selects the intermediate data storage unit 2 by the input side multiplexer 101 corresponding to the input ports # 1, # 2, and # 3. Is output. Also for intermediate data storage unit 2, intermediate data received from output port # 3 of execution calculation unit 10 that executed operation information A in the first stage is input to input port # 3 of execution calculation unit 10. The intermediate data received from output port # 1 of execution calculation unit 11 that has been output and executed operation information B in the first stage is output to input port # 1 of execution calculation unit 10 and output in the second stage. Calculation information C Executed execution The control information is output so that the intermediate data received from the output port # 2 of the calculation unit 10 is output to the input port # 2 of the execution calculation unit 10. As a result, the processor is in a state indicated by reference numeral 44.
[0049] 符号 44に示す接続状態において、実行計算部 10の演算部 100は、中間データ記 憶部 2からの中間データを入力として、演算情報 Dを実行する。これにより、図 11に 示す実行可能プログラム 6を、 2つの実行計算部 10及び 11で実行する。  In the connection state indicated by reference numeral 44, the calculation unit 100 of the execution calculation unit 10 executes the calculation information D with the intermediate data from the intermediate data storage unit 2 as an input. As a result, the executable program 6 shown in FIG. 11 is executed by the two execution calculation units 10 and 11.
[0050] 以上説明したように、実行可能プログラム 6は、それぞれが 1つの実行計算部 1で実 行する処理内容を規定する演算情報 602と、演算情報 602間での中間データの入 出力関係を規定する接続情報 601を有し、プロセッサの制御部 3が、自プロセッサが 搭載している実行計算部 1の数、結線情報及び接続情報 601に基づき、実行可能プ ログラム 6を複数回のステージに分割して実行することで、搭載して!/ヽる実行計算部 1 の数によらず同一の実行可能プログラム 6を使用することが可能となる。  [0050] As described above, the executable program 6 has a relation between the calculation information 602 that defines the processing content to be executed by one execution calculation unit 1 and the intermediate data input / output relationship between the calculation information 602. Based on the number of execution calculation units 1 installed in its own processor, connection information, and connection information 601, the processor control unit 3 has the specified connection information 601, and the executable program 6 is put into multiple stages. By dividing and executing, the same executable program 6 can be used regardless of the number of execution calculation units 1 installed!
[0051] これにより、対象機器に応じて制限される実装面積やコスト等により搭載する実行 計算部 1の数が異なるプロセッサ間においても、同一ソゥフトウエアの利用が可能とな る。  [0051] With this, the same software can be used between processors having different numbers of execution calculation units 1 to be mounted due to the mounting area, cost, and the like that are limited depending on the target device.
[0052] 上記説明においては、演算情報 602を実行する実行計算部 1の、中間データを入 出力するポートが固定であるものとしていた。つまり、接続情報で示されるポート番号 は、対応する演算情報を実行する実行計算部のポート番号としていた。しかしながら 、例えば、演算部 100内で、中間データを入力する入力ポート及び出力する出力ポ ートを選択可能とし、又は、演算情報 602内のある領域を書き換えることで、中間デ ータを入出力するポート番号を設定可能とし、制御部 3が結線情報に基づき中間デ ータを入出力するポート番号を変更することで、各ステージで実行する演算情報の選 択の自由度が増し、実行計算部 1間に設定するライン 5の数を減らすことができる。こ の場合、接続情報では、演算情報間の論理的なポート番号での接続関係が定義さ れ、制御部 3は、結線情報と、実行する演算情報とに基づき、論理的なポート番号を 、実際に中間データを入出力させる実行計算部 1の物理的なポート番号に対応させ て、対応させた入力ポート及び出力ポートから中間データを入出力するように各実行 計算部 1に対して制御情報を出力する。 [0053] また、上記説明においては、他の演算情報 602から中間データの入力を必要とし ない演算情報力も実行するものとして説明を行ってきた。し力しながら、処理内容に おいては、全体的又は部分的にループを必要とする状態も考えられる。ここでループ とは、実行計算部 1をノードとして、中間データの入出力関係を、中間データを出力 する実行計算部 1から入力する実行計算部 1への矢印で表したときに、ある実行計算 部 1から矢印の方向に順にたどって、同じ実行計算部 1に戻るルートがある状態をい [0052] In the above description, the port for inputting / outputting intermediate data of the execution calculation unit 1 that executes the calculation information 602 is fixed. That is, the port number indicated by the connection information is the port number of the execution calculation unit that executes the corresponding calculation information. However, for example, it is possible to select an input port for inputting intermediate data and an output port for output in the arithmetic unit 100, or to input / output intermediate data by rewriting a certain area in the arithmetic information 602. By changing the port number for inputting / outputting intermediate data based on the connection information, the control unit 3 increases the degree of freedom in selecting computation information to be executed at each stage, and execution calculation The number of lines 5 set between part 1 can be reduced. In this case, the connection information defines the connection relationship of the logical port numbers between the calculation information, and the control unit 3 determines the logical port number based on the connection information and the calculation information to be executed. Control information for each execution calculation unit 1 so that the intermediate data is input / output from the corresponding input port and output port corresponding to the physical port number of the execution calculation unit 1 that actually inputs / outputs intermediate data. Is output. [0053] In the above description, it has been described that the calculation information power that does not require the input of intermediate data from other calculation information 602 is also executed. However, depending on the processing content, there may be a situation where a loop is required in whole or in part. Here, a loop is an execution calculation when the execution calculation unit 1 is a node and the input / output relationship of intermediate data is represented by an arrow from the execution calculation unit 1 that outputs the intermediate data to the execution calculation unit 1 that is input. It follows that there is a route that goes back in the direction of the arrow from part 1 and returns to the same execution calculation part 1.
[0054] ループがある場合は、実行可能プログラム 6に最初に実行する 1つ以上の演算情 報を指定する情報を含め、制御部 3が、その情報に基づき演算情報の実行順序を決 定することで対処可能である。最初に実行する演算情報以降は、実行した演算情報 の中間データ出力先の演算情報を順に実行していくことになる。 [0054] If there is a loop, the executable program 6 includes information specifying one or more pieces of calculation information to be executed first, and the control unit 3 determines the execution order of the calculation information based on the information. Can be dealt with. After the calculation information to be executed first, the calculation information of the intermediate data output destination of the executed calculation information is executed in order.
[0055] 最後に、本発明によるコンパイラ装置について説明する。図 15は、本発明によるコ ンノイラ装置のブロック図である。図 15によるとコンパイラ装置は、構文解析部 81と、 最適化部 82と、コード生成部 83とを有する。コンパイラ装置は、対象とする実行計算 部 1の種別、即ち、 RISCコア、 VLIWコア又は所定数のマトリックス状に配列された 演算器といった演算部 100を構成するハードウェアの種別についての情報を有し、ソ ースプログラム 7を入力として、対象とする実行計算部 1を 1つ以上搭載するプロセッ サが実行する実行可能プログラム 6を出力する。  [0055] Finally, a compiler apparatus according to the present invention will be described. FIG. 15 is a block diagram of a conoiler device according to the present invention. According to FIG. 15, the compiler apparatus has a syntax analysis unit 81, an optimization unit 82, and a code generation unit 83. The compiler apparatus has information on the type of the target execution calculation unit 1, that is, the type of hardware constituting the calculation unit 100 such as the RISC core, the VLIW core, or a predetermined number of arithmetic units arranged in a matrix. Then, with the source program 7 as an input, an executable program 6 that is executed by a processor equipped with one or more target execution calculation units 1 is output.
[0056] 構文解析部 81は、ソースプログラム 7の字句解析及び構文解析を行い、最適化部 82は、意味解析を行い、対象とする実行計算部 1の種別に基づき最適化を行う。こ の中で、コンパイラ装置は、必要となる実行計算部 1の数と、各実行計算部 1で実行 させる処理内容と、各実行計算部 1間での中間データの入出力のための接続関係を 決定する。最後に、コード生成部 83は、各実行計算部 1で実行する処理内容を演算 情報としてコード生成し、実行計算部 1間での中間データの入出力のための接続関 係を、実行計算部 1で実行されている演算情報の接続関係として記述した接続情報 を生成し、実行可能プログラム 6を出力する。  [0056] The syntax analysis unit 81 performs lexical analysis and syntax analysis of the source program 7, and the optimization unit 82 performs semantic analysis and performs optimization based on the type of the target execution calculation unit 1. Among them, the compiler device is required for the number of execution calculation units 1, the processing contents to be executed by each execution calculation unit 1, and the connection relation for input / output of intermediate data between each execution calculation unit 1. Determine. Finally, the code generation unit 83 generates code as processing information for the processing executed by each execution calculation unit 1, and establishes a connection relation for input / output of intermediate data between the execution calculation units 1. The connection information described as the connection relation of the computation information executed in 1 is generated, and the executable program 6 is output.
[0057] 尚、各実行計算部 1間での中間データの入出力のための接続関係が、ループ状態 となる場合には、最適化部 82は、最初に実行する 1つ以上の演算情報を決定し、コ ード生成部 83は、最初に実行する 1つ以上の演算情報を特定する情報を含む実行 可能プログラムを出力する。 [0057] When the connection relationship for inputting / outputting intermediate data between the execution calculation units 1 is in a loop state, the optimization unit 82 selects one or more pieces of calculation information to be executed first. Decide and The mode generation unit 83 outputs an executable program including information for specifying one or more pieces of calculation information to be executed first.
尚、本発明によるコンパイラ装置は、コンピュータに上記機能を実行させるプロダラ ムによっても実現できる。  The compiler apparatus according to the present invention can also be realized by a program that causes a computer to execute the above functions.

Claims

請求の範囲 The scope of the claims
[1] 入力及び出力のためのポートを 1つ以上有する、 1つ以上の実行計算手段を備え、 それぞれが 1つの実行計算手段での処理内容を規定する複数の演算情報と、演算 情報間での中間データの入出力関係を規定する接続情報とを含む実行可能プログ ラムを、 1回以上のステージに分割して実行するプロセッサであって、  [1] It has one or more execution calculation means that have one or more ports for input and output, each of which is between multiple pieces of calculation information that defines the processing contents of one execution calculation means and the calculation information An executable program including connection information that defines the input / output relationship of intermediate data is divided into one or more stages and executed.
中間データ記憶手段と、  Intermediate data storage means;
各実行計算手段について、各ポートが接続可能な中間データ記憶手段及び Z又 は他の実行計算手段についての情報である結線情報を保持する制御手段と、 を有し、  For each execution calculation means, there are intermediate data storage means to which each port can be connected and control means for holding connection information, which is information about Z or other execution calculation means, and
制御手段は、各ステージにおいて、実行計算手段の数、結線情報及び接続情報に 基づき、該ステージにおいて実行する演算情報を決定し、  The control means determines calculation information to be executed in each stage based on the number of execution calculation means, connection information, and connection information in each stage.
演算情報を実行する実行計算手段は、該ステージにお ヽて実行されな ヽ演算情 報との間で入出力する中間データを、中間データ記憶手段との間で入出力すること を特徴とするプロセッサ。  Execution calculation means for executing calculation information is characterized in that intermediate data input / output to / from calculation information that is not executed at the stage is input / output to / from intermediate data storage means. Processor.
[2] 実行計算手段は、各ポートに対応して設けられ、接続している中間データ記憶手 段及び Z又は他の実行計算手段から、 1つの中間データ記憶手段又は他の実行計 算手段を選択して対応するポートに接続する選択手段を備え、  [2] Execution calculation means is provided corresponding to each port, and from the connected intermediate data storage means and Z or other execution calculation means, one intermediate data storage means or other execution calculation means is provided. Selecting means for selecting and connecting to the corresponding port;
制御手段は、各ステージにおいて、実行する演算情報及び接続情報に基づき、制 御情報を出力し、  The control means outputs control information based on the operation information and connection information to be executed at each stage.
選択手段は、該制御情報に従い、中間データ記憶手段又は他の実行計算手段を 選択すること、  The selection means selects an intermediate data storage means or other execution calculation means according to the control information,
を特徴とする請求項 1に記載のプロセッサ。  The processor according to claim 1, wherein:
[3] 実行計算手段は、中間データを入出力させるポートの選択が可能であり、 [3] Execution calculation means can select the port to input / output intermediate data,
制御手段は、各ステージにおいて、実行する演算情報及び接続情報に基づき、中 間データを入出力させるポートの選択を行うこと、  In each stage, the control means selects a port for inputting / outputting intermediate data based on calculation information and connection information to be executed,
を特徴とする請求項 1に記載のプロセッサ。  The processor according to claim 1, wherein:
[4] 所定の実行計算部を 1つ以上有しているプロセッサ用の実行可能プログラムを出力 するコンパイラ装置であって、 ソースプログラムを解析し、必要となる実行計算部の数と、各実行計算部での処理 内容と、各実行計算部間での中間データの入出力のための接続関係を決定する最 適化手段と、 [4] A compiler device that outputs an executable program for a processor having one or more predetermined execution calculation units, An optimization method that analyzes the source program and determines the number of execution calculation units required, the processing contents of each execution calculation unit, and the connection relationship for input / output of intermediate data between each execution calculation unit When,
各実行計算部での処理内容をコード化した実行計算部ごとの演算情報と、各実行 計算部間での中間データの入出力関係を、実行計算部で実行されて 、る演算情報 での入出力関係として記述した接続情報とを含む実行可能プログラムを生成するコ ード生成手段と、  The operation information for each execution calculation unit that encodes the processing contents in each execution calculation unit and the input / output relationship of the intermediate data between each execution calculation unit is input in the calculation information that is executed by the execution calculation unit. Code generation means for generating an executable program including connection information described as output relations;
を有することを特徴とするコンパイラ装置。 A compiler apparatus comprising:
所定の実行計算部を 1つ以上有しているプロセッサ用の実行可能プログラムを出力 するコンパイラ装置としてコンピュータを機能させるプログラムであって、  A program that causes a computer to function as a compiler device that outputs an executable program for a processor having one or more predetermined execution calculation units,
コンピュータに、  On the computer,
ソースプログラムを解析し、必要となる実行計算部の数と、各実行計算部での処理 内容と、各実行計算部間での中間データの入出力のための接続関係を決定するス テツプと、  Analyzing the source program, determining the number of execution calculation units required, the contents of processing in each execution calculation unit, and the connection relationship for input / output of intermediate data between each execution calculation unit,
各実行計算部での処理内容をコード化した実行計算部ごとの演算情報と、各実行 計算部間での中間データの入出力関係を、実行計算部で実行されて 、る演算情報 での入出力関係として記述した接続情報とを含む実行可能プログラムを生成するス テツプと、  The operation information for each execution calculation unit that encodes the processing contents in each execution calculation unit and the input / output relationship of the intermediate data between each execution calculation unit is input in the calculation information that is executed by the execution calculation unit. A step for generating an executable program including connection information described as output relations;
を実行させることを特徴とするプログラム。 A program characterized by having executed.
PCT/JP2006/318920 2005-09-26 2006-09-25 Processor, compiler apparatus and program WO2007034936A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005277593A JP3985829B2 (en) 2005-09-26 2005-09-26 Processor
JP2005-277593 2005-09-26

Publications (1)

Publication Number Publication Date
WO2007034936A1 true WO2007034936A1 (en) 2007-03-29

Family

ID=37888978

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2006/318920 WO2007034936A1 (en) 2005-09-26 2006-09-25 Processor, compiler apparatus and program

Country Status (2)

Country Link
JP (1) JP3985829B2 (en)
WO (1) WO2007034936A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6311110B2 (en) * 2014-01-28 2018-04-18 パナソニックIpマネジメント株式会社 Dehumidifier

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11120210A (en) * 1997-10-21 1999-04-30 Toshiba Corp Designing device of reconfigurable circuit and reconfigurable circuit device
JP2000031156A (en) * 1998-06-05 2000-01-28 St Microelectronics Vertical bipolar transistor having extrinsic base of suppressed roughness and fabrication thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11120210A (en) * 1997-10-21 1999-04-30 Toshiba Corp Designing device of reconfigurable circuit and reconfigurable circuit device
JP2000031156A (en) * 1998-06-05 2000-01-28 St Microelectronics Vertical bipolar transistor having extrinsic base of suppressed roughness and fabrication thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DYER M.: "Virtualized Execution of Process Networks on Dynamic Reconfigurable Hardware", TIK REPORT, no. 192, January 2004 (2004-01-01), pages 1 - 10, XP003010773, Retrieved from the Internet <URL:http://www.ftp.tik.ee.ethz.ch/pub/people/dyer/D04_TR.pdf> *

Also Published As

Publication number Publication date
JP3985829B2 (en) 2007-10-03
JP2007087264A (en) 2007-04-05

Similar Documents

Publication Publication Date Title
US7996827B2 (en) Method for the translation of programs for reconfigurable architectures
US6948158B2 (en) Retargetable compiling system and method
US7844803B2 (en) Configurable data processing device with bit reordering on inputs and outputs of configurable logic function blocks
RU2427895C2 (en) Multiprocessor architecture optimised for flows
JP4489102B2 (en) Profiler for optimization of processor structure and applications
US20090113404A1 (en) Optimum code generation method and compiler device for multiprocessor
US9164769B2 (en) Analyzing data flow graph to detect data for copying from central register file to local register file used in different execution modes in reconfigurable processing array
US8417918B2 (en) Reconfigurable processor with designated processing elements and reserved portion of register file for interrupt processing
US6675289B1 (en) System and method for executing hybridized code on a dynamically configurable hardware environment
EP2796990A2 (en) Apparatus and method for supporting multi-modes of processor
US20140317626A1 (en) Processor for batch thread processing, batch thread processing method using the same, and code generation apparatus for batch thread processing
JPH06131181A (en) Hierarchical parallel processing type central processing unit
US20060200648A1 (en) High-level language processor apparatus and method
WO2007034936A1 (en) Processor, compiler apparatus and program
JP2005508554A (en) Method and apparatus for calculating and processing data using data manipulation
JP2005508029A (en) Program conversion method for reconfigurable architecture
JP2013161484A (en) Reconfigurable computing apparatus, first memory controller and second memory controller therefor, and method of processing trace data for debugging therefor
JP2006018411A (en) Processor
KR20090116511A (en) Data processing circuit
JP2004021890A (en) Data processor
Paulino et al. Architecture for transparent binary acceleration of loops with memory accesses
JP4208919B2 (en) Activation code generation method
JP2002318689A (en) Vliw processor for executing instruction with delay specification of resource use cycle and method for generating delay specification instruction
JP2006351047A (en) Data processor and method, computer program, information storage medium, parallel arithmetic unit, and data processing system
JP2764358B2 (en) Data driven information processor

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 06810488

Country of ref document: EP

Kind code of ref document: A1