Thursday, June 15, 2017

Emulation: Windows10 on ARM

At last December's WinHEC conference, Qualcomm and Microsoft made an announcement to which I should have paid more attention:
Qualcomm ... announced that they are collaborating with Microsoft Corp. to enable Windows 10 on mobile computing devices powered by next-generation Qualcomm® Snapdragon™ processors, enabling mobile, power efficient, always-connected cellular PC devices. Supporting full compatibility with the Windows 10 ecosystem, the Snapdragon processor is designed to enable Windows hardware developers to create next generation device form factors, providing mobility to cloud computing.
The part I didn't think about was:
New Windows 10 PCs powered by Snapdragon can be designed to support x86 Win32 and universal Windows apps, including Adobe Photoshop, Microsoft Office and Windows 10 gaming titles.
How do they do that? The answer is obvious: emulation! Below the fold, some thoughts.

Because of the ubiquity of the x86 instruction set, much of the work described as emulation is more correctly described as virtualization. As discussed in my report on emulation, virtualization and emulation are end-points of a spectrum; the parts that the hardware you're running does implement are virtualized and the parts it doesn't are emulated. Because ARM and x86 are completely different instruction sets, Qualcomm is at the emulation end of the spectrum. More than two decades ago, Apple used emulation to migrate from the Motorola 68000 to the PowerPC instruction set; this isn't anything new or surprising.

It is obviously in everyone's interest, except Intel's, to have more effective competition in the market for chips to run Windows than AMD has been able to provide. This is especially true given the way PC and mobile technologies are merging. Intel's consistent failure to deliver performance competitive with ARM in the mobile market and Qualcomm's ability to integrate 5G connectivity are significant.

Now, MojoKid at /. points me to Brandon Hill's Intel Fires Warning Shot At Qualcomm And Microsoft Over Windows 10 ARM Emulation In X86 Birthday Blog Post. The Intel blog post is authored by Steven Rogers, EVP and General Counsel for Intel, and Richard Uhlig, Intel Labs Fellow and Director of Systems and Software Research, and it clearly is a warning shot:
There have been reports that some companies may try to emulate Intel’s proprietary x86 ISA without Intel’s authorization. Emulation is not a new technology, and Transmeta was notably the last company to claim to have produced a compatible x86 processor using emulation (“code morphing”) techniques. Intel enforced patents relating to SIMD instruction set enhancements against Transmeta’s x86 implementation even though it used emulation.
Transmeta vs. Intel was an unequal battle, and Transmeta lost (my emphasis):
On October 24, 2007, Transmeta announced an agreement to settle its lawsuit against Intel Corporation. Intel agreed to pay $150 million upfront and $20 million per year for five years to Transmeta in addition to dropping its counterclaims against Transmeta. Transmeta also agreed to license several of its patents and assign a small portfolio of patents to Intel as part of the deal. Transmeta also agreed to never manufacture x86 compatible processors again.
But Microsoft+Qualcomm vs. Intel is a battle of equals, especially given Intel and Microsoft's co-dependent quasi-monopoly. It is likely to go down to the wire. If it ends up in court, is likely to clarify the legalities of using emulation significantly.

Unfortunately, the interests of preservation won't figure in any such court battle. Clearly, these interests would favor Qualcomm+Microsoft, but the favor wouldn't be returned. Their interests would have a much closer time horizon. The way this conflict plays out will have a big effect on the PC business, and on the future of emulation as a preservation strategy.

6 comments:

David. said...

I don't think there will be similar IP issues around the resurrection of Multics. The details are here:

"The Multics CPU simulator created by Harry Reed and Charles Anthony is available for public download. A complete QuickStart installation package is available that provides software, compilers, system source, install scripts, and several initial projects (SysDaemon, SysAdmin, Daemon, etc.) and users."

And, yes:

"[Raspberry Pi] runs Multics at an approximate half a MIP speed: performance test results. It's probably close to the first Multics processors we got at Ford. ... (Running the simulator on my MacBook Pro creates a Multics machine with approximately 7 mips performance.)"

David. said...

Radiohead released a cassette tape as part of the 20th anniversary version of OK Computer:

"The cassette, packed full of rare demos and odd audio experiments, ends with roughly two minutes of computer tones.

At least one keen fan loaded this into a ZX Spectrum emulator (after processing the audio with a 3.5kHz low-pass filter). And the result is roughly 30 lines of code, with its functioning parts printing out a basic text greeting that lists the band members' names alongside a note: "19th December 1996, with all our love."

David. said...

Something I mentioned in my report on Emulation was the decline of the PC market, which is making many of the assumptions legacy programs make about their UI environment obsolete. At The Register Simon Sharwood reports on the continuing decline:

"Gartner reckons the world consumed 61.1 million machines, down 4.3 per cent from the same quarter in 2016.

IDC says combined desktop, notebook and workstation shipments hit 60.5 million units in the second quarter of 2017, for a year-on-year decline of 3.3 per cent."

According to Garner, this is the lowest quarter volume since 2007.

David. said...

Kyle Orland at Ars Technica reports that MAME devs are cracking open arcade chips to get around DRM:

"Since then, the Caps0ff project has taken up the MAME decapping mantle, raising money to acquire and decap hundreds of undumped chips ... For a set of Fujitsu-made chips used in Sega's Virtua Racing, though, Caps0ff needed to reach out for some crowdsourced help. With previously used computer-vision algorithms apparently unable to extract reliable data from these exposed Mask ROMs, the team set up a tool that would allow human eyes (and brains) to do the visual decoding themselves. That tool asks users to essentially transcribe 1s and 0s from black-and-white pictures of an ultra-zoomed portion of the chip, overlaid with a guidance grid to help pick out where one bit ends and the next begins.

The first chip of that set was successfully transcribed by 88 volunteers in about 15 hours this week, according to MAMEWorld poster drewcifer."

David. said...

Stefan Serbicki – Technical Lead, IP Preservation Management, Electronic Arts writes a detailed guide to using virtualization to recover old backups made with Fastback 2.0:

"Fastback was a backup utility for IBM PC and Macintosh computers. Fastback 1.0 was released in 1987. Fastback 2.0 was released in 1990 and subsequently included with Novell DOS 7.0. The method used here to recover Fastback 2.0 images uses a distribution of Novell DOS 7.0 installed in a VMware Workstation virtual machine (VM)."

David. said...

At The Register, Simon Sharwood reports that QEMU's developers are planning a code cleanup.