CS61C Great Ideas in Computer Architecture (Machine Structures). Summer 2014, UC Berkeley
P&HK&RWSC  
CS61C Summer 2014
MTuWTh 9:30-11am 100 Lewis





Calendar

Lecture, Reading, and Assignment Calendar

READ THE COURSE SYLLABUS. It is linked below in the "Reading" column. It has a lot of the details about the course logistics and policies you will want to know. But for emphasis, the cheating policy is reiterated below:

Policy on Assignments and Independent Work. Unless explicitly stated otherwise, all homeworks and projects are to be YOUR work and your work ALONE. You are encouraged to discuss your assignments with other students, but we expect that what you hand in is yours. It is NOT acceptable to copy solutions from other students or to copy (or start your) solutions from the Web. We have tools and methods, developed over many years, for detecting this. You WILL be caught, and the penalties WILL be severe. These include, at minimum:

  • NEGATIVE 100% for BOTH the cheater and the enabler on the assignment.
  • A letter to your university record documenting the incidence of cheating.
  • Consideration for an automatic F in the course at the discretion of the course staff.


Wk Date Lecture Topic Reading Notes Lab Assignment Due
1 06/23 M Course Introduction,
Number Representation
Course Syllabus
P&H (4th): 1.1-1.3, 1.6, 1.8, 2.4
P&H (5th): 1.1-1.5, 1.8, 1.10, 2.4
Section 1

J: Number Rep
Lab 1: Git
06/24 Tu
Introduction to C,
Pointers
K&R: Ch 1-4
Brian Harvey Notes on C (pdf)
HW0: Introduce Yourself
Due week 2 in lab
06/25 W
C Arrays, Strings,
More Pointers
K&R: Ch 5-6
Binky Pointer Fun Video
Section 2

J: Basic C
J: Arrays, Pointers
Lab 2: C Intro
and Number Rep

06/26 Th
C Memory Management and Usage K&R: 7.8.5, 8.7
HW1: Number Rep, Basic C (Solutions)
Due 6/29 @ 23:59:59
2
06/30 M
Intro to Assembly Language P&H (4th): 2.1-2.3, 2.6, 2.9, 3.2
P&H (5th): 2.1-2.3, 2.6, 2.9, 3.2
Section 3

J: Memory
J: Basic MIPS
Lab 3: Pointers
and Debugging

07/01 Tu
More MIPS,
MIPS Functions
P&H (4th): 2.7-2.8, B.6
P&H (5th): 2.7-2.8, A.6
07/02 W
MIPS Instruction Formats P&H (4th): 2.5, 2.10
P&H (5th): 2.5, 2.10
Section 4 [No Labs] HW2: C Programming (Solutions)
Due 07/04 @ 23:59:59
07/03 Th
Holiday HW3: MIPS (Solutions)
Due 07/06 @ 23:59:59
3
07/07 M
Running a Program P&H (4th): 2.12, B.1-B.4
P&H (5th): 2.12, A.1-A.4
Section 5 Lab 4: Malloc and
Assembly
07/08 Tu
Floating Point,
Performance
P&H (4th): 1.4
P&H (5th): 1.6
07/09 W
The Memory Hierarchy,
Fully Associative Caches
P&H (4th): 5.1, 5.2 (just to p.470)
P&H (5th): 5.1-5.3
Section 6

J: Floating Point
Lab 5: Functions
and Pointers
in Assembly
07/10 Th
Direct-Mapped Caches,
Set Associative Caches,
Cache Performance
P&H (4th): 5.3
P&H (4th): 5.4
Project 1: C and MIPS
Due 07/18 @ 23:59:59
4
07/14 M
Multilevel Caches,
Cache Questions
P&H (4th): 5.5
P&H (5th): 5.8
Section 7

J: Perf and Caches
Lab 6: Cache
Blocking
07/15 Tu
Performance Programming,
Technology Trends
07/16 W
The Flynn Taxonomy,
Data Level Parallelism
P&H (4th): 1.5, 1.6
P&H (5th): 1.7, 1.8
Section 8 Lab 7: Data Level
Parallelism
Midterm Review -- 12-3pm, 120 Latimer
07/17 Th
Amdahl's Law,
Thread Level Parallelism
P&H (4th): 7.1, 7.6
P&H (5th): 6.1, 6.3
HW4: FP and Caches (Solutions)
Due 07/22 @ 23:59:59
5
07/21 M
Review Lecture;
Old Midterm Problems
P&H (4th): 7.2, 7.3, 5.8, 2.11
P&H (5th): 6.2, 6.5, 5.10, 2.11
Section 9

