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.

Tentative Calendar

Wk Date Lecture Topic Reading Section Lab Homework Project
101/16 TuIntro, Number RepresentationP&H: 2.4
Binary slides
Section 0: Number Representation
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 1: Intro, git, Number RepHW0: Number Representation

Mini-bio
(Due in 2nd Section)
Project 1: C
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 2: C and GDBHW1:
C to RISCV,
Instruction Format
Project 2-1: C and RISCV
02/01 ThRISCV, RISCV FunctionsP&H: 2.6 - 2.9, 2.10
Guerrilla Session: C & Memory Management
402/06 TuRISCV Instruction FormatsP&H: 2.5, 2.10Section 3:
RISCV II
Instruction Formats
Lab 3: Advanced C, Memory ManagementProject 2-2: RISCV
02/08 ThCompiler, Assembler, Linker, Loader (CALL)P&H: 2.12
Guerrilla Session: RISCV
502/13 TuMidterm 1Section 4:
RISCV Procedures
CALL
Lab 4: RISCV Assembly
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 5: RISCV Functions, PointersHW2: FSM, Logic
Project 3-1: ALU and Regfile
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 6: LogisimProject 3-2: CPU
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 7: Advanced LogisimHW3: Caches and Floating Point
03/08 ThCaches: Direct-mapped, Set-associative, Program Performance with CachesSee above
Guerrilla Session: Pipelining
903/13 TuMultilevel Caches, Cache QuestionsSee aboveSection 8: CachesLab 8: Pipelining and CPU Prep
03/15 ThPerformance, Floating Point, Tech TrendsP&H: 3.5. 3.9
IEEE 754 Simulator
Guerrilla Session: Caches
1003/20 TuMidterm 2Section 9: Floating Point, AMATLab 9: Caches
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 10: 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 11: SIMD InstructionsHW4: Parallelism Performance, WSC
Project 4: Performance Programming
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 12: 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 13: MapReduce and SparkHW5: VM, I/O, Parity, and ECC
Project 5: Spark
04/19 ThI/O: DMA, Disks, NetworkingP&H: 5.2, 5.5, 5.11
Guerrilla Session: Virtual Memory
1504/24 TuDependability: Parity, ECC, RAIDP&H: 5.5, A-64 to B-66
Berkeley RAID Paper
Section 14: Parity, ECC, RAIDLab 14: Virtual Memory
04/26 ThSummary, What's Next?None
RRR05/01 TuNO LECTURE
05/03 TuNO LECTURE
Final05/11Final (7-10 PM)
loading...

Staff

Instructors

Teaching Assistants (uGSIs)


Co-Head TA: Peijie Li
li_paige@berkeley
Specialty: Pipelining/Hazards

Co-Head TA: Dylan Dreyer
ddreyer@berkeley
Specialty: Caches

TA: Tejas Kannan
tkannan@berkeley
Sections: Dis 119/Lab 019
Specialty: Caches

TA: Derek Feng
kianex@berkeley
Sections: Dis 120/Lab 020
       Dis 126/Lab 026
Specialty: C Coding

TA: Nikhil Athreya
nathreya@berkeley
Sections: Dis 121/Lab 021
       Dis 123/Lab 023
Specialty: C

TA: Nick Riasanovsky
njriasanovsky@berkeley
Sections: Dis 125/Lab 025
       Dis 125/Lab 025
Specialty: Floating Point

TA: Ryan Hayes
r.hayes@berkeley
Sections: Dis 116/Lab 016
Specialty: SDS/FSM

TA: Morgan Rae Reschenberg
mreschenberg@berkeley
Sections: Dis 113/Lab 013
Specialty: Virtual Memory

TA: Anna Li
annajli@berkeley
Sections: Dis 114/Lab 014
Specialty: Caches

TA: Nathan Pemberton
nathanp@berkeley
Sections: Dis 117/Lab 017
Specialty: Virtual Memory

TA: Bob Dai
bdai@berkeley
Sections: Dis 112/Lab 012
Specialty: Virtual Memory

TA: Kevin Ma
kevinma.sd@berkeley
Sections: Dis 122/Lab 022
Specialty: I/O

TA: Qijing (Jenny) Huang
qijing.huang@berkeley
Sections: Dis 111/Lab 011
Specialty: Parallelism

TA: Ben Zhang
benzh@cs.berkeley
Sections: Dis 118/Lab 018
Specialty: C / Great Ideas / Network

TA: Irene Dea
irenedea@berkeley
Sections: Dis 115/Lab 015
Specialty: Virtual Memory

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