CMSC 611: Advanced Computer Architecture

Syllabus

Fall 1998

Time: Tue & Thu 5:30 - 6:45 PM
Location: CP 208A
Instructor: Dr. Ethan Miller (elm@csee.umbc.edu)
Office hours: Tue 4 - 5 PM, Wed 2 - 3 PM (225H ECS)
TA: Sharon Qi (xqi@csee.umbc.edu)
TA office hours: Thu 2 - 3 PM (ECS 202E)
Prerequisite: CMSC 411 or equivalent

Overview

The performance of computer systems is doubling every 18 months while computer system prices remain constant or even drop. This course will introduce many of the methods that computer designers use to build ever-faster computers, focusing on techniques that enable today's desktop computers to run at the speeds of yesterday's supercomputers.

Much of the course will be spent covering improvements and refinements to the basic computer designs taught in undergraduate courses. Thus, it is imperative that students in this class have a good grasp of basic computer architecture as taught at UMBC in CMSC 411 or in similar classes elsewhere.

Readings

The main textbook for the course is the second edition of Computer Architecture: A Quantitative Approach, by Hennessy & Patterson. Homework problems may be drawn from the book, and most of the readings will come from here as well. There may also be additional readings (recent papers) distributed in class. You are responsible for doing the reading before the class at which it will be discussed. I expect all students to participate in class discussions, and it's difficult to do so if you haven't read the material. Topics will be covered in the following order, with specific readings and dates listed on the course schedule page.

  1. Measuring Performance & Cost
  2. Instruction Sets
  3. Improving CPU Performance: Pipelining
  4. Vector Processors
  5. Memory Hierarchies
  6. Storage Systems
  7. Multiprocessors

Projects

The term project is a major part of this graduate class on computer architecture. However, learning to work with others and documenting your work are just as important as the technical content. You must be part of a 2-3 person project group unless you have a good reason to work alone (in which case, please see me).

Your group may pick its project topic from a list of suggestions that will be handed out in class, or you may choose your own topic. Anything related to computer architecture could become a project, but it should involve some implementation, design, or analysis - merely summarizing existing work in an area is not a project, though verifying previously published claims with your own experiment may be OK. Either way, you'll have to do some library research on your topic to get a basic grounding in the material. I encourage you to pick projects that you (and the rest of your group) find interesting, since those are the ones that are easiest to work on.

To insure progress throughout the semester, your project will have several milestones. Some of these milestones will consist solely of handing in a brief (no more than 1-2 page) progress report. Other milestones will include both a brief report and a short (10 minute) meeting with me. At these meetings, you'll have an opportunity to discuss any project-related issues that might have come up, or any difficulties you anticipate having. While these milestones shouldn't (of themselves) require lots of time, they will guarantee that your group isn't stuck doing an entire project in the last week of the semester. Milestones will not be graded except as part of the project as a whole. However, groups not satisfactorily meeting milestone dates will lose points from their final project grade.

All groups will present their project results to the rest of the class in a short (10 - 15 minute) presentation during the last week of classes. Each group must also hand in a written report on their project. This report should be 3500 - 5000 words long, or 8 to 12 single-spaced pages. It should describe the problem, cover sufficient background material so that others can understand the project, and describe both the project and results in detail. In short, it should resemble a conference paper in both length and scope. A sample project report (yes, this paper started as a class project) is available online. As you can see, it's certainly possible for some particularly interesting and well-done projects to lead to published papers, perhaps with some additional work.

Homework

There will be 5-7 homework assignments assigned over the course of the semester, about once every two weeks. These must be done individually, though you may help other students with the concepts covered in the homework. You may not discuss particular homework problems with others in the class. Copying or sharing of answers is considered cheating, and will be dealt with accordingly (at least a 0 on the homework, and possibly more serious action).

Homework assignments will always be listed on the news & notes page, so please check the page if you miss class. Ignorance of a due date is not an excuse for handing in homework late. Homwork is due 10 minutes after the start of class; late homeworks will not be accepted. Homework will be graded, and will make up 20% of your final grade.

Exams

There will be one midterm given in class and a final given during exam week. The midterm will (obviously) only cover the first half of the class, but the final exam will cover the entire semester (not just the second half). The midterm will count for 15% of your final grade, and the final will be 20%. If you miss an exam, you must provide an excuse (doctor's note or obituary) and make up the exam.

The exams are open book and open note, and the use of a calculator is very strongly encouraged. Please bring your textbook to the exam, since the exam may use graphs or other material from the text. While you may use many sources during the exam, you may not use other people in the class. Cheating on exams will be dealt with severely.

Grades

As mentioned above, the grade breakdown is as follows: project 40%, exams 35%, homework 20%, and class participation 5%. You must take both exams and hand in a project to pass the class. While you are not required to hand in every homework, those that you do not hand in will count as zeros toward your homework grade. Incompletes will not be given except in extraordinary circumstances. The grading scale is:

Grade Score
A 89-100
B 80-88
C 70-89
D 60-69
F 0-59


Last updated 12 Oct 1998 by Ethan Miller (elm@csee.umbc.edu)