CPUID

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

Als CPUID wird häufig die eigentliche Processor Signature, die einen Prozessortyp identifiziert, bezeichnet. Der CPUID Opcode selbst ist eine "Processor supplementary capability'" (Prozessorergänzungsanweisung) für die x86-Architektur, die es Software ermöglicht, Details des Prozessors zu erkennen. Durch die Verwendung des CPUID Opcodes kann die Software den Prozessortyp (Processor Signature) und das Vorhandensein von Funktionen (wie MMX/SSE) bestimmen. Für Anwender und Administratoren ist vor allem die auch als CPUID oder Processor Signature bezeichnete Prozessorkennung relevant wenn es darum geht die aktuellste Microcode Version für die verwendete CPU zu finden.

CPUID Opcode

Steht beim Aufruf des CPUID Opcode der Wert 0x00 im EAX-Register, schreibt das Kommando in die EBX/ECD/EDX-Register die Vendor ID. Steht jedoch der Wert 0x01 im EAX-Register, überschreibt das Kommando das EAX-Register mit der Processor Signature. (Quelle: Intel)

Der CPUID Opcode ist 0Fh, A2h (als zwei Bytes oder A20Fh als ein einzelnes Wort). Der Wert im EAX-Register, und in einigen Fällen das ECX-Register, gibt an, welche Informationen zurückgegeben werden sollen. Einige Beispiele dazu:

  • EAX-Register = 0x00 -> CPUID Kommando gibt Vendor ID in EBX/ECD/EDX Register zurück
  • EAX-Register = 0x01 -> CPUID Kommando gibt Processor Signature im EAX-Register zurück

Vendor ID

Zur Identifikation eines Prozessortyps ist neben der unten folgenden Processor Signature auch die Vendor ID erforderlich. Die Vendor IDs lauten beispielsweise:[1]

  • "AuthenticAMD" (AMD)
  • "GenuineIntel" (Intel)

In virtuellen Maschinen mit virtualisierter Hardware sind folgende Vendor IDs verbreitet:

  • "KVMKVMKVM" (KVM)
  • "Microsoft Hv" (Microsoft Hyper-V)
  • "VMwareVMware" (VMware)
  • "XenVMMXenVMM" (Xen HVM)

Processor Signature

Die Processor Signature enthält folgende Informationen:

  • Type (0)
  • Extended Family, Family
  • Extended Model, Model
  • Stepping

Die Informationen sind dabei folgendermaßen im EAX Register codiert:[2]

Bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
EAX Bezeichnungen Intel (reserved) Extended Family Ext. Model (res.) Type Family Model Stepping
EAX Bezeichnungen AMD (reserved) ExtFamily ExtModel (reserved) BaseFamily BaseModel Stepping
Beispiel Intel Xeon E3-1220 v6 0 0 0 9 0 6 e 9
Beispiel AMD EPYC 7251 8-Core 0 0 8 0 0 f 1 2

Zur Anzeige von Family / Model / Stepping für Benutzer (z.B. /proc/cpuinfo unter Linux) werden die Informationen folgendermaßen zusammengesetzt:

/proc/cpuinfo Ausgabe

(Dezimal nicht Hex)

Family Model Stepping
Regelformulierung Intel[2] IF Family_ID ≠ 0FH

THEN DisplayFamily = Family_ID;

ELSE DisplayFamily = Extended_Family_ID + Family_ID;

IF (Family_ID = 06H or Family_ID = 0FH)

THEN DisplayModel = (Extended_Model_ID « 4) + Model_ID;

ELSE DisplayModel = Model_ID;

Beispiel Intel Xeon E3-1220 v6 Ext. Family = 00h

Family = 06h

Display Family = 06h = 6 (dezimal)

Anzeige Family (dezimal): 6

Ext. Model = 09h

Model = 0eh

Display Model = 9eh (hex) = 158 (dezimal)

Anzeige Model (dezimal): 158

9
Regelformulierung AMD[3] Family[7:0]=({0000b,BaseFamily[3:0]}+ExtendedFamily[7:0]) Model[7:0]={ExtendedModel[3:0],BaseModel[3:0]}
Beispiel AMD EPYC 7251 8-Core ExtFamily = 08h = 8 (dezimal)

BaseFamily = 0fh = 15 (dezimal)

Family = 8 + 15 = 23 (dezimal)

Anzeige Family (dezimal): 23

ExtModel = 00h

BaseModel = 01h (hex)

Model = 01h (hex) = 1 (dezimal)

Anzeige Model (dezimal): 1

2

Abfragen der Prozessor Signature

Microcode Updates beziehen sich immer auf einen bestimmten Prozessortyp (Prozessor Signature). Die Prozessor Signature können Sie auf folgende Art unter den jeweiligen Betriebssystemen auslesen:

Einzelnachweise

  1. CPUID (en.wikipedia.org)
  2. 2,0 2,1 Intel 64 and IA-32 Architectures Developer's Manual: Vol. 2A (www.intel.com) Seiten 3-190, 3-204, 3-205 (292, 306, 307 in PDF)
  3. Processor Programming Reference (PPR) for AMD Family 17h Model 01h, Revision B1 Processors Chapter 2.1.11.1 CPUID Instruction Function, Page 56

Weitere Informationen


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.


Das könnte Sie auch interessieren

PMBus
SATA Link Power Management
Supermicro Mainboards OnBoard SATA RAID aktivieren