Windows 10 on ARM could run x86 apps seamlessly at native speed

Late last year, we heard that Microsoft was working on bringing Windows 10—not Windows RT, or Windows 10 RT, or something like that—over to ARM processors. In December, Qualcomm and Microsoft demonstrated Windows 10 running on a Snapdragon 835 ARM SoC. Now, the company says that not only is Windows 10 running on ARM, but that standard x86 applications can run seamlessly on those CPUs with little performance loss.

Microsoft showed off the developments at its Build 2017 conference last week. The 13-minute video above goes into depth on the subject, but the short version is that users likely shouldn't need to take any special steps while using their ARM-powered Windows machines. Microsoft's ARM Group Program Manager Hari Pulapaka and Director of Development Arun Kushan walk us step-by-step through a demonstration of Windows 10 on ARM, showing proof that it is indeed an ARM chip inside the hardware.

At around 5:30, though, they bring in a real-world situation that would've stymied someone using Microsoft's Windows RT. In this scenario, someone sent the user an archive created using 7-Zip, an application that's not available for ARM processors. Where Windows RT required applications built specifically for that OS, in the demo Pulapaka simply installs the standard version of 7-Zip and opens the archive. If you've ever used Windows RT, that alone should be enough to blow your mind.

So what's going on here? Windows 10 on ARM will run x86 apps through a custom emulator built by Microsoft. Kushan says that when you run an x86 application, the emulator's Dynamic Binary Translator looks at chunks of the code and translates them to ARM64 code, which is then cached in memory or on disk for later use. Microsoft is calling those emulated binaries Compiled Hybrid Executable files, or CHPE for short. That's pronounced "chippie," not like that Neill Blomkamp movie about the robot. All the system calls and communication with the Windows Kernel happen on the ARM side without any emulation. Kushan explains that this allows the operating system to run those x86 applications at "basically native speed."

Previous Windows phones and Surface RT tablets were limited to the applications that developers were willing to re-build specifically for the Windows Store—something most developers opted not to do. This requirement hamstrung adoption of Microsoft's alternative Windows versions over the years, and likely contributed to the near-complete decline of its smartphone business.

Devices with contemporary ARM SoCs like the Snapdragon 835 are generally affordable and pack a powerful punch. Having standard Windows applications run on those devices give Microsoft access to a whole new market of lower-cost hardware that inter-operates seamlessly with existing desktop and laptop computers. We likely won't see high-end users switching off Intel chips anytime soon, but this is a big step forward for Microsoft all the same.

