This is an advanced undergraduate course about computer architecture. Topics include fundamentals of computer design, processor organization, pipelining and instruction-level parallelism, caching and memory hierarchies, and organization of modern parallel computational systems. The course is aimed at a cross-section of Computer Science students and Computer Engineering students.
· For computer scientists, software engineers, and game developers, the course provides the tools to evaluate processor architectures and their key attributes for purposes of, for example, selecting appropriate processors for application tasks or participating in joint hardware-software architectural designs for future systems.
· For computer engineers, the course builds on an intermediate-level processor design course such as ECE 3803 to provide in-depth insight into advanced design alternatives of modern processors.
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.
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, 5th 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 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 short quiz each week and a final exam on the last day of the course. Quizzes and the final exam will be an open-book and open-notes. Students should bring calculators. Laptops, iPads, Kindles, etc., are permitted only for the purpose of referring to electronic copies of the textbook.
CS-4515 is more advanced and less detailed than ECE-4801, Advanced Computer System Design. Students interested in developing skills in the actual design of digital computers may be interested in taking both courses. In the academic year 2012-2013, CS-4515 is offered in B-term and ECE-4801 is offered in C-term. (In future years, the order of these two courses may be reversed.)
For a textbook, ECE-4801 uses Computer Organization and Design, also by David Patterson and John Hennessey. This is less advanced than the textbook used in CS-4515, but it contains much more practical information about digital design.
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
October 23 – December 11, 2012.
Hugh C. Lauer
Email: <professor’s last name>@cs.wpi.edu
Office hours: by appointment, or Tuesdays noon-2:00 PM and Fridays 10:00-11:00 AM and 3:00-4:00 PM
Office: Fuller Labs, Room 144
Will Disanto (e-mail: wrdisanto)
Office hours: Mondays 5–7 PM, Thursdays 3–5 PM, Fridays 4:30–5:30 PM
(or later if students need extra help)
Textbook: John L. Hennessy and David A. Patterson, Computer Architecture: a Quantitative Approach, 5nd edition, Morgan Kaufman, 2012.
Students may wish to refer to the following intermediate level textbooks, which will be placed on reserve in the library:–
· David A. Patterson and John L. Hennessy, Computer Organization and Design, 4th edition, Morgan Kaufman, 2009.
· Randal Bryant and David O’Hallaron, Computer Systems: A Programmer’s Perspective,, 2nd edition, Prentice-Hall, 2011.
Quizzes: Normally on Tuesdays at 8:00 AM. Students may begin each quiz as soon as they in the classroom.
Written Homework Assignments: Normally due on Fridays at 11:59 PM
· Submit via web-based Turnin system at
Team Presentations: Normally on Tuesdays following each quiz. The team making the presentation is exempt from the quiz that day.
Class e-mail lists: The following two lists are in the domain cs.wpi.edu:–
· cs4515-all — to reach all students, the TA, and the professor
· cs4515-staff — to reach just the TA and the professor
Course web site: http://web.cs.wpi.edu/~cs4515/b12/
Course materials: In order to conform to copyright requirements, course materials and lecture notes will be stored on myWPI, a password-protected web site.
Class cancellations and snow dates: Consult official WPI sources regarding the cancellation of classes due to snow and for rescheduling of those classes.
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:
· Team presentation: 30%
· Written homework assignments: 30%
· Final Exam: 30%
· Other class participation: 10%
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.
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:–
Unless you have arranged otherwise with the professor at least one day prior to the due date, late submissions will be penalized 15% of total assignment value per day or partial day (with the weekend counting as one day), and no assignments will be accepted after four days beyond the due date. Because of the tight grading schedule at the end of term, late submissions of the last homework assignment will not be accepted after two days beyond the due date. Exceptions to these rules can be made only beforehand.
Undergraduate students may enroll in the BS/MS program in the Department of Computer science. Students thus enrolled will earn two graduate credits toward the Master of Science degree in Computer Science upon completion of this course with a grade of B or better.
Students wishing to earn an extra MS credit for this course must register for an additional independent study project of 1/6 unit. This project should involve an investigation of some aspect of computer architecture that is beyond the scope of this course, preferably the in-depth simulation of a feature or facility using the SPEC benchmarks.
Project proposals for independent study projects must be submitted to the Professor before Thanksgiving, and the projects themselves should be carried out in C-term.
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
Week 2 (Jan. 23 & 27):– Pipelining: Basic
and Intermediate Concepts
Week 3 (Jan. 30 & Feb. 3):–
Team A presentation to introduce this topic
Week 4 (Feb. 6 & 10):– Caches and Memory
Appendix C and part of Chapter 5
Team B presentation to introduce this topic
Week 5 (Feb. 13 & 17):– Limitations on
Team C presentation to introduce this topic
Week 6 (Feb. 20 & 24):– Multiprocessors and
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:–