Skip to content

jpoirier/cpu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Description
------------
    cpu package reports (some) processor topology information

    Note that the term package refers to a physical processor
    and system refers to multiple packages. Also, a processor's
    hardware capability may differ from its configuration.

Usage
-----
    See cpu_example.go for output information and usage

Installation
------------
    $ go get github.com/jpoirier/cpu

Testing
-------
    $ go run cpu_example.go

TODO
----
- add error enumerations
- if 64-bit, or newer 32-bit, and the leaf value is less than 4 check IA32_MISC_ENABLES bit 22

Misc
----
- Package refers to a physical processor that plugs in to a socket
- Core refers to a physical sub-system of a package. A core may contain 1 or more logical processors.
- A logical processor refers to a hardware resource that can execute a single thread.
- Hyper-threading refers to the technology that allows a processor core to provide the functionality of more than one logical core.
- Simultaneous Multi-Threading refers to multiple logical processors within the same core.
- MultiCore Processor contains more than one physical core.
- MultiProcessor Platform contains multiple physical sockets.
- Hardware Multithreading refers to any combination of hardware support to allow multithreading,
  which could be any combination of SMT, multi-core, and multi-processor.
- Processor Topology is the hierarchical relationship of shared vs dedicated hardware resources.

About

A Go package that reports processor topology

Resources

License

Stars

Watchers

Forks

Packages

No packages published