Thinking about RISC with Windows 8

Analysis
Jul 28, 20115 mins

The addition of ARM family processors will introduce admin challenges, as well as confusion. Microsoft has a chance to get it right, and avoid soap operas.

As Microsoft expands the CPU platform support from x86/x64 families into ARM territory with the addition of ARM CPU chips, there are many questions that will be raised for enterprise systems planners and designers. Some of the arguments will go back two decades in terms of the theoretical design differences between CPUs, but in more practical views, the actual impact of two CPU device families supported by Windows needs to be thought through. In the short term, nothing needs to be done; in the long term, deeper questions arise.

The ARM family of processors is popular because they use little power, yet can perform a lot of work. ARM are members of a class of CPUs known as Reduced Instruction Set/RISC chips. We’ve been using Complex Instruction Set family chips made by Intel, AMD, VIA, and others that have been around for thirty years. Microsoft has only experimentally tried to port Windows onto other chipset families before; the results were good but the endeavors were unsuccessful.

There are numerous chipsets and chipset families surrounding ARM and ARM is seen most by civilians in their smartphones and tablets. It’s popular, inexpensive, and depending on design, reliable. The chipsets made by Intel and AMD, and to a lesser extent VIA, are more expensive but have no fewer families of chipsets, board designers, and ecosystems. Today, ARM is 32-bit only but 64-bit families are on the way. For that reason, client hardware will have Windows ports done first as 32-bit ports will be much easier—and 32-bit ports don’t need to worry about the pesky details of virtualization instructions, either.

The first place you’ll find ARM Windows code is in Windows Mobile devices, smartphones and tablets. The current crop of Windows on tablets running Intel’s Atom processor will be the first place that there might be a clash of code. Currently, there is no cross-processor translation facility of the type that Apple used between the PPC and Intel family, called Rosetta. A realtime emulation system allowing cross-c could be done, but because details of how ARM chips will be adapted to 64-bit platforms, code translation won’t be vetted and ready to work for a while.

Keeping two sets of code for mobile devices will likely be impractical to start, but already, ARM CPU makers are getting approval from Microsoft as targets for Windows ports.

The Practicality

The addition of another CPU family to Windows would seem to be a misstep, as maintaining two or more sets of code for Windows has been the death knell for prior attempts. Although up to four different CPU families have been officially supported in the past, organizations seemed to be very wary of maintaining equivalent but incompatible versions—not to mention maintaining licensing costs and help desk support for multiple concurrent applications. This may change.

Apple showed that a CPU cross-platform codebase could be accomplished almost completely transparently to users during their evolution from the PPC chip to Intel family processors. Users never saw the difference, as the realtime code translators covered the devil of the details of allowing concurrent use of PPC code on Intel platforms. Transitive Corporation, whose processor family translation products were the basis for Rosetta, has also developed other CPU family translation products in the past for Sun RISC chips to Intel-family chips. It’s do-able. Microsoft hasn’t announced whether they’ll support such a move, but it would be wise to do, so as not to drive admins berserk.

Apple has all but announced that they’re moving much of their platforms to ARM processors, that will ostensibly be made by Intel, and so there is much evolving infrastructure poised towards ARM CPU family support. Lightweight, low-power consumption devices have become immensely popular, and Microsoft surely wants part of that market, and this no doubt motivates Microsoft to bend towards ARM support. Both Apple and Microsoft with Intel as an ally towards ARM family support is a good idea; Microsoft makes a lot of money selling applications to Apple users.

There are parallels on the server side, as well. While there are no ARM 64-bit chips and virtualization on 32-bit ARM chips isn’t charming, there are organizations already building very dense ARM-based servers (as well as Intel’s low power ATOM x86-family dense servers) that have found a rising niche in low-power servers. While the multicore x64-family servers that currently rule NOCs today aren’t at risk (excuse the pun), ARM and ATOM family processors are becoming popular.

The bottom line is that although Microsoft hasn’t provided the details about how organizations will manage two processor families of code, there are multiple possible options available to do so. The track record for such efforts aren’t very good, but much has matured in the interim. Let’s see what happens.