The PowerPC Processor Element

The PowerPC Processor Element (PPE) is a general-purpose, dual-threaded, 64-bit RISC processor that conforms to the PowerPC Architecture, version 2.02, with the Vector/SIMD Multimedia Extension.

Programs written for the PowerPC 970 processor, for example, should run on the Cell Broadband Engine without modification.

As shown in Figure 1, the PPE consists of two main units: The PPE is responsible for overall control of the system. It runs the operating systems for all applications running on the Cell Broadband Engine.
Figure 1. PowerPC Processor Element (PPE) block diagramPowerPC Processor Element block diagram
The PPU deals with instruction control and execution. It includes:

The PPU supports two simultaneous threads of execution and can be viewed as a 2-way multiprocessor with shared dataflow. This appears to software as two independent processing units. The state for each thread is duplicated, including all architected and special-purpose registers except those that deal with system-level resources, such as logical partitions, memory, and thread-control. Most non-architected resources, such as caches and queues, are shared by both threads, except in cases where the resource is small or offers a critical performance improvement to multithreaded applications.

The PPSS handles memory requests from the PPE and external requests to the PPE from other processors or I/O devices. It includes: Memory is seen as a linear array of bytes indexed from 0 to 2⁶⁴ - 1. Each byte is identified by its index, called an address, and each byte contains a value. One storage access occurs at a time, and all accesses appear to occur in program order.

The L2 cache and the address-translation caches use replacement-management tables that allow software to control use of the caches. This software control over cache resources is especially useful for real-time programming.