CPU Option 2: Dual-Core 64-bit NVIDIA Denver

Three years ago, also at CES, NVIDIA announced that it was working on its own custom ARM based microprocessor, codenamed Denver. Denver was teased back in 2011 as a solution for everything from PCs to servers, with no direct mention of going into phones or tablets. In the second half of 2014, NVIDIA expects to offer a second version of Tegra K1 based on two Denver cores instead of 4+1 ARM Cortex A15s. Details are light but here’s what I’m expecting/have been able to piece together.

Given the 28nm HPM process for Tegra K1, I’d expect that the Denver version is also a 28nm HPM design. NVIDIA claims the two SoCs are pin-compatible, which tells me that both feature the same 64-bit wide LPDDR3 memory interface.

The companion core is gone in the Denver version of K1, as is the quad-core silliness. Instead you get two, presumably larger cores with much higher IPC; in other words, the right way to design a CPU for mobile. Ironically it’s NVIDIA, the company that drove the rest of the ARM market into the core race, that is the first (excluding Apple/Intel) to come to the realization that four cores may not be the best use of die area in pursuit of good performance per watt in a phone/tablet design.

It’s long been rumored that Denver was a reincarnation of NVIDIA’s original design for an x86 CPU. The rumor there being NVIDIA used binary translation to convert x86 assembly to some internal format (optimizing the assembly in the process for proper scheduling/dispatch/execution) before it hit the CPU core itself. The obvious change being instead of being x86 compatible, NVIDIA built something that was compatible with ARMv8.

I believe Denver still works the same way though. My guess is there’s some form of a software abstraction layer that intercepts ARMv8 machine code, translates and optimizes/morphs it into a friendlier format and then dispatches it to the underlying hardware. We’ve seen code morphing + binary translation done in the past, including famously in Transmeta’s offerings in the early 2000s, but it’s never been done all that well at the consumer client level.

Mobile SoC vendors are caught in a tough position. Each generation they are presented with opportunities to increase performance, however at some point you need to move to a larger out of order design in order to efficiently scale performance. Once you make that jump, there’s a corresponding increase in power consumption that you simply can’t get over. Furthermore, subsequent performance increases usually depend on leveraging more speculative execution, which also comes with substantial power costs.

ARM’s solution to this problem is to have your cake and eat it too. Ship a design with some big, speculative, out of order cores but also include some in-order cores when you don’t absolutely need the added performance. Include some logic to switch between the cores and you’re golden.

If Denver indeed follows this path of binary translation + code optimization/morphing, it offers another option for saving power while increasing performance in mobile. You can build a relatively wide machine (NVIDIA claims Denver is a 7-issue design, though it’s important to note that we’re talking about the CPU’s internal instruction format and it’s not clear what type of instructions can be co-issued) but move a lot of the scheduling/ILP complexities into software. With a good code morphing engine the CPU could regularly receive nice bundles of instructions that are already optimized for peak parallelism. Removing the scheduling/OoO complexities from the CPU could save power.

Granted all of this funky code translation and optimization is done in software, which ultimately has to run on the same underlying CPU hardware, so some power is expended doing that. The point being that if you do it efficiently, any power/time you spend here will still cost less than if you had built a conventional OoO machine.

I have to say that if this does end up being the case, I’ve got to give Charlie credit. He called it all back in late 2011, a few months after NVIDIA announced Denver.

NVIDIA announced that Denver would have a 128KB L1 instruction cache and a 64KB L1 data cache. It’s fairly unusual to see imbalanced L1 I/D caches like that in a client machine, which I can only assume has something to do with Denver’s more unique architecture. Curiously enough, Transmeta’s Efficeon processor (2nd generation code morphing CPU) had the exact same L1 cache sizes (it also worked on 8-wide VLIW instructions for what it’s worth). NVIDIA also gave us a clock target of 2.5GHz. For an insanely wide machine 2.5GHz sounds pretty high, especially if we’re talking about 28nm HPM, so I’m betting Charlie is right in that we need to put machine width in perspective.

NVIDIA showed a Denver Tegra K1 running Android 4.4 at CES. The design came back from the fab sometime in the past couple of weeks and is already up and running Android. NVIDIA hopes to ship the Denver version of Tegra K1 in the second half of the year.

The Denver option is the more interesting of the two as it not only gives us another (very unique) solution to the power problem in mobile, but it also embraces a much more sane idea of the right balance of core size vs. core count in mobile.

Introduction & CPU Option 1 The GPU
Comments Locked

88 Comments

View All Comments

  • HighTech4US - Monday, January 6, 2014 - link

    You quoting CharLIE and using his Nvidia hate filled speculative drivel as somehow being gospel taints your article.
  • MrSpadge - Monday, January 6, 2014 - link

    He is right, occasionally - you've got to give him that. The problem is you never know before it happens, which makes reading the Inq pretty pointless.
  • HighTech4US - Wednesday, January 8, 2014 - link

    A broken clock is right twice a day and wrong the rest of the time which is pretty much charLIE's track record on Nvidia.
  • OreoCookie - Monday, January 6, 2014 - link

    If you're familiar the style of The Register and The Inquirer (at least in the past when I was reading them regularly), they often packaged excellent tech reporting in their quirky and snarky way of writing things. (I read both back in the day to learn more about the inner workings of cpu designs and such.) (Charlie Demerjian hails from The Inquirer.) And Anand did not treat Demerjian as gospel, he said that it looks as if he may have been spot on.
  • Xavierx78 - Monday, January 6, 2014 - link

    Would really like to see the K1 in the next version of OUYA!
  • silenceisgolden - Monday, January 6, 2014 - link

    I'm noticing a lack of talk about LTE/radio support still
  • fafa1971 - Monday, January 6, 2014 - link

    They can bundle a discrete modem, NVIDIA i500 (LTE cat. 4, 150 Mbps):

    http://www.nvidia.com/object/i500-cellular-modems-...
  • Rayb - Monday, January 6, 2014 - link

    Apparently Nvidia decided to avoid the US market for lack of CDMA. It has been certified for AT&T and will be marketed globally, just not in the US because Verizon/Sprint don't use the GSM baseband.

    http://www.fiercewireless.com/story/nvidia-not-tar...
  • Krysto - Monday, January 6, 2014 - link

    Decent showing from Nvidia with K1, but the real game-changer will be K2, or whatever the hell they'll call it then, with Denver and Maxwell by default, and made at 16nm FinFET. Hopefully it will arrive no later than early spring next year.

    Normally that chip should get 700 Gflops, but if they can push another 3x, to 1 TF, that would really give them a lot of buzzwords in the media: "Denver", "Maxwell", "16nm FinFET", "1 Teraflops", etc

    I hope they don't blow it. Qualcomm is already getting lazy because they have too much domination in the market. We need another strong competitor.
  • ddriver - Monday, January 6, 2014 - link

    Got to love Shang Tsungs' marketing, K1 - the 192 core chip, now coming with either 2 or 4 cores.

Log in

Don't have an account? Sign up now