A: Parallel, SIMD
J: TLP
Lab 8: Thread Level
Parallelism
MIDTERM -- 5-8pm 07/21, 2050 VLSB
07/22 Tu
OpenMP,
Transistors
OpenMP Summary Card (pdf)
07/23 W
Synchronous Digital Systems,
Boolean Algebra
More details on lecture material:
SDS Handout, Logic Handout
Section 10 Lab 9: Logisim
Intro
 
07/24 Th
Functional Units,
Finite State Machines
More details on lecture material:
State Handout, Blocks Handout
Project 2-1: Performance Optimization
Due 07/27 @ 23:59:59
6
07/28 M
MIPS CPU Datapath,
Control Intro
P&H (4th): 4.1-4.3
P&H (5th): 4.1-4.3
Section 11 Lab 10: Logisim
and Pipelining
07/29 Tu
MIPS CPU Control,
Pipelining Intro
P&H (4th): 4.4, 4.5, 4.6
P&H (5th): 4.4, 4.5, 4.6
07/30 W
Pipelining Hazards P&H (4th): 4.7, 4.8
P&H (5th): 4.7, 4.8
Section 12 Make-up Labs;
Work on Project 2
HW5: Digital Logic (Solutions)
Due 07/31 @ 23:59:59
07/31 Th
Multiple Instruction Issue,
Virtual Memory Intro
P&H (4th): 4.10, 4.11
P&H (5th): 4.10, 4.11
Project 2: Performance Optimization Part 2
Due 08/03 @ 23:59:59
7
08/04 M
Virtual Memory P&H (4th): 5.4, 5.11
P&H (5th): 5.7, 5.15
Section 13 Lab 11: Virtual Memory
08/05 Tu
More Virtual Memory,
Warehouse-Scale Computers
WSC: Ch 1, 2.4, 5.1-5.3
08/06 W
MapReduce [Optional] MapReduce paper (pdf) Section 14 Lab 12: MapReduce
08/07 Th
Dependability: Parity, ECC, RAID P&H (4th): 6.2, 6.9
P&H (5th): 5.5, 5.11
[Optional] Berkeley RAID Paper (pdf)
Project 3: CPU Design (logisim)
Due 08/10 @ 23:59:59
Project 2 Contest
Due 08/10 @ 23:59:59
8
08/11 M
I/O: Disks, Polling,
Exceptions & Interrupts
P&H (4th): 6.1, 6.3, 6.4, 6.6, 4.9
P&H (5th): 6.9, 5.2, 4.9
Section 15 Lab 13: GPU Programming
08/12 Tu
Course Summary and Review Final Review -- 2-5pm 8/09, 2060 VLSB
08/13 W
Special Topics: GP-GPU  
08/14 Th
[Study For Final]  
08/15 F
FINAL -- 9am-12pm, 155 Dwinelle



Weekly Schedule

Monday Tuesday Wednesday Thursday Friday
9:30-10:00 LECTURE
100 Lewis
LECTURE
100 Lewis
LECTURE
100 Lewis
LECTURE
100 Lewis
 
10:00-11:00 OH - Alan
651 Soda
11:00-12:00 101 DIS
Kevin
310 Hearst Mining
101 LAB
Kevin
330 Soda
106 LAB
Fred
200 SDH
101 DIS
Kevin
310 Hearst Mining
101 LAB
Kevin
330 Soda
106 LAB
Fred
200 SDH
12:00-1:00 106 DIS
Fred
3 Evans
OH - Kevin
611 Soda
106 DIS
Fred
3 Evans
OH - Kevin
611 Soda
 
1:00-2:00 105 DIS
David
310 Hearst Mining
102 LAB
Kevin
200 SDH
  105 DIS
David
310 Hearst Mining
102 LAB
Kevin
200 SDH
   
2:00-3:00 102 DIS
Kevin
310 Hearst Mining
OH - David
611 Soda
OH - Fred
611 Soda
102 DIS
Kevin
310 Hearst Mining
OH - Fred
611 Soda
 
