Yeppp!
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
Processor architecture, microarchitecture, and vendor information

Processor vendor information

enum  YepCpuVendor {
  YepCpuVendorUnknown = 0, YepCpuVendorIntel = 1, YepCpuVendorAMD = 2, YepCpuVendorVIA = 3,
  YepCpuVendorTransmeta = 4, YepCpuVendorCyrix = 5, YepCpuVendorRise = 6, YepCpuVendorNSC = 7,
  YepCpuVendorSiS = 8, YepCpuVendorNexGen = 9, YepCpuVendorUMC = 10, YepCpuVendorRDC = 11,
  YepCpuVendorDMP = 12, YepCpuVendorARM = 20, YepCpuVendorMarvell = 21, YepCpuVendorQualcomm = 22,
  YepCpuVendorDEC = 23, YepCpuVendorTI = 24, YepCpuVendorApple = 25, YepCpuVendorIngenic = 40,
  YepCpuVendorICT = 41, YepCpuVendorMIPS = 42, YepCpuVendorIBM = 50, YepCpuVendorMotorola = 51,
  YepCpuVendorPASemi = 52, YepCpuVendorSun = 60, YepCpuVendorOracle = 61, YepCpuVendorFujitsu = 62,
  YepCpuVendorMCST = 63
}
 The company which designed the processor microarchitecture. More...
 
enum YepStatus yepLibrary_GetCpuVendor (enum YepCpuVendor *vendor)
 Returns information about the vendor of the processor. More...
 

Processor architecture information

enum  YepCpuArchitecture {
  YepCpuArchitectureUnknown = 0, YepCpuArchitectureX86 = 1, YepCpuArchitectureARM = 2, YepCpuArchitectureMIPS = 3,
  YepCpuArchitecturePowerPC = 4, YepCpuArchitectureIA64 = 5, YepCpuArchitectureSPARC = 6
}
 The basic instruction set architecture of the processor. More...
 
enum YepStatus yepLibrary_GetCpuArchitecture (enum YepCpuArchitecture *architecture)
 Returns the type of processor architecture. More...
 

Processor microarchitecture information

