< EECS 470 Winter 2021

Course Info

LecturesSynchronous online lectures on Tue. & Thu. 12:00 PM - 1:20 PM ET http://umich.zoom.us/j/93810696596
LabsThu 6-8 PM (http://umich.zoom.us/j/5716894118)
Thu 8-10 PM (http://umich.zoom.us/j/92527753193)
Fri 10:30 AM - 12:30 PM (http://umich.zoom.us/j/95639844268)
MidtermTh March 4 6-8 PM
Final ExamWed April 28 8-10 AM
Web Pagehttp://www.eecs.umich.edu/courses/eecs470/
Lecture Recordingshttp://docs.google.com/spreadsheets/d/1V0O0-OpTWPXdGBpoUVVQzDsDU6vQidQXKSoIrHK3W1Y
InstructorJon Beaumont
Emailjbbeau /at/ umich.edu
Office HoursGroup - T/Th 1:30-2,
Individual - Th 3-4pm
GSIAlireza Khadem
Emailarkhadem /at/ umich.edu
Office HoursM/W 9:00pm-11:30pm
GSIScott Smith
Emailssscrazy /at/ umich.edu
Office HoursM 1:00pm-2:30pm,
W 4:30pm-6:00pm,
F 12:30pm-2:30pm
IAJohn Campbell
Emailjbca /at/ umich.edu
Office HoursSu 9:30pm-11:00pm,
W 1:30pm-3:30pm


What is computer architecture?

Computer architecture is the science and art of selecting and interconnecting hardware components to create a computer that meets functional, performance and cost goals. This course qualitatively and quantitatively examines computer design trade-offs. We will learn, for example, how uniprocessors execute many instructions concurrently and why state-of-the-art memory systems are nearly as complex as processors.

EECS 470 is an advanced undergraduate/introductory graduate-level course in computer architecture. This course is intended to do two things: to give you a solid, detailed understanding of how computers are designed and implemented, including the central processor, memory and I/O interfaces; and 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 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 basic multiprocessor systems.

A central part of EECS 470 is the detailed design of major portions of a substantial processor using the SystemVerilog hardware design language (HDL), IEEE 1800-2017. Portions of this work will be done individually as homeworks; the bulk of the work will be done in groups of three to five as a term project during the last 9 or 10 weeks of the semester. You will use modern commercial CAD tools to develop 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.

What knowledge does EECS 470 assume?

EECS 470 assumes that you are familiar with the following material: