Home Knowledge Base Instruction set architecture (ISA)

Instruction set architecture (ISA) is the contract between hardware and software — the precise specification of every instruction a processor can execute, the registers it exposes, the addressing modes it supports, and the binary encoding that compilers emit. The ISA is what makes software portable: any code compiled for ARMv9 runs on any ARMv9 chip (Apple M4, Qualcomm Snapdragon, AWS Graviton) regardless of the underlying microarchitecture. The three dominant ISAs today — x86-64 (Intel/AMD, servers and PCs), ARM (mobile, Apple, cloud), and RISC-V (open-source, rising) — collectively define how 99% of the world's processors interpret software.

Why ISA matters for AI chips. Every AI accelerator needs a host processor to run the OS, orchestrate data movement, and manage the accelerator. That host runs an ISA: x86-64 for NVIDIA DGX/HGX (Intel/AMD server CPUs), ARM for NVIDIA Grace-Hopper and AWS Graviton, RISC-V for emerging custom SoCs. Additionally, many AI accelerators define their own internal ISA for the compute cores (NVIDIA's PTX/SASS, Google TPU's VLIW ISA) — invisible to the programmer but critical for compiler efficiency.

CISC vs RISC — the foundational split:

PropertyCISC (x86-64)RISC (ARM, RISC-V)
Instruction lengthVariable (1–15 bytes)Fixed (4 bytes)
InstructionsComplex (string ops, loop, memory-compute)Simple (load/store, register-register)
Registers16 general-purpose (legacy)31–32 general-purpose
Decode complexityHigh (variable-length decoding is hard)Low (fixed encoding, simple decode)
Code densityHigher (fewer instructions per task)Lower (more instructions, but simpler)
Power efficiencyLower (decode overhead)Higher (simpler pipeline)
Backward compat40+ years (8086→x86-64)Clean breaks between versions
MarketServers, desktops, laptopsMobile, embedded, cloud, Apple

The three ISAs that matter:

ISA extensions for AI workloads:

ExtensionISAWhat it addsAI use case
AVX-512 / AMXx86-64512-bit vectors, matrix tiles (BF16, INT8)CPU-side inference, preprocessing
SVE2ARMv9Scalable vectors (128–2048 bit)Server inference, HPC
SME (Scalable Matrix)ARMv9.2Hardware matrix multiply (streaming mode)On-CPU matmul acceleration
RVV (Vector)RISC-VScalable vector (configurable VLEN)Edge AI, custom accelerators
Custom extensionsRISC-VApplication-specific instructionsCrypto, DSP, neural-net ops
PTX/SASSNVIDIA (internal)GPU thread instructions (warp-level)CUDA kernel execution

ISA and the compiler. The ISA is what the compiler targets: LLVM/GCC translate C/Python/CUDA into ISA-specific machine code. A well-designed ISA makes compiler optimization easier (uniform register file, orthogonal instruction encoding, large register count). RISC-V's clean design makes it a favorite compiler target; x86-64's legacy quirks (limited registers, variable encoding) force the compiler to work harder but benefit from decades of optimization effort.