enum  YepCpuMicroarchitecture {
  YepCpuMicroarchitectureUnknown = 0, YepCpuMicroarchitectureP5 = (YepCpuArchitectureX86 << 24) + (YepCpuVendorIntel << 16) + 0x0001, YepCpuMicroarchitectureP6 = (YepCpuArchitectureX86 << 24) + (YepCpuVendorIntel << 16) + 0x0002, YepCpuMicroarchitectureWillamette = (YepCpuArchitectureX86 << 24) + (YepCpuVendorIntel << 16) + 0x0003,
  YepCpuMicroarchitecturePrescott = (YepCpuArchitectureX86 << 24) + (YepCpuVendorIntel << 16) + 0x0004, YepCpuMicroarchitectureDothan = (YepCpuArchitectureX86 << 24) + (YepCpuVendorIntel << 16) + 0x0005, YepCpuMicroarchitectureYonah = (YepCpuArchitectureX86 << 24) + (YepCpuVendorIntel << 16) + 0x0006, YepCpuMicroarchitectureConroe = (YepCpuArchitectureX86 << 24) + (YepCpuVendorIntel << 16) + 0x0007,
  YepCpuMicroarchitecturePenryn = (YepCpuArchitectureX86 << 24) + (YepCpuVendorIntel << 16) + 0x0008, YepCpuMicroarchitectureBonnell = (YepCpuArchitectureX86 << 24) + (YepCpuVendorIntel << 16) + 0x0009, YepCpuMicroarchitectureNehalem = (YepCpuArchitectureX86 << 24) + (YepCpuVendorIntel << 16) + 0x000A, YepCpuMicroarchitectureSandyBridge = (YepCpuArchitectureX86 << 24) + (YepCpuVendorIntel << 16) + 0x000B,
  YepCpuMicroarchitectureSaltwell = (YepCpuArchitectureX86 << 24) + (YepCpuVendorIntel << 16) + 0x000C, YepCpuMicroarchitectureIvyBridge = (YepCpuArchitectureX86 << 24) + (YepCpuVendorIntel << 16) + 0x000D, YepCpuMicroarchitectureHaswell = (YepCpuArchitectureX86 << 24) + (YepCpuVendorIntel << 16) + 0x000E, YepCpuMicroarchitectureSilvermont = (YepCpuArchitectureX86 << 24) + (YepCpuVendorIntel << 16) + 0x000F,
  YepCpuMicroarchitectureKnightsFerry = (YepCpuArchitectureX86 << 24) + (YepCpuVendorIntel << 16) + 0x0100, YepCpuMicroarchitectureKnightsCorner = (YepCpuArchitectureX86 << 24) + (YepCpuVendorIntel << 16) + 0x0101, YepCpuMicroarchitectureK5 = (YepCpuArchitectureX86 << 24) + (YepCpuVendorAMD << 16) + 0x0001, YepCpuMicroarchitectureK6 = (YepCpuArchitectureX86 << 24) + (YepCpuVendorAMD << 16) + 0x0002,
  YepCpuMicroarchitectureK7 = (YepCpuArchitectureX86 << 24) + (YepCpuVendorAMD << 16) + 0x0003, YepCpuMicroarchitectureGeode = (YepCpuArchitectureX86 << 24) + (YepCpuVendorAMD << 16) + 0x0004, YepCpuMicroarchitectureK8 = (YepCpuArchitectureX86 << 24) + (YepCpuVendorAMD << 16) + 0x0005, YepCpuMicroarchitectureK10 = (YepCpuArchitectureX86 << 24) + (YepCpuVendorAMD << 16) + 0x0006,
  YepCpuMicroarchitectureBobcat = (YepCpuArchitectureX86 << 24) + (YepCpuVendorAMD << 16) + 0x0007, YepCpuMicroarchitectureBulldozer = (YepCpuArchitectureX86 << 24) + (YepCpuVendorAMD << 16) + 0x0008, YepCpuMicroarchitecturePiledriver = (YepCpuArchitectureX86 << 24) + (YepCpuVendorAMD << 16) + 0x0009, YepCpuMicroarchitectureJaguar = (YepCpuArchitectureX86 << 24) + (YepCpuVendorAMD << 16) + 0x000A,
  YepCpuMicroarchitectureSteamroller = (YepCpuArchitectureX86 << 24) + (YepCpuVendorAMD << 16) + 0x000B, YepCpuMicroarchitectureStrongARM = (YepCpuArchitectureARM << 24) + (YepCpuVendorIntel << 16) + 0x0001, YepCpuMicroarchitectureXScale = (YepCpuArchitectureARM << 24) + (YepCpuVendorIntel << 16) + 0x0002, YepCpuMicroarchitectureARM7 = (YepCpuArchitectureARM << 24) + (YepCpuVendorARM << 16) + 0x0001,
  YepCpuMicroarchitectureARM9 = (YepCpuArchitectureARM << 24) + (YepCpuVendorARM << 16) + 0x0002, YepCpuMicroarchitectureARM11 = (YepCpuArchitectureARM << 24) + (YepCpuVendorARM << 16) + 0x0003, YepCpuMicroarchitectureCortexA5 = (YepCpuArchitectureARM << 24) + (YepCpuVendorARM << 16) + 0x0004, YepCpuMicroarchitectureCortexA7 = (YepCpuArchitectureARM << 24) + (YepCpuVendorARM << 16) + 0x0005,
  YepCpuMicroarchitectureCortexA8 = (YepCpuArchitectureARM << 24) + (YepCpuVendorARM << 16) + 0x0006, YepCpuMicroarchitectureCortexA9 = (YepCpuArchitectureARM << 24) + (YepCpuVendorARM << 16) + 0x0007, YepCpuMicroarchitectureCortexA15 = (YepCpuArchitectureARM << 24) + (YepCpuVendorARM << 16) + 0x0008, YepCpuMicroarchitectureScorpion = (YepCpuArchitectureARM << 24) + (YepCpuVendorQualcomm << 16) + 0x0001,
  YepCpuMicroarchitectureKrait = (YepCpuArchitectureARM << 24) + (YepCpuVendorQualcomm << 16) + 0x0002, YepCpuMicroarchitecturePJ1 = (YepCpuArchitectureARM << 24) + (YepCpuVendorMarvell << 16) + 0x0001, YepCpuMicroarchitecturePJ4 = (YepCpuArchitectureARM << 24) + (YepCpuVendorMarvell << 16) + 0x0002, YepCpuMicroarchitectureSwift = (YepCpuArchitectureARM << 24) + (YepCpuVendorApple << 16) + 0x0001,
  YepCpuMicroarchitectureItanium = (YepCpuArchitectureIA64 << 24) + (YepCpuVendorIntel << 16) + 0x0001, YepCpuMicroarchitectureItanium2 = (YepCpuArchitectureIA64 << 24) + (YepCpuVendorIntel << 16) + 0x0002, YepCpuMicroarchitectureMIPS24K = (YepCpuArchitectureMIPS << 24) + (YepCpuVendorMIPS << 16) + 0x0001, YepCpuMicroarchitectureMIPS34K = (YepCpuArchitectureMIPS << 24) + (YepCpuVendorMIPS << 16) + 0x0002,
  YepCpuMicroarchitectureMIPS74K = (YepCpuArchitectureMIPS << 24) + (YepCpuVendorMIPS << 16) + 0x0003, YepCpuMicroarchitectureXBurst = (YepCpuArchitectureMIPS << 24) + (YepCpuVendorIngenic << 16) + 0x0001, YepCpuMicroarchitectureXBurst2 = (YepCpuArchitectureMIPS << 24) + (YepCpuVendorIngenic << 16) + 0x0002
}
 Type of processor microarchitecture. More...
 
