How To Treat a 1+4 Hybrid CPU

At the top of the article, I explained that the reason for using two different types of processor core, one big on performance and the other big on efficiency, was that users could get the best of both worlds depending on if a workload could be run efficiently in the background, or needed the high performance for a user experience interaction. You may have caught onto the fact that I also stated that because Intel is using a 1+4 design, it actually makes more sense for multi-threaded workloads to run on the four Atom cores.

Using a similar power/performance graphs, the effect of having a 1+4 design is quite substantial. On the left is the single core power/performance graphs, but on the right is when we compare 1 Sunny Cove to all 4 Tremont cores working together.

 

Where the previous graph considered a 1+1 design, which is more relevant in those user experience scenarios listed above, on the right is the 1+4 design for when the user demands a heavier workload that might not be latency critical. Because there are four Atom cores, the blue line multiplies by four in both directions.

Now obviously the real world scenario is somewhere between the two, as it is possible to use only one, two, or three of the smaller cores at any given time. The CPU and the OS is expected to know this, so it can govern when workloads that can be split across multiple cores end up on either the big core or the small core.

In this graph from Intel, we have three distinct modes on which threads can operate.

  • ‘Sunny Cove/SNC’ is for responsiveness and user experience threads,
  • ‘Tremont/TNT Foreground’, for user related tasks that require multiple threads that the user is waiting on.
  • ‘Tremont/TNT Background’, for non-user related tasks run in efficiency mode

Even though the example here is web browsing, it might be best to consider something a bit beefier, like video encoding.

If we run video encoding, because it is a user related task that requires multiple threads, it will run on the four Tremont cores (TNT FG). Anything that Windows wants to do alongside that gets scheduled as TNT BG. If we then open up the start menu, because that is a responsiveness task, that gets scheduled on the SNC core.

Is 1+4 the Correct Configuration?

Intel here has implemented a 1+4 core design, however in the smartphone space, things are seen a little differently. The most popular configuration, by far, is a 4+4 design, simply because a lot of smartphone code is written to take advantage of multiple foreground or multiple background threads. There are a number of cost-down designs that reduce die area and power by going for a 2+4 implementation. Everyone seems adamant that 4 is a good number for the smaller cores, partly because they are small and cheap to add, but because Arm’s quad-core implementation is a base unit for its IP.

The smartphone space in recent quarters has also evolved from a two tier system of cores. In some of the more leading edge designs, we now have three types of core: a big, a middle, and a small. Because of the tendency to stay with eight core designs, we now get 1+3+4 or 2+2+4 designs, powered by complex schedulers that manage where to put the threads for the best user experience, the best battery life, or somewhere in the middle. Mediatek has been famously dabbling in 10 core designs, going for a 2+4+4 approach.

One thing missing from all of these implementations is an SoC with one big core and four small cores. Smartphone vendors don’t seem to be interested in 1+4 silicon, and yet Intel has decided on it for Lakefield. This is borne out of decisions made on both sides.

From the smartphone perspective, when hybrid designs came about, the big cores just weren’t powerful enough on their own. In order to offer something more than simply basic, at least two cores were needed, but because of how Arm architected the big and little designs, it almost became standard to look into 4+4 implementations of big and small cores. It was only until this configuration was popularized over a couple of years, and Arm big cores got more powerful, that chip designs started looking at 2+4, or 1+3+4 designs.

On Intel’s side of the fence, the biggest problem it has is the size of the Sunny Cove core. By comparison, it’s really, really big. Because the graphics core is the same as Ice Lake and reuses its design, there simply isn’t enough room within the 82 mm2 compute die to add another core. Not only that, but there is a question of power. Sunny Cove wasn’t built for sub-1W operation, even in the Tremont design. We see big smartphone silicon pulling 4-5W when all eight cores are active – there is no way, based on our understanding of Intel’s designs, that we could see four (or even two) Sunny Cove cores being in the optimal performance per watt range while being that low. Intel’s Lakefield graphics, with 64 EUs, is running at only 500 MHz – a lot lower than the Ice Lake designs. Even if Intel moved that down to a 32 EU design to make space for another Sunny Cove core, I reckon that it would eat the power budget for breakfast and then some.

