https://www.righto.com/2022/11/a-bug-fix-in-8086-microprocessor.html
While reverse-engineering the 8086 from die photos, a particular circuit caught my eye because its physical layout on the die didn't match the surrounding circuitry. This circuit turns out to implement special functionality for a couple of instructions, subtlely changing the way they interacted with interrupts. Some web searching revealed that this behavior was changed by Intel in 1978 to fix a problem with early versions of the 8086 chip. By studying the die, we can get an idea of how Intel dealt with bugs in the 8086 microprocessor.
In modern CPUs, bugs can often be fixed through a microcode patch that updates the CPU during boot.1 However, prior to the Pentium Pro (1995), microprocessors could only be fixed through a change to the design that fixed the silicon.
(Score: 4, Insightful) by bzipitidoo on Friday May 05, @06:46AM (6 children)
I don't know why Intel didn't ballyhoo more about the massive changes introduced in the Pentium Pro. The Pro, not the Pentium II, is the start of the 686, the first x86 CPU with speculative execution and the accompanying Spectre vulnerability. The Pro is the one that should have been called the Pentium II. Marketing departments are far too eager to puff up the tiniest things as if they were revolutions, quantum leaps, paradigm shifts, movements of the earth, etc. But this? They missed.
Perhaps it was the laser focus on megahertz as the measuring stick of progress. They never did all that great a job conveying just why the 386 was superior to the 286, likewise why the 286 was superior to the 8086. Only vague assurances that because it was newer, it of course had to be better. The 286 in any case fell short of its promise to bring mainframe style multitasking to the personal computer. The 386 was a lot better in that department, but still had a few bad shortcomings. The 486 remedied the worst of those. Yet even today, from what I hear the x86 architecture still can't do full virtualization. The Pentium II began a few years of huge jumps in raw speed. Pentiums started out at 60 MHz, which was not much of a jump from a 50 MHz 486, and IIRC the Pro wasn't much faster. The Pentium II pushed into the 400 MHz range, then the Pentium III surged past 1GHz.
(Score: 2) by turgid on Friday May 05, @10:18AM (1 child)
Then the Pentium IV came along and made it all the way to 2.8GHz but with very poor real world performance and a lot of noise and heat. When the first generation Opterons came out at something like 1.4-1.6GHz, they were 64-bit and faster that the 2.8HGz Pentium IVs for many things, and ran a lot cooler. I had a laptop with an Opteron CPU (Acer Ferrari). It ran Solaris 10 (64-bit) and Slackware (32-bit).
I refuse to engage in a battle of wits with an unarmed opponent [wikipedia.org].
(Score: 3, Informative) by owl on Friday May 05, @03:26PM
The Opterons and their outrunning the P4's were what led to Intel back licensing the 64 bit extensions from AMD. During this time frame Intel's "64bit" path was the Itanium chip, so they ignored extending x86 to 64bits. AMD grabbed that opportunity for themselves, and the performance of their chips (and the growing realization that Itanium was headed for a similar shipwreck as the iAPX432 chip set) pretty much forced Intel to license the 64-bit extensions from AMD.
(Score: 2) by owl on Friday May 05, @03:20PM (3 children)
There was a lot of ballyhoo about the Pentium Pro at the time it debuted. But, as well, it debuted close on the heels of the Pentium, at a time when most 'grey-box' PC's were barely starting to offer 486's at reasonable cost, and Pentium's at "give us your first born" costs, and the Pro's pricing was even higher yet. So possibly Intel marketing was thinking the PPro would be a "professional" chip (therefore the naming) that would be built into what, at the time, would have been "workstations" that corporations would purchase in bulk, rather than a chip that would fuel the "grey-box" dos-windows market. This, of course, is speculation (and 30 year old speculation at that).
Yes, indeed, the PPro is the real "Pentium II" (as in 'second Pentium) chip. But this was also right on the heels of Intel's decision to change from numbers (286, 386, 486) to names (press at the time indicated the ability to trademark the name, but not the number, was why) and it is very possible that marketing just had not gotten their brains straight on how best to handle the newish 'names'.
In large part because no OS writing company actually produced an OS that would take advantage of its "multitasking features". Of course, during this same timeframe was when MS was hard at work at solidifying their stronghold on the low end grey-box OS market, and the high end Unix workstation vendors were each targeting their own silicon (MIPS/SPARC/Alpha/etc.) so there really wasn't anyone to write that OS to use the 286's new features to the fullest. With that said, there were some aspects that would have meant it would have been a big PIA to do so as well.
(Score: 2) by turgid on Friday May 05, @05:36PM (1 child)
As far as multi-tasking features for the 286, IBM and Microsoft produced a specific version of OS/2 for the 286 to use those features. The 386 version was different again.
For general PC use, the problem with the Pentium Pro was that it didn't run some 16-bit code either at all or at full speed (I can't quite remember). It was firmly aimed at running Windows NT on servers. That seriously limited its market. However, then the Pentium II came along, which was based on the Pentium Pro architecture, which added full support for the old 16-bit stuff. I'll need to remind myself what the missing features were. It might have been to do with caching segment registers.
I refuse to engage in a battle of wits with an unarmed opponent [wikipedia.org].
(Score: 3, Informative) by owl on Saturday May 06, @04:11PM
Wikipedia [wikipedia.org] cites this as the issue you are likely remembering:
So the issue was quite awful performance on 8/16-bit code, due to all the pipeline flushes that code caused in the new architecture. And, yes, given that the most likely OS most would use on it at the time (Dos/Win 3.1/Win 95) was littered with lots of 16-bit code would have meant few would have seen the potential performance boost over the Pentium.
And the irony with that issue on the Pro is it was also a foreshadowing of the performance issues that the future Pentium 4 arch. would have with all code. In the Pentium 4's case, it was too many miss-predicted branches in typical code resulting in too many pipeline flushes. And the P4's extremely long pipeline meant a pipe flush was extremely detrimental to performance.
(Score: 2) by turgid on Friday May 05, @05:38PM
There was also an SMP bug on the Pentium Pro, IIRC to do with bus locking, which rendered it unreliable in multi-processor systems. There was software mitigation, but it couldn't solve the problem completely.
I refuse to engage in a battle of wits with an unarmed opponent [wikipedia.org].