Computer Systems A Programmer's Perspective Second Edition
We have seen that a processor must execute a sequence of instructions,
where each instruction performs some primitive operation, such as adding
two numbers. An instruction is encoded in binary form as a sequence of 1 or more bytes.
The instructions supported by a particular processor and their byte-level encodings
are known as its instruction-set architecture (ISA). Different
“families” of processors, such as Intel IA32, IBM/Freescale PowerPC, and the
ARM processor family have different ISAs. A program compiled for one type
of machine will not run on another. On the other hand, there are many different
models of processors within a single family. Each manufacturer produces proces-
sors of ever-growing performance and complexity, but the different models remain
compatible at the ISA level. Popular families, such as IA32, have processors sup-
plied by multiple manufacturers. Thus, the ISA provides a conceptual layer of
abstraction between compiler writers, who need only know what instructions are
permitted and how they are encoded, and processor designers, who must build
machines that execute those instructions.