College of Engineering University of Wisconsin-Madison
Electrical and Computer Engineering The Fountain
ECE/CS 752 Advanced Computer Architecture I

Last modified Monday, 25-Nov-2019 16:12:44 CST

Contact Information
Course Description
Lecture Notes
Homework and Quizzes
Useful Links


Contact List:

Mailing list (only registered students can send messages):


Prof. Mikko Lipasti
Office: 3621 Engineering Hall
Office Hours: TBA

Course Description

This course will teach you the principles of operation of modern high-performance microprocessor cores, chips, and systems.

ECE/CS 552 is a firm prerequisite; if you are a transfer or graduate student without this course background, you should be very familiar with logic design and should have already designed a working instruction set processor. You should be very familiar with pipelined execution, data hazards, and basic control speculation, along with simple cache memories and virtual memory. If you do not have this background, you will have to do some catch-up reading to keep up in this course.

Refer to the course syllabus for additional details

The recommended course textbook is Modern Processor Design: Fundamentals of Superscalar Processors, by John Shen and Mikko Lipasti, paperback edition. The earlier hardcover edition published by McGraw-Hill is nearly identical and a used version of that book is fine. The large format (8.5"x11") paperback beta version is missing a lot of the content covered in this course. There are also several international versions which are probably suitable. Feel free to check with the instructor.

Lecture Notes: Lectures marked TBU will be updated as semester progresses

Homework and quizzes:

To check your recorded grades, log in to Canvas using your NetID and password (same as your as email username or your login).


Course Project Information

For the course project you will do a research-focused project. This may involve reimplementing an idea proposed in a paper we read in the class (or outside of class) or trying something new that you have come up with.

The following link includes some possible suggestions for both options (note: many of these ideas are confidential; please do not disseminate without first discussing with Prof. Lipasti): Suggested topics.

You will be required to do the following for the final project:

Note that originality is not required (however, it is encouraged) for the project, nor are "positive" results (in other words, you will not be penalized for finding that a proposed scheme does not work). You will be graded based on your effort and on the quality of your presentation and report.

Here are some guidelines for the project report.


Benchmark Information

WARNING: some of these gzipped tar files are quite large. Make sure you have plenty of disk space (several hundred MB in some cases).

SPEC2006 x86 binaries and runscripts (licensed only for use at Univ. of Wisconsin). Use the * scripts in each benchmark subdirectory to run.
SPEC2006 source code distribution (licensed only for use at Univ. of Wisconsin).
SPEC95 little-endian PISA binaries (including go for hw2)
SPEC2000 Integer EIO Traces for sim-outorder/alpha
libexo/libexo.c patched source file that you may need for these EIO traces to work correctly
SPEC2000 Integer binaries and runscripts for sim-outorder/alpha
SPEC2000 Floating Point EIO Traces for sim-outorder/alpha
SPEC2000 Floating Point binaries and runscripts for sim-outorder/alpha

The EIO traces can be used with simplescalar/alpha running on linux. See README.eio within the simplescalar distribution. You will have to compile simplescalar to use the alpha instruction set by typing "make config-alpha". The runscripts/binaries can be used on any little-endian machine (linux/intel). I don't think they will work on the CAE Sun workstations, which are big-endian.

Useful Links:

Note: if you have trouble accessing this page, contact Mikko Lipasti (