
Computer System: Layers of Abstraction Application Program Algorithms Language Chapter 1 Software Hardware Instruction Set Architecture Welcome Aboard (and I/O Interfaces) Microarchitecture Circuits Based on slides © McGraw-Hill Additional material © 2004/2005 Lewis/Martin Devices CSE 240 1-2 Recurring Themes Recurring Theme #1: Abstraction Abstraction Abstraction hides details • Allows us to manage seemingly insurmountable complexity Examples • One billion components require abstraction • “Turn off the light!” • “Stick out your tongue.” Hardware v. Software Computing examples • Java methods • Separation of hardware and software is artificial • C functions • LC-3 instructions • Logical gates • Transistors Bottom line • Often best to operate at highest level of abstraction • Dangerous to completely ignore lower levels of abstraction CSE 240 1-3 CSE 240 1-4 1 Recurring Theme #2: Hardware v. Software Very Big Ideas Artificial distinction Universality • All computers can compute the same thing* Greatness arises from blurring the HW/SW line • RISC Layered Abstraction • MMX/SSE • We can build very complex systems from simple components • IA-64 EPIC • RAW/Trips. Bottom line • We really care about computation • Hardware best understood by those who know software • Software best understood by those who know hardware CSE 240 1-5 CSE 240 1-6 Big Idea #1: Universal Computing Device Turing Machine All computers can computing exactly the same things* Mathematical model of a device that can perform any computation – Alan Turing (1937) *given enough time and memory • Ability to read/write symbols on an infinite “tape” • State transitions, based on current state and symbol Every computation can be performed by some = = Turing machine. (Turing’s thesis) a,b T a+b a,b T ab PDA add mul Workstation Supercomputer Turing machine that adds Turing machine that multiplies CSE 240 1-7 CSE 240 1-8 2 Universal Turing Machine From Theory to Practice Turing described a Turing machine that could implement In theory all other Turing machines • Computers can compute anything that’s possible to compute • Inputs: data, plus a description of computation (Turing machine) • Given enough memory and time T , T add mul U In practice a,b,c c(a+b) • Solving real problems requires computing under constraints • Time Universal Turing Machine Weather forecast, next frame of animation, ... • Cost U is programmable – so is a computer! Cell phone, automotive engine controller, ... • Instructions are part of the input data • Power • A computer can emulate a Universal Turing Machine, Cell phone, handheld video game, ... and vice versa Therefore, a computer is a universal computing device! CSE 240 1-9 CSE 240 1-10 Big Idea #2: Layered Abstraction Deeper and Deeper… How do we solve a problem using a computer? • Systematic sequence of transformations between layers of abstraction. Instr Set Architecture Processor Design: Problem choose structures to implement ISA Software Design: Microarch choose algorithms and data structures Logic/Circuit Design: Algorithm gates and low-level circuits to Programming: Circuits implement structures use language to express design Program Process Engineering & Fabrication: Compiling/Interpreting: develop and manufacture convert language to Devices lowest-level components Instr Set Architecture machine instructions CSE 240 1-11 CSE 240 1-12 3 Descriptions of Each Level Descriptions of Each Level (cont.) Problem Statement Microarchitecture • Stated using "natural language" • Detailed organization of a processor implementation • May be ambiguous, imprecise • Different implementations of a single ISA Algorithm Logic Circuits • Step-by-step procedure, guaranteed to finish • Combine basic operations to realize microarchitecture • Definiteness, effective computability, finiteness • Many different ways to implement a single function Program (e.g., addition) • Express the algorithm using a computer language Devices • High-level language, low-level language • Properties of materials, manufacturability Instruction Set Architecture (ISA) • Specifies the set of instructions the computer can perform • Data types, addressing mode CSE 240 1-13 CSE 240 1-14 Many Choices at Each Level Course Outline “Solve a system of equations” Bits and Bytes • How do we represent information using electrical signals? Digital Logic Gaussian Jacobi Red-black SOR Multigrid • How do we build circuits to process information? elimination iteration Processor and Instruction Set • How do we build a processor out of logic elements? FORTRAN C C++ Java Tradeoffs: • What operations (instructions) will we implement? cost Assembly Language Programming Sun SPARC Intel x86 Compaq Alpha performance • How do we use processor instructions to implement algorithms? power • How do we write modular, reusable code? (subroutines) Pentium II Pentium III AMD Athlon (etc.) I/O, Traps, and Interrupts • How does processor communicate with outside world? Ripple-carry adder Carry-lookahead adder C Programming • How do we write programs in C? CMOS Bipolar GaAs • How do we implement high-level programming constructs? CSE 240 1-15 CSE 240 1-16 4 Next Time Lecture • Chapter 2: Bits and Bytes Reading • Chapter 2 - 2.5 Quiz • Don’t forget! Upcoming • Homework 1 due on Fri 16 September CSE 240 1-17 5.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages5 Page
-
File Size-