CS 152
Computer Architecture and Engineering
CS152 Fall 2003
TuTh 2-3:30pm, 306 Soda Hall

Dave Patterson | John Gibson | Jack Kang | Kurt Meinz

News and Calendar | Course Info | Resources | Staff | Webcast | WebNews | WebGrades | Projects
Course Policies and Info

Course Format:

Three hours of lecture and two hours of discussion per week and one large design project.

Instruction set design, Register Transfer. Computer design project. Data-path design. Controller design. Caches and memory systems. Addressing. Microprogramming. Computer arithmetic. Survey of real computers and microprocessors.

Prerequisites: CS 61C, EE40 or EE42, (Previous versions of this class had CS 150 as a prerequisite)

Expanded Description:

This course will give you an in-depth understanding of the inner-workings of modern digital computer systems and tradeoffs present at the hardware-software interface. You will get an understanding of the design process in the context of a complex hardware system, practical experience with computer-aided design tools, and running your designs on real hardware. Topics include: Instruction set design, computer arithmetic, controller and datapath design, cache and memory systems, input-output systems, networks interrupts and exceptions, pipelining, performance and cost analysis, computer architecture history, and a survey of advanced architectures. There will be a computer design project requiring 100+ hours. We will implement a major subset of the MIPS architecture to the gate level and run it on FPGAs.

Course Materials:

We will be using the beta version of the third edition of Patterson and Hennessy's Computer Organization and Design book. This will be handed out in class in multiple volumes.

The "MIPS RISC Architecture" book may be helpful for the project and will be on reserve in the Engineering Library.

"See MIPS Run" may also be helpful and will be on reserve in the Engineering Library as well. 

"Computer Architecture: A Quantitative Approach" is an advanced reference, but is not required for the course. 


IMPORTANT! This class will be using the PRS (Personal Response System) system. PRS is a tool by which the professor can receive instant feedback, conduct quizzes during lectures, take attendance, among various other features. For those of you with experience with peer instruction, you will find that using the transmitter is much more convenient and efficient than raising hands or holding different colored cards in the air. Each student is required to buy a PRS transmitter. They should be available at the student center bookstore for approximately $35-40. These transmitter can be used in other classes that use the PRS system, and you will be able to sell these back to the bookstore or other students at the end of the semester.

  • Computer Organization and Design: The Hardware/Software Interface, Beta Version Third Edition ,
    by David A. Patterson and John L. Hennessy.
    (required--will be handed out in class)
  • PRS Transmitter
    Available at bookstores--see above
  • MIPS RISC Architecture ,
    by Gerry Kane and Joe Heinrich, Prentice Hall.
    This provides a complete reference on the MIPS instruction set and has very nice treatment of pipelined design.
    (on reserve)
  • See MIPS run ,
    by Dominic Sweetman, Morgan Kaufman Publishers.
    Provides an in-depth, easy to use guide to the MIPS instruction set, including special attention to processor control.
    (on reserve)
  • Computer Architecture: A Quantitative Approach ,
    by John L. Hennessy and David A. Patterson.
    This is a more advanced text, used in CS252. It is available for occasional supplementary reading.

Course Operation:

    Homework exercises will reinforce the readings and lectures. Laboratory assignments will help you develop experience with the design tools, and let you experiment with the design of an actual processor.

    No late homeworks will be accepted. Labs will be demonstrated in Section on Fridays, and reports will be due by 11:59pm on the following Mondays via the submit program.

    For the laboratory assignments, we will be using the workstations in 119 Cory Hall. Additional workstations will be available in 125 Cory Hall. The workstations in 125 Cory are to be used only after the workstations in 119 are all full. The workstations in 119 are faster and more powerful. 125 Cory is also used by EECS150 students, who have priority in that lab.

    Final projects will be presented to the course staff at the end of the term, with a written project due the following week.

    Consult the class schedule for due dates of homework exercises, labs, and projects.

Course Grading:

    The CS Division guideline for an upper division CS class is that the overall class GPA should be between 2.7 and 3.1. Thus, the average grade in this class will be a B or B+. Please set your expectations accordingly.

    There will be two midterm exams covering the material from the readings and class---and no final. They will be given over a 3-hour period in the evening to reduce time pressure.

    Homeworks:  10%  (roughly 2% each) 
    Labs:  28%   
    Final Project:  20%   
    2 Exams:  32%  (16% each) 
    Group/Section Participation:  10%   
    Run glookup for exact breakdown 

Re-grading policy:

From our perspective, re-grading is the worst part about teaching a course; we are all overworked, and we hate dealing with grade-grubbing. In order to minimize the psychic pain on our side, we set forth this re-grading policy. If you are thinking about requesting a re-grade, please read and follow the guidelines listed below. Failure to do so may result in a re-grade that actually decreases your score or that seriously irritates your TA.

1.      Unless the error is in the totaling of points, do not ask for a re-grade before the solutions and grading standards are posted! (And, since your TAs are already overworked and re-grades are very low on our priorities list, it may take a while for solutions and grading standards to be posted just be patient.)

2.      We will only re-grade entire assignments (not just single problems or subproblems), so if you are thinking about asking for a re-grade, be sure that your score will actually go up. (My experience is that most re-grades tend to lose more points than they gain you've been warned.)

3.      Be advised that we tend to grade very leniently the first time around each assignment have some fluff built into it (so that, on average, you will tend to get more points than the standard would otherwise indicate). However, if you ask for a re-grade, we will be re-grading the entire exam strictly according to the grading standard. (Meaning: much more harshly you've been warned.)

4.      If the standards are out and you're sure that you will gain points, you can submit the assignment to your TA for a re-grade. You must submit your regrade request in writing to your TA. Your re-grade reqesut should very specifically mention exactly why you think you should get points back. Your TA will not grade it on the spot; rather, he will take it to the weekly staff meeting where we will all re-grade it together. The entire process may take several weeks (depending on how busy we all are), so please be patient.

5.      At some point in time, we may present a re-grade deadline. Any re-grade requests received after the deadline will be rejected no matter what! We are very busy at the end of the semester, so we can't spend all our time re-grading stuff.

(We're not trying to be jerks with this policy; rather, we are just trying to ensure that our time is spent doing productive work rather than nitpicking with students over of 1% of their grade.)


© 2003 UCB cs152, http://www-inst.eecs.berkeley.edu/~cs152/
Last Updated: today Webmaster: cs152@cory.eecs.berkeley.edu