Ron Johnson put forth on 6/15/2010 10:21 AM: > On 06/15/2010 04:34 AM, Stan Hoeppner wrote: > [snip] >> >> Disclaimer: my comments below intentionally exclude x86-64 capable CPUs >> >> >> There are different kernels for different models of the Intel x86 >> processor >> family and compatibles, but make no mistake, they all use the same >> instruction >> set introduced in the 80386. There is no i686 instruction set, nor an >> i586 or >> i486 instruction set. > > This is just *wrong*.
No, it's not "just wrong". If you read the Intel literature, there is a single IA32 instruction set. Some processor models have additional model specific instructions because they introduce new registers, but the instruction set, or IA32 ISA, is the same across the board. I clearly explained later in my post that some models have model specific extensions. > http://en.wikipedia.org/wiki/X86_instruction_listings#Added_with_80486 > > http://en.wikipedia.org/wiki/X86_instruction_listings#Added_with_Pentium_Pro > > > You may think that's not a lot, but it is to a compiler writer, and it > demonstrates that Stan's wrong. Is this about answering the OP's question or proving me wrong? You said that twice now, and that duck doesn't hunt. I've stated nothing factually incorrect. That said, I'm not the maintainer of the i486, i586, and i686 kernels, so I can't say with certainty exactly what is included in each kernel or what gcc flags were used when built. However, specifically in the case of the i486 kernel, I find it hard to believe a kernel would be rebuilt due to 6 new instructions, 3 of which simply flush the L1 cache in one fashion or another. I could be wrong, though it seems like wasted effort given the small gain. In the case of the Pentium Pro, Intel simply added a conditional for each move instruction. Again, I don't know if using these instructions would yield much if any performance gain for kernel code. Again, I believe the differences in these kernels have more to do with subroutines that address specific features of each platform than with what instructions were exposed to gcc at compile time. The largest difference is the BIOS for each of these CPU generations, and different BIOSes are going to require different kernel code. In the case of the Pentium Pro (and later) there is code to manage the L2 cache, although you don't see anything related to L2 cache instructions on the Wikipedia pages. I'd say the data there is incomplete. I'll have to research it. Also, AFAIK, the i686 kernels run on the Cyrix 6x86, which, IIRC, doesn't support the conditional move instructions of the Intel PPro... >> As a matter of fact, the latter of these aren't >> even >> models of Intel CPUs. > > You're right, just as I'm not "The Johnsons". That's a *family* > designation. Now that's just plain wrong. There is no "i586" or "i686" family. People other than Intel came up with these descriptions. Intel specifically made a point that there is no 586 and no 686. They did this because copyright became an issue when they tried to silence their competition in court. The judges said you can't copyright a number. Thus Intel invented "Pentium" and copyrighted it so competitors making compatible chips couldn't piggy back. >> What kernel programmers call i586 and i686 are >> actually >> classes or sets of features of Intel and compatible competitor CPUs from >> Cyrix, IBM, TI, and AMD. The original Intel 60/66 MHz Pentium model >> number is >> actually 80501. All Pentiums up to the MMX models were numbered >> 80502. The >> i686 kernel label describes the Pentium Pro, whose model number is >> 80521, and >> all other later 32 bit x86 CPUs to follow it. > > Manufacturing codes? So what? These aren't manufacturing codes, these are model numbers. Everyone calls a "386" a "386" because the chip model number is 80386. Same for all Intel chips before it, and the 80486 or "486" after it. The Pentium is actually Intel model 80501. Again, Intel specifically did this to get away from "model numbers as product names". My whole point here was that Intel never described their Pentium or Pentium Pro with any kind of "family" model number designation as had previously been done. They intentionally changed course. Everyone else, however, applied their own labels, and continued naming Intel's chips in succession, even though Intel didn't. > [big snip of partly correct, partly nonsense] Thanks for the civil critique Ron. Now, go talk to the devs and find out exactly what the differences are between the kernels in question, and then you can elaborate on my degree of nonsense. :) -- Stan -- To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4c18a619.1040...@hardwarefreak.com