enum YepStatus yepLibrary_GetCpuMicroarchitecture (enum YepCpuMicroarchitecture *microarchitecture)
 Returns the type of processor microarchitecture used. More...
 

Detailed Description

Enumeration Type Documentation

The company which designed the processor microarchitecture.

See Also
yepLibrary_GetCpuVendor
Enumerator
YepCpuVendorUnknown 

Processor vendor is not known to the library, or the library failed to get vendor information from the OS.

YepCpuVendorIntel 

Intel Corporation. Vendor of x86, x86-64, IA64, and ARM processor microarchitectures.

Sold its ARM design subsidiary in 2006. The last ARM processor design was released in 2004.

YepCpuVendorAMD 

Advanced Micro Devices, Inc. Vendor of x86 and x86-64 processor microarchitectures.

YepCpuVendorVIA 

VIA Technologies, Inc. Vendor of x86 and x86-64 processor microarchitectures.

Processors are designed by Centaur Technology, a subsidiary of VIA Technologies.

YepCpuVendorTransmeta 

Transmeta Corporation. Vendor of x86 processor microarchitectures.

Now defunct. The last processor design was released in 2004. Transmeta processors implemented VLIW ISA and used binary translation to execute x86 code.

YepCpuVendorCyrix 

Cyrix Corporation. Vendor of x86 processor microarchitectures.

Now defunct. The last processor design was released in 1996.

YepCpuVendorRise 

Rise Technology. Vendor of x86 processor microarchitectures.

Now defunct. The last processor design was released in 1999.

YepCpuVendorNSC 

National Semiconductor. Vendor of x86 processor microarchitectures.

Sold its x86 design subsidiary in 1999. The last processor design was released in 1998.

YepCpuVendorSiS 

Silicon Integrated Systems. Vendor of x86 processor microarchitectures.

Sold its x86 design subsidiary in 2001. The last processor design was released in 2001.

YepCpuVendorNexGen 

NexGen. Vendor of x86 processor microarchitectures.

Now defunct. The last processor design was released in 1994. NexGen designed the first x86 microarchitecture which decomposed x86 instructions into simple microoperations.

YepCpuVendorUMC 

United Microelectronics Corporation. Vendor of x86 processor microarchitectures.

Ceased x86 in the early 1990s. The last processor design was released in 1991. Designed U5C and U5D processors. Both are 486 level.

YepCpuVendorRDC 

RDC Semiconductor Co., Ltd. Vendor of x86 processor microarchitectures.

Designes embedded x86 CPUs.

YepCpuVendorDMP 

DM&P Electronics Inc. Vendor of x86 processor microarchitectures.

Mostly embedded x86 designs.

YepCpuVendorARM 

ARM Holdings plc. Vendor of ARM processor microarchitectures.

YepCpuVendorMarvell 

Marvell Technology Group Ltd. Vendor of ARM processor microarchitectures.

YepCpuVendorQualcomm 

Qualcomm Incorporated. Vendor of ARM processor microarchitectures.

