Dream, Dream, Dream
Dreams transform into Thoughts
And Thoughts result in Actions
--- A. P. J. Abdul Kalam
The first steps
towards automating the mechanical calculator were
taken by Charles Babbage(1792-1871) with
the design of the special purpose Difference Engine
and the subsequent design of the more general purpose
Analytical Engine. The Analytical Engine was
controlled by a set of instructions entered as punched
holes on a set of metal cards. This idea was first
introduced by Jacquard(1752-1834) who designed weaving
looms in which the pattern woven depended upon a
set of holes punched in metal cards. Unfortunately
the technology of the time was not sufficiently
advanced to allow Babbage to complete the construction
of working machines.
However there are
several important ideas in the work of Babbage which
are still relevant to the design of modern computers.
These are:
The Analytical Engine had a memory
which could store 1000 numbers, thus allowing
intermediate results in a computation to be
stored and retrieved for use later.
The machine was controlled by entering a set
of instructions (a program) into it.
Changing the program meant the machine carried
out a different computational task, thus it
was a General Purpose Automatic Computer.
In solving a problem on the Analytical Engine
a finite set of instructions had to be produced
that if executed in turn would solve the problem.
Ada Augusta, Countess Lovelace developed many
such Algorithms for the Analytical Engine
and could be said to be the first computer programmer.
Speed was increased
by the development of Vacuum tube technology in
the 1940's and by Transistor technology in the 1960's
which also reduced size and power requirements.
From about 1965
until the present the circuits for many operations
have been incorporated into a single chip - integrated
Circuits, the level of integration steadily
increasing until now we have Very Large Scale
Integration and a complete computer processor
on a single chip. This has made possible the Personal
Computer.
This course describes
the functions and design of the various units of
digital computers that store and process information.
Most of the material is devoted to computer hardware
and computer architecture. Computer hardware is
the elctronic circuits and electromechnical equipment
that constitutes the computer. Computer architecture
is defined as the functional operation of the individual
hardware units in a acomputer system and the flow
of information among and the control of those units.