In a system running the Linux operating system, the main thread of a program is a Linux thread running on the PPE. The program’s main Linux thread can spawn one or more Cell Broadband Engine Linux tasks.
A Cell Broadband Engine Linux task has one or more Linux threads associated with it that may execute on either a PPE or a SPE. An SPE thread is a Linux thread that is executing on a SPE. These terms are defined in Table 1.
The software threads described in this section are unrelated to the hardware multithreading capability of the PPE.
Term | Definition |
---|---|
Linux thread | A thread running in the Linux operating-system environment. |
PPE thread | A Linux thread running on a PPE. |
SPE thread | A Linux thread running on an SPE. Each such thread:
|
Cell Broadband Engine Linux task | A task running on the PPE and SPE.
|
A Linux thread can interact directly with an SPE thread through the SPE’s local store or its problem state. It can interact indirectly through effective-address (EA) memory or the interface provided by the SPE Runtime Management library subroutines.
The operating system defines the mechanism and policy for scheduling an available SPE. It must prioritize among all the Cell Broadband Engine Linux applications in the system, and it must schedule SPE execution independent from regular Linux threads. It is also responsible for runtime loading, passing parameters to SPE programs, notification of SPE events and errors, and debugger support.