Upload
emmeline-garrison
View
216
Download
0
Tags:
Embed Size (px)
Citation preview
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
regardeddesign
• 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!