Instruction Set Architecture (ISA)

From COMP15212 Wiki
Revision as of 09:24, 28 June 2019 by pc>Yuron
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This is for background information; it does not bear intimately on the principles of operating systems. For some people it may help to make connections; if it doesn’t you can happily ignore it.

An “Instruction Set Architecture” (ISA) is the view of the computer’s hardware as visible to a software user; the appropriate software users are machine-language programmers and the writers of compilers … and operating systems.

The ISA will define the processor’s registers (and so forth) and the machine instructions which it can execute. It may extend to items like the MMU too. However it will not cover the various (in some sense, interchangeable) peripheral devices in the computer as a whole.


There are many ISAs although only a few particularly common ones.

  • Intel x86 has dominated the desktop and server market for some years. This has evolved and expanded many times, so it is really a family of ISAs with the later devices able to support earlier versions for backward-compatibility.
  • ARM currently dominates the ‘portable’ market. ARM has also evolved over the years and supports some backward compatibility – although less vigorously with the hardware.
  • As an example of another common architecture, the Atmel AVR – as used in embedded controllers such as the Arduino – is aimed at small, embedded systems. However these are rather too simple to run the sort of ‘full-blown’ operating systems which are our principle focus.

Often there are a variety of different products which share the same ISA, as designs evolve or for reasons such as trading performance with battery-life. These are of fairly small concern, although an O.S. may have to determine exactly what it is running on and accommodate differences so the applications don’t have to.