IP Library Granted Patent US 8,006,076
Granted Patent B2
US 8,006,076 · App. 12/110,491 · Granted Aug 23, 2011

Processor and program execution method capable of efficient program execution

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,006,076
App. No.
12/110,491
Granted
Aug 23, 2011
Kind
B2
Abstract

A processor for sequentially executing a plurality of programs using a plurality of register value groups stored in a memory that correspond one-to-one with the programs. The processor includes a plurality of register groups; a select/switch unit operable to select one of the plurality of register groups as an execution target register group on which a program execution is based, and to switch the selection target every time a first predetermined period elapses; a restoring unit operable to restore, every time the switching is performed, one of the register value groups into one of the register groups that is not selected as the execution target register group; a saving unit operable to save, prior to the restoring, register values in the register group targeted for restoring, by overwriting a register value group in the memory that corresponds to the register values; and a program execution unit operable to execute, every time the switching is performed, a program corresponding to a register value group in the execution target register group.

Claims (72)

1. A processor for sequentially executing a plurality of programs using a plurality of register value groups stored in a memory that correspond one-to-one with the programs, the programs stored in a computer readable storage media, the processor comprising:

a plurality of register groups;

a select/switch unit selecting one of the plurality of register groups as an execution target register group on which a program execution is based, and to switch the execution target register group every time a first predetermined period elapses;

a restoring unit restoring, every time the switching is performed, one of the register value groups into one of the register groups that is not selected as the execution target register group;

a saving unit saving, prior to the restoring, register values in the register group targeted for restoring, by overwriting a register value group in the memory that corresponds to the register values;

a program execution unit executing, every time the switching is performed, a program corresponding to a register value group in the execution target register group, wherein the first predetermined period is specified, based on table information in which a plurality of count values are arranged in an order, every time the selection is performed, using the count values in the order,

the program execution unit starts the executing when the select/switch unit performs a switch operation,

a first obtaining unit obtaining sequence information that shows a sequence of the register value groups corresponding to the programs, wherein

the restoring unit determines, based on the sequence information, a register value group to be restored, and performs the restoring,

the first predetermined period is determined such that, if the restoring is performed on all of the register value groups in the sequence shown in the sequence information, a total time period that the restored register groups are selected as the execution target register group is within a second predetermined period, and

the determination of the first determined period is performed by adjusting each count value in the table information.

2. The processor of claim 1 , wherein

the sequence information is a table in which identification information unique to each register value group is arrayed in a predetermined order, and

the sequence is shown by the predetermined order of the arrayed identification information.

3. The processor of claim 2 , wherein

the table of the sequence information includes identification information that is identical,

the identical identification information is arrayed so as to be dispersed throughout the array, and

a number of pieces of identical identification information in the array is unique for each program corresponding to a register value group specified by a piece of identification information.

4. The processor of claim 2 , wherein

the sequence information is a table in which the identification information unique to each register value group has attached pointers that point to other identification information, and

the sequence is shown by following the pointers.

5. The processor of claim 3 , wherein

the plurality of programs includes a management program that is for judging whether the table of the sequence information requires changing, and for changing the table when required, and

only one piece of identification information specifies a location of a register value group corresponding to the management program.

6. The processor of claim 3 , wherein

the plurality of programs includes an image processing program for executing image processing, and

the number of pieces of identification information in the array that specify a location of a register value group corresponding to the image processing program is greater than that of the other programs which are not the image processing program.

7. The processor of claim 3 , wherein

the identification information is address values that show storage locations of the register value groups, and

the restoring unit specifies, based on the address values, a location of a register value group for restoring, and performs the restoring.

8. The processor of claim 5 , wherein

the first predetermined period is unique for each program,

each piece of identification information has appended a piece of time period information that shows the unique time period of a program corresponding to a register value group specified by the each piece of identification information, and

the management program performs the changing such that a total of the unique time periods is within the second predetermined period.

9. The processor of claim 8 , wherein

when judged during execution of the management program that the table requires changing, the program execution unit generates a dummy table showing a state of the table after the changing, and performs the changing by replacing the table with the dummy table.

10. A processor for sequentially executing a plurality of programs using a plurality of register value groups stored in a memory that correspond one-to-one with the programs, the programs stored in a computer readable storage media, the processor comprising:

a plurality of register groups;

a select/switch unit selecting one of the plurality of register groups as an execution target register group on which a program execution is based, and to switch the execution target register group every time a first predetermined period elapses;

a restoring unit restoring, every time the switching is performed, one of the register value groups into one of the register groups that is not selected as the execution target register group;

a saving unit saving, prior to the restoring, register values in the register group targeted for restoring, by overwriting a register value group in the memory that corresponds to the register values;

a program execution unit executing, every time the switching is performed, a program corresponding to a register value group in the execution target register group, wherein the first predetermined period is specified, based on table information in which a plurality of count values are arranged in an order, every time the selection is performed, using the count values in the order,

the program execution unit starts the executing when the select/switch unit performs a switch operation,

a first obtaining unit obtaining sequence information that shows a sequence of the register value groups corresponding to the programs, wherein

the restoring unit determines, based on the sequence information, a register value group to be restored, and performs the restoring,

the first predetermined period is determined such that, if the restoring is performed on all of the register value groups in the sequence shown in the sequence information, a total time period that the restored register groups are selected as the execution target register group is within a second predetermined period, and

the determination of the first determined period is performed by adjusting a number of pieces of sequence information that indicate different orders for a same register group.

11. The processor of claim 10 , wherein

the sequence information is a table in which identification information unique to each register value group is arrayed in a predetermined order, and

the sequence is shown by the predetermined order of the arrayed identification information.

12. The processor of claim 11 , wherein

the table of the sequence information includes identification information that is identical,

the identical identification information is arrayed so as to be dispersed throughout the table, and

a number of pieces of arrayed identical identification information is unique for each program corresponding to a register value group specified by a piece of identification information.

13. The processor of claim 11 , wherein

the sequence information is a table in which the identification information unique to each register value group has attached pointers that point to other identification information, and

the sequence is shown by following the pointers.

14. The processor of claim 12 , wherein

the plurality of programs includes a management program that is for judging whether the table of the sequence information requires changing, and for changing the table when required, and

only one piece of identification information specifies a location of a register value group corresponding to the management program.

15. The processor of claim 12 , wherein

the plurality of programs includes an image processing program for executing image processing, and

the number of pieces of identification information in the array that specify a location of a register value group corresponding to the image processing program is greater than that of the other programs which are not the image processing program.

16. The processor of claim 12 , wherein

the identification information is address values that show storage locations of the register value groups, and

the restoring unit specifies, based on the address values, a location of a register value group for restoring, and performs the restoring.

17. The processor of claim 14 , wherein

the first predetermined period is unique for each program,

each piece of identification information has appended a piece of time period information that shows the unique time period of a program corresponding to a register value group specified by the each piece of identification information, and

the management program performs the changing such that a total of the unique time periods is within the second predetermined period.

18. The processor of claim 17 , wherein

when judged during execution of the management program that the table requires changing, the program execution unit generates a dummy table showing a state of the table after the changing, and performs the changing by replacing the table with the dummy table.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2021
From: SOCIONEXT INC.
To: BEIJING ESWIN COMPUTING TECHNOLOGY CO., LTD.
Reel/Frame 055348/0229 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2015
From: PANASONIC CORPORATION
To: SOCIONEXT INC.
Reel/Frame 035294/0942 →