• Navigation überspringen
  • Zur Navigation
  • Zum Seitenende
Organisationsmenü öffnen Organisationsmenü schließen
Friedrich-Alexander-Universität Lehrstuhl für Informatik 4 (Systemsoftware)
  • FAUZur zentralen FAU Website
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
Suche öffnen
  • English
  • Campo
  • StudOn
  • FAUdir
  • Stellenangebote
  • Lageplan
  • Hilfe im Notfall
  1. Friedrich-Alexander-Universität
  2. Technische Fakultät
  3. Department Informatik
Friedrich-Alexander-Universität Lehrstuhl für Informatik 4 (Systemsoftware)
Menu Menu schließen
  • Lehrstuhl
    • Team
    • Aktuelles
    • Kontakt und Anfahrt
    • Leitbild
    • 50-jähriges Jubiläum
    Portal Lehrstuhl
  • Forschung
    • Forschungsbereiche
      • Betriebssysteme
      • Confidential Computing
      • Eingebettete Systemsoftware
      • Verteilte Systeme
    • Projekte
      • AIMBOS
      • BALu
      • BFT2Chain
      • DOSS
      • Mirador
      • NEON
      • PAVE
      • ResPECT
      • Watwa
    • Projektkampagnen
      • maRE
    • Seminar
      • Systemsoftware
    Portal Forschung
  • Publikationen
  • Lehre
    • Sommersemester 2025
      • Applied Software Architecture
      • Ausgewählte Kapitel der Systemsoftware
      • Betriebssystemtechnik
      • Projekt angewandte Systemsoftwaretechnik
      • System-Level Programming
      • Systemnahe Programmierung in C
      • Systemprogrammierung 1
      • Verteilte Systeme
    • Wintersemester 2024/25
      • Betriebssysteme
      • Middleware – Cloud Computing
      • Systemprogrammierung 2
      • Verlässliche Echtzeitsysteme
      • Virtuelle Maschinen
      • Web-basierte Systeme
    Portal Lehre
  • Examensarbeiten
  1. Startseite
  2. Extern

Extern

