SoC Analysis: On x86 vs ARMv8

Before we get to the benchmarks, I want to spend a bit of time talking about the impact of CPU architectures at a middle degree of technical depth. At a high level, there are a number of peripheral issues when it comes to comparing these two SoCs, such as the quality of their fixed-function blocks. But when you look at what consumes the vast majority of the power, it turns out that the CPU is competing with things like the modem/RF front-end and GPU.


x86-64 ISA registers

Probably the easiest place to start when we’re comparing things like Skylake and Twister is the ISA (instruction set architecture). This subject alone is probably worthy of an article, but the short version for those that aren't really familiar with this topic is that an ISA defines how a processor should behave in response to certain instructions, and how these instructions should be encoded. For example, if you were to add two integers together in the EAX and EDX registers, x86-32 dictates that this would be equivalent to 01d0 in hexadecimal. In response to this instruction, the CPU would add whatever value that was in the EDX register to the value in the EAX register and leave the result in the EDX register.


ARMv8 A64 ISA Registers

The fundamental difference between x86 and ARM is that x86 is a relatively complex ISA, while ARM is relatively simple by comparison. One key difference is that ARM dictates that every instruction is a fixed number of bits. In the case of ARMv8-A and ARMv7-A, all instructions are 32-bits long unless you're in thumb mode, which means that all instructions are 16-bit long, but the same sort of trade-offs that come from a fixed length instruction encoding still apply. Thumb-2 is a variable length ISA, so in some sense the same trade-offs apply. It’s important to make a distinction between instruction and data here, because even though AArch64 uses 32-bit instructions the register width is 64 bits, which is what determines things like how much memory can be addressed and the range of values that a single register can hold. By comparison, Intel’s x86 ISA has variable length instructions. In both x86-32 and x86-64/AMD64, each instruction can range anywhere from 8 to 120 bits long depending upon how the instruction is encoded.

At this point, it might be evident that on the implementation side of things, a decoder for x86 instructions is going to be more complex. For a CPU implementing the ARM ISA, because the instructions are of a fixed length the decoder simply reads instructions 2 or 4 bytes at a time. On the other hand, a CPU implementing the x86 ISA would have to determine how many bytes to pull in at a time for an instruction based upon the preceding bytes.


A57 Front-End Decode, Note the lack of uop cache

While it might sound like the x86 ISA is just clearly at a disadvantage here, it’s important to avoid oversimplifying the problem. Although the decoder of an ARM CPU already knows how many bytes it needs to pull in at a time, this inherently means that unless all 2 or 4 bytes of the instruction are used, each instruction contains wasted bits. While it may not seem like a big deal to “waste” a byte here and there, this can actually become a significant bottleneck in how quickly instructions can get from the L1 instruction cache to the front-end instruction decoder of the CPU. The major issue here is that due to RC delay in the metal wire interconnects of a chip, increasing the size of an instruction cache inherently increases the number of cycles that it takes for an instruction to get from the L1 cache to the instruction decoder on the CPU. If a cache doesn’t have the instruction that you need, it could take hundreds of cycles for it to arrive from main memory.


x86 Instruction Encoding

Of course, there are other issues worth considering. For example, in the case of x86, the instructions themselves can be incredibly complex. One of the simplest cases of this is just some cases of the add instruction, where you can have either a source or destination be in memory, although both source and destination cannot be in memory. An example of this might be addq (%rax,%rbx,2), %rdx, which could take 5 CPU cycles to happen in something like Skylake. Of course, pipelining and other tricks can make the throughput of such instructions much higher but that's another topic that can't be properly addressed within the scope of this article.


ARMv3 Instruction Encoding

By comparison, the ARM ISA has no direct equivalent to this instruction. Looking at our example of an add instruction, ARM would require a load instruction before the add instruction. This has two notable implications. The first is that this once again is an advantage for an x86 CPU in terms of instruction density because fewer bits are needed to express a single instruction. The second is that for a “pure” CISC CPU you now have a barrier for a number of performance and power optimizations as any instruction dependent upon the result from the current instruction wouldn’t be able to be pipelined or executed in parallel.

