Kal-El Has Five Cores, Not Four: NVIDIA Reveals the Companion Core
by Anand Lal Shimpi on September 20, 2011 11:46 AM ESTLast week NVIDIA provided an update on its Tegra SoC roadmap. Kal-El, its third generation SoC (likely to launch as Tegra 3) has been delayed by a couple of months. NVIDIA originally expected the first Kal-El tablets would arrive in August, but now it's looking like sometime in Q4. Kal-El's successor, Wayne, has also been pushed back until late 2012/early 2013. In between these two SoCs is a new part dubbed Kal-El+. It's unclear if Kal-El+ will be a process shrink or just higher clocks/larger die on 40nm.
In the smartphone spirit, NVIDIA is letting small tidbits of information out about Kal-El as it gets closer to launch. In February we learned Kal-El would be NVIDIA's first quad-core SoC design, featuring four ARM Cortex A9s (with MPE) behind a 1MB shared L2 cache. Kal-El's GPU would also see a boost to 12 "cores" (up from 8 in Tegra 2), but through architectural improvements would deliver up to 3x the GPU performance of T2. Unfortunately the increase in GPU size and CPU core count doesn't come with a wider memory bus. Kal-El is still stuck with a single 32-bit LPDDR2 memory interface, although max supported data rate increases to 800MHz.
We also learned that NVIDIA was targeting somewhere around an 80mm^2 die, more than 60% bigger than Tegra 2 but over 30% smaller than the A5 in Apple's iPad 2. NVIDIA told us that although the iPad 2 made it easier for it to sell a big SoC to OEMs, it's still not all that easy to convince manufacturers to spend more on a big SoC.
Clock speeds are up in the air but NVIDIA is expecting Kal-El to run faster than Tegra 2. Based on competing A9 designs, I'd expect Kal-El to launch somewhere around 1.3 - 1.4GHz.
Now for the new information. Power consumption was a major concern with the move to Kal-El but NVIDIA addressed that by allowing each A9 in the SoC to be power gated when idle. When a core is power gated it is effectively off, burning no dynamic power and leaking very little. Tegra 2 by comparison couldn't power gate individual cores, only the entire CPU island itself.
In lightly threaded situations where you aren't using all of Kal-El's cores, the idle ones should simply shut off (if NVIDIA has done its power management properly of course). Kal-El is built on the same 40nm process as Tegra 2, so when doing the same amount of work the quad-core chip shouldn't consume any more power.
Power gating idle cores allows Kal-El to increase frequency to remaining active cores resulting in turbo boost-like operation (e.g. 4-cores active at 1.2GHz or 2-cores at 1.5GHz, these are hypothetical numbers of course). Again, NVIDIA isn't talking about final clocks for Kal-El or dynamic frequency ranges.
Five Cores, Not Four
Courtesy NVIDIA
Finally we get to the big news. There are actually five ARM Cortex A9s with MPE on a single Kal-El die: four built using TSMC's 40nm general purpose (G) process and one on 40nm low power (LP). If you remember back to our Tegra 2 review you'll know that T2 was built using a similar combination of transistors; G for the CPU cores and LP for the GPU and everything else. LP transistors have very low leakage but can't run at super high frequencies, G transistors on the other hand are leaky but can switch very fast. Update: To clarify, TSMC offers a 40nm LPG process that allows for an island of G transistors in a sea of LP transistors. This is what NVIDIA appears to be using in Kal-El, and what NV used in Tegra 2 prior.
The five A9s can't all be active at once, you either get 1 - 4 of the GP cores or the lone LP core. The GP cores and the LP core are on separate power planes.
NVIDIA tells us that the sole point of the LP Cortex A9 is to provide lower power operation when your device is in active standby (e.g. screen is off but the device is actively downloading new emails, tweets, FB updates, etc... as they come in). The LP core runs at a lower voltage than the GP cores and can only clock at up to 500MHz. As long as the performance state requested by the OS/apps isn't higher than a predetermined threshold, the LP core will service those needs. Even with your display on it's possible for the LP core to be active, so long as the performance state requested by the OS/apps isn't too high.
Courtesy NVIDIA
Once it crosses that threshold however, the LP core is power gated and state is moved over to the array of GP cores. As I mentioned earlier, both CPU islands can't be active at the same time - you only get one or the other. All five cores share the same 1MB L2 cache so memory coherency shouldn't be difficult to work out.
Android isn't aware of the fifth core, it only sees up to 4 at any given time. NVIDIA accomplishes this by hotplugging the cores into the scheduler. The core OS doesn't have to be modified or aware of NVIDIA's 4+1 arrangement (which it calls vSMP). NVIDIA's CPU governor code defines the specific conditions that trigger activating cores. For example, under a certain level of CPU demand the scheduler will be told there's only a single core available (the companion core). As the workload increases, the governor will sleep the companion core and enable the first GP core. If the workload continues to increase, subsequent cores will be made available to the scheduler. Similarly if the workload decreases, the cores will be removed from the scheduling pool one by one.
Courtesy NVIDIA
NVIDIA can switch between the companion and main cores in under 2ms. There's also logic to prevent wasting time flip flopping between the LP and GP cores for workloads that reside on the trigger threshold.
NVIDIA expects pretty much all active work to be done on the quad-core GP array, it's really only when your phone is idle and dealing with background tasks that the LP core will be in use. As a result of this process dichotomy NVIDIA is claiming significant power improvements over Tegra 2, despite an increase in transistor count:
Courtesy NVIDIA
NVIDIA isn't talking about GPU performance today but it did reveal a few numbers in a new white paper:
Courtesy NVIDIA
We don't have access to the benchmarks here but everything was run on Android 3.2 at 1366 x 768 with identical game settings. The performance gains are what NVIDIA has been promising, in the 2 - 3x range. Obviously we didn't run any of these tests ourselves so approach with caution.
Final Words
What sold NVIDIA's Tegra 2 wasn't necessarily its architecture, but timing and the fact that it was Google's launch platform for Honeycomb. If the rumors are correct, NVIDIA isn't the launch partner for Ice Cream Sandwich, which means Kal-El has to stand on its own as a convincing platform.
Courtesy NVIDIA
The vSMP/companion core architecture is a unique solution to the problem of increasing SoC performance while improving battery life. This is a step towards heterogenous multiprocessing, despite the homogenous implementation in Kal-El. It remains to be seen how tangible is the companion core's impact on real world battery life.
74 Comments
View All Comments
Stahn Aileron - Tuesday, September 20, 2011 - link
Funny. This is similar to the thoughts I've had for the past year of why Intel hasn't tried integrating an Atom core (or two) into an i-series CPU for standby modes.This would've been the thing I think Intel would try to do for its ultrabook initiative. LP Atom core running while the system is idle or in standby, Core, uh, cores running for active workloads.
I honestly expect one of these days to see an i3 or i5 series CPU with an Atom in it. Maybe 2+2 arrangement.
polysick - Wednesday, September 21, 2011 - link
I wonder, with this dynamic allocation of cores going on here, will it scale well past 4 cores? On an 8 core machine, how often would you use all 8? what about 16? 512? It seems reminiscent of the problem instruction level parallelism ran into when intel first started to run out of things to do with more transistors. Having more than four ALU's proved pointless because you'd end up wasting the rest of your instruction word with no-ops most of the time. Without massively threaded programs, do you think you think you could realize utilize more cores?BoyBawang - Wednesday, September 21, 2011 - link
I guess the unused cores will serve as heat sink. So the more cores... the cooler.polysick - Wednesday, September 21, 2011 - link
I'd think that would just be a waste of transistors.. not highly effective.BoyBawang - Wednesday, September 21, 2011 - link
But still power efficient in multitasking like several little apps running at the same time distributed to 4 cores where each under-clocked at 200mhz. That configuration is more power efficient than a single-core clocked at 800mhzGullLars - Sunday, September 25, 2011 - link
But that would require a reversed 4+1 configuration, with 4 LP-cores for multitasking and 1 G-core for those heavy single-thread workloads. Perhaps a 4LP + 2G might be more efficient?Also, regarding stuff noted earlier in this thread, would you consider buying an i(something)-#### with twice the cores for twice (or 3x?) the price, but with the restrictions of half the allowed clock frequency (except for single and dual core turbo, which would be the same), giving you the same throughput potential at lower power.
Wolfpup - Wednesday, September 21, 2011 - link
Okay, so Tegra 2 and the A5 are basically the same thing, save for two SGX 543s (what is that, basically 8 cores?) instead of 8 of Nvidia's cores. And supposedly the two SGX 543s are better.But then how do you stick FIVE A9s on there, and bump it to 12 GPU cores, and STILL have A5 be 30% larger? That MUST be a typo, right? I mean...the SGX 543s aren't THAT impressive, are they?
shiznit - Wednesday, September 21, 2011 - link
Yes they are.And the A5 uses a different process from a different foundry.
Lucian Armasu - Thursday, September 22, 2011 - link
If what Anand says is true, than the A5 should be 2x as large as Tegra 2, which means the GPU is a lot larger, and it's why it managed to beat all the other chips in the market on GPU benchmarks. This also makes me think that they will shrink the GPU part for the iPhone 5, so it won't be as powerful.BoyBawang - Friday, September 23, 2011 - link
If you read the whitepaper(b), Nvidia seems defensive that Kal-El's 4 processors, although can be turned on/off individually, aren't asynchronous meaning they always operate at the same frequency. In contrast, Qualcomms dual-core CPU can each operate at different frequency depending on load.