Interface CPUInfo

All Known Subinterfaces:
AMDCPUInfo, IntelCPUInfo, VIACPUInfo
All Known Implementing Classes:
AMDInfoImpl, CPUIDCPUInfo, IntelInfoImpl, VIAInfoImpl

public interface CPUInfo
An interface for classes that provide lowlevel information about CPU's
Author:
Iakin
  • Method Summary

    Modifier and Type
    Method
    Description
     
     
    boolean
    Also known as LZCNT
    boolean
    Intel Multi-Precision Add-Carry Instruction Extensions Available in Broadwell.
    boolean
     
    boolean
     
    boolean
     
    boolean
    Does the CPU supports the AVX-512 Foundation instruction set? Quote wikipedia: AVX-512 consists of multiple extensions not all meant to be supported by all processors implementing them.
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
     
    boolean
    AMD K10 only.
    boolean
    Trailing Bit Manipulation (AMD feature)
    boolean
     
  • Method Details

    • getVendor

      String getVendor()
      Returns:
      A string indicating the vendor of the CPU.
    • getCPUModelString

      String getCPUModelString() throws UnknownCPUException
      Returns:
      A string detailing what type of CPU that is present in the machine. I.e. 'Pentium IV' etc.
      Throws:
      UnknownCPUException - If for any reason the retrieval of the requested information failed. The message encapsulated in the execption indicates the cause of the failure.
    • hasMMX

      boolean hasMMX()
      Returns:
      true iff the CPU supports the MMX instruction set.
    • hasSSE

      boolean hasSSE()
      Returns:
      true iff the CPU supports the SSE instruction set.
    • hasSSE2

      boolean hasSSE2()
      Returns:
      true iff the CPU supports the SSE2 instruction set.
    • hasSSE3

      boolean hasSSE3()
      Returns:
      true iff the CPU supports the SSE3 instruction set.
    • hasSSE41

      boolean hasSSE41()
      Returns:
      true iff the CPU supports the SSE4.1 instruction set.
    • hasSSE42

      boolean hasSSE42()
      Returns:
      true iff the CPU supports the SSE4.2 instruction set.
    • hasSSE4A

      boolean hasSSE4A()
      AMD K10 only. Not supported on Intel. ref: https://en.wikipedia.org/wiki/SSE4.2#SSE4a
      Returns:
      true iff the CPU supports the SSE4A instruction set.
    • hasAVX

      boolean hasAVX()
      Returns:
      true iff the CPU supports the AVX instruction set.
      Since:
      0.9.26
    • hasAVX2

      boolean hasAVX2()
      Returns:
      true iff the CPU supports the AVX2 instruction set.
      Since:
      0.9.26
    • hasAVX512

      boolean hasAVX512()
      Does the CPU supports the AVX-512 Foundation instruction set? Quote wikipedia: AVX-512 consists of multiple extensions not all meant to be supported by all processors implementing them. Only the core extension AVX-512F (AVX-512 Foundation) is required by all implementations. ref: https://en.wikipedia.org/wiki/AVX-512
      Returns:
      true iff the CPU supports the AVX-512 Foundation instruction set.
      Since:
      0.9.26
    • hasADX

      boolean hasADX()
      Intel Multi-Precision Add-Carry Instruction Extensions Available in Broadwell. Unused until GMP 6.1.
      Returns:
      true iff the CPU supports the ADX instruction set.
      Since:
      0.9.26
    • hasTBM

      boolean hasTBM()
      Trailing Bit Manipulation (AMD feature)
      Returns:
      true iff the CPU supports TBM.
      Since:
      0.9.26, broken before 0.9.35, fixed in 0.9.35
    • hasAES

      boolean hasAES()
      Returns:
      true iff the CPU supports the AES-NI instruction set.
      Since:
      0.9.14
    • hasX64

      boolean hasX64()
      Returns:
      true iff the CPU supports the 64-bit support
      Since:
      0.9.26
    • hasBMI1

      boolean hasBMI1()
      Returns:
      true iff the CPU supports the BMI1 instruction set.
      Since:
      0.9.26
    • hasBMI2

      boolean hasBMI2()
      Returns:
      true iff the CPU supports the BMI2 instruction set.
      Since:
      0.9.26
    • hasFMA3

      boolean hasFMA3()
      Returns:
      true iff the CPU supports the FMA3 instruction set.
      Since:
      0.9.26
    • hasMOVBE

      boolean hasMOVBE()
      Returns:
      true iff the CPU supports the MOVBE instruction set.
      Since:
      0.9.26
    • hasABM

      boolean hasABM()
      Also known as LZCNT
      Returns:
      true iff the CPU supports the ABM instruction set.
      Since:
      0.9.26