Carnegie Mellon About the New Slides for Introduction to Computer Systems 15 213 18 243 Introduction to Computer Systems 0th Lecture Aug 24 2010 Markus P schel Electrical and Computer Engineering with small contributions by Dave O Hallaron 1 Carnegie Mellon On the Design All slides are in Powerpoint 2007 mix of PC and Mac versions Probably could be edited using Powerpoint 2003 plus File format plugin Calibri font I would still recommend to use 2007 for editing Design is suitable for printing out slides Only light colors in particular for boxes Some slides have covered areas that disappear later suitable for quizzing in class The design follows the Small Guide to Giving Presentations Next slides Color format conventions 2 Carnegie Mellon Style for title slides System Level I O 15 213 18 243 Introduction to Computer Systems 14th Lecture Oct 12 2010 Instructors Randy Bryant and Dave O Hallaron 3 Carnegie Mellon Today Style for outlining Unix I O RIO robust I O package Metadata sharing and redirection Standard I O Conclusions and examples 4 Carnegie Mellon Style for Figure Labels Capitalize only the first word in each figure label E g Payload and padding not Payload and Padding or payload and padding This is the same style convention that we used in CS APP2e Header Format of allocated and free blocks Boundary tag footer Size a Size Total block size Payload and padding Size a 1 Allocated block a 0 Free block Payload Application data allocated blocks only a 5 Carnegie Mellon Style for Code hello c Pthreads hello world program include csapp h void thread void vargp int main pthread t tid Pthread create tid NULL thread NULL Pthread join tid NULL exit 0 thread routine void thread void vargp printf Hello world n return NULL 6 Carnegie Mellon Style for Code and Alternative Code C Code int fact do int x int result 1 do result x x x 1 while x 1 return result Goto Version int fact goto int x int result 1 loop result x x x 1 if x 1 goto loop return result 7 Carnegie Mellon Style for Assembly Code Version I int absdiff int x int y int result if x y result x y else result y x return result absdiff pushl movl movl movl cmpl jle subl movl L8 leave ret L7 subl jmp ebp esp ebp 8 ebp edx 12 ebp eax eax edx L7 eax edx edx eax Setup Body1 Finish edx eax L8 Body2 8 Carnegie Mellon Style for Assembly Code Version II struct rec int i int a 3 int p void set p struct rec r r p r a r i edx r movl edx ecx leal 0 ecx 4 eax leal 4 edx eax eax movl eax 16 edx r i 4 r i r 4 4 r i Update r p 9 Carnegie Mellon Linux Command Prompt linux badcnt BOOM cnt 198841183 linux badcnt BOOM cnt 198261801 linux badcnt BOOM cnt 198269672 10 Carnegie Mellon Stack and Registers eax Caller save Caller Frame edx Arguments ecx ebx Callee save ebp esi Saved registers Local variables edi Special Return addr Old ebp esp ebp esp Argument build 11 Carnegie Mellon Bar Plot 256k 128k 64k 32k 16k 8k 4k 2k lower2 1k 512 256 CPU Seconds 1000 100 lower1 10 1 0 1 0 01 0 0 0 0 String Length 12 Carnegie Mellon Tables Cycles per element or per mult Machine Nocona Core 2 Method rfact 15 5 6 0 combine4 2 2 10 0 5 0 7 0 fact 10 0 3 0 unroll2 1 5 10 0 5 0 7 0 1 56 5 0 2 75 3 62 1 0 1 0 2 0 2 0 unroll2 ra bound Int add mult Float add mult Some instructions take 1 cycle but can be pipelined Instruction Latency Cycles Issue Load Store5 1 Integer Multiply 10 1 Integer Long Divide 36 106 36 106 Single Double FP Multiply 7 2 Single Double FP Add 5 2 Single Double FP Divide 32 46 32 46 13 Carnegie Mellon Color Palette Boxes areas Assembly memory Linux memory Code Code registers Registers Memory Memory Occasionally I use darker versions of the colors above Text Emphasizing something in the text Comments inside yellow code boxes 14
View Full Document