Page 22 - 4130
P. 22
computer buses and switches; memory controllers and hierarchies;
data processing other than the CPU, such as direct memory access
(DMA); miscellaneous issues such as virtualization, multiprocessing
and software features.
An instruction set architecture (ISA) is the interface between
the computer's software and hardware. Computers do not understand
high level languages. A processor only understands instructions
encoded in some numerical fashion, usually as binary numbers.
Software tools, such as compilers, translate high level languages,
such as C into instructions.
The ISA of a computer is usually described in a small book or
pamphlet, which describes how the instructions are encoded. Also, it
may define short (vaguely) mnemonic names for the instructions.
The names can be recognized by a software development tool called
an assembler. An assembler is a computer program that translates a
human-readable form of the ISA into a computer-readable form.
Disassemblers are also widely available, usually in debuggers,
software programs to isolate and correct malfunctions in binary
computer programs.
ISAs vary in quality and completeness. A good ISA
compromises between programmer convenience (more operations
can be better), cost of the computer to interpret the instructions
(cheaper is better), speed of the computer (faster is better), and size
of the code (smaller is better).
Computer organization helps optimize performance-based
products. For example, software engineers need to know the
processing ability of processors. They may need to optimize software
in order to gain the most performance at the least expense. This can
require quite detailed analysis of the computer organization. For
example, in a multimedia decoder, the designers might need to
arrange for most data to be processed in the fastest data path and the
various components are assumed to be in place and task is to
investigate the organizational structure to verify the computer parts
operates.
20