CS61C Great Ideas in Computer Architecture (Machine Structures). Spring 2011, UC Berkeley
P&HK&RWSC  
CS61C Spring 2011
TuTh 2-3:30pm 2050 Valley LSB





Timely Announcements

2011-5-10 Final rubric is posted

here.

2011-5-2 Final review materials are

here as well as solutions.

2011-4-26 Deadline to correct online grade record is this Friday April 30.

Please take a minute now to double check that your 27 scores are all there and that they are correct: 12 labs, 8 projects (parts 1 and 2), 6 homeworks, and 1 midterm.

2011-3-11 Batch queue spec to ease load balancing problems on 200SD machines has been posted.

here (pdf).

html (badly-formatted)

2011-3-11 Midterm rubric is posted

here.

2011-3-6 Midterm review materials

Are here.

2011-3-5 Last year's midterm, with solutions

midterm
rubric/solutions

2011-1-8 Midterm and review session dates are updated

You can find it in the calendar.

2011-1-2 Make sure you are on both CS61C google groups ( Announcements Discussions )

If you are not a member of either one of these google groups, you should send an email to Andrew Gearhart or Charles Reiss for an invitation.

2010-12-27 Jump Start of Reading for 61C

The required textbooks are
1) Computer Organization and Design: The Hardware/Software Interface, 4th edition, by Patterson and Hennessy ("P&H") 2008. (Amazon sells it new for $64)
2) The C Programming Language, Second Edition by Kernighan and Ritchie ("K&R"), 1988. (Amazon sells it new for $51)
We doubt you could find the 1st edition of the C book, but while lots of earlier editions of P&H exist, you need the 4th edition of P&H book because it has lots of new material on parallelism, which is a major theme of new 61C.
(Students in the Fall asked me to warn you that the International or Asian edition of the P&H book, which is sold more cheaply to match the lower income of the 3rd world, is different from the US edition, no matter what the online site says. It uses ARM instead of MIPS as the example instruction set, so two chapters and two appendicies are completely different and other chapters may be as well.)
The first reading assignments in P&H is Chapter 2.
Since virtually 100% of 61C students in Fall already knew Java, and since Java is derived from C and shares some of the same syntax, we think most students could start writing C programs now and running them on their laptops. The first reading assignments are Chapter 1-3, and Chapter 6 sections 6.1 and 6.2. There is an C official answer book you can get that goes with this book so you could check your work if you want.
3) Finally, we offer another book for free for taking this course! The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines, by Luiz Andre Barroso and Urs Holzle, 2009, (WSC) which sells for $29 on Amazon, The authors are the two leading engineers at Google, and Google surely leads the world in WSC technology.
We have official permission to offer a free PDF that you have to OK to use as 61C students. Here is a link to the free version.
For the Spring 2011 edition of 61C, we decided to start lectures with warehouse scale computing. Thus, the first reading assignment is Chapter 1, Section 2.4, and Sections 5.1-5.3 of WSC. Its pretty easy reading.
We recommend reading the WSC book first, then K&R, and then P&H.

2010-12-24 HW and Project Late Policy

Homework assignments are to be submitted electronically by the indicated due time. Late submissions will not be credited!
Projects may be submitted up to two days late at a 20% penalty.
Projects later than two days (e.g., past midnight Tuesday) will not be credited!

