Patent ID: 7921281
Filing Date: 2011-04-05
Classification: G06F

Abstract:
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 plurality of programs, the plurality of programs stored in a computer readable storage media, the processor comprising: a plurality 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 selection target every time a first predetermined period elapses; a restoring unit restoring, every time the switching is performed, one of the plurality of register value groups into one of the plurality of register groups that is not selected as the execution target register group; a saving unit saving, prior to the restoring, register values in one of the plurality of register groups 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, the one of the plurality of register value groups to be restored, and performs the restoring; a first detecting unit operable to detect an occurrence of a suspend-cause that results in the program execution being suspended; a second detecting unit operable to detect a cancellation of the suspend-cause, wherein when the occurrence of a suspend-cause relating to a program for execution is detected, the program execution unit relinquishes, until the suspend-cause is cancelled, an execution period to be allotted for execution of the program, there is a plurality of the suspend-causes, and the suspend-cause effective as a trigger of the relinquishing is unique for each program, and the program execution unit only performs the relinquishing when an effective suspend-cause of a currently executed program occurs; a second obtaining unit obtaining suspend information that corresponds (i) information specifying one of the plurality of suspend-causes with (ii) information showing whether the specified suspend-cause has occurred, wherein the register value groups each include setting information that corresponds (i) information specifying one of the plurality of suspend-causes with (ii) information showing whether the specified suspend-cause is effective, and the program execution unit refers comparatively to the suspend information and the setting information, and judges whether to perform the relinquishing.