Sunday, May 21st 2023
Intel Exploring x86S Architecture, Envisions an Unadulterated 64-bit Future
Intel has published a highly involved and extensive whitepaper on the topic of streamlining its CPU architectures, most notably by focusing on a purely 64-bit specification, and consequently dropping legacy 32-bit operating modes (as well as 16-bit!). Team Blue's key proposal states: "This whitepaper details the architectural enhancements and modifications that Intel is currently investigating for a 64-bit mode-only architecture referred to as x86S (for simplification). Intel is publishing this paper to solicit feedback from the ecosystem while exploring the benefits of extending the ISA transition to a 64-bit mode-only solution."
The paper provides a bit of background context: "Since its introduction over 20 years ago, the Intel 64 architecture became the dominant operating mode. As an example of this evolution, Microsoft stopped shipping the 32-bit version of their Windows 11 operating system. Intel firmware no longer supports non UEFI64 operating systems natively. 64-bit operating systems are the de facto standard today. They retain the ability to run 32-bit applications but have stopped supporting 16-bit applications natively. With this evolution, Intel believes there are opportunities for simplification in our hardware and software ecosystem."The intros a small flow diagram: "Certain legacy modes have little utility in modern operating systems besides bootstrapping the CPU into the 64-bit mode. It is worth asking the question, "Could these seldom used elements of the architecture be removed to simplify a 64-bit mode-only architecture?" The architecture proposed in this whitepaper completes the transition to a 64-bit architecture, removing some legacy modes."
Sources:
Intel Articles, Phoronix
The paper provides a bit of background context: "Since its introduction over 20 years ago, the Intel 64 architecture became the dominant operating mode. As an example of this evolution, Microsoft stopped shipping the 32-bit version of their Windows 11 operating system. Intel firmware no longer supports non UEFI64 operating systems natively. 64-bit operating systems are the de facto standard today. They retain the ability to run 32-bit applications but have stopped supporting 16-bit applications natively. With this evolution, Intel believes there are opportunities for simplification in our hardware and software ecosystem."The intros a small flow diagram: "Certain legacy modes have little utility in modern operating systems besides bootstrapping the CPU into the 64-bit mode. It is worth asking the question, "Could these seldom used elements of the architecture be removed to simplify a 64-bit mode-only architecture?" The architecture proposed in this whitepaper completes the transition to a 64-bit architecture, removing some legacy modes."
Envisioning a Simplified Intel ArchitectureHow Would a 64-Bit Mode-Only Architecture Work?The webpage introduction only serves as a simple primer on the topic of x86S - more technically-minded folks can take a look at the big whitepaper document (PDF) here.
Intel 64 architecture designs come out of reset in the same state as the original 8086 and require a series of code transitions to enter 64-bit mode. Once running, these modes are not used in modern applications or operating systems.
An exclusively 64-bit mode architecture will require 64-bit equivalents of technologies that currently run in either real mode or protected mode. For example:These modifications can be implemented with straightforward enhancements to the system architecture affecting the operating system only.
- Booting CPUs (SIPI) starts in real-address mode today and needs a 64-bit replacement. A direct 64-bit reset state eliminates the several stages of trampoline code to enter 64-bit operation.
- Today, using 5-level pages requires disabling paging, which requires going back to unpaged legacy mode. In the proposed architecture, it is possible to switch to 5-level paging without leaving a paged mode.
What Would Be the Benefits of a 64-bit Mode-Only Architecture?
A 64-bit mode-only architecture removes some older appendages of the architecture, reducing the overall complexity of the software and hardware architecture. By exploring a 64-bit mode-only architecture, other changes that are aligned with modern software deployment could be made. These changes include:Legacy Operating Systems on 64-Bit Mode-Only Architecture
- Using the simplified segmentation model of 64-bit for segmentation support for 32-bit applications, matching what modern operating systems already use.
- Removing ring 1 and 2 (which are unused by modern software) and obsolete segmentation features like gates.
- Removing 16-bit addressing support.
- Eliminating support for ring 3 I/O port accesses.
- Eliminating string port I/O, which supported an obsolete CPU-driven I/O model.
- Limiting local interrupt controller (APIC) use to X2APIC and remove legacy 8259 support.
- Removing some unused operating system mode bits.
While running a legacy 64-bit operating system on top of a 64-bit mode-only architecture CPU is not an explicit goal of this effort, the Intel architecture software ecosystem has sufficiently matured with virtualization products so that a virtualization-based software solution could use virtualization hardware (VMX) to deliver a solution to emulate features required to boot legacy operating systems.
Detailed Proposal for a 64-Bit Mode-Only Architecture
A proposal for a 64-bit mode-only architecture is available. It embodies the ideas outlined in this white paper. Intel is publishing this specification for the ecosystem to evaluate potential impacts to software.
41 Comments on Intel Exploring x86S Architecture, Envisions an Unadulterated 64-bit Future
Now Intel can remove some 32-bit features but they can do something else too: optimise the remaining parts for transistor count, regardless of performance drop. No one would blame them, when was the last time that top 32-bit performance mattered? Right, that was when CPUs were two or three times slower.
So in total, they can save maybe... 10 M transistors per core?
Since the 20-teens, it seems like there's a new 'vulnerability discovered' every couple years, and some have reached back to the first few generations of X86 chips (and are "unfixable").
Wikipedia says P4 180nm used 42M transistors, P4 90nm 125M transistors.
42M * 10% = 4M, but let's round up and assume "well under" 10% of 125M is 6M.
I can't find figures for modern Intels, but Zen 4 is 6.5B transistors per CCD (up to two of them) plus 3.4B for the I/O die. In total about 16 billion transistors in the max configuration.
So with a lot of random assumptions:
6M * 16 cores = 96M. 96M / 16B = 0.6%
That's for a current-gen CPU, assuming no multicore/other optimizations, and ignoring cache/logic/whatever density differences. Someone should quantify/concretize what that actually means. Cleanup just for the sake of aesthetics isn't useful.
If anything, it seems like modern software development practices are wasting much more potential performance and power than some minimal legacy support hardware. But who knows.
32bit apps is a different beast, but for now after the further explanation it seems thats not affected.
So for Xajal to state it's because it's "old" or "inefficient" is just plain wrong and a clear indication of someone who either doesn't understand what's really going on or is just flexing against Intel. Regardless, it's pure moose muffins, putting it bluntly.
For you to say it "takes up silicon space" is less wrong because it is technically correct. However, it's just not anywhere close to the real reason.
I personally have mixed thoughts on this one. On the one hand, who really uses those decades old legacy instructions these days? But at the same time, it's not hurting much for them to be present and on the off chance they become useful again(it's happened), engineering them back in might be a challenge.
So, I was actually being very generous with the percentage estimates above. As I said, Intel is cleaning up it's ISA package and eliminating potential hardware based security risks. Nothing more.
But with the silicon area gained, Intel could cram maybe 0.25 MB of L2 more into each core, or increase some other of the many buffers and small caches that sit in there, with a tangible benefit. Designing CPUs is an iteration with a set of limitations and tradeoffs, you can increase X by a bit but then you can't increase Y, and exactly which workloads will benefit from that? Etc. So even a few tenths of a percent is not negligible, neither in surface area nor in performance. That's a lot even if there's "nothing more". The 32-bit blocks won't develop and maintain themselves, I'd say 1% of Intel engineers' job is associated with them, can we agree on this rough estimate? Intel has some very competent bean counters, they surely do wake up when the corporation's net income goes to (brackets).
Engineers are needed to search for security holes, adapt the blocks to new microarchitectures and new nodes and higher clocks*, simulate, optimise for (at least) area, test, and possibly commit errata that eventually make it to the production silicon. And we're talking about tricky features here, such as protection rings, protected mode or virtualisation support, not just "simple" code execution.
* Unless Intel is cheating, which they should be. As I've said before, no one will miss great 32-bit performance in 2023, so decoders can run at half speed. Slower transistors are often smaller and less hot, too.
So any 32bit code will continue to run flawlessly. I never said it was. Just stated what I think they're really doing. This is supported by the facts at hand. Nonsense! There are TONS of things that still run 32bit and NEED to perform well.