IP Library Granted Patent US 8,510,529
Granted Patent B2
US 8,510,529 · App. 12/888,614 · Granted Aug 13, 2013

Method for generating program and method for operating system

Inventors: Takahisa Suzuki (Kawasaki, JP); Hiromasa Yamauchi (Kawasaki, JP); Hideo Miyake (Yokohama, JP); Makiko Ito (Kawasaki, JP)
Assignees: Fujitsu Limited; Fujitsu Semiconductor Limited
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,510,529
App. No.
12/888,614
Granted
Aug 13, 2013
Kind
B2
Abstract

An information processing apparatus sequentially selects a function whose execution frequency is high as a selected function that is to be stored in an internal memory, in a source program having a hierarchy structure. The information processing apparatus allocates the selected function to a memory area of the internal memory, allocates a function that is not the selected function and is called from the selected function to an area close to the memory area of the internal memory, and generates an internal load module. The information processing apparatus allocates a remaining function to an external memory coupled to a processor and generates an external load module. Then, a program executed by the processor having the internal memory is generated.

Claims (67)

1. A method for generating a program generated by an information processing apparatus and executed by a processor including an internal memory in which the program is stored, the method comprising:

executing a source program including a plurality of functions having a hierarchy structure, and sequentially selecting a function whose execution frequency is higher than execution frequencies of other functions as a selected function that is to be stored in the internal memory;

allocating the selected function to a memory area of the internal memory, allocating a function that is not the selected function and is called from the selected function to an area close to the memory area of the internal memory, and generating an internal load module; and

allocating a remaining function to an external memory coupled to the processor and generating an external load module.

2. The method according to claim 1 , wherein

at least one of the external load module and the internal load module includes a management program copying the selected function to the internal memory and allocating the function that is not the selected function and is called from the selected function to the area close to the memory area of the internal memory by using an address conversion function of the processor, in the internal load module loaded to a memory area of the external memory.

3. The method according to claim 1 , wherein:

the information processing apparatus sequentially selects the selected function that is to be stored in the internal memory for each of function groups located under a main routine of the source program;

the information processing apparatus generates an internal load module for each of the function groups; and

the external load module includes a management program copying the selected function to the internal memory before functions in the internal load modules of the function groups loaded to a memory area of the external memory are executed by the processor.

4. The method according to claim 3 , wherein:

a number of the function groups is three or more;

a size of the selected function is equal to or less than a half of a memory capacity of the internal memory; and

the management program has a function of copying the selected function in an internal load module corresponding to one of the function groups and the selected function corresponding to another one of the function groups to the memory area of the internal memory, and replacing a selected function not being executed on the internal memory by a selected function in another internal load module.

5. The method according to claim 3 , wherein

the information processing apparatus selects a common function as the selected function once, the common function being called from a plurality of functions in each of the function groups.

6. The method according to claim 3 , wherein

the information processing apparatus selects a common function called from a plurality of the function groups and includes the common function being selected in the external load module.

7. A method for generating a program generated by an information processing apparatus and executed by a processor including an internal memory and a cache memory in which the program is stored, the method comprising:

executing a source program including a plurality of functions having a hierarchy structure, and sequentially selecting a function whose cache miss penalty is larger than cache miss penalties of other functions as a selected function that is to be stored in the internal memory;

allocating the selected function to a memory area of the internal memory, allocating a function that is not the selected function and is called from the selected function to an area close to the memory area of the internal memory, and generating an internal load module; and

allocating a remaining function to an external memory coupled to the processor and generating an external load module.

8. A method for generating a program generated by an information processing apparatus and executed by a plurality of processors, the method comprising:

executing a source program including a plurality of functions having a hierarchy structure and sequentially selecting a function whose execution frequency is higher than execution frequencies of other functions as a selected function that is to be stored in an internal memory of one of the processors;

allocating the selected function to a memory area of the internal memory, allocating a function that is not the selected function and is called from the selected function to an area close to the memory area of the internal memory, and generating an internal load module that is to be executed by one of the processors having the internal memory; and

allocating a remaining function to an external memory coupled to the processors and generating an external load module that is to be executed by another one of the processors other than the one of the processors executing the internal load module.

9. A method for operating a system including a first processor and at least one second processor including an internal memory in which a program including a plurality of functions having a hierarchy structure is stored, the method comprising:

holding logs of functions being executed every time the second processor executes the program in response to a start instruction from the first processor;

selecting by the first processor a function whose execution frequency is higher than execution frequencies of other functions based on the logs of the functions being held, and generating by the first processor a memory image that is to be copied to the internal memory by using the function being selected, prior to a next start instruction from the first processor; and

copying a newly selected function to the internal memory by the second processor in response to the start instruction from the first processor.

10. The method according to claim 9 , wherein:

the generating of the memory image is prohibited when the second processor currently executing the program is same as a second processor previously executing the program and when the function with a high execution frequency selected based on the logs of the functions being held is same as a function selected at a time the program is previously executed; and

the second processor copies, to the internal memory, a memory image generated at the time the program is previously executed, in response to the start instruction from the first processor.

11. A method for operating a system including a first processor and at least one second processor including an internal memory in which a program including a plurality of functions having a hierarchy structure is stored, the method comprising:

