Chronological History of Pre and Early Developments Computer Technology “Foreign” Milestones American Milestones 500 B. C. Abacus 1621 Slide Rule Built from two types of components plus interconnection: 1623 Schickard’s Adding Machine (Germany) Gates: 1642 Pascal’s Adding Machine (France) A B OR 1673 Leibniz Calculator (Germany) Binary Binary Output F F F 1804 Jacquard Loom and Punch Cards Inputs Function F T T 1822 Babbage’s Difference & T F T (England) T T T 1850 George Boole’s Boolean Algebra (Irish) Memory Cells: 1890 Census and Tabulating Machines One Bit 1924 IBM Input Output 1937 Alan Turing and the Turing 1937 John Atanasoff and the ABC Storage Machine Computer (ISU) 1938 Konrad Zuse’s Z-series Read/Write control singal (Germany) 1939 Harvard I 1943 COLOSSUS (England) Circuit - collection of gates and/or memory cells to 1945 ENIAC Mauchly and Eckert perform some function 1946 Manchester Mark I (England) (First Stored-Program Computer) 1947 Transistor Bell Labs EDSAC 1949 (England) . 1951 UNIVAC Mauchly/Eckert Sperry Rand Corp wrote first compiler for it

1 2

Computer Generations Computer Generations (continued) 1st Generation - vacuum tubes with wires for 3rd Generation - Small-scale integrated circuits (ICs) interconnection (one gate per ) Many gates on same wafer of silicon (chip) and connected to form circuits. Examples: ENIAC - 1943-46 Army’s Ballistics Lab Advantages: Mauchly/Eckert (U. of Penn.) 1st general-purpose 1) cheaper since the cost per chip the same, but fewer electronic digital computer needed since more powerful 30 tons, 15,000 sq. ft., 18,000 vacuum tubes, 140 KW, 2) denser chipsd shorter connections d faster 5000 adds/sec 3) smaller computersd used in more places Programmed with wires and 4) reduced power and cooling consumption 1945-52 - IAS (Princeton) used 5) interconnections on ICs more reliable that stored-program concept interconnections between ICs

2nd Generation - transistors - solid state device made 4th Generation - Large-scale ICs - microprocessor from silicon, but single gate each Enough gates per chip to implement whole CPU 10,000 to 100,000 transistors soldered to circuit board Intel 4004 (1971) - 1st Advantages: improved speed, reliability, size, power Intel 8080 (1974) - lst general-purpose microprocessor consumption Some system software: early OS and High-level programming languages

3 4 Moore’s Law von Neumann Model: Stored-Program Concept CPU/Processor System Bus Memory (Addresses) PSW-process status word Operating 0 Control Gordon Moore - Intel cofounder (1965) System 1 Unit Area 2 3 . .

Predicted that gate density would double every year Stack ALU (+ into near future. ,-,*, etc)

Unused A Program's Address Space R0

This held true until early 1970s when the rate slowed to Heap doubling every 18 months. R1 R2

5 (X) Global Dat a Register File 3 (Y) 0 (SUM)

R31 s

s

PC, program counter Program Area u Load R3, Y

u

s u B

B

l Load R2, X

B s

o

s

a r

e

t t Add R1,R2,R3

r

a n

d o

IR, instruction register D

d Store R1, SUM C

A

MAR . .

MDR I/O Controller Disk

Instruction/Machine Cycle of stored-program computer - repeat all day 1. Fetch Instruction - read instruction pointed at by the program counter (PC) from memory into Instr. Reg. (IR) 2. Decode Instruction - figure out what kind of instruction was read 3. Fetch Operands - get operand values from the memory or registers 4. Execute Instruction - do some operation with the operands to get some result 5. Write Result - put the result into a register or in a memory location (Note: Sometime during the above steps, the PC is updated to point to the next instruction.) 5 6

