Intel Mulls Cutting Ties To 16 And 32-bit Support
Chip giant Intel has proposed something rather unusual: a potential simplification of the x86 architecture by removing old features.
A technical note on Intel's developer blog puts forward a rather radical change to the x86-64 architecture: a new x86S architecture, which simplifies the design of future processors and a PC's start-up process, by removing 16-bit and some elements of 32-bit support from the hardware.
The result would be a family of processors which boot straight into x86-64 mode.
That would mean bypassing the traditional series of transitions – 16-bit real mode to 32-bit protected mode to 64-bit long mode; or 16-bit mode straight into 64-bit mode – that chips are obliged to go through as the system starts up.
The developer note is accompanied by a 46-page technical white paper [PDF] that goes into considerable detail about the exact changes that Intel is considering. Some of the changes are quite dramatic, although the impact upon how most people use computers today would probably be invisible – which is undoubtedly the idea.
And remember, this is Intel we're talking about; backwards compatibility is something it's been famous for, for decades.
Apart from eliminating 8086-style 16-bit real mode, and 80286-style 16-bit protected mode, it would also remove 32-bit ring zero, and completely remove protection rings one and two from the architecture.
Just in case the distinction between the x86 protection rings has temporarily slipped your mind, we explained them and how they work in part one of our brief history of virtualization in 2011. Quickly though: ring zero is where an OS typically lives, and ring three is where apps run.
Intel's developer note suggests:
This parallels the way The Reg FOSS desk put it a dozen years back:
As it happens, both of these are operating systems of which we're quite fond. But to be honest, losing direct support for either of them on future hardware isn't going to inconvenience anybody. They, and any other operating system which starts in 16-bit mode – such as DOS or Windows 9X – won't even boot on any contemporary UEFI machine anyway.
Losing ring zero in 32-bit mode means that you wouldn't be able to run an x86-32 hypervisor – but again, nobody is going to want to do that when a 64-bit one offers you so much more memory.
When we initially read this proposal, we thought that it also meant eliminating x86-32 mode entirely, but that's not the case. It will just be significantly more limited. It will still be possible to start up an x86-32 operating system inside a VM – these have to emulate system firmware in any case, alongside the emulated graphics cards, network cards and so on that they must provide.
You will also still be able to run x86-32 binaries and apps in ring three on your 64-bit OS in ring zero – so long as the operating system provides the appropriate libraries and APIs, of course. They nearly disappeared from Ubuntu a few years back, and it still might happen. What X86S really means is removing the ability to boot 32-bit systems on bare metal. UEFI has already effectively eliminated the ability to boot 16-bit operating systems on bare metal, and barely anybody noticed.
Similarly, it's quite hard to run DOS software on a modern 64-bit system, because back at the turn of the 21st century, AMD's x86-64 removed the VM86 mode used for running real-mode code while an x86-32 chip is in 32-bit protected mode. VM86 mode was introduced with the 80386DX in 1987, disappeared about 20 years ago … and virtually nobody has noticed.
There is actually another precedent for this which we are prepared to bet few remember now. Long ago, Intel for a while offered a cutdown version of the 80386 processor which could only run in 32-bit mode, and which completely eliminated 16-bit mode – which was clearly already on the way out even back in 1989.
We are not talking about the famed 80386SX, but a variant of it: the little-known Intel 80376. We're amused to note that one of the few descriptions of this chip still to be found on the web hypothetically proposed – in 2010 – how handy it would be if modern processors booted directly into 32-bit mode.
A big difference is that the 80376 didn't support paged memory mode, whereas the putative X86S only supports operation in paged memory mode.
There are also some loose parallels here with the origins of Intel's whole x86 architecture. In the mid-1970s, Intel started work on an extremely ambitious 32-bit "micromainframe", codenamed 8800 to succeed its successful 8080 and 8085. With the recent passing of Intel cofounder Gordon Moore, what eventually became the iAPX432 has been getting a little bit of attention once again, such as this overview. It shipped as a complex of three c.100,000-transistor chips – vast for the time.
Chip boffin's chip boffin Ken Shirriff has also tweeted some in-depth threads about some of this complex's components, including the 43202 and 43201.
- The return of the classic Flying Toasters screensaver
- Apple releases Lisa source code on landmark machine's 40th birthday
- Riding in Sidecar: How to get a Psion online in 2023
- HDD Clicker gizmo makes flash sound like spinning rust
The iAPX432 project ran so horribly late that it only shipped in 1981. In an effort to salvage something, Intel put out a stopgap: a partially-compatible 16-bit extension of its 8080 architecture, which extended the design to allow it to access a whole megabyte of memory in 20 separate 64KB segments. This was the 16-bit 8086, launched in 1978 – the first x86 device, whose execution model Intel is still trying to get rid of in 2023.
An interesting theory is that the origin story is a little more recursive than that. Realizing that the iAPX432 would be late, big, and expensive, Intel sketched out a design for a much simpler chip – with a much simpler segmented protected-memory design based on the memory architecture of the iAPX432. Although this eventually shipped in 1982 as the Intel 80286 – which Microsoft boss Bill Gates famously described as "brain dead" – Intel realized that a 120,000-transistor 80286 would be too complex and expensive to sell profitably. Thus it cut the design down even more to create the 8086.
The 8086's hardware was, of course, cut down still further with an eight-bit memory bus to create a budget model: the 8088. That was the CPU that IBM used in its model 5150 – the original IBM PC, which more or less spawned the modern computer industry. ®