<<

System: Layers of Abstraction

Application Program Language Chapter 1 Software Hardware Instruction Set Architecture Welcome Aboard (and I/O Interfaces) 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 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

All computers can computing exactly the same things* Mathematical model of a device that can perform any computation – (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 Design: Problem choose structures to implement ISA Software Design: Microarch choose algorithms and data structures Logic/Circuit Design: 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,

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 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 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