CS 61C Great Ideas in Computer Architecture (Machine Structures). Spring 2014, UC Berkeley
P&HK&RWSC  
CS61C Spring 2014
MWF 2-3pm 1 Pimentel





Timely Announcements

2013-12-29 Welcome to CS61C Spring 2014!

Some important announcements will be placed here and many will be made on Piazza. Please check both often, as content will be updated frequenctly.

2014-01-14 First Week Labs

There will be labs the first week of instruction. If you have a Monday lab, then you will need to crash one of the Tuesday or Wednesday labs.

2014-01-26 Screencast Link

If you're having trouble finding the lecture screencasts, you can find them here.

2014-01-26 Grading Breakdown and Scale

For future reference, the grade breakdown for the course is summarized here. The scale is available here.

2014-03-05 Midterm Room Assignments

We'll be assigning people to exam rooms according to last name. Those of you in the range (A-Natoli) will go to 1 Pimentel. Those in the range (Ngo-Wang) will go to 10 Evans, and those in the range (Wei-Z) will go to 60 Evans.




Lecture, Reading, and Assignment Calendar

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:

  • A letter to your university record documenting the incidence of cheating.
  • An automatic F in the course for both you and the enabler/giver of the assignment.

Wk Date Lecture Topic Reading Section Lab Assignment Due
1
01/22 W Course Intro: Great Ideas in Comp Arch   Section 0: Number Representation Lab 0: Number Representation HW0: Introduce Yourself
Due in lab next week
(i.e. 01/{27,28,29})
01/24 F Number Representation (4th) P&H: 2.4
(5th) P&H: 2.4
Binary slides
2
01/27 M C Intro: Basics B. Harvey's Intro to C
K&R Ch. 1-4
Section 1: C Basics Lab 1: C HW1: C and Number Representation
Due 02/02 @ 23:59:59
01/29 W C Intro: Pointers, Arrays, Strings K&R Ch. 5-6
C Reference Slides
01/31 F MIPS Intro (SC) (4th) P&H: 2.1-2.3
(5th) P&H: 2.1-2.3
3
02/03 M MIPS lw, sw, Decisions I (4th) P&H: 2.9, 2.10 (only p.128-129)
(5th) P&H: 2.9, 2.10 (only p.111-113)
Section 2: MIPS Lab 2:
C Pointers and GDB
HW2: rgrep
Due 02/09 @ 23:59:59
02/05 W MIPS Decisions II (AC) (4th) P&H: 2.6, 2.7, 3.2
(5th) P&H: 2.6, 2.7, 3.2
02/07 F MIPS Instruction Format I (AC) (4th) P&H: 2.5, 2.10
(5th) P&H: 2.5, 2.10
4
02/10 M MIPS Instruction Format II Bonus Slides Section 3: MIPS Control Flow and Instruction Formats Lab 3: Memory Management
and Assembly Practice
Project 1: C/MIPS
Part 1 - Due 02/16 @ 23:59:59
Part 2 - Due 02/23 @ 23:59:59
02/12 W MIPS Procedures I (4th) P&H: 2.8 (p. 112-118)
(5th) P&H: 2.8 (p. 96-102)
02/14 F MIPS Procedures II & Logic Ops (4th) P&H: 2.8, B.6
(5th) P&H: 2.8, A.6
Bonus slides
5
02/17 M Administrative Holiday (Presidents Day) Section 4: MIPS Procedures Lab 4:
Function Calls and Pointers in MIPS
02/19 W Caches I (4th) P&H: 5.1
(5th) P&H: 5.1, 5.2
02/21 F Caches II (AC) (4th) P&H: 5.2 (p. 457-470)
(5th) P&H: 5.3
6
02/24 M Caches III (4th) P&H: 1.4, 5.3, 5.5
(5th) P&H: 1.6, 5.4, 5.8
Cache Flowchart
Section 5: Direct Mapped Caches Lab 5:
Cache Blocking
HW3: MIPS, Floating Point, and Caches
Due 03/02 @ 23:59:59
02/26 W Floating Point (4th) P&H: 3.5, 3.8
(5th) P&H: 3.5. 3.9
IEEE 754 Simulator
02/28 F Compilation, Assembly, Linking, Loading (4th) P&H: 2.12, B.1-B.4
(5th) P&H: 2.12, A.1-A.4
7
03/03 M Datacenters and Cloud Computing Warehouse-Scale Computers: Ch 1, Ch 3, 5.1-5.3 Section 6: Floating Point, C.A.L.L. Lab 6:
Hadoop and MapReduce
[Midterm Studying]
03/05 W MapReduce (SK) Warehouse-Scale Computers: Ch 2.4
03/07 F Flynn Taxonomy
Intel SIMD Instructions
(AC)
(4th) P&H: 1.5, 1.6, 7.1, 7.2, 7.4, 7.6
(5th) P&H: 1.7, 1.8, 6.1, 6.2, 6.3, 6.7
03/09 Su TA Midterm Review: 9-11am, 155 Dwinelle (slides)
8
03/10 M Intel SIMD Continued,
Thread Level Parallelism
(4th) P&H: 7.3, 5.8
(5th) P&H: 6.5, 5.10
Section 7: MapReduce and WSC Lab 7:
Intel SIMD
Project 2: MapReduce
Part 1 - Due 03/19 @ 23:59:59
Part 2 - Due 04/02 @ 23:59:59
03/12 W Thread Level Parallelism (4th) P&H: 2.11
(5th) P&H: 2.11
03/12 W Midterm: 7-9pm, 1 Pimentel (A-Natoli), 10 Evans (Ngo-Wang), 60 Evans (Wei-Z)
(Midterm) (Solutions)
03/14 F Thread Level Parallelism
OpenMP
OpenMP summary card
9
03/17 M Intro to Synch. Digital Systems SDS Handout Section 8: Cache Coherence and Synchronization Lab 8:
Thread Parallelism
03/19 W State and State Machines (4th) P&H: 4.2, C.3-C.6 (on CD)
(5th) P&H: 4.2, B.3-B.6
State Handout
03/21 F Combinational Logic (4th) P&H: C.2-C.3 (on CD)
(5th) P&H: B.2-B.3
Logic Handout
-- 03/24 - 03/28 Spring Break
10 03/31 M Combinational Logic Blocks Blocks Handout Section 9: Logic and SDS Lab 9:
Logisim
HW4: Digital Design and FSMs
Due 04/06 @ 23:59:59
04/02 W Single Cycle CPU Datapath (4th) P&H: 4.1, 4.3
(5th) P&H: 4.1, 4.3
04/04 F GPU Programming (AC) (4th) P&H: 4.4
(5th) P&H: 4.4
11 04/07 M Single Cycle CPU Control (4th) P&H: 7.7
(5th) P&H: 6.6 
Section 10: Single Cycle Datapath Lab 10:
GPU Programming
Project 3: Performance Optimization
Part 1 - Due 04/13 @ 23:59:59
Part 2 - Due 04/23 @ 23:59:59
04/09 W Single Cycle CPU Control (4th) P&H: 4.5, 4.6
(5th) P&H: 4.5, 4.6
04/11 F ILP: Pipelining (AC) (4th) P&H: 4.7, 4.8
(5th) P&H: 4.7, 4.8
12 04/14 M ILP: Pipelining Hazards (4th) P&H: 4.10, 4.11
(5th) P&H: 4.10, 4.11
Section 11: Pipelining Lab 11:
More Logisim
04/16 W ILP: Multiple Instruction Issue (4th) P&H: 5.4
(5th) P&H: 5.7
04/18 F Virtual Memory I (4th) P&H: 5.10-5.12
(5th) P&H: 5.13, 5.15, 5.16
13 04/21 M Virtual Memory II   Section 12: Virtual Memory Lab 12:
Project 4 Prelude
Project 4: Processor Design
Due 05/04 @ 23:59:59
04/23 W Virtual Memory III (4th) P&H: 6.1, 6.5
(5th) P&H: 6.9 (only p.1-4)
04/25 F I/O Basics (4th) P&H: 6.6, 4.9
(5th) P&H: 6.9 (only p.4-10), 4.9
14 04/28 M I/O: Interrupts and Networks (4th) P&H: 6.2-6.4, 6.9
(5th) 5.2, 5.5 (only p.418-419), 5.11
Berkeley RAID Paper
Section 13: VM (cont), I/O Lab 13:
Virtual Memory
04/30 W I/O Disk (optional) AMD tutorial
AMD introductory videos
05/02 F Summary and Goodbye  
Reading Week
05/07 W Final Exam Review: 12-3pm, 155 Dwinelle
Finals
05/13 Tu Final Exam: 11:30-2:30pm, 1 Pimentel