Comments closed
    • mikewinddale
    • 3 years ago

    This is exciting. A few months ago, I tested the few benchmarks which I could find which work on both Windows and Android, so that I could do an apples-to-apples comparison. The results were interesting.

    The following is a sample, comparing:
    Lenovo E570 (Intel Core i7-7500U dual-core with Geforce GTX 950M, Windows 10)
    Lenovo E545 (AMD A10-5750M quad-core with dual-GPU – Radeon 8570M + Radeon 8650G, Windows 8.1)
    LG G5 smartphone (the latest and greatest until the G6 comes out)

    The E545 is about 3 years old, while the E570 is brand-new. Both were about $500 to $600 when new.

    To summarize the results: in Geekbench4, the G5 is approximately as fast as the 3 year old E545, and half the speed of the brand-new E570.

    In AnTuTu, the G5’s poor score in CPU Mathematics drags it down, but if we look only at CPU Common Use, CPU Multi-core, and UX, the G5 again scores about half the E570. (The E545 could not run AnTuTu.)

    Finally, in 3D Mark Ice Storm and Ice Storm Extreme, the G5 got approximately 1/5 the speed of the two Windows laptops.

    The 3 year old E545 with Window 8.1 is still perfectly speedy for basic office productivity. So my takeaway is that your Android device will suck at gaming, but we might potentially see some interesting dual-boot Android/Windows laptops and tablets that can do basic web-browsing and office productivity.

    At the very least, we will see some price competition between Android and Windows devices that can both do basic office tasks.

    Geekbench4
    —————–
    E570: Single-core 4,286; Multi-core 8,235
    E545: Single-core 2,040; Multi-core 4,637
    G5: Single-core 1,654; Multi-core 3,765

    AnTuTu
    ———–
    E570: Overall 283,171; CPU 130,905; UX 90,063, 3D 49,145
    E545: would not run (bc E545 is Windows 8; AnTuTu is compatible only with Android and Windows 10)
    G5: Overall 135,595; CPU 31,231; UX 39,275; 3D 54,087

    AnTuTu CPU breakdown:
    E570: Mathematics 86,977; Common Use 19,925; Multi-core 24,003
    E545: would not run
    G5: Mathematics 11,838; Common Use 9,277; Multi-core 10,116

    3DMark Ice Storm
    ———————–
    E570: 61047
    E545: 50016
    G5: 13884

    3DMark Ice Storm Extreme
    ————————————-
    E570: 59430
    E545: 38496
    G5: 13704

      • Pancake
      • 3 years ago

      That is an interesting analysis. I think it would be reasonable to expect a Snapdragon 835 to be quite adequate for a lot of use cases. It looks like it will handily outclass a Baytrail Atom which I find quite adequate for software development when travelling (Eclipse) and all other general purpose uses.

    • ozzuneoj
    • 3 years ago

    If there’s any chance that this could carry over to games (not CPU intensive ones obviously), it’d be pretty sweet if Nvidia took​ another stab at the tablet market with a Windows 10 based Shield tablet. Pascal graphics and one of nvidia’s in-house CPUs in a reasonably priced 8 inch tablet would be super cool. I’m imagining my absurd steam library of older indie games available on a tablet with enough graphics power to actually play them.

    A dual boot Android\Windows model might be cool too.

    • Mat3
    • 3 years ago

    I want to see what happens when you install and play a serious 3D Windows game on it.

      • chuckula
      • 3 years ago

      I think trying to run a heavyweight Windows game might cause a Crysis on one of these devices.

    • derFunkenstein
    • 3 years ago

    I believe this is pretty realistic, and not a bunch of marketing drivel. Even going back to Mac OS X 10.5 a decade ago, Apple had PPC emulation doing pretty well, all things considered. Fortunately for Apple they were emulating slower PPC hardware with faster Intel hardware, most often Conroe-era Core 2 stuff.

    By contrast, even if Windows on ARM runs at 95% of native 95% of the time, the ARM SoC is relatively weak compared to Baby Kale. That concerns me. ARM CPU cores are pretty weak, even with year-after-year claimed improvements of > 10% from Qualcomm.

      • cmrcmk
      • 3 years ago

      Wouldn’t this be mostly for people who have a 10 year old application that will never get updated? I don’t think they intend for you to run AutoCad or Handbrake through this emulation. People who need those heavyweights should get something from an x86 vendor.

        • derFunkenstein
        • 3 years ago

        Office apps can get pretty piggish, and the video implied that it was the x86 desktop version of Office running their PowerPoint.

        But yeah, mostly I agree. If you need performance you still need to buy it.

    • bjm
    • 3 years ago

    Its great that Microsoft took the step to actually do this, but this isn’t anything new in production consumer software. I believe the last big implementation of this kind was when Apple moved to PowerPC and developed their 68k emulator. In fact, Eric Traut while at Apple developed the 68k version that used dynamic recompilation and he eventually ended up at Microsoft. This is an impressive feat nonetheless.

    • Plazmodeus
    • 3 years ago

    I’d like to see some meaty Adobe CC app or Maya 3D run on an ARM system and see how it compares to a real intel chip. I’ve heard this stuff about how fast Apple’s ARM SoC is, but having heard this Apple hype for years (“PPC runs Photoshop 2x as fast as Intel!”), I don’t believe it for a bit.

    • Star Brood
    • 3 years ago

    Would this allow for classic games like Brood War to run on those?

    • Mr Bill
    • 3 years ago

    Can it run Itanium code in Armulation?

      • cygnus1
      • 3 years ago

      I lol’d

      • chuckula
      • 3 years ago

      ITANIUM LIVES!!!

    • EndlessWaves
    • 3 years ago

    But can it run Crysis?

    • Kretschmer
    • 3 years ago

    This is insanely cool, both for the tech and practical implications.

    Connect your phone/tablet to a monitor and peripherals, boot up Windows, and get to work!

      • chuckula
      • 3 years ago

      Booting up Windows on a tablet makes me Wannacry.

    • ermo
    • 3 years ago

    Is this a consequence of intel dropping their Atom-ish processors (i.e. a “Plan B” of sorts)?

    If you want really thin and light, ARM is inarguably where the game is at right now.

    One wonders if this is also to ensure that any potential ARM-powered Mac hardware will *still* be able to run Windows 10?

      • Growler
      • 3 years ago

      That may be part of it, but I think it’s probably an extension of [url=https://www.microsoft.com/en-us/windows/continuum<]Continuum.[/url<] If someone can run just about any program on their phone, it would mean using their phone on a dock would become a reasonable desktop replacement (for some people at least).

        • cygnus1
        • 3 years ago

        I would certainly entertain the idea of picking up a new Windows Phone if they added this functionality to phones and not just larger tablet/convertible/laptop models.

    • brucethemoose
    • 3 years ago

    Interesting… With this, I wonder if ARM can eventually compete in the desktop/laptop space.

    Apple is already nipping at heels of AMD/Intel. They’re just too stubborn to sell their hardware by itself.

      • odizzido
      • 3 years ago

      I would love for x86 stuff to run on arm. There is a pretty big gap where people want small devices to do real work but the software just isn’t there yet on anything arm.

    • sweatshopking
    • 3 years ago

    IT IS ESSENTIALLY THE SAME PROCESS USED BY WOW64 TO RUN X86 APPS, JUST FOR ARM RATHER THAN X64.

      • chuckula
      • 3 years ago

      I see they’re still working out some bugs related to string handling.

      • BobbinThreadbare
      • 3 years ago

      WOW64 caches recompiled code on disk?

      I figured the 32->64bit word conversion was just a fast enough process it could do essentially seemlessly

        • BobbinThreadbare
        • 3 years ago

        I read the wikipedia article, and I’m pretty sure you’re wrong. WoW64 is not doing dynamic recompilation. It translates calls and pointers on the fly.

        [url<]https://en.wikipedia.org/wiki/WoW64[/url<]

          • Shobai
          • 3 years ago

          Check the slide in the article above, though, because it says what SSK said.

            • sweatshopking
            • 3 years ago

            Yep, MS specifically states it’s similar procedure.

    • 223 Fan
    • 3 years ago

    Here is the original research paper from HP that showed that an emulator can (under the right circumstances) meet or exceed the performance of natively running code and why. See Figure 7. This paper is the basis for the development of the JIT behavior of the JVM.

    No, I am not claiming that CHPE can run apps faster than the underlying hardware will allow.
    No, I am not claiming that CHPE will run faster than native, only that MS claims are plausible.

    [url<]http://www.cs.umass.edu/~emery/classes/cmpsci691s-fall2004/papers/bala00dynamo.pdf[/url<]

      • alrey
      • 3 years ago

      In theory only

    • maxxcool
    • 3 years ago

    Ugh… again with the emulation claims?

    We have been here before, I will believe it when it ships and suppports 95% of all apps.

      • Takeshi7
      • 3 years ago

      Honestly, I think Microsoft has the best emulation technology. I’ve run a Sega Genesis game on Xbox 360, emulated on Xbox One. That’s x86 -> PowerPC -> MC68K. If they can do that at full speed it should be easy to do just one emulation layer at full speed.

        • derFunkenstein
        • 3 years ago

        I hope that desktop apps run faster than they would on an 8MHz Motorola 68000 CPU, though. πŸ˜†

        • alrey
        • 3 years ago

        I’ll only believe it when I see .net framework apps almost running at full speed.

      • willmore
      • 3 years ago

      Microsoft has been doing binary emulation for a very long time. Windows NT for the Alpha could run native x86 binaries via that route. That’s, what, two decades ago?

      • alan242
      • 3 years ago

      DEC had a binary translator in the mid 90s for AlphaNT. The FX!32 translator dynamically recompiled win32 x86 code for the Alpha processor. There was a offshoot called em86 for linux. The translator worked well for many applications. Computation intensive applications and applications with custom assembler slowed it down. Don’t expect to run games and Photoshop anywhere near full speed.

      • cygnus1
      • 3 years ago

      Well, the nice thing is that they don’t have to emulate any of the execution of calls to the OS, they can process those normally with ARM instructions, and pass the return to the emulated x86 program code. As long as they don’t fubar the program’s internal code this should be pretty good honestly.

      • dyrdak
      • 3 years ago

      Another option is that x86 apps run like crap on x86 system so with only minimal optimization it’s easy to maintain performance parity on ARM platform.
      Likely we should expect locked bootloader, Windows Store only etc. Do not want.

    • whm1974
    • 3 years ago

    I wonder how well this will actually work in practice? And can we assume that like the previous WinRT devices this will be locked down to run only Windows 10?

      • psuedonymous
      • 3 years ago

      x86 devices have a standardised method of booting with BIOS or UEFI. Is there even a universal equivalent for ARM devices? My experience thus far, which is restricted to phones and tablets, is that each device has its own custom bootloader.

        • bhtooefr
        • 3 years ago

        Microsoft is requiring a superset of ARM Server Base Boot Specification (to add the graphical stuff that ARM removed from the UEFI requirements back in), which is just UEFI with ACPI for device discovery, for Windows 10 ARM devices.

    • Takeshi7
    • 3 years ago

    I can’t wait to build a gaming desktop with an ARM socketed CPU like the Qualcomm Centriq 2400.

    • DrDominodog51
    • 3 years ago

    Microsoft should name this Windows ARMeta.

      • siberx
      • 3 years ago

      Alternatively, we could refer to this as a Windows ARMulator

        • Growler
        • 3 years ago

        “Windows for ARM” or Windows FARM.

    • unmake
    • 3 years ago

    What does ‘inbox programs’ mean in this context?

      • chuckula
      • 3 years ago

      I think they mean the native default system image or all the programs that ship “inbox” when you get a device. That’s in contrast to the emulated programs.

        • derFunkenstein
        • 3 years ago

        Yeah, I think that’s correct. More like in-box not inbox, but the YouTube captions made it seem like they were some sort of email thing. πŸ˜†

Pin It on Pinterest

Share This