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


  • Join the class Piazza discussion forum here.
  • 9/4: Office Hours on Thursday 9/6 and Friday 9/7 before 5PM will not be at their regular location. The calendar will be is updated with the new location.
  • 9/5: Lab scores on glookup are being updated. Please wait until this message disappears to ask about any glookup scores.
  • 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: RISC-V AssemblyProject 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 ProceduresLab 5: RISC-V Procedures
09/26 WedFloating PointP&H: 3.5, 3.9
IEEE 754 Simulator
09/28 FriCompilation Assembly Linking LoadingTBA
Guerrilla Session: RISC-V, Wed 8-10 PM @ Cory 540AB
710/01 MonData Centers and Cloud ComputingThe Datacenter as a Computer: Ch 1, Ch 2.4, Ch 3, 5.1-5.3
P&H: 6.7
Section 6: CachesLab 6: CachesHW3: Caches, Floating Point
10/03 WedMapReduce, SparkMapReduce Paper
10/05 FriFlynn Taxonomy, SIMD InstructionsP&H: 1.6-1.8, 3.6, 5.15, 6.1-6.3
810/08 MonThread-Level Parallelism IP&H: 2.11, 4.10, 5.10, 6.5
OpenMP Summary Card
Section 7: Floating Point, CALLLab 7: MapReduce, SparkHW4: Predictive Ratings in Spark
10/10 WedSpecial Lecture: Dave Patterson (Colloquium)
10/12 FriThread-Level Parallelism IIP&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 IIIP&H: 2.11, 4.10, 5.10, 6.5
OpenMP Summary Card
Section 8: Cache Coherence, SynchronizationLab 8: Midterm Review
10/17 WedIntro to Synchronous Digital SystemsTBA
10/19 FriState, State Machines
Midterm 8-10 PM
1010/22 MonCombinatoral LogicTBASection 9: Instruction-Level ParallelismLab 9: Instruction-Level ParallelismProject 2-1: Shape from Stereo, ILP
Due 10/30 @ 23:59:59
10/24 WedCombinational Logic BlocksTBA
10/26 FriSingle-Cycle CPU DatapathTBA
1110/29 MonSingle-Cycle CPU Control ITBASection 10: Thread-Level ParallelismLab 10: Thread-Level ParallelismHW5: Digital Design, Finite State Machines
Project 2-2: Shape from Stereo, TLP
Due 11/06 @ 23:59:59
10/31 WedSingle-Cycle CPU Control IITBA
11/02 FriPipeliningTBA
Guerrilla Session: Datapath, SDS, Wed 8-10 PM @ Cory 540AB
1211/05 MonPipelining HazardsTBASection 11: Flynn Taxonomy, Data & Thread Level ParallelismLab 11: SIMD InstructionsHW6: Parallelism, Performance Programming
Project 3-1: ALU, Regfile
Due 11/13 @ 23:59:59
11/07 WedMultiple Instruction IssueTBA
11/09 FriVirtual Memory ITBA
1311/12 MonAdministrative Holiday (Veteran's Day)Section 12: PipeliningLab 12: CPU Design in LogisimProject 3-2: CPU
Due 11/27 @ 23:59:59
11/14 WedVirtual Memory IITBA
11/16 FriVirtual Memory IIITBA
1411/19 MonI/O Basics, InterruptsTBASection 13: NoneLab 13: None
11/21 WedAdministrative Holiday (Thanksgiving)
11/23 FriAdministrative Holiday (Thanksgiving)
1511/26 MonI/O DisksTBASection 14: Parity, ECC, RAIDLab 14: Virtual Memory
11/28 WedI/O NetworksTBA
11/30 FriSummary and Goodbye
Guerrilla Session: Virtual Memory, Wed 8-10 PM @ Cory 212 and Cory 293
RRR12/03 MonFinal Review Lecture
12/05 WedFinal Review Lecture
12/07 FriFinal Review Lecture
Final12/13 ThFinal (8-11 AM)

Weekly Schedule




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 283E 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 Reschenburg
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 Veergandham
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
Discussions: 128B
Labs: 128C
OH: Tu Cory 237 7-8PM

TA: Daniel Zhang
Discussions: 130B
Labs: 130C
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)