[email protected] Computing Systems Computer abstractions and technology.

15
[email protected] 1 Computing Systems Computer abstractions and technology

Transcript of [email protected] Computing Systems Computer abstractions and technology.

Page 1: Ctalarico@ewu.edu1 Computing Systems Computer abstractions and technology.

[email protected] 1

Computing Systems

Computer abstractions and technology

Page 2: Ctalarico@ewu.edu1 Computing Systems Computer abstractions and technology.

2

IntroductionComputer design is a rapidly changing field

vacuum tube transistors VLSI circuits Memory capacity is doubling almost every 1.5 years Processor performance is improving 1.5-1.6 times per year Moore’s Law: the transistor count for an IC doubles every 18-24

months

Learning objectives How computer works How to analyze their performance How hardware and software organization and design affect the

performance

Learning Motivation You want to design a computing system You want to write software that people use (need performance) You need to make a purchasing decision or offer and “expert” advice You want to call yourself a computer or electrical engineer

Page 3: Ctalarico@ewu.edu1 Computing Systems Computer abstractions and technology.

3

What is a computer ?

Different types: desktop, servers, embedded devices

Different applications: automobiles, graphics, finance, genomics, …

Different manufacturers: Intel, Apple, IBM, Microsoft, Sun, …

Different underlying technologies and different costs!

Page 4: Ctalarico@ewu.edu1 Computing Systems Computer abstractions and technology.

4

Computers in perspective

Each time the cost of computing improves applications that were economically infeasible suddenly become practical

Advance in computer technology affect almost every aspect of our society

ENIAC (circa world war II)

Page 5: Ctalarico@ewu.edu1 Computing Systems Computer abstractions and technology.

5

The computer market

Page 6: Ctalarico@ewu.edu1 Computing Systems Computer abstractions and technology.

6

Embedded computersAnti-lock brakesAuto-focus camerasAutomatic teller machinesAutomatic toll systemsAutomatic transmissionAvionic systemsBattery chargersCamcordersCell phonesCell-phone base stationsCordless phonesCruise controlCurbside check-in systemsDigital camerasDisk drivesElectronic card readersElectronic instrumentsElectronic toys/gamesFactory controlFax machinesFingerprint identifiersHome security systemsLife-support systemsMedical testing systems

ModemsMPEG decodersNetwork cardsNetwork switches/routersOn-board navigationPagersPhotocopiersPoint-of-sale systemsPortable video gamesPrintersSatellite phonesScannersSmart ovens/dishwashersSpeech recognizersStereo systemsTeleconferencing systemsTelevisionsTemperature controllersTheft tracking systemsTV set-top boxesVCR’s, DVD playersVideo game consolesVideo phonesWashers and dryers

and the list goes on and on …

Page 7: Ctalarico@ewu.edu1 Computing Systems Computer abstractions and technology.

7

The Computer components

A computer is composed of five basic components:InputOutputMemoryDatapathControl

Processor (= CPU)

Page 8: Ctalarico@ewu.edu1 Computing Systems Computer abstractions and technology.

8

Hardware/software interface

The hardware in a computer can only execute extremely simple low-level instructions.

To go from a complex application to the simple instructions involves several layers of software that interpret or translate high level operations into simple computer instructions.

These layers of software are organized primarily in a hierarchical fashion

System software:• operating system, • compilers and • assemblers

Page 9: Ctalarico@ewu.edu1 Computing Systems Computer abstractions and technology.

9

Levels of abstraction An abstraction omits

unneeded detail, helps us cope with complexity

High level programming languages offer several benefits Allow the programmer to

think in a more natural language

Improve the programmer productivity

Allow programs to be independent

Page 10: Ctalarico@ewu.edu1 Computing Systems Computer abstractions and technology.

10

Levels of abstraction

1970 1980 1990 2000+

Ab

stra

ctio

n

Transistor Level

Gate Level

RTL

RT Level(HDL)

RTL SW

System Level

Page 11: Ctalarico@ewu.edu1 Computing Systems Computer abstractions and technology.

11

Instruction Set Architecture (ISA) ISA (or simply architecture):

- one of the most important abstraction- interface between the hardware and the lowest level

software- standardizes instructions and machine language bit

patterns Advantage:

- Keeping the architecture as a constant enables many implementations of varying cost and performance to run identical software

Disadvantage:- maintaining the architecture may preclude introducing

innovations that require the interface to change Modern instruction set architectures:

- IA-32, PowerPC, MIPS, SPARC, ARM, …

Page 12: Ctalarico@ewu.edu1 Computing Systems Computer abstractions and technology.

12

The chip manufacturing process

Page 13: Ctalarico@ewu.edu1 Computing Systems Computer abstractions and technology.

13

Internal structure of a processor chip

Pentium 4 microphotograph

Page 14: Ctalarico@ewu.edu1 Computing Systems Computer abstractions and technology.

14

The BIG Picture Both hw and sw consist of hierarchical layers, with each

lower layer hiding details from the level above This principle of abstraction is the way both hardware

designers and software designers cope with complexity One key interface between levels of abstraction is the

ISA – the interface between the hardware and low level software.

Key technologies for modern processors are silicon and compilers

The rapid advance of silicon technology and new ideas in the organization of computers (e.g. exploiting parallelism via pipelining and exploiting locality of accesses via memory hierarchy) have improved price/performance

Page 15: Ctalarico@ewu.edu1 Computing Systems Computer abstractions and technology.

15

Performance

Both Hardware and Software affect performance: Algorithm determines number of source-level

statements

Language/Compiler/Architecture determine machine instructions (Chapter 2 and 3)

Processor/Memory determine how fast instructions are executed (Chapter 5, 6, and 7)