Cell/B.E. Architecture Overview

From OpenCV on the Cell

Jump to: navigation, search

Structure of Cell/B.E.

The Cell/B.E. uses two types of cores optimized for different applications. One is a general-purpose processor equivalent to PowerPC, and it is a processor core which performs execution of an operating system or application like the conventional processor. Another is a multimedia processing-oriented simple and small processor core. To get the most out of the Cell/B.E.’s incredible computational capability, it is necessary for each programmer to consider the differences between the two processor cores and utilize them appropriately in a way to suit the intended application.


The following figure shows the structural diagram of the Cell/B.E..

The Cell/B.E. consists of one control-intensive processor core (PPE) and eight compute-intensive processor cores (SPEs). A high-speed bus called the Element Interconnect Bus (EIB) is used for connecting these processor cores within the Cell/B.E.


PowerPC Processor Element (PPE)

The PPE implemented in the Cell/B.E. is a general-purpose processor with functions equivalent to those offered by the 64-bit PowerPC architecture. Like conventional processors, the PPE allows execution of the operating system and applications. It also performs input/output control when the operating system accesses the main memory and external devices, and provides control over SPEs. Accordingly, the PPE can be defined as a “control-intensive processor” dedicated mainly to processing control.

Synergistic Processor Element (SPE)

The Cell/B.E. incorporates eight processor cores called the SPEs (On the PS3Linux, six SPEs can be used). The SPEs are less complex processing units than the PPE as they are not designed to perform control-intensive tasks. The SPEs iterates simple operations necessary for processing multimedia data. The Cell/B.E. delivers an exceptional computational capability by effectively using these compute-intensive processor cores.


Cell Programming Tips

Programming using the PPU only does not differ from conventional programming on Linux. Write programs in C and execute. However, such programs cannot benefit fully from the Cell/B.E.'s intrinsic potential. In order to maximize the performance of the Cell/B.E., attention must be paid to the following two keys:

  1. Operate multiple SPUs in parallel to maximize operations that can be executed in a certain time unit.
  2. Perform SIMD parallelization on each SPU to maximize operations that can be executed per instruction.


All in all, how the SPUs are utilized is particularly crucial to Cell/B.E. programming. These points are explained in detail on Optimization Strategy page. If you want to know more detail techniques, We recommend you to read Technical Notes.

Views
Personal tools
Toolbox