Methods and apparatus for task management in a multi-processor system
AssigneeSony Computer Entertainment Inc.
InventorsKeisuke Inoue, Tatsuya Iwamoto, Masahiro Yasue
Life of this patent
Estimating the term…
Abstract
Methods and apparatus are provided for managing processor tasks in a multi-processor computing system. The system is operable to store the processor tasks in a shared memory that may be accessed by a plurality of sub-processing units of the multi-processor computing system; and permit the sub-processing units to determine which of the processor tasks should be copied from the shared memory and executed based on priorities of the processor tasks.
Claims43
A method of managing processor tasks in a multi-processor computing system, comprising:
- storing the processor tasks in a shared memory that is accessible by a plurality of processing units of the multi-processor computing system;
- permitting the processing units to determine which of the processor tasks should be executed based on priorities of the processor tasks, wherein the processor tasks that are executed are copied from the shared memory to the local memory of a processing unit;
- copying a task table from the shared memory to the local memory of a processing unit, the task table including a task table entry associated with each of the processor tasks;
- modifying the task table entry of a selected one of the processor tasks;
- linking at least some of the task table entries together to achieve at least one list of the processor tasks to be invoked in hierarchical order;
- and
- copying the task table from the local memory of a processing unit to the shared memory to include the modified task table entry in the task table;
- wherein each of the task table entries includes at least one of:
- (i) an indication as to whether the associated processor task is ready to be executed by one or more of the processing units;
- (ii) an indication as to a priority level of the associated processor task;
- (iii) a pointer to a previous task table entry in a list of task table entries (a previous pointer);
- and (iv) a pointer to a next task table entry in the list of task table entries.
A method of managing processor tasks in a multi-processor computing system, comprising:
- storing the processor tasks in a shared memory that is accessible by a plurality of processing units of the multi-processor computing system;
- storing a task table in the shared memory, the task table including a task table entry associated with each of the processor tasks;
- linking at least some of the task table entries together to achieve at least one list of the processor tasks to be invoked in hierarchical order;
- and
- permitting the processing units to use the task table to determine which of the processor tasks should be executed in accordance with the list of processor tasks, wherein the processor tasks that are executed are copied from the shared memory to a local memory of a given one of the processing units;
- copying the task table from the shared memory to the local memory of the given processing unit;
- modifying a selected one of the task table entries;
- and
- copying the task table from the local memory of the processing unit to the shared memory to include the modified task table entry;
- wherein each of the task table entries includes at least one of:
- (i) an indication as to whether the associated processor task is ready to be executed by one or more of the processing units (ii) an indication as to a priority level of the associated processor task (iii) a pointer to a previous task table entry in a list of task table entries (a previous pointer and (iv) a pointer to a next task table entry in the list of task table entries.
A method of managing processor tasks in a multi-processor computing system, comprising:
- storing the processor tasks in a shared memory that is accessible by a plurality of processing units of the multi-processor computing system;
- storing a task table in the shared memory, the task table including a task table entry associated with each of the processor tasks;
- copying the task table from the shared memory to local memory of a given one of the processing units;
- linking at least some of the task table entries together to achieve at least one list of processor tasks in hierarchical order;
- at least initiating execution a first one of the processor tasks of the list within the given one of the processing units, wherein the first one of the processor tasks yields the given processing unit such that it is capable of executing another of the processor tasks;
- determining which of the other processor tasks should be executed next within the given processing unit by permitting the given processing unit to use the task table to make such determination;
- modifying the task table entry for the first one of the processor tasks that yields to another one of the processor tasks;
- and
- writing the task table back from local memory of the given processing unit to the shared memory;
- wherein each of the task table entries includes at least one of:
- (i) an indication as to whether the associated processor task is ready to be executed by one or more of the processing units;
- (ii) an indication as to a priority level of the associated processor task;
- (iii) a pointer to a previous task table entry in a list of task table entries (a previous pointer);
- and (iv) a pointer to a next task table entry in the list of task table entries.
A multi-processor apparatus, comprising:
- a plurality of processing units, each processing unit including a local memory in which to execute processor tasks;
- a shared memory configured to store processor tasks that are ready to be executed, and
- a task table including a task table entry associated with each of the processor tasks;
- wherein the processing units are configured to determine which of the processor tasks should be executed based on priorities of the processor tasks, the processor tasks that are executed are copied from the shared memory to the local memory of a respective one of the plurality of processing units prior to execution, and
- wherein the respective processing unit is configured to copy the task table from the shared memory to the local memory of the respective processing unit, to modify the task table entry of a given one of the processor tasks selected for execution, to link at least some of the task table entries together to achieve at least one list of the processor tasks to be invoked in hierarchical order, and to copy the task table, including the modified task table entry, from the local memory to the shared memory.
A multi-processor apparatus, comprising:
- a plurality of processing units, each processing unit including a local memory in which to execute processor tasks;
- and
- a shared memory configured to store:
- (i) processor tasks that are ready to be executed, and (ii) a task table including a task table entry associated with each of the processor tasks,
- wherein the processing units are configured to copy the task table from shared memory to local memory, to use the task table to determine which of the processor tasks should be copied from the shared memory into their local memories and executed, to maintain and modify the task table during execution of the processor tasks, and to copy the modified task table from the local memory to the shared memory, and
- wherein at least some of the task table entries are linked together to achieve at least one list of processor tasks to be invoked in hierarchical order, and the processing units are configured to use the linked list to determine which of the processor tasks should be copied from the shared memory and executed.
A multi-processor apparatus, comprising:
- a plurality of sub-processing units, each sub-processing unit including a local memory in which to execute processor tasks;
- and
- a shared memory configured to store:
- (i) processor tasks that are ready to be executed, and (ii) a task table including a task table entry associated with each of the processor tasks, wherein:
- the sub-processing units are configured to at least initiate execution a first processor task and yield such that it is capable of executing another of the processor tasks,
- the sub-processing units are configured to determine which of the other processor tasks should be executed next based on the task table,
- each sub-processing unit is configured to copy the task table from the shared memory to its local memory,
- the sub-processing units are configured to modify the task table entry for the first one of the processor tasks that yields to another one of the processor tasks, and
- each sub-processing unit is configured to write the task table back from it's local memory to the shared memory;
- wherein at least some of the task table entries are linked together to achieve at least one list of processor tasks in hierarchical order.
Dependencies are inferred from the claim text.