In computer technology, an opcode is the portion of a machine language instruction that specifies the operation to be performed. Their specification and format are laid out in the instruction set architecture of the processor in question .... is a processor supplementary instruction (its name derived from CPU
Central processing unit
A central processing unit is an electronic circuit that can execute computer programs. This broad definition can easily be applied to many early computers that existed long before the term "CPU" ever came into widespread usage.... IDentification) for the x86 architecture. It was introduced by Intel in the early 1990s for later steppings of the 486
Intel 80486
The Intel i486, otherwise known as the 80486, was the first tightly pipeline x86 design. Introduced in 1989, it was also the first x86 chip to use more than a million transistors, due to a large on-chip cache and an integrated floating point unit.... chip, and fully rolled out at the introduction of the Pentium
Pentium
Introduced on March 22, 1993, the original Pentium was the first superscalar x86 architecture microprocessor. Its fifth-generation x86 microarchitecture was a direct extension of the 80486 architecture with dual integer pipeline s, a faster FPU unit, wider data bus, and features for further reduced address calculation latency.... MMX processor.
By using the CPUID opcode, software can determine processor type and the presence of features (like MMX/SSE
Streaming SIMD Extensions
In computing, Streaming SIMD Extensions is a SIMD instruction set extension to the x86 architecture, designed by Intel and introduced in 1999 in their Pentium III series processors as a reply to AMD's 3DNow! .... ).
In computer technology, an opcode is the portion of a machine language instruction that specifies the operation to be performed. Their specification and format are laid out in the instruction set architecture of the processor in question .... is a processor supplementary instruction (its name derived from CPU
Central processing unit
A central processing unit is an electronic circuit that can execute computer programs. This broad definition can easily be applied to many early computers that existed long before the term "CPU" ever came into widespread usage.... IDentification) for the x86 architecture. It was introduced by Intel in the early 1990s for later steppings of the 486
Intel 80486
The Intel i486, otherwise known as the 80486, was the first tightly pipeline x86 design. Introduced in 1989, it was also the first x86 chip to use more than a million transistors, due to a large on-chip cache and an integrated floating point unit.... chip, and fully rolled out at the introduction of the Pentium
Pentium
Introduced on March 22, 1993, the original Pentium was the first superscalar x86 architecture microprocessor. Its fifth-generation x86 microarchitecture was a direct extension of the 80486 architecture with dual integer pipeline s, a faster FPU unit, wider data bus, and features for further reduced address calculation latency.... MMX processor.
By using the CPUID opcode, software can determine processor type and the presence of features (like MMX/SSE
Streaming SIMD Extensions
In computing, Streaming SIMD Extensions is a SIMD instruction set extension to the x86 architecture, designed by Intel and introduced in 1999 in their Pentium III series processors as a reply to AMD's 3DNow! .... ). The CPUID opcode is 0FA2h and the value in the EAX register specifies what information to return.
Prior to the general availability of the CPUID instruction, programmers would write esoteric machine code
Machine code
Machine code or machine language is a system of instructions and data executed directly by a computer's central processing unit. Machine code may be regarded as a primitive programming language or as the lowest-level representation of a compiled and/or assembly language computer program.... which exploited minor differences in CPU behavior in order to determine the processor make and model.
An assembly language is a low-level language for programming computers. It implements a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture.... the CPUID instruction takes no parameters as CPUID implicitly uses the EAX register. The EAX register should be loaded with a value specifying what information to return. CPUID should be called with EAX = 0 first, as this will return the highest calling parameter that the CPU supports. To obtain extended function information CPUID should be called with bit 31 of EAX set. To determine the highest extended function calling parameter, call CPUID with EAX = 80000000h.
EAX=0: Get vendor ID
This returns the CPU's manufacturer ID string - a twelve character ASCII string stored in EBX, EDX, ECX - in that order. The highest basic calling parameter is returned in EAX.
The following are known processor manufacturer ID strings:
"AMDisbetter!" - early engineering samples of AMD K5
AMD K5
The K5 was Advanced Micro Devices first X86 architecture processor to be developed entirely in-house. Introduced in March 1996, its primary competition was Intel Corporation Pentium microprocessor.... processor
Advanced Micro Devices, Inc. is an United States multinational corporation semiconductor industry company based in Sunnyvale, California, that develops Central processing unit and related technologies for commercial and consumer markets....
Centaur Technology is an X86 architecture CPU design company, now a wholly owned subsidiary of VIA Technologies, a member of the Formosa Plastics Group, Taiwan's largest industrial conglomerate....
Cyrix was a Central processing unit manufacturer that began in 1988 in Richardson, Texas as a specialist supplier of high-performance math coprocessors for Intel 80286 and Intel 80386 systems....
Intel Corporation is the world's largest semiconductor company and the inventor of the X86 architecture series of microprocessors, the processors found in most personal computers....
Transmeta Corporation was a United States-based corporation that licensed low power semiconductor intellectual property. Transmeta originally produced very long instruction word code morphing microprocessors, with a focus on reducing power consumption in electronic devices....
National Semiconductor is a semiconductor manufacturer, specializing in analog devices and subsystems,headquartered in Santa Clara, California, California, United States....
NexGen was a private semiconductor company that designed x86 microprocessors until it was purchased by AMD in 1996. Like competitor Cyrix, NexGen was a fabless design house that designed its chips but relied on other companies for production....
Rise Technology, was a short lived microprocessor manufacturer that produced the Intel x86 MMX compatible mP6 processor.The Santa Clara, California based company was started by David Lin in 1993 with funding from 15 Taiwanese investors, including United Microelectronics Corporation, Acer and VIA Technologies....
Silicon Integrated Systems is a company that manufactures, among other things, motherboard chipsets. The company was founded in 1987 in Hsinchu Science Park, Taiwan....
UMC was founded as Taiwan's first semiconductor company in 1980 as a spin-off of the government-sponsored institute Industrial Technology Research Institute....
VIA Technologies is a Taiwanese manufacturer of integrated circuits, mainly motherboard chipsets, Central processing unit, and computer memory, and is part of the Formosa Plastics Group....
For instance, on a GenuineIntel processor values returned in EBX is 0x756e6547, EDX is 0x49656e69 and ECX is 0x6c65746e.
.section .data
s0: .string "Largest Standard Function Number Supported: %i\n"
s1: .string "Vendor ID: %s\n"
.text
.global main
Stepping is a designation used by Intel and AMD to identify how much the design of a microprocessor has advanced from the original design. The stepping is identified by a combination of a letter and a number.... , model, and family information in EAX (also called the signature of a CPU), feature flags in EDX and ECX, and additional feature info in EBX.
The format of the information in EAX is as follows:
3:0 - Stepping
7:4 - Model
11:8 - Family
13:12 - Processor Type
19:16 - Extended Model
27:20 - Extended Family
Intel and AMD have suggested applications to display the family of a CPU as the sum of the "Family" and the "Extended Family" fields shown above, and the model as the sum of the "Model" and the 4-bit left-shifted "Extended Model" fields shown above.
The processor info and feature flags are manufacturer specific but usually the Intel values are used by other manufacturers for the sake of compatibility.
EAX=2: Cache and TLB Descriptor Info
This returns a list of descriptors indicating cache and TLB
Translation Lookaside Buffer
A Translation lookaside buffer is a Central processing unit CPU cache that is used by Memory management unit to improve the speed of virtual address translation.... capabilities in EAX, EBX, ECX and EDX registers.
EAX=3: Processor Serial Number
This returns the processor's serial number. The processor serial number was introduced on Intel Pentium III
Pentium III
The Pentium III brand refers to Intel's 32-bit x86 desktop and mobile microprocessors based on the sixth-generation Intel P6 microarchitecture introduced on February 26, 1999.... , but due to privacy concern, this feature is no longer implemented on later models (PSN feature bit is always cleared). Transmeta's
Transmeta
Transmeta Corporation was a United States-based corporation that licensed low power semiconductor intellectual property. Transmeta originally produced very long instruction word code morphing microprocessors, with a focus on reducing power consumption in electronic devices.... Efficeon and Crusoe processors also provide this feature. AMD CPUs however, do not implement this feature in any CPU models.
For Intel Pentium III CPUs, the serial number is returned in EDX:ECX registers. For Transmeta Efficeon CPUs, it is returned in EBX:EAX registers. And for Transmeta Crusoe CPUs, it is returned in EBX register only.
Note that the processor serial number feature must be enabled in the BIOS
BIOS
In computing, the Basic Input/Output System , also known as the System BIOS, is a de facto standard defining a firmware interface for IBM PC Compatible computers.... setting in order to function.
.section .data
s0: .string "Processor serial number: %.4hX-%.4hX-%.4hX-%.4hX-%.4hX-%.4hX\n"
.text
.global main
These return the processor brand string in EAX, EBX, ECX and EDX. CPUID must be issued with each parameter in sequence to get the entire 48-byte null-terminated ASCII processor brand string.
.section .data
s0: .string "Processor Brand String: %s\n"
.text
.global main
Returns details of the L2 cache in ECX, including two different ways to express cache size and codes for cache associativity.
.section .data
s0: .string "L2 Cache: %iMB\n"
.text
.global main
The Pentium III brand refers to Intel's 32-bit x86 desktop and mobile microprocessors based on the sixth-generation Intel P6 microarchitecture introduced on February 26, 1999.... .
CPU-Z is a freeware system profiler application software for Microsoft Windows that detects the central processing unit, Random access memory, motherboard chipset, and other hardware features of a modern personal computer, and presents the information in one window.... , a Windows utility that uses CPUID to identify various system settings.
DOS, short for "Disk Operating System", is a shorthand term for several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995, or until about 2000 if one includes the partially DOS-based Microsoft Windows versions Windows 95, Windows 98, and Windows Me.... programs:
Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license... programs:
the /proc/cpuinfo interface which among other information shows most of the cpuid output
Solaris provides the /dev/cpu/self/cpuid interface