2010-12-24 Welcome to CS61C Spring 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 and are due on Sundays by 23:59:59 (11:59:59pm) (except where noted otherwise)
Labs are to be completed during your 2-hour lab time! (unless your TA explicitly offers 'delayed-checkoff')
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 Google Group, 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 Section Lab Assignment Due
1
01/18
Tu
Introduction:
Trends--WSC to Multicore Computers (pdf) (pptx)
Warehouse-Scale Computers (PDF):
Ch 1, Ch 5.1-5.3
P&H (4th): 1.1-1.3
Section 1 Lab 1: Photos/Accounts HW#1
Due: 01/23@23:59:59
TA: Conor
solution
01/20
Th
Parallelism:
Data Parallel Map-Reduce
(pdf) (pptx)
WSC: 2.4
2
01/25
Tu
Introduction to C:
Basic Language Elements
(pdf) (pptx)
P&H (4th): 2.1-2.3, 2.6, 2.7, 2.9 Section 2: Read K&R Ch 2, 3, 6.1, 6.2 Lab 2: Map Reduce HW#2
Due: 01/30@23:59:59
TA: Yunsup
solution
01/27
Th
Introduction to C:
Pointers, Arrays, Strings
(pdf) (pptx)
P&H (4th): 2.8, 2.14
3
02/01
Tu
HW/SW Interface:
C to MIPS (pdf) (pptx)
P&H (4th): 2.10, 2.12 (pp. 139-142), 2.13 Section 3: Read K&R Ch 4, 5 Lab 3: EC2 HW#3 and Project 1 intermediate milestone
Due: 02/06@23:59:59
TA: Andrew G.
solution
02/03
Th
HW/SW Interface:
Functions and Numbers
(pdf) (pptx)
P&H (4th): 3.5 (pp. 242-250, 259-266), 3.8
4
02/08
Tu
HW/SW Interface:
Everything is a Number
(pdf) (pptx)
P&H (4th): 2.4, 3.5 (pp. 242-250) Section 4 Lab 4: C Practice & Debug Project#1: MapReduce
Due: 02/13@23:59:59
TA: Ari, Charles
02/10
Th
HW/SW Interface:
Compilation vs. Interpretation
(pdf) (pptx)
P&H (4th): 2.12, B.1-B.4
5
02/15
Tu
Computer Components
(pdf) (pptx)
P&H (4th): 1.1-1.3 Section 5 Lab 5: MIPS Assembly Practice HW#4 and Project 2 intermediate milestone
Due: 02/20@23:59:59
TA: Vasily
solution
02/17
Th
Quantitative Evaluation
(pdf) (pptx)
6
02/22
Tu
Memory Hierarchy:
Direct Mapped Cache
(pdf) (pptx)
P&H (4th): 5.1 Section 6 Lab 6: More MIPS Assembly Practice Project#2: MIPS Instruction Set Emulator
Due: 02/27@23:59:59
TA: Andrew W., Yunsup
02/24
Th
Memory Hierarchy:
Cache-Memory Interface & Perf
(pdf) (pptx)
P&H (4th): 5.2 (pp. 457-470), 5.3 (pp. 474-479)
7
03/01
Tu
Data Level Parallelism:
Flynn Taxonomy
(pdf) (pptx)
P&H (4th): 1.5, 1.6, 7.1, 7.2 Section 7 Lab 7: Cache Blocking
03/03
Th
Data Level Parallelism:
SSE SIMD Instructions
(pdf) (pptx)
P&H (4th): 7.4, 7.7
8
03/05
Sat
HKN Review, 3-6 PM, 306 SODA
Section 8 Lab 8: Data Level Parallelism
03/06
Su
Midterm Review, 2-5 PM, 2050 Valley LSB
03/08
Tu
Midterm, 6-9 PM, 145 & 155 Dwinelle
rubric
03/10
Th
Thread Level Parallelism:
Multiprocessor Cache Coherency
(pdf) (pptx)
P&H (4th): 7.3, 5.8
9
03/15
Tu
Thread Level Parallelism:
Open MP
(pdf) (pptx)
P&H (4th): 2.11
OpenMP Summary Card (pdf)
Section 9 Lab 9: Thread Level Parallelism
03/17
Th
HW:
Transistors/Gates/Flip-flops
(pdf) (pptx)
P&H (4th): C.4-C.11 (on CD); Logic Handout, State Handout

03/22
Tu
Spring Break HW#5
Due: 03/27@23:59:59
TA: Andrew W.
solution
Project#3: Matrix Multiply Performance Improvement
Part 1 Due: 03/27@23:59:59
TA: Andrew G., Vasily
03/24
Th
10
03/29
Tu
HW:
Datapath and Register Transfer
(pdf) (pptx)
Blocks Handout, SDS Handout Section 10 Lab 10: Logisim Project#3: Matrix Multiply Performance Improvement
Part 2 Due: 04/03@23:59:59
TA: Andrew G., Vasily
03/31
Th
HW:
Single Cycle CPU Datapath and Control
(pdf) (pptx)
P&H (4th): 4.1, 4.2, 4.3, 4.4
11
04/05
Tu
Instruction Level Parallelism:
Pipelined Datapath
(pdf) (pptx)
P&H (4th): 4.5, 4.6 Section 11 Lab 11: More Logisim HW#6
Due: 04/10@23:59:59
TA: Ari
Solution

Project#4: Processor Design
Part 1 Due: 04/10@23:59:59
TA: Conor
04/07
Th
Instruction Level Parallelism:
Multiple Instruction Issue
(pdf) (pptx)
P&H (4th): 4.7, 4.8
12
04/12
Tu
In More Depth:
Set-Associative Caches
Guest Lecturer: Krste Asanović
(pdf) (pptx)
P&H (4th): Rest of 5.2, 5.3 Section 12 Lab 12: C Memory Management Project#4: Processor Design
Part 2 Due: 04/17@23:59:59
TA: Conor
04/14
Th
In More Depth:
Dependability: Parity, ECC, RAID
(pdf) (pptx)
P&H (4th):
Dependability (Section 6.2)
Error Correction (pages C-65 to C-67 on CD)
RAID (Section 6.9)
13
04/19
Tu
In More Depth:
Protection/Virtual Memory
(pdf) (pptx)
P&H (4th): 5.3-5.5, 5.10-5.12, 6.2, C.8 Section 13 Face-to-face project 4 grading Project#3: Matrix Multiply Extra Credit
Extra Credit Due 04/24@23:59:59
04/21
Th
In More Depth:
Exceptions/Traps/Interrupts
(pdf) (pptx)
14
04/26
Tu
Programming Contest Results/Modern Microprocessors
(pdf) (pptx) (RISC Talk 1981)
Section 14
04/28
Th
RAID/Berkeley Culture/Course Retrospective
(pdf) (pptx)
Berkeley RAID Paper (PDF)
Reading Week
05/02
M
Final Exam Review, 5-8 PM, 2050 Valley LSB
Finals
05/09
M
Final Examination, 11:30 AM-2:30 PM, 100 Haas Pavilion