Intel has made the 1+4 design to act as a 0+4 design that sometimes has access to a higher performance mode. Whereas smartphone chips are designed for all eight cores to power on for sustained periods, Lakefield is built only for 0+4 sustained workloads. And that might ultimately be its downfall. This leads onto a deep discussion about Lakefield’s performance, and what we should expect from it.

Hybrid CPUs: Sunny Cove and Tremont Lakefield in Terms of Laptop Size
Comments Locked

221 Comments

View All Comments

  • ProDigit - Friday, July 3, 2020 - link

    It actually starts making sense, once you start doubling up on the cores. Sure, dual or quad core atom processors aren't really a thing. But at 95W tdp, you could be running a 30 to 60 core cpu. And those numbers are for 14nm. Not 10.
    That could make it interesting!
  • Alexvrb - Saturday, July 4, 2020 - link

    Heck toss in 200W of these and it can be used to generate polygons and stuff! Oh wait... they already tried that. Seriously, a pile of slower cores might be OK for a secondary chip (accelerator) but it's not ideal for a main CPU and even less so for a consumer use case. Even a fast quad core would beat the stuffing out of a 60 core Atom for the overwhelming majority of consumer workloads.

    Actually, even as an accelerator for professional use there are often better solutions - GPUs and/or purpose-built accelerators, depending on your workload. That's why Intel shifted gears in that realm too.
  • LiKenun - Thursday, July 2, 2020 - link

    The way I understand the implications for programmers… sometimes a program will do a one-time check for a particular processor feature (e.g.: if Avx2.IsSupported == true) and load optimized code at startup or optimize byte code compilation to remove unused branches. Then the program uses the loaded implementations for its entire running lifetime. There’s going to be a lot of work needed to undo these assumptions about processor feature sets not changing while the program is running.
  • Lucky Stripes 99 - Saturday, July 4, 2020 - link

    It would really be nice if Windows became better about ISA and API version controls. Instead of having to do a bunch of run time checks to avoid arcane system errors, I'd like to be able to set some minimum versions in the header of the EXE so that things will gracefully fail at startup. From a scheduler standpoint, this could allow you to have cores with different ISA versions and it would know which cores to avoid.
  • ProDigit - Friday, July 3, 2020 - link

    Yeah? Tell me where you can actually use avx512 or avx2? Most home users don't need it. Intel makes chips for businesses and for most home users.
    Not for those that occasionally need to run programs that are made for servers or performance machines.
    Avx2/512 makes no sense, and has no home in a laptop.
  • Cullinaire - Friday, July 3, 2020 - link

    Don't mind him, he's always harping about avx512 every chance he gets even though it's pointless.
  • lefty2 - Friday, July 3, 2020 - link

    Yes, home users do need it. AVX512 is rarely used, but AVX2 is almost universal.
  • eastcoast_pete - Friday, July 3, 2020 - link

    So, I guess you don't use Microsoft Teams or other video conferencing software on your laptop? Because those use AVX or AVX2 for virtual backgrounds, amongst other features.
    Regarding "no place in laptops", I vaguely remember hearing that about SSEs way back.
  • dotjaz - Saturday, July 4, 2020 - link

    Well, AVX512 is truly pointless on a laptop, and possibly on any general consumer parts. That much is true. It is not energy efficient at all. On top of that, there's the mess of subsets.

    But AVX2 does provide sizable benefits over SSE4 even for optimal code. AVX alone is probably not worth it.
  • eastcoast_pete - Sunday, July 5, 2020 - link

    With regard to AVX512, it's also a chicken-or-egg issue; as long as software makers can (correctly) assume that most of their customers don't have CPUs that have it, they won't use it, even where it would speed things up over AVX2. That's why AMD starting to have their own implementation of AVX512 is so important; it'll make it more of a mainstream feature that programmers can assume to be available for use by their software. That's one of the reasons this boneheaded move by Intel ticks me off.

Log in

Don't have an account? Sign up now