Microcontroller, data processing system and task switching control method
First Claim
1. A microcontroller comprising:
- (a) a processor for sequentially executing a plurality of tasks in accordance with programmed instructions, said processor operating in conjunction with a plurality of hardware engines;
(b) a task management table for storing task management information including (1) state information representative of the execution status of each said task, (ii) priority information representative of the execution priority of each said task, and (iii) allocation information representative of the allocation of said plurality of tasks to said plurality of hardware engines; and
(c) a scheduler for allowing, on the basis of said task management information, said processor to switch between tasks, wherein each said plurality of hardware engines starts execution of a data process upon the activation by said processor and, if said data process is terminated, informs said scheduler of the termination of execution, and said scheduler allows said processor to switch between tasks if the termination of execution of any one of said hardware engines is detected.
2 Assignments
0 Petitions
Accused Products
Abstract
A processor, a task management table, and a scheduler are built in a microcontroller. The processor sequentially runs a plurality of tasks for controlling hardware engines (cores) respectively allocated thereto. The task management table stores task management information which includes state information (ST INFO) representative of the execution state of each task, priority information (PRI INFO) representative of the execution priority of each task, and core identification information (CID INFO) representative of the allocation of the tasks to the cores. The scheduler allows the processor to switch between tasks on the basis of the task management information when a given instruction is decoded or when the execution of any one of the cores is terminated.
76 Citations
15 Claims
-
1. A microcontroller comprising:
-
(a) a processor for sequentially executing a plurality of tasks in accordance with programmed instructions, said processor operating in conjunction with a plurality of hardware engines;
(b) a task management table for storing task management information including (1) state information representative of the execution status of each said task, (ii) priority information representative of the execution priority of each said task, and (iii) allocation information representative of the allocation of said plurality of tasks to said plurality of hardware engines; and
(c) a scheduler for allowing, on the basis of said task management information, said processor to switch between tasks, wherein each said plurality of hardware engines starts execution of a data process upon the activation by said processor and, if said data process is terminated, informs said scheduler of the termination of execution, and said scheduler allows said processor to switch between tasks if the termination of execution of any one of said hardware engines is detected. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
said scheduler including: a determination unit for identifying, when the execution of any one of said plurality of hardware engines is terminated, a task allocated to said execution-terminated hardware engine on the basis of said task management information; and
a state controller which performs, upon being activated by said determination unit, a function of updating said state information so that said identified task makes a state transition from said third state to said first state.
-
-
5. The microcontroller according to claim 4, wherein said state controller performs, upon being activated by said determination unit, a function of updating said state information so that a task under execution makes a state transition from said second state to said first state.
-
6. The microcontroller according to claim 4, wherein said scheduler further includes a priority encoder for selecting, on the basis of said task management information, a task having the highest execution priority in all tasks that are in said first state as a task to be run next.
-
7. The microcontroller according to claim 6, wherein said state controller further performs a function of updating said state information so that said task selected by said priority encoder makes a state transition from said first state to said second state.
-
8. The microcontroller according to claim 1, wherein said task management table has a region in which to save resources of said processor concerning a task that was run prior to the occurrence of the aforesaid task switching.
-
9. The microcontroller according to claim 1 further comprising a plurality of register files for use by said plurality of hardware engines as mutually independent working areas.
-
10. The microcontroller according to claim 1 further comprising a register file used to store a setting parameter common to at least two of said plurality of hardware engines.
-
11. A data processing system comprising:
-
a plurality of hardware engines for executing respective data processes; and
a microcontroller for controlling said plurality of hardware engines;
said microcontroller including;
a processor for sequentially executing a plurality of tasks in accordance with programmed instructions, said processor operating in conjunction with said plurality of hardware engines;
a task management table for storing task management information including (i) state information representative of the execution status of each said task, (ii) priority information representative of the execution priority of each said task, and (iii) allocation information representative of the allocation of said plurality of tasks to hardware engines; and
a scheduler for allowing, on the basis of said task management information, said processor to switch between tasks, wherein each said plurality of hardware engines starts execution of a data process upon the activation by said processor and, if said data process is terminated, informs said scheduler of the termination of execution, and said scheduler allows said processor to switch between tasks if the termination of execution of any one of said hardware engines is detected. - View Dependent Claims (12, 13)
-
-
14. A task switching control method including allocating one or more tasks to corresponding hardware engines and controlling, based on information about such task/hardware engine allocation, task switching by the use of a scheduler, wherein:
-
each said hardware engines starts execution of a data process upon the activation by a processor and, if said data process is terminated, informs said scheduler of the termination of execution;
each said task can be in one of a first state representative of an execution wait status, a second state representative of a running status, and a third state representative of a wait status awaiting the termination of execution of a hardware engine allocated thereto; and
when the execution of any one of said hardware engines is terminated, said scheduler changes the state of a task allocated to said executon-terminated hardware engine from said third state to said first state so as to allow said processor to switch between tasks. - View Dependent Claims (15)
-
Specification