In August, 2006 I attended the Girvan Workshop for
the Cell Broadband Engine and it's an experience I'll never forget. For
two solid days, IBM engineers explained the processor's architecture,
tools and the many software libraries available for building Cell
applications.
I was stunned, not only by the processor's extraordinary
capabilities, but also by how much there was to learn: spulets and CESOF
files, Altivec and Single instruction, Multiple Data (SIMD) math,
debuggers and simulators. I did my best to comprehend it all, but most
of the material flew over my head in a fierce whoosh.
When Sony released the Playstation 3, I grabbed the first console
off the shelf and ran home for a more thorough investigation. It was
daunting at first. Then, as now, IBM's Software Development Kit
provided a vast number of documents that covered three essential
subjects: development tools, software libraries and the processor
itself, The docs were helpful, but there was no overlap or coordination
between them. This is a serious problem because any practical Cell
developer needs to understand these subjects an an integrated whole.
It took time before the whooshing sound dissipated, but when it did,
I genuinely understood how to program the Cell's PowerPC Processor Unit
(PPU) and Synergistic Processor Units.
It wasn't that hard, really " just regular C/C++ and a set of
communications mechanisms. Yet the blogs and discussion groups
disagreed: to them Cell programming was much too complex for normal
developers to understand. However, they hadn't really given the Cell a
chance; they saw the disjointed pieces, but not how they fit together.
Programming
the Cell Processor is my best attempt to reduce the whoosh
associated with Cell development. My goal is to tie together the Cell's
tools, architecture and libraries in a straightforward progression that
appeals to intuition. And I've included many code examples so that you
can follow the material in a hands-on fashion. To download the
examples, go to
http://informit.com/title.
Editor's Note: Reproduced by permission of the book's
publisher, Pearson Education, Inc., this series of five articles
describes how developers can use a collection of open source GCC
development tools, the Linux operating system and the Eclipse IDE to do
development on the Cell multicore architecture. Part 1 starts on the next page, and describes the basics of the Cell Processor architecture, introducing the developer briefly to the Cell Software Development Kit. Part 2 is on Building
Applications for the Cell processor; Part 3 covers debugging the Cell processor; Part 4 covers simulating applications and Part 5 is about the Cell SDK IDE, including Eclipse and the C/C++
development tooling as well as detailing how to manage an SPU project
with the Cell IDE.