CS232: Computer Architecture II
Fall 2009
Course Information

Instructor Prof. Viraj Kumar
email
2211 Siebel Center
Office hours: Monday 3 pm - 5 pm, Friday 11 am - 12 pm

TAs The TAs all share an office: 0212 Siebel Center

Name NetID Office Hours
Abner Guzmán Rivera aguzman5 Wednesday 3:00PM - 5:00PM
Ryan Cunningham rcunnin2 Tuesday 4:00PM - 6:00PM

Goals and Objective CS 232 has two primary goals: 1) to provide you with a mental model of how high-level language programs get executed on computer hardware, and 2) to introduce you to the organization and performance analysis of modern computers.

As computers execute programs in machine language, we will address the first goal through an extensive discussion of machine language and its human readable counterpart, assembly language. We will demonstrate how features of modern programming languages (e.g., function calls, recursion, pointers, dynamic memory allocation, etc.) are implemented in assembly language. In addition, topics like compilation, linking, I/O programming, and interrupt programming will be covered. We will specifically test the following objectives:

  1. students should be able to translate small (20 line) C programs that include recursion into MIPS assembly, observing calling conventions and stack management.
  2. students should be able to translate short (30 line) MIPS programs to corresponding C programs including function prototypes.

The second goal will be addressed in three ways: 1) We will present an overview of the organization of modern computers (processor, memory, I/O system) demonstrating the key challenges and ideas (e.g., pipelining, caching, indirection, etc.) that influence their design, 2) we will present both theoretical and practical performance analysis techniques and analyze the performance of many parts of modern machines (processors, memory, caches, disks, networks), and 3) we will write code in high-level languages and assembly to optimize program execution. We will specifically test the following objectives:

  1. students should be able to define and provide examples of the key implementation ideas of modern computers (abstraction, caching, hierarchy, indirection, pipelining, parallelism, speculation).
  2. students should be able to analyze performance questions to identify what phenomena and/or numerical values are required and compute a result if these are provided.
  3. students should be able to identify the hardware structures in pipelined processors and cache/memory systems and explain their role.
  4. students should be able to modify a processor datapath and control to support new instructions.

Lectures Wednesdays and Fridays, 2:00pm-2:50pm, 1404 Siebel. You should bring a writing implement to lecture.

Sections Each student should be registered for one of the following sections.

DayTimeLocation Instructor
Monday 11:00-11:50am1214 SCRyan Cunningham
12:00-12:50pm1214 SCAbner Guzmán Rivera
1:00-1:50pm1214 SCViraj Kumar
2:00-2:50pm1214 SCViraj Kumar

Sections will generally consist of a short (10-15 minute) lecture, followed by small group problem solving exercises to reinforce concepts discussed in class during the previous week.
Section attendence is important (and hence graded) because material will be introduced that is not covered in lecture. Section begins the first week of class.

Textbook Computer Organization & Design: The Hardware/Software Interface.
by David A. Patterson and John L. Hennessy. (Published by Morgan Kaufmann)
Second Edition: 1998 ISBN: 1-55860-428-6
Third Edition: 2004 ISBN: 1-55860-604-1
Fourth Edition 2008 ISBN-13: 978-0123744937

We follow the contents of this book closely, so it is highly recommended, but many students find they don't refer to the book. Any of the second, third, or fourth editions are fine.

Copies of the textbook (as well as others) are on reserve at Grainger Library

Computing Resources We will use the Engineering Workstations (EWS) for the machine problems in this class. The web page that provides locations for of EWS labs also provides the names of machines if you wish to work remotely. After you log in, type "cs232" at the prompt to get a work directory for the class.

For the initial MPs, we will be using two programs (g++ and SPIM) installed on the Linux EWS machines. More information about SPIM can be found at http://www.cs.wisc.edu/~larus/spim.html.

