The Windows 10 April 2018 update has arrived! Get the new Dell XPS 15, starting at $999.99
09-25-2017 07:54 PM
263 ... 23456 ...
tools
  1. EspHack's Avatar
    Well look at that!

    For about a month now, pretty much all consumer "tech websites", including WCentral, have been insisting that MS intends to run Windows x86 desktop software on ARM based W10M devices. The video Rosebank linked to above was just one of many such examples. They have changed their tune and are now confirming that MS actually intends for this to work on full W10, not W10M. That's exactly what I've been saying all along.

    Here's another change:


    So, in contrast to what most WCentral staff have occasionally suggested, this actually won't run on any current hardware, also exactly like I've been saying.

    What WCentral and others are still missing, is that MS is currently talking about this in the context of mini tablets or even ARM based laptops (not phones). As such, a device using an Intel Core M CPU is perfectly feasible (they are actually really close to being feasible for phones too). What then is the point of using an ARM based CPU, if we could just as well get the real deal and save ourselves the overhead of emulation?

    Is Qualcomm's non-CPU related technology (NFC, SensorCore, Cellular Radios, DSP, etc) so much better than anything we could ever expect to find in an Intel SoC, that it's worth using Qualcomm's solutions to build 3-in-1 devices, despite the performance hit caused by emulating the x86 ISA? Is it something else? Would be nice to get some clarification on that.

    It will also be interesting to learn exactly what is in the SD835 that allows it to emulate the x86 ISA so efficiently.
    our mythical x86 decoder! of course!

    no really, this is just win RT that now lets your ARM chip run win32 apps other than office and paint, preferably compiled for ARM, but only 32 bit x86 otherwise, the entire OS will run natively on ARM, its just partial x86 app support, afaik the demo is running on SD820, and somehow photoshop ran decently

    now the phone specific bits that were being developed on w10m will probably go to full w10, just like hololens' specific software is getting bundled with w10 creators update, and then "mobile" will be just the 3rd main edition of windows after home and pro

    as for why go through all the trouble here? power efficiency of course, imagine your laptop being always on and always connected, most people only need x86 software from time to time, this makes perfect sense in this scenario, and so far only ARM chips manage to do this

    and maaan do you remember how serious was surface 2's battery life? imagine that at 14-15" on a big fat laptop, ofc it will die a while after you start up some emulated x86 app, but that wont be all the time :P
    Rosebank and a5cent like this.
    12-08-2016 02:38 PM
  2. a5cent's Avatar
    our mythical x86 decoder! of course!


    no really, this is just win RT that now lets your ARM chip run win32 apps other than office and paint, preferably compiled for ARM, but only 32 bit x86 otherwise, the entire OS will run natively on ARM, its just partial x86 app support
    Exactly how I see it too.

    afaik the demo is running on SD820, and somehow photoshop ran decently
    They don't say what it's running on, but there is a section where the system control panel is visible which lists the SD820. Since this is pre-production hardware/software it's impossible to say if that's correct. But if it runs that well on an SD820, then why restrict it to the SD835? On the other hand, the Photoshop feature that was demonstrated was delegated to the GPU. That was practically cheating, as it wasn't actually running on the CPU at all. Same applies to the game, as it did nothing but render a static scene on the GPU. To convince me MS will have to demonstrate some RTS game play against an AI player (or something else that is CPU bound). Then I'll be convinced too.


    now the phone specific bits that were being developed on w10m will probably go to full w10, just like hololens' specific software is getting bundled with w10 creators update, and then "mobile" will be just the 3rd main edition of windows after home and pro
    While possible, I very much doubt that is what MS has planned. W10M has the same reasons to exist as Windows 10 IoT, or Windows Holographic. While W10 can integrate all the features of the smaller SKUs, and replace W10M entirely in some instances (like the one we're discussing), that doesn't make the stripped down and more specialized SKUs worthless.

    For example, having W10 on a phone sized device means you also get all the maintenance tasks and administrative headaches that come with full W10. In contrast to what Daniel Rubino claimed, such a device would also be susceptible too all the malware in the Windows ecosystem. If x86 software can run, then x86 malware can run too. A Win32 desktop app also isn't sandboxed. W10M avoids all of those issues. Furthermore, W10M requires only a third of the storage space to install, and can run with far less RAM. That allows MS to bring UWP compatible hardware to price points that they simply can't hit with the hardware requirements of W10.

    Unless MS decides that the UWP has no business running on cheap hardware (which IMHO is already contradicted by the existence of Windows IoT), then I don't see W10M going away anytime soon.

    as for why go through all the trouble here? power efficiency of course, imagine your laptop being always on and always connected, most people only need x86 software from time to time, this makes perfect sense in this scenario, and so far only ARM chips manage to do this
    Intel Atom chips support connected standby. With the introduction of Intel's 7th generation Core CPUs, the entire Intel CPU lineup now supports connected standby as well (MS calls it modern standby). That's why I don't think this is a valid argument anymore. We can obviously find ARM chips that draw far less power than an Intel Core M CPU, but here we're talking about the highest end ARM chips only. I have no idea how many watts an SD835 draws, but I doubt it will be notably different from an Intel Core M chip. That's just a guess, but as you can tell I'm skeptical that the power efficiency argument holds that much weight, particularly after also considering the emulation overhead, which would be far less efficient than using the real thing.

    Rosebank's price argument seems far more convincing to me. The fact that Qualcomm's offerings come with more mobile focused features also seems more convincing to me, but less so than the price angle.
    12-08-2016 05:26 PM
  3. BackToTheFuture's Avatar
    I'm chipping in again.

    The reason why only pure 32-bit applications are to be emulated is, IMO, down to leveraging the WOW64 architecture, where it enables 32-bit code to run on 64-bit CPU.
    1. On x86-64, the CPU runs 32-bit code natively, so WOW64 simply turns a switch to tell the CPU to run in 32-bit mode, and no performance hit. This is what happens on most of our PCs at the moment.
    2. On IA-64 (Intel Itanium), WOW64 performs binary translation, with massive overhead. Statements from Microsoft are here: https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

    WOW64 on ARM will also perform binary translation, with the unavoidable cost. It will work, but not efficient, as high CPU usage means less battery life, negating the power consumption advantage that ARM has. The only convincing argument is the low part cost of ARM.

    However, I have a hypothesis that, instead of on-the-fly translation, they will translate all the x86 binary to ARM at INSTALLATION TIME. That sounds more probable.

    They can enable legacy support on W10M as well, by asking user to install a service patch at their own discretion. By default, W10M should be a trimmed down, light weight version of full Windows.
    a5cent and Rosebank like this.
    12-08-2016 07:05 PM
  4. a5cent's Avatar
    However, I have a hypothesis that, instead of on-the-fly translation, they will translate all the x86 binary to ARM at INSTALLATION TIME. That sounds more probable.
    I thought about that too. While theoretically possible, I imagine that would be extremely difficult to do well (reliably and still somewhat efficiently) without being able to make any assumptions about the runtime state of the CPU. I wouldn't want to do it, but I agree that it can't be ruled out either.

    However, I have since found this:

    https://www.google.com/patents/US20120260067

    If that is what MS is working with, it's similar to the decoder we mentioned earlier.
    Last edited by a5cent; 12-09-2016 at 03:39 AM.
    Rosebank likes this.
    12-08-2016 07:44 PM
  5. BackToTheFuture's Avatar
    I thought about that too. While theoretically possible, I imagine that would be extremely difficult to do well (reliably and still somewhat efficiently) without being able to make any assumptions about the runtime state of the CPU. I wouldn't want to do it, but I agree that it can't be ruled out either.
    Translation at install time means recompiling binary x86 code to binary ARM code once, so when it runs on the ARM machine, it's purely ARM binary, nothing else needed at runtime. If the application isn't so CPU-specific, it should not be a problem, when they were able to translate on-the-fly. Code is code after all.

    However, I have since found this:

    https://www.google.com/patents/US20120260067

    If that is what MS is working with, it's similar to the decoder we mentioned earlier.
    This is different. WOW64 is software, they could do it on other architecture, they could do it on ARM as well.

    The design you linked is of a hybrid architecture, similar to what AMD/VIA announced in 2014. It has never come to fruition (yet). I don't know about other CPU families, but nowadays, on x86 CPUs, the electronics do not perform the x86 instructions directly, but x86 instructions are first translated to hardware microcode, then these microprograms are carried out on bare silicon transistors. Adding an ARM decoder to the CPU is not so far-fetched, where ARM instructions are translated to microcode, the core design does not change. The problem is, the CPU die becomes bigger with more transistors, and such hybrid CPU costs more than a pure x86 one, not to mention may sip more electricity.

    My opinion still is, WOW64 on ARM is just a stop-gap solution, until Intel finally gets their acts together. I think Intel gimped Atom's performance on purpose in order to sell more Core CPUs with much higher margins.
    Rosebank and a5cent like this.
    12-08-2016 09:20 PM
  6. Rosebank's Avatar
    I also think they are translating the entire x86 to ARM Instruction, this seems to concur with the 820 running full blown windows and then photoshop, on the task manager we could see the 820 preforming the operations BUT this could have been manipulated to convince us of its efficiency. It would mean a one time translation (I think) and all other win32 apps would inherit this one time translation at install benefit, I am not sure the impact this would have on the idle speed of the computer but why would they show this running so well on an 820 cpu?
    However looking at the Video clip again (could be nothing here) I noticed photoshop on the Taskbar was closed, Edge was open and too was File Explorer when he selected task manager (which was open on the taskbar too) the cpu spiked at 52%. Quite high for such minimal load. ?? Then the load returned to about 10% after about a second.
    Last edited by Rosebank; 12-09-2016 at 04:31 AM.
    12-09-2016 03:41 AM
  7. a5cent's Avatar
    Translation at install time means recompiling binary x86 code to binary ARM code once, so when it runs on the ARM machine, it's purely ARM binary, nothing else needed at runtime. If the application isn't so CPU-specific, it should not be a problem, when they were able to translate on-the-fly. Code is code after all.
    You could be right. I've never built anything like this, so ultimately I can't say how much, or even if, having knowledge of the runtime state of the CPU would be of benefit. My gut feeling tells me there would be, for various reasons, like there being no 1:1 translation between ISAs. However, I don't like relying on gut feelings. So, I'm certainly not saying you're wrong, but I'm having difficulty getting on board for three reasons:

    1. Other technologies that solve similar problems (translating Java bytecode into machine instructions, translating IL bytecode into machine instructions, the venerable Transmeta CPUs that translated ISAs), all do their instruction set translations at runtime. Not at installation time. That would make ISA translation at installation time a very unusual approach. I suspect that isn't coincidental.
    2. According to MJF, the approach used for ARM is based on WOW64. Thanks to your link, I just learned that WOW64 does more than just 64bit thunking. WOW64 also includes the ability to translate between x86 and Itanium ISAs. Thats exactly the sort of thing required here too, and WOW64 does that ISA translation at runtime.
    3. MS has repeatedly referred to this technology as an emulator. However, if ISA translation occurs at installation time, then there is no emulation involved. That would be more properly referred to as an ISA transcoder or something like that. On the other hand, this wouldn't be the first time MS completely bungles their terminology, so who knows.

    Together, these things lead me to believe that MS's approach is more likely to be a traditional runtime based emulator. I'm just not willing to bet on it.
    Rosebank likes this.
    12-09-2016 04:47 AM
  8. Rosebank's Avatar
    Good Arguments there @a5cent, runtime or at install? but are we not missing something? The operating system itself is Emulated. So there can be no question of terminology, that is why MS use the Term. Surely this would have to be done as a one time conversion because having to do all the emulation for each and evey instruction in real time on the fly would overload the cpu.
    12-09-2016 04:57 AM
  9. a5cent's Avatar
    Good Arguments there @a5cent, runtime or at install? but are we not missing something? The operating system itself is Emulated. So there can be no question of terminology, that is why MS use the Term. Surely this would have to be done as a one time conversion because having to do all the emulation for each and evey instruction in real time on the fly would overload the cpu.
    Nope, not missing something ;-)

    The OS is not emulated. The Windows OS is compiled for ARM and runs natively (just like Windows RT back in the day). Only the x86 software we install is emulated (or so MS claims). If you point me to the place where you got that from I can maybe help clear it up. Anyway, the idea would have been good, but it falls flat as the underlying assumption of the OS being emulated is incorrect.
    Rosebank likes this.
    12-09-2016 05:04 AM
  10. Rosebank's Avatar
    If that is the case I stand corrected, I was under the impression the OS was somehow emulated, this does make more sense now. It would reduce cpu load dramatically.

    "Microsoft is enabling Windows 10 to support ARM chips directly by building an emulator into the operating system"

    I understood that to be an Emulator within the software (WIN10) allowing it (WIN10) to Run on ARM.
    Last edited by Rosebank; 12-09-2016 at 05:25 AM.
    12-09-2016 05:14 AM
  11. a5cent's Avatar
    "Microsoft is enabling Windows 10 to support ARM chips directly by building an emulator into the operating system"

    I understood that to be an Emulator within the software (WIN10) allowing it (WIN10) to Run on ARM.
    From "The Verge" I assume? What you took away from that sentence is reasonable. Your source material is just crap, no doubt because the person who wrote it doesn't understand it themselves. :-(

    Such articles don't directly try to misinform, but the technical vagueness and the degree of interpretation and imagination required to extract meaning from such (technically almost meaningless) sentences, usually confuses more people than they help. Just as it did with you. I've seen it dozens of times now. It's rare that people without a formal technical background (used as a crap filter) come away from such articles having actually learned something. For anything technical, I think places like ExtremeTech or AnandTech are much better sources. Most folks there belong to the rare breed of tech journalist who actually understand the hardware and software technology they report on. Joel from ExtremeTech states it clearly:

    Windows itself will run using native 64-bit ARM code
    source
    If you have the time to read the full article, I suspect you'd agree that he demonstrates a depth of understanding that we rarely get from other "tech websites".
    Rosebank and EspHack like this.
    12-09-2016 06:40 AM
  12. Rosebank's Avatar
    I have had a full read of the article, thanks for sharing it, and I also read the sources he used in his article, admittedly things do look like Emulation of the Apps and not the entire OS, :-)
    Very exciting and cant wait to learn more details.
    From ridiculous to reality, on mobile ARM Technology, Emulation in FULL swing.
    Last edited by Rosebank; 12-09-2016 at 10:25 AM.
    12-09-2016 06:53 AM
  13. BackToTheFuture's Avatar
    Together, these things lead me to believe that MS's approach is more likely to be a traditional runtime based emulator. I'm just not willing to bet on it.
    It was just my hypothesis, though. We will have to wait, but it's fun to guess how they would approach this emulation problem.
    a5cent likes this.
    12-09-2016 02:18 PM
  14. mkKozak's Avatar
    Ah, you again, the person who's every idea and prediction have been proven false over the last year. Welcome back.

    In a nutshell, my points in this thread boiled down to two things:

    • x86 emulation won't run in a way that anybody would find acceptable on current hardware (latest reporting confirms that)
    • It doesn't make sense to emulate x86 software on phones, as Intel's Core M has reached a point where it's viable for phablet sized devices. That begs the question why we should accept the performance hit of x86 emulation, when we can have the real thing without that performance hit. I didn't consider anything except technical criteria however. If I made a mistake that was it. I think Rosebank might have hit the nail on the head by pointing out the cost difference between Snapdragon 8xx and the Core M chips. However, I did say that if MS is in fact attempting to emulate x86 on ARM, then we're missing part of the puzzle. That cost difference could very well be that puzzle piece.

    I see no non-sense, but you're welcome to quote the things you disagree with if you think otherwise.
    I have few theories:

    Microsoft is going into this emulation and there's no denying it. I suppose they're going this way for only one reason. Windows 10 mobile devices with continuum are targeting business customers. Saying that, being able to emulate already created application in the mobile device without being forced to create ARM version of it is very tempting and reduces unnecesary costs and TIME. And time is the most precious thing everywhere.

    They can also do that, because they... can. Like they did with Ubuntu bash ;) - it's very crippled but it's working and still under development - and I really wish it would work well :)

    Third option is that they are just trying out the technology they can create. They throw something at people and if it worked out they continue to develop it and if it didn't they just abandon it. They're doing it quite often with hardware and software. They release crippled no-much-time-wasted-on-details-design version and if people like it - then boom next one is way better. Feedback is very strong tool and MS is using it as their weapon. No other company is probably doing such a good work with ability to provide them neccessary information aka feedback.
    Rosebank likes this.
    12-09-2016 03:55 PM
  15. Rosebank's Avatar
    Feedback is very strong tool and MS is using it as their weapon. No other company is probably doing such a good work with ability to provide them neccessary information aka feedback.
    Interesting point, and its for that reason I don't get too heavily weighed down with nitty gritty details and hand MS a solution on a platter, I have had experience with this on another Microsoft Forum where the system image backup function was broken following the update from 8.0 to 8.1, Myself and other forum members fixed the problem for others when MS did nothing about it. I just checked that forum post this morning and it has had 71 Thousand hits (yes 71 thousand).
    I think feedback is valuable but I don't like to be forced to give feedback to benefit the company. This benefit does eventually come back to the end user but I refuse to waste my time unless I want to contribute something to MS. That being said for well over 1 year MS left the system image problem sitting festering and did nothing but offer very poor advice at the beginning then nothing at all when they realised the scale of the issue. Free feedback is a Masterstroke if you ask me but they wont be getting too much from me because they let me down on the Laptop and Desktop side. Between the feedback Hub and the forums I think they have all the ideas and fixes they need sitting there, and of course the employees ideas and knowledge.
    12-10-2016 04:10 AM
  16. a5cent's Avatar
    From ridiculous to reality, on mobile ARM Technology, Emulation in FULL swing.
    Just to be clear. The only thing I ever said was ridiculous was trying to make predictions of emulation performance based on CPU core count. A particularly high core count might play a role (or it might not), but there will be other things in such an ARM CPU that will be far more important in terms of making this a usable experience. Without those things a 64 core CPU would be utterly unusable for such a task. There is more to it. We still don't know what that is.

    Purely from a technical perspective, emulating x86 on ARM is still a somewhat senseless proposition. If all we want to do is run Win32 x86 desktop software on phablet sized devices, there are simply much better ways to achieve that functionality, like using a real x86 Core M CPU. For this feature to make sense we have to also take other things into account, like the roughly $200 price difference between ARM and x86 CPUs and possibly also the feature set of ARM SoCs which include a lot of mobile related tech that aren't similarly integrated into x86 based solutions (like Cellular Radios, SensorCore, Gyroscopes). MS might also be thinking something entirely different that we have yet to find out about. What exactly it is that makes x86 emulation on ARM a good idea is still somewhat up in the air.
    They can also do that, because they... can. Like they did with Ubuntu bash
    MS investing millions of dollars into enabling x86 emulation technology on ARM, just because they can, is something MS would never do. MS instantly kills anything that they don't think makes good business sense. Bash in Windows makes a huge difference for software devs. For some devs that can make the difference between being a viable OS or being useless. They didn't build that just because they could.

    Saying that, being able to emulate already created application in the mobile device without being forced to create ARM version of it is very tempting and reduces unnecesary costs and TIME. And time is the most precious thing everywhere.
    NET based applications already run on both x86 and ARM without the developer having to do anything. For lower level software it takes very little. Flick a switch, press a button, then wait... out comes ARM software rather than x86 software. That's actually the preferred approach for running Win32 desktop software on these ARM devices, even if they can emulate x86, and it takes almost no time at all.

    Third option is that they are just trying out the technology they can create. They throw something at people and if it worked out they continue to develop it and if it didn't they just abandon it.
    Possible. Not likely. MS is much more deliberate in what they do. They always have a lot of business oriented reasons for everything they do. If those are good reasons or whether they work is of course a different matter ;-)
    Last edited by a5cent; 12-12-2016 at 02:12 PM. Reason: formatting + last paragraph
    12-12-2016 12:51 PM
  17. Rosebank's Avatar
    Just to be clear. The only thing I ever said was ridiculous was trying to make predictions of emulation performance based on CPU core count.
    Your name was not mentioned, the first page of the thread sums up EMULATION as ridiculous, its awfully big of you to assume you were being referred to directly.
    :-)
    12-12-2016 01:07 PM
  18. a5cent's Avatar
    ^ like I said, it was just to be clear.
    Rosebank likes this.
    12-12-2016 01:11 PM
  19. Rosebank's Avatar
    I have a hunch, I think the announcement of this is perfectly timed, look at the forums, the news, the tech news, the twitter feed, and all the hype this is bringing to MS, it can only mean interest and sales, ( I for one
    am excited about the future of MS mobile).
    This is a masterstroke in publicity manipulation and (I would not be surprised if they got the idea from this forum post--JOKING) will drum up interest and upheaval in the hardware industry where "they" try to plan their futures, like MS missed the boat in mobile (so to speak) others might miss the boat if they don't switch to ARM cpu's with Windows as the OS?
    I feel if MS pull this off and it works we then have an industrial leader in mobile computing and cellular (always on) devices, who needs android when you can have a PC in your pocket. I personally feel MS is going to gain ground on android and IOS very quickly depending on how quickly they develop THEIR next mobile-phone/Device.
    Last edited by Rosebank; 12-12-2016 at 03:06 PM.
    12-12-2016 02:02 PM
  20. a5cent's Avatar
    ^ You are somewhat conflating two unrelated things:

    1. A pocketable mobile device with cellular support that can simultaneously run both UWP (on all screens) and x86 Win32 software (on large screens).
    2. The ability to emulate x86 on ARM

    Those are two very different things that aren't necessarily related. They are only related due to the technical details of how MS approaches this issue.

    x86 emulation is the topic of this thread, but none of the things you list and are excited about necessarily require the capability to emulate x86 ISA. MS might have announced a pocketable Intel Core M based device with a mobile/cellular chip and you'd be able to do all the same things you just mentioned. Admittedly though, at a higher price. As far as I can tell, that's the only unique "feature" enabled by emulating x86 on ARM. There may be more features (although that's a good enough feature by itself), but so far I'm not aware of what those may be. Whatever they are, MS believes they are good enough to make the emulation incurred cost to performance worthwhile.
    12-12-2016 02:24 PM
  21. Rosebank's Avatar
    Giving a simple opinion, that was all, not a reason for a technical breakdown of this but or maybe? , it would not be the first time my opinion (post number 1 of this thread) went without some credibility. :-)
    12-12-2016 03:02 PM
  22. a5cent's Avatar
    ^ You have a very fuzzy way of discussing technical issues. That makes it hard to have a real discussion. I'm trying to nudge you towards a clearer way of thinking about the issue. That's all.
    12-12-2016 03:24 PM
  23. Rosebank's Avatar
    You are trying (like you have been from the beginning) to nudge my ideas off course then secondly invite me into an open debate on all things technical, thanks but no thanks, your information has been good and I thank you for your input but please don't try any further to get me into a war of words over the technicalities of this technology, I was wrong to think the entire operating system was going to be emulated, and you were wrong about the capabilities of current mobile ARM CPU's which you totally underestimated, (820 running windows and photoshop). :-)
    12-12-2016 03:30 PM
  24. a5cent's Avatar
    ^ no, I wasn't wrong, you're just still incapable of grasping the point. I thought I could eventually get through to you, but apparently not ☹ I'll leave it at that.
    12-12-2016 03:34 PM
  25. Rosebank's Avatar
    You should take some time to reflect, on Emulation, ARM CPU capabilities, and why we got into an online argument in the first place, I did my home work, you were relying on information you had (or thought you had) that was outdated and old fashioned.
    EDIT> Welcome to the future.
    12-12-2016 03:45 PM
263 ... 23456 ...

Similar Threads

  1. Win 8.1 enterpise to W10
    By costas60 in forum Windows 10
    Replies: 1
    Last Post: 11-15-2016, 11:49 AM
  2. Replies: 2
    Last Post: 11-15-2016, 11:25 AM
  3. No, Microsoft isn't working on Xbox game streaming to Windows 10 Mobile, but it should!
    By WindowsCentral.com in forum Windows Central News Discussion
    Replies: 0
    Last Post: 11-15-2016, 09:42 AM
  4. how to download in my lumia 1020 this w10 build 10586
    By Windows Central Question in forum Ask a Question
    Replies: 1
    Last Post: 11-15-2016, 03:45 AM
LINK TO POST COPIED TO CLIPBOARD