The final issue here is that x86 just has an enormous number of instructions that have to be supported due to backwards compatibility. Part of the reason why x86 became so dominant in the market was that code compiled for the original Intel 8086 would work with any future x86 CPU, but the original 8086 didn’t even have memory protection. As a result, all x86 CPUs made today still have to start in real mode and support the original 16-bit registers and instructions, in addition to 32-bit and 64-bit registers and instructions. Of course, to run a program in 8086 mode is a non-trivial task, but even in the x86-64 ISA it isn't unusual to see instructions that are identical to the x86-32 equivalent. By comparison, ARMv8 is designed such that you can only execute ARMv7 or AArch32 code across exception boundaries, so practically programs are only going to run one type of code or the other.

Back in the 1980s up to the 1990s, this became one of the major reasons why RISC was rapidly becoming dominant as CISC ISAs like x86 ended up creating CPUs that generally used more power and die area for the same performance. However, today ISA is basically irrelevant to the discussion due to a number of factors. The first is that beginning with the Intel Pentium Pro and AMD K5, x86 CPUs were really RISC CPU cores with microcode or some other logic to translate x86 CPU instructions to the internal RISC CPU instructions. The second is that decoding of these instructions has been increasingly optimized around only a few instructions that are commonly used by compilers, which makes the x86 ISA practically less complex than what the standard might suggest. The final change here has been that ARM and other RISC ISAs have gotten increasingly complex as well, as it became necessary to enable instructions that support floating point math, SIMD operations, CPU virtualization, and cryptography. As a result, the RISC/CISC distinction is mostly irrelevant when it comes to discussions of power efficiency and performance as microarchitecture is really the main factor at play now.

SoC Analysis: Apple A9X SoC Analysis: CPU Performance
Comments Locked

408 Comments