<svg viewBox="0 0 760 470" xmlns="http://www.w3.org/2000/svg" font-family="-apple-system,Segoe UI,Roboto,sans-serif">
  <rect x="0" y="0" width="760" height="470" fill="#0d1117"/>
  <text x="380" y="28" fill="#e6edf3" font-size="21" font-weight="700" text-anchor="middle">ISA — Instruction Set Architecture</text>
  <text x="380" y="48" fill="#8b98a5" font-size="12" text-anchor="middle">the contract between software and hardware — defines instructions, registers, memory model, and encoding</text>

  <!-- ISA as interface layer -->
  <rect x="30" y="65" width="700" height="115" rx="6" fill="#080d14" stroke="#233043" stroke-width="1"/>
  <text x="380" y="86" fill="#e6edf3" font-size="11" font-weight="600" text-anchor="middle">ISA: The Hardware/Software Boundary</text>

  <!-- Software above -->
  <rect x="100" y="100" width="560" height="25" rx="3" fill="#0b1220" stroke="#60a5fa" stroke-width="0.8"/>
  <text x="380" y="117" fill="#93c5fd" font-size="8" text-anchor="middle">Software: compiler, OS, applications (sees only the ISA)</text>

  <!-- ISA layer -->
  <rect x="100" y="130" width="560" height="20" rx="3" fill="#2a1a0a" stroke="#f59e0b" stroke-width="1.2"/>
  <text x="380" y="144" fill="#fbbf24" font-size="9" font-weight="600" text-anchor="middle">ISA (the contract: instructions + registers + behavior)</text>

  <!-- Hardware below -->
  <rect x="100" y="155" width="560" height="25" rx="3" fill="#0b1220" stroke="#34d399" stroke-width="0.8"/>
  <text x="380" y="172" fill="#6ee7b7" font-size="8" text-anchor="middle">Hardware: pipeline, caches, OoO engine (implements the ISA — invisible to software)</text>

  <!-- ISA families comparison -->
  <rect x="30" y="192" width="700" height="175" rx="6" fill="#080d14" stroke="#233043" stroke-width="1"/>
  <text x="380" y="212" fill="#e6edf3" font-size="10" font-weight="600" text-anchor="middle">Major ISA Families</text>

  <!-- Headers -->
  <text x="100" y="234" fill="#8b98a5" font-size="8" font-weight="600" text-anchor="middle">ISA</text>
  <text x="220" y="234" fill="#8b98a5" font-size="8" font-weight="600" text-anchor="middle">Type</text>
  <text x="340" y="234" fill="#8b98a5" font-size="8" font-weight="600" text-anchor="middle">Registers</text>
  <text x="460" y="234" fill="#8b98a5" font-size="8" font-weight="600" text-anchor="middle">Domain</text>
  <text x="610" y="234" fill="#8b98a5" font-size="8" font-weight="600" text-anchor="middle">Key Feature</text>
  <line x1="50" y1="240" x2="710" y2="240" stroke="#233043" stroke-width="0.5"/>

  <text x="100" y="258" fill="#60a5fa" font-size="8" text-anchor="middle">x86-64</text>
  <text x="220" y="258" fill="#6b7684" font-size="8" text-anchor="middle">CISC</text>
  <text x="340" y="258" fill="#6b7684" font-size="8" text-anchor="middle">16 GPR + 32 SIMD</text>
  <text x="460" y="258" fill="#6b7684" font-size="8" text-anchor="middle">PC, server, HPC</text>
  <text x="610" y="258" fill="#6b7684" font-size="7.5" text-anchor="middle">backward compat (1978→)</text>

  <text x="100" y="278" fill="#34d399" font-size="8" text-anchor="middle">ARM (AArch64)</text>
  <text x="220" y="278" fill="#6b7684" font-size="8" text-anchor="middle">RISC</text>
  <text x="340" y="278" fill="#6b7684" font-size="8" text-anchor="middle">31 GPR + 32 SIMD</text>
  <text x="460" y="278" fill="#6b7684" font-size="8" text-anchor="middle">mobile, laptop, server</text>
  <text x="610" y="278" fill="#6b7684" font-size="7.5" text-anchor="middle">power efficiency (Apple M-series)</text>

  <text x="100" y="298" fill="#a78bfa" font-size="8" text-anchor="middle">RISC-V</text>
  <text x="220" y="298" fill="#6b7684" font-size="8" text-anchor="middle">RISC (open)</text>
  <text x="340" y="298" fill="#6b7684" font-size="8" text-anchor="middle">32 GPR + 32 vector</text>
  <text x="460" y="298" fill="#6b7684" font-size="8" text-anchor="middle">embedded, AI accel</text>
  <text x="610" y="298" fill="#6b7684" font-size="7.5" text-anchor="middle">open-source, modular exts</text>

  <text x="100" y="318" fill="#f59e0b" font-size="8" text-anchor="middle">PTX / SASS</text>
  <text x="220" y="318" fill="#6b7684" font-size="8" text-anchor="middle">GPU ISA</text>
  <text x="340" y="318" fill="#6b7684" font-size="8" text-anchor="middle">registers per thread</text>
  <text x="460" y="318" fill="#6b7684" font-size="8" text-anchor="middle">GPU compute</text>
  <text x="610" y="318" fill="#6b7684" font-size="7.5" text-anchor="middle">SIMT, warp-level ops</text>

  <text x="100" y="338" fill="#f87171" font-size="8" text-anchor="middle">TPU ISA</text>
  <text x="220" y="338" fill="#6b7684" font-size="8" text-anchor="middle">VLIW/systolic</text>
  <text x="340" y="338" fill="#6b7684" font-size="8" text-anchor="middle">MXU registers</text>
  <text x="460" y="338" fill="#6b7684" font-size="8" text-anchor="middle">ML training/infer</text>
  <text x="610" y="338" fill="#6b7684" font-size="7.5" text-anchor="middle">XLA-compiled, no user ISA</text>

  <text x="380" y="362" fill="#6b7684" font-size="7.5" text-anchor="middle">RISC vs CISC debate is settled: all modern CISC (x86) decode into RISC µops internally anyway</text>

  <!-- Bottom: what ISA defines -->
  <rect x="30" y="380" width="700" height="50" rx="6" fill="#080d14" stroke="#233043" stroke-width="1"/>
  <text x="380" y="398" fill="#e6edf3" font-size="9" font-weight="600" text-anchor="middle">What an ISA Defines (the contract)</text>
  <text x="380" y="416" fill="#8b98a5" font-size="8" text-anchor="middle">instruction encoding · register file · addressing modes · memory model · exception handling · privilege levels</text>
  <text x="380" y="426" fill="#6b7684" font-size="7" text-anchor="middle">everything the programmer/compiler can observe. NOT defined: pipeline depth, cache size, branch predictor (µarch)</text>

  <text x="380" y="452" fill="#6b7684" font-size="11" text-anchor="middle">The ISA is the most durable abstraction in computing — x86 code from 1985 still runs on a 2024 CPU.</text>
</svg>

ISA and the CFS platform. The CFS RISC-V keyword covers the open-source ISA in detail. The computer-architecture keyword covers how ISAs are implemented in hardware. The systolic-array and inference simulators model the compute units that ISA instructions ultimately dispatch work to. Understanding ISA design — the trade-offs between instruction complexity, register count, and encoding efficiency — is foundational knowledge for anyone designing or programming AI hardware.

instruction set architectureisax86armrisc vs ciscinstruction setprocessor isa

Explore 500+ Semiconductor & AI Topics

From EUV lithography to CUDA optimization — search the full knowledge base or chat with our AI assistant.