University of Washington

The Hardware/Software Interface CSE351 Winter 2011 1st Lecture, 3 January

Instructor: John Zahorjan Teaching Assistants: David Cohen, Michael Ratanapintha

CSE351 – Winter 2011

1

University of Washington

Overview ¢ ¢ ¢ ¢ ¢

Course Synopsis Course themes: big and little Four important realities How the course fits into the CSE curriculum Logistics5

HW0 is out. Due end of day Wednesday.

CSE351 -Winter 2011

2

University of Washington

Course Synopsis: Preliminaries 

A program is an expression of a computation It describes what the output should be when given some input





Programs are written to some specification E.g., Java defines how to write statements and what they mean





How to write something is called syntax We usually think of syntax as a relatively minor issue, although it can have substantial impact on the likelihood of making mistakes





What it means is called semantics “if (x != 0) y = (y+z)/x;” vs. “when (x != 0) y = (y+z)/x;”



–

different syntax, same semantics

CSE351 -Winter 2011

3

University of Washington

Course Synopsis: Programs and Hardware 

A hardware architecture defines its programming specification 



That specification isn't Java! 



How to write instructions and what they mean

We'll say why in a moment...

So, what happens? 

A Java compiler translates the computation as expressed in Java into a computation expressed in the language the hardware defines



The translation is correct if the two programs are equivalent –

For every input, the hardware program produces the same outputs as the Java program would if executed according to the semantics defined by Java

Note: I'm taking some liberties with full truth for the sake of clarity. CSE351 -Winter 2011

4

University of Washington

HW/SW Interface: The Historical Perspective 

Hardware started out quite primitive 



Design was expensive Þ the instruction set was very simple –

E.g., a single instruction can add two integers

–

Forget about x = (2*y + 17) / (x*y*z + 3*w)

Software was also very primitive 

Forget about x = (2*y + 17) / (x*y*z + 3*w) Architecture Specification (Interface)

Hardware

CSE351 -Winter 2011

5

University of Washington

HW/SW Interface: Assemblers 

Life was made a lot better by assemblers 

1 assembler instruction = 1 machine instruction, but...



different syntax: assembly instructions are character strings, not bit strings Assembler specification

User Program in Asm

CSE351 -Winter 2011

Assembler

Hardware

6

University of Washington