Weekly Schedule

Monday Tuesday Wednesday Thursday Friday
8:00-9:00     LAB 22
Kevin
330 Soda
   
9:00-10:00   LAB 15
Kevin
330 Soda
   
10:00-11:00 OH - William
411 Soda
LAB 23
William
330 Soda
OH - Roger
411 Soda
DIS 115
Kevin
85 Evans
DIS 122
Kevin
B51 Hildebrand
11:00-12:00 LAB 16
Shreyas
330 Soda
OH - Kevin
651 Soda
DIS 116
Shreyas
310 Soda
DIS 123
William
B51 Hildebrand
OH - Kevin
651 Soda
12:00-1:00 OH - Sagar
411 Soda
  LAB 24
William
330 Soda
  DIS 124
William
75 Evans
1:00-2:00 LAB 17
Sagar
330 Soda
  OH - Jeffrey
611 Soda
2:00-3:00 LECTURE
1 Pimentel
LECTURE
1 Pimentel
DIS 117
Sagar
285 Cory
LECTURE
1 Pimentel
3:00-4:00 LAB 11
Sung Roa
330 Soda
LAB 18
Sagar
330 Soda
DIS 111
Sung Roa
71 Evans
DIS 118
Sagar
405 Soda
OH - Shreyas
611 Soda
OH - Dan
777 Soda
4:00-5:00     OH - Sung Roa
611 Soda
 
