EECS 470 Course Information

Winter 1998

Course Objectives

EECS 470 is an introductory graduate-level course in computer architecture. This course is intended to do two things:

  1. to give you a solid, detailed understanding of how computers are designed and implemented, including the central processor and memory and I/O interfaces, and
  2. to make you aware of the numerous tradeoffs in design and implementation, their interaction, their realization in both historical and state-of-the-art systems, and trends that will affect them in future systems.

We will cover instruction set architectures, pipelining (including basic pipelining, multiple-instruction-per-cycle machines, out-of-order instruction execution, and vector processing), memory systems (including caches and virtual memory), I/O interfaces, operating system issues, and (if time permits) basic multiprocessor systems.

A central part of EECS 470 is the detailed design of a substantial, realistic processor using the Verilog hardware design language. You will use modern commercial CAD tools, provided by Cadence Design Systems, Inc., to develop and test your design. This project represents a significant investment of time on your part, and is a significant portion of your grade in this class. However, in computer architecture it is particularly true that "the devil is in the details", and you will gain important experience and knowledge by coming face to face with that devil.

EECS 370 is a prerequisite for this course. I will assume that you have a solid understanding of the material covered in that course: assembly language, machine language, ALU design, and the basic ideas of pipelining, caches, and virtual memory. EECS 470 expands on this material greatly in both depth and breadth. If you did not take EECS 370 here, you may need to spend extra time reviewing this material. I have placed the EECS 370 textbook (Patterson & Hennessy's Computer Organization & Design: The Hardware/Software Interface) on reserve at the library for that purpose.

Meeting Times

Lecture: 3:30-5:00 MW 1003 EECS
Discussion: 3:30-4:30 F 1003 EECS (mandatory)

Instructor

Professor Steven K. Reinhardt (stever@eecs.umich.edu), 2223 EECS, 647-7959
Office hours: Tuesday 4-5, Thursday 11-12, or by appointment (send email).

Textbook etc.

Required text:
Computer Architecture: A Quantitative Approach (Second Edition), John L. Hennessy & David A. Patterson (Morgan Kaufmann, 1996). Make sure you have the second edition and not the first (it's changed significantly).
Additional texts: (on reserve at the library)
Computer Architecture: Pipelined and Parallel Processor Design, Michael J. Flynn (Jones & Bartlett, 1995).
Computer Organization (Fourth Edition), V. Carl Hamacher, Zvonko G. Vranesic, and Safwat G. Zaky (McGraw Hill, 1996).
Computer Architecture and Organization (Second Edition), John P. Hayes, (McGraw Hill, 1988).
Computer Organization & Design: The Hardware/Software Interface (Second Edition), David A. Patterson & John L. Hennessy (Morgan Kaufmann, 1998). The first edition is on reserve until the library gets a copy of the second edition, which should be soon.

Additional papers that supplement the text will be handed out in class as needed.

Teaching Assistant

Erik Hallnor (ehallnor@engin.umich.edu). Office hours and location TBD.

On-Line Resources

Course Policies

Grading

Item    Weight
Homeworks 10%
Project  40%
Midterm 15%
Final 35%

Schedule