• 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
  • 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
                    • Aufgabe 7: Anwendung
                      • Assembler Crashkurs
                        • C++ Crashkurs
                          • Entwicklungsumgebung
                            • FAQ
                              • Ruhmeshalle
                              • Evaluation

                              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