CS61C Machine Structures. Spring 2003, UC Berkeley
CS61C Spring 2003
MWF 4-5pm, 155 Dwinelle


News | Calendar | Schedule | Staff | Resources | Webcast | Newsgroup | WebNews



Timely Announcements

6/5/2003 Have a good summer!
6/5/2003 grade status
Course grades have been submitted. Final exams were read twice and project scores reviewed for everyone within 5 points of a grade boundary. Resulting adjustments to exam or project scores were not submitted to the glookup system. Participation points were counted, though they also will not appear in glookup output. Grades were assigned according to the scale advertised in the "General Information" handout. The class average was 2.85, somewhat on the high side of the EECS guidelines, which suggest an average grade of 2.5-2.9 for lower division courses.
6/5/2003 procedure for reviewing your final exam
Final exams, solutions and grading standards will be available for inspection in the CS office by June 9. We apologize for the delay for those of you who were planning on reviewing your exam on the 6th.
[Old News]



Lecture, Reading, and Quiz Calendar

Unless otherwise marked, all quizzes are mandatory and are due at noon on the day of the lecture for which they are assigned. Homework submissions are due at 3:45pm on Wednesdays.
Week Lecture Topic Lab Project Homework Quizzes Reading
Week 1
1/20
Mon: MLK Day       Mon: no quiz. K&R sections 1.1-1.5, 1.7, 1.8, chapter 2 except material on arrays, sections 3.1-3.7 except material on arrays, and 4.1 and 4.2.
Wed: Course Introduction Running gcc and gdb; studying character and number representations   hw1.pdf (solutions and grading standards) Wed: no quiz.
Fri: Brief survey of "elementary" C Fri: No quiz.
Week 2
1/20
Mon: Introduction to C pointers and arrays; variables allocated on the system stack Mon: quiz (solutions) K&R sections on arrays in chapters 1-4, and sections 4.10, 5.1-5.10 and 6.1-6.5.
Wed: more on pointers vs. arrays; strings; structs; malloc Using malloc hw2.pdf(solutions and grading standards) Wed: quiz (solutions)
Fri: Review; double indirection; command-line arguments Fri: no quiz
Week 3
2/3
Mon: Storage regions; implementation of mallocand free Mon: quiz (solutions) K&R sections 6.6-6.9, 7.8.5, and 8.7; "Storage management" in "CS 61C Readings"
Wed: The "boundary tags" method of storage allocation; alternative methods Working with gcc's storage allocator Project 1: Lisp Interpreter (due Wed 2/19) (solution, grading standards) hw3.pdf(solutions and grading standards) Wed: quiz (solutions)
Fri: Memory management with automatic freeing Fri: no quiz
Week 4
2/10
Mon: Introduction to assembly language (handout: C vs. assembly language) Mon: quiz (solutions) P&H sections 3.1-3.3, 3.5-3.7, 3.10-3.11
Wed: More on load; running programs; functions in assembly language; register names Practice running assembly language programs hw4.pdf (grading standards, solution to #1, solution to #2) Wed: quiz (solutions)
Fri: More assembly language examples Fri: no quiz
Week 5
2/17
Mon: Presidents Day Mon: no quiz since no lecture. P&H sections 3.4, 3.8, and 4.1-4.3.
Wed: Machine language and instruction representation

MIPS ISA

Practice with pointers in assembly language Project 2: sprintf (due Wed 3/12) (solution, grading standards) No homework this week because of exam on 2/26 Wed: quiz.
Fri: Integer representation and operations(ppt) Fri: no quiz
Week 6
2/24
Mon: Floating point representation and operations
Mon: Midterm 1 review session (6:30pm, 0050 Birge Hall) Slides: ppt (part [1] [2] [3]), pdf (part [1] [2] [3]), [3 solutions]
Mon: quiz. P&H sections 4.8-4.10
Wed: exam 1

Experimenting with integer and floating point representations hw6.pdf (solutions and grading standards) Wed: no quiz
Fri: More on floating point; information about the midterm Fri: no quiz
Week 7
3/3
Mon: Assemblers and linkers Mon: quiz P&H sections 3.9 and A.2-A.4; K&R sections 4.3-4.6
Wed: exam 1b Working with .o and a.out files hw7.pdf (solutions and grading standards) Wed: No quiz
Fri: More on linkers; compilers vs. interpreters Fri: no quiz
Week 8
3/10
Mon: Input and output Mon: quiz P&H sections 8.3, 8.5, 8.9, A.7, and A.8
Wed: The big picture of interrupt handling; the role of buffers Input and output by polling Project 3: Interrupt Handler in MIPS (due Wed 4/2) (solution, grading standards)   Wed: quiz.
Fri: Exceptions; details of interrupt-driven i/o Fri: no quiz
Week 9
3/17
Mon: More interrupt handling; C and MIPS logical and bit-level operations Mon: quiz P&H sections 4.4, 4.5, and B.1-B.3
Wed: Introduction to logic design Practice with interrupt handing code hw9.pdf (solutions and grading standards) Wed: quiz.
Fri: More combinational logic examples; PLAs; finite state machines Fri: no quiz
3/24

Spring Recess


 
Week 10
3/31
Mon: Introduction to Verilog   Mon: quiz P&H sections B.4-B.6; "Verilog tutorial" sections 1-5
Wed: More Verilog; CPU organization Introduction to Verilog Project 4: MIPS hardware simulator (due Wed 4/23) (solution)   Wed: quiz
Fri: Verilog and CPU organization Fri: no quiz
Week 11
4/7
Sun: Midterm 2 review session (6:30pm, 10 Evans Hall) Slides: ppt (part [1] [2] [3]), pdf (part [1] [2] [3])

Mon: Single CPU control; sequential logic

Mon: quiz P&H sections 4.5, 5.1-5.3, and B.4-B.6; "Verilog tutorial" sections 6-9
Wed: exam 2. A Verilog adder Wed: no quiz
Fri: More on CPU organization Fri: no quiz
Week 12
4/14
Mon: Pipelining Mon: quiz P&H sections 6.1 and 6.9 (6.2-6.6 are good background but not required)
Wed: Pipelining (continued) Sequential machines in Verilog   Wed: quiz.
Fri: Pipeline-related optimizations; modern instruction execution Fri: no quiz
Week 13
4/21
Mon: Caches Mon: quiz P&H sections 7.1-7.3
Wed: Associative caches (examples) Inferring cache parameters Project 5: ISA and cache simulator(due Mon 5/12)   Wed: quiz.
Fri: More on caches Fri: no quiz
Week 14
4/28
Mon: Virtual Memory [ppt][pdf] Mon: Midterm 3 review session (6:30pm, 100 Lewis Hall) Slides: ppt (part [1] [2]), pdf (part [1] [2] [3])

Mon: quiz P&H sections 7.4-7.8
Wed: exam 3 course survey   Wed: no quiz
Fri: Virtual Memory (continued) Fri: no quiz
Week 15
5/5
Mon: Performance Mon: quiz P&H chapter 2
Wed: Networks Experimenting with the Internet   Wed: quiz (deadline is 5/13 at 12:15pm).
Fri: Networks (continued) Fri: no quiz
Week 16
5/12
Mon: Review Mon: quiz (deadline is 5/13 at 12:15pm)  
Wed: no class      
Fri: no class
Week 17
5/19
Sunday 5/18: Review Session #1 (100 Lewis, 2:00-5:00pm)
   c/malloc/pointers [PPT] [PDF] [PPT - ex] [PDF - ex]
   heap management [PDF] [PDF - 2spp] [PDF - ex]
   assembly/machine language [PDF] [PDF - 2spp] [PDF - ex]
Monday 5/19: Review Session #2 (10 Evans, 8:00-11:00pm)
   caches/virtual memory [PPT] [PDF] [PPT - ex] [PDF - ex]
   number representation [HTML] [Solutions]
   interrupts/IO/linkers/loaders [HTML] [Solutions]
Thursday 5/22: FINAL EXAM (12:30-3:30pm)



Weekly Schedule

Mondays

Lectures

Discussions

Labs

Office Hours

8:00-9:00am
9:00-10:00am 6 Evans (Chema)
10:00-11:00am 6 Evans (Alex) Chema (523 Soda)
11:00-12:00pm
12:00-1:00pm Sam (415 Soda)
1:00-2:00pm 75 Evans (Jan) Alex (551 Soda) Prof. Clancy (779 Soda)
2:00-3:00pm
3:00-4:00pm
4:00-5:00pm Lecture - 155 Dwinelle

 

Tuesdays

Lectures

Discussions

Labs

Office Hours

8:00-9:00am
9:00-10:00am
10:00-11:00am
11:00-12:00pm Feng (511 Soda)
12:00-1:00pm
1:00-2:00pm
2:00-3:00pm
3:00-4:00pm
4:00-5:00pm
5:30-6:30pm Prof. Clancy (779 Soda)

 

Wednesdays

Lectures

Discussions

Labs

Office Hours

8:00-9:00am
9:00-10:00am 3 Evans (Feng)
10:00-11:00am 182 Dwinelle (Feng)
11:00-12:00pm 4 Evans (Sam)
12:00-1:00pm 5 Evans (Sam)
1:00-2:00pm
2:00-3:00pm Jan (204A Cory) Sam (415 Soda)
3:00-4:00pm
4:00-5:00pm Lecture - 155 Dwinelle

 

Thursdays

Lectures

Discussions

Labs

Office Hours

8:00-9:00am 271 Soda (Chema)
9:00-10:00am
10:00-11:00am 271 Soda (Jan)
11:00-12:00pm
12:00-1:00pm 271 Soda (Sam)
1:00-2:00pm
2:00-3:00pm 271 Soda (Alex) Sam (415 Soda)
3:00-4:00pm

 

Fridays

Lectures

Discussions

Labs

Office Hours

8:00-9:00am 271 Soda (Feng)
9:00-10:00am
10:00-11:00am 271 Soda (Feng) Jan (290 Cory)
11:00-12:00pm
12:00-1:00pm 271 Soda (Sam)
1:00-2:00pm Prof. Clancy (779 Soda)
2:00-3:00pm
3:00-4:00pm
4:00-5:00pm Lecture - 155 Dwinelle




Staff

Instructor

Michael Clancy
Senior Lecturer
779 Soda Hall, (510) 642-7017, clancy@cs.berkeley.edu
Office Hours: MF 1:30-3:00pm, Tu 5:30-6:30
Asst: Sue DeVries/Cindy Palwick 385 Soda, 2-0930, 385-soda@cs
Interests: CS education; programming languages; algorithms

TAs

Name E-mail Associated Reader Labs Discussions
Chema González cs61c-ta ? Th 8-10 W 9-10
Sam Williams cs61c-tb ? ThF 12-2 W 11-12,12-1
Feng Zhou cs61c-tc ? F 8-10,10-12 W 9-10,10-11
Jan Voung cs61c-td ? Th 10-12 M 1-2
Alexandre Joly cs61c-te ? Th 2-4 M 10-11

Readers

Name  E-mail  Office Hr  Location Webpage
reader name cs61c-rb@cory.eecs.berkeley.edu M 5-7:30 345 Davis cs61c-rb
reader name cs61c-rc@cory.eecs.berkeley.edu M Noon-1 2nd floor Soda cs61c-rc
reader name cs61c-rd@cory.eecs.berkeley.edu Apt. only --- cs61c-rd
reader name cs61c-re@cory.eecs.berkeley.edu Apt. only --- cs61c-re



Resources and Handouts

gdb-refcard.pdf Here's an updated GDB reference card. .
geninfo.pdf The course syllabus

We will be using the second edition of Patterson and Hennessy's Computer Organization and Design book ("COD").  Try to find the third printing. (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 make references 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.

Finally, we have bundled several longer documents into a set of readings available at Copy Central on Hearst.

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.


CS61C, http://inst.eecs.berkeley.edu/~cs61c/ (Last Updated: today)