Title: The Instruction Set Architecture
1The Instruction Set Architecture
2Hardware Software boundary
Java Program
Ada Program
C Program
Compiler
Compiler
Compiler
Instruction Set Architecture
Microcode
Hardware
3Data types
- The ISA defines the data types native to a
particular machine. Some examples of numeric
data types that may or may not be present on the
machine - Signed integer
- Unsigned integer
- Floating point
- Binary Coded Decimal (BCD) integers
- Packed numeric representations
- Java does not support unsigned, BCD, or packed
integer representations.
4Instruction Format
- The ISA defines the instruction format(s) for the
machine - Fixed or variable length instructions
- 0, 1, 2, or 3 operand instructions
- Addressing modes
- The Java Virtual Machine
- 9 instruction formats
- Variable length
- Little in the way of addressing modes immediate,
indexed
5Examples
- See handout of IBM System 360 ISA
- 5 instruction formats
- A long list of instructions
- Condition codes
- This is a CISC (Complex Instruction Set Computer)
Architecture
6Addressing modes
- Why more than one type?
- Short is good, but not sufficient for all
purposes - Immediate address the data is in the same
memory word as the instruction - Register the data is in one of the registers,
memory locations on the processor chip itself - Absolute specify the exact memory location in
use - Indexed Data is specified by a base and
displacement - Indirect address specified contains an address,
rather than data
7ISA and Microarchitecture
- So, you have this wonderful idea for improving
performance of your processor - Will all the existing software still run?
- Will the same operating system work?
- The microarchitecture separates the actual
hardware from the ISA. - Do the hardware improvements.
- Modify the microcode to match the existing ISA to
the new hardware. All existing applications
continue to run. New applications can take
advantage of new features.
8Language Levels
Higher level images of the computer
Spreadsheets, Word processors, databases
closer to the problem
C, Java, etc. designed for representing a
problem solution independent of the machine
ISA instruction set, addressing modes of a
specific line of computers
Microarchitecture bit settings that activate
specific data flows
Hardware understands voltages
9Access to the hardware
- Programs that can manipulate the hardware can be
dangerous. - Hardware is protected by providing several
classes of access rights. - Operating system has complete access
- User programs are limited.
- Users can access the hardware by invoking
operating system functions.
10Why many high level languages?
- Notice the position of the high level languages
in our chart - They exist to make it easier to express the
problem - Different application areas have different needs
in terms of expressing problems. - Ex. APL single instruction to multiply two
matrices
11Compiler
- A compiler is a program
- Its input is the text of a program in a
particular language, say c - The compiler translates the c code into the
instruction set understood by the computer - The translation is not a line by line
transliteration. Optimization.
12Instructions and Data
- Two distinct kinds of things
- The machine understands a finite subset of
possible bit patterns as instructions. - Data can take any bit pattern.
- Usually stored separately. Data accessed when an
instruction calls for it.
13Black boxes
- To reduce complexity, we sometimes show only the
input and output of an operation without the
details of how it gets done. We call it a black
box, because the content of the box is hidden.
a b
a, b
Turing machine that adds
We can combine the boxes and use them any way we
want.
14Turing Machines
- Mathematical model of a machine
- Turing was interested in understanding what could
be computed and what could not be computed. - The general purpose computers of today are
implementations of the Turing model - Thats why all computers can do the same things,
given enough time and memory because they are
all Turing machines.