first general purpose computer

Download Report

Transcript first general purpose computer

CPSC 181
A Brief History of Computer Science
Spring 2010
Prof. Jennifer Welch
2
Sources
• Schneider and Gersting, An Invitation to Computer Science
▫ primary source
• Slides from Prof. John Keyser
• American University’s Computing History Museum
▫ http://www.computinghistorymuseum.org/
• Virginia Tech’s History of Computing website:
▫ http://ei.cs.vt.edu/~history
• Computer History Museum
▫ http://www.computerhistory.org/
• IEEE Annals of the History of Computing (Journal)
▫ http://www.computer.org/portal/site/annals/index.jsp
• Andrew Hodges’ website about Alan Turing
▫ http://www.turing.org.uk/turing/index.html
3
Early Mathematics & Computation
• Babylonians and Egyptians, > 3000 yrs ago
▫ numerical methods for generating tables of square
roots, multiplication, trig
▫ Applications: navigation, agriculture, taxation
• Greeks, > 3000 yrs ago
▫ geometry and logic
• Indians, ~ 600 AD
▫ started using placeholders and a decimal number
system, similar to modern
▫ idea spread to Middle East
• Arabs and Persians ~ 800 AD
▫ algorithms
4
A Famous Arab Mathematician
Abu Jafar Mohammed Ibn Musa Al-Khowarizmi
• In early 800s AD
• Worked at center of learning in Baghdad
• Wrote book: Hisab Al Jabr Wal-Mugabalah
▫ Described how to compute several practical
problems, including linear and quadratic
equations
▫ Translated into Latin, spread throughout
Europe
• Solidified number system in use now:
“Arabic numerals”
• Al Jabr gives us the word “algebra”
• Al-Khowarizmi gives us the word
“algorithm”
fig. from Donald Knuth's website
5
Early Computing Devices
• Abacus
▫ About 3000 BC
▫ Different types, developed over time
 Common wire/bead: about 500 BC
▫ Some still in use today
fig from
http://www.ee.ryerson.ca/~elf/abacus
• John Napier’s Bones
▫ 1617: Sticks with numbers on them
▫ Use to do 4 basic arithmetic operations
• William Oughtred’s Slide Rule
▫ 1622: Sticks with logarithmic scale, slide along
▫ Much more complex calculations
▫ Used well into 20th century (replaced by handheld calculator)
6
More Early Computing Devices
• Blaise Pascal
▫ 1642: First numerical calculating
machine (addition and
subtraction)
• Gottfried Leibniz
▫ 1673: 4-function mechanical
calculator (addition,
subtractions, multiplication,
division)
fig from
http://www.tcf.ua.edu/AZ/ITHistoryOutline.htm
• Used cogs and gears
• Showed mechanization can simplify and speed
up numerical calculations
7
Are These Devices Computers?
• Not considered general-purpose computers
• They lack
▫ memory
▫ ability to be programmed
8
First Programmable Device with Memory
• A loom!
• Used to weave cloth with patterns
• Invented by Joseph Jacquard,
France, 1804
• Automated loom using punched
cards to create pattern
▫ hole in card at a certain place causes
change in the weave at
corresponding place in the fabric fig from Wikipedia, Jacquard loom entry
9
Jacquard Loom
• Memory: the cards
• Programmable: change the cards
• Capture human expertise in a
machine
• Target of Luddite movement
▫ riots against Industrial Revolution
▫ threatened craft guilds
fig from britannica.com
10
Charles Babbage & Difference Engine
• England, 1822-1830: Designed and
worked on a “Difference Engine” for
calculations
▫ Compute tables of logarithms
▫ Never finished it: current
manufacturing technology not able to
provide required precision in cogs and
gears
▫ Others later built one: 7 feet by 11 feet,
3 tons, 4000 moving parts
figs from cbi.umn.edu/about/babbage.html
11
Charles Babbage & Analytical Engine
• 1833: Designed the “Analytical Engine”
▫ Could not get funding, since never finished first
machine, but fully designed
 to be steam-powered
