I gathered up some CELL processor programming/ whitepaper links ------------------------------------------------------------------------------------- Cell Broadband Engine Programming Handbook Get information for developing applications, libraries, middleware, drivers, compilers, or operating systems for the Cell Broadband Engine processor. Cell Broadband Engine Hardware Initialization Guide This document describes the sequences for initializing a Cell Broadband Engine processor, from Power-On Reset (POR) through calibration of the memory and I/O interfaces and the PowerPC Processor Element (PPE) firmware. Cell Broadband Engine Linux Reference Implementation Application Binary Interface Specification This document defines a standard interface that allows compiled objects to be linked and run on the Linux Reference Implementation for the Cell Broadband Engine without recompilation or recoding. Cell Broadband Engine Registers This document describes the CBE memory-mapped I/O registers used by the PowerPC Processor Element (PPE), the Synergistic Processor Elements (SPEs) and other units. Cell Broadband Engine Architecture V1.0 Like the Power Architecture, but different -- the CBE Architecture builds upon knowledge contained in the Power Architecture "books" and describes the app-level User Mode Environment (UME) and the OS-level Privileged Mode Environment (PME) in astonishingly rich detail. Synergistic Processor Unit (SPU) Instruction Set Architecture V1.0 Somewhere between a general-purpose processor and special-purpose hardware lies the Cell SPU: designed to provide leadership performance in game, media, and broadband applications, this document describes the Instruction Set of the Synergistic Processor Unit (SPU). Get to know all of its instructions. SPU Application Binary Interface Specification V1.4 Including register usage and calling conventions, data type sizes and alignment, low-level system and language binding information, information on loading and linking, and coding examples, this specification defines the system interface for SPU-targeted object files to help ensure maximum binary portability across implementations. SPU Assembly Language Specification V1.3 Program directly to the SPU Instruction Set! This specification will prove an indispensable aid in your efforts as it takes you on a carefully-worded journey describing SPU assembly-level syntax and machine-dependent features for the GNU assembler (but serves as an example specification for other SPU assemblers as well). SPU C/C++ Language Extensions V2.1 Unleash the full processing power of the SPUs. This specification extends the C and C++ languages with a rich set of vector data types, several programmer directives, and an extensive set of vector intrinics. PowerPC Architecture Book, Version 2.01 This three-volume set (pdf), Version 2.01, defines the instruction and registers used by application programs, the storage models, privileged facilities, and related instructions for the POWER4 and POWER4+ processors. PowerPC Architecture Book, Version 2.02 This three-volume set (pdf), Version 2.02, defines the instruction and registers used by application programs, the storage models, privileged facilities, and related instructions for the IBM POWER5 processor family. PowerPC Microprocessor Family: Vector/SIMD Multimedia Extension Technology Programming Environments Manual Version 2.06c Create software that is compatible across the family of 64-bit PowerPC processors, which have implemented the Vector/SIMD Multimedia Extension technology -- from the 970FX, to the Cell Broadband Engine -- and beyond. GCC Toolchain for Cell Broadband Engine This code contains the GCC compiler for the SPE implemented by Sony Computer Entertainment, which also supports the standards defined in the SPU C/C++ Language Extensions V2.1, SPU Application Binary Interface Specification V1.4, and Synergistic Processor Unit (SPU) Instruction Set Architecture V1.0 documents (previously released). The associated assembler and linker additionally support the SPU Assembly Language Specification V1.3. The assembler and linker are common to both the GCC and XL C compilers. Linux kernel patch for Cell Broadband Engine This set of patches to the Linux operating system provides services needed to support the hardware facilities of the Cell Broadband Engine microprocessor. Fedora Core 4 Download the Fedora Core 4 from the Barcelona Supercomputing Center. Cell Broadband Engine SPE Management Library Download the SPE resource management library that contains an SPE thread programming model for CBEA applications. SDK installation script After you've downloaded the three alphaWorks technologies, run this as root and sit back and relax while our install script grabs the RPMs and builds the CBE programming environment for you. Linux on CBE-based systems The Linux on CBE-based Systems Web site at the Barcelona Supercomputing Center (BSC) aims to provide information about how to enable Linux on CBE platforms. In addition to hosting the above Linux kernel patch for the CBE and SPE Management Library, it also hosts the GNU toolchain for a native or PowerPC® development environment. Cell Broadband Engine processor DMA engines, Part 2: From an SPE point of view Meet the SPE interface to the DMA capabilities of the processor, from channel allocation to communication. (02 May 2006). The Cell Broadband Engine processor security architecture Prevent attackers from compromising data with the Cell BE processor's built-in content protection features, including the secure processing vault and hardware root of secrecy. (24 April 2006). Five minutes with: Mark Nutter and Max Aguilar on the Cell BE memory model The Power Architecture PowerPC core and the Cell BE PPE unit: how different are they? Find out why there is "nothing to fear" from Cell BE programming, after all. (18 April 2006). SPU pipeline examination in the IBM Full-System Simulator for the Cell Broadband Engine processor Find out the exact cycle where the SPE stalls, or identify a poor choice of branch predictions, using pipeline tracing in the Cell BE simulator. (17 April 2006). An introduction to compiling for the Cell Broadband Engine architecture, Part 1: A bird's-eye view Meet the Cell BE processor from a compiler-writer's perspective, and get a bird's-eye view of a number of the unique challenges it poses. (07 February 2006). An introduction to compiling for the Cell Broadband Engine architecture, Part 2: Optimizing for the SPE Part 2 discusses specific issues in optimizing code to run effectively on the Synergistic Processor Elements (SPEs) in the Cell BE processor. (07 February 2006). An introduction to compiling for the Cell Broadband Engine architecture, Part 3: Make the most of SIMD See how to optimize code that must run both on the VMX SIMD engine of the PowerPC core of the Cell BE processor and also on the SIMD-only SPEs. (07 February 2006). An introduction to compiling for the Cell Broadband Engine architecture, Part 4: Partitioning large tasks Part 4 discusses ways to partition code to run across the multiple cores available in a Cell BE processor. (07 February 2006). An introduction to compiling for the Cell Broadband Engine architecture, Part 5: Managing memory Learn techniques for managing data in the local store of the SPEs of a Cell BE processor. (07 February 2006). Get started with the Cell Broadband Engine Software Development Kit, Part 3: Targeting Cell BE Take a closer look at XL C Alpha. Learn more about user directives, how to hint to the compiler that a given loop should run on the SPE, writing SPE-specific code, and more. (17 January 2006). Meet the experts: David Krolak on the Cell Broadband Engine EIB bus The lead designer and EIB project manager discuss ring versus interconnect buses, data arbiters, and bus protocols (06 December 2005). Cell Broadband Engine processor DMA engines DMA engines are a key component of the Cell BE architecture as they move data between SPEs and the PowerPC core. Get an overview and learn how these DMA engines work (06 December 2005). Papers from the Fall Processor Forum 2005: Unleashing the Cell Broadband Engine Processor: The Element Interconnect Bus Designed to handle the bandwidth demands of a nine-core processor running at 3GHz, the EIB is like no bus you have ever met before. Read why (29 November 2005). Cell Broadband Engine Architecture and its first implementation Get facts, figures, and illustrations on Cell BE performance (29 November 2005). --> Meet the experts: The Mambo team on the IBM Full-System Simulator for the Cell Broadband Engine processor Members of the Cell BE simulator team discuss emulators versus simulators, cycle-accurate models, and more (22 November 2005). Meet the experts: Alex Chow on Cell Broadband Engine programming models Alex Chow of IBM proposes several programming models ranging in complexity from a small single SPU to a large interconnected multi-SPU program (22 November 2005). Meet the experts: Dan Brokenshire and Sid Manning on the alphaWorks downloads for the Cell Broadband Engine The CBE SDK downloads: What's in them, why you want them, and what you need to get started. Sid Manning and Dan Brokenshire answer the tough questions like "Why Linux®?" and (more importantly) "Why Linux on Intel®?" (16 November 2005). Get started with the Cell Broadband Engine software development kit, Part 2: Using the software samples and library source This article introduces the sample code distributed with the software development kit for the Cell Broadband Engine. It covers building the sample code and using it in your own development efforts (16 November 2005). Papers from the Fall Processor Forum 2005: Unleashing the power of the Cell Broadband Engine: A programming model approach The CBE processor makes it virtually certain that a fairly easy development effort will net an impressive performance gain over a more traditional processor architecture, but achieving top performance is difficult. Learn more (16 November 2005). Power Architecture downloads and documentation: Complete developer environment for the Cell Broadband Engine Test these tools and visit the new Cell Broadband Engine resource center (11 November 2005). Get started with the Cell Broadband Engine software development kit, Part 1: Install the CBE programming environment Meet the alphaWorks Cell Broadband Engine downloads. Get an overview and explanation of the installation, see how to run the simulator -- and even compile and run your own test program (09 November 2005). Cell Broadband Engine Architecture from 20,000 feet A high-level description of the Cell Broadband Engine (CBE), the Synergistic Processing Elements (SPEs), and how they work together (24 August 2005). Five minutes with: Dan Greenberg on plans for Cell Power Everywhere™ systems offerings program director Dan Greenberg talks about where the Cell Broadband Engine Architecture is going, how IBM intends to encourage collaboration with developers in its deployment, and what collaboration services are already available for Cell development (24 August 2005). Spufs: The Cell Synergistic Processing Unit as a virtual file system Learn about the CBE's (970-compatible) ISA, discover one way to deal with the CBE's SPU/PPE registers, and get the low-down on the developing Linux, GCC, and GDB support for the newest member of the Power Architecture family (25 June 2005). Meet the experts: Arnd Bergmann on Cell Learn about programming for the CBE in general and Linux for CBE in particular, and a bit more about what little is known about the forthcoming CBE workstation, in this Q & A session with Linux on CBE maintainer Arnd Bergman (25 June 2005). Cell Broadband Engine technology Cell Broadband Engine (Cell BE) Software Development Kit: Cell BE Software Development Kit provides everything Cell software developers need in order to create, build, simulate, and test Cell applications. The SDK enables a cross-development environment that is hosted on fedora 4/x86 platforms. It includes not only a cohesive set of development tools, but also a simulated environment capable of running the latest Linux kernel with Cell BE architecture extensions and run-time support. This simulated environment allows Cell programmers to develop and run Cell applications even without the access to a Cell BE hardware system. Update February 3, 2006: Version 1.0.1 contains bug fixes and new features, such as kernel changes and updates; basic 64-bit run-time environment support; updated SPE Management Library; SPU Debugger; new documentation and technical articles; bogus net support for system simulator; PPC Fedora Core 4 support for system simulator; and bug fixes for libraries, workloads, and samples. Here's how you get started with the Cell Broadband Engine Software Development Kit, Part 1: Installing the Cell BE programming environment. Then, download the components of the Cell BE SDK below:IBM Full-System Simulator for the Cell Broadband Engine Processor: A full-system simulation infrastructure and tools for the Cell Broadband Engine processor.XL C Alpha Edition for Cell Broadband Engine Processor: A high performance C compiler for the IBM Cell Broadband Engine processor.IBM Cell Broadband Engine Software Sample and Library Source Code: Working examples and libraries that demonstrate programming techniques and performance of Cell Broadband Engine Architecture.Cell Broadband Engine SDK for x86 installation script and open source packages: The cross-hosted Cell Broadband Engine development environment contains packages from several sources. This page includes a primary install/build script for the Cell Broadband Engine SDK, an SPU/PPU toolchain package, a Fedora Core 4 for PowerPC run-time package for the GNU/Linux on Cell simulation environment, Cell BE kernel patches for the 2.6.14 Linux Kernel, and the source code for the SPE run-time management library. Linux Kernel Patch for Cell Broadband Engine: IBM is distributing source patches for the Linux operating system that provide services neceessary for supporting the hardware facilities of the Cell Broadband Engine microprocessor. These Linux operating system patches include the run-time programming interfaces necessary for managing and using the Cell BE’s synergistic processing elements (SPEs). The Cell BE Linux Reference Implementation Application Binary Interface Specification, Version 1.0, has been published simultaneously. Cell Broadband Engine SPE Management Library: The SPE management library provides a SPE thread programming model for Cell BE programmers. GCC Toolchain for Cell Broadband Engine: A GCC compiler for the SPE, with support of the standards defined in the SPU C/C++ Language Extensions 2.0, SPU Application Binary Interface Specification 1.3, and other previously released documents. Licenses for Cell Broadband Engine Software Development Kit technologies: A summary of the various licenses for the technologies that are part of the Cell BE SDK. Cell Broadband Engine resources: Frequently asked questions about the Cell Broadband Engine Software Development Kit: Get answers to the your most pressing questions about Cell Broadband Engine technology and the new SDK now available on alphaWorks. Cell Broadband Engine resource center: The developerWorks Cell Broadband Engine Resource Center provides resource for all things Cell BE including articles on the technology, daily news on the processor and links to CBEA forums. Linux on Cell BE-based Systems: The Linux on Cell BE-based Systems Web site at the Barcelona Supercomputing Center (BSC) aims to provide information about how to enable linux on Cell BE platforms. Cell Broadband Engine Architecture from 20,000 feet: 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. Meet the experts: Arnd Bergmann on Cell: The Linux kernel maintainer for Cell talks about programming for this much-anticipated new architecture. Spufs: The Cell Synergistic Processing Unit as a virtual file system: The makers of Cell promised it would be easy to program to. Is it? Get the details of the ongoing Linux port to Cell and see for yourself. Power Efficient Processor Architecture and The Cell Broadband Engine Processor: This paper provides a background and rationale for some of the architecture and design decisions in the Cell processor, a processor optimized for compute-intensive and broadband rich media applications, jointly developed by Sony Group, Toshiba, and IBM. The Design and Implementation of a First-Generation Cell Broadband Engine Processor: This ISSCC paper describes the Design and Implementation of a First-Generation Cell Broadband Engine Processor. A Streaming Processing Unit for a Cell Broadband Engine Processor: This ISSCC paper describes the Streaming Processing Unit for a Cell Processor.