Great Ideas in Computer Architecture (Machine Structures)

UC Berkeley EECS

TuTh 3:30-5:00pm, 150 Wheeler

Instructors: John Wawrzynek, Nicholas Weaver

Great Ideas in Computer Architecture (Machine Structures)

UC Berkeley EECS

TuTh 3:30-5:00pm, 150 Wheeler

Instructors: Nicholas Weaver, John Wawrzynek

News

  • 1/11: View the course policies here.
  • 1/11: Join the class Piazza discussion forum here.
  • 1/11: Discussions start on 1/17. Labs start on 1/22.

Calendar

Wk Date Lecture Topic Reading Section Lab Homework Project
101/16 TuIntro, Number RepresentationP&H: 2.4
Binary slides
Section 0: Number RepresentationHW0: Number Representation
Due 01/24 @ 23:59:59

Mini-bio
(Due in 2nd Section)
01/18 ThC Intro, PointersBrian Harvey's Intro to C
K&R Ch. 1-5
201/23 TuC Arrays, Strings, PointersK&R Ch. 5-6
C Reference Slides
Section 1: C BasicsLab 0: Intro, git, Number RepProject 1: C
Due 02/01 @ 23:59:59
01/25 ThC Memory Management, UsageK&R: 7.8.5, 8.7
301/30 TuIntro to Assembly Language, RISCV IntroP&H: 2.1-2.3Section 2: C Memory Management and RISCV IntroLab 1: C and GDBHW1:
C to RISCV,
Instruction Format

Due 02/09 23:59:59
Project 2-1: C and RISCV
Due 02/16 @ 23:59:59
02/01 ThRISCV, RISCV FunctionsP&H: 2.6 - 2.9, 2.10
Guerrilla Session: C & Memory Management, 7-9 pm @ Soda 310
402/06 TuRISCV Instruction FormatsP&H: 2.5, 2.10Section 3:
RISCV II
Instruction Formats
Lab 2: Advanced C, Memory Management
02/08 ThCompiler, Assembler, Linker, Loader (CALL)P&H: 2.12
Guerrilla Session: RISCV, 7-9 pm @ Soda 310
502/13 TuMidterm 1 (7-9 pm)Section 4:
RISCV Procedures
CALL
Lab 3: RISCV AssemblyProject 2-2: RISCV
Due 02/23 @ 23:59:59
02/15 ThIntro to Synchronous Digital Systems (SDS), Logic

SDS Handout
Logic Handout
P&H: A.2-A.3
602/20 TuFunctional Units, FSMsBlocks Handout
P&H: A.3-A.6
State Handout
Section 5:
Logic and SDS
Lab 4: RISCV Functions, PointersHW2: FSM, Logic
Due 3/02 @ 23:59:59
02/22 ThRISCV Datapath, Single-Cycle Control IntroP&H: 4.1, 4.3, 4.4
702/27 TuRISCV Single-Cycle ControlP&H: 4.5-4.8Section 6: Single-Cycle DatapathLab 5: LogisimProject 3-1: ALU and Regfile
Due 03/07 @ 23:59:59
03/01 ThRISCV 5-Stage Pipeline/HazardsP&H: 4.10, 4.11
Guerrilla Session: SDS & Datapath Controls
803/06 TuMemory Hierarchy, Fully Associative CachesP&H: 5.1, 5.2, 5.3, 5.4, 5.8, 1.6
Cache Flowchart
Section 7: PipeliningLab 6: Pipelining and CPU PrepHW3: Caches and Floating Point
Due 3/16 11:59:59 PM for Caches, 3/23 11:59:59 PM for floating point
Project 3-2: CPU
Due 03/23 @ 23:59:59
03/08 ThCaches: Direct-mapped, Set-associative, Program Performance with CachesSee above
Guerrilla Session: Pipelining
903/13 TuMultilevel Caches, Cache QuestionsSee aboveSection 8: CachesLab 7: Caches
03/15 ThPerformance, Floating Point, Tech TrendsP&H: 3.5. 3.9
IEEE 754 Simulator
Guerrilla Session: Caches
1003/20 TuMidterm 2 (8-10 pm)Section 9: Floating Point, AMATLab 8: Study for Midterm
03/22 ThFlynn Taxonomy, Data-Level ParallelismP&H: 1.7, 1.8, 4.10, 4.11, 6.1, 6.2, 6.3, 6.7
1103/27 TuSpring Recess: No LectureSection 10: NoneLab 9: None
03/29 ThSpring Recess: No Lecture
1204/03 TuAmdahl's Law, Thread-Level Parallelism, OpenMP IntroP&H: 6.5, 5.10, 2.11
OpenMP Summary Card
Section 11: Flynn Taxonomy, Data & Thread Level ParallelismLab 10: SIMD InstructionsHW4: Parallelism, Performance Programming
Due 04/13 11:59:59 PM
Project 4: Performance Programming
Due 04/16 @ 23:59:59
04/05 ThCache Coherence, OpenMP Sharing Issues, PerformanceP&H: 5.10
1304/10 TuWarehouse Scale Computing, MapReduce (Spark)The Datacenter as a Computer: Ch 1, Ch 2.4, Ch 3, 5.1-5.3Section 12: Spark and WSCLab 11: Thread-Level Parallelism
04/12 ThOS Support, Base and Bounds, Interrupts, Virtual Memory IntroP&H: 5.13, 5.15, 5.16
Guerrilla Session: Parallelism & MapReduce
1404/17 TuVirtual Memory Part 2P&H: 6.9, 4.9Section 13: Virtual Memory and IOLab 12: MapReduce and SparkHW5: VM, I/O, Parity, and ECC
Due 4/27 @ 11:59:59 PM
Project 5-1: Microservices in Go
Due 4/30 @ 23:59:59
04/19 ThI/O: DMA, Disks, NetworkingP&H: 5.2, 5.5, 5.11
1504/24 TuDependability: Parity, ECC, RAIDP&H: 5.5, A-64 to B-66
Berkeley RAID Paper
Section 14: Parity, ECC, RAIDLab 13: Virtual MemoryProject 5-2: Microservices in Go: Testing
Due 4/30 @ 23:59:59
04/26 ThSummary, What's Next?None
Guerrilla Session: Virtual Memory
RRR05/01 TuNO LECTURE
05/03 TuNO LECTURE
Final05/11Final (7-10 PM)
loading...

