janstett said:
IBM and Microsoft used to write OS/2 together (versions 1.x). When they moved to OS/2 2.0, they wanted to make it pure 32-bit but instead kept key components 16-bit. Why? They performed better. It was faster having core components in split personalities with a 16-bit half and a 32-bit half and thunking between them, than writing new pure 32-bit code. OS/2 3.0 became pure 32-bit... and also became Windows NT when IBM and Microsoft split ways. It took many years for NT (2000/XP) to become acceptable in terms of performance and frugality and one could argue this was moore's law of increasing horsepower more than code optimization.
Microsoft did the same thing again with Windows 95. They could have gone completely 32-bit, and initially planned to. But they found that the pure 32-bit code was slower, and it was faster to keep the important components (kernel/gdi/user) 16-bit and give them a 32-bit thunking layer.
Now, how much of either case is the inefficiency of moving to a larger word size, and how much is that the 16-bit code was hand-tweaked assembly code that had been through years of refinement, who knows.
So, I know you're trying to be sarcastic, but increasing word size does not mean faster performance.
Although, my previous comment about running a current Intel chip in 16-bit mode WOULD make it slower. I had forgotten my history. (Which your post reminded me of.)
When Windows NT first came out, it made 486 and Pentium processors faster than when run on Windows 3.1, or even (upon its release,) Windows 95. Because NT was 'pure' 32-bit, while even Windows 95 retained 16-bit code in parts of its core. (Requiring 'thunking'.)
Upon the release of the Pentium Pro processor, speed freaks were dismayed. It performed WORSE in Windows 3.1 and DOS than the previous Pentium Processor, at faster speeds. (a.k.a. a 200 MHz Pentium Pro was outrun by a 166 MHz Pentium.) This defied logic! The Pentium Pro was a significantly better architecture, with its own on-package, full-speed L2 cache! (A first, at the time.) Why? Because, Intel had abandoned 16-bit computing. The Pentium Pro architecture (a.k.a. 'P6',) was designed from the ground up for 32-bit computing. While a 166 MHz Pentium may have beat a 200 Mhz Pentium Pro in 16-bit operations; a 166 Mhz Pentium Pro beat even a 200 MHz Pentium MMX in 32-bit operations.
That helped propel sales of both the Pentium Pro, and Windows NT, to the corporate market.
The Pentium Pro begat the Pentium II, which begat the Celeron, Pentium II Xeon, Pentium II, Pentium III Xeon, and Pentium-M. Then Intel abandoned this ground-breaking architecture for another new architecture, which they dubbed 'NetBurst'. Tuned for pure MHz speed, NetBurst became the Pentium 4, Xeon, (new) Celeron, and Pentium D. When Intel realized that this tuning for pure MHz actually made a more inefficient processor, and more power-hungry, they went back to the drawing board. Reviving the core ideals of the more-than-10-year-old P6 architecture, and adding the best parts of NetBurst, to come up with the 'Core' architecture at the heart of the latest, incredibly fast chips.