Today’s stored-program have the Programming Languages following characteristics: –Three hardware systems: Machine Assembly High-Level •A (CPU) Language Language Languages Assembler Compiler •A main memory system 10100100 Load R3, Y •An I/O system 10011011 Load R2, X SUM = X+Y –The capacity to carry out sequential instruction 00110011 Add R1,R2,R3 processing. 10011100 Store R1, SUM –A single data path between the CPU and main memory. •This single path is known as the von Neumann Instruction Set Architecture (ISA)/Family of Computers Several implementation of computer can run the same bottleneck . assembly/machine language with different cost/performance •Register File - store a small amount of data in the ratios. CPU close to the computation circuits Examples: •Level 1 (L1) and Level 2 (L2) caches on CPU store IBM 700/7000 Series (overhead) larger amounts of data and instruction on CPU Intel 486, Pentium I, II, III, IV (overhead)

Advantages of High-Level Programming Languages: 1) Portability - computer independent 2) Productivity - more and better software in less time 3) Application specific languages

7 8

0 0 0 2 Computer Networking 100M?

1962 - RAND (Research and Development a nonprofit NCSAMosaic Gopher

0 1 9 institution) and Paul Baran begin research into packet 9 switching. Internet/WWW

5th 200K

Ring Hypercard MS Windows MS

1965 - ARPA - Advanced Research Projects Agency Token Comm. e-mail Comm.

Commodore 64 Commodore Man Pac

sponsors networking research TCP/IP

Internet

Xerox-desktop

0 1 9 8

RISC Usenet

VisiCalc

Elec. Pencil Elec.

1969 - ARPA commissioned a Cambridge, Mass. company MS/Apple 111 Ethernet

(Bolt, Beranek, and Newman) to build first packet switches Network Computer Intel 8080 Intel

4th

Later, four computers connected FTP LSI VLSI

Telnet Intel 4004 Intel RDBMS

7 0 9

. 1 ARPANET . Calculator 4

. High-LevelLanguages Programming Time Line

Soon networking bandwidth will be unlimited??? Sketchpad

Computer Hardware Computer Language Programming

Military

0 1 9

6 2nd 3rd Applications Computer & R D

A P ( A R D ) C

I Trans. IC FORTRAN, COBOL,etc. BASIC, SIMULA, SmallTalk,

Banking I

i k t n p u S

Computer Applications Payroll - GE

AL

US Census US

Where are applications going??? 1950

o r t s i T n s r a ML

1st Generation Tube Vacuum

e T u b

u u m c V

a Military

0 4 1 9

C A B

9

The Computer Level Hierarchy

• Computers consist of many things besides chips.

• Before a computer can do anything worthwhile, it must also use software.

• Writing complex programs requires a “divide and conquer” approach, where each program module solves a smaller problem.

• Complex computer systems employ a similar technique through a series of virtual machine layers.

The machines at each level execute their own particular instructions, calling upon machines at lower levels to perform tasks as required.

11 12 • Level 6: The User Level • Level 2: Machine Level –Program execution and user interface level. –Also known as the Instruction Set –The level with which we are most familiar. Architecture (ISA) Level. –Consists of instructions that are particular to • Level 5: High-Level Language Level the architecture of the machine. –The level with which we interact when we –Programs written in machine language need write programs in languages such as C, no compilers, interpreters, or assemblers. Pascal, Lisp, and Java. • Level 1: Control Level • Level 4: Assembly Language Level –A control unit decodes and executes –Acts upon assembly language produced instructions and moves data through the from Level 5, as well as instructions system. programmed directly at this level. –Control units can be microprogrammed or hardwired . • Level 3: System Software Level –A microprogram is a program written in a –Controls executing processes on the system. low-level language that is implemented by –Protects system resources. the hardware. –Assembly language instructions often pass –Hardwired control units consist of hardware through Level 3 without modification. that directly executes machine instructions.

13 14

• Level 0: Digital Logic Level –This level is where we find digital circuits (the chips). –Digital circuits consist of gates and wires. –These components implement the mathematical logic of all other levels.

15