YepCpuVendorDEC 

Digital Equipment Corporation. Vendor of ARM processor microarchitecture.

Sold its ARM designs in 1997. The last processor design was released in 1997.

YepCpuVendorTI 

Texas Instruments Inc. Vendor of ARM processor microarchitectures.

YepCpuVendorApple 

Apple Inc. Vendor of ARM processor microarchitectures.

YepCpuVendorIngenic 

Ingenic Semiconductor. Vendor of MIPS processor microarchitectures.

YepCpuVendorICT 

Institute of Computing Technology of the Chinese Academy of Sciences. Vendor of MIPS processor microarchitectures.

YepCpuVendorMIPS 

MIPS Technologies, Inc. Vendor of MIPS processor microarchitectures.

YepCpuVendorIBM 

International Business Machines Corporation. Vendor of PowerPC processor microarchitectures.

YepCpuVendorMotorola 

Motorola, Inc. Vendor of PowerPC and ARM processor microarchitectures.

YepCpuVendorPASemi 

P. A. Semi. Vendor of PowerPC processor microarchitectures.

Now defunct. The last processor design was released in 2007.

YepCpuVendorSun 

Sun Microsystems, Inc. Vendor of SPARC processor microarchitectures.

Now defunct. The last processor design was released in 2008.

YepCpuVendorOracle 

Oracle Corporation. Vendor of SPARC processor microarchitectures.

YepCpuVendorFujitsu 

Fujitsu Limited. Vendor of SPARC processor microarchitectures.

YepCpuVendorMCST 

Moscow Center of SPARC Technologies CJSC. Vendor of SPARC processor microarchitectures.

The basic instruction set architecture of the processor.

The ISA is always known at compile-time.

See Also
yepLibrary_GetCpuArchitecture
Enumerator
YepCpuArchitectureUnknown 

Instruction set architecture is not known to the library.

This value is never returned on supported architectures.

YepCpuArchitectureX86 

x86 or x86-64 ISA.

YepCpuArchitectureARM 

ARM ISA.

YepCpuArchitectureMIPS 

MIPS ISA.

YepCpuArchitecturePowerPC 

PowerPC ISA.

YepCpuArchitectureIA64 

IA64 ISA.

YepCpuArchitectureSPARC 

SPARC ISA.

Type of processor microarchitecture.

Low-level instruction performance characteristics, such as latency and throughput, are constant within microarchitecture. Processors of the same microarchitecture can differ in supported instruction sets and other extensions.

See Also
yepLibrary_GetCpuMicroarchitecture
Enumerator
YepCpuMicroarchitectureUnknown 

Microarchitecture is unknown, or the library failed to get information about the microarchitecture from OS.

YepCpuMicroarchitectureP5 

Pentium and Pentium MMX microarchitecture.

YepCpuMicroarchitectureP6 

Pentium Pro, Pentium II, and Pentium III.

YepCpuMicroarchitectureWillamette 

Pentium 4 with Willamette, Northwood, or Foster cores.

YepCpuMicroarchitecturePrescott 

Pentium 4 with Prescott and later cores.

YepCpuMicroarchitectureDothan 

Pentium M.

YepCpuMicroarchitectureYonah 

Intel Core microarchitecture.

YepCpuMicroarchitectureConroe 

Intel Core 2 microarchitecture on 65 nm process.

YepCpuMicroarchitecturePenryn 

Intel Core 2 microarchitecture on 45 nm process.

YepCpuMicroarchitectureBonnell 

Intel Atom on 45 nm process.

YepCpuMicroarchitectureNehalem 

Intel Nehalem and Westmere microarchitectures (Core i3/i5/i7 1st gen).

YepCpuMicroarchitectureSandyBridge 

Intel Sandy Bridge microarchitecture (Core i3/i5/i7 2nd gen).

YepCpuMicroarchitectureSaltwell 

Intel Atom on 32 nm process.

YepCpuMicroarchitectureIvyBridge 

Intel Ivy Bridge microarchitecture (Core i3/i5/i7 3rd gen).

YepCpuMicroarchitectureHaswell 

Intel Haswell microarchitecture (Core i3/i5/i7 4th gen).

YepCpuMicroarchitectureSilvermont 

Intel Silvermont microarchitecture (22 nm out-of-order Atom).