5:00-6:00 LAB 12
Sung Roa
330 Soda
LAB 19
Jeffrey
330 Soda
DIS 112
Sung Roa
3105 Etcheverry
DIS 114
Roger
24 Wheeler
DIS 119
Jeffrey
75 Evans
DIS 121
Shreyas
71 Evans
OH - Alan
611 Soda
6:00-7:00 DIS 113
Roger
75 Evans
 
7:00-8:00 LAB 13
Roger
330 Soda
LAB 20
Alan
330 Soda
  DIS 120
Alan
75 Evans
 
8:00-9:00      
9:00-10:00 LAB 14
Roger
330 Soda
LAB 21
Shreyas
330 Soda
     
10:00-11:00      



Staff

Dan Garcia

Instructor: Dan Garcia
ddgarcia@cs
OH: F 3-4pm, 777 Soda

 

Head TA: Alan Christopher
alanchristopher@berkeley
Sections: 20
OH: F 5-7pm, 611 Soda
TA: Jeffrey Dong
jefdongus@berkeley
Sections: 19
OH: F 1-2pm, 611 Soda
TA: Kevin Liston
kmliston@berkeley
Sections: 15, 22
OH: Tu,F 11-12pm, 651 Soda
 
TA: Roger Chen
rogerhub@berkeley
Sections: 13, 14
OH: W 10-12pm, 411 Soda
TA: Sagar Karandikar
skarandikar@berkeley
Sections: 17, 18
OH: M 12-2pm, 411 Soda
TA: Shreyas Chand
shreyas.chand@berkeley
Sections: 16, 21
OH: F 3-5pm, 611 Soda
 
TA: Sung Roa Yoon
sungroa@berkeley
Sections: 11, 12
OH: Th 4-6pm, 611 Soda
TA: William Ku
williamku@berkeley
Sections: 23, 24
OH: M 10-12pm, 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 Dan in office hours.
  6. Ask Dan in lecture.
  7. Send your TA email.
  8. Send Dan 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 ~400 students.

Readers

Name Grading Accounts E-mail
William Huang cs61c-aa -> cs61c-dn william.huang@berkeley.edu
Ryoko Janlie cs61c-do -> cs61c-ia ryoko.janlie@berkeley.edu
Neal Lawton cs61c-ib -> cs61c-mg lawtonechs@yahoo.com
Jerry Lung cs61c-mh -> cs61c-pv jerry.lung@berkeley.edu
Matthew Griffin cs61c-pw -> cs61c-vx mattgriffin94@yahoo.com



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: 2013-12-29 @ 16:34)