Live data from Hacker News

Windows 10 on ARM

channel9.msdn.com

181–190 of 290 posts

Re: Windows 10 on ARM

#181
post #86
post #61

Earlier quoted context omitted.

They actually did namedrop Dave Cutler in the main keynote earlier, although in the context of talking about the Linux Subsystem.

That must kill him inside.

Yeah I'd hate to be tied with extreme scale emulation efforts that serve millions of users built by multi billion dollar corps. Shame! /s

Re: Windows 10 on ARM

#183
post #43

For any Microsoft insiders with knowledge about this, a few questions: 1. In the talk they claim that they get "near native" speed from the translation. Can we have some real number of what can be expected? What about warm up time? 2. Is the x86 translation layer only available in user space, or can x86 drivers be loaded for hardware that doesn't have arm drivers yet (or the manufacturer doesn't care about making the…

5. How do they solve the problem that x86 has a much stronger memory model than ARM, which makes emulation of multithreaded x86 code pretty hard without introducing a huge performance disadvantage?

Not just the memory model, unaligned word/dword accesses would be tricky too I think? Doesn't ARM usually silently give you garbage when you load or store a multibyte item into a register unaligned?

Re: Windows 10 on ARM

#184
post #183
post #43

Earlier quoted context omitted.

5. How do they solve the problem that x86 has a much stronger memory model than ARM, which makes emulation of multithreaded x86 code pretty hard without introducing a huge performance disadvantage?

Not just the memory model, unaligned word/dword accesses would be tricky too I think? Doesn't ARM usually silently give you garbage when you load or store a multibyte item into a register unaligned?

ARMv6 added unaligned support[0].

[0] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc....

Re: Windows 10 on ARM

#185
post #160

Earlier quoted context omitted.

How many platforms does that Microsoft emulator work on? One? Unlike Microsoft, Google supports 3 development platforms and so their new emulator also had to support 3 platforms. Also, the new emulator was written from scratch and that takes time.

> Unlike Microsoft, Google supports 3 development platforms and so their new emulator also had to support 3 platforms No it didn't. If platform specific solutions make sense then we should use platform specific solutions. Not everything has to be cross platform and 100% identical across all platforms.

Except when you develop a cross platform IDE and emulator that requires feature parity across them all.

Re: Windows 10 on ARM

#186

Earlier quoted context omitted.

World-changing technologies like p2p filesharing, bitcoin, app stores, and even the web itself wouldn't have taken off if most personal computers were walled gardens. What future innovations will never even be given a chance at life? Will we have to depend on the big corporate players to move computing forward?

Centennial (read, non-UWP) apps can be published to the Windows Store and don't get any sandboxing beyond registry virtualization by default. Microsoft lives and dies by backwards compatibility, they're not going to kill off Win32 - they may very well push for the Windows Store to be the primary source for applications with traditional installers being blocked by default though.

Unless those non-UWP apps are browsers that use non-Microsoft rendering or javascript engines.

I don't think that's a dealbreaker, especially when they'll let people trade from 10S to 10Pro for free. But it's a pretty big caveat that got added very quietly.

Re: Windows 10 on ARM

#187
post #183
post #43

Earlier quoted context omitted.

5. How do they solve the problem that x86 has a much stronger memory model than ARM, which makes emulation of multithreaded x86 code pretty hard without introducing a huge performance disadvantage?

Not just the memory model, unaligned word/dword accesses would be tricky too I think? Doesn't ARM usually silently give you garbage when you load or store a multibyte item into a register unaligned?

In linux, you get a nice SIGBUS for unaligned memory access.

Re: Windows 10 on ARM

#188
post #43

For any Microsoft insiders with knowledge about this, a few questions: 1. In the talk they claim that they get "near native" speed from the translation. Can we have some real number of what can be expected? What about warm up time? 2. Is the x86 translation layer only available in user space, or can x86 drivers be loaded for hardware that doesn't have arm drivers yet (or the manufacturer doesn't care about making the…

5. How do they solve the problem that x86 has a much stronger memory model than ARM, which makes emulation of multithreaded x86 code pretty hard without introducing a huge performance disadvantage?

Why is that? We are talking user space applications rather than drivers/etc. Properly coded applications will be using some form of sync primitives to shared data structures. So, when the emulator hits a LOCK xxx instruction it simply replaces it with a LDAXR/STLXR (load acquire exclusive, store release exclusive which have implied barriers) pair, or drops a barrier in. Generally though, you would expect that most well behaved application are using EnterCriticalSection()/InterlockedXXXX() or other library calls that could be calling ARM64 optimized code (likely one of those hybrid libraries) which would also assure proper barriers.

So, an emulator like this isn't going to be perfect, and applications which have been getting lucky due to x86's ordering model and avoiding proper sync primitives will likely break, and there really isn't much that can be done in those cases but fixing the application although it wouldn't surprise me if there is a compatibility flag which falls back to some slow path emulation mode which orders individual loads/stores and runs at 1/10 the normal speeds.

Re: Windows 10 on ARM

#189
post #160

Earlier quoted context omitted.

> Unlike Microsoft, Google supports 3 development platforms and so their new emulator also had to support 3 platforms No it didn't. If platform specific solutions make sense then we should use platform specific solutions. Not everything has to be cross platform and 100% identical across all platforms.

Except when you develop a cross platform IDE and emulator that requires feature parity across them all.

Feature parity does not mean the exact same tools on every platform. Trying to be identical across 3 platforms always means adopting the lowest common denominator and always results in being equally shit on every platform.

It's astounding that people still try to ignore the last 30 years of evidence of this.

Re: Windows 10 on ARM

#190
post #73

Earlier quoted context omitted.

I remember when Apple supported PPC emulation of applications when they made the switch to Intel x86 for a major OS release cycle. I was impressed that the speed there was, in fact, near native enough that the transition was essentially completely seamless. Although this is somewhat of the reverse in architectures, going from CISCy to RISCy. The only thing that concerns em about recent Microsoft developments is that…

> Although this is somewhat of the reverse in architectures, going from CISCy to RISCy. Apple did the same when they moved from 68K to PPC. The PPC would run the 68K code in emulation or, if it was a "fat binary" with both 68K and PPC code, it would just load the functionally equivalent PPC binary and run it. There were utilities to compress executables that deleted the versions not for the current CPU - very handy i…

In that case, the PPC had probably a 5-10x perf advantage over the 68k's people were upgrading from. So, it wasn't noticeable, so if in the end the emulated code was only running at the speed of the 68k it was replacing it was a net win every time it entered the kernel and ran native code.

ARM doesn't have this advantage over X86, at best its probably somewhere around 1/2 the absolute performance. Of course intel has been selling a _LOT_ of really slow CPU's down the product line, so for someone upgrading from a atom class machine the ARM will probably appear to be pretty reasonable. Not so much, if your running a fairly high end laptop.

Post reply on HN