Computer Science 516

advertisement
Computer Science 516
Week 1 Lecture Notes
Course Overview
• Where does CS516 fit in your education?
• ACM standard curriculum
• Transfers to:
– CSUN – Comp 122, 122L
– CSU Channel Islands – Comp 162
– U C system: UCLA, UC San Diego, UC Santa Cruz,
UC Davis
– UC system: UCSB, UC Irvine (with CS546)
Course Overview
• Student learning outcomes
– Understanding of computer architecture, design,
tradeoffs, performance, other factors
– Be able to write simple inline assembler routines
within C language programs
• - Administrative
– See instructors web page at
faculty.piercecollege.edu/murphyh
Some History
•
•
•
•
•
•
•
Babylonian/Sumerian/Arabic number systems
Concept of zero
Abacus – China
Western European computation begins
Blaise Pascal – mechanical calculator
Wilhelm Liebnitz – enhanced calculator
Jacqard – card cloth weaving patterns
English Efforts – Charles Babbage
• England needs a Navy to survive
• Navies and merchant fleets need to navigate
• Astrolabe and sextant navigation required
large tables or complex mathematics
• Royal Astronomical Society awarded grant for
a machine which would calculate the
navigational tables
• Award won by Charles Babbage
Charles Babbage
• Difference Engine
– automated mechanical calculator
– Circa 1830s
– Generally successful
– Led to further efforts…
The Analytical Engine
•
•
•
•
•
•
First programmable computer
Mechanical
Never completed
Ada Augusta, Countess Lovelace
Lord Byron’s daughter
Worked with Babbage on designing
computation steps
• World’s first computer programmer
George Boole
•
•
•
•
•
Developed “Propositional Calculus” in 1860s
Basically binary algebra
C++ bool type named for him
Proposed many binary operators
Theoretical foundation for digital electronics
US Computation
• Not much interest due to Civil War
• First postwar census – 1870 – was widely
critisized
• Census is important, determines how many
Congress members a state has
• Led to automation proposals
Herman Hollerith
• MIT Professor
• Developed tabulating system using cards
based upon Jacquard’s system
• Electro-mechanical
• Used in 1880 census – generally successful
• Led to wide acceptance in large companies of
the era, e.g. railroads
Hollerith Progression
• Not a businessman
• Expanded into time clocks, weight scales, etc.
• In 1914, hired NCR’s star salesman, Thomas J.
Watson
• Watson changed name to International
Business Machines
• Very successful in the 20th century
– Ongoing antitrust problems
1930s – Genesis of Computers
• Atanasoff – Iowa State University
• Developed first analog computer
• In contentious court cases regarding who
invented the computer (and should have
patent rights), was declared the inventor of
the computer by the US Supreme Court
1940s – Wartime Progress
•
•
•
•
•
Germany – Konrad Zuse
Destroyed in bombing raids
Poland – broke German encryption
Evacuated to France and then to UK
Worked with English mathematicians to
decode German messages
Battle Of The Atlantic
• Most crucial for Great Britain
• Signals intelligence and codebreaking were
key to British survival
• Alan Turing (see book description)
• See movie: “The Imitation Game”
• Numerous books on Enigma, codebreaking,
Ultra, et cetera
Collossus – first electronic computer
Battle Of Midway
• High point of Japanese military expansion
• Historic American victory
• Depended upon breaking Japanese Purple
code
• Accomplished with IBM tab machines in Pearl
Harbor
• Some details still classified
Other US Efforts
•
•
•
•
•
•
•
Mark I – Harvard
Electromechanical computer
AT&T
NCR
University of Pennsylvania – EDVAC
First electronic computer?
Eckert & Mauchly
John Von Neumann
• See book for details of his life
• Atomic bomb research
• Developed seminal model of computers with
Herman Goldstine
• Game theory, Mutual Assured Destruction
• - Harvard vs. Princeton models
• - Stack machines
Von Neumann Architecture
Postwar
• Thomas J. Watson – “I think there’s a world
market for about five computers” - 1945
• Univac bought Eckert & Mauchly, developed
Univac I
• Early sales – Bureau of the Census
• Everybody decided to start making computers!
• Bendix, Burroughs, GE, Honeywell, NCR,
Philco, RCA, Singer…can’t list them all
Major Computers of the 1950s
• IBM RAMAC – first disk drive – 1956
• IBM 650 – tab machine with a rotating drum
memory
• IBM 704/709 – scientific computers
• IBM 7000 series, 7094 – large scientific
computers
• Univac 1103
• Control Data 160A
IBM System/360
•
•
•
•
•
Landmark architectural change
8-bit characters
32-bit integers (also 16-bit)
16 general purpose registers
Most important: fully program compatible
from smallest model to largest – no
reprogramming when a larger machine was
bought!
A Little Local History
•
•
•
•
Pierce College first computer – IBM 1620
8K storage
Memory-memory design
Room 1412
CSUN Computers
• GE-225 – introductory programming
• 20-bit word
CSUN Time Sharing
• GE-415
• 24-bit word – not compatible with GE-225
• Teletype ASR33
time sharing
terminals
CSUN Progression
• CDC 3170
• 24-bit word
• 32K memory
Pierce Computer Science
• Xerox 530
• Remote Job
Entry
• Room 1507
Pierce Computer Science Advances
• Prime 750
• 16-bit
minicomputer
Pierce Computer Science - VAX
• Digital Equipment Corporation VAX
• Highly
regarded
design
• 32-bit words
• 2GB memory
model
UCLA Health Sciences
• IBM 360 model 91
• Landmark
design
• Instruction
Pipeline
The 1970s
•
•
•
•
Integrated circuits
Intel 4004 – first microprocessor – 4 bit
Many other competitors in the 1970s
6800, 6502, Z-80, et cetera
IBM PC
• Intel 8086 – 16-bit design
• IBM used 8-bit data bus version, 8088, to
reduce costs
• Landmark design due to making details public,
allowing many vendors to make peripherals
1980s
• Reduced Instruction Set Computers (RISC)
• Used for engineering workstations
–
–
–
–
–
–
MIPS
Sun
Silicon Graphics
Apollo (bought by HP)
IBM RS/6000
DEC Alpha
• As a class, these ate into DEC’s market share
• Established new market for internet servers
CS516 Coverage
• - Basic single-address computers e.g. CDC
3170
• - IBM 360
• - CDC 6600
• - DEC VAX, Motorola 68000
• - Intel 8086 and successors
• - RISC (SPARC, MIPS, ARM)
Assembly Language
• Once the primary focus of this type of course
• Less essential in 2000s
• Less stressed in many Computer Science
degree programs
When to use Assembly Language
• Speed – when compiler cannot generate
efficient code
• Speed depends upon the algorithm, not just
the language
• Size – When compiler generated code or data
is too big
• Data structure design is key, not just use of
assembly
Operating System Interface
• Use assembly language when operating
system interfaces are not supported by high
level languages
– Much rarer today!
– IBM mainframe is major example
• Use assembly for direct hardware interface
– Much rarer today!
Download