HW/SW Interface: Higher Level Languages (HLL's) 

Human was still writing 1 line of assembler for each machine instruction



HLL's (e.g., C) provided a higher level of abstraction: 

1 HLL line is compiled into many (many) assembler lines

C language specification

User Program in C

C Compiler

Assembler

Hardware

CSE351 -Winter 2011

7

University of Washington

C vs. Assembler vs. Machine Programs cmpl je movl movl leal movl sarl idivl movl

if ( x != 0 ) y = (y+z) / x;

$0, -4(%ebp) .L2 -12(%ebp), %eax -8(%ebp), %edx (%edx,%eax), %eax %eax, %edx $31, %edx -4(%ebp) %eax, -8(%ebp)

1000001101111100001001000001110000000000 0111010000011000 10001011010001000010010000010100 10001011010001100010010100010100 100011010000010000000010 1000100111000010 110000011111101000011111 11110111011111000010010000011100 10001001010001000010010000011000

.L2:



The three program fragments are equivalent



You'd rather write C!



The hardware likes bit strings! 

CSE351 -Winter 2011

The machine instructions are actually much shorter than the bits required torepresent the characters of the assembler code 8

University of Washington

Near-Recent History: Java 

Hardware is really, really fast and really, really cheap



Programming Is really, really hard, and programmers aren't cheap



So...





Help the programmer by making it harder to make (unnoticed) mistakes



One program runs everywhere, not one per system type

How? 

More precisely defined language semantics



More restrictive language semantics



The “Java virtual machine”

CSE351 -Winter 2011

10

University of Washington

More Translation: Compiler Optimizations 

Some compiler optimizations can be viewed as “source to source” translations for (i=0; i<10; i++) { a[i] = i; } 1 scalar assignment + 11 integer compares + 11 integer increments + 10 array element assignments

a[0] = 0; a[1] = 1; a[2] = 2; a[3] = 3; a[4] = 4; a[5] = 5; a[6] = 6; a[7] = 7; a[8] = 8; a[9] = 9; i = 10; 1 scalar assignment + 10 array element assignments

CSE351 -Winter 2011

12

University of Washington

And more translation: The C Preprocessor 

C programs can include “preprocessor directives,” which are executed at compile time



The directives can alter the program that is actually compiled by the C compiler

#define NUMELEMENTS 10 int X[NELEMENTS]; for (i=0; i
C Preprocessor

int X[10]; for (i=0; i<10; i++) { … }

Now this text is compiled

CSE351 -Winter 2011

13

University of Washington

One More Thing... 

Attempts have been made to build hardware that directly executes HLL's 

That is, the hardware architecture defines instruction syntax and semantics very similar to HLL's HLL Program



Hardware

It hasn't worked 

The hardware was slow



Generally applicable moral: Simpler is faster.



Hardware architectures today look a lot like architectures from decades ago.

CSE351 -Winter 2011

14

University of Washington

Translation Summary 



Pros: 

Translation overhead is suffered once (at compile time), not for each execution of the program



Raises level of abstraction for the programmer (C vs. assembler)

Cons: 

Raising level of abstraction can come at the cost of some inefficiency –



On the other hand, the compiler is better at some sorts of optimizations than humans

The program that's actually running isn't the one you wrote –

That can make debugging somewhat tricky...

CSE351 -Winter 2011

15

University of Washington

Big Theme #1: The HW/SW Interface ¢

THE HARDWARE VIEW  What is the programming model supported by the hardware? 

How does that influence programs you might write? –



¢

How does it influence programming languages?

How do the requirements of programs and systems software (e.g., compilers, operating systems) influence what the hardware supports?

Understanding the HW/SW interface might make you a more effective programmer  It will certainly make you a more versatile and comfortable one

CSE351 -Winter 2011

16

University of Washington

Big Theme #2: The HW/SW Interface ¢

THE SOFTWARE VIEW  A “system” is an orchestration of hw & sw 

¢

The sw needs hw to run, but the hw needs the sw as well –

Compilers/translators

–

Resource allocators

–

Protection mechanisms

–

I/O systems

–

...

We'll look at some of the functionality that “systems software” provides

CSE351 -Winter 2011

17

University of Washington

Little Theme 1: Representation ¢

At the hardware level, everything is 0s and 1s  numbers, characters, strings, instructions, objects, classes, ...

¢

We'll look at the base representations § The ones the hardware “understands” –

numbers, characters, hardware instructions

§ We'll also look up a few layers of abstraction to the ones created by software –

¢

procedure class, objects

An important implication: § We'll better understand what a type is in a programming language

CSE351 -Winter 2011

18

University of Washington

Little Theme 2: Translation ¢

Translation is everywhere...

¢

But, we'll look particularly at the path C programs to execution, and from Java programs to execution § We’ll encounter Java byte-codes, C language, assembly language, and machine code (for the X86 family of CPU architectures)

CSE351 -Winter 2011

19

University of Washington

Little Theme 3: Correctness + Performance ¢

Up to now you've mostly struggled just with getting an implementation that works  Optimizing performance was ignored, or... 

¢

In this course we'll consider the effect of implementation (rather than algorithm) on performance 

¢

Performance was assumed to be purely an (asymptotic) algorithmic issue

For example: –

Choice of language

–

How the language is used

And, we'll explain why!

CSE351 -Winter 2011

20

University of Washington

Course Outcomes ¢

Foundation: basics of high-level programming (Java)

¢

Understanding of some of the abstractions that exist between programs and the hardware they run on, why they exist, and how they build upon each other Knowledge of some of the details of underlying implementations Become more effective programmers

¢

¢

§ More efficient at finding and eliminating bugs § Understand the many factors that influence program performance § Facility with some of the many languages that we use to describe programs and data ¢

Prepare for later classes in CSE

CSE351 -Winter 2011

21

University of Washington

Reality 1: Ints  the Integers & Floats  Reals ¢

Representations are finite

¢

Example 1: Is x2  0? § Floats: Yes! § Ints: § 40,000 * 40,000 --> 1,600,000,000 § 50000 * 50000 --> ??

¢

Example 2: Is (x + y) + z = x + (y + z)? § Unsigned & Signed Ints: Yes! § Floats: § (1e20 + -1e20) + 3.14 --> 3.14 § 1e20 + (-1e20 + 3.14) --> ??

CSE351 -Winter 2011

22

University of Washington

Reality #2: Memory Matters ¢

Memory is not unbounded § It must be allocated and managed § Many applications are memory-dominated

¢

Memory referencing bugs are especially pernicious § Effects are distant in both time and space

¢

Memory performance is not uniform § Cache and virtual memory effects can greatly affect program performance § Adapting program to characteristics of memory system can lead to major speed improvements

CSE351 -Winter 2011

23

University of Washington

Memory Referencing Errors ¢

C (and C++) do not provide any memory protection § Out of bounds array references § Invalid pointer values § Abuses of malloc/free

¢

Can lead to nasty bugs § Whether or not bug has any effect depends on system and compiler § Action at a distance § Corrupted object logically unrelated to one being accessed § Effect of bug may be first observed long after it is generated

¢

How can I deal with this? § Program in Java (or C#, or ML, or …) § Understand what possible interactions may occur § Use or develop tools to detect referencing errors (valgrind)

CSE351 -Winter 2011

24

University of Washington

Memory System Performance Example ¢ ¢

Hierarchical memory organization Performance depends on access patterns § Including how program steps through multi-dimensional array

void copyij(int int { int i,j; for (i = 0; i for (j = 0; dst[i][j] }

src[2048][2048], dst[2048][2048])

< 2048; i++) j < 2048; j++) = src[i][j];

void copyji(int int { int i,j; for (j = 0; j for (i = 0; dst[i][j] }

src[2048][2048], dst[2048][2048])

< 2048; j++) i < 2048; i++) = src[i][j];

21 times slower (Pentium 4) CSE351 -Winter 2011

25

University of Washington

CSE351 – Winter 2011

26

University of Washington

Reality #3: Performance isn’t counting ops ¢

Exact op count does not predict performance § Easily see 10:1 performance range depending on how code written § Must optimize at multiple levels: algorithm, data representations, procedures, and loops

¢

Must understand system to optimize performance § § § §

How programs compiled and executed How memory system is organized How to measure program performance and identify bottlenecks How to improve performance without destroying code modularity and generality

CSE351 -Winter 2011

27

University of Washington

Example Matrix Multiplication ¢

Standard desktop computer, vendor compiler, using optimization flags

¢

Both implementations have exactly the same operations count (2n )

3

Matrix-Matrix Multiplication (MMM) on 2 x Core 2 Duo 3 GHz (double precision) Gflop/s 50 45 40

Best code (K. Goto)

35 30 25

Triple loop

20

160x

15 10 5 0 0

1,000

2,000

3,000

4,000

5,000

6,000

7,000

8,000

9,000

matrix size CSE351 -Winter 2011

28

University of Washington

MMM Plot: Analysis Matrix-Matrix Multiplication (MMM) on 2 x Core 2 Duo 3 GHz Gflop/s 50 45 40 35

Multiple threads: 4x

30 25 20 15

Vector instructions: 4x

10

Memory hierarchy and other optimizations: 20x

5 0 0

1,000

2,000

3,000

4,000

5,000

6,000

7,000

8,000

9,000

matrix size

¢

¢

Reason for 20x: blocking or tiling, loop unrolling, array scalarization, instruction scheduling, search to find best choice Effect: less register spills, less L1/L2 cache misses, less TLB misses

CSE351 -Winter 2011

29

University of Washington

CSE351’s role in the “new CSE Curriculum” “ ¢ Pre-requisites § 142 and 143: Intro Programming I and II ¢

One of 6 core courses § § § § § §

¢

311: Foundations I 312: Foundations II 331: SW Design and Implementation 332: Data Abstractions 351: HW/SW Interface 352: HW Design and Implementation

351 sets the context for many follow-on courses

CSE351 -Winter 2011

30

University of Washington

CSE351’s place in new CSE Curriculum CSE477/481 Capstones

CSE352 HW Design

CSE333 Systems Prog

CSE451 Op Systems

CSE401 Compilers

Performance Concurrency Comp. Arch.

Machine Code

CSE461 Networks Distributed Systems

CSE351

CSE484 Security

CSE466 Emb Systems

Execution Model Real-Time Control

The HW/SW Interface Underlying principles linking hardware and software

CS 143 Intro Prog II CSE351 – Winter 2011

31

University of Washington

Textbooks ¢

Computer Systems: A Programmer’s Perspective, 2nd Edition § § § § §

Randal E. Bryant and David R. O’Hallaron Prentice-Hall, 2010 http://csapp.cs.cmu.edu This book really matters for the course! How to solve labs

§ Practice problems typical of exam problems ¢

C: A Reference Manual, 5th Edition § § § §

CSE351 -Winter 2011

Samuel P. Harbison III and Guy L. Steele, Jr. Prentice-Hall, 2002 Solid C programming language reference Useful book to have on your shelf

32

University of Washington

Course Components ¢

Lectures (~30) § Higher-level concepts – I’ll assume you’ve done the reading in the text

¢

Sections (~10) § Applied concepts, important tools and skills for labs, clarification of lectures, exam review and preparation

¢

Written assignments (~4) § Problems from text to solidify understanding

¢

Labs (4) § Provide in-depth understanding (via practice) of an aspect of systems

¢

Exams (midterm + final) § Motivation to stay on top of things § Demonstrate your understanding of concepts and principles

CSE351 -Winter 2011

33

University of Washington

Resources ¢

Course Web Page § http://www.cse.washington.edu/351 § Copies of lectures, assignments, exams

¢

Course Discussion Board § Keep in touch outside of class – help each other § Staff will monitor and contribute

¢

Course Mailing List § Low traffic – mostly announcements; you are already subscribed

¢

Staff email § Things that are not appropriate for discussion board or better offline

¢

Anonymous Feedback (linked from homepage) § Any comments about anything related to the course where you would feel better not attaching your name § By default, all anonymous feedback is posted (so you can view it)

CSE351 -Winter 2011

34

University of Washington

Policies: Grading ¢ ¢

Exams: weighted 1/3 (midterm), 2/3 (final) Written assignments: weighted according to effort § We’ll try to make these about the same

¢

Labs assignments: weighted according to effort § These will likely increase in weight as the quarter progresses

¢

¢

Late Policy 

Two discretionary late days



10%/day after that

Grading: § 55%assignments § 45% exams

CSE351 -Winter 2011

35

University of Washington

Welcome to CSE351! ¢ ¢ ¢ ¢

¢

Let’s have fun Let’s learn – together Let’s communicate Let’s set the bar for a useful and interesting class Many thanks to the many instructors who have shared their lecture notes – I will be borrowing liberally through the qtr – they deserve all the credit, the errors are all mine § § § §

CSE351 -Winter 2011

UW: Gaetano Borriello (Inaugural edition of CSE 351, Spring 2010) CMU: Randy Bryant, David O’Halloran, Gregory Kesden, Markus Püschel Harvard: Matt Welsh UW: Tom Anderson, Luis Ceze

36

The Hardware/Software Interface Overview - University of Washington

Design was expensive the instruction set was very simple. E.g., a single ... Hardware rchitecture Specification (Interface). University of Washington. CSE351 ...

1000KB Sizes 0 Downloads 255 Views

Recommend Documents

University of Washington .pdf
Retrying... University of Washington .pdf. University of Washington .pdf. Open. Extract. Open with. Sign In. Main menu. Displaying University of Washington .pdf.

Winter Dreams - Washington State University
Dexter Green's father owned the second best grocery-store in. Black Bear--the best ... tramped with his eyes squinted up against the hard ..... "Better thank the Lord she doesn't drive a swifter ball," said Mr. ..... president of a great trust compan

The Crisis in Rural Primary Care - University of Washington
backbone of rural health care, yet primary care in rural loca- tions is in crisis. The number of students choosing primary care careers has declined precipitously.

pdf-1836\history-of-the-royal-society-washington-university-studies ...
Connect more apps... Try one of the apps below to open or edit this item. pdf-1836\history-of-the-royal-society-washington-university-studies-by-thomas-sprat.pdf.

PACURH OTM Writing Guide - Central Washington University
You want to recognize them, but don't know the best way to go about it. Well, how ... There are two types of OTMs: General and Programs. Each has its own word ...

Vector Symbolic Architectures - Washington and Lee University
We provide an overview of Vector Symbolic Architectures (VSA), a class ... Perhaps more so than any other sub-field of computer science, artificial intelligence .... The introduction of noise requires that the unbinding process employ a “cleanup.

UW NW CSC Fellows RFP 2015 - University of Washington
delivery for managers and policy makers in the Northwest region ... research and outreach on issues that inform management decisions and public policy ... proposed research is required to be documented with an annual report, due by.

UW NW CSC Fellows RFP 2015 - University of Washington
A Cooperative Program of the ... for funding graduate research assistantships (NW CSC Fellows) at the MS or PhD level in ... research and outreach on issues that inform management decisions and public policy development related to climate.

PACURH OTM Writing Guide - Central Washington University
made a positive, meaningful impact during the month for which it is submitted” ... Acceptable Nominees: Senior staff advisors to a residential committee, college council, college ... In recent years, this OTM category has come to include passive pr

CALCULUS I: Math 124 H - University of Washington
Email: [email protected]. Office: Padelford C-339. Web page: ... Make sure to log onto webassign as soon as possible and attempt the first ... A link to the class website can be found at: http://www.math.washington.edu/∼aloveles/ You wil

CALCULUS I: Math 124 H - University of Washington
Email: [email protected]. Office: Padelford C-339. Web page: ... Make sure to log onto webassign as soon as possible and attempt the first ... A link to the class website can be found at: http://www.math.washington.edu/∼aloveles/ You wil

Selection of Techniques and Metrics - Washington University in St ...
Case Study: Two Congestion Control Algorithms. ❑ Service: ... Some packets are delivered out-of-order to the ... Some packets are dropped on the way (lost.

Selection of Techniques and Metrics - Washington University in St ...
Performance Time, Rate, Resource. ➢ Error rate, probability. ➢ Time to failure and duration. ❑ Consider including: ➢ Mean and variance. ➢ Individual and Global.

the state of washington - PDFKUL.COM
D/B/A: Google Wallet; Google Payments; Android Pay;. With Place of Business At: 1600 Amphitheatre Parkway. Mountain View, CA 94043. Has submitted an application for issuance of a license under the provisions of Chapter 19.230 of the Revised Code of W

the state of washington
MONEY TRANSMITTER LICENSE. (Includes currency exchange). WHEREAS,. Google Payment Corp. D/B/A: Google Wallet; Google Payments; Android Pay;.

pdf-1374\the-art-of-being-kuna-from-brand-university-of-washington ...
pdf-1374\the-art-of-being-kuna-from-brand-university-of-washington-press.pdf. pdf-1374\the-art-of-being-kuna-from-brand-university-of-washington-press.pdf.

Postdoc in Statistical Ecology - Washington State University, Dr. Leslie ...
... academic transcripts and the names and contact details of three references to [email protected] by 1 June 2015. Start date will be as soon as possible after ...

Introduction to Wireless Signal Propagation - Washington University in ...
Note: This is the 2nd in a series of 2 lectures on wireless physical layer. Modulation ... Wireless Radio Channel. ❑ Path loss: .... Advantages of OFDM. ❑ Easy to ...

Postdoc in Statistical Ecology - Washington State University, Dr. Leslie ...
Position – Postdoc in Statistical Ecology - Washington State University, Dr. Leslie ... should be proficient with R; those with a background in ecological statistics,.

basic components of the interface - GitHub
Each tab is a separate coding challenge. Write code in the editor to solve the challenge and hit Submit Answer. If your code is correct, you will progress to the ...