Chapter
1 Introduction
program: a sequence of instructions describing
how to perform a certain task.
machine language:
a computer's primitive instructions form a language in which people can communicate with the computer.
structured computer
organization: structuring computers as a series of abstractions, each abstraction building on the one below it. In
this way, the complexity can be mastered and computer systems can be designed in a systematic, organized way.
1.1 Structured
Computer Organization
1.1.1 Languages,
Levels, and Virtual Machines
translation:
a method of executing a program where the replacement of instructions from one level to a new level. the computer executes
the new program with the new instructions.
interpretation: a
technique of executing a program where instructions of one level are input to the previous level. this technique does not
require first generating a new program.
interpreter: the program
that carries out the interpretation.
vitual machine: instead
of thinking of translation or interpretation; people can write programs for virtual machines just as though they really existed.
layers or levels:
the invention of a whole series of languages, each one more convenient than its predecessors, can go on indefinitely until
a suitable one is finally achieved. each language uses its predecessor as a basis, hence the name.
|
Virtual machine Mn, with machine language Ln
|
←Programs
in Ln are either interpreted by an interpreter running on a lower machine, or are translated to the machine language of a
lower machine
|
|
Virtual machine M3, with machine language L3
|
|
level 2
|
Virtual machine M2, with machine language L2
|
←Programs
in L2 are either interpreted by interpretres running on M1 or M0, or are translated to L1 or L0
|
|
Virtual machine M1, with machine language L1
|
←Programs
in L1 are either interpreted by an interpreter running on M0, or are translated to L0
|
|
Actual computer M0, with machine language L0
|
←
Programs in L0 can be directly executed by the electronic circuits
|
The machine languages of levels 1, 2, and 3 are numeric. Levels 2 and 3 are always interpreted. Levels 4, 5, and above
are usually, although not always, supported by translation.
The program that translates from level 3 to lower levels are called assemblers. Programs that
are translated to level 3 or level 4 by translators are called compilers.
1.1.2 Contemporary
Multilevel Machines
|
problem-oriented language level
|
|
|
|
translation (compiler)
|
|
|
|
|
|
|
|
translation (assembler)
|
|
|
|
operating system machine level
|
|
|
|
partial interpretation (operating system)
|
|
|
|
instruction set architecture level
|
|
|
|
interpretation (microprogram) or direct execution
|
|
|
|
|
|
|
|
|
-device level: at this level, the designer sees individual transistors, which are the lowest-level primitives for computer designers.
-digital logic level:
-gates: ea. gate has one or more digital inputs (1 or 0) and computes as output some simple functions of these inputs (and/or)
-register: 1-bit memories can be combined in groups of 16, 32, or 64 to form registers. each register can hold a single binary
number up to some maximum.
-microarchitecture level: at this level we see a collection of (typically) 8 to 32 registers that form a local memory and a circuit called
an ALU (Arithmetic Logic Unit) which is capable of performing simple arithmetic operations.
-data path: the registers
are connected to the ALU to form a data path over which the data flow. the basic operation of the datat path consists of selecting
one or two registers, having the ALU operate on them and storing the result stored back in some register.
-microprogram: controls
the operation of the data path.
-instruction set architecture
level (ISA level): instructions carried out interpretively by the mocroprogram or hardware execution
circuits. if a computer manufacturer provides two interpreters for one of its machines, interpreting two different ISA levels,
it will need to provide two "machine language" reference manuals, one for each interpreter.
-(hybrid level): also
in the ISA level; a set of new instructions; a different memory organization; ability to run two or more program concurrently,
and various other features. more variation exists between level 3 designs than between those either at level 1 or level 2.
-operating system machine level:
the new facilities added at level 3 are carried out by an interpreter running at level 2 which has been called an operating
system. those level 3 instructions that are identical to level 2's are carried out directly by the microprogram, not by the
operating system. i.e. some of the level 3 instructions are interpreted by the operating system and some are interpreted directly
by the microprogram.
-systems programmers:
those whom write interpreters and translators that are intended primarily to support the higher levels (above 3rd level);
a definite break from level 3 to level 4.
-assembler: the program
that performs the translation at level 2 and lower
-high-level languages:
level 5 programs; e.g. c, c++, java, lisp, and prolog; programs written in these languages are generally translated to level
3 or level 4 by translators known as compilers.
-compilers: translators
for high-level programs from level 5+ to level 3 and level 4; e.g. programs like java are usually first translated to an ISA-like
language called java byte code, which is then interpreted.
-architecture: the
set of data types, operations, and features of each level.
-computer architecture:
the study of how to design those parts of a computer system that are visible to the programers.
1.1.3 Evolution
of Multilevel Machines
-hardware: tangible
objects - electric circuits, memory, input/out devices, integrated circuits, printed circuit boards, cables, power supplies,
memories, printers
-software: consists of algorithms and their
computer representations, namely programs.
-"hardware is petrified software"
-Karen Panetta
The invention of microprogramming
-1940's: digital computers had
only two levels (ISA and digital logic level)
-1951, Maurice Wilkes, researcher @ University of Cambridge, suggested designing a three-level to simplify hardware; contained a built-in, unchangeable
interpreter (the microprogram)
-by 1970 the idea of having the
ISA level be interpreted by a microprogram, instead of directly by the electronics, was dominant.
the invention of the operating
system
operating system
macros or supervisor calls, now known as system call: new instructions at the ISA
level
hatch system:
op sys that read card decks and printed output on the line printer.
timesharing systems:
the migration of functionality
to microcode
the elimination of microprogramming
1.2 Milestones
in Computer Architecture
Year |
Name |
Made By |
Comments |
1834 |
Analytical Engine [1] |
Babbage [1] [2] [3] |
First attempt to build a
digital computer |
1936 |
Z1 |
Zuse |
First working relay calculating
machine |
1943 |
COLOSSUS |
British gov't |
First electronic computer
|
1944 |
Mark I |
Aiken |
First American general-purpose
computer |
1946 |
ENIAC I |
Eckert/Mauchley |
Modern computer history
starts here |
1949 |
EDSAC |
Wilkes |
First stored-program computer |
1951 |
Whirlwind I |
M.I.T. |
First real-time computer |
1952 |
IAS |
Von Neumann |
Most current machines use
this design |
1960 |
PDP-1 |
DEC |
First minicomputer (50 sold) |
1961 |
1401 [1] |
IBM |
Enormously popular small
business machine |
1962 |
7094 [1] |
IBM |
Dominated scientific computing
in the early 1960s |
1963 |
B5000 |
Burroughs |
First machine designed for
a high-level language |
1964 |
360 |
IBM |
First product line designed
as a family |
1964 |
6600 |
CDC |
First scientific supercomputer |
1965 |
PDP-8 |
DEC |
First mass-market minicomputer
(50,000 sold) |
1970 |
PDP-11 |
DEC |
Dominated minicomputers
in the 1970s |
1974 |
8080 |
Intel |
First general-purpose 8-bit
computer on a chip |
1974 |
CRAY-1 |
Cray
|
First vector supercomputer
on a chip |
1978 |
VAX |
DEC |
First 32-bit superminicomputer |
1981 |
IBM PC |
IBM |
Started the modern personal
computer era |
1981 |
Osborne-1 |
Osborne |
First portable computer |
1983 |
Lisa |
Apple |
First personal computer
with a GUI |
1985 |
386 |
Intel |
First 32-bit ancestor of
the Pentium line |
1985 |
MIPS |
MIPS |
First Commercial RISC machine |
1987 |
SPARC |
Sun |
First SPARC-based RISC workstation |
1990 |
RS6000 |
IBM |
First superscalar machine |
1992 |
Alpha |
DEC |
First 64-bit personal computer |
1993 |
Newton |
Apple |
First palmtop computer | pg. 14, Figure 1-4. Some milestones in the development of the
modern digital
1.2.1 The
Zeroth Generation – Mechanical Computers (1642-1945)
1.2.2 The
First Generation – Vacuum Tubes (1945-1955)
1.2.3 The
Second Generation – Transistors (1955 – 1965)
1.2.4 The
Third Generation – Integrated Circuits (1965-1980)
1.2.5 The
Fourth Generation – Very Large Scale Integration (1980-?)
1.2.6 The
Fifth Generation – Invisible Computers
1.3 The
Computer Zoo
1.3.1 Technological
and Economic Forces
1.3.2 The
Computer Spectrum
1.3.3 Disposable
Computers
1.3.4 Microcontrollers
1.3.5 Game
Computers
1.3.6 Personal
Computers
1.3.7 Servers
1.3.8 Collections
of Workstations
1.3.9 Mainframes
1.4 Example
Computer Families
1.4.1 Introduction
to the Pentium
1.4.2 Introduction
to the UltraSPARC III
1.4.3 Introduction
to the 8051
1.5 Metric
Units
1.6 Outline
of this book
|