CS61C Machine Structures. Summer 2011, UC Berkeley
CS61C Summer 2011
MTuWTh 9:30-11am 160 Kroeber

Timely Announcements

2011-08-16 Final Solutions/Rubric have been posted

Available here.

2011-08-02 Project 3 Face-to-Face signup sheet

Here is the link

2011-07-06 Michael's Extra OH

Michael will be holding extra OH this week on Thursday, 1-2pm in 651 Soda. This is in addition to his Wednesday 1-2pm OH.

2011-06-30 Project 1 has been posted

Please see the link below.

2011-06-27 MIPS Green Sheet

Here is a pdf of the MIPS green sheet.

2011-06-24 Week 2 Readings Posted

Try to read them before their corresponding lectures.

2011-06-17 Discussion sections to be held in 360 Hearst Mining Building

As part of a research project being done by the Berkeley Institute of Design, sections will be held in 360 HMB instead of their originally listed location. More information will be sent out shortly.

2011-06-17 Welcome to CS61C Summer 2011!

You will find important announcements here. Please check this page often. Welcome to CS61C!


Lecture, Reading, and Assignment Calendar

Homeworks (HW) are graded on correctness.
Policy on Assignments and Independent Work. With the exception of laboratories and assignments that explicitly permit you to work in groups, all homeworks and projects are to be YOUR work and your work ALONE. You are encouraged to discuss your assignments with other students, and extra credit will be assigned to students who help others, particularly by answering questions on the discussion forums, but we expect that what you hand is yours. It is NOT acceptable to copy solutions from other students. It is NOT acceptable 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. At the minimum a ZERO for the assignment, possibly an F in the course, and a letter to your university record documenting the incidence of cheating.

Wk Date Lecture Topic Reading Lab Assignment Due
1 06.20 M Course Introduction, Number Representation (6up pdf) (pdf) (pptx) P&H (4th): 1, 2.4 Lab 1: Simple C and Number Representation
06.21 Tu
Introduction to C (6up pdf) (pdf) (pptx) K&R: Chapters 1-4
Brian Harvey Notes on C (pdf)
HW0 (handed out in lecture Monday)

Turn in HW0 to your TA in lab

06.22 W
C Pointers, Arrays, Strings (6up pdf) (pdf) (pptx) K&R: Chapter 5 Lab 2: C Pointers and GDB
06.23 Th
C Memory Management, malloc (6up pdf) (pdf) (pptx) K&R: Chapter 6
Binky Pointer Fun Video
HW1: C
Due 6/26@23:59
TA: Justin
06.27 M
Using Malloc, MIPS Intro (6up pdf) (pdf) (pptx) P&H (4th): 2.1-2.3 Lab 3: Malloc
06.28 Tu
More MIPS (6up pdf) (pdf) (pptx) P&H (4th): 2.6 (ignore "We delayed..." paragraph on p.103),
2.7, 2.9, 3.2
06.29 W
MIPS Functions (6up pdf) (pdf) (pptx) P&H (4th): 2.8, B.6 Lab 4: Assembly Practice
06.30 Th
MIPS Instruction Formats(6up pdf) (pdf) (pptx) P&H (4th): 2.5, 2.10 HW2: MIPS, C
Due 7/3@23:59
TA - Sean
07.04 M
Holiday Lab 5: Pointers in Assembly Practice
07.05 Tu
Instruction Formats II, The Assembler (6up pdf) (pdf) (pptx) P&H (4th): 2.12, B.1-B.4
07.06 W
Running a Program, Floating Point (6up pdf) (pdf) (pptx) P&H (4th): 1.3 Lab 6: Linking, Floating Point
07.07 Th
Performance (6up pdf) (pdf) (pptx) P&H (4th): 1.4 Project 1: MIPS Simulator
Due 7/10@23:59
TA - Alvin
07.11 M
Direct Mapped Caches (6up pdf) (pdf) (pptx) P&H (4th): 5.1, 5.2 (p.457-470,474) Lab 7: Cache Blocking Midterm Review: 4 - 6pm, Wozniak Lounge (Problems PDF)
07.12 Tu
Cache Parameters and Performance. Set Associative Caches (6up pdf) (pdf) (pptx) P&H (4th): 5.3, 5.5
07.13 W
Technology Trends, Parallelism (6up pdf) (pdf) (pptx) P&H (4th): 1.5, 1.6, 7.1, 7.2 Lab 8: Data Level Parallelism
07.14 Th
The Flynn Taxonomy, Data Level Parallelism (6up pdf) (pdf) (pptx) P&H (4th): 7.2, 7.6 MIDTERM - Friday 7/15, 9am-12pm, 2050 Valley LSB
Detailed Q1/Q3 Rubric
07.18 M
Thread Level Parallelism: Multiprocessors, Cache Coherency (6up pdf) (pdf) (pptx) P&H (4th): 7.3, 5.8, 2.11 Lab 9: Thread Level Parallelism
07.19 Tu
Thread Level Parallelism: OpenMP (6up pdf) (pdf) (pptx) P&H (4th): 2.11
OpenMP Summary Card (pdf)
07.20 W
Hardware: Transistors to Gates (6up pdf) (pdf) (pptx) More details on lecture material: SDS Handout, Logic Handout Lab 10: Logisim Intro
07.21 Th
Gates to Functional Units, Registers (6up pdf) (pdf) (pptx) More details on lecture material: State Handout, Blocks Handout Project 2: Matrix Multiply Part 1
Due 7/24@23:59
TA - Sean
07.25 M
CPU Datapath (6up pdf) (pdf) (pptx) P&H (4th): 4.1, 4.2, 4.3 Lab 11: More Logisim
07.26 Tu
CPU Control, Pipelining Intro (6up pdf) (pdf) (pptx) P&H (4th): 4.4, 4.5
07.27 W
Instruction Level Parallelism: Pipelining (6up pdf) (pdf) (pptx) P&H (4th): 4.5, 4.6, 4.7, 4.8 (p. 375-379) Free Lab Time HW3: Digital Logic
Due 7/27@23:59
TA - Alvin
Solutions Question 7 Circ
(To download circ file: right-click, Save Link As)
07.28 Th
Instruction Level Parallelism: Multiple Instruction Issue (6up pdf) (pdf) (pptx) P&H (4th): 4.8 (p. 380-383), 4.10, 4.11 Project 2: Matrix Multiply Part 2
Due 7/31@23:59
TA - Sean
08.01 M
Protection, Virtual Memory (6up pdf) (pdf) (pptx) P&H (4th): 5.4-5.5, 5.10-5.12 Lab 12: Virtual Memory
08.02 Tu
Exceptions/Traps/Interrupts (6up pdf) (pdf) (pptx) P&H (4th): 4.9
08.03 W
Dependability: Parity, ECC, RAID (6up pdf) (pdf) (pptx) P&H (4th): 6.2, 6.9, (Optional) Berkeley RAID Paper (pdf) Free Lab Time
08.04 Th
Warehouse-Scale Computers (6up pdf) (pdf) (pptx) Warehouse-Scale Computers (pdf):
Ch 1, Ch 5.1-5.3
Project 3: CPU Design (notes)
Due 8/7@23:59
TA - Justin
08.08 M
MapReduce, Modern Microarchitectures (6up pdf) (pdf) (pptx) WSC: Ch 2.4, (Optional) MapReduce paper (pdf) Lab 13: MapReduce Final Review: 4-6pm, 277 Cory (Problems PDF)
08.09 Tu
RISC vs. CISC Retrospective, Misc Topics
(6up pdf) (pdf) (pptx) (RISC Talk 1981)
08.10 W
Course Summary (6up pdf) (pdf) (pptx) Wednesday, 8/10: In-person Project 3 grading
08.11 Th
--- FINAL - Thursday 8/11, 9am - 12pm, 2050 Valley LSB