holding logs of functions being executed every time the second processor executes the program in response to a start instruction from the first processor;

expecting an idle time of the second processor by the first processor;

when the idle time being expected is longer than a first period, selecting by the second processor a function whose execution frequency is higher than execution frequencies of other functions based on the logs of the functions being held and generating by the second processor a memory image that is to be copied to the internal memory by using the function being selected during the idle time, and copying the memory image being generated to the internal memory by the second processor in response to the start instruction from the first processor; and

when the idle time being expected is equal to or less than the first period, selecting by the second processor the function whose execution frequency is higher than execution frequencies of other functions based on the logs of the functions being held during the idle time, generating by the second processor the memory image that is to be copied to the internal memory by using the function being selected in response to the start instruction from the first processor, and copying the memory image being generated to the internal memory by the second processor.

12. The method according to claim 11 , wherein:

when the idle time being expected is longer than a second period that is longer than the first period, when the second processor currently executing the program is same as a second processor previously executing the program and when the function with a high execution frequency selected based on the logs of the functions being held is same as a function selected at a time the program is previously executed,

the generating of the memory image is prohibited, and

a memory image generated when the program is previously executed is copied to the internal memory by the second processor currently executing the program in response to the start instruction from the first processor.

13. The method according to claim 12 , wherein

when the idle time being expected is longer than the first period and equal to or less than the second period, when the second processor currently executing the program is same as the second processor previously executing the program and when an effective use rate indicating a degree of matching between the function with the high execution frequency selected based on the logs of the functions being held and the function selected at the time the program is previously executed is higher than a preset threshold value,

the generating of the memory image is prohibited, and

the memory image generated when the program is previously executed is copied to the internal memory by the second processor currently executing the program in response to the start instruction from the first processor.

14. The method according to claim 11 , wherein

when the idle time being expected is equal to or less than a third period that is shorter than the first period, the selecting of the function whose execution frequency is higher than execution frequencies of other functions and the generating of the memory image are prohibited during the idle time, and

in response to the start instruction from the first processor, the function with the high execution frequency is selected by the second processor currently executing the program, the memory image is generated by the second processor currently executing the program, and the memory image being generated is copied to the internal memory by the second processor currently executing the program.

15. An information processing apparatus generating a program executed by a processor including an internal memory in which the program is stored, the apparatus comprising:

a function selection unit executing a source program including a plurality of functions having a hierarchy structure, and sequentially selecting a function whose execution frequency is higher than execution frequencies of other functions as a selected function that is to be stored in the internal memory; and

a program generation unit allocating the selected function to a memory area of the internal memory, allocating a function that is not the selected function and is called from the selected function to an area close to the memory area of the internal memory and generating an internal load module, and allocating a remaining function to an external memory coupled to the processor and generating an external load module.

16. A system comprising:

a first processor;

at least one second processor including an internal memory in which a program including a plurality of functions having a hierarchy structure is stored; and

a log buffer holding logs of functions executed by the second processor, wherein:

the logs of the functions being executed are held every time the second processor executes the program in response to a start instruction from the first processor;

the first processor selects a function whose execution frequency is higher than execution frequencies of other functions based on the logs of the functions being held and the first processor generates a memory image that is to be copied to the internal memory by using the function being selected, prior to a next start instruction from the first processor; and

the second processor copies a newly selected function to the internal memory in response to the start instruction from the first processor.

17. A system comprising:

a first processor;

at least one second processor including an internal memory in which a program including a plurality of functions having a hierarchy structure is stored; and

a log buffer holding logs of functions executed by the second processor, wherein:

the logs of the functions being executed are held every time the second processor executes the program in response to a start instruction from the first processor;

the first processor expects an idle time of the second processor;

when the idle time being expected is longer than a first period, the second processor selects a function whose execution frequency is higher than execution frequencies of other functions based on the logs of the functions being held and generates a memory image that is to be copied to the internal memory by using the function being selected during the idle time, and the second processor copies the memory image being generated to the internal memory in response to the start instruction from the first processor; and

when the idle time being expected is equal to or less than the first period, the second processor selects the function whose execution frequency is higher than execution frequencies of other functions based on the logs of the functions being held during the idle time, and the second processor generates the memory image that is to be copied to the internal memory by using the function being selected and copies the memory image being generated to the internal memory in response to the start instruction from the first processor.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2015
From: FUJITSU SEMICONDUCTOR LIMITED
To: SOCIONEXT INC.
Reel/Frame 035498/0324 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2011
From: SUZUKI, TAKAHISA; MIYAKE, HIDEO; ITO, MAKIKO; YAMAUCHI, HIORMASA
To: FUJITSU LIMITED; FUJITSU SEMICONDUCTOR LIMITED
Reel/Frame 026062/0205 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 24, 2010
From: SUZUKI, TAKAHISA; YAMAUCHI, HIROMASA; MIYAKE, HIDEO; ITO, MAKIKO
To: FUJITSU LIMITED; FUJITSU SEMICONDUCTOR LIMITED
Reel/Frame 025038/0219 →
Priority Claims (1)
JP 2009-224772 · Sep 29, 2009 · national
Continuity (1)
Related Publication 20110078378A1 · Mar 31, 2011