Current area: HOME -> Assembly -> Cell Articles Articles
Cell Articles
Build High Performance Apps with RapidMind
Take a guided tour of the RapidMind Development Platform with Michael McCool. The platform provides a simple single-source mechanism to develop portable high-performance applications for multicore processors. In particular, you can use it to develop applications by writing a single-threaded C++ program using an existing C++ compiler.
Cell Broadband Engine Architecture and its first implementation
Explore the first implementation of the Cell Broadband Engine (Cell BE) Architecture, developed jointly by Sony, Toshiba, and IBM, and get an up-close look at its performance figures and characteristics.
Cell Broadband Engine Architecture from 20,000 feet
What is Cell? The Cell Broadband Engine Architecture (CBEA, or, informally, "Cell") defines a new processor structure based upon the 64-bit Power Architecture technology, but with unique features directed toward distributed processing and media-rich applications. This article provides a concise view inside the Cell's architecture.
Cell Broadband Engine processor DMA engines
A single Cell Broadband Engine (Cell BE) processor consists of one PowerPC® core and eight SPEs each having their own DMA engine. The DMA engines are a key component of the overall Cell Broadband Engine Architecture (CBEA) as they move data between SPEs and the PowerPC core. Any operating system or application wishing to utilize the SPE depends on the DMA engines to manage work flow on behalf of the SPEs.
Cell Broadband Engine Processor DMA Engines
The Cell Broadband Engine Architecture (CBEA) is unique in the sense that it consists of a powerful SMT PowerPC core with special auxiliary SIMD processing units. Each of these units are called synergistic processing elements (SPEs) and are capable of running compute-intensive applications. The SPEs of the Cell BE make it well-suited for graphics applications like gaming, image processing, and hi-definition TVs.
Cell Software Samples and Library Source Code
This article introduces the sample code provided with the Cell Broadband Engine SDK, taking a look at what kinds of programs are provided, how to build them, and what you can learn from them.
Cell/B.E. SDK 3.0 Part 1: Create an SPU Project
In this quick-read intro to the new Multicore Accelerator SDK 3.0 IDE, learn how to build an SPU project, create a PPU project, create the Cell/B.E. simulator, configure the application launcher, debug and perform performance analysis, use simulator consoles, use the ALF wizard, and set IDE preferences.
Communication with Mailboxes and Interrupts
Meet two more means of communication between the SPE and the
PPE -- mailboxes and signal notification. Mailboxes are
special-purpose registers, similar to the I/O registers used to
communicate with peripheral devices on some systems, while
signal notification registers are registers which can be read
or written to by the PPE, but which the SPE can only read.
Complete Developer Environment for the Cell Broadband Engine
Download a complete programming environment for the Cell Broadband Engine (CBE) -- the software development kit, an environment simulator, compilers, an OS kernel, toolchain, library, and samples - the whole shebang! Also, Peter Seebach has written an article on Installing the CBE programming environment</a>.
Container Virtualization for Cell/B.E. and Linux Part 1
Learn about an efficient virtualization approach for the Cell/B.E. processor regarding hardware resources called container virtualization, and the open source software OpenVZ Linux project. This first article discusses basic concepts, architectures, and tools of OpenVZ and Cell/B.E., and how they work together.
David Krolak on the Cell Element Interconnect Bus
Understanding the Element Interconnect Bus (EIB) is an essential component to maximizing performance on the Cell Broadband Engine Architecture. Designed to handle the bandwidth demands of a nine-core processor running at 3GHz, it's like no bus you have ever met before. The lead designer and EIB project manager sit down for an hour with developerWorks to discuss ring versus interconnect buses, data arbiters, and bus protocols.
Development on the Cell Broadband Engine
The Cell Broadband Engine SDK comes with two compilers. XL C is the production branch of the IBM high-performance optimizing compiler, primarily targeting PowerPC systems. Learn more about how it works and how to use it with the SDK. Learn about user directives, how to hint to the compiler that a given loop should run on the SPE, writing SPE-specific code, and more.
Eliminate Performance Roadblocks as you Integrate Cell/B.E.
The first article in the series describes how to do a basic port to the Cell Broadband Engine process. This second article goes further in hammering out the details, including removing limitations based on DMA-transfer size, partitioning the program across multiple SPEs, and improving the program's speed even more.
Experts Provide Insight on Cell Broadband Engine Technologies
The CBE SDK downloads: What's in the Cell Technologies by alphaWorks, why you want them, and what you need to get started. Sid Manning and Daniel Brokenshire answer the tough questions like "Why Linux?" and (more importantly) "Why Linux on Intel?"
How Libspe2 affects Cell B.E. Programming
In this article, learn to do basic SPE process management and communication with libspe2. This standard library that PPE programs use to access and manage SPEs has undergone a major revision, and the Cell B.E. SDK2.1 makes the change from libspe1 to libspe2 official.
IBM Full-System Simulator for the Cell Broadband Engine
The IBM Full-System Simulator for the Cell Broadband Engine (Cell BE) processor, known inside IBM as codeword Mambo, is a key component of the newly posted offerings on alphaWorks. Meet some of the members of the team that pulled it together, and hear about the simulator in their own words.
IDE for the Cell Broadband Engine SDK
This introductory walk-through provides an introduction to some of the main features of the Cell IDE for Eclipse and step-by-step instructions on how to create, build, and run POWER Processing Unit (PPU)- and Synergistic Processor Unit (SPU)-managed make projects. Elements in the design of the cell chip are expected in IBMs future server chips, and could end up inside the PlayStation 3.
Lightning Fast Programs with the SPU of Cell BE
Write optimal code for Cell BE processors synergistic processing unit (SPU) and have your programs running lightning fast. This installment of the Cell BE processor series covers SIMD vector programming, branch elimination and hinting techniques, loop unrolling, and instruction scheduling. Part 1gives an introduction to Linux on the PLAYSTATION 3, while Part 2 shows you how to program the SPEs of Sony PS3, and Part 3 dives further into the SPEs of Cell BE.
Looking at Real Time for Linux, PowerPC, and Cell
A great philosopher once said, "Time is an illusion, lunchtime doubly so." What about real time? Specifically, what about Linux and real time? Paul McKenney of IBM discusses processors, computer history, time slices, games, physics, and Linux.
Make an SPE and Existing Code Work Together
Traditional porting requires identifying and abstracting out the architecture-dependent code. While this procedure works for getting code to run on the Cell/B.E. processor, to actually use the extra processing elements, you have to put in extra work. In this series, learn how to make an SPE and existing code work together, minimizing recording impact.
Measure Time in Linux with Time Base
Use the PA technology's Time Base register to measure time at the nanosecond level in Linux on PowerPC and Cell BE microprocessors. Applications where this is useful include timestamping transactions (typically encrypted or digitally signed single-use messages), profiling code, and implementing small, precise software delays.
Meet the expert: Arnd Bergmann on Cell
Looking forward to getting your hands on a Cell workstation? We were too -- until we talked to Linux for Cell kernel maintainer Arnd Bergmann. Learn about programming for Cell in general and for Linux for Cell in particular, and why the "workstation" that has been described in the press is more of a prototype Blade board, and a bit of a misunderstanding, in this Q & A session.
Mixed-Precision Workloads while Porting
This seven-part quick-read porting workshop series is taken from the real-world case study whitepaper, "Porting Financial Markets Applications to the Cell Broadband Engine Architecture." In Part 5, the authors determine how to make mixed-precision calculations work with the sample application.
Porting Workshop: Maximum Performance
The seven quick-read parts of this "Porting workshop" series take you on a real-world trip from strategy and planning through workload execution, performance tweaking, and optimization. In part seven, the authors evaluate the performance data to date. The series describes how to most effectively port compute-intensive applications to the Cell Broadband Engine platform.
Programming the SPU in C/C++
In Part 5 of this series about programming on the Cell BE processors, apply your knowledge of the synergistic processing unit (SPU) to programming the Cell Broadband Engine (Cell BE) processor in C/C++. Learn how to use the vector extensions, direct the compiler to do branch prediction, and perform DMA transfers in C/C++.
Six Key Porting Practices to Know
In this article, learn best practices for porting a JPEG compression application to the Cell/B.E. Synergistic Processor Engine (SPE), and see how to take advantage of the processor's unique architecture and avoid its shortcomings.
The Linux Programming Model for Cell
Base platform support for Linux on the Cell has been established and is currently on its way into the mainstream Linux kernel tree. Read about the Cell's unique architecture and the SPU file system interface that allows Linux to run on it.
The Little Broadband Engine that Could: Using SPEs
Get a feel for programming models that work on the Cell/B.E. processor. In this first article, Peter Seebach introduces the API used to run programs on SPEs, focusing specifically on loading code on an SPE and sending data to it for processing.
Top Ten Tips for Building SPE apps in C
Make this your top ten list for vector-based Cell Broadband Engine (Cell/B.E) SPU application development. Save time, headache, and a lot of trouble when you're coding your C applications for the Cell/B.E. SPU.
Top Three Strategies for Porting
In part one of the Porting Workshop series, discover the top three top strategies for porting. The seven, quick-read parts of this series take you on a real-world trip from strategy and planning through workload execution through performance tweaking through optimization to porting compute-intensive applications to the Cell Broadband Engine platform.
Unleashing the Power of the Cell Broadband Engine
This paper from the MPR Fall Processor Forum 2005 explores programming models for the Cell Broadband Engine (CBE) Processor, from the simple to the progressively more advanced. With nine cores on a single die, programming for the CBE is like programming for no processor you've ever met before. Read why.
What Lies Ahead for Cell?
Cell, which was developed by IBM, Sony, and Toshiba, is best known as the engine that powers PlayStation® 3, Sony's next-generation gaming console that is scheduled to debut next spring. Power Everywhere systems offerings program director Dan Greenberg talks about where the Cell is going, how IBM intends to encourage collaboration with developers in its deployment, and what collaboration services are already available for Cell development.