Welcome to the Spring 2013 CS152 web page. The course is intended to provide a foundation for students interested in performance programming, compilers, and operating systems, as well as computer architecture and engineering. Our goal is for you to better understand how software interacts with hardware, and to understand how trends in technology, applications, and economics drive continuing changes in the field. The course will cover the different forms of parallelism found in applications (instruction-level, data-level, thread-level, gate-level) and how these can be exploited with various architectural features. We will cover pipelining, superscalar, speculative and out-of-order execution, vector machines, VLIW machines, multithreading, graphics processing units, and parallel microprocessors. We will also explore the design of memory systems including caches, virtual memory, and DRAM.

An important part of the course is a series of lab assignments using real microprocessor designs implemented in the Chisel hardware description language, and running as simulators and (hopefully) FPGA emulators. These simulators will give you an in-depth look at a variety of processor architectural techniques. Our objective is that you will understand all the major concepts used in modern microprocessors by the end of the semester.

Course Calendar with Handouts

Note: Tentative, schedule subject to change!

Week Date Lecture Readings
5th Edition
4th Edition
1 Tue Jan 22 L1: Introduction, Early Machines PPTX PDF Ch. 1, App. A Ch. 1, App. B
Thu Jan 24 L2: Simple Machine Implementations, Microcoding PPTX PDF
Fri Jan 25 Section 1: Introduction, Abstraction Layers, Microcode Machines PDF
2 Tue Jan 29 L3: From CISC to RISC PPTX PDF PS 1 PDF
Lab 1 PDF (version A)
Thu Jan 31 L4: Pipelining PPTX PDF App. C.1-C.3 App. A.1-A.3
Fri Feb 1 Section 2: Introduction to RISC-V tools and Lab 1 Overview PDF
3 Tue Feb 5 L5: Pipelining II PPTX PDF App. C.4-C.6 App. A.4-A.6  
Thu Feb 7 L6: Memory Hierarchy PPTX PDF App. B.1-B.2, Ch. 2.1-2.3 App. C.1-C.2, Ch. 5.1-5.3
Fri Feb 8 Section 3: Pipelining review PDF      
4 Tue Feb 12 L7: Memory Hierarchy II PPTX PDF App. B.3 App. C.3
Thu Feb 14 L8: Address Translation and Protection PPTX PDF App. B.4-7 App. C.4-7 PS 1 due, Lab 1 due
Fri Feb 15 Section 4: PS 1 Review PDF     PS 1 solutions PDF
5 Tue Feb 19 Quiz 1: ISAs, microcode, simple pipelines
Solutions: PDF
    PS 2 PDF
Handout PDF
Lab 2 PDF (version A)
Thu Feb 21 L9: Virtual Memory PPTX PDF      
Fri Feb 22 Section 5: Lab 2 Overview      
6 Tue Feb 26 L10: Complex pipelines, out-of-order issue, register renaming PPTX PDF Ch. 3.1,3.4-3.5 Ch. 2.1,2.4-2.5
Thu Feb 28 L11: Out-of-order exceptions, branch prediction PPTX PDF Ch. 3.6, 3.8 Ch. 2.6, 2.8 PS 2 due, Lab 2 due
Fri Mar 1 Section 6: Memory hierarchy and PS 2 review     PS 2 solutions PDF
7 Tue Mar 5 Quiz 2: Memory Hierarchies and Virtual Memory
Solutions: PDF
    PS 3 PDF
Lab 3 PDF (version C)
Thu Mar 7 L12: Advanced Out-of-Order Superscalars - PPTX PDF
Fri Mar 8 Section 7: Lab 3 Overview PDF
8 Tue Mar 12 L13: VLIW PPTX PDF Ch. 3.2,3.7 Ch. 2.2,2.7
Thu Mar 14 L14: Multithreading PPTX PDF Ch. 3.12 Ch. 3.5 PS 3 due, Lab 3 (directed portion) due
Fri Mar 15 Section 8: PS 3 Review PS 3 solutions PDF
9 Tue Mar 19 Quiz 3: Complex Pipelining Solutions: PDF PS 4 PDF
Lab 4 (version B) PDF
Thu Mar 21 L15: Vectors PPTX PDF Ch. 4.1-4.3 (App. G) App. F
Fri Mar 22 Section 9: Lab 4 Overview Lab 3 (open-ended portion) due
10 Mar 25-29 Spring Break      
11 Tue Apr 2 L16: GPUs PPTX PDF Ch. 4.4-4.9 N/A
Thu Apr 4 L17: Synchronization and Sequential Consistency PPTX PDF Ch. 5.1, 5.5-5.6 Ch. 4.1-4.4 PS 4 due , Lab 4 due
Fri Apr 5 Section 10: PS 4 review PS 4 solutions PDF
12 Tue Apr 9 Quiz 4: VLIW, Vectors, Multithreading
Solutions: PDF
    PS 5 PDF
Handout1 PDF
Handout2 PDF
Lab 5 PDF (version B)
Thu Apr 11 L18: Snoopy Caches PPTX PDF Ch. 5.2-5.3
Fri Apr 12 Section 11: Lab 5 Overview
13 Tue Apr 16 L19: Directory Protocols PPTX PDF Ch. 5.4
Thu Apr 18 L20: Warehouse-Scale Computing
Luiz Barros, FCRC'11 Keynote video
Ch. 6
Fri Apr 19 Section 12: Parallel Architectures Review      
14 Tue Apr 23 L21: Virtual Machines PPTX PDF Ch. 2.4 N/A
Thu Apr 25 L22: Putting it all Together PPTX PDF
Hot Chips 24 archive
PS 5 due
Fri Apr 26 Section 13: PS 5 Review PS 5 solutions
15 Tue Apr 30 Section 14: Quiz Review
Thu May 2 Quiz 5: Parallel Architectures
Solutions: PDF
Sun May 5 Lab 5 due