Department of Electrical and Computer Engineering
Instructor: Wen-mei
Hwu,
215 CSL, phone: 244-8270,
email: w-hwu@uiuc.edu
Office hours: Tue
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), “
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,
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
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.