Computer Science 516 Week 1 Lecture Notes. Course Overview Where does CS516 fit in your education?...

Post on 29-Dec-2015

212 views 0 download

Tags:

transcript

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!