Skip to main content

Cell/B.E. SDK: Understanding the terminology

This glossary of Cell Broadband Engine system terms provides a thorough start for processor programming.

Kane Scarlett, developerWorks Editor, IBM
Kane Scarlett
Kane Scarlett is the editor of the Power Architecture technology zone for developerWorks. His past publishing work was with such magazines as Unix Review, Advanced Systems, and the -World publications (Java-, Sun-, NC-, Linux-), as well as some little oddball journals like National Geographic Magazine. If you have any events, news, tips, or tools to mention, please contact him.

Summary:  A quick-reference glossary of terms you might encounter when installing and using the Cell Broadband Engine™ (Cell/B.E.) processor SDK.

Date:  19 Oct 2007 (Published 17 Apr 2007)
Level:  Introductory
Activity:  2883 views

I hope this glossary of terms you're likely to encounter while using the Cell/B.E. SDK Installation Guide and while programming for your processor will come in handy— the terms were taken directly from the guide and placed here as a quick reference. It will be updated periodically when new information becomes available. Some of the entries point to more information on the topic. If you find a term that has become important to you during your Cell Broadband Engine processor training and implementation, please mail it to me for inclusion in this glossary.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

-- A --

Anaconda. The main installation program for Fedora Core 6. (See this tip for a quick guide to installing FC6 for use with the Cell/B.E. SDK 2.1.)

AOS. Array of structures. A method of organizing related data values. Also called vector-across form. See SOA .

atomic operation. A set of operations, such as read-write, that are performed as an uninterrupted unit.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


-- B --

Barcelona Supercomputing Center. Spanish National Supercomputing Center, supporting BladeCenter and Linux® on Cell/B.E.

BCS. See Barcelona Supercomputing Center .

BE. Broadband Engine. See CBEA .

BOOTP. Bootstrap Protocol. A UDP network protocol used by a network client to obtain its IP address automatically.

Broadband Engine. See CBEA .

built-ins. A type of C and C++ programming language intrinsic that is similar to generic intrinsics, except that built-ins map to more than one SPU instruction. These intrinsics are prefaced by spu_.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


-- C --

cache. High-speed memory close to a processor. A cache usually contains recently accessed data or instructions, but certain cache-control instructions can lock, evict, or otherwise modify the caching of data or instructions.

CBEA. Cell Broadband Processor Architecture. A new architecture that extends the 64-bit PowerPC® architecture. The CBEA and the Cell Broadband Engine are the result of a collaboration between Sony, Toshiba, and IBM, known as STI, formally started in early 2001.

Cell/B.E. Cell Broadband Engine. See CBEA .

Cell Broadband Engine Linux task. A task running on the PPE and SPE. Each such task has one or more Linux threads and some number of SPE threads. All the Linux threads within the task share the task's resources, including access to the SPE threads.

Cell Broadband Engine program. A PPE program with one or more embedded SPE programs.

CPI. Cycles per instruction. Average number of clock cycles taken to perform one CPU instruction.

CPL. Common Public License.

cycle-accurate simulation. See performance simulation .

cycle. Unless otherwise specified, one tick of the PPE clock.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


-- D --

DHCP. Dynamic Host Configuration Protocol.

DMA. Direct Memory Access. A technique for using a special-purpose controller to generate the source and destination addresses for a memory or I/O transfer.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


-- E --

EA. See effective address .

effective address. An address generated or used by a program to reference memory. A memory-management unit translates an effective address (EA) to a virtual address (VA), which it then translates to a real address (RA) that accesses real (physical) memory. The maximum size of the effective address space is 264 bytes.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


-- F --

FFT. Fast Fourier Transform.

FIFO. First In First Out. Queue type in which elements are processed in order of entry. See also LIFO .

FSF. Free Software Foundation. Organization promoting the use of open source software such as Linux.

FTP. File Transfer Protocol.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


-- G --

GCC. GNU C compiler.

gdb. GNU debugger. A modified version of gdb, ppu-gdb, starts a Cell Broadband Engine program. The PPE component runs first and uses system calls, hidden by the SPU programming library, to move the SPU component of the Cell Broadband Engine program into the local store of the SPU and start it running.

GPL. GNU General Public License. Guarantees freedom to share, change, and distribute free software.

GNU. GNU is Not UNIX®. A project to develop free UNIX-like operating systems such as Linux.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


-- H --

HTTP. Hypertext Transfer Protocol. A method used to transfer or convey information on the World Wide Web.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


-- I --

I/O device. Input/output device. From the viewpoint of software I/O devices exist as memory-mapped registers that are accessed in main-storage space by load/store instructions.

IDL. Interface definition language.

ILAR. IBM International License Agreement for early release of programs.

intrinsic. A C-language command, in the form of a function call, that is a convenient substitute for one or more inline assembly-language instructions. Intrinsics make the underlying ISA accessible from the C and C++ programming languages.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


-- L --

L1. Level-1 cache memory. The closest cache to a processor, measured in access time.

L2. Level-2 cache memory. The second-closest cache to a processor, measured in access time. A L2 cache is typically larger than a L1 cache.

latency. The time between when a function (or instruction) is called and when it returns. Programmers often optimize code so that functions return as quickly as possible; this is referred to as the low-latency approach to optimization. Low-latency designs often leave the processor data-starved, and performance can suffer.

libspe. An SPU-thread runtime management library.

LIFO. Last In First Out. Queue type in which elements are processed in reverse order of entry. See also FIFO .

Linux. An open-source UNIX-like computer operating system.

LGPL. Lesser General Public License. Similar to the GPL , but does less to protect the user's freedom.

local store. The 256-KB local store associated with each SPE. It holds both instructions and data.

LS. See local store .

