Field Guide · concept

Also known as: ISA

An instruction set architecture (ISA) is the contract between hardware and software: the set of instructions, registers, and data types a processor understands, separate from how any particular chip implements it.1

Overview

The ISA defines what a program can ask the CPU to do — the opcodes, the registers, how memory is addressed — so that machine code written for an ISA runs on any chip that implements it. The microarchitecture is the separate question of how a given chip carries those instructions out (pipelines, caches, execution units). ISAs split loosely into RISC (few, simple, fixed-length instructions) and CISC (more, richer instructions); the major families today are x86, ARM, and the open RISC-V.

Where it fits

The ISA is why a compiler must target a specific architecture, and why a binary built for x86 will not run on an ARM chip without recompilation or emulation. It builds on the von Neumann idea of a stored program the processor fetches and executes. For GopherTrunk this is a daily reality: Go cross-compiles the same source to x86 servers and to the ARM CPU in a Raspberry Pi capture node.

Sources

  1. Instruction set architecture — Wikipedia, on the ISA as the hardware/software interface. 

See also