ARM Cortex A9: What I'm Excited About

NVIDIA won't talk about Tegra GPU architecture, but ARM is more than willing to talk about the Cortex A9.

I'm not used to seeing so much pipeline variance between microprocessor cores. The ARM11 core was introduced in 2003 and featured a single-issue 8-stage integer pipeline. Floating point was optional. The Cortex A8 was announced in 2005 and doubled the front end with. The A8 has a dual-issue in-order 13-stage integer pipeline. Doubling issue width increased IPC (instructions per clock) and the deeper pipeline gave it frequency headroom.

The Cortex A9 goes back down to an 8-stage pipeline. It's still a dual-issue pipeline, but instructions can execute out of order. What's even more ridiculous are the frequencies you can get out of this core. TI is going to be shipping a 750MHz and 1GHz SoC based on the Cortex A9. NVIDIA's Tegra 2 will run at up to 1GHz. And even ARM is willing to supply Cortex A9 designs that can run at up to 2GHz on TSMC's 40nm process. Privately I've heard that designs scaling beyond 2GHz, especially at 28nm, are going to be possible.

This is huge for two reasons. Cortex A9 has a shallower pipeline compared to A8, so it does more per clock. It also has an out of order execution engine, allowing it to also do more per clock. At the same clock speed, A9 should destroy A8. ARM estimates that the A8 can do up to 2 DMIPS per MHz (or 2000 DMIPS at 1GHz), whereas the A9 can do 2.5 DMIPS per MHz (2500 DMIPS at 1GHz). Given that most A8 implementations have been at or below 600MHz (1200 DMIPS), and TI's A9s are running at 750MHz or 1GHz (1875 DMIPS or 2500 DMIPS) I'd expect anywhere from a 30 - 100% performance improvement over existing Cortex A8 designs.

That's just for a single core though. At 40nm there's enough room to cram two of these out of order cores on a single SoC. That's what NVIDIA's doing at first with Tegra 2. Two cores together running multithreaded code and now you're looking at multiples of Cortex A8 performance. I'm talking iPhone to 3GS levels of performance improvement. And then some.

The shallower pipeline is very important for keeping power consumption low. Mispredicted branches have a much lower performance and power impact on shallow pipelines than they do on deep ones.

Each Cortex A9 MPCore has its own private L1 instruction and data caches. I'd expect these to be 32KB in size (each) just as they are today on the A8s. The L2 cache is shared by all cores on the SoC. A shared L2 makes sense, especially with a dual-core design. The architecture can scale up to 8MB of L2, but it seems a bit excessive. I'd expect L2 sizes to stay at around 256KB or 512KB. The L2 can run at the CPU's clock speed or for extremely high clocked versions of the A9 it can run at a divider.

What we're seeing is repetition of the sort of evolution we had in the desktop microprocessor, just on a much smaller scale. The Pentium processor was Intel's last high end in-order chip. The Pentium Pro brought out of order execution into the mix. ARM took that same evolutionary step going from the Cortex A8 to A9.

The world is very different today than it was when the Pentium Pro first came out. Multithreaded code is far more commonplace and thus we see that ARM's first out-of-order processor is also multi-core capable. Technically ARM11 could be used in multi-core environments, it just wasn't (at least not commonly). Even NVIDIA's Tegra 1 used the ARM11 MPCore processor, but only used one of them on its SoC. Cortex A9 will change all of that. The first implementations announced by TI as well as NVIDIA are dual-core designs. The next stage in smartphone evolution is enabling usable multitasking through interfaces like what we saw on the Palm Pre. In order to enable good performance in smartphone multitasking you'll need multiple cores.

There is of course a single core version of the Cortex A9. ARM suggests that the single core A9 is a great upgrade path for ARM11 designs. You get full backwards compatibility on code, an extremely small core (most ARM11 designs were 130nm, at 40nm a single A9 core is very space efficient) and much higher performance.

NEON Optional

With the Cortex A8 ARM introduced its own vector FP instruction set called NEON (think of it like ARM's SSE). A8 processors included a NEON core, but with Cortex A9 partners can either choose to use an ARM FPU or NEON. The FPU based Cortex A9s will most likely be single core implementations designed to be ARM11 replacements. The FPU will be smaller to implement than a full NEON unit and thus save cost/power.

Tegra Tablets Today, Smartphones Soon Atom vs. Cortex A9
Comments Locked

55 Comments

View All Comments

  • altarity - Thursday, January 7, 2010 - link

    Guess it's a love hate situation. I kinda like the idea of the boxee being subsumed by my bedroom dresser....
  • sprockkets - Friday, January 8, 2010 - link

    It would just take up too much space in an a/v cabinet.
  • altarity - Thursday, January 7, 2010 - link

    Maybe that's what the Boxee Box will be running....
  • ET - Thursday, January 7, 2010 - link

    Quake 3 yet again. Yawn. I know it's probably the only 3D game available, but I'm still waiting to see WoW and Sims 3 running on a Tegra. Then I'll know the PC is dead.
  • jconan - Friday, January 8, 2010 - link

    but with the new DS2 or whatever it will be called, there will be next gen 3d games...
  • Fox5 - Friday, January 8, 2010 - link

    It's rather sad, Quake 3 has been used to demo 3d pda/phone/other tiny device capabilities since the MBX Lite.

    Seriously, when will phones/mini-computers finally move beyond the level of dreamcast?
  • jensend - Thursday, January 7, 2010 - link

    You won't see WoW and Sims running on a Tegra for a good long while, as those are DirectX based and thus stuck with Windows and x86. Q3 keeps getting shown off on mobile because it uses OpenGL and its code is open so people don't have to do messy licensing stuff to be able to port it to other architectures.
  • sprockkets - Thursday, January 7, 2010 - link

    So how does WoW run on OSX since it has no DirectX?

    From what I understand taking DirectX and making it OpenGL or equiv. isn't that hard. There just has to be a compelling reason to do it (ie money).
  • Affectionate-Bed-980 - Thursday, January 7, 2010 - link

    x86 buddy. x86. You obviously don't know what that means.
  • casmith - Friday, January 8, 2010 - link

    Minimum: PowerPC G5 1.6 GHz or Intel Core Duo processor

    What does x86 have to do with it, again?

Log in

Don't have an account? Sign up now