Web Site http://www.cs.uiuc.edu/class/cs232/ has announcements, lecture notes, and assignments. Just about all course materials will be distributed on the web. Solutions to programming assignments are the primary exception; they will be posted on the EWS machines (under ~cs232/solutions) shortly after the later period following the assignment due date.

Newsgroup class.fa09.cs232 is used mostly for questions and answers. This newsgroup is hosted by the CS department's new news server news.cs.illinois.edu; go to news.cs.illinois.edu to get a password. We'll do our best to respond as quickly as possible. To keep the newsgroup from becoming a complete mess, please note the following:
  • The newsgroup is meant for general questions, such as asking for homework clarifications or addressing administrative issues. More specific or personal problems are usually better handled via email or in person.
  • Use meaningful subject lines. "MP2, Part 2" is much more informative than just "My head is falling off!" This makes it easier for other people to find posts that they are interested in.
  • On a related note, before you post a question, check see if somebody else has already asked the same thing.
  • Most announcements are usually posted on the main class web page, and not the newsgroup.

Assignments There will be three kinds of homework during the semester that will make up 35% of the final grade: section problems, machine problems, and written/web homework:

Section Problems: In sections, problems will be presented to allow you to evaluate your understanding of the course material. Your participation in these problem solving sessions will contribute about 5% of your grade. If you cannot attend section, you can (up to three times during the semester) submit a completed version of the section problems to the TAs for grading by the end of Friday of the week of the section.

Machine Problems: Much of the out of class work in 232 will be in the form of machine problems (MPs), which are intended to be more challenging and open ended. You may turn in one assignment up to 48 hours late without penalty. When you turn in the late assignment, please let us know in writing that you want to use your "waiver." Otherwise, there is an amortized 15% penalty for each late day (e.g., 1% for every 1.6 hours late), again up to 48 hours.

When it comes to grading MPs, we happen to be sticklers for correctness. We are strict because it is good preparation for the real world. In the real world, you will get little credit if you build things that don't work. For MPs, you should not expect 99% credit if only one line of your 100-line program is broken. We are more generous with partial credit on exams because of time pressure involved.

Most of the MPs can be done individually or in groups of 2-3. Groups need only submit one copy of the assignment, with all partners clearly identified. Remember that you are on your own during the exams, so each group member is responsible for understanding the material individually.

MPs will account for 30% of your final grade.

Assignment due dates can be found on the Assignments Page.

Exams There will be two in-class exams. Exam 1 is worth 15% and Exam 2 is worth 25% of your final grade. Their dates are shown on the class schedule page. As they are in-class exams, we expect that there should be no conflicts; should a conflict arise, please notify a TA two weeks before the exam.

A cumulative final worth 25% is tentatively scheduled for 1:30-4:30, Friday, Dec. 11; This time is subject to change; please plan to be around the whole finals period until this time is confirmed. No calculators or books will be permitted on the exams, however you will be allowed a cheat sheet.

Regrades Regrade requests should be submitted in writing to any of the TAs within one week after the assignment or exam in question is returned.

Grades Assignment and exam grades will be available via the grade book. Please verify the accuracy of your grades often during the semester! Typos are unfortunately very possible in a class with many students.

Letter grades will be assigned based on your overall numeric score (rounded up).

92% - 100% A+
87% - 91%A
84% - 86%A-
81% - 83%B+
70% - 80%B
67% - 69%B-
64% - 66%C+
57% - 63%C
54% - 56%C-
47% - 53%D
0% - 46%F

We may lower the cutoffs slightly, but we will never raise them.

Cheating Academic integrity is an important issue in general. The University expects you all to be familiar with Rule 33 in the Code of Policies and Regulations Applying to All Students. If we are able to pick out two nearly identical assignments out of 150, then cheating has likely occurred. All parties involved will receive a 0 on that assignment or exam and their final course grade reduced by one letter (e.g., A->B, B->C, etc.). A second offense will result in a failing grade for the class.


email