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