A Galois Theory of Quantum Error Correcting Codes

advertisement
Computer Architecture
CPSC 321
Andreas Klappenecker
Course Contents
Course Contents
•
•
•
•
•
•
History
Organization of a computer
Assembly language
Design of a computer
Verilog
Future architectures
Syllabus
• Two midterm exams 50%
• Assignments and quizzes 20%
• Projects 30%
Early History
One of the first calculation tools was the abacus, presumably
invented sometime between 1000-500 B.C.
Early History
• around 1600, John Napier invents the Napier bones, a
tool that helps in calculations
(photo courtesy of IBM)
• Napier also invents the logarithm
• 1621, William Oughtred invents the slide rule that
exploit Napier’s logarithms to assist in calculations
Early History
• 1625 Wilhelm Schickard invents a mechanical device to add,
subtract, multiply and divide numbers
• 1640 Blaise Pascal invents his Arithmetic Machine (which could
only add)
(photo courtesy of IBM)
• 1671 Wilhelm von Leibniz invents the Step Reckoner, a device
that allows to perform additions, subtractions, multiplications,
divisions, and evaluation of square roots (by stepped additions)
Early History
• Charles Babbage proposes in 1822 a machine to
calculate tables for logarithms and trigonometric
functions, called the Difference Engine.
• Before completing the machine, he invents in 1833 the
more sophisticated Analytic Engine that uses Jacquard
punch cards to control the arithmetic calculations
• The machine is programmable, has storage capabilities, and
control flow mechanisms – it is a general purpose computer.
• The Analytic Engine was never completed.
• Augusta Ada Lovelace writes the first program for the
Analytical Engine (to calculate Bernoulli numbers).
Some consider her as the first programmer.
Computing Needs?
The calculation devices weren’t a
commercial success – pencil and paper was
cheap and fast enough.
The 1890 US census demanded larger data
processing power, because more questions
were asked.
Hermann Hollerith provided the data
processing equipment.
Hollerith’s company later became a core
part of IBM.
(Photo courtesy of the IEEE Computer Society)
Analogue Computing Rules! (Oops?)
The digital computing methods of Babbage and Hollerith did not
lead directly to the modern computer.
In fact, analogue computing devices were much more common in
1900-1930, especially for scientific computations.
In 1930, Vannevar Bush (MIT) constructed a large differential
analyzer that was capable of integration and differentiation.
The common conception was that analogue computing has many
advantages over digital computation (and one finds constructions
of analogue computers until the 1960’s).
Konrad Zuse
Konrad Zuse next to
the replica of his Z1
computer
(Technisches Museum,
Munich).
• In 1935, Konrad Zuse designs a special purpose electromechanical computer, the Z1. He constructs the computer in
1936-1938 in the living room of his parents in Berlin, Germany.
Z1
The Z1 computer was clocked at 1 Hz. The memory consists of 64
words with 22 bits. Input and output is done by a punch tape
reader and a punch tape writer.
The computer has two registers with 22 bits and is able to
perform additions and subtractions (it is not a general purpose
computer).
Z3
(Art and photo courtesy of Horst Zuse)
Zuse constructed the Z3, a fully programmable general purpose
computer, in 1939-1941. Remarkably, it contained a binary floating
point arithmetic. It was clocked at 5.33 Hz, based on relays, and
had 64 words of 22 bits.
The small memory did not allow for storage of the program.
World War II
• Remarkably, Zuse did not profit from the
war. In fact, his funding was pulled because it
“seemed unlikely that his computer will be
finished before the war ends”.
• Computational methods were relevant to
break ciphers
• Bletchley Park (GB) developed and used devices to
crack crypts of the German Enigma cipher
• Calculating tables for projectile trajectories
• Eckert and Mauchly (US) got funding to develop a
computer to calculate tables
Atanasoff
John Vincent Atanasoff and his graduate student Clifford Berry
developed in 1938-1942 a special purpose computer that was able
to solve systems of linear equations.
The machine was not programmable, but it performed all
calculations with electronics and avoided electro-mechanical
elements such as relays.
(Photo and artwork
courtesy of Iowa
State University)
It is not a general
purpose computer,
but Iowa State
University tries to
paint a different
picture.
Mark 1 Colossus
(picture courtesy of
Wikipedia encyclopedia)
• 1943-44 Mark 1 Colossus
•
•
•
•
memory based on vacuum tubes
special purpose machine, not Turing complete
but it had some flexibility
used in Bletchley Park to break the fish cipher
ENIAC
• All-electronic general purpose
computer based on vacuum tubes
• Intended to calculate ballistic
firing tables
• Designed by Presper Eckert and
John Mauchly
• Designed and constructed during
1943-1946
• Programming by rewiring
• 5000 additions per second, 357
multiplications per second, and
38 divisions per second
• Decimal, not binary!
(photo courtesy of the U.S. army)
EDVAC
• It was the first stored program computer ever designed
• (but other stored program computers were completed earlier,
namely an experimental machine at Manchester University,
EDSAC at Cambridge University, an Australian machine )
• The stored program design is usually attributed to von
Neumann, although Zuse formulate this concept already in 1936
in a patent applications (patent rejected).
• Eckert and Mauchly were joined by von Neumann in the design
of EDVAC.
• First draft of EDVAC by von Neumann:
•
http://www.virtualtravelog.net/entries/2003-08-TheFirstDraft.pdf
Where are we headed?
• In general, a computer consists of the
following components:
Datapath
Memory
Control
Input
Output
Further Reading
• Scott McCartney: Eniac, Berkeley
Books, New York, 1999
• von Neumann’s design of EDVAC
• Patterson, Hennessy, 2nd edition,
Chapter 1.
Download