University of Illinois at Urbana-Champaign

Department of Electrical and Computer Engineering

 

ECE 511, Fall 2005

Wen-mei Hwu, Instructor

 

Course Overview

 

Instructor:  Wen-mei Hwu,

                      215 CSL, phone: 244-8270, email: w-hwu@uiuc.edu

                      Office hours: Tue 10:00-11:00am

 

Teaching Assistants: TBA

 

Objectives of the course:

 

This course is NOT an introduction to computer architecture.   Starting from basic notions of computer organization, applications programming, and VLSI design, we will examine the current state of computer architecture and its future trends.  Computer architecture is about designing computing systems that address the needs of the application space of interest by effectively exploiting the capabilities of the underlying implementation technologies.  In order to understand the motivations behind architectural techniques, one must understand how applications behave and what the implementation technologies are capable of delivering.  In this course, we will examine computing systems that exploit parallelism at various levels, from the fine-grain or instruction level (e.g., microprocessors) to coarser parallelism such as task-level (e.g., multiprocessors).  This course will involve a substantial project.

 

Prerequisites:

 

Students are expected to have a solid background in computer organization.  It will often be assumed that students have working knowledge of logic design, pipelined processor design, memory hierarchies (including caches), virtual memory, and floating point representations.

 

Students who have had a background in programming and VLSI or architectural level design will likely have a more thorough appreciation of the subject matter than novice students.

 

Textbook/Reference Material/Readings:

 

I hope to cover most of the material one should expect in a graduate level architecture course, but I expect to not read to you from any textbook. You should consider my lectures and the corresponding treatments in various textbooks as different approaches to learning the same material.  A list of respectable textbooks is provided below. I encourage you to select one, and to refer to others if you need a different approach to explaining a particular concept.

 

Hill, Jouppi, Sohi (Ed), “Readings in Computer Architecture, Morgan-Kaufmann, 2000

 

John Hennessy and David Patterson, Computer Architecture: A Quantitative Approach, 2nd Edition, Morgan Kaufmann, 2002

 

Harold S. Stone, High-Performance Computer Architecture, 3rd edition, Addison Wesley

 

Harvey G. Cragon, Computer Architecture and Implementation, Cambridge University Press, 2000.

 

K. Hwang, Advanced Computer Architecture: Parallelism, Scalability, Programmability, McGraw-Hill, 1993 (ISBN 0-07-031622-8).

 

There is a select list of research papers that accompany the lectures.  Electronic copies of these papers will be available from the ECE 511 website.

 

Since this course straddles the boundary between existing computer designs and experimental architecture, I encourage students to read further into the literature on any particular topic that interests them.  The proceedings from the major IEEE and ACM conferences on computer architecture can be found in the Grainger Library, most notable of which are the International Symposium on Computer Architecture (ISCA), International Symposium on Microarchitecture (Micro), Architectural Support for Programming Languages and Operating Systems (ASPLOS), High Performance Computer Architecture (HPCA), Parallel Architectures and Compilation Techniques (PACT).  Also, IEEE Computer Magazine and Microprocessor Report are good resources.

 

In 1998, the computer architecture community assembled a collection of the most important papers in the first 25 years of the International Symposium on Computer Architecture. This is a worthwhile book to get for your future reference.

 

Sohi (Ed), “25 Years of the International Symposia on Computer Archiytecture, Selected Papers,” ACM Press, ISBN 1-58113-058-9, ACM Order number 415985

 

Exams

 

There will be two exams in the course.  The first exam is scheduled for October 19th.  It will be either in class or take home, I have not yet decided.  The second exam is scheduled for December 4th, again either in class or take home.

 

Projects

 

The course project is a significant component of ECE 511.  The projects are open-ended, and can involve groups of two or three students (individual projects need to be approved first).  A typical project includes survey of existing work in computer architecture, or re-validation of results in an existing paper by creating your own experimental setup.  I will provide more information on the course projects, including suggestions of possible topics, over the next few weeks.

 

Website:

 

The website will contain important announcements, lecture notes, handouts, and other material helpful for succeeding in this course.  The website can be found at http://courses.engr.illinois.edu/ece511.

 

Grading mechanics:

 

Project:                  30%

Exam 1:                  30%

Exam 2:                  30%

Subjective:            10% (based on class participation)

 

Final thoughts:

 

You are encouraged to study in groups, and to come to my office in groups. Studying in groups usually will result in all of you understanding the material better. You, working with other members of your study group, can often unravel concepts to the benefit of all members of the group much better than one can person can, working alone.

 

You are encouraged to challenge assumptions. Computer Science and Engineering deals with "nature" that is man-made and so we may have made it wrong. Innovation, in my opinion, only comes when somebody challenges the current, dominant way of doing things.