Wednesday, April 3, 2013

An ARM and a leg (up)...

Six years ago, I plunked down about $250 for my first tablet. That's right - March of 2008. That tablet was the Nokia N800 - fondly called the Nokia Internet Tablet.

It wasn't very well received, but did have a dedicated following. I don't remember what I was using to convert videos at the time, but I had streamlined it to drag and drop to make the n800 my primary multimedia device. Evince PDF reader, and CBR viewer, several giant JPGs of google maps, and eventually a webkit browser made this a rather nice little (somewhat pokey) device.

The OS at the time, was Maemo. Maemo was interesting - quite efficient given the CPU, however I don't think they ever invested enough time to make it as stable as it could have been. Widgets, taskbars, gizmo/skype calls - it's feature set was quite well rounded - and the fact that it took not just an SD card, but also a mini-SD as well was fantastic. All built on Debian ARM based Linux.

The Hardware was decent at the time - a 5-inch 800x480 resolution screen - even today, not bad. The CPU was a 330MHz Texas Instruments OMAP 2 (ARM11 base). It was rather pokey - but it definitely showed me that ARM was capable of general purpose processing.

Today we're pushing vastly more powerful CPUs, and I'll have to give Android/IOS the nudge for a more friendly and functional OS.

Cortex-A8 - This was a pretty good jump over ARM11, and it really felt like ARM was starting to become competitive. When I say competitive, I'm referring to x86 CPUs. ARM increased the frequency, made this dual issue (able to optimally fetch, decode execute etc 2 instructions at once).

Cortex-A9 - Another nice jump over the previous CPU. The A9 design's big wins - out of order processing, and multi-core capable. This CPU was powerful enough to not only make a big splash at the time, but to be used and overused for the last 2 years.I say overused, because I'm really looking forward to Cortex-A15 :)

Not everyone stuck to ARM's designs. Several manufacturers developed CPUs with ARM compatible instruction sets with their own designs. One of the more notable manufacturers being Qualcomm. Looking at the last couple of designs - the Snapdragon S3 and S4.

With the Snapdragon S3 made the jump to multicore, raised the frequency level, and doubled addressable RAM to 2GB. Maybe not quite as powerful as Cortex A9, but definitely ahead of the A8.

Already this is sounding like several of today's x86 lower power CPUs. With the S4, the die shrank from 45nm to 28nm. While scorpion was competitive with Cortex-A9 designs in performance, the Snapdragon S4 went further. Each core is a 3-issue core, increasing parallelism. A longer 11-stage pipeline compared to 8-stage A9 in hopes to keep clock speed high. S4 supported quad core. With the enhanced capabilities of this CPU, Qualcomm is looking at derivative designs to compete with upcoming Cortex A15. 

The S4's advantages over cortex A9 include the 3 issue wide decode (vs 2), advanced floating point unit (VFPv4 vs v3), 128bit wide NEON (i.e. SIMD instructions) vs 64bit, and L0 cache (not sure how that works...). Cortex A15, which is starting to get some play (Google's Nexus 10 tablet) implements a lot of these advantages.

And hey - it's efficient enough to not melt butter...
http://www.youtube.com/watch?v=4mSD_EhgGSc&feature=player_embedded

With the S4 derivatives and Cortex A15 based CPUs (even the old Cortex A9), the mobile space has made some big jumps. People are questioning if ARM can compete with x86. Well, it can, and does. If you're comfortable with an app's performance, it doesn't matter what CPU is powering it. A CPU competes with another if the user doesn't notice or mind the difference between the two - and that's very much the case with many applications. If I'm browsing the web, playing an HD movie, reading books or magazines (content consumption) ARM is fine - as is the interface we're normally associating it with i.e. touchscreens for phones and tablets.

Can ARM compete at a higher level? I think it's possible - BUT, OS support can get hairy. Android isn't quite ready to replace my desktop, and Linux support is spotty among ARM CPU manufacturers. Here's hoping that situation improves to give us more choice.

No comments:

Post a Comment