CPUID

The CPUID identifier is from the late 486ern part of the x86 processor architecture, from the Pentium she was then fully available. The identifier allows the software during operation to identify the processor, including the manufacturer and additional functional units such as the Multimedia-MMX/SSE-Befehlssatz or extended addressing.

Query

The CPUID is a special command to access the machine status register. Will pass a query code in the EAX register, the processor then fills several general purpose registers with the values ​​. The name CPUID is derived from this function, the CPU IDentification.

Code 0 Manufacturer

As a result, a 12- character-long manufacturer's name is stored in ASCII in three 32 - bit registers. This is considerably longer than typical protection behalf of semiconductor manufacturers, so that a tradition of filling has evolved to 12 characters.

Examples:

  • "Genuine Intel" - processors from Intel
  • " AuthenticAMD " - processors from AMD
  • " CyrixInstead " - processors from Cyrix
  • " CentaurHauls " - processors from VIA
  • " GenuineTMx86 " - processors from Transmeta
  • " SiS SiS SiS " - processors of SIS
  • " UMC UMC UMC " - processors of UMC

Code 1 model variant

As a result, resulting in some registers, the vendor-specific model numbers of the processor family, processor version and revision status. The family begins with "4" for the 486 generation, as the CPUID instruction was introduced in the course of product care, this processor family and later a scheme for future processors has been set.

  • 4: 486 CPUs, AMD 5x86, Cyrix 5x86
  • 5: Pentium, AMD K5, AMD K6, Cyrix, Transmeta Crusoe 6x86/M1
  • 6: Pentium II, Pentium III, Athlon/K7, VIA C3, Intel Core, Intel Core 2 CPUs with Nehalem core
  • 7: Itanium
  • Q: the value is encoded in the bits of the extended family ( EAX 20 .27 ) is added: 0Fh: Pentium IV CPUs with AMD K8 microarchitecture
  • 10h: CPUs AMD K10 microarchitecture, Itanium 2
  • 11h: Turion X2 Ultra ( Griffin - core )

The revision status ( in EAX 0 to 3 ) is model-specific and is incremented each processor variant. This state is a simple indicator of the stepping of a processor, production details can be changed in the in the course of model refinement. The full value of the EAX register is often quoted in trade publications for accurate identification of a processor variant, thereby briefly called themselves CPUID, about CPUID 06D8h for Celeron M or CPUID 0F48h and 0F4Ah to distinguish the C0 and CG stepping of the Athlon 64 (with considerably different power consumption).

With the query in code 1, the additional utility of functional units of the calculator or the address work are described in the registers ECX / EDX. For these bits there is a vendor-independent encoding that can be used by application programs and operating systems to enable specialized routines.

Examples:

  • EDX: 0 classic FPU floating-point arithmetic unit is available
  • EDX: 6 Address Extension PAE is processed
  • EDX: 23 newer MMX multimedia calculator is available
  • EDX: 26 modern SSE2-Gleitkomma/Multimedia arithmetic unit is available
  • ECX: 7 SpeedStep extension is approachable

Many mathematical and specialized application programs require a modern floating point calculation unit, and without breaking this off. In these cases, the requirements of the program should be consistent with the processor flags actually available to be checked ( in Linux / proc / cpuinfo ), usually one looks here to MMX, SSE, SSE2 or PNI ( prescott new instructions known as SSE3 ).

Other codes

Is a 32 -bit code as an argument of the CPUID instruction, it allows manufacturers of the different processor x86 family to define their own codes which describe the details of the hardware version. In general, this query codes are in the upper region of code.

Weblink

  • Http://www.sandpile.org/x86/cpuid.htm
  • Computer Architecture
  • Abbreviation
205711
de