Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[WIP] Micro architecture parsing #177

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from

Commits on May 26, 2024

  1. Make Vendor non exhaustive

    This is meant to enable better API stability if we add partial support for other CPU vendors,
    such as VIA or Cyrix.
    GuillaumeDIDIER committed May 26, 2024
    Configuration menu
    Copy the full SHA
    57db99a View commit details
    Browse the repository at this point in the history
  2. Add the micro-architecture identification module (uarch)

    This module supports parsing the CPU family, model and stepping to identify the micro-architecture.
    This requires listing all the known micro-architecture in the library.
    (Recompilation will be needed to add support for new uarch)
    
    Because Intel micro-architecture are rather messy, especially around Skylake, microarchitecture are mapped onto a structure referencing
    - the vendor
    - the CPU core design (or core design for hybrid CPUs such as Alder Lake)
    - the micro-architecture codename of the SoC.
    
    For instance AlderLake is {Intel, Heterogeneous{P: GoldenCove, E: Gracemont}, AlderLake}
    All the different Skylake recycling are {Intel, Homogenous(Skylake), _)
    
    As teh set of combination recognized is fixed at compile time, they are encoded as constants
    and the function returns static references to the correct structure.
    All the known combination are included in an array (MICRO_ARCHITECTURE_LIST)
    
    The list of micro-architectures in the Enums is rather exhaustive but not definitive,
    but only a token number of architectures are currently parsed.
    GuillaumeDIDIER committed May 26, 2024
    Configuration menu
    Copy the full SHA
    6b1f9c9 View commit details
    Browse the repository at this point in the history

Commits on May 27, 2024

  1. Rust fmt on lib.rs

    GuillaumeDIDIER committed May 27, 2024
    Configuration menu
    Copy the full SHA
    a71e2ff View commit details
    Browse the repository at this point in the history
  2. Visibility changes:

    - Export the uarch module
    - Export the Vendor enum
    GuillaumeDIDIER committed May 27, 2024
    Configuration menu
    Copy the full SHA
    6219fa8 View commit details
    Browse the repository at this point in the history
  3. Add parsing support for P6 and Netburst

    - Split NetBurst between 32-bit and 64-bit architectures (the latter identified as Prescott)
    - Fix typo on Willamette
    GuillaumeDIDIER committed May 27, 2024
    Configuration menu
    Copy the full SHA
    9792d3c View commit details
    Browse the repository at this point in the history