University of Illinois at Urbana-Champaign
Department of Electrical and Computer Engineering

ECE 511, Fall 2008
2-3:15pm Mondays and Wednesdays
1302 Seibe Center

Course Overview

Instructor: Rakesh Kumar
208 CSL, phone: 333-5955, email: rakeshk AT uiuc
Office hours: Mon, 4pm-5pm, or drop in if the door's open.


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 best address the needs of an application space given the capabilities and constraints 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). We will also understand the various technological issues that affect computer architectures. This course will involve a substantial project of significant research value.

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 have a more thorough appreciation of the subject matter than novice students.

Structure of the class:
Class will be a combination of lecture and guided discussion. Two papers will be assigned for every class. You are expected to have read the papers thoroughly and finished their reviews (details below) before coming to the class. Every class, I will guide discussion based on the papers. Everyone is expected to participate. I will ask everyone to write a report at the end of the semster on how they contribted to the class.
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 the class discussions and the corresponding treatments in various textbooks as different approaches to learning the same material.

I will try to make the papers available online. For some of the older papers that I cannot find any on-line version of, they will be available in the following book:

Mark D. Hill, Norman P. Jouppi and Gurindar S. Sohi (editors), Readings in Computer Architecture, Morgan Kaufmann, 2000.

The book includes many additional classic papers that I think you will find enjoyable and enlightening, and the editor's commentary before each chapter is extremely good.

If you are interested in a more standard textbook treatment of the more basic material we cover in class, a highly regarded, and widely used, textbook in computer architecture is:

John Hennessy and David Patterson, Computer Architecture: A Quantitative Approach, 3rd Edition, Morgan Kaufmann, 2003.

Homework:

1. Please email me a summary of the papers before class. Summary of each paper should consist of Summary (<=4 sentences), Strengths (<=3 sentences), Weaknesses(<=3 sentences), If you wrote this paper, what would your next paper be about? (no limit)

I believe that experience is the only way to gain knowledge. During the first half of the semester I will assign a set of mini-projects, each one usually an extensive design problem, every week that will help motivate and explore the concepts that we are covering at the time.

Final Project:

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 will involve re-validation of results in an existing paper or evaluating a new architectural idea by creating your own experimental setup. I will provide more information on the course projects, including suggestions of possibly topics, over the next few weeks.

Exams:

There will be two exams in the course. The first exam will be October 8th from 6-9pm. The second exam will be held during the course final exam period: on December 10th from 6PM-9pm. The format will be a 3 hour open book/notes/web/anything (i.e., a 3 hour take home exam).

Website and newsgroup:

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:
Mini-projects:20%
Paper Summaries:5%
Exam 1:20%
Exam 2:20%
Project:25%
Participation:10%

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.