• 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
                  • Aufgabe 6: Synchronisation
                    • 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