Bereichsnavigation: Lehre
  • Betriebssystemtechnik
    • Vorlesung
      • Folien
      • Glossar
    • Übung
      • Aufgaben
      • Dokumentation
        • Blog
          • Entwicklungsumgebung
            • Assembler Crashkurs
              • C++ Crashkurs
                • 🔗 Testrechnerverwaltung
                • 🔗 Adora-Belle (Helpdesk)
                • Kontakt
              • Evaluation

              Dokumentation

              Classes | Structs | Enumerations | Functions
              CPUID Namespace Reference

              Query information about the processor. More...

              Classes

              union  Reg
               Structure for register values returned by cpuid instruction. More...
               

              Structs

              struct  Reg.__unnamed__
               

              Enumerations

              enum  Function : uint32_t {
                HIGHEST_FUNCTION_PARAMETER = 0x0U,
                MANUFACTURER_ID = 0x0U,
                PROCESSOR_INFO = 0x1U,
                FEATURE_BITS = 0x1U,
                CACHE_INFORMATION = 0x2U,
                PROCESSOR_SERIAL_NUMBER = 0x3U,
                HIGHEST_EXTENDED_FUNCTION = 0x80000000U,
                EXTENDED_PROCESSOR_INFO = 0x80000001U,
                EXTENDED_FEATURE_BITS = 0x80000001U,
                PROCESSOR_BRAND_STRING_1 = 0x80000002U,
                PROCESSOR_BRAND_STRING_2 = 0x80000003U,
                PROCESSOR_BRAND_STRING_3 = 0x80000004U,
                ADVANCED_POWER_MANAGEMENT = 0x80000007U,
                ADDRESS_SIZES = 0x80000008U
              }
               
              enum  FeatureECX : uint32_t {
                FEATURE_SSE3 = 1U << 0,
                FEATURE_PCLMUL = 1U << 1,
                FEATURE_DTES64 = 1U << 2,
                FEATURE_MONITOR = 1U << 3,
                FEATURE_DS_CPL = 1U << 4,
                FEATURE_VMX = 1U << 5,
                FEATURE_SMX = 1U << 6,
                FEATURE_EST = 1U << 7,
                FEATURE_TM2 = 1U << 8,
                FEATURE_SSSE3 = 1U << 9,
                FEATURE_CID = 1U << 10,
                FEATURE_SDBG = 1U << 11,
                FEATURE_FMA = 1U << 12,
                FEATURE_CX16 = 1U << 13,
                FEATURE_ETPRD = 1U << 14,
                FEATURE_PDCM = 1U << 15,
                FEATURE_PCIDE = 1U << 17,
                FEATURE_DCA = 1U << 18,
                FEATURE_SSE4_1 = 1U << 19,
                FEATURE_SSE4_2 = 1U << 20,
                FEATURE_X2APIC = 1U << 21,
                FEATURE_MOVBE = 1U << 22,
                FEATURE_POPCNT = 1U << 23,
                FEATURE_TSC_DEADLINE = 1U << 24,
                FEATURE_AES = 1U << 25,
                FEATURE_XSAVE = 1U << 26,
                FEATURE_OSXSAVE = 1U << 27,
                FEATURE_AVX = 1U << 28,
                FEATURE_F16C = 1U << 29,
                FEATURE_RDRND = 1U << 30,
                FEATURE_HYPERVISOR = 1U << 31
              }
               
              enum  FeatureEDX : uint32_t {
                FEATURE_FPU = 1U << 0,
                FEATURE_VME = 1U << 1,
                FEATURE_DE = 1U << 2,
                FEATURE_PSE = 1U << 3,
                FEATURE_TSC = 1U << 4,
                FEATURE_MSR = 1U << 5,
                FEATURE_PAE = 1U << 6,
                FEATURE_MCE = 1U << 7,
                FEATURE_CX8 = 1U << 8,
                FEATURE_APIC = 1U << 9,
                FEATURE_SEP = 1U << 11,
                FEATURE_MTRR = 1U << 12,
                FEATURE_PGE = 1U << 13,
                FEATURE_MCA = 1U << 14,
                FEATURE_CMOV = 1U << 15,
                FEATURE_PAT = 1U << 16,
                FEATURE_PSE36 = 1U << 17,
                FEATURE_PSN = 1U << 18,
                FEATURE_CLF = 1U << 19,
                FEATURE_DTES = 1U << 21,
                FEATURE_ACPI = 1U << 22,
                FEATURE_MMX = 1U << 23,
                FEATURE_FXSR = 1U << 24,
                FEATURE_SSE = 1U << 25,
                FEATURE_SSE2 = 1U << 26,
                FEATURE_SS = 1U << 27,
                FEATURE_HTT = 1U << 28,
                FEATURE_TM1 = 1U << 29,
                FEATURE_IA64 = 1U << 30,
                FEATURE_PBE = 1U << 31
              }
               
              enum  ExtendedFeatureEDX : uint32_t {
                EXTENDED_FEATURE_FPU = 1U << 0,
                EXTENDED_FEATURE_VME = 1U << 1,
                EXTENDED_FEATURE_DE = 1U << 2,
                EXTENDED_FEATURE_PSE = 1U << 3,
                EXTENDED_FEATURE_TSC = 1U << 4,
                EXTENDED_FEATURE_MSR = 1U << 5,
                EXTENDED_FEATURE_PAE = 1U << 6,
                EXTENDED_FEATURE_MCE = 1U << 7,
                EXTENDED_FEATURE_CX8 = 1U << 8,
                EXTENDED_FEATURE_APIC = 1U << 9,
                EXTENDED_FEATURE_SYSCALL = 1U << 11,
                EXTENDED_FEATURE_MTRR = 1U << 12,
                EXTENDED_FEATURE_PGE = 1U << 13,
                EXTENDED_FEATURE_MCA = 1U << 14,
                EXTENDED_FEATURE_CMOV = 1U << 15,
                EXTENDED_FEATURE_PAT = 1U << 16,
                EXTENDED_FEATURE_PSE36 = 1U << 17,
                EXTENDED_FEATURE_MP = 1U << 19,
                EXTENDED_FEATURE_NX = 1U << 20,
                EXTENDED_FEATURE_MMXEXT = 1U << 22,
                EXTENDED_FEATURE_MMX = 1U << 23,
                EXTENDED_FEATURE_FXSR = 1U << 24,
                EXTENDED_FEATURE_FXSR_OPT = 1U << 25,
                EXTENDED_FEATURE_PDPE1GB = 1U << 26,
                EXTENDED_FEATURE_RDTSCP = 1U << 27,
                EXTENDED_FEATURE_LM = 1U << 29,
                EXTENDED_FEATURE_3DNOWEXT = 1U << 30,
                EXTENDED_FEATURE_3DNOW = 1U << 31
              }
               

              Functions

              Reg get (Function eax)
               Get CPU identification and feature information. More...
               
              bool has (enum FeatureECX feature)
               Check if feature is provided by this system. More...
               
              bool has (enum FeatureEDX feature)
               Check if feature is provided by this system. More...
               
              bool has (enum ExtendedFeatureEDX feature)
               Check if feature is provided by this system. More...
               

              Detailed Description

              Query information about the processor.

              Note
              This is an interface to the cpuid instruction, which can return information about the processor. It should therefor not be confused with functionality to retrieve the ID of the current CPU (core)!

              Class Documentation

              union CPUID::Reg

              Structure for register values returned by cpuid instruction.

              Class Members
              struct Reg __unnamed__
              char value[16]

              Enumeration Type Documentation

              enum CPUID::Function : uint32_t
              Enumerator
              HIGHEST_FUNCTION_PARAMETER 

              Maximum Input Value for Basic CPUID Information (in register eax)

              MANUFACTURER_ID 

              CPU String (in register ebx, ecx and edx)

              PROCESSOR_INFO 

              Version Information like Type, Family, Model (in register eax)

              FEATURE_BITS 

              Feature Information (in register ecx and edx)

              CACHE_INFORMATION 

              Cache and TLB Information.

              PROCESSOR_SERIAL_NUMBER 

              deprecated

              HIGHEST_EXTENDED_FUNCTION 

              Maximum Input Value for Extended Function CPUID (in register eax)

              EXTENDED_PROCESSOR_INFO 

              Extended Processor Signature and Feature Bits (in register eax)

              EXTENDED_FEATURE_BITS 

              Extended Feature Information (in register ecx and edx)

              PROCESSOR_BRAND_STRING_1 

              Processor Brand String (1/3)

              PROCESSOR_BRAND_STRING_2 

              Processor Brand String (2/3)

              PROCESSOR_BRAND_STRING_3 

              Processor Brand String (3/3)

              ADVANCED_POWER_MANAGEMENT 

              Advanced Power Management (with Invariant TSC in register edx)

              ADDRESS_SIZES 

              Linear/Physical Address size (in register eax)

              enum CPUID::FeatureECX : uint32_t
              Enumerator
              FEATURE_SSE3 

              Prescott New Instructions-SSE3 (PNI)

              FEATURE_PCLMUL 

              Carry-less Multiplication.

              FEATURE_DTES64 

              64-bit debug store (edx bit 21)

              FEATURE_MONITOR 

              MONITOR and MWAIT instructions (SSE3)

              FEATURE_DS_CPL 

              CPL qualified debug store.

              FEATURE_VMX 

              Virtual Machine eXtensions.

              FEATURE_SMX 

              Safer Mode Extensions (LaGrande)

              FEATURE_EST 

              Enhanced SpeedStep.

              FEATURE_TM2 

              Thermal Monitor 2.

              FEATURE_SSSE3 

              Supplemental SSE3 instructions.

              FEATURE_CID 

              L1 Context ID.

              FEATURE_SDBG 

              Silicon Debug interface.

              FEATURE_FMA 

              Fused multiply-add (FMA3)

              FEATURE_CX16 

              CMPXCHG16B instruction.

              FEATURE_ETPRD 

              Can disable sending task priority messages.

              FEATURE_PDCM 

              Perfmon & debug capability.

              FEATURE_PCIDE 

              Process context identifiers (CR4 bit 17)

              FEATURE_DCA 

              Direct cache access for DMA writes.

              FEATURE_SSE4_1 

              SSE4.1 instructions.

              FEATURE_SSE4_2 

              SSE4.2 instructions.

              FEATURE_X2APIC 

              x2APIC

              FEATURE_MOVBE 

              MOVBE instruction (big-endian)

              FEATURE_POPCNT 

              POPCNT instruction.

              FEATURE_TSC_DEADLINE 

              APIC implements one-shot operation using a TSC deadline value.

              FEATURE_AES 

              AES instruction set.

              FEATURE_XSAVE 

              XSAVE, XRESTOR, XSETBV, XGETBV.

              FEATURE_OSXSAVE 

              XSAVE enabled by OS.

              FEATURE_AVX 

              Advanced Vector Extensions.

              FEATURE_F16C 

              F16C (half-precision) FP feature.

              FEATURE_RDRND 

              RDRAND (on-chip random number generator) feature.

              FEATURE_HYPERVISOR 

              Hypervisor present (always zero on physical CPUs)

              enum CPUID::FeatureEDX : uint32_t
              Enumerator
              FEATURE_FPU 

              Onboard x87 FPU.

              FEATURE_VME 

              Virtual 8086 mode extensions (such as VIF, VIP, PIV)

              FEATURE_DE 

              Debugging extensions (CR4 bit 3)

              FEATURE_PSE 

              Page Size Extension.

              FEATURE_TSC 

              Time Stamp Counter.

              FEATURE_MSR 

              Model-specific registers.

              FEATURE_PAE 

              Physical Address Extension.

              FEATURE_MCE 

              Machine Check Exception.

              FEATURE_CX8 

              CMPXCHG8 (compare-and-swap) instruction.

              FEATURE_APIC 

              Onboard Advanced Programmable Interrupt Controller.

              FEATURE_SEP 

              SYSENTER and SYSEXIT instructions.

              FEATURE_MTRR 

              Memory Type Range Registers.

              FEATURE_PGE 

              Page Global Enable bit in CR4.

              FEATURE_MCA 

              Machine check architecture.

              FEATURE_CMOV 

              Conditional move and FCMOV instructions.

              FEATURE_PAT 

              Page Attribute Table.

              FEATURE_PSE36 

              36-bit page size extension

              FEATURE_PSN 

              Processor Serial Number.

              FEATURE_CLF 

              CLFLUSH instruction (SSE2)

              FEATURE_DTES 

              Debug store: save trace of executed jumps.

              FEATURE_ACPI 

              Onboard thermal control MSRs for ACPI.

              FEATURE_MMX 

              MMX instructions.

              FEATURE_FXSR 

              FXSAVE, FXRESTOR instructions, CR4 bit 9.

              FEATURE_SSE 

              SSE instructions (a.k.a. Katmai New Instructions)

              FEATURE_SSE2 

              SSE2 instructions.

              FEATURE_SS 

              CPU cache implements self-snoop.

              FEATURE_HTT 

              Hyper-threading.

              FEATURE_TM1 

              Thermal monitor automatically limits temperature.

              FEATURE_IA64 

              IA64 processor emulating x86.

              FEATURE_PBE 

              Pending Break Enable (PBE# pin) wakeup capability.

              enum CPUID::ExtendedFeatureEDX : uint32_t
              Enumerator
              EXTENDED_FEATURE_FPU 

              Onboard x87 FPU.

              EXTENDED_FEATURE_VME 

              Virtual 8086 mode extensions (such as VIF, VIP, PIV)

              EXTENDED_FEATURE_DE 

              Debugging extensions (CR4 bit 3)

              EXTENDED_FEATURE_PSE 

              Page Size Extension.

              EXTENDED_FEATURE_TSC 

              Time Stamp Counter.

              EXTENDED_FEATURE_MSR 

              Model-specific registers.

              EXTENDED_FEATURE_PAE 

              Physical Address Extension.

              EXTENDED_FEATURE_MCE 

              Machine Check Exception.

              EXTENDED_FEATURE_CX8 

              CMPXCHG8 (compare-and-swap) instruction.

              EXTENDED_FEATURE_APIC 

              Onboard Advanced Programmable Interrupt Controller.

              EXTENDED_FEATURE_SYSCALL 

              SYSCALL and SYSRET instructions.

              EXTENDED_FEATURE_MTRR 

              Memory Type Range Registers.

              EXTENDED_FEATURE_PGE 

              Page Global Enable bit in CR4.

              EXTENDED_FEATURE_MCA 

              Machine check architecture.

              EXTENDED_FEATURE_CMOV 

              Conditional move and FCMOV instructions.

              EXTENDED_FEATURE_PAT 

              Page Attribute Table.

              EXTENDED_FEATURE_PSE36 

              36-bit page size extension

              EXTENDED_FEATURE_MP 

              Multiprocessor Capable.

              EXTENDED_FEATURE_NX 

              Non-executable bit.

              EXTENDED_FEATURE_MMXEXT 

              extended MMX instructions

              EXTENDED_FEATURE_MMX 

              MMX instructions.

              EXTENDED_FEATURE_FXSR 

              FXSAVE, FXRESTOR instructions, CR4 bit 9.

              EXTENDED_FEATURE_FXSR_OPT 

              FXSAVE, FXRESTOR optimizations.

              EXTENDED_FEATURE_PDPE1GB 

              Gibibyte Pages.

              EXTENDED_FEATURE_RDTSCP 

              CPU cache implements self-snoop.

              EXTENDED_FEATURE_LM 

              Long Mode (x64)

              EXTENDED_FEATURE_3DNOWEXT 

              Extended 3DNow! instructions.

              EXTENDED_FEATURE_3DNOW 

              3DNow! instructions

              Function Documentation

              Reg CPUID::get ( Function  eax)
              inline

              Get CPU identification and feature information.

              Parameters
              eaxRequested feature
              Returns
              Register values filled by instruction cpuid for the requested feature
              See also
              ISDMv2, Chapter 3. CPUID - CPU Identification
              bool CPUID::has ( enum FeatureECX  feature)
              inline

              Check if feature is provided by this system.

              Parameters
              featureFeature to test
              Returns
              true if available, false otherwise
              bool CPUID::has ( enum FeatureEDX  feature)
              inline

              Check if feature is provided by this system.

              Parameters
              featureFeature to test
              Returns
              true if available, false otherwise
              bool CPUID::has ( enum ExtendedFeatureEDX  feature)
              inline

              Check if feature is provided by this system.

              Parameters
              featureExtended feature to test
              Returns
              true if available, false if either feature or extended features are unavailable
              Friedrich-Alexander-Universität
              Erlangen-Nürnberg

              Schlossplatz 4
              91054 Erlangen
              • Impressum
              • Datenschutz
              • Barrierefreiheit
              • Facebook
              • RSS Feed
              • Xing
              Nach oben