8

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, ...

Warren Young
  • 40,875
  • 8
  • 85
  • 101
DJ_Joe
  • 161
  • 1
  • 1
  • 5
  • 2
    DJ, your CPU is made by AMD and it series is FX. Check wikipedia: https://en.wikipedia.org/wiki/List_of_AMD_FX_microprocessors and https://en.wikipedia.org/wiki/AMD_FX: "Instruction set AMD64/x86-64" (compatible in special mode with classic x86 instruction set; you can install x86 or x86_64 OS on it). Linux prints instruction set in output of `uname -a` command. – osgx Mar 16 '17 at 22:55

1 Answers1

4

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.)

Community
  • 1
  • 1
Warren Young
  • 40,875
  • 8
  • 85
  • 101