Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

IIRC it was added on Pentium and maybe late 486. You had to do classic tricks to identify the model before that.


CPUID has been added first in Pentium (66 MHz), in 1993.

Nevertheless, there have been some late variants of 486 that have been introduced after the first Pentium, in 1994 or later, and which had CPUID, e.g. the Intel 486DX4 (100 MHz).

AMD had 2 generations of 486DX4 (and of 486DX2), the first did not have CPUID (and it had a write-through cache memory), while the second had CPUID (and it had a write-back cache memory).

Some Cyrix CPUs with properties intermediate between 486 and Pentium had CPUID, but it was disabled by default and it could be enabled in the BIOS.

Measuring the length of the prefetch queue was the standard method to identify 8088 vs. 8086 and this was available in several commercial CPU detection utilities that were available for MS-DOS, e.g. in Norton Utilities or the like.

At that time I have discovered this by disassembling such a utility program.


Indeed, I have a 486 DX-50 without CPUID, and a 486 DX2-66 with CPUID support. The latter provides much more detail when viewed in CPU-Z.


I beieve in the Pentium, the prefetch queue became snooped, which coincides nicely with the introduction of CPUID.


In Pentium the cache memory became split into instruction cache and data cache.

This has forced the introduction of the snooping workaround, otherwise the stores into the data cache would not have influenced the content of the instruction cache.


it also may have something to do with why CPUID is strongly serializing? that always really confused me..its not like, the CPU type is going to race with a load or a store


I suspect the serialising is just a side effect of the CPUID instruction being implemented as a massive microcode routine.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: