ISA vs Microarchitecture

ISA (Instruction Set Architecture) is the interface - say gas paddle

Microarchitecture is the actual implementation - say IC engine or electric engine

Microarchitecture can change, and as long as it is compatible with the said ISA, a given program will continue to work with better or worse efficiency.

Intel's x86 is an ISA, while Pentium, Pentium Pro, Coffe Lake, etc., are the implementations. Intel has licensed AMD to use the ISA to build its chips. There are only a few ISAs - x86, ARM, RISC-V, MIPS, and Alpha. But there are many μArchitectures as the underlying hardware improvements help the programs run faster without changing the high-level code.

So, what can be improved at the hardware level?

  1. Pipelining

  2. In-order vs Out-of-order execution of instructions

  3. Speculative execution

  4. Memory access scheduling policy

  5. Clock gating

  6. Caching

  7. Prefetching

  8. And more

[This post is periodically updated]