The runtime environment

The PPE runs PowerPC applications and operating systems, which may include Vector/SIMD Multimedia Extension instructions.

The PPE requires an operating system that is extended to support the hardware features of Cell Broadband Engines, such as multiprocessing with the SPEs, access to the PPE Vector/SIMD Multimedia Extension functions, the Cell Broadband Engine interrupt controller, and all other functions on the Cell Broadband Engine.

The assumed development and operating-system environment for this tutorial are described in the Preface. In this operating environment, the PPE handles thread allocation and resource management among SPEs. The PPE’s Linux kernel controls the SPUs’ execution of programs.

SPE threads follow the M:N thread model, meaning M threads distributed over N processor elements. Typically SPE threads run to completion. However, the SPE threads are pre-emptible in accordance with the thread’s scheduling policy and priority. Time slice quanta for the SPE threads is typically longer than PPE threads because of the SPE context switch is relatively heavy.

The Linux kernel manages virtual memory, including mapping each SPE’s local store (LS) and problem state (PS) into the effective-address space. The kernel also controls virtual-memory mapping of MFC resources, as well as MFC segment-fault and page-fault handling. Large pages (16-MB pages), using the hugetlbfs Linux extension, are supported.