I suppose you've all noticed this newish class of ultra portable cheap
netbooks based on the Intel Atom? Forget about that, there's apparently
already a new kid on the block.
The tiny Beagle Board based on Texas Instruments OMAP3530 has been
available for some time, then came this week the Pandora - a pocketable
computer with built in game-controller, also based on the 3530 - and
caused quite a stir on Slashdot.
And now today I read that Dell is going to introduce a fullsized Vista
laptop that as an added bonus, alternatively can fastboot into one these
tiny OMAP environments. Nokia also has a product in the pipe ... And
they are all running the Linux kernel of course.
What is this hype all about?
The bad News
--------------
* Random access memory is on chip and hardwired to 128MB.
This means that Desktop Environments like Gnome is out of the equation.
(I realize that some might reckon this as good news ..)
The good News
----------------
Hardware OpenGL ES 2.0 and an Arm processor with support for vectors of
float as well as double aside, the one thing that strikes me the most
is:
* It's a 2 Watt system! .. including everything and the kitchen sink.
So if not really running on candle light, it is not a far cry. A
pocketable solar cell should be enough to get you up on your marks
again, in case you run out of juice. At these power levels, battery
lifetime finally appears irelevant.
The real star of the show - and why I am mentioning anything at all of
all of this - is the included DSP:
* The TMS320C64x+
At first I was a little disappointed that this is not a floating point
DSP - we have kind of settled for floats as the standard carrier for
audio here lately - but since those domains are already covered by the
Arm vector co-processor, I reluctantly downloaded the 1000 page manual
to see if I could figure out some of what it is all about ...
TI describes their DSP as an "advanced very long instruction word (VLIW)
architecture", which is another way of saying that a bunch of
instructions are grouped together and excuted in parallel on seperate
execution units, each on their own data .. not totally unlike the these
days familiar notion of SIMD, where a single instruction is executed in
parallel, also on multiple data, but in the VLIW case of course way more
flexible.
The execution units are eight in numbers, all slightly different from
each other except for two that are specialized in memory address
calculations, store and load, and do not resemble anything else. This
symmetric pattern of two applies to the other execution units as well.
In fact - except for a few corner cases - you could view the the whole
DSP as being a dual processor, each half having its own four 32bit
execution units for load/store, (dual) 16bit fixpoint madd, 32/40bit
shift and 32/40bit fixpoint mul as well as their own register file. The
capabilities of the units overlap somewhat and is not set in stone the
way I just outlined above. Furthermore, instructions may be predicated,
that is to say that depending on a condition the individual instructions
may be replaced with a noop so that one (or more parts) of this 8 way
instruction mayhem can relax and enjoy having arrived at a result
instead of mindlessly overwriting it, while the rest do their best to
clean up their act. Oh, and did I mention that each VLIW can be set up
to execute in parallel, serial or anyting in between ..
If the above does not sound like your favourite sunday soduko, do not
dispair. For private evalution or opensource developement, there is an
optimizing C-compiler available as a free download from TI themselves.
Final Words
------------
Both of the boards available at low cost to developers for the time
being utilizes the same audio codec which also doubles up as a decision
engine for power saving state (or perhaps that should be the other way
around?) Samplerates are for playback: 96K, 48K, 44.1K, 32K and similar
for recording except no 96K. The bittiness is 16. There are two channels
in and two out and ALSA is supposed to work out of the box.
References
-----------
The Pandora Wiki has a convenient link page:
http://pandorawiki.org/Hardware_documentation