Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Determine instruction set of my processor under Linux

I would like to know how to know which instruction set my processor using; I am running Linux.

I would also like to understand how a processor can handle many instruction sets.

When I type cat /proc/cpuinfo, I get :

model name : AMD FX(tm)-6350 Six Core Processor

I also see numerous flags: fpu, vme, mmxext, ...

like image 235
DJ_Joe Avatar asked Mar 16 '17 22:03

DJ_Joe


People also ask

How do I know which Intel processor I have Linux?

Search the /proc/cpuinfo file with the grep command. Once you learn the name of the processor, you can use the model name to look up the exact specifications online on Intel's website.

What is my instruction set?

The instruction set, also called ISA (instruction set architecture), is part of a computer that pertains to programming, which is more or less machine language. The instruction set provides commands to the processor, to tell it what it needs to do.


1 Answers

I also see numerous flags: fpu, vme, mmxext, ...

That's your answer: the flags line tells you what instruction set features the processor supports. See this question over at Unix.SE.

I would also like to understand how a processor can handle many instruction sets.

The x86 instruction set grew organically over many decades, largely driven by just two companies, Intel and AMD. Intel of course was only interested in adding features that didn't conflict with their prior instruction sets, and AMD had a strong financial interest to be compatible with Intel.

I'm only aware of one case where AMD was able to change the instruction set Intel supported, which was that Intel copied the AMD64 instruction set, calling it first EM64T, then later the Intel 64 instruction set.

Contrast this with Intel's other 64-bit processor, the Itanium, which is entirely incompatible with the legacy 16- and 32-bit versions of the x86 instruction set and thus incompatible with the AMD64/Intel 64 instruction set. It was purposely designed to be different in order to achieve different goals. AMD's alternative to the Itanium is purposely compatible with the legacy Intel x86 instruction sets, which in some ways complicates the implementation and reduces potential performance. If your purpose is to achieve mass-market success, it turns out to be better to be compatible with decades of legacy software than to design something entirely new and arguably better if it means requiring that all the old software has to either be rebuilt or thrown out.

Compatibility isn't the be-all and end-all of CPU design, else Transmeta, Cyrix and VIA would have had more success. But, software compatibility is also part of the reason that ARM Chromebooks and ARM Windows RT PCs haven't wiped out their Intel-based competitors, despite their many advantages. (Lower cost, better battery life, etc.)

like image 98
Warren Young Avatar answered Sep 21 '22 23:09

Warren Young