YepCpuMicroarchitectureKnightsFerry 

Intel Knights Ferry HPC boards.

YepCpuMicroarchitectureKnightsCorner 

Intel Knights Corner HPC boards (aka Xeon Phi).

YepCpuMicroarchitectureK5 

AMD K5.

YepCpuMicroarchitectureK6 

AMD K6 and alike.

YepCpuMicroarchitectureK7 

AMD Athlon and Duron.

YepCpuMicroarchitectureGeode 

AMD Geode GX and LX.

YepCpuMicroarchitectureK8 

AMD Athlon 64, Opteron 64.

YepCpuMicroarchitectureK10 

AMD K10 (Barcelona, Istambul, Magny-Cours).

YepCpuMicroarchitectureBobcat 

AMD Bobcat mobile microarchitecture.

YepCpuMicroarchitectureBulldozer 

AMD Bulldozer microarchitecture (1st gen K15).

YepCpuMicroarchitecturePiledriver 

AMD Piledriver microarchitecture (2nd gen K15).

YepCpuMicroarchitectureJaguar 

AMD Jaguar mobile microarchitecture.

YepCpuMicroarchitectureSteamroller 

AMD Steamroller microarchitecture (3rd gen K15).

YepCpuMicroarchitectureStrongARM 

DEC/Intel StrongARM processors.

YepCpuMicroarchitectureXScale 

Intel/Marvell XScale processors.

YepCpuMicroarchitectureARM7 

ARM7 series.

YepCpuMicroarchitectureARM9 

ARM9 series.

YepCpuMicroarchitectureARM11 

ARM 1136, ARM 1156, ARM 1176, or ARM 11MPCore.

YepCpuMicroarchitectureCortexA5 

ARM Cortex-A5.

YepCpuMicroarchitectureCortexA7 

ARM Cortex-A7.

YepCpuMicroarchitectureCortexA8 

ARM Cortex-A8.

YepCpuMicroarchitectureCortexA9 

ARM Cortex-A9.

YepCpuMicroarchitectureCortexA15 

ARM Cortex-A15.

YepCpuMicroarchitectureScorpion 

Qualcomm Scorpion.

YepCpuMicroarchitectureKrait 

Qualcomm Krait.

YepCpuMicroarchitecturePJ1 

Marvell Sheeva PJ1.

YepCpuMicroarchitecturePJ4 

Marvell Sheeva PJ4.

YepCpuMicroarchitectureSwift 

Apple A6 and A6X processors.

YepCpuMicroarchitectureItanium 

Intel Itanium.

YepCpuMicroarchitectureItanium2 

Intel Itanium 2.

YepCpuMicroarchitectureMIPS24K 

MIPS 24K.

YepCpuMicroarchitectureMIPS34K 

MIPS 34K.

YepCpuMicroarchitectureMIPS74K 

MIPS 74K.

YepCpuMicroarchitectureXBurst 

Ingenic XBurst.

YepCpuMicroarchitectureXBurst2 

Ingenic XBurst 2.

Function Documentation

enum YepStatus yepLibrary_GetCpuVendor ( enum YepCpuVendor vendor)

Returns information about the vendor of the processor.

Parameters
[out]vendorPointer to a variable where information about the processor vendor will be stored.
Return values
YepStatusOkThe information successfully stored to the variable pointed by vendor parameter.
YepStatusNullPointerThe vendor pointer is null.
Examples:
CpuInfo.c.
enum YepStatus yepLibrary_GetCpuArchitecture ( enum YepCpuArchitecture architecture)

Returns the type of processor architecture.

Parameters
[out]architecturePointer to a variable where information about the processor architecture will be stored.
Return values
YepStatusOkThe information successfully stored to the variable pointed by architecture parameter.
YepStatusNullPointerThe architecture pointer is null.
Examples:
CpuInfo.c.
enum YepStatus yepLibrary_GetCpuMicroarchitecture ( enum YepCpuMicroarchitecture microarchitecture)

Returns the type of processor microarchitecture used.

Parameters
[out]microarchitecturePointer to a variable where information about the processor microarchitecture will be stored.
Return values
YepStatusOkThe information successfully stored to the variable pointed by microarchitecture parameter.
YepStatusNullPointerThe microarchitecture pointer is null.
Examples:
CpuInfo.c.