CS 152
Computer Architecture and Engineering
CS 152 Spring 2014
TTh  9:30 to 11
306 Soda Hall

John Lazzaro | Eric Love

Sections ::: W 10-12, 70 Evans ::: W 1-3, 405 Soda

News and Calendar | Course Info | Resources | Staff
Course Policies and Info

Course Format:

Three hours of lecture and two hours of discussion section per week.

Lectures are in 306 Soda, Tuesday and Thursday, 9:30-11 AM. Discussion sections are on Wednesday: 10-12 AM in 70 Evans, and 1-3 PM in 405 Soda.

The centerpiece of the class is a set of computer architecture lab assignments based on RISC-V processors implemented in the Chisel hardware description language. The stack features a C/C++ compiler that targets RISC-V.

We focus on five cornerstone topics of today's computing systems:

  • Statically pipelined CPU design.
  • Dynamically-scheduled CPUs for out-of-order and speculative execution.
  • Hierarchical memory systems that support virtual address spaces.
  • Cache-coherent multicore and multithreaded processors, with hardware support for memory synchronization.
  • Architectures for data-parallel applications (GPUs and vector machines).

A machine structures class is a hard prerequisite for the class. For EECS undergraduates, this requirement is fulfilled by CS 61C (or for transfer students, a class that met the CS 61C degree requirement).


The required textbook is Computer Architecture - A Quantitative Approach, Fifth Edition, by John Hennessy and Dave Patterson, ISBN 9780123838728. Earlier editions won't be useful for the class. We will abbreviate this book as CAAQA.

A companion website for CAAQA has useful Appendices, and a link for buying PDF versions of the book. You can also order the book from Amazon, or purchase it at the campus bookstore. It is also on reserve in the engineering library for CS 152.

The recommend text is the CS 61C textbook, Computer Organization and Design, Fifth Edition: The Hardware/Software Interface, by Dave Patterson and John Hennessy, ISBN 0124077269. The 4th edition is acceptable. We will abbreviate this book as COD.

COD will primarily be useful for students whose did not take CS 61C, and whose equivalent class did not cover pipelining and caches in depth. The book is on reserve in the engineering library for CS 152.


Three architecture simulation labs are the centerpiece of the class:

Labs are done individually (not in teams). You are free to discuss the labs in general terms with other students (on Piazza or in private conversations). However, the actual lab work must be done with yourself (no copying of files, scripts, data, etc). Feel free to ask the TA about any "grey areas" in this regard.

Each lab begins with a set of directed sections. Your work on these sections show us your competence in using the tools, and your depth of understanding of the topic domain.

The heart of each lab is the open-ended section. This section lists a set of computer architecture project topics that are a good fit to a 3-week work schedule. Students pick one of the open-ended projects, and focus on doing the best job possible during the allotted time period.

See the calendar for due dates.


The class will have two mid-terms and no final. The mid-terms will be held in 306 Soda during normal class time (see class schedule for dates). However, the mid-term starting time may be earlier than the usual 9:30 AM (the end time will remain 11 AM). We will know for sure in a few weeks and will let you know.

Mid-terms will be closed-book, closed-note (no laptops, no cell-phones). You will write on the paper mid-term we hand out (no blue books required).


The class will have two long homework assignments. The first will be posted a few weeks into the semester, the second will be posted when we return from Spring Break.

The homework assignments are based on mid-term problems from the previous times I taught CS 152. Doing these assignments, during focused periods of time, on your own, without consulting the textbook or the Internet, is the best way to prepare yourself for the mid-term.

It is acceptable to ask the sort of "clarifying questions" about homework problems that you might ask during the exam, but do not ask (or give) "the answer" online, because that defeats the purpose of the exercise.

You will not be handing in the homeworks (and thus, they won't be graded). During the in-class mid-term review session, we will go over the homework questions; during that time frame, we will also post the homework solutions on the class website.

Course Grading:

Once the semester began, it became apparent that porting the software base for each lab was an engineering challenge. Because we did not know the total number of labs we would be able to do, students were told each lab, and each mid-term, would be a "signficant" part of the grade.

When final grades were prepared at the send of the semester, each mid-term was worth 26 percent of the final grade, and each lab was worth 16 percent of the final grade.

Academic Honesty:

    Like all EECS courses, CS 152 follows the EECS Departmental Policy on Academic Dishonesty. Please read the policy below and become aware of our expectations:

    Copying all or part of another person's work, or using reference material not specifically allowed, are forms of cheating and will not be tolerated. A student involved in an incident of cheating will be notified by the instructor and the following policy will apply:

    1. The instructor may take actions such as:
      1. require repetition of the subject work,
      2. assign an F grade or a 'zero' grade to the subject work,
      3. for serious offenses, assign an F grade for the course.
    2. The recommended action for cheating on examinations or term papers is 1(c).

    3. The instructor must inform the student and the Department Chair in writing of the incident, the action taken, if any, and the student's right to appeal to the Chair of the Department Grievance Committee or to the Director of the Office of Student Conduct.

    4. The instructor must retain copies of any written evidence or observation notes.

    5. The Department Chair must inform the Director of the Office of Student Conduct of the incident, the student's name, and the action taken by the instructor.

    6. The Office of Student Conduct may choose to conduct a formal hearing on the incident and to assess a penalty for misconduct.

    7. The Department will recommend that students involved in a second incident of cheating be dismissed from the University.


© 2014 UCB http://www-inst.eecs.berkeley.edu/~cs152/