Carnegie Mellon About the New Slides for Introduction to Computer Systems 15 213 18 243 spring 2009 Markus P schel Electrical and Computer Engineering Carnegie Mellon Brief Summary In spring 2009 I redesigned and unified almost the entire slide set Course website http www cs cmu edu afs cs academic class 15213 s09 www Exceptions see above website Lecture 2 bits and bytes Lecture 24 web services Lecture 25 concurrency Lecture 27 Multi core architectures Some slides that are in the ppt but were hidden for that term Some parts where updated and some material added mostly program optimizations floating point parts lectures 9 12 The website has also scanned notes includes a few new visualizations Do ls notes in the lectures directory Carnegie Mellon On the Design All slides are in Powerpoint 2007 PC version 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 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 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 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 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 Carnegie Mellon Linux Command Prompt linux badcnt BOOM cnt 198841183 linux badcnt BOOM cnt 198261801 linux badcnt BOOM cnt 198269672 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 Carnegie Mellon Bar Plot String Length 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 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 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
View Full Document