Patent ID: 7424578
Filing Date: 2008-09-09
Classification: G06F

Abstract:
1. A computer-readable storage medium having a compiler program stored thereon, the compiler program for converting a source program, having predetermined execution groups and written in a high-level language, into an executable program, the compiler program causing a computer to execute a method comprising: extracting an address of an instruction or data to be prefetched from a main memory to a cache memory, for each of the predetermined execution groups in the source program, and generating an address list that lists the address of each instruction or data to be prefetched; creating a prefetch thread by (i) analyzing a control structure of each of the predetermined execution groups in the source program, (ii) selecting, from the address list, the address of the instruction or data to be prefetched according to a result of said analyzing of the control structure, and (iii) creating the prefetch thread for executing a prefetch by extracting the instruction or data to be prefetched that is stored in a location of the main memory specified by the selected address; determining a prefetch start time, which is a time at which the prefetch is to be executed, based on a total time calculated by combining (i) an execution time required for the instruction of a current predetermined execution group to execute and (ii) a time related to the execution of the prefetch of the instruction or data from a next predetermined execution group, the prefetch start time being determined to allow sufficient time for the execution of the prefetch to complete before the execution of the instruction of the next predetermined execution group begins; inserting into the source program, at the prefetch start time determined by said determining of the prefetch start time, a process for activating the prefetch thread for executing the prefetch by prefetching the instruction or data of the next predetermined execution group; and converting the prefetch thread and the source program into the executable program.