CMSC 611: Advanced Computer Architecture

Spring 2006, TuTh 4:00-5:15, ITE 227

Last change:
Thu May 11 17:54 EDT 2006
Tue May 9 17:35 EDT 2006
Thu May 4 17:50 EDT 2006
Wed May 3 11:31 EDT 2006

Instructor: Dr. Marc Olano <>
ITE 354 (455-3094); Office Hours: Tue Thu 2:45-3:45

TA: Balaji Valady-Viswanathan
ITE 368; Office Hours: Tue 10:00-12:00

Prerequisite: CMSC 411 or equivalent

Text: Computer Architecture: A Quantitative Approach, 3rd edition, John L Hennessy and David A Patterson. Required.

Goal: Develop an understanding of the principles and practices employed in the design and evaluation of processors and computer systems.


Your grades will be based on homework assignments given approximately every other week, an in-class mid-term, a cumulative final exam, and a final project (done in groups of 2-3). The total grade breakdown will be as follows:

30%:   Homework
25%:   Mid-term exam
25%:   Final
20%:   Project

Homework assignments submitted up to one week late will be penalized 20 percent of the possible score. Assignments more than one week late will receive a score of 0. Each student gets one free "late" (i.e. up to one week late without penalty, but still zero if later than one week) to apply to any of the assignments. Your free late must be claimed in writing by email to the professor on or before the due date.

Academic Honesty

By enrolling in this course, each student assumes the responsibilities of an active participant in UMBC's scholarly community in which everyone's academic work and behavior are held to the highest standards of honesty. Cheating, fabrication, plagiarism, and helping others to commit these acts are all forms of academic dishonesty, and they are wrong. Academic misconduct could result in disciplinary action that may include, but is not limited to, suspension or dismissal. To read the full Student Academic Conduct Policy, consult the UMBC Student Handbook, the Faculty Handbook, or the UMBC Policies section of the UMBC Directory, or the Graduate School website.

All assignments in the course are expected to be your individual work. You may discuss assignments, however any help you receive must be documented. At the beginning of each or assignment, you must include a statement indicating the sources you used while working on it (excluding course staff and text) and the type of help you received from each. If you received no help, say so. Failure to include this comment will result in your assignment being returned ungraded.

Tentative Schedule

Homeworks are marked to show whether they will be due on the Tuesday (Tue) or Thursday (Thu) of each indicated week.

Readings should be completed before the first date listed below for maximum benefit. In many cases, the readings may be lengthy (covering most of a 1000+ page book over the course of the semester). You are, of course, free to choose your own strategy. At the very least, I'd recommend skimming the readings before class then re-reading difficult sections in depth after class. Without a doubt, prior exposure to the concepts we will be covering will aid your understanding.

Date Topic Reading Due dates
Jan 31,Feb 2 Introduction
Feb 7,9 Cost, Performance & Benchmarking Ch 1
Feb 14,16 Instruction set design Ch 2 Tue: HW1 (1.1, 1.21c)
Feb 21,23 Compilers and ISA Ch 3 Tue: Select Team and Project app+user by email
Feb 28,Mar 2 Pipelining & Pipeline Hazards Ch 4, A Tue: HW2 (2.6, 2.16)
Mar 7,9 Instruction-level parallelism
Mar 14,16 Scoreboard, Tomasulo Thu: HW3 (3.1, 3.4b-e, 2.12=20pts extra)
Mar 21,23 Spring Break!
Mar 28,30 Review, Midterm
Apr 4,6 Exam review, Tomasulo, Branch prediction
Apr 11,13 Branch prediction, Hardware description languages and simulation See below Thu: HW4 (3.7, 3.15, A.13=20 pts extra)
Apr 18,20 Cache Ch 5
Apr 25,27 Memory, storage Ch 7 Thu: HW5 (5.4, 5.13, 5.3=15 pts extra)
May 2,4 Storage & I/O, Parallel systems Ch 6
May 9,11 Shared & Distributed memory, Interconnection Networks Ch 8 Tue: HW6 (7.3, 7.5 OR 7.7, 7.11=15 pts extra)
May 16 Review Tue: Project hardcopy in class
May 23 Final exam, 3:30 – 5:30, ITE 227

VHDL Resources

Class Resources

This syllabus is a snapshot of the class web page ( Important announcements and updates will be made to this page throughout the semester. I will announce at the beginning of class if I make a significant change or addition, and date stamps of the latest several changes will appear on top of the page.

There is also a class email list for announcements and public student questions: Your classmates will get this email, so you should not use the list for private or grade-related comments, but feel free to use it as a means to ask public questions of me, the TA, or your fellow students. The list will only accept mail from subscribed addresses. I have pre-subscribed the address for each student enrolled in the course as of Friday, January 27th. You can add, change or remove your address subscription using the web interface at To subscribe a address, you'll need to use the email interface, documented in the ListProc Users FAQ at