Weekly Schedule

Monday Tuesday Wednesday Thursday Friday
9:30-11:00 LEC 160 Kroeber LEC 160 Kroeber LEC 160 Kroeber LEC 160 Kroeber  
11:00-12:00 101 DIS 360 Hearst Mining - Justin 101 LAB 200 Sutardja Dai - Justin 101 DIS 360 Hearst Mining - Justin 101 LAB 200 Sutardja Dai - Justin  
1:00-2:00   102 LAB 200 Sutardja Dai - Sean   102 LAB 200 Sutardja Dai - Sean  
2:00-3:00 102 DIS 360 Hearst Mining - Sean 102 DIS 360 Hearst Mining - Sean  
3:00-4:00 103 DIS 360 Hearst Mining - Alvin 103 LAB 200 Sutardja Dai - Alvin 103 DIS 360 Hearst Mining - Alvin 103 LAB 200 Sutardja Dai - Alvin  


Michael Greenbaum

Michael Greenbaum
Office Hours:MW 1-2, 651 Soda (Alcove)


Justin Hsia
Section: 101
OH: Tu 2-3, F 11-12, 411 Soda
Sean Soleyman
Section: 102
OH: W3-4, Th11-12 Moore Room (2nd Floor Cory Courtyard)
Alvin Yuan
Section: 103
OH: MW 12-1, 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. Our discussion forum, piazzza
    1. First read it to see if your question has already been asked
    2. If not, ask it and check back for your answer
  4. Ask your TA in discussion section, lab, or office hours
  5. Ask Michael in office hours
  6. Ask Michael in lecture
  7. Send your TA email
  8. Send Michael email. Note that this is by far the worst way to ask a question. Email as a communications medium simply does not scale to 100+ students.


Name Logins E-mail
Ken Cheng cs61c-aa -> cs61c-bh cs61c-rb
Leah Dorner cs61c-bi -> cs61c-cp cs61c-rc
Amanda Ren cs61c-cq -> cs61c-ez cs61c-rd

Resources and Handouts

See the Spring 2011 course webpage for an idea of what we will be doing this summer here.
Don't have a course login? instructions
Floating Point Java Demos: html
Obscure C notes: txt
Hilfinger notes: pdf
Reference card for GDB version 5: pdf | ps | dvi
Course discussion forum: piazzza

P&HK&R We will be using the fourth edition of Patterson and Hennessy's Computer Organization and Design book ("P&H").  This book is new; in fact, it has a 2008 copyright! (Don't get "Computer Architecture: A Quantitative Approach"  by the same authors; it is intended for a graduate course!).

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.

The subjects covered in this course include C and assembly language programming, how higher level programs are translated into machine language, the general structure of computers, interrupts, caches, address translation, CPU design, and related topics. The only prerequisite is that you have taken Computer Science 61B, or at least have solid experience with a C-based programming language.

An alumni-run alternative to the usual bookstores can be found at www.cTextbook.com

CS Illustrated

Integer Representations Comparing Integer Representations Comparing Integer Representations 2 Comparing Integer Representations 3
Floating Point Floating Point Interpretations Floating Point Number Line Caching Overview
Cache Types Cache Misses Pointers and Arrays Illustrations by

Ketrina Yim


CS61C, http://inst.eecs.berkeley.edu/~cs61c/ (Last Updated: 2011-07-07 @ 11:32)