Volume 2A Instruction Set Reference A-M (794101), страница 45
Текст из файла (страница 45)
The number reflects configuration as shipped by Intel**.Bits 31- 16: Reserved.ECXBits 07 - 00: Level number. Same value in ECX inputBits 15 - 08: Level type***.Bits 31 - 16:: Reserved.EDXBits 31- 0: x2APIC ID the current logical processor.NOTES:* Software should use this field (EAX[4:0]) to enumerate processortopology of the system.** Software must not use EBX[15:0] to enumerate processor topologyof the system. This value in this field (EBX[15:0]) is only intended fordisplay/diagnostic purposes. The actual number of logical processorsavailable to BIOS/OS/Applications may be different from the value ofEBX[15:0], depending on software and platform hardware configurations.*** The value of the “level type” field is not related to level numbers inany way, higher “level type” values do not mean higher levels.
Leveltype field has the following encoding:0 : invalid1 : SMT2 : Core3-255 : ReservedProcessor Extended State Enumeration Main Leaf (EAX = 0DH, ECX = 0)0DHNOTES:Leaf 0DH main leaf (ECX = 0).EAXBits 31-0: Reports the valid bit fields of the lower 32 bits of theXFEATURE_ENABLED_MASK register (XCR0). If a bit is 0, the corresponding bit field in XCR0 is reserved.EBXBits 31-0: Maximum size (bytes) required by enabled features inXFEATURE_ENABLED_MASK (XCR0).
May be different than ECX whenfeatures at the end of the save area are not enabled.CPUID—CPU IdentificationVol. 2A 3-203INSTRUCTION SET REFERENCE, A-MTable 3-12. Information Returned by CPUID Instruction (Contd.)Initial EAXValueInformation Provided about the ProcessorECXBit 31-0: Maximum size (bytes) of the XSAVE/XRSTOR save arearequired by all supported features in the processor, i.e all the valid bitfields in XFEATURE_ENABLED_MASK.
This includes the size needed forthe XSAVE.HEADER.EDXBit 31-0: Reports the valid bit fields of the upper 32 bits of theXFEATURE_ENABLED_MASK register (XCR0). If a bit is 0, the corresponding bit field in XCR0 is reserved.Processor Extended State Enumeration Sub-leaf (EAX = 0DH, ECX = 1)EAXReservedEBXReservedECXReservedEDXReservedProcessor Extended State Enumeration Sub-leaves (EAX = 0DH, ECX = n, n > 1)0DHNOTES:Leaf 0DH output depends on the initial value in ECX.If ECX contains an invalid sub leaf index, EAX/EBX/ECX/EDX return 0.EAXBits 31-0: The size in bytes of the save area for an extended state feature associated with a valid sub-leaf index, n.
Each valid sub-leaf indexmaps to a valid bit in the XFEATURE_ENABLED_MASK register (XCR0)starting at bit position 2. This field reports 0 if the sub-leaf index, n, isinvalid*.EBXBits 31-0: The offset in bytes of the save area from the beginning ofthe XSAVE/XRSTOR area.This field reports 0 if the sub-leaf index, n, is invalid*.ECXThis field reports 0 if the sub-leaf index, n, is invalid*; otherwise it isreserved.EDXThis field reports 0 if the sub-leaf index, n, is invalid*; otherwise it isreserved.Unimplemented CPUID Leaf Functions40000000H4FFFFFFFHInvalid.
No existing or future CPU will return processor identification orfeature information if the initial EAX value is in the range 40000000Hto 4FFFFFFFH.Extended Function CPUID Information80000000H EAX3-204 Vol. 2AMaximum Input Value for Extended Function CPUID Information (seeTable 3-13).CPUID—CPU IdentificationINSTRUCTION SET REFERENCE, A-MTable 3-12. Information Returned by CPUID Instruction (Contd.)Initial EAXValueInformation Provided about the ProcessorEBXECXEDX80000001H EAXReservedReservedReservedExtended Processor Signature and Feature Bits.EBXReservedECXBit 0: LAHF/SAHF available in 64-bit modeBits 31-1 ReservedEDXBits 10-0: ReservedBit 11: SYSCALL/SYSRET available (when in 64-bit mode)Bits 19-12: Reserved = 0Bit 20: Execute Disable Bit availableBits 25-21: Reserved = 0Bit 26: 1-GByte pages are available if 1Bit 27: RDTSCP and IA32_TSC_AUX are available if 1Bits 28: Reserved = 0Bit 29: Intel® 64 Architecture available if 1Bits 31-30: Reserved = 080000002H EAXEBXECXEDXProcessor Brand StringProcessor Brand String ContinuedProcessor Brand String ContinuedProcessor Brand String Continued80000003H EAXEBXECXEDXProcessor Brand String ContinuedProcessor Brand String ContinuedProcessor Brand String ContinuedProcessor Brand String Continued80000004H EAXEBXECXEDXProcessor Brand String ContinuedProcessor Brand String ContinuedProcessor Brand String ContinuedProcessor Brand String Continued80000005H EAXEBXECXEDXReserved = 0Reserved = 0Reserved = 0Reserved = 080000006H EAXEBXReserved = 0Reserved = 0CPUID—CPU IdentificationVol.
2A 3-205INSTRUCTION SET REFERENCE, A-MTable 3-12. Information Returned by CPUID Instruction (Contd.)Initial EAXValueInformation Provided about the ProcessorECXEDXBits 7-0: Cache Line size in bytesBits 15-12: L2 Associativity field *Bits 31-16: Cache size in 1K unitsReserved = 0NOTES:* L2 associativity field encodings:00H - Disabled01H - Direct mapped02H - 2-way04H - 4-way06H - 8-way08H - 16-way0FH - Fully associative80000007H EAXEBXECXEDXReserved = 0Reserved = 0Reserved = 0Bits 7-0: Reserved = 0Bit 8: Invariant TSC available if 1Bits 31-9: Reserved = 080000008H EAXLinear/Physical Address sizeBits 7-0: #Physical Address Bits*Bits 15-8: #Linear Address BitsBits 31-16: Reserved = 0EBXECXEDXReserved = 0Reserved = 0Reserved = 0NOTES:* If CPUID.80000008H:EAX[7:0] is supported, the maximum physicaladdress number supported should come from this field.INPUT EAX = 0: Returns CPUID’s Highest Value for Basic Processor Information andthe Vendor Identification StringWhen CPUID executes with EAX set to 0, the processor returns the highest value theCPUID recognizes for returning basic processor information.
The value is returned inthe EAX register (see Table 3-13) and is processor specific.A vendor identification string is also returned in EBX, EDX, and ECX. For Intelprocessors, the string is “GenuineIntel” and is expressed:EBX ← 756e6547h (* "Genu", with G in the low four bits of BL *)3-206 Vol. 2ACPUID—CPU IdentificationINSTRUCTION SET REFERENCE, A-MEDX ← 49656e69h (* "ineI", with i in the low four bits of DL *)ECX ← 6c65746eh (* "ntel", with n in the low four bits of CL *)INPUT EAX = 80000000H: Returns CPUID’s Highest Value for Extended ProcessorInformationWhen CPUID executes with EAX set to 0, the processor returns the highest value theprocessor recognizes for returning extended processor information.
The value isreturned in the EAX register (see Table 3-13) and is processor specific.Table 3-13. Highest CPUID Source Operand for Intel 64 and IA-32 ProcessorsIntel 64 or IA-32 ProcessorsHighest Value in EAXBasic InformationExtended FunctionInformationCPUID Not ImplementedCPUID Not ImplementedLater Intel486 Processors andPentium Processors01HNot ImplementedPentium Pro and Pentium IIProcessors, Intel® Celeron®Processors02HNot ImplementedPentium III Processors03HNot ImplementedPentium 4 Processors02H80000004HIntel Xeon Processors02H80000004HEarlier Intel486 ProcessorsPentium M Processor02H80000004HPentium 4 Processorsupporting Hyper-ThreadingTechnology05H80000008HPentium D Processor (8xx)05H80000008HPentium D Processor (9xx)06H80000008HIntel Core Duo Processor0AH80000008HIntel Core 2 Duo Processor0AH80000008HIntel Xeon Processor 3000,5100, 5200, 5300, 5400Series0AH80000008HIntel Core 2 Duo Processor8000 Series0DH80000008HIntel Xeon Processor 5200,5400 Series0AH80000008HCPUID—CPU IdentificationVol.
2A 3-207INSTRUCTION SET REFERENCE, A-MTable 3-13. Highest CPUID Source Operand for Intel 64 and IA-32 ProcessorsIntel 64 or IA-32 ProcessorsHighest Value in EAXBasic InformationExtended FunctionInformationIntel Atom Processor0AH80000008HIntel Core i7 Processor0BH80000008HIA32_BIOS_SIGN_ID Returns Microcode Update SignatureFor processors that support the microcode update facility, the IA32_BIOS_SIGN_IDMSR is loaded with the update signature whenever CPUID executes. The signature isreturned in the upper DWORD.
For details, see Chapter 9 in the Intel® 64 and IA-32Architectures Software Developer’s Manual, Volume 3A.INPUT EAX = 1: Returns Model, Family, Stepping InformationWhen CPUID executes with EAX set to 1, version information is returned in EAX (seeFigure 3-5). For example: model, family, and processor type for the Intel Xeonprocessor 5100 series is as follows:•••Model — 1111BFamily — 0101BProcessor Type — 00BSee Table 3-14 for available processor type values. Stepping IDs are provided asneeded.3128 2720 19ExtendedFamily IDEAX16 15 14 13 12 11ExtendedModel ID8 7FamilyID4Model30SteppingIDExtended Family ID (0)Extended Model ID (0)Processor TypeFamily (0FH for the Pentium 4 Processor Family)ModelReservedOM16525Figure 3-5. Version Information Returned by CPUID in EAX3-208 Vol. 2ACPUID—CPU IdentificationINSTRUCTION SET REFERENCE, A-MTable 3-14. Processor Type FieldTypeEncodingOriginal OEM Processor00B®Intel OverDrive Processor01BDual processor (not applicable to Intel486processors)10BIntel reserved11BNOTESee Chapter 14 in the Intel® 64 and IA-32 Architectures SoftwareDeveloper’s Manual, Volume 1, for information on identifying earlierIA-32 processors.The Extended Family ID needs to be examined only when the Family ID is 0FH.