Claims Analysis
Total Claims: 14
Claim 1
Independent Claim
150 words
An apparatus for detecting whether iterations of a program loop can be processed in parallel, wherein the program loop includes at least one of a conditional branch statement, a variable appended with a subscript which is determined by a calculation, and a subroutine call statement, the apparatus comprising: simulation means for simulating each iteration of the program loop; variable storage means for storing values of variables, which are defined in program statements executed during simulation of the iterations, each value being stored with information showing both a location in the program where the value of the variable is defined and a number of the simulated iteration in which the variable is defined; and judgment means for judging that parallel processing is possible when, for each simulated iteration, variables whose values are referred to in program statements of a current iteration are defined in preceding program statements within the current iteration.
Claim 2
Independent Claim
150 words
An apparatus for detecting whether iterations of a program loop can be processed in parallel, wherein the program loop includes at least one of a conditional branch statement, a variable appended with a subscript which is determined by a calculation, and a subroutine call statement, the apparatus comprising: simulation means for simulating each iteration of the program loop; variable storage means for storing values of variables, which are defined in program statements executed during simulation of the iterations, each value being stored with information showing both a location in the program where the value of the variable is defined and a number of the simulated iteration in which the variable is defined; and judgment means for judging that parallel processing is possible when, for each simulated iteration, variables whose values are referred to in program statements of a current iteration are defined in preceding program statements within the current iteration.
Claim 3
Dependent Claim
152 words
A parallelism possibility detecting method for detecting whether a program having a plurality of program statements including an iterative loop can be processed in parallel, wherein the program ..loop includes at least one of a conditional branch statement, a variable appended with a subscript which is determined by a calculation, and a subroutine call statement, the method comprising the following steps: simulating each iteration of the loop in the program; storing values of variables that are defined by program statements executed during simulation of the iterations, each value being stored with information showing a location in the program where the value of the variable is defined and the simulated iteration number in which the variable is defined; and judging that parallel processing is possible when, for each simulated iteration, variables whose values are referred to in program statements of a current iteration are defined in preceding program statements within he current iteration.
Claim 4
Dependent Claim
152 words
A parallelism possibility detecting method for detecting whether a program having a plurality of program statements including an iterative loop can be processed in parallel, wherein the program ..loop includes at least one of a conditional branch statement, a variable appended with a subscript which is determined by a calculation, and a subroutine call statement, the method comprising the following steps: simulating each iteration of the loop in the program; storing values of variables that are defined by program statements executed during simulation of the iterations, each value being stored with information showing a location in the program where the value of the variable is defined and the simulated iteration number in which the variable is defined; and judging that parallel processing is possible when, for each simulated iteration, variables whose values are referred to in program statements of a current iteration are defined in preceding program statements within he current iteration.
Claim 5
Dependent Claim
190 words
A program translation apparatus for generating a program applicable to parallel processing if a possibility of executing the program in parallel is detected, wherein the program loop includes at least one of a conditional branch statement, a variable appended with a subscript which is determined by a calculation, and a subroutine call statement, the program translation apparatus comprising: simulation means for simulating each iteration of the program loop; variable storage means for storing values of variables, which are defined in program statements executed during simulation of the iterations, each value being stored with information showing both a location in the program where in the program the value of the variable is defined and a number of the simulated iteration in which the variable is defined; judgment means for judging that parallel processing is possible when, for each simulated iteration, variables whose values are referred to in program statements of a current iteration are defined in preceding program statements within the current iteration; and program generation means for generating the program applicable to parallel processing when it is judged by the judgment means that parallel processing of the program is possible.
Claim 6
Dependent Claim
190 words
A program translation apparatus for generating a program applicable to parallel processing if a possibility of executing the program in parallel is detected, wherein the program loop includes at least one of a conditional branch statement, a variable appended with a subscript which is determined by a calculation, and a subroutine call statement, the program translation apparatus comprising: simulation means for simulating each iteration of the program loop; variable storage means for storing values of variables, which are defined in program statements executed during simulation of the iterations, each value being stored with information showing both a location in the program where in the program the value of the variable is defined and a number of the simulated iteration in which the variable is defined; judgment means for judging that parallel processing is possible when, for each simulated iteration, variables whose values are referred to in program statements of a current iteration are defined in preceding program statements within the current iteration; and program generation means for generating the program applicable to parallel processing when it is judged by the judgment means that parallel processing of the program is possible.
Claim 7
Dependent Claim
210 words
A compiler for receiving a source program and generating an object program that is applicable to parallel processing, comprising: an input unit for inputting the source program; a detector for detecting a loop in the source program, and for further detecting at least one of an array, a subroutine, and a variable in the source program; a memory for storing information relating to the detected items; simulation means for simulating execution of the source program by referring to the stored information, the simulation means registering variables on left sides of instructions in the memory as the instructions are executed during each iteration of the program loop; judgement means for judging whether variables on right sides of instructions have been previously registered, the judgement occurring at the simulation of each instruction, the judgement means determining that parallel processing is possible when all variables on the right sides of instructions for each iteration have been registered for each iteration; and an object program generation unit for generating the object program that is applicable to parallel processing when parallel processing of the loop is judged to be possible, and for generating a general object program that is not applicable to parallel processing if parallel processing of the loop is judged to be impossible.
Claim 8
Dependent Claim
210 words
A compiler for receiving a source program and generating an object program that is applicable to parallel processing, comprising: an input unit for inputting the source program; a detector for detecting a loop in the source program, and for further detecting at least one of an array, a subroutine, and a variable in the source program; a memory for storing information relating to the detected items; simulation means for simulating execution of the source program by referring to the stored information, the simulation means registering variables on left sides of instructions in the memory as the instructions are executed during each iteration of the program loop; judgement means for judging whether variables on right sides of instructions have been previously registered, the judgement occurring at the simulation of each instruction, the judgement means determining that parallel processing is possible when all variables on the right sides of instructions for each iteration have been registered for each iteration; and an object program generation unit for generating the object program that is applicable to parallel processing when parallel processing of the loop is judged to be possible, and for generating a general object program that is not applicable to parallel processing if parallel processing of the loop is judged to be impossible.
Claim 9
Independent Claim
150 words
An apparatus for determining whether a plurality of iterations of a program loop can be processed in parallel, each iteration of the program loop requiring execution of a segment of instructions within the program loop, the apparatus comprising: simulation means for executing the segment of instructions once for each iteration of the program loop to thereby simulate execution of the program loop, the simulation means registering variables on left sides of instructions, and corresponding iteration numbers, as the instructions are executed during each iteration of the program loop; and judgement means for judging whether variables on right sides of instructions have been previously registered, the judgement occurring at the simulation of each instruction, the judgement means further determining that the plurality of iterations of the program loop can be processed in parallel when all variables on the right sides of instructions for each iteration have been registered for each iteration.
Claim 10
Independent Claim
150 words
An apparatus for determining whether a plurality of iterations of a program loop can be processed in parallel, each iteration of the program loop requiring execution of a segment of instructions within the program loop, the apparatus comprising: simulation means for executing the segment of instructions once for each iteration of the program loop to thereby simulate execution of the program loop, the simulation means registering variables on left sides of instructions, and corresponding iteration numbers, as the instructions are executed during each iteration of the program loop; and judgement means for judging whether variables on right sides of instructions have been previously registered, the judgement occurring at the simulation of each instruction, the judgement means further determining that the plurality of iterations of the program loop can be processed in parallel when all variables on the right sides of instructions for each iteration have been registered for each iteration.
Claim 11
Independent Claim
200 words
An apparatus for determining whether a plurality of iterations of a program loop can be processed in parallel, each iteration of the program loop requiring execution of a segment of instructions within the program loop, the apparatus comprising: executing means for executing the segment of instructions once for each iteration of the program loop to thereby simulate execution of the program loop; registering means for registering variables on left sides of instructions as the instructions are executed during each iteration of the program loop, each variable being registered with an iteration number indicating the iteration during which the instruction was executed; data-dependence judgement means for judging whether variables on right sides of instructions have been previously registered, the judging occurring at the simulation of each instruction; and parallelism judgement means for judging that the plurality of iterations of the program loop can be processed in parallel when all variables on the right sides of instructions for each iteration have been registered for each iteration, and for judging that the plurality of iterations of the program loop cannot be processed in parallel when at least one variable on the right side of an instruction has not been registered for an iteration.
Claim 12
Independent Claim
200 words
An apparatus for determining whether a plurality of iterations of a program loop can be processed in parallel, each iteration of the program loop requiring execution of a segment of instructions within the program loop, the apparatus comprising: executing means for executing the segment of instructions once for each iteration of the program loop to thereby simulate execution of the program loop; registering means for registering variables on left sides of instructions as the instructions are executed during each iteration of the program loop, each variable being registered with an iteration number indicating the iteration during which the instruction was executed; data-dependence judgement means for judging whether variables on right sides of instructions have been previously registered, the judging occurring at the simulation of each instruction; and parallelism judgement means for judging that the plurality of iterations of the program loop can be processed in parallel when all variables on the right sides of instructions for each iteration have been registered for each iteration, and for judging that the plurality of iterations of the program loop cannot be processed in parallel when at least one variable on the right side of an instruction has not been registered for an iteration.
Claim 13
Dependent Claim
224 words
A compiler for receiving a source program and generating an object program that is applicable to parallel processing, comprising: an input unit for inputting the source program; a detector for detecting a loop in the source program, and for further detecting at least one of an array, a subroutine, and a variable in the source program; a memory for storing information relating to the detected items; simulation means for simulating execution of the source program by referring to the stored information, the simulation means registering variables that are defined by program statements in the memory as the instructions are executed during each iteration of the program loop, each variable being registered with information on a number of the simulated iteration; judgement means for judging whether variables on right sides of instructions have been previously registered, the judgement occurring at the simulation of each instruction, the judgement means determining that parallel processing is possible when all variables on the right sides of instructions for each iteration have been registered for each iteration; and an object program generation unit for generating the object program that is applicable to parallel processing when parallel processing of the loop is judged to be possible, and for generating a general object program that is not applicable to parallel processing if parallel processing of the loop is judged to be impossible.
Claim 14
Dependent Claim
224 words
A compiler for receiving a source program and generating an object program that is applicable to parallel processing, comprising: an input unit for inputting the source program; a detector for detecting a loop in the source program, and for further detecting at least one of an array, a subroutine, and a variable in the source program; a memory for storing information relating to the detected items; simulation means for simulating execution of the source program by referring to the stored information, the simulation means registering variables that are defined by program statements in the memory as the instructions are executed during each iteration of the program loop, each variable being registered with information on a number of the simulated iteration; judgement means for judging whether variables on right sides of instructions have been previously registered, the judgement occurring at the simulation of each instruction, the judgement means determining that parallel processing is possible when all variables on the right sides of instructions for each iteration have been registered for each iteration; and an object program generation unit for generating the object program that is applicable to parallel processing when parallel processing of the loop is judged to be possible, and for generating a general object program that is not applicable to parallel processing if parallel processing of the loop is judged to be impossible.