View All Comments

  • MaxIT - Saturday, February 13, 2016 - link

    There is one reason for that: most PCs are just cheap computers compared to Macs
  • ddriver - Sunday, January 24, 2016 - link

    "90% of the professional software development studios I work with are almost solely Mac based"

    That has got to do with the urban legend, begot during the time of apple's pathetic "mac is cool, pc is for dorks" ad campaigns. Ignorant people with no tech knowledge genuinely believe the macs are a good deal. And while the hardware is OK, it offers too little value for the cost, software is... meh... more professional grade products run on windows than on macos. There aren't any notable macos exclusives, there are some professional products which do not support macos.

    The ipad "pro" software wise doesn't offer anything on top of the regular ipad, the same cheap, crippled, rudimentary applications. It is a little bigger and has a pen with the world's lamest charging implementation, that's about it.

    There is no software for the ipad a professional musician or produced could use, the apps which exist for that platform and light years behind the professional software you can run on a windows tablet. None of the professional DAWs, editors, synthesizers, effects or samplers are available for the ipad. Usually the companies which make such professional products have offer very basic and very scaled down versions of their flagship products, far below the requirements of professionals, really only suited for amateur beginners.

    That pretty much sums the ipad "pro" - it is a product for "professional" amateurs :)

    iOS is a walled garden, apparently, because apple deems its "smart user base" too dumm to deserve freedom and flexibility. And professional apps need that much as professional users do. Even if there are professional apps, they sure as hell won't be available on the apple store, and would require to root your device and void its warranty so it can be used.

    "but everyone who thinks that the surface pro 4 is even remotely in the same category of device, is utterly smoking crack"

    DO'H, of course they are not, the surface pro is a real professional computer inside a tablet, the ipad is a hipster/child toy inside a tablet.
  • Constructor - Sunday, January 24, 2016 - link

    This is exactly the same type of argumentation that tried to "prove" that personal computers had to be "useless toys" – no, that graphical user interfaces were only for "useless toys" – no, that those silly laptop computers could only be "useless toys" – no, that touchscreen smartphones without hardware keyboards could only be "useless toys"...

    And now, after all these prior predictions have already crashed and burned, tablets are your last and only remaining hope that your oversimplified conclusions from your own preconceived notions might maybe not share the same fate.

    Good luck with that! B-)
  • darwiniandude - Monday, February 29, 2016 - link

    iOS and OS X are low latency end to end, with built in audio hardware. Windows is not. iPhone 5s, iPad Air1, iPad mini 2, onwards, can record from 32 simultaneous inputs onto separate tracks with ease till their disk is full. And it's 100% solid. There is much capable and professionally usable iOS music software. And robust plugin and Interapp audio communication logins.
  • jlabelle - Thursday, January 28, 2016 - link

    "the surface pro 4 (a mildly crappy laptop with a touchscreen that makes a bad, thick tablet and an underpowered, overheated laptop)"

    Strange way of seeing things when the surface Pro 4 is pretty much : 1/ the thinner laptop existing
    2/ the higher end version is like several order of magnitude more powerful than the MacBook and 3/ it has the same Intel processor as most over high end laptop and overheat the same way and it has an option of having a fanless / staying cold core M if this is your thing
  • darwiniandude - Monday, February 29, 2016 - link

    Music applications iOS is the only game in town. Windows doesn't have low latency except if you use external audio hardware. Many PC notebooks even then cannot achieve low latency due to design flaws. A client recently bought an AUD$3500 Alienware purely for running Tracktor. Spent 6 months trying everything including reverting to Win7. It just crackles and jumps. I worked in the music industry building audio PCs for 8 years and I had a look over the system and tried everything. No dice. I told him it won't work. He bought an AUD$2500 MacBook Pro, installed Tracktor, works faultlessly. Of course.

    The issue here is more the Alienware craptop where audio is no priority at all, than Windows. Windows has the horrible burden of trying to support every combination of everything. I know this. But for some professional allocations there is no way I'd ever run a Windows system anymore.

    Look at anyone performing live with music. It's all Mac / iOS. The sound engineer guys will use a PC laptop because of the old editor utilities for audio equipment needing RS232 etc, but the music you hear is coming off Apple gear.
  • leemond - Thursday, February 11, 2016 - link

    you took the words right out of my mouth! throughout reading this article i cannot fail to see the thinly veiled adoration for Apple held by the author and it is telling in the way he wields the pseudo negatives statements against the product. i was expecting an unbiased fair appraisal of this product but what i got was the Apple store salesman dressed up as an annnandtech reviewer. This product is simply two things the original iPad is not, 1) bigger and 2) has a pencil....not revolutionary and also not that impressive a feat....apple have lost the wow factor that won them so many new customers and they only have these fanboys left to applaud fanatically like a north Korean Army officer listening to KJU..
  • Constructor - Friday, February 12, 2016 - link

    Your own post positively reeks of a fanaticism which is simply absent in the article outside of what you're projecting into it from yourself.

    Major and remarkable features are:
    • A highly advanced CPU which has effectively closed the gap to Intel's Core i architecture at comparable TDP.
    • The Pencil which is at the very least among the best on the market.
    • A crazy-good speaker system for its size class which actually makes listening to music or watching movies enjoyable.

    Beyond that, yes, it is "just" a bigger, faster, better iPad, but as long as you're not looking for an awkward hybrid device, that's actually a plus.
  • jlabelle - Thursday, January 28, 2016 - link

    It is utterly non sense. W10 is not more or less "insecure loaded-with-spyware-at-the-factory desktop OS" as OS X.
    If you want to have the same "secure" experience as an iOS tablet, just install only applications from the Windows Store and it will be the same. If you want to use more powerful program or software that do not exist in the Store, you must like OS X take care of installing them from a reputable source. Nothing complicated.
    Also, this is also utterly ridicule to claim that there are no good Windows Store app. There was examples given on the previous pages. There are plenty and you know that. You have ven some which are still quite unique like Polarr or DrawboardPDF.
    I know Apple users have a hard time (and the reviewer as well) understanding that having an Apple tablet and an Apple laptop OS is even more a Frankenstein experience than having only ONE OS with ONE UI, able to run ALL type of applications and able to support ALL type of inputs so you can choose what is best for the task at end.
    People consider that EVERY tasks that you have to do with a tablet is best without keyboard or mouse or pen. This is simply not true. Typing a long text with the on-screen keyboard is an exercise in frustration.
    Also people consider that EVERY task on a laptop is best without touchscreen or pen. This is also wrong. Annoting a PDF, surfing the web, manipulation by hand an object of a webpage is much easier with touch or pen.
    Having to go back and forth between 2 different devices that have silos input method IS what is a Frankenstein experience in my view.
    And last point, the Surface has provided a "paper and pencil" experience since 3 years, much prior Apple and is still providing a top notch experience, with a pen autonomy of more than 1 year, interchangeable tip and great performance.
  • MaxIT - Saturday, February 13, 2016 - link

    Wrong because you said so ?
    Surface are just half baked solutions to a non existent problem. There are tasks where I require a tablet and tasks where I require a notebook. I don't want an half baked solution not good as a tablet nor good as a notebook....

Log in

Don't have an account? Sign up now