The first electronic computers ENIAC
Transcription
The first electronic computers ENIAC
Datorarkitektur och operativsystem U Unmesh h D. D Bordoloi B d l i The first electronic computers ENIAC J. Presper Eckert and John Mauchly at the Moore School of the University of Pennsylvania Funded by the United States Army B Became operational ti l d during i W World ld W War II but b t was nott publicly disclosed until 1946 ENIAC (Electronic Numerical Integrator and Calculator) – The world’s first electronic computer ENIAC Von Neumann ENIAC pro vided id d conditional di i l jumps j and d was programmable, clearly distinguishing it from earlier calculators In 1944 1944, JJohn hn von n Ne Neumann mann was as attracted to t the ENIAC project. r ject The group wanted to improve the way programs were entered and discussed storing programs as numbers; von Neumann helped crystallize the ideas p g a stored-program p g computer p called EDVAC and wrote a memo pproposing (Electronic Discrete Variable Automatic Computer). Programming was done manually by plugging cables and setting switches, and data was entered on punched cards. Programming g g for typical yp calculations required q from half an hour to a whole day Herman Goldstine distributed the memo and pput von Neumann’s name on it, much to the dismay of Eckert and Mauchly, whose names were omitted. This memo has served as the basis for the commonly used term von Neumann computer. Several early pioneers in the computer field believe that this term gives too much credit to von Neumann, Neumann who wrote up the ideas, and too little to the engineers, Eckert and Mauchly, who worked on the machines. ENIAC was a general-purpose machine, limited primarily by a small amount of storage and tedious programming For this reason, the term does not appear elsewhere in your textbook book. Technology Technology Electronics technology continues to evolve 18,000 vacuum tubes Increased capacity and performance Reduced cost 20 registers, each around 0.5 meters long 24 meters long long, 2.5 2 5 meters high Year Technology 1951 Vacuum tube 1965 Transistor 1975 I t Integrated t d circuit i it (IC) 1995 Very large scale IC (VLSI) 2005 Ultra large scale IC Relative performance/cost 1 35 900 2,400,000 6 200 000 000 6,200,000,000 Revolution ? H Human civilization i ili i : Agricultural revolution Industrial revolution … C Computers t are the th result lt off an iincredible dibl industry that embraces innovations at a b tht ki rate breathtaking t Yesterday’s Yesterday s fiction is now reality Applications empowered by computers: Human Human genome project World Wide Web Search Engines Social Social Networks A similar pace in Transportation industry would h have implied i li d that th t we reachh N New Y Yorkk iin ffew seconds Classes of Computers Classes of Computers Desktop computers General purpose, variety of software Subject to cost/performance tradeoff Server computers Network based High capacity, performance, reliability Range from small servers to building sized Embedded computers Hidden as components of systems Stringent power/performance/cost constraints Below your program Language of the hardware We constantly interact with these computers E.g., via apps on iPhone or via a Word Processor The hardware understands on or off. off Hence, the language of the hardware needs two symbols 0 and 1. 1 How is an application interact with the hardware? Commonly C l referred f d to as bi binary digits di i or bits. bi 2 letters do not limit what computers can do (just like the finite letters in our languages) (j g g ) Language of the hardware Instructions are collections of bits that the computer understands Hundreds/thousands/millions of lines of code are hidden hidd beneath b h our apps and d programs Hierarchical Layers y of Program g Code High-level language Level L l off abstraction b i closer l to problem domain Provides for productivity and portability Assemblyy language g g Textual representation of instructions What our programs instruct the computer to do are the instructions: Hardware representation Binary digits (bits) Encoded instructions and data Below your program • Application software – Written in high-level language • System software – Compiler: translates HLL code to machine code – Operating System: service code Under the Covers Understanding the underlying hardware (the computer!) is the main focus of this course So, what are the main components of the computer?? • Handling input/output • Managing memory and storage • Scheduling tasks & sharing resources • Hardware H d – Processor, memory, I/O controllers Components of a Computer Anatomy of a Computer Same components for allll kinds ki d off computer Desktop, server, embedded b dd d Output device Network cable Input Input device Input Input device Opening the Box Motherboard I/O connections Opening the Box Memory (DRAM) Random access memory Memoryy ((DRAM)) CPU or central processing unit A Safe Place for Data • Volatile main memory – Loses L iinstructions t ti and dd data t when h power offff • Non-volatile secondary memory – Magnetic disk – Flash memory – Optical p disk ((CDROM, DVD)) AMD Barcelona: 4 processor cores Abstractions Inside the Processor (CPU) Datapath: performs operations on data Control: sequences datapath, memory, ... Cache memory Small fast SRAM memory for immediate access to data Abstraction helps us deal with complexity Instruction set architecture (ISA) Instructions Arithmetic Th P The Processor Memory Input/Output The hardware/software interface Implementation Our Topics in this Course Note abstraction in both hardware and software ft Hide lower-level detail The details underlying and interface Performance Why is performance important? For purchasers: to choose between computers For F d designers: to make k the h sales l pitchh Defining performance is not straightforward! An A analogy l with i h airplanes i l shows h the h diffi difficulty l Defining Performance Which airplane has the best performance? Boeing 777 Boeing 777 Boeing 747 Boeing 747 BAC/Sud Concorde BAC/Sud Concorde Douglas DC-8-50 Douglas DC8-50 0 100 200 300 400 l laptop, the h one that h responds d faster f is the h better! b ! Boeing 777 Boeing 777 Boeing 747 Boeing 747 BAC/Sud Concorde BAC/Sud Concorde Douglas DC-8-50 Douglas DC8-50 500 1000 2000 4000 6000 Response time = How long it takes to do a task? 8000 10000 Cruising Range (miles) Passenger Capacity 0 Response time As a user of a smart phone (embedded computer), or 0 500 Response Time and Throughput 1500 Response time = the total time required for the computer 0 Cruising Speed (mph) to complete a task, including disk accesses, memory accesses, I/O activities, accesses activities operating system overheads overheads, CPU execution time … 100000 200000 300000 400000 Passengers x mph Response Time and Throughput Throughput If I am running a data center with several servers, faster computer is the one that completes several tasks in one day! Total work done per unit time • e.g., e g tasks/transactions/… tasks/transactions/ per hour Relative Performance Define Performance = 1/Execution Time Performancex > Performancey 1/Execution Time x > 1/Execution Time y Execution Time y > Execution Time x How are response time and throughput affected by Replacing R l i the h processor with i h a faster f version? i ? Adding more processors? Look L k in i the h textbook b k for f a discussion di i (P (Page 28) We’ll focus on response time for now… Performanc e X Performanc e Y Execution time Y Execution time X n Relative Performance Define Performance = 1/Execution Time “X is n time faster than Y” eY P f Performanc e X Performanc P f Execution time Y Execution time X n Example: time taken to run a program 10s on A, 15s on B Execution TimeB / Execution TimeA = 15s / 10s = 1.5 So A is 1.5 times faster than B CPU Time CPU Time CPU Clock Cycles Clock Cycle Time CPU Clock Cycles C Clock Rate Performance improved p byy Reducing number of clock cycles Increasing clock rate Measuring Execution Time Elapsed El d time i Total response time, including all aspects • Processing, P i I/O, I/O OS overhead, h d idle idl time i Determines system performance CPU time ti Time spent processing a given job • Discounts Di I/O time, i other h jobs’ j b ’ shares h Comprises user CPU time and system CPU time Different programs r rams are affected differentl differently by b CPU and system performance CPU Time Example Computer A: 2GHz clock, 10s CPU time Designing D i i C Computer B Aim for 6s CPU time Can do faster clock, clock but causes 1.2 1 2 × clock cycles How fast must Computer B clock be? CPU Time B CPU Clock CyclesB Clock RateB Hardware designer must often trade off clock rate against cycle l count Clock RateB Clock CyclesB 1.2 Clock Cycles A CPU Time B 6s CPU Time Example Computer A: 2GHz clock, 10s CPU time Designing Computer B We aim for 6s CPU time We W can do d faster f clock, l k but b causes 1.2 1 2 × clock l k cycles l How fast must Computer B clock be? CPU Time A CPU Clock CyclesA Clock RateA Clock CyclesA CPU Time A Clock Rate A 10s 2GHz 20 10 9 Instruction Count and CPI Clock Cycles Instruction Count Cycles per Instruction CPU Time Instruction Count CPI Clock Cycle Time Instruction Count CPI Clock Rate CPU Time Example Computer A: 2GHz clock, 10s CPU time Designing D i i C Computer B Aim for 6s CPU time Can do faster clock, clock but causes 1.2 1 2 × clock cycles How fast must Computer B clock be? CPU Time B Clock RateB Average cycles per instruction Determined by CPU hardware If different instructions have different CPI Average CPI affected by instruction mix Clock CyclesB 1.2 Clock Cycles A CPU Time B 6s 1.2 20 10 9 24 10 9 Clock RateB 4GHz 6s 6s CPI Example Computer A: Cycle Time = 250ps, CPI = 2.0 Computer C B: B Cycle C l Time Ti = 500ps, 500 CPI = 11.2 2 Same ISA Which is faster, and by how much? CPU Time Instruction Count for a program Determined by program, ISA and compiler CPU Clock CyclesB Clock RateB A CPU Time B Instruction Count CPI Cycle Time A A A is faster… I 2.0 250ps I 500ps Instruction Count CPI Cycle Time B B I 1.2 500ps I 600ps B I 600ps 1.2 CPU Time I 500ps A CPU Time …by this much Concluding Remarks Personnel Cost/performance is improving Unmesh BordoloiBordoloi Kursledare (examinator) Due to underlying technology development Kontorstider: • Vecka 37-43 - Tisdag 14-16 • Epost: unmesh.bordoloi@liu.se Hierarchical layers y of abstraction In both hardware and software Instruction set architecture The hardware/software interface Madeleine Häger Dahlqvist Kurssekreterare Execution E i time: i the h bbest performance f measure Power is a limitingg factor Email: madeline.hager.dahlqvist@liu.se Use parallelism to improve performance 42 42 Examination The course will have three obligatory exams/homework Homework 1 Homework 2 Final Exam Homework 1 This is obligatory and you can receive 0-4 points. The points will be added to the final grade. Homework 2 This is obligatory and you can receive 0-8 points. points The points will be added to the final grade. Final Exam There Th willll be b a ffinall written grade. d The Th points willll be b added dd d to the final grade 43 43 44 44 Examination Textbook Final score is calculated as the sum of The recommended textbook is: Homework 1(maximum ( 4 ppoints)) David A. Patterson and JJohn L. Hennessy: y Homework 2 (maximum 8 points) Computer Organization and Design - The Hardware / Software Interface,, 4th Edition,, Morgan Kaufmann Available as e-book in the university library Final Exam (maximalt 28 points) 45 45 Textbook Other literature William Stallings: Computer Organization and At the end of every lecture, there will be a p covered slide listingg the relevant portions from the textbook Architecture, Prentice Hall International, Inc.. Sven Eklund, Avancerad datorarkitektur, Studentlitteratur, 1994. Andrew S. Tanenbaum, Structured Computer Organization, 4th edition, Prentice Hall International, Inc., 1999. V. V C. C Hamacher, Hamacher et al.: al : Computer Organization, Organization 4th edition, McGraw-Hill, 1996. Today, we covered 1.1, 1.2, and 1.3 47 46 46 47 48 48