Great Ideas in Computer Architecture (Machine Structures)

UC Berkeley EECS

MWF 4:00-5:00pm, Dwinelle 155

Instructors: Dan Garcia, Borivoje Nikolic

Great Ideas in Computer Architecture (Machine Structures)

UC Berkeley EECS

MWF 4:00-5:00pm, Dwinelle 155

Instructors: Dan Garcia, Borivoje Nikolic


  • In light of the poor air quality we have decided to have the same number of in person lectures. We will not hold an in person lecture for either I/O: Basics and Interrupts or I/O Disks and Networks. Instead we have decided you need to watch lectures from Fall 2017 to cover the same material. In particular you should watch lecture 22 from 28:00 to 1:09:47 and lecture 24 from 17:50 to 50:00 and 57:42 to the end. You are still responsible for learning this material and it is in scope for the final but this is our attempt to let you have a full deadweek for this class. Slides for the lectures can be found here and in pdf form here
  • If you have any questions or concerns about the course please email


Wk Date Lecture Topic Reading Section Lab Homework Project
108/22 WedGreat Ideas in Computer Architecture, IntroCourse PoliciesLab 0: Intro, Git, ShellHW0: Introduce Yourself
Due 08/24 23:59:59
08/24 FriNumber RepresentationP&H: 2.4
Binary slides
208/27 MonC Intro: BasicsK&R Ch. 1-5
C Reference Slides
Brian Harvey's Intro to C
Section 1: Number RepresentationLab 1: Number Representation, C, CGDBHW1: C, Number Representation
Due 08/31 23:59:59
08/29 WedC Intro: Pointers, Arrays, StringsK&R: 5-6
08/31 FriC Memory ManagementK&R 7.8.5, 8.7
309/03 MonAdministrative Holiday (Labor Day)Section 2: C BasicsLab 2: Advanced CHW2: rgrep
Due 09/07 23:59:59
09/05 WedRISC-V IntroP&H: 2.1-2.3
09/07 FriRISC-V lw, sw, Decisions IP&H: 2.9, 2.10
Guerrilla Session: Number Representation, C, Memory Management, Wed 8-10 PM @ 271, 273, 275 Soda
409/10 MonRISC-V Decisions II
Quest 8-9PM
P&H: 2.6, 2.7, 3.2Section 3: RISC-V IntroLab 3: C to RISC-VProject 1-1: Shape from Stereo, in C
Due 09/20 @ 23:59:59
09/12 WedRISC-V ProceduresP&H: 2.8
09/14 FriRISC-V Instruction Formats IP&H: 2.5, 2.10
509/17 MonRISC-V Instruction Formats IIP&H: 2.5, 2.10Section 4: RISC-V Control Flow, ISALab 4: NoneProject 1-2: Shape from Stereo, in RISC-V
Due 10/01 @ 23:59:59
09/19Caches IP&H: 5.1, 5.2, 5.3, 5.4, 5.8, 5.9, 5.13
Cache Flowchart
09/21Caches IIP&H: 5.1, 5.2, 5.3, 5.4, 5.8, 5.9, 5.13
Cache Flowchart
609/24 MonCaches IIIP&H: 5.1, 5.2, 5.3, 5.4, 5.8, 5.9, 5.13
Cache Flowchart
Section 5: RISC-V Procedures, CachesLab 5: RISC-V ProceduresHW3: Bonus HW
Due 10/01 23:59:59
09/26 WedCaches IVP&H: 5.1, 5.2, 5.3, 5.4, 5.8, 5.9, 5.13
Cache Flowchart
09/28 FriFloating PointP&H: 3.5, 3.9
IEEE 754 Simulator
710/01 MonCompilation, Assembly, Linking, LoadingP&H: 2.12Section 6: Caches II, Floating PointLab 6: CachesHW4: Caches, Floating Point
Due 10/7 23:59:59
10/03 WedData Centers, Cloud ComputingThe Datacenter as a Computer: Ch 1, Ch 2.4, Ch 3, 5.1-5.3
P&H: 6.7
10/05 FriMapReduce, SparkThe Datacenter as a Computer: Ch 1, Ch 2.4, Ch 3, 5.1-5.3
P&H: 6.7
Guerrilla Session: RISC-V, Wed 8-10 PM @ Cory 540AB
810/08 MonFlynn Taxonomy, SIMD InstructionsP&H: 1.7, 1.8, 4.10, 4.11, 6.1, 6.2, 6.3, 6.7Section 7: CALL, WSC, MapReduce, SparkLab 7: MapReduce, SparkHW5: Predictive Ratings in Spark
Due 10/14 23:59:59
10/10 WedSpecial Lecture: Dave Patterson (Colloquium)
10/12 FriThread-Level Parallelism IP&H: 2.11, 4.10, 5.10, 6.5
OpenMP Summary Card
Guerrilla Session: Caches, Parallelism, Wed 8-10 PM @ Cory 540AB
910/15 MonThread-Level Parallelism IIP&H: 2.11, 4.10, 5.10, 6.5
OpenMP Summary Card
Section 8: Data-level ParallelismLab 8: Midterm Review, Parallelism Readings
10/17 WedThread-Level Parallelism IIIP&H: 2.11, 4.10, 5.10, 6.5
OpenMP Summary Card
10/19 FriIntro to Synchronous Digital Systems
Midterm 8-10 PM
SDS Handout
1010/22 MonState, State MachinesP&H: A.3-A.6
State Handout
Section 9: Parallelism, SDSLab 9: ParallelismProject 2-1: Shape from Stereo, ILP
Due 10/30 @ 23:59:59
10/24 WedCombinational LogicP&H: A.2-A.3
Logic Handout
10/26 FriCombinational Logic BlocksBlocks Handout
1110/29 MonSingle-Cycle CPU Datapath IP&H: 4.1. 4.3Section 10: LogicLab 10: LogisimProject 2-2: Shape from Stereo, TLP
Due 11/06 @ 23:59:59
10/31 WedSingle-Cycle CPU Datapath IIP&H: 4.4
11/02 FriSingle-Cycle CPU ControlP&H: 4.4, 4.5
Guerrilla Session: Datapath, SDS, Wed 7-10 PM @ Cory 540AB
1211/05 MonPipeliningP&H: 4.6Section 11: Single-Cycle DatapathLab 11: CPU Design in LogisimProject 3-1: ALU, Regfile
Due 11/16 @ 23:59:59
11/07 WedPipelining IIP&H: 4.7, 4.8
11/09 FriPipelining IIIP&H: 4.10
1311/12 MonAdministrative Holiday (Veteran's Day)Section 12: PipeliningLab 12: Project 3 Work DayProject 3-2: CPU
Due 12/2 @ 23:59:59
11/14 WedVirtual Memory IP&H: 5.7-5.8
11/16 FriLecture Cancelled Due to Poor Air Quality
1411/19 MonLecture Cancelled Due to Poor Air QualitySection 13: NoneLab 13: None
11/21 WedAdministrative Holiday (Thanksgiving)
11/23 FriAdministrative Holiday (Thanksgiving)
1511/26 MonVirtual Memory IIP&H: 5.7-5.8Section 14: Final Review, Virtual MemoryLab 14: Virtual Memory
11/28 WedVirtual Memory IIIP&H: 5.7-5.8
11/30 FriSummary and Goodbye
Guerrilla Session: Virtual Memory, Wed 8-10 PM @ Cory 212 and Cory 293
RRR12/03 MonTA Final Review Part 1 (post Midterm)
12/05 WedTA Final Review Part 2 (up through Midterm)
12/07 Fri
Final12/13 ThFinal (8-11 AM)



Instructor: Dan Garcia
OH: Fri 777 Soda Hall 11AM-12PM

Instructor: Borivoje Nikolic
OH: Th 509 Cory 11AM-12PM

Teaching Assistants (uGSIs)

Co-Head TA: Kevin Lin

Co-Head TA: Nick Riasanovsky
OH: Fri 341A Soda 12-1PM

TA: Jonathan Murata
Discussions: 101B/112B
Labs: 101C/112C
OH: Tu/Th 283E Soda 4-5PM

TA: Catherine Han
Discussions: 115B/116B
Labs: 115C/116C
OH: Tu/Th 283E Soda 5-6PM

TA: Derek Feng
Discussions: 105B/118B
Labs: 105C/118C
OH: Mon Cory 237 6-8PM

TA:Hersh Godse
Discussions: 122B/129B
Labs: 122C/129C
OH: Th Cory 237 6-8PM

TA: Morgan Rae Reschenberg
Discussions: 107B/121B
Labs: 107C/121C
OH: Th 283E Soda 1-3PM

TA: Sean Farhat
Discussions: 113B/126B
Labs: 113C/126C
OH: Tu Cory 237 6-7PM
Wed Cory 237 7-8PM

TA: Sruthi Veeragandham
Discussions: 106B/120B
Labs: 106C/120C
OH: Tu Cory 237 6-8PM

TA: Matt Weber
Discussions: 111B
Labs: 111C
OH: Th 283E Soda 3-4PM

TA: Murphy McCauley
Discussions: 114B
Labs: 114C
OH: Tu 283E Soda 2-3PM

TA: Alex Thomas
Discussions: 103B
Labs: 103C
OH: Wed Cory 237 6-7PM

TA: Alex Yang
Discussions: 123B
Labs: 123C
OH: Tu 283E Soda 3-4PM

TA: Alvin Hsu
Discussions: 109B
Labs: 109C
OH: Fri 283E Soda 1-2PM

TA: Andy Yan
Discussions: 110B
Labs: 110C
OH: Fri 283E Soda 3-4PM

TA: Bob Dai
Discussions: 104B
Labs: 104C
OH: Wed 283E Soda 5-6PM

TA: Damon Anderson
OH: Tu Cory 237 7-8PM

TA: Daniel Zhang
Discussions: 130B
OH: Wed Cory 237 6-7PM

TA: Divi Kumar
Discussions: 117B
Labs: 117C
OH: Wed Cory 237 7-8PM

TA: Emily Gosti
Discussions: 125B
Labs: 125C
OH: Tu 283E Soda 4-5PM

TA: Joe Deatrick
Discussions: 124B
Labs: 124C
OH: Tu 283E Soda 5-6PM

TA: Sharie Wang
Discussions: 127B
Labs: 127C
OH: Tu 283E Soda 3-4PM

TA: Spencer McCall
Discussions: 119B
Labs: 119C
OH: Mon 283E Soda 5-6PM

TA: Stephan Kaminsky
Discussions: 108B
Labs: 108C
OH: Fri 283E Soda 2-3PM

TA: Victor Sun
Discussions: 102B
Labs: 102C
OH: Tu 283E Soda 1-2 PM


Tutor: Anusha Dandamudi
Tutoring Session 1: Wed 1-2PM TBA
Tutoring Session 2: Fri 10-11AM TBA

Tutor: Cameron Cowles
Tutoring Session 1: Wed 11AM-12PM TBA
Tutoring Session 2: Fri 11AM-12PM TBA

Tutor: Daniel Li
Tutoring Session 1: Mon 9-10AM Kresge 110 ME
Tutoring Session 2: Tu 10-11AM Kresge 110 ME

Tutor: Henry Sun
Tutoring Session 1: Wed 9-10AM TBA
Tutoring Session 2: Fri 9-10AM TBA

Tutor: Morgan Fong
Tutoring Session 1: Mon 12-1PM 283H Soda
Tutoring Session 2: Th 11AM-12PM Kresge 110MA

Tutor: Ryan Ong
Tutoring Session 1: Tu 11AM-12PM TBA
Tutoring Session 2: Wed 3-4PM TBA

Tutor: Wenyuan Ma
Tutoring Session 1: Wed 10-11AM TBA
Tutoring Session 2: Th 10-11AM TBA

Tutor: Yuxin Ji
Tutoring Session 1: Mon 1-2PM TBA
Tutoring Session 2: Tu 9-10AM TBA

Tutor: Ziyun Zhao
Tutoring Session 1: Mon 2-3PM TBA
Tutoring Session 2: Mon 3-4PM TBA


GDB reference card (version 5):  (pdf | ps | dvi)
Git resources:  (cheat sheet | flow guide)
Harvey notes on C:  (pdf)
Hilfinger notes on Memory Management:  (pdf)
RISC-V Green Card:  (pdf)
Venus (Keyhan Vakil's RISC-V Emulator):  (Venus)
Venus v2.0 (Stephan Kaminsky's fork of Keyhan Vakil's RISC-V Emulator):  (Venus v2.0)
Past Exams:  (HKN, TBP)
Posters from CS Illustrated (Caches, FP, Number Rep, Pointers/Arrays):  (html)