Great Ideas in Computer Architecture (Machine Structures)

CS 61C at UC Berkeley with Connor McMahon, Nicholas Weaver - Spring 2022

Lecture: Tuesday/Thursday 11:00AM - 12:30PM PT, Wheeler 150 + Online

Week Date Lecture Reading Lab & Discussion HW & Project
1 Tue 1/18 Lecture 1: Intro, Number Representation
Course Policies Discussion 1: Number Rep
Lab 0: Intro and Setup Due 1/24
Thu 1/20 Lecture 2: C Intro - Basics
K&R Ch. 1-5 C Reference Slides
Brian Harvey's Intro to C
Fri 1/21 Homework 1: Number Rep Due 1/28
2 Mon 1/24 Discussion 2: C Basics
Lab 1: C & CGDB Due 1/31
Tue 1/25 Lecture 3: C Intro - Pointers, Arrays, Strings
K&R 5-6
Thu 1/27 Lecture 4: C Memory (Mis)Management
K&R 7.8.5, 8.7 Project 1: snek Due 2/09
Fri 1/28 Homework 2: C Concepts Due 2/04
3 Tue 2/1 Lecture 5: Floating Point
P&H 3.5, 3.9
IEEE 754 Simulator
Discussion 3: Floating Point
Lab 2: C Memory Management, Valgrind Due 2/07
Thu 2/3 Lecture 6: Assembly, RISC-V Intro
P&H 2.1-2.3, 2.9-2.10
Fri 2/4 Homework 3: Floating Point Due 2/11
4 Tue 2/8 Lecture 7: RISC-V, RISC-V Functions
P&H 2.6-2.8, 3.2 Discussion 4: RISC-V Intro, Control Flow, ISA
Lab 3: RISC-V Assembly Due 2/14
Wed 2/9 Project 2: CS61Classify A: Due 2/23 B: Due 3/18
Thu 2/10 Lecture 8: RISC-V Instruction Formats
P&H 2.5, 2.10
Fri 2/11 Homework 4: RISC-V Due 2/18
5 Tue 2/15 Lecture 9: Compiler, Assembler, Linker, Loader (CALL)
P&H 2.12 Discussion 5: RISC-V Procedures, CALL
Lab 4: RISC-V Functions, Pointers Due 2/28
Thu 2/17 Lecture 10: Functional Units, Boolean Algebra
SDS Handout
Fri 2/18 Homework 5: Logic, Timing Due 2/25
6 Tue 2/22 Lecture 11: Introduction to Synchronous Digital Systems (SDS)
Discussion 6: SDS, Logic, Boolean Algebra
Thu 2/24 Lecture 12: RISC-V Datapath, Single-Cycle Control Intro
P&H 4.1, 4.3
Fri 2/25
7 Tue 3/1 Lecture 13: RISC-V Single-Cycle Control
P&H 4.4 Discussion 7: Single-Cycle Datapath
Lab 5: Logisim Due 3/09
Thu 3/3 Midterm: 7-9PM PT
Fri 3/4
8 Tue 3/8 Lecture 14: RISC-V 5-Stage Pipeline/Hazards
P&H 4.6-4.10 Discussion 8: Pipelining and Hazards
Lab 6: CPU, Pipelining Due 3/14
Thu 3/10 Lecture 15: Memory Hierarchy, Fully Associative Caches
P&H 5.1-5.4, 5.8-5.9, 5.13
Cache Flowchart
Fri 3/11 Homework 6: RISC-V Datapath Due 3/18
9 Tue 3/15 Lecture 16: Direct-Mapped & Set-Associative Caches, Cache Performance
P&H 5.1-5.4, 5.8-5.9, 5.13
Cache Flowchart
Discussion 9: Caches & AMAT
Lab 7: Caches Due 3/28
Wed 3/16 Project 3: CS61CPU A: Due 4/04 B: Due 4/13
Thu 3/17 Lecture 17: Multi-Level Caches, Cache Questions
P&H 5.1-5.4, 5.8-5.9, 5.13
Cache Flowchart
Fri 3/18 Homework 7: Caches Due 4/01
10 Mon 3/21 Spring Break
11 Tue 3/29 Lecture 18: Flynn's Taxonomy, Data-Level Parallelism
P&H 2.11, 4.10, 5.10, 6.5 Discussion 10: Data-level Parallelism
Lab 8: SIMD Instructions Due 4/04
Thu 3/31 Lecture 19: Amdahl's Law, Thread-Level Parallelism, OpenMP Introduction
P&H 2.11, 4.10, 5.10, 6.5
OpenMP Summary Card
Fri 4/1 Homework 8: Performance Programming Due 4/08
12 Tue 4/5 Lecture 20: Cache Coherence, OpenMP Sharing Issues, Performance
P&H 2.11, 4.10, 5.10, 6.5
OpenMP Summary Card
Discussion 11: AMAT, Coherency & Atomic, Parallelism
Lab 9: Thread-Level Parallelism Due 4/18
Thu 4/7 Lecture 21: Operating Systems
P&H 5.7, 5.8
Fri 4/8
13 Tue 4/12 Lecture 22: Virtual Memory
P&H 5.7, 5.8 Discussion 12: OS, Virtual Memory, and I/O
Wed 4/13 Project 4: Numc Due 4/28
Thu 4/14 Lecture 23: Virtual Memory II
P&H 5.2, 5.5, 5.11, A64-B66
Fri 4/15 Homework 9: Cache coherency, OS, Virtual Memory Due 4/25
14 Tue 4/19 Lecture 24: Virtual Memory III and I/O
P&H 5.2, 5.5, 5.11 Lab 10: Virtual Memory Due 4/25
Thu 4/21 Lecture 25: Dependability, Parity, ECC, RAID
Fri 4/22 Homework 10: I/O, ECC, Dependability Due 4/29
15 Tue 4/26 Lecture 26: Warehouse-Scale Computing
Discussion 13: Parity, ECC, WSC, & Raid
Thu 4/28 Lecture 27: Summary, What's Next?
Fri 4/29
16 Mon 5/2 RRR Week
17 Thu 5/12 Final: 8-11AM