Instruction Set Architecture (ISA)

Processor design is strongly tied to the instruction set design.  There were many diverse computer designs and hence many different instruction set designs in the past.  However, as the technology progress, the analysis of the work load, the actual running programs, which affect the instruction set selection, lead to the converge of instruction set.  The most common type of instruction set architecture today belong to three classes : Load-Store architecture has 3-address format and mostly 32 bit instruction size.  This is the most popular among the current microprocessor design, including : HP PA-RISC, IBM RS/6000, SUN Sparc, MIPS R4000, DEC Alpha etc.  All data to/from memory must load/store through a register first.  The execution (operation) takes operands from registers and the result stored back to a register.  This instruction format simplifies the decoding and implementation.

Register-Memory architecture has 2-address format and has 16/32/64 bit instruction size.  An instruction can operate both on registers and with one of the operand in the memory.  This is the 'classical' ISA and is used by one of the longest lived ISA of today IBM S/360 and Intel x86 family of processors.

Register-plus-Memory architecture is the most flexible in the use of operands.  Operands and be register or memory and has byte-variable instruction size.  This flexibility comes with a prize, the complexity in implementation.  This type of architecture is typified by VAX family of computer in the era that there was the drive to provide the high level language semantic for the instruction set, so called 'close the gap' between high level language and machine language.

Computer System Structure

A computer system can be seen as many level of descriptions, from the applications; a computer system running applications, to the lowest level of electronic circuits.
applications
programs
operating system
instruction set          * family of computer concept
functional units
finite state machine   * mathematical description
logic gates
electronics
Application level is what a user typically see a computer system, running his/her application programs. An application is usually written in a computer language (programs) which used many system functions provided by the operating system.  An operating system is an abstraction layer that separate a user program from the underlying system dependent hardware and peripherals.

The level of traditional 'computer architecture' begins at instruction set.  An instruction set is what a programmer at the lowest level sees of a processor (programming in an assembly language).  In the past, intruction set design is at the very heart of a computer design, however as the present day processor designs converge, their instruction set become more similar than different.  The effort of the designer had turned to other important issues in computer design.  The family of computer concept promoted by IBM around 1970 which they proposed the concept of one 'instruction set' but different level of performance (for the price) for many models.  This concept is possible because of the research effort of IBM in using 'microprogram' as the method to implement a control unit.

Finite state machine description is a mathematical description of the 'behaviour of the system'.  It is becoming an important tool for verification of the correct behaviour of the hardware during designing of a processor.  As a processor becomes more and more complex, a mathematical tool is required in order to quarantee the correct  working behaviour since an exhausive testing is impossible and partial testing is expensive (but still indispensible).  Presently (2000) it is estimated that more than half of the cost in developing a processor is spent on verifying that the design works according to its specification.

The lower level of gates and electronics describe the logical and actual circuit of  a computer system and belongs to the real of an electrical engineer.

Description of an architecture

There are many notation systems,  ISP-PMS (Bell and Newell)   instruction set processor - processor memory,  RTL (register transfer language), even IPL like notation for behavioural description (Brooks and Bauuw).  We adopt 3 types of notation to describe an architecture :
  1. Instruction set  (ISP)
  2. Structural chart  (a diagram of processor organization)
  3. Behavioural description (RTL)  which will be called 'micro steps' in this class