Lectures

Date Meeting Material covered Relevant reading
1/5 Lecture 1 Course overview; binary numbers Section 2.4
1/7 Lecture 2 Arithmetic and branches in assembly Sections 2.1-2.7
1/8 Lab 1 Printing primes - practice w/ loops and if statements  
1/9 Lecture 3 Memory in assembly Sections 2.9,2.13-2.14
1/12 Lecture 4 Switch statements, objects, and linked structures in assembly  
1/14 Lecture 5 Functions in assembly Section 2.8; notes
1/15 Lab 2 Recursive function implementation  
1/16 Lecture 6 Arithmetic in binary Sections 3.1-3.4
1/19 Lecture 7 Signed integers and floating point numbers Sections 2.4 and 3.5
1/21 Lecture 8 Karnaugh maps and Gray codes Sections C.1-C.3
1/22 Lab 3 Computing Gray codes  
1/23 Lecture 9 Drawing circuits; circuits for multiplexers, decoders, and comparators  
1/26 Lecture 10 Circuits for adders and ALUs; flip-flops  
1/28 Lecture 11 Registers and beginning of data paths Sections 4.1-4.4
1/29 Lab 4 Circuits with Logisim  
1/30 Lecture 12    
2/2 No class; work on your midterm
2/4 Lecture 13 Pipelining and hazards Sections 4.5-4.8
2/5 Lab 5 Spimbot sweeping  
2/6 Lecture 14 Exceptions; RISC/CISC  
2/9 Lecture 15 loop unrolling; beginning of memory system  
2/11 Lecture 16 Caching Sections 5.1-5.3
2/12 Lab 6 Spimbot scanning  
2/13 Lecture 17 Caching examples  
2/16 Lecture 18 Virtual memory: segmentation Section 5.4
2/18 Class rescheduled to 2/24
2/19 Lab 7 Self-modifying code  
2/20 Lecture 19 Paging; interfacing with devices and bus Sections 6.5 and 6.6
2/20 Lecture 20 Disks; RAID Sections 6.3 and 6.9
2/23 Lecture 21 Factors affecting performance; Benchmarks; Amdahl's law; classification of parallel systems Sections 7.1-7.6
2/25 Lecture 22 GPUs; cache coherence schemes Section 7.7
2/26 Lab 8 CUDA running Game of Life  
2/27 Lecture 23 Lab debrief and more multiprocessor computing  
3/2 Lecture 24 Discussion of Roadrunner  
3/4 Lecture 25    
3/5 No class - work on spimbot
3/6 No class - work on spimbot
3/9 Spimbot tournament
3/11 Reading Day