A little while ago I came across an interesting project called OpenPandora. The aim of the project was to produce a powerful handheld console system running open source software. On paper, the specs for the design are very impressive. The system boasts a Texas Instruments OMAP3530 chip, which is an ARM Cortex A8 corepretty much the fastest ARM chip you can currently buycoupled with a digital signal processor (DSP) and graphics processing unit (GPU) on chip. The DSP is fast enough for a large number of media functions, and the GPU supports OpenGL ES 2.0.
Although this general-purpose system is reasonably powerful, it's marketed as the Pandora console, a handheld gaming machine for homebrew game development. Although relatively slow by desktop (and laptop) standards, it's significantly more powerful than most other portable consoles, and the open nature of the system and its selection of input systems promise to give small developers an opportunity to create interesting games.
The system was originally due to be released in 2008, but various delays have moved the release date further and further back. The Pandora console is now scheduled for release in the second quarter of 2009. I talked with Pandora's Craig Rothwell about some of the decisions and problems behind the console, and I'll share his insights and comments in the rest of this article.
The ARM Core
I've been saying for a while that my next computer will probably have an ARM chip. One of the first computers I ever used was a BBC Model B, produced by Acorn around the 6502 CPU. When designing its next computer, Acorn wanted a faster CPU. Seeing the RISC prototypes coming out of universities in the U.S., Acorn decided to come up with its own RISC design, and the Acorn RISC Machine (ARM) was born.
At around this same time, Apple was looking for a CPU for the device that would eventually become the Newton, and approached Acorn about the ARM. The result was a separate company spun out to provide CPUs for both product families. (In an interesting twist of fate, Apple now has a team working on producing ARM-compatible designs, which it acquired when purchasing P.A. Semi.)
The ARM architecture never did very well on the desktop. Acorn's Archimedes and Risc PC designs were solid, but didn't sell well outside educational circles. When Acorn eventually went bust, ARM Limited continued, selling processors for low-power portable devices. A remarkably similar situation occurred with another British computer company from the 1980s: Psion, which made the first palmtop computer I ever owned, spun out a company to develop its operating system, called EPOC. The OS was rebranded Symbian and now owns around 70% of the global mobile phone market.
ARM doesn't make CPUs, but rather produces intellectual property (IP) coresdesigns for chips that are licensed to third parties. Other companies such as TI, Qualcomm, NVIDIA, and Freescale integrate the IP cores with other components and fabricate them. The latest design is the Cortex-A9 MPCore, but few products have reached the market yet based on these chips. The slightly older Cortex A8 is a lot more common, and this is at the heart of the OMAP3530 found in the Pandora. There are a few Cortex A8 chips around, the OMAP 3 series being one of the most common. A recent entry into the market, the Freescale i.MX515, is due to appear in Netbooks over the next few months.
The A8 runs at clock speeds from 600 MHz up to over 1 GHz. The version in the Pandora is one of the slower models. Does the slow speed matter? That depends.
At 600 MHz, the chip is only slow in comparison to recent desktop and laptop CPUs. Until around 2002, I was using a desktop computer that approximated this speed, and I still use many of the programs I ran then. I also do some things no one was doing back then; watching H.264 video is an obvious example. As CPU speeds have increased, so have the demands of contemporary encoding schemes.
The secret weapon the OMAP 3 offers to address this need is the Texas Instruments TMS320 series DSP, which is capable of decoding 720p H.264 on its own, as well as supporting a number of other codecs. When decoding something like MP3 audio, it can use as little as 15 mW.
These days, the most processor-intensive things I do are related to video and 3D, and neither of these will run on the ARM core in the OMAP. Video (and audio) decoding can be offloaded to the DSP, and 3D runs on the OpenGL ES 2.0-compatible GPU.