Staff

Instructors


Instructor: John Wawrzynek
johnw@berkeley
OH: Tu,Th 2:30-3:30pm @631 Soda

Instructor: Nicholas Weaver
nweaver@icsi.berkeley
OH: Mo 1-3pm @329 Soda

Teaching Assistants (uGSIs)


Co-Head TA: Peijie Li
li_paige@berkeley
OH: M 2-3pm @651 Soda
Specialty: Pipelining/Hazards

Co-Head TA: Dylan Dreyer
ddreyer@berkeley
OH: Mo 10:30am-12pm @651 Soda
Specialty: Caches

TA: Tejas Kannan
tkannan@berkeley
Sections: Dis 119/Lab 019
       Dis 128/Lab 028
OH: Mo 11:15-12:15pm @651 Soda
   Thu 10:30am – 11:30am @651 Soda
Specialty: Caches

TA: Derek Feng
kianex@berkeley
Sections: Dis 120/Lab 020
       Dis 126/Lab 026
OH: Tu 5-7pm @611 Soda
Specialty: C Coding

TA: Nikhil Athreya
nathreya@berkeley
Sections: Dis 121/Lab 021
       Dis 123/Lab 023
OH: Fri 9-11am @651 Soda
Specialty: C

TA: Nick Riasanovsky
njriasanovsky@berkeley
Sections: Dis 124/Lab 024
       Dis 125/Lab 025
OH: Fri 12-2pm @651 Soda
Specialty: Floating Point

TA: Ryan Hayes
r.hayes@berkeley
Sections: Dis 116/Lab 016
OH: Fri 11-12pm @651 Soda
Specialty: SDS/FSM

TA: Morgan Rae Reschenberg
mreschenberg@berkeley
Sections: Dis 113/Lab 013
OH: Fri 12-1pm @283E Soda
Specialty: Virtual Memory

TA: Anna Li
annajli@berkeley
Sections: Dis 114/Lab 014
OH: Mo 11am-12pm @651 Soda
Specialty: Caches

TA: Nathan Pemberton
nathanp@berkeley
Sections: Dis 117/Lab 017
   Dis 127
OH: Tu 10-12pm @651 Soda
Specialty: Virtual Memory

TA: Bob Dai
bdai@berkeley
Sections: Dis 112/Lab 012
OH: Fri 2-3pm @283E Soda
Specialty: Virtual Memory

TA: Kevin Ma
kevinma.sd@berkeley
Sections: Dis 122/Lab 022
OH: Thu 5-6pm @411 Soda
Specialty: I/O

TA: Qijing (Jenny) Huang
qijing.huang@berkeley
Sections: Dis 111/Lab 011
       Lab 027
OH: Fri 4-6pm @611 Soda
Specialty: Parallelism

TA: Ben Zhang
benzh@cs.berkeley
Sections: Dis 118/Lab 018
OH: Wed 3-4pm/Thur 5-6pm @651 Soda
Specialty: C / Great Ideas / Network

TA: Irene Dea
irenedea@berkeley
Sections: Dis 115/Lab 015
OH: Tu 11:00-12:00pm @283E Soda
Specialty: Virtual Memory

Tutors


Tutor: Steven Chen
scchen@berkeley.edu

Tutor: Ehimare Okoyomon
eokoyomon@berkeley.edu

Tutor: Andy Yan
yan.andy4@berkeley.edu

Tutor: Lynn Zhou
lzhou123@berkeley.edu

Tutor: Anusha Dandamudi
adandamudi@berkeley.edu

Resources

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)
Past Exams:  (HKN, TBP)
Posters from CS Illustrated (Caches, FP, Number Rep, Pointers/Arrays):  (html)