▫ This was the first general purpose computer!
• Separate storage from calculation
• Familiar parts:
▫
▫
▫
▫
mill <=> ALU
store <=> memory
operator <=> control unit
output <=> input/output
• Used punched cards
fig from
www.sciencemuseum.org.uk
12
Ada Lovelace
• Augusta Ada Byron, Countess of
Lovelace
▫ Daughter of poet Lord Byron
▫ Friend of Charles Babbage
• Translated, edited, and commented
on document describing Babbage’s
Analytical Engine
fig from women.cs.cmu.edu/ada
• Described its potential as a general purpose computer
– Wrote “programs” that could be run on it. As a result, she is
often considered the world’s first computer programmer.
– Wrote about potential uses, even for computer music
13
Following Babbage
• General purpose computing waited
▫ Instead, several different specific devices
• Most computational devices still mechanical
▫ Typewriters (1868)
▫ Adding machines (1875) and calculators
▫ Cash registers (1879)
14
U.S. Census
• Taken every 10 years
• By late 1800s, was becoming more difficult
▫ 1880 census not tabulated until 1888
▫ Serious doubt that 1890 census could be finished before
time for following census
▫ Competition held to develop automatic enumeration and
tabulation of census data
• A fundamental need for “large-scale” computing
15
Herman Hollerith
• Herman Hollerith developed
tabulating machine
▫ Developed machines for
encoding information on
punched cards
▫ Cards could be sorted and
tabulated
• 1890 census completed in 2
years with Hollerith’s
machines
▫ Also saved millions of dollars
fig from www.columbia.edu/acis/
history/census-tabulator.html
16
Further Development
• Work continued on machines to add, tabulate, record.
▫ Charles Flint: Computing, Tabulating, Recording (CTR) company,
followed up on Hollerith’s work.
▫ Thomas J. Watson renames CTR to International Business Machines
(IBM) in 1924.
• Individual machines were created for each stage of a process
▫ For example, separate machines to count, sort.
▫ Most machines encoded information on punched cards.
fig from www-03.ibm.com/ibm/history/
17
Encoding
Information
fig from www.columbia.edu/acis/history/censustabulator.html
• Punched cards were used to store information
▫
▫
▫
▫
Jacquard’s Loom
Babbage’s machines
Hollerith’s tabulating machines
IBM machines
• Punched cards and punched tape seen as a way
of achieving compatibility, transfer of data.
18
Impact of World War II
• Applications of the 1940's:
▫ ballistics tables
▫ troop deployment data
▫ secret codes
fig from www.diggerhistory.info
• Several research projects, funded by military,
focused on developing computers
o
on both sides
19
Howard Aiken & MARK I (ASCC)
• Funded by Navy and IBM, at Harvard
• 1930's and 40's
• general-purpose programmable
computer
• used relays, magnets and gears
• used binary values (0/1) instead of
decimal (0 to 9)
• used vacuum tubes and electric
current (on/off) instead of 10toothed gears
• memory: 72 numbers
• speed: 23-digit multiplication in 4
seconds
fig from www-03.ibm.com/ibm/history/
20
Grace Murray Hopper
• Joined Naval Reserve in 1943
▫ As Lieutenant, became one of the first programmers of the Mark I
▫ Eventually reached rank of Admiral
• Noted difficulty of programming in machine language
▫ Wanted way of specifying programming more naturally
▫ Created the first compiler, A-O
▫ Subsequently created other compilers, became strong proponent of
compilers/programming languages
▫ Developed programming languages, notably COBOL (1959)
fig from cs.vassar.edu/history/hopper
fig from computerhistory.org
21
ENIAC
• "Electronic Numerical Integrator and
Computer"
• 1940's
• Motivating application: calculate firing
tables (how to aim gun depending on
distance, wind speed, temp, etc.)
• Funded by Army at Univ. of Penn.
• John Mauchly & Presper Eckert lead
designers
• First fully electronic general-purpose
computer
• Vacuum-tube based
• Required rewiring to change program
originally
• 100 feet long, 10 feet high, 30 tons
• 1000 times faster than Mark I
figs from
www.library.upenn.edu/exhibits/rbm/
mauchly/jwm8b
22
Other War-Time Projects
• Z1: Germany, Konrad Zuse
▫ destroyed during WWII before completed
• ABC: Iowa State, John Atanasoff & Clifford Berry
▫ solve systems of linear equations
• Colossus: England, Alan Turing
▫ cracked German Enigma code
▫ shrouded in secrecy until 1970's
fig from
http://en.wikipedia.org/wiki/Atanasoff
–Berry_Computer
23
Aspect Still Missing…
• All these projects still missing a key feature of
modern computers
• Programming these machines was done externally
with
▫ wires
▫ connectors
▫ plugboards
• Memory stored only data, not instructions
• To change the program, need to rewire
▫ Ex: 6000 switches on ENIAC
24
Von Neumann Architecture
• John Von Neumann, mathematician,
physicist, chemist, computer
scientist,… at Princeton
• worked on ENIAC
• realized shortcoming
• Key idea:
fig from mathdl.maa.org
▫ encode instructions as binary values and
store in memory along with data
▫ To change program, rewrite sequence of
instructions
fig from
cs.cmu.edu/ref/pgss/lecture/11
25
Where Did the Idea Come From?
• Andrew Hodges credits Alan Turing’s
work on the concept of the Universal
Turing Machine
• Notion of one machine for all tasks,
although it seems obvious to us now,
was not at all obvious:
fig from
http://www.turingarchive.o
wse.php/K/7/9-16
“If it should turn out that the basic logics of a machine
designed for the numerical solution of differential
equations coincide with the logics of a machine intended to
make bills for a department store, I would regard this as the
most amazing coincidence that I have ever encountered.”
Howard Aiken, 1956
26
Storing Programs
• EDVAC – Electronic Discrete Variable
Automated Calculator
▫
▫
▫
▫
John von Neumann described
UPenn, 1950
Designed before ENIAC operational
U.S. Army Photo of EDVAC
became commercial UNIVAC I, bought by Census
Bureau
• EDSAC – Electronic Delay Storage Automated
Calculator
▫ Maurice Wilkes, Cambridge
▫ Based on EDVAC ideas, but completed first (1949)
27
The Modern Era, 1950 - Present
• Changes more evolutionary than revolutionary
• Focused on making computers
▫
▫
▫
▫
▫
faster
smaller
cheaper
more reliable
easier to use
• Conventionally divided into rough "generations"
28
First Generation, 1950-1959
•
•
•
•
•
First commercial computers
First symbolic programming languages
binary arithmetic
vacuum tubes for storage
punched card I/O
1 + 1 = 10
29
Second Generation, 1959-1965
• transistors and core memories
▫ reduced size and cost, increased reliability
• first disks for mass storage
• first high-level programming languages and
programmers
▫ FORTRAN, COBOL
• first operating systems
C AREA OF TRIANGLE
READ INPUT TAPE 5, 501, IA, IB, IC
501 FORMAT (3I5)
C CHECK THAT SUM OF 2 SIDES IS > THIRD SIDE
IF (IA) 777, 777, 701
701 IF (IB) 777, 777, 702
702 IF (IC) 777, 777, 703
703 IF (IA+IB-IC) 777, 777, 704
...
30
Third Generation, 1965-1975
• Integrated circuits
▫ components are photographically etched onto pieces of
silicon
▫ further reduction in size and cost
• first mini-computers
▫ desk-sized instead of room-sized
• time-shared operating systems
• appearance of software industry
• introduction of computing standards for
compatibility
31
Fourth Generation, 1975-1985
• Very large scale integrated circuits (VLSI)
▫ complete system on one circuit board
▫ further reduction in size and cost, increased reliability
• first micro-computer
▫ desk-top machine, instead of desk-sized
• further growth of software industry
• computer networks
• graphical user interfaces
32
Fifth Generation, 1985 - ?
• Ultra-large scale integrated circuits (ULSI)
▫ more than 1,000,000 elements on one chip
•
•
•
•
•
•
•
•
super computers and parallel processors
laptops and hand-held computers
wireless computing
on-line terabyte storage devices
global networks and distributed systems
artificial intelligence
hi-res graphics, visualization, virtual reality
multimedia user interfaces
33
The Future?
• Speed of light limitation suggests that it won't be
possible to continue the exponential increases in
speed with a single processor
▫ von Neumann bottleneck of sequentiality
• Solution is concurrency, doing more than one thing
at a time
▫ parallel computing, distributed computing
▫ latest buzzword is "multicore"
▫ challenge is how to design algorithms to exploit the
multiple cores