The instruction set for the PPE is an extended version of the PowerPC instruction
set. The extensions consist of the Vector/SIMD Multimedia Extension instruction
set plus a few additions and changes to PowerPC instructions.
The instruction set for the SPE is similar to that of the PPE’s Vector/SIMD Multimedia Extension instruction
set. Although the PPE and the SPEs execute SIMD instructions, the two instruction
sets are different, and programs for the PPE and SPEs must be compiled by
- Byte ordering and bit numbering
Storage of data and instructions in the Cell Broadband Engine is big-endian.
- SIMD vectorization
A vector is an instruction operand containing a set of data elements packed into a one-dimensional array. The elements can be integer or floating-point values. Most Vector/SIMD Multimedia Extension and SPU instructions operate on vector operands. Vectors are also called SIMD operands or packed operands.
- SIMD C-language intrinsics
Both the Vector/SIMD Multimedia Extension and SPU instruction sets have extensions that support C-language intrinsics. Intrinsics are C-language commands, in the form of function calls, that are convenient substitutes for one or more inline assembly-language instructions.
- Threads and tasks
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.
- The runtime environment
The PPE runs PowerPC applications and operating systems, which may include Vector/SIMD Multimedia Extension instructions.
- Application partitioning
Programs running on the Cell Broadband Engine’s nine processor elements typically partition the work among the available processor elements.