Weekly Schedule

Monday Tuesday Wednesday Thursday Friday
09:00-10:00         LAB 014 200 Dai
(Yunsup)
10:00-11:00     DIS 114 85 Evans
(Yunsup)
 
11:00-12:00     DIS 115 385 LeConte
(Andrew W.)
  LAB 015 200 Dai
(Andrew W.)
12:00-1:00        
1:00-2:00         LAB 016 200 Dai
(Andrew G.)
2:00-3:00   LEC 2050 Valley LSB
(2-3:30pm)
DIS 116 75 Evans
(Andrew G.)
LEC 2050 Valley LSB
(2-3:30pm)
3:00-4:00   DIS 117 3105 Etcheverry
(Andrew G.)
LAB 017 200 Dai
(Andrew G.)
   
4:00-5:00       LAB 011 200 Dai
(Conor)
5:00-6:00   DIS 111 2 Evans
(Conor)
  LAB 018 200 Dai
(Charles)
6:00-7:00   DIS 112 B56 Hildebrand
(Conor)
DIS 118 B51 Hildebrand
(Charles)
LAB 012 200 Dai
(Conor)
7:00-8:00     DIS 119 B56 Hildebrand
(Vasily)
LAB 019 200 Dai
(Vasily)
8:00-9:00   DIS 113 B56 Hildebrand
(Ari)
  LAB 013 200 Dai
(Ari)
9:00-10:00        



Staff

Randy H. Katz

Randy H. Katz
Instructor
randy@cs.berkeley.edu
Office Hours: M, 2pm-3pm, 449 SODA; W 1:30PM-2:30PM, 449 SODA

 

David A. Patterson

David A. Patterson
Instructor
pattrsn@cs.berkeley.edu
Office Hours: M, 11am-12pm, 449 SODA

 

Conor Hughes
cs61c-tb
Discussion Sections: 111, 112
Lab Sections: 011, 012
OH: Friday 12-2, 711 Soda
Ari Rabkin
cs61c-tc
Discussion Section: 113
Lab Section: 013
OH: Tuesdays, 4-5 PM in 751 Soda
Yunsup Lee
cs61c-td
Discussion Section: 114
Lab Section: 014
OH: Tuesdays, 5-6 PM in 751 Soda
Andrew Waterman
cs61c-te
Discussion Sections: 115
Lab Sections: 015
OH: Thursday 4-5, 611 Soda
 
 
Andrew Gearhart
cs61c-tf
Discussion Sections: 116, 117
Lab Sections: 016, 017
OH: Thursday 12-2PM, 611 Soda
Charles Reiss
cs61c-tg
Discussion Sections: 118
Lab Sections: 018
OH: Friday 2-3PM, 711 Soda
Vasily Volkov
cs61c-th
Discussion Section: 119
Lab Section: 019
OH: Friday 4-5PM, 751 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 Google group, 61CSpring2011UCB-announcements and 61CSpring2011UCB-disc
    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 Dave or Randy in office hours
  6. Ask Dave or Randy in lecture
  7. Send your TA email
  8. Send Dave or Randy email. Note that this is by far the worst way to ask a question. Email as a communications medium simply does not scale to 300+ students.

Readers

Name Section E-mail
Casey Lawler 111/112 cs61c-re
Lyle Mills 113 cs61c-rd
Omar Rehmane 114/115 cs61c-rb
Amanda Ren 116/117 cs61c-rf
Paul Ruan 118/119 cs61c-rc

Lab Assistants

TBD



Resources and Handouts

Don't have a course login? instructions
Floating Point Java Demos: html
Hilfinger notes: pdf
Reference card for GDB version 5: pdf | ps | dvi
Course newsgroup: instructions | web client

P&HK&RWSC 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.

We offer another book for free for taking this course. The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines ("WSC"), by Luiz Andre Barroso and Urs Holzle, 2009. We have official permission to offer a free PDF that you have to OK to use as 61C students. Here is a link to the free version.

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

csillustrated.berkeley.edu


CS61C, http://inst.eecs.berkeley.edu/~cs61c/ (Last Updated: Tuesday, 26-Apr-2011 10:55:39 PDT)