CS232: Computer Architecture II
Fall 2008
Course Information


Instructor

Prof. Maria J. Garzaran
email
4308 Siebel Center
Office hours: Wednesday 3:00 to 4:00 pm and Friday 4:00 to 5:00 pm

TAs

The TAs office: 212

Name

NetID

Office Hours

Abner Guzman

aguzman

Tuesdays, 3:00 to 5:00 pm

Ryan Cunningham

rcunnin2

Wednesdays 5:00 to 7:00 pm

Cyrus Rashtchian

crashtc2

Tuesdays 5:00 to 7:00 pm

Thursdays 4:00 to 5:00 pm

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:00am-2:50am, Room 1404 Siebel Center. You should bring a writing implement to lecture.

Sections

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

Day

Time

Location

TAs

Monday

10:00-10:50am

1214 SC

Abner, Ryan

11:00-11:50am

1214 SC

Abner, Ryan

12:00-12:50pm

1214 SC

Abner, Ryan

1:00-1:50pm

1214 SC

Abner, Ryan

2:00-2:50pm

1214 SC

Prof. Garzaran, Abner, Ryan

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 because material will be introduced that is not covered in lecture. Section begins the first full 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

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

Note: the book store has another boot entitled "Verilog HDL: A Guide to Digital Design and Synthesis," which will be a reference for students who take 296 &32, the 232 honor's section.

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 (gcc 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.cs232 is used mostly for questions and answers. This newsgroup is hosted by the CS department's new news server news.cs.uiuc.edu; go to http:news.cs.uiuc.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 40% 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. Id you cannot attend section, you can (up to three times during the semester) submit a completed version of the section problems to the TAs (by the end of Friday) for grading.

 

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.

 

Written Homework: The machine problems will be complimented by written homework. Written homeworks will use the same late policy as MPs.

 

Together, MPs, Homeworks, and Sections will account for about 40% of your final grade.

Also, during the semester we may also have surveys and in-lecture exercises that may contribute slightly to your homework grade.

Assignment due dates can be found on the Assignments Page.

Exams

There will be three in-class exams, each worth 15% 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, also worth 15%, is tentatively scheduled for Tuesday December 16 from 1:30 to 4:30; This time is subject to change; please plan to be around the whole finals period until this time is confirmed. No calculators, cheat sheets, notes or books will be permitted on the exams.

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

MPs, homework’s and Sections will account around 40% of your grade. Each exam is worth 15%. 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.

The distribution of the final grades will be approximately 30% As, 35% Bs, 30% Cs and 5% others. Notice that these percentages are subject to small changes.

 

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