Instruction set architecture

From Citizendium
Revision as of 21:11, 12 May 2007 by imported>Pat Palmer (revision of it all)
Jump to navigation Jump to search

The instruction set architecture (ISA) is the formal specification of how a particular kind of computer may be programmed. An ISA completely defines the behavior expected of the machine, and its definition can be used to emulate a machine in software. The ISA describes everything that can be known about the machine language (the native commands used by a particular processor design).

An ISA usually includes the following items:

  • a precise description of all the hardware data types (also called native data types)
  • a list of machine instructions, also called opcodes (operation codes)
  • descriptions of any registers
  • allowed memory addressing modes
  • memory management modes
  • interrupts
  • exception handling
  • all about external I/O

Because the instruction set architecture of a processor is fundamental to its interface and usage, it is often used as a classification of the "type" of processor, or CPU. For example, a "PowerPC" processor uses some variant of the PowerPC ISA. Some processors, like the Intel Itanium, can actually interpret instructions for more than one ISA; however, this is often accomplished by software rather than by designing the hardware to directly support both interfaces. (See emulator.)