LVM. Logical volume manager. An abstraction of a physical hard disk.

LVM partition. A portion of a physical drive managed by the LVM.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


-- M --

main memory. See main storage .

main storage. The effective-address (EA) space. It consists physically of real memory (whatever is external to the memory-interface controller, including both volatile and nonvolatile memory), SPU LSs, memory-mapped registers and arrays, memory-mapped I/O devices (all I/O is memory-mapped), and pages of virtual memory that reside on disk. It does not include caches or execution-unit register files. See also local store .

makefile. A descriptive file used by the make command in which the user specifies: (a) target program or library, (b) rules about how the target is to be built, (c) dependencies which, if updated, require that the target be rebuilt.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


-- N --

NUMA. Non-uniform memory access.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


-- P --

parallel array form. See SOA .

PDF. Portable document format.

performance simulation. Simulation by the IBM Full System Simulator for the Cell Broadband Engine in which both the functional behavior of operations and the time required to perform the operations is simulated. Also called cycle-accurate simulation .

PERL. Practical extraction and reporting language.

PowerPC. Of or relating to the PowerPC architecture or the microprocessors that implement this architecture.

PowerPC architecture. A computer architecture that is based on the third generation of RISC processors. The PowerPC architecture was developed jointly by Apple, Motorola, and IBM.

PPC. See PowerPC .

PPE. PowerPC Processor Element. The general-purpose processor in the Cell/B.E. chip.

PPSS. PowerPC Processor Storage Subsystem. Part of the PPE . It operates at half the frequency of the PPU and includes a L2 cache and a Bus Interface Unit (BIU).

PPU. PowerPC Processor Unit. The part of the PPE that includes the execution units, memory-management unit, and L1 cache.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


-- S --

sandbox. Safe place for running semi-trusted programs or scripts.

scalar. An instruction operand consisting of a single value.

SDK. Software development toolkit. A complete package of tools for application development. The Cell/B.E. SDK includes sample software for the Cell Broadband Engine.

SIMD. Single Instruction Multiple Data. Processing in which a single instruction operates on multiple data elements that make up a vector data-type. Also known as vector processing . This style of programming implements data-level parallelism.

SIMDize. To transform scalar code to vector code.

SOA. Structure of arrays. A method of organizing related data values. Also called parallel-array form. See also AOS .

SPE. Synergistic Processor Element. It includes an SPU, an MFC, and an LS.

SPE thread. A thread scheduled and run on an SPE. A program has one or more SPE threads. Each such thread has its own SPU local store (LS),.128 x 128-bit register file, program counter, and MFC Command Queues, and it can communicate with other execution units (or with effective-address memory through the MFC channel interface).

SPU. Synergistic Processor Unit. The part of an SPE that executes instructions from its local store (LS).

spulet. A standalone SPU program that is managed by a PPE executive.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


-- T --

tag group. A group of DMA commands. Each DMA command is tagged with a 5-bit tag group identifier. Software can use this identifier to check or wait on the completion of all queued commands in one or more tag groups. All DMA commands except getllar, putllc, and putlluc are associated with a tag group.

Tcl. Tool Command Language. An interpreted script language used to develop GUIs, application prototypes, Common Gateway Interface (CGI) scripts, and other scripts.

thread. A sequence of instructions executed within the global context (shared memory space and other global resources) of a process that has created (spawned) the thread. Multiple threads (including multiple instances of the same sequence of instructions) can run simultaneously if each thread has its own architectural state (registers, program counter, flags, and other program-visible state). Each SPE can support only a single thread at any one time. Multiple SPEs can simultaneously support multiple threads. The PPE supports two threads at any one time, without the need for software to create the threads. It does this by duplicating the architectural state.

TLB. Translation Lookaside Buffer. An on-chip cache that translates virtual addresses (VAs) to real addresses (RAs). A TLB caches page-table entries for the most recently accessed pages, thereby eliminating the necessity to access the page table from memory during load/store operations.

TRE. Terrain Rendering Engine.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


-- V --

vector. An instruction operand containing a set of data elements packed into a one-dimensional array. The elements can be fixed-point or floating-point values. Most Vector/SIMD Multimedia Extension and SPU SIMD instructions operate on vector operands. Vectors are also called SIMD operands or packed operands.

vector processing. See SIMD .

Vector/SIMD Multimedia Extension. The SIMD instruction set of the PowerPC architecture, supported on the PPE.

virtual memory. The address space created using the memory management facilities of a processor.

virtual storage. See virtual memory .

VNC. Virtual Network Computing. A desktop-sharing system which uses the RFB (Remote FrameBuffer) protocol to remotely control another computer.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


-- W --

workload. A set of code samples in the SDK that characterizes the performance of the architecture, algorithms, libraries, tools, and compilers.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


-- X --

XDR. Rambus XDR DRAM memory technology.

xlc. The IBM optimizing C compiler.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


-- Y --

yum. Yellow dog Updater, Modified. A package manager for RPM-compatible Linux systems.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z


Resources

Learn

Get products and technologies

Discuss

About the author

Kane Scarlett

Kane Scarlett is the editor of the Power Architecture technology zone for developerWorks. His past publishing work was with such magazines as Unix Review, Advanced Systems, and the -World publications (Java-, Sun-, NC-, Linux-), as well as some little oddball journals like National Geographic Magazine. If you have any events, news, tips, or tools to mention, please contact him.

Comments (Undergoing maintenance)



Trademarks  |  My developerWorks terms and conditions

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Multicore acceleration
ArticleID=210761
ArticleTitle=Cell/B.E. SDK: Understanding the terminology
publish-date=10192007
author1-email=kane@us.ibm.com
author1-email-cc=

My developerWorks community

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Special offers