Three hours of lecture and two hours of discussion per week and one large
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
150. The CS 152 labs and project have been updated, and now
assume that students have successfully completed the CS 150 lab work.
Note the change from previous semesters.
Location: Lectures are on Tuesday and Thursday 11-12:30, 320 Soda Hall. Sections
are on Friday, 12-2 (85 Evans) and 2-4 (87 Evans). Labs are held in 119 Cory,
with overflow into 125 Cory if 119 Cory is full (CS 150 students have priority in 125 Cory).
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.
We will be using the third edition of Patterson
and Hennessy's Computer Organization and Design book
(2nd edition won't work for the course).
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. It will also be on reserve.
"Computer Architecture: A Quantitative Approach" is an advanced
reference, but is not required for the course. It will also be on reserve.
- Computer Organization and Design: The Hardware/Software Interface,
by David A. Patterson and John L. Hennessy.
This is a brand new (and cheaper!) edition; second edition
won't work for the course. Check www.bookpool.com for a low price
- MIPS RISC Architecture, Second Edition
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.
- 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.
- Computer Architecture: A Quantitative Approach, Third Edition
by John L. Hennessy and David A. Patterson.
This is a more advanced text, used in CS252. It is available for occasional
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
We will be using the class homepage to communicate updated information;
please monitor it on a regular basis. Also monitor the newsgroup
ucb.class.cs152, and use it
to ask questions of general interest about the labs, homeworks, etc.
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:
- The instructor may take actions such as:
- require repetition of the subject work,
- assign an F grade or a 'zero' grade to the subject work,
- for serious offenses, assign an F grade for the course.
- The recommended action for cheating on examinations or term papers
- 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.
- The instructor must retain copies of any written evidence or
- 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.
- The Office of Student Conduct may choose to conduct a formal hearing
on the incident and to assess a penalty for misconduct.
- The Department will recommend that students involved in a second
incident of cheating be dismissed from the University.
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.
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.
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.)
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
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.)
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.
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
(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.)