logohome

Computer Architecture

CS 4515
D-Term 2015

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 processor design courses such as ECE 3849 and ECE 4801 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.

Course organization

The course will be organized as a reading and team-learning-and-teaching course. Students will be expected to read most, if 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 may work on the assigned problems in two person teams, subject to the rules under Academic Honesty below.

In addition, the class will be divided into 5-8 teams of roughly equal size. Each team will be responsible for reading, understanding, and presenting a major topic of the course to the rest of the class. Presentations should be approximately one hour. 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 the start of the term to settle on a topic, and then again at least one week prior to the 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 notes and the textbook.

Relationship to ECE-4801

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. This is the first year in recent memory in which CS-4515 is offered later in the academic year than ECE-4801.

For its textbook, ECE-4801 uses Computer Organization and Design, also by David Patterson and John Hennessey. That book is less advanced than the textbook used in CS-4515, but it contains much more practical information for engineers who are considering a career in the design of digital systems.

Index

·         Prerequisites

·         Course Information

·         Grading Policy

·         BS/MS Project

·         Course Outline and Team Presentations

·         Reference Links  

·         Lecture Notes

·         Homework Assignments

·         Lecture Capture — all lectures and team presentations will be captured by the Echo360 system and can be viewed at this link.


Prerequisites

You must have a solid background in CS-3013, Operating Systems, and/or an equivalent, robust operating system 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 3849, Real-Time Embedded Systems.

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.

Note:  This course is not recommended for freshmen and sophomores. The reason is its heavy emphasis is on the team presentation and public speaking. It is strongly recommended that students complete an IQP before taking this course.

top

Course Information

CS-4515 meets for two 2-hour classes per week for a seven-week undergraduate term (28 hours).

Time and Place: Tuesdays and Fridays, 1:00 — 2:50 PM, Salisbury 105
March 16 – May 5, 2015
There will be no class on Tuesday, April 21, 2015 (WPI undergraduate classes observe a Thursday schedule that day)

Professor: Hugh C. Lauer
Email: <professor’s last name>@cs.wpi.edu
Office hours: Wednesdays, noon–1:00 PM; Fridays 10:00-11:00 AM; other times by appointment

Office: Fuller Labs, Room 144

Teaching Assistant:
Salah Ahmed (e-mail: sahmed2)
            Office hours: Mondays 10:00 AM to noon; Wednesdays 1:00–3:00 PM

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:–

·       David A. Patterson and John L. Hennessy, Computer Organization and Design, 4th edition, Morgan Kaufman, 2009, or 5th edition, 2013.

·       Randal Bryant and David O’Hallaron, Computer Systems: A Programmer’s Perspective,, 2nd edition, Prentice-Hall, 2011.

Quizzes: Normally on Tuesdays at 1:00 PM. Students may begin each quiz as soon as they in the classroom.

            The quiz portion of the grade will be based on the best four of the six quizzes. The final quiz is mandatory for passing the course; it will be worth twice as much as any other quiz.

Written Homework Assignments: Normally due on Thursdays at 11:59 PM

·       Submit via web-based Turnin system at

https://turnin.cs.wpi.edu/

Team Presentations: Normally on Tuesdays following the quiz and on Fridays at the start of class.

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/d15/

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: Consult official WPI sources regarding the cancellation of classes for any reason 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.

top


Grading Policy

Final grades will be computed as follows:

·         Team presentation: 35%

·         Quizzes and Final Exam: 30%

·         Written homework assignments: 25%

·         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.

Academic Honesty

Students are strongly encouraged to work together, help each other, reinforce each other’s 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 on each assignment. 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 you are also testifying that your teammate(s) have fully participated.

For both individual and team assignments, the WPI Academic Honesty Policy apply:–

http://www.wpi.edu/Pubs/Policies/Honesty/policy.html

Note:  In the past, some teams have attempted to alternate the work load among members on the assignments — e.g., member A does the assignment one week and then member B does the next assignment the following week. This is not acceptable! The penalty for such a violation is an automatic grade of zero for both team members for the offending assignment.

 

Note 2: Many of the homework problems are taken from the textbook. Solutions to these can be found on the internet. Copying from the internet is strictly forbidden! Violations will result in the initiation of Academic Dishonesty proceedings with the Office of the Dean of Students.

Late Policy                                           

Unless you have arranged otherwise with the professor at least one day prior to the due date, late submissions will be penalized 25% of the total assignment value per day or partial day (with the weekend counting as one day), and no assignments will be accepted after two days beyond the due date. Exceptions to these rules can be made only beforehand.

top


BS/MS Credit

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.

You must consult the professor before registering for such a project.

top


Team Projects and Presentations

A list of suggested topics for team presentations can be found here (docx, pdf).

Students should form themselves into teams of about six members each as soon as possible in the term. Teams should identify themselves to the Professor as soon as possible, along with preferences for topics or a suggestion of a new topic.

Course Outline

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 (Mar. 17 & 20):– Fundamentals of Computer Design
Chapter 1

·         Week 2 (Mar 24 & 27):– Pipelining: Basic and Intermediate Concepts
Appendix C

·         Week 3 (Mar 31 & Apr 3):– Caches and Memory Hierarchy
Appendix B and Chapter 2
Teams A & B present this week

·         Week 4 (Apr 7 & 10):– Instruction-level parallelism
Chapter 3
Teams C & D present this week

·         Week 5 (Apr 14 & 17):– Data Parallelism
Chapter 4
Teams E & F present this week

·         Week 6 (Apr 24 only):– Multiprocessors and Thread-level Parallelism
Chapter 5

·         Week 7 (Apr 28 & May1):– Warehouse-scale computing
Chapter 6
Teams G & H present this week

·          Week 8 (May 5):– Final Exam

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.

top