This is an advanced undergraduate course
about computer architecture. Topics include fundamentals of computer design,
processor organization, pipelining, instruction-level parallelism, parallel
computer organizations, and memory hierarchies. The course is aimed at a
cross-section of Computer Science students and Computer Engineering students.
For all students, a goal of the course is
to provide quantitative tools for understanding existing computer architectures
and computer architectures that have yet to be invented.
Course
organization
The course will be organized as a reading and team-learning-and-teaching course. Students will be expected to
read most, of not all, of the primary textbook, Computer Architecture, 4th edition, by Hennessy and
Patterson. A significant written homework problem will be assigned approximately
once per week. Students are encouraged to work on the assigned problems together,
but then each student must write up the solution in his/her own words.
In addition, the class will be divided
into five teams of roughly equal size. Each team will be responsible for
reading, understanding, and presenting one major topic of the course to the
rest of the class. Presentations should occupy most or all of a two-hour class
period. Team members responsible for the presentation for a particular week are
exempted from homework assignments due that same week. Each team must meet with
the instructor at least one week prior to its assigned presentation.
There will be a final exam on the last
day of the course. This will be an open-book, open-notes exam. Students should
bring calculators, but laptops or other devices to connect to the web are not
permitted.
You must
have a solid background in CS-3013 and/or an equivalent Operating Systems
course. You must also have a background in machine organization, assembly
language, and/or microprocessor design — for example, CS
2011, Introduction to Machine Organization and Assembly Language or ECE 3803, Microprocessor System Design.
In addition,
it would help if at least some students have a background in compiler
construction, for example CS
4533, Techniques of Programming Language Translation.
CS-4515 meets for two 2-hour classes per
week for a seven-week undergraduate term (28 hours).
Time and Place: Tuesdays and Fridays, 8:00 — 9:50 AM, Fuller Labs 320
January 16 – March 3, 2009.
Class cancellations and snow dates: Consult official WPI sources regarding the cancellation
of classes due to snow and for rescheduling of those classes.
Professor:
Email:
<professor’s last name>@cs.wpi.edu
Office hours: by appointment, or (normally) 1 hour
after each class and Fridays, noon–1:00 PM
Office:
Fuller Labs, Room 137
Teaching Assistants:
Jeremy Denham (e-mail: jdenham)
Office hours: Tuesdays and Thursdays, 6-8 PM in Fuller A22
Office hours: Tuesdays, 3-5 PM and Wednesdays, 1:30-3:30 PM, Fuller A22
Textbook: John L. Hennessy and David A. Patterson, Computer Architecture: a Quantitative
Approach, 4nd edition, Morgan Kaufman,
2007.
Students
may want to refer to the following intermediate level textbook, which will be
placed on reserve in the library:–
o David A. Patterson and John L. Hennessy, Computer Organization and Design, 4th
edition, Morgan Kaufman, 2009.
Class e-mail lists: The following two lists are in the domain
cs.wpi.edu:–
o cs4515-all
— to reach all students, TAs, and the professor
o cs4515-staff — to reach just the TAs and the
professor
Course
web site: http://web.cs.wpi.edu/~cs4515/c09/
Course
materials: In order to conform to
copyright requirements, course materials and lecture notes will be stored on myWPI, a
password-protected web site.
Students needing to be absent from class
should notify the professor by e-mail or in person as soon as possible. Likewise,
students needing to schedule assignments or presentations around religious
holidays should notify the professor at
the beginning of the course.
Final grades will be computed as follows:
Final grades will reflect the extent to which you have demonstrated understanding of the
material, completed the written assignments, participated in class discussions,
and contributed to your team’s presentation to the class. This is a difficult
course. A grade of “A” will be awarded for full and active participation in all
aspects of the course and for general understanding of its concepts. Lower
grades may be awarded for lesser participation and less levels of understanding.
It is unlikely for a student to pass this
course if he/she does not submit homework assignments, take an active part in a
team presentation, or attend class regularly.
If there are any circumstances that limit
or restrict your participation in the class or the completion of assignments,
please contact the professor as soon as possible in order to work something
out.
Academic Honesty
Students are strongly encouraged to work
together, help each other, reinforce each others’ knowledge, and consult experts
and resources outside the course on all topics. Like most professional
environments in your future, success depends upon how well the team does as a
whole, not on competition among individuals.
Once
you and your colleagues have developed a solution to a problem, you must write
it up in your own words. Some assignments may be team assignments. For these,
it is expected that all members participate with roughly equal levels of
effort. When you put your name on a team submission of an assignment, not only
are you testifying that you have fully participated in that assignment, but
also your teammates are also testifying that you have fully participated.
For both individual and team assignments,
the WPI Academic Honesty Policy applies:–
http://www.wpi.edu/Pubs/Policies/Honesty/policy.html
Late Policy
Unless you have arranged otherwise with
the professor at least one day prior to
the due date, late submissions will be penalized 10% of total assignment
value per day or partial day (with the weekend counting as one day), and no
assignments will be accepted after seven days beyond the due date. All
assignments are due at the start of class on the due date. Exceptions to these
rules can be made only beforehand.
Students wishing to receive both BS and
MS credit for this course must complete an additional research project. This
project involves an investigation of some aspect of computer architecture that
is beyond the scope of this course, followed by a research report of 10-15
pages of the result of that investigation.
Project proposals for BS/MS credit are
due at the start of class on January 23, 2009, and project reports are due on
the last day of class, March 3, 2009.
The following is a rough outline of the
course. Note that topics are similar to those of ECE 4801 but are presented in
a different order.
·
Week 1 (Jan.
16 & 20):– Fundamentals of Computer Design
Chapter 1
·
Week 2 (Jan.
23 & 27):– Pipelining: Basic and Intermediate Concepts
Appendix A
·
Week 3 (Jan.
30 & Feb. 3):– Instruction-level Parallelism
Chapter 2
Team A presentation to introduce this
topic
·
Week 4 (Feb.
6 & 10):– Caches and Memory Hierarchy
Appendix C and part of Chapter 5
Team B presentation to introduce this
topic
·
Week 5 (Feb.
13 & 17):– Limitations on Instruction-level Parallelism
Chapter 3
Team C presentation to introduce this
topic
·
Week 6 (Feb.
20 & 24):– Multiprocessors and Thread-level Parallelism
Chapter 4
Team D presentation to introduce this
topic
·
Week 7 (Feb.
27 & Mar. 3):– Other Architectures & Final Exam
Appendix F (Vector Processors) or
Appendix G (Hardware and Software for VLIW and EPIC)
Team E to select one of these topics
and present it
There is clearly more material in the
text than there is time in seven weeks to present it. It is proposed that we
cover each topic to the depth that time allows and then move on to the next
topic. This will at least give the student an idea of what the critical issues
are and where or how to look for more depth, should the need arise in a
professional situation.
The
following papers are relevant to the material presented in class:–