University of Washington The Hardware/Software Interface CSE351 Winter 2012 1 st Lecture, Jan 4th Instructor: Mark Oskin Teaching Assistants: Nick Burgan-lllig, Cortney Corbin, Chee Wei Tang 1 Friday, January 6, 12
University of Washington Goals for today Describe where the class fits in the CSE structure Cover some mechanical details Introduce the class Who am I? Who are you? How would I take this class? Discuss broad themes of the class 2 Friday, January 6, 12
University of Washington CSE351’s role in 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 3 Friday, January 6, 12
University of Washington CSE351’s place in new CSE Curriculum CSE477/481 Capstones CSE451 CSE466 CSE352 CSE333 CSE401 CSE461 CSE484 Op Systems Emb Systems HW Design Systems Prog Compilers Networks Security Execution Performance Distributed Concurrency Model Systems Machine Real-Time Code Comp. Arch. Control CSE351 The HW/SW Interface Underlying principles linking hardware and software CS 143 Intro Prog II 4 Friday, January 6, 12
University of Washington Course Perspective Most systems courses are Builder-Centric Computer Architecture Design pipelined processor in Verilog Operating Systems Implement large portions of operating system Compilers Write compiler for simple language Networking Implement and simulate network protocols 5 Friday, January 6, 12
University of Washington Course Perspective (Cont.) This course is Programmer-Centric Purpose is to show how software really works By understanding the underlying system, one can be more e fg ective as a programmer Better debugging Better basis for evaluating performance How multiple activities work in concert (e.g., OS and user programs) Not just a course for dedicated hackers What every CSE major needs to know Provide a context in which to place the other CSE courses you’ll take 6 Friday, January 6, 12
University of Washington Textbooks Computer Systems: A Programmer’s Perspective, 2 nd 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 A good C book. C: A Reference Manual (Harbison and Steele) The C Programming Language (Kernighan and Ritchie) 7 Friday, January 6, 12
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 or 5) Provide in-depth understanding (via practice) of an aspect of systems Exams (midterm + final) Test your understanding of concepts and principles 8 Friday, January 6, 12
University of Washington Class Cancelations Definite: Jan 18th & 20th - @ NSF Possible (but unlikely): Feb 1st & 3rd - @SIGMETRICS PC 9 Friday, January 6, 12
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 Sta fg will monitor and contribute Course Mailing List Low tra ffj c – mostly announcements; you are already subscribed Sta fg email Things that are not appropriate for discussion board or better o ffm ine Anonymous Feedback (will be linked from homepage) Any comments about anything related to the course where you would feel better not attaching your name 10 Friday, January 6, 12
University of Washington Policies: Grading Exams: weighted 1/3 (midterm), 2/3 (final) Written assignments: weighted according to e fg ort We’ll try to make these about the same Labs assignments: weighted according to e fg ort These will likely increase in weight as the quarter progresses Grading: 25% written assignments 35% lab assignments 40% exams You may turn in up to 2 assignments 3 days late throughout the quarter IF you compose an excuse in the form of Shakespearian sonnet and send it to the TA’s and myself ON OR BEFORE the due date. Witty sonnets are preferred. Sonnets are (anonymously) posted on the class webpage. 11 Friday, January 6, 12
University of Washington Taking 351 How to succeed: You should follow your own best learning style, but my recommendation would be: Attend lecture and pay attention (Facebook can wait) Don’t take notes, the slides will be posted Read the book ahead of time ... or at least read it at pace – (I confess I rarely read ahead of time myself) Do each assignment well – Unlike Neoclassical Carpet Design, in CSE is a major where you often can know if you got it right before handing anything in Continuously assess what you don’t know or are confused about and ask for help! How to fail: Don’t attend class, don’t pay attention, don’t read, start assignments late, do them poorly, don’t figure out what you don’t know, don’t ask for help until you receive a failing exam score, etc, etc How to really fail: Cheat 12 Friday, January 6, 12
University of Washington Welcome to CSE351! Let’s have fun Let’s learn – together Let’s communicate I’ve never taught with slides before, so this is going to be a learning experience for me as well Seriously. I’m a blackboard/discussion style teacher 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 UW: Luis Ceze (Fall 2011), Gaetano Borriello (Spring 2010) CMU: Randy Bryant, David O’Halloran, Gregory Kesden, Markus Püschel Harvard: Matt Welsh UW: Tom Anderson, John Zahorjan 13 Friday, January 6, 12
University of Washington Who is Mark? Grew up in socal, so I talk weird. Can’t spel, or form a grammatically correct sentence (I have no idea what an adverb is). I am bad with names, but I will try! When my daughter (Sky -- see photo) isn’t consuming every bit of my free (and not so free) time, I spend a lot of time on the water and my motorcycle. Joined UW faculty in 2001 Nominally I do computer architecture Been on leave for 3 years founding a startup Just coming back... ...and everything has changed.. 351 is just as new to me as it is to you! 14 Friday, January 6, 12
University of Washington Who are you? 70+ students What is hardware? Software? More important question: Why is the boundary where it is? What is an interface? Why do we need a hardware/software interface? Who has written programs in assembly before? 15 Friday, January 6, 12
University of Washington SPEAK This class will be drudgery for all if you stay silent .... and that means everyone. Yes, even you in the back row. 16 Friday, January 6, 12
University of Washington Take a deep breath ... and purge java from your brain it was corrupting your mind anyway 17 Friday, January 6, 12
University of Washington Take a deep breath ... and purge java from your brain it was corrupting your mind anyway But in all seriousness: java, and other HLL (python, etc) are great and most production code is written in them these days Developers $$ >> Cycles $$ A lot of code just doesn’t have to run fast... until it does, and then HLL’s spawn work (witness: FaceBook, AMZN, etc) But I digress... This course is about how machines actually work C has been called a “high level assembly language” as it’s semantics closely mirror the underlying hardware. 18 Friday, January 6, 12
University of Washington C vs. Assembler vs. Machine Programs cmpl $0, -4(%ebp) 1000001101111100001001000001110000000000 if ( x != 0 ) y = (y+z) / x; 0111010000011000 je .L2 10001011010001000010010000010100 movl -12(%ebp), %eax 10001011010001100010010100010100 100011010000010000000010 movl -8(%ebp), %edx 1000100111000010 leal (%edx,%eax), %eax 110000011111101000011111 11110111011111000010010000011100 movl %eax, %edx 10001001010001000010010000011000 sarl $31, %edx idivl -4(%ebp) movl %eax, -8(%ebp) .L2: The three program fragments are equivalent You'd rather write C! The hardware likes bit strings! The machine instructions are actually much shorter than the bits required torepresent the characters of the assembler code 19 Friday, January 6, 12
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 Software was also very primitive Architecture Specification (Interface) Hardware 20 Friday, January 6, 12
Recommend
More recommend