Patent ID: 7975269

Claim:
In a processor system having one or more central processors and one or more secondary processing elements, each secondary processing element having a processor and a local memory, a method for managing code and data on one or more of the secondary processing elements, the method comprising the steps of: under control a policy module manager running on one or more of the secondary processing elements, assigning a selected one or more work queues from a main memory to a selected one or more of the secondary processing elements according to a hierarchy of precedence by determining whether one or more work queues are schedulable, and have readiness, determining a per-secondary processing element priority value for the one or more work queues, determining a work queue affinity for the one or more work queues and determining an urgency for the one or more work queues and assigning the selected one or more work queues to the selected one or more secondary processing elements according to schedulability, readiness, affinity, and urgency, wherein determining the urgency includes determining a contention for the one or more work queues and determining a minimum contention for the selected one or more work queues, wherein assigning the selected one or more work queues includes comparing a particular contention for a particular one of the selected one or more work queues to a corresponding minimum contention and preferentially assigning the work queue if the particular contention is greater than zero but less than the corresponding minimum contention; loading a policy module for the selected one or more work queues to the selected one or more secondary processing elements; interpreting the selected one or more work queues with the policy module; under control of the policy module, loading work from one or more of the selected one or more work queues into the local memory of the selected one or more secondary processing elements; performing the work with the selected one or more secondary processing elements; and after completing the work or upon a pre-emption, returning control of the selected one or more secondary processing elements to the policy module manager.