Skip to content

Latest commit

 

History

History
46 lines (40 loc) · 3.79 KB

isa.md

File metadata and controls

46 lines (40 loc) · 3.79 KB

Instruction Set Architectures

Instruction Sets

  • Reduced Instruction Set Computing (RISC)
    • Example ISAs that are RISC-based: ARM, RISC-V
  • Complex Instruction Set Computing (CISC)
    • Some ISAs that are CIRC-based: x86, x86_64

Common Instruction Set Architectures

  • x86, 80x86 IA-32, i386, i686, x86-32
    • x86 refers to the Intel processor architecture that was used in PCs. Model numbers were 8088 (16-bit processor), 8086 (16-bit processor), 286, 386, 486.
    • 16-bit processors: 8086, 8088
    • 32-bit processors: 80386, 80486
      • This is how the name 80x86 was born and over time the 80 was dropped, simplifying the name to just x86.
      • 32-bit processor implies a processor that is capable of addressing (accessing/working on) 2^32 bits of memory, which is around 4GB.
    • Nowadays it roughly means any CPU with a 32-bit Intel compatible instruction set (usually anything from Pentium onwards). (Classic)
    • Strictly speaking, x86 covers all CPUs that are backwards-compatible with 8086 and all extensions to the architecture including x86-32 and x86-64.
  • x64, x86_64, x86-64, amd64, AMD64
    • x64 is the architecture name for the extensions to the x86 instruction set that enable 64-bit code.
    • x64 means a CPU that is x86 compatible but has a 64-bit mode as well.
    • The well-known 64-bit instruction set processors.
      • 64-bit processor implies a processor that is capable of addressing (accessing/working on) 2^64 bits of memory, which is around 16EB.
  • IA64, IA-64, Itanium
    • Not x86, but is Intel's 64-bit architecture that failed to catch on unlike amd64.
  • x32
    • x32 is an Application Binary Interface (ABI) for amd64/x86_64 CPUs using 32-bit integers, longs and pointers.
    • Fairly new variant of x86-64 and not widely used. Not to be confused with legacy/classic 32-bit instruction sets.
    • Registers are 64 bits, but pointers are only 32 bits, saving a lot of memory in pointer-heavy workflows. It also ensures all the other 64-bit only processor features are available.

Resources