# Package freenet.support.CPUInformation

CPUID implementation, borrowed from freenet, updated and heavily modified.

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  AMDCPUInfo | An interface for classes that provide lowlevel information about AMD CPU's
  CPUInfo | An interface for classes that provide lowlevel information about CPU's
  IntelCPUInfo | An interface for classes that provide lowlevel information about Intel CPU's
  VIACPUInfo | Moved out of CPUID.java

- Class Summary
  Class | Description
  --- | ---
  AMDInfoImpl | Moved out of CPUID.java Ref: https://en.wikipedia.org/wiki/List_of_AMD_CPU_microarchitectures Ref: https://gmplib.org/repo/gmp/file/tip/config.guess
  CPUID | A class for retrieveing details about the CPU using the CPUID assembly instruction.
  CPUID.CPUIDResult | A class that can (amongst other things I assume) represent the state of the different CPU registers after a call to the CPUID assembly method
  CPUIDCPUInfo | Moved out of CPUID.java Ref: http://en.wikipedia.org/wiki/CPUID
  IntelInfoImpl | Moved out of CPUID.java Ref: https://software.intel.com/en-us/articles/intel-architecture-and-processor-identification-with-cpuid-model-and-family-numbers Ref: https://en.wikipedia.org/wiki/List_of_Intel_CPU_microarchitectures Ref: https://gmplib.org/repo/gmp/file/tip/config.guess
  VIAInfoImpl | Moved out of CPUID.java

- Exception Summary
  Exception | Description
  --- | ---
  UnknownCPUException | Exception for unknown CPU types.

## Package freenet.support.CPUInformation Description

CPUID implementation, borrowed from freenet, updated and heavily modified.

This package provides CPU detection and identification capabilities using the CPUID instruction, allowing I2P to:

- Detect CPU manufacturer and model information
- Identify available CPU features and instruction sets
- Optimize cryptographic operations based on CPU capabilities
- Determine the number of available processor cores
- Detect hardware acceleration support (AES-NI, etc.)

The information gathered is used to optimize I2P's performance by selecting the most appropriate algorithms and threading strategies for the detected hardware. This is particularly important for cryptographic operations where hardware acceleration can provide significant performance improvements.

Warning: Not recommended for external use, not maintained as a public API. The implementation may change between I2P versions without notice.