• 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
    • Vorlesung
      • Folien
    • Übung
      • Seminar
      • Aufgaben
      • Aufgabe 0: C++ Streams
        • Aufgabe 1: Ein-/Ausgabe
          • Aufgabe 2: Unterbrechungen
            • Aufgabe 3: Pro-/Epilog
              • Aufgabe 4: Kontextwechsel
                • Aufgabe 5: Zeitscheiben
                  • Assembler Crashkurs
                    • C++ Crashkurs
                      • Entwicklungsumgebung
                        • FAQ
                          • Ruhmeshalle

                        Aufgabe 5: Zeitscheiben

                        Classes | Enumerations | Functions
                        CPUID Namespace Reference

                        Query information about the processor. More...

                        Classes

                        struct  Reg.__unnamed19__
                         

                        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.__unnamed19__
                        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