3:00-4:00 103 DIS
Hokeun
310 Hearst Mining
103 LAB
Hokeun
200 SDH
103 DIS
Hokeun
310 Hearst Mining
103 LAB
Hokeun
200 SDH
 
4:00-5:00   OH - Hokeun
611 Soda
 
5:00-6:00 104 DIS
Andrew
9 Evans
104 LAB
Andrew
200 SDH
104 DIS
Andrew
9 Evans
104 LAB
Andrew
200 SDH
OH - Hokeun
611 Soda
 
6:00-7:00     OH - David
611 Soda
 
7:00-8:00   105 LAB
David
200 SDH
  105 LAB
David
200 SDH
OH - Andrew
411 Soda
8:00-9:00    



Staff

Alan Christopher
Instructor: Alan Christopher
alanchristopher@berkeley
OH: F 10am-12pm; 651 Soda

TA: David Adams
dadams@berkeley
Sections: 105
OH: M 2-3pm, Th 6-7pm; 611 Soda

TA: Fred Hong
fredhong@berkeley
Sections: 106
OH: T 2-3pm, Th 2-3pm; 611 Soda

TA: Hokeun Kim
hokeunkim@berkeley
Sections: 103
OH: W 4-5pm, Th 5-6pm; 611 Soda

TA: Kevin Liston
kmliston@berkeley
Sections: 101, 102
OH: M 12-2pm, W 12-2pm; 611 Soda

TA: Andrew Luo
andrewluo_cs61c@outlook.com
Sections: 104
OH: F 7-9pm; 411 Soda

If you have a question, here are the ways to get an answer, rated from best to worst:

  1. Search for the answer yourself.  Far too often students ask a question whose answer is available on this very page or on the top of assignment handouts.
  2. Ask a fellow classmate.
  3. Look for your question on Piazza, then ask a new one if necessary.
  4. Ask your TA during discussion section, lab, or office hours.
  5. Ask Alan in office hours.
  6. Ask Alan in lecture.
  7. Send your TA e-mail.
  8. Send Alan e-mail. Note that this is by far the worst way to ask a question. E-mail as a communications medium simply does not scale to 180+ students.

Readers

Name Grading Accounts E-mail
Harrison Wang ab-bm h.wang94@berkeley.edu
Jay Patel bn-cx patel.jay@berkeley.edu
Jhoong Seuk Roh cy-ei jhoong.roh@berkeley.edu
Lucas Yan ej-fr lucasyan@berkeley.edu
Nolan Lum fs-hh cs61c-rf@imail.eecs.berkeley.edu



Resources and Handouts

Reference card for GDB version 5:  (pdf | ps | dvi)
Harvey notes on C:  (pdf)
Hilfinger notes on Memory Management:  (pdf)
MIPS Green Sheet:  (pdf)
Floating Point Java Demos:  (html)

P&H We will be using the fifth edition of Patterson and Hennessy's Computer Organization and Design book ("P&H"), ISBN 0124077269.
K&R We are also requiring The C Programming Language, Second Edition by Kernighan and Ritchie ("K&R"), and will reference its sections in the reading assignments. Other books are also suitable if you are already comfortable with them, but our lectures will be based on K&R.
WSC Finally, we will be using The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines ("WSC"), which is freely available online here.

The subjects covered in this course include: C and assembly language programming, how higher level programs are translated into machine language, computer organization, caches, performance measurement, parallelism, CPU design, warehouse-scale computing, and related topics. The only prerequisite is that you have taken CS61B, or at least have solid experience with a C-based programming language.


PiazzaThe course discussion forum is hosted by Piazza. We will use this for asking and answering questions and making announcements.




CS Illustrated

Illustrations by Ketrina Yim (csillustrated.berkeley.edu)
Number
Representations:
Integer Representations Comparing Integer Representations Comparing Integer Representations 2 Comparing Integer Representations 3
Floating Point
Numbers:
Floating Point Floating Point Interpretations Floating Point Number Line
Caches: Caching Overview Cache Misses Cache Associativity
Pointers and
Arrays:
Pointers and Arrays

CS61C, http://inst.eecs.berkeley.edu/~cs61c/ (Last Updated: 2014-06-25 @ 20:45)