• 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
      • Embedded Systems Software
      • 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 2025/26
      • Systemprogrammierung 2
      • Betriebssysteme
      • Middleware – Cloud Computing
      • Echtzeitsysteme
      • Virtuelle Maschinen
      • Web-basierte Systeme
      • Projekt angewandte Systemsoftwaretechnik
      • Aktuelle Entwicklung in Verteilten und Objektorientierten Betriebssystemen (für Bachelor-/Masterarbeit)
    Portal Lehre
  • Examensarbeiten
  1. Startseite
  2. Extern

Extern

Bereichsnavigation: Lehre
  • Betriebssysteme

    Aufgabe 7: Anwendung

    Classes | Enumerations | Functions
    CPUID Namespace Reference

    Query information about the processor. More...

    Classes

    struct  Reg.__unnamed25__
     

    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

    struct CPUID::Reg.__unnamed25__
    Class Members
    uint32_t ebx
    uint32_t edx
    uint32_t ecx
    uint32_t eax

    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