IP Library Granted Patent US 8,719,827
Granted Patent B2
US 8,719,827 · App. 13/179,614 · Granted May 6, 2014

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,719,827
App. No.
13/179,614
Granted
May 6, 2014
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 (65)

1. A processor for executing a plurality of tasks by switching a timeslot, the processor comprising:

a first table in which tasks are defined in correspondence with a plurality of timeslots, each timeslot of the plurality of timeslots corresponding to a plurality of the tasks as candidate tasks to be executed in the timeslot, the first table including option information comprising sleep option for at least one of the plurality of timeslots;

a second table in which states are shown in correspondence with the tasks in the plurality of timeslots, and

a scheduling control unit configured to select a task by referring to the first table and the second table in correspondence with switching of timeslot;

wherein a timeslot is switched every time a predetermined period elapses, and

at a time when a certain timeslot starts, the scheduling control unit selects the sleep option for the certain timeslot based upon the option information defined in the first table for the certain timeslot, even if the second table shows a ready task exists during the certain timeslot, and then the processor is put into a sleep mode instead of executing the ready task.

2. The processor of claim 1 , wherein a sleeping time period for the certain timeslot spans a whole of the certain timeslot.

3. The processor of claim 1 , wherein the scheduling control unit is operable to select the sleep option for a whole of the certain timeslot, even if the second table shows a ready task exists during the certain timeslot.

4. The processor of claim 1 , further comprising:

a processing execution unit having a CPU for executing the tasks, wherein

when the scheduling control unit selects the sleep option,

(a) a clock-pulse supply to the processing execution unit is blocked,

(b) a frequency of a clock-pulse supply to the processing execution unit is reduced,

(c) a power supply to the processing execution unit is blocked, or

(d) a voltage of a power supply to the processing execution unit is reduced.

5. The processor of claim 1 , wherein

in the first table, if a plurality of tasks are defined in correspondence with a particular timeslot, priority levels of the plurality of tasks are defined, and

one or more tasks among the plurality of tasks are selected to be executed within the particular timeslot in accordance with the priority levels.

6. The processor of claim 1 , wherein the predetermined period is variable.

7. The processor of claim 6 , wherein the predetermined period is variable for each timeslot.

8. The processor of claim 1 , further comprising:

a cycle counter, wherein

the timeslot is switched by a signal which is output from the cycle counter and indicates that the predetermined period has elapsed.

9. The processor of claim 8 , wherein

the cycle counter operates while an interrupt processing is performed.

10. The processor of claim 9 , wherein

a value of the cycle counter while the interrupt processing is performed is subtracted from the predetermined period in the next execution of the interrupted task.

11. The processor of claim 8 , wherein

the cycle counter stops while an interrupt processing is performed.

12. The processor of claim 1 , wherein

in the first table, if first and second tasks are defined in correspondence with a particular timeslot, priority levels of the first and second tasks are defined, and

either one task having higher priority level among the first and second tasks is selected and executed, and then another task having lower priority level among the first and second tasks is selected and executed within the particular timeslot.

13. A processor for executing a plurality of tasks by switching a timeslot, the processor comprising:

a first table in which tasks are defined in correspondence with a plurality of timeslots, each timeslot of the plurality of timeslots corresponding to a plurality of the tasks as candidate tasks to be executed in the timeslot, the first table including option information comprising sleep option for at least one of the plurality of timeslots;

a second table in which states are shown in correspondence with the tasks in the plurality of timeslots, and

a scheduling control unit configured to select a task by referring to the first table and the second table in correspondence with switching of timeslot;

wherein a timeslot is switched every time a predetermined period elapses, and

at a time when a task execution stops during the certain timeslot, the scheduling control unit is selects the sleep option for the certain timeslot based upon the option information defined in the first table for the certain timeslot, even if the second table shows a ready task exists during the certain timeslot, and then the processor is put into a sleep mode instead of executing the ready task.

14. The processor of claim 13 , wherein a sleeping time period for the certain timeslot spans a part of the certain timeslot.

15. The processor of claim 13 , wherein

the scheduling control unit is operable to select the sleep option for a remaining part of the certain timeslot, even if the second table shows a ready task exists during the certain timeslot.

16. The processor of claim 13 , further comprising:

a processing execution unit having a CPU for executing the tasks, wherein

when the scheduling control unit selects the sleep option,

(a) a clock-pulse supply to the processing execution unit is blocked,

(b) a frequency of a clock-pulse supply to the processing execution unit is reduced,

(c) a power supply to the processing execution unit is blocked, or

(d) a voltage of a power supply to the processing execution unit is reduced.

17. The processor of claim 13 , wherein

in the first table, if a plurality of tasks are defined in correspondence with a particular timeslot, priority levels of the plurality of tasks are defined, and

one or more tasks among the plurality of tasks are selected to be executed within the particular timeslot in accordance with the priority levels.

18. The processor of claim 13 , wherein the predetermined period is variable.

19. The processor of claim 18 , wherein the predetermined period is variable for each timeslot.

20. The processor of claim 13 , further comprising:

a cycle counter, wherein

the timeslot is switched by a signal which is output from the cycle counter and indicates that the predetermined period has elapsed.

21. The processor of claim 20 , wherein

the cycle counter operates while an interrupt processing is performed.

22. The processor of claim 21 , wherein

a value of the cycle counter while the interrupt processing is performed is subtracted from the predetermined period in the next execution of the interrupted task.

23. The processor of claim 20 , wherein

the cycle counter stops while an interrupt processing is performed.

24. The processor of claim 13 , wherein

in the first table, if first and second tasks are defined in correspondence with a particular timeslot, priority levels of the first and second tasks are defined, and

either one task having higher priority level among the first and second tasks is selected and executed, and then another task having lower priority level among the first and second tasks is selected and executed within the particular timeslot.

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 →