Grouping processors is presented. A processing unit (PU) initiates an
application and identifies the application's requirements. The PU assigns
one or more synergistic processing units (SPUs) and a memory space to the
application in the form of a group. The application specifies whether the
task requires shared memory or private memory. Shared memory is a memory
space that is accessible by the SPUs and the PU. Private memory, however,
is a memory space that is only accessible by the SPUs that are included
in the group. When the application executes, the resources within the
group are allocated to the application's execution thread. Each group has
its own group properties, such as address space, policies (i.e.
real-time, FIFO, run-to-completion, etc.) and priority (i.e. low or
high). These group properties are used during thread execution to
determine which groups take precedence over other tasks.