CS61C Machine Structures. Spring 2007, UC Berkeley
CS61C Spring 2007
MWF 1-2pm 2050 VLSB

Timely Announcements

05.24 Midterm Clobber Results
Here is the breakdown of how students performed on the midterm portion of the final with respect to the midterm.
05.16 Performance Contest Results
Results have now been posted. Students who participated have a score in glookup. Results only list the name of the person who made the submission.
05.14 Final Histogram
Here is the distribution for the final:

Old News

Lecture, Reading, and Quiz Calendar

Homeworks (HW) are graded on correctness and are due at 11:59pm every Wednesday (except where noted otherwise)
Quizzes are due Monday at 1259 (12:59pm) the week after which they are listed (The week starts with Sunday)
Labs are to be completed during your 2-hour lab time! (unless your TA explicitly offers 'delayed-checkoff')
Schedule subject to change

Wk Date Lecture Topic Reading Quiz Lab Homework / Exam
1 01-15 M Holiday -- Martin Luther King Jr. Holiday Week 1
(due 01-22)
Lab 01: Simple C and Number Rep. (html) HW0
01-17 W Course Info  
01-19 F Number Representation P&H Ch. 1, 3.1, 3.2 (exclude Fig. 3.1)
2 01-22 M Introduction to C K&R Chapters 1-4
C99 overview
C9x overview
Week 2 Lab 02: Ptrs & Strings (html) HW1
Due 01-24
TA: Michael
01-24 W C pointers, arrays, strings K&R Chapter 5
Supplemental Reading
01-26 F C structures, scanf, malloc K&R Chapter 6
3 01-29 M Memory Management I K&R: Sec. 7.8.5, 8.7 Week 3 Lab 03: Malloc (html) HW2
Due 01-31
TA: David
01-31 W Memory Management II Hilfinger notes: 10.1 - 10.4
02-02 F MIPS Intro P&H 2.1-2.3
4 02-05 M MIPS lw, sw, Decisions I P&H: 2.6, 2.9 (pg 95-96 only) Week 4 Lab 04: Assembly Practice (html) Proj1
Due 02-11
TA: Matt
02-07 W MIPS Decisions II P&H: 2.7, 2.9 (pg 95-96 only), A.6 (On CD)
02-09 F MIPS Procedures I P&H: 2.7, A.6 (On CD)
5 02-12 M MIPS Procedures II & Logic Ops P&H: Sec. 3.3, 2.5 Week 5
(Due 02-20)
Lab 05: Ptrs in Assembly Practice (html) HW3
Due 02-14
TA: Brian
02-14 W MIPS Instruction Format I P&H: Sec. 2.4, 2.9
02-16 F MIPS Instruction Format II ---
6 02-19 M Holiday -- President's Day
Week 6
Lab 06: Floating point (html) HW4
Due 02-22
TA: Alex
02-21 W Floating Point I P&H Sec 3.4 (pg 176, top 3 lines of 177, 181),
3.5 (pg 183, 188 (Divide in MIPS), 189), 3.6, 3.8
02-23 F Floating Point II P&H Sec 3.10 (On CD)
7 02-26 M MIPS instruction format III
  No Quiz Lab 07: Linking (html) Proj2
Due 03-09
TA: Aaron
TA: Valerie
02-28 W Compilation, Assembly, Linkage I P&H Sec 2.10, A.1-A.4 (On CD)
03-02 F Compliation, Assembly, Linkage II ---
8 03-04 Su Midterm Review -- 10 Evans, 2pm Week 8
Lab 08: FSM (html) Midterm
03-05 M
2050 VLSB, 7-10pm
Sample Midterm
Blank Midterm
Midterm Solution
Midterm Rubric
03-05 M Intro. to Synch. Digital Systems SDS Handout
03-07 W State Elements
P&H Appendix B.3-B.6 (On CD)
State Handout
03-09 F Combinational Logic
P&H Sec 7.3
Boolean Handout
9 03-12 M Combinational Logic Blocks Block Handout Week 9
Lab 09: Logisim Intro (html) HW5
Due 03-14
TA: Valerie
03-14 W Intro to CPU Design P&H Sec 5.3
03-16 F CPU Design: Single-cycle I  
10 03-19 M CPU Design: Single-cycle II P&H Sec 5.4 Week 10
Lab 10: FSM in Logisim (html) HW6
Due 03-21
03-21 W CPU Design: Control
03-23 F Recovery Oriented Computing
(Prof. Patterson)
S 03-26 M Holiday -- Spring Break
03-28 W
03-30 F
11 04-02 M CPU Design: Pipelining I P&H Sec 6.1, 6.2, 6.3
(Section 5.5 is interesting and useful as well)
Week 11
Lab 11: Pipeline (html) Proj3
Due: 04-06
TA: Alex
04-04 W CPU Design: Pipelining II P&H Sec 6.4, 6.5, 6.6
04-06 F Caches I P&H Sec 7.1
12 04-09 M Caches II P&H: 7.2 Week 12
Lab 12: Caches (html) HW7
Due 04-11
TA: Matt/Valerie
04-11 W Caches III P&H: 7.3
04-13 F Virtual Memory I P&H: 7.3-7.8
13 04-16 M Virtual Memory II --- Week 13
Lab 13: Virtual Memory (html) HW8
Due: 04-18
TA: Alex
04-18 W I/O Basics (Polling & Interrupts) P&H: 8.1, 8.5
04-20 F I/O Networks
P&H: 8.3 (on CD)
14 04-23 M I/O Disks P&H: 8.2, 8.10   Lab 14: Interrupts and Networking (html) Proj4
Due 04-27
TA: Brian
04-25 W Performance P&H: Chapter 4
04-27 F Writing REALLY Fast Code
15 04-30 M Reconfigurable Computing
---   Lab 15: Parallelism (html) HW2/Proj1 Redo
Due: 05-08
TA: Michael

Due: 05-10
05-02 W Parallel Computing in Software
05-04 F Parallel Computing in Hardware ---
F 05-07 M Summary, Review, and Evaluation --- --- --- Final Exam
Old Exams
05-09 W Final Review -- 10 Evans, 2pm
05-12 Sa Final Exam -- 2050 VLSB, 12:30-03:30pm

Weekly Schedule

Monday Tuesday Wednesday Thursday Friday
09:00-10:00     117 DIS
405 Soda
  017 LAB
271 Soda
10:00-11:00   111 DIS
320 Soda
  011 LAB
271 Soda
11:00-12:00   OH
511 Soda
711 Soda
016 LAB
271 Soda
751 Soda
12:00-01:00 OH
511 Soda
112 DIS
320 Soda
116 DIS
320 Soda
012 LAB
271 Soda
01:00-02:00 LEC 2050 VLSB OH
511 Soda
02:00-03:00     OH
2050 VLSB
Prof. Garcia
013 LAB
271 Soda
113 DIS
405 Soda
04:00-05:00       014 LAB
271 Soda
05:00-06:00   114 DIS
320 Soda
751 Soda
271 Soda
06:00-07:00 118 DIS
320 Soda
115 DIS
320 Soda
018 LAB
271 Soda
  015 LAB
271 Soda
07:00-08:00     OH
271 Soda


Alex Kronrod
Alex Kronrod
Sec 11/111 and 12/112

Dan Garcia

Dan Garcia
Lecturer SOE
795 Soda Hall, (510) 642-9595, ddgarcia@cs.berkeley.edu
Office Hours: W 2-3pm (2050 VLSB)
Asst: Audrey Raya 385 Soda, 642-7699, araya@eecs


Aaron Staley
Aaron Staley
Sec 13/113

Matt Johnson
Matt Johnson
Sec 14/114

Brian Nguyen
Brian Nguyen
Sec 15/115

David Poll
David Eitan Poll
Sec 16/116

Michael Le
Michael Le
(Head TA)
Sec 17/117

Valerie Ishida
Valerie Ishida
Sec 18/118


Name Accounts E-mail
Szehon Ho aa-cf cs61c-rc@imail.eecs
Tim Wu cg-eq cs61c-rd@imail.eecs
Keaton Mowery er-gz cs61c-re@imail.eecs
Yang Xia ha-jz cs61c-rb@imail.eecs

TA's in Training

Name E-mail
Pamela Lee cs61c.pam@gmail.com
Alexander Zorbach  
Omar Akkawi cs61c-lg@imail.eecs.berkeley.edu
Ofer Sadgat  

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 newsgroup, ucb.class.cs61c
    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 Dan in office hours
  6. Ask Dan in lecture
  7. Send your TA email
  8. Send Dan email. Note that this is by far the worst way to ask a question. Email as a communications medium simply does not scale to 200+ students.

Resources and Handouts

CPS Class Key for Spring 2007: F22859H181
Hilfinger notes: pdf
Reference card for GDB version 5: pdf | ps | dvi (This is the version installed on the lab machines)
Reference card for GDB version 4: pdf | ps
The C Programming Language online text: link (missing pictures)
A guide to connect to the instructional machines: (Mac, Windows)
Installing Cygwin, a UNIX-environment for Windows: (link)
Setting Breakpoints with Labels in SPIM Guide: (link)
SPIM Downloads: (Linux Src, Cygwin Binary)

P&HK&R We will be using the third edition of Patterson and Hennessy's Computer Organization and Design book ("P&H").  (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 pre-lecture quizzes 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

CS61C, http://inst.eecs.berkeley.edu/~cs61c/ (Last Updated: 2007-05-24 @ 09:51)