600.333/433
CSF Course Overview
Fall 2002


600.333/433 Computer Systems Fundamentals offers a system-level perspective to modern computer architecture. The course focuses on the boundary between hardware and software operations, and explores various levels of hardware from the perspective of the design and performance of a reduced instruction set computer (RISC) systems architecture. This hardware/software boundary is characterized and studied in terms of the computer's architectural specifications. The specifications covered in 600.333/433 Computer Systems range broadly from designs of functional modules for the manipulation/processing of data to the implementation and use of a machine-level instruction set capable of efficiently supporting a modern programming language.


600.333/433 Computer Systems intends to provide a student with a fundamental conceptual understanding of the primary components of a microprocessor system together with associated analytical techniques sufficient to design and quantitatively assess the performance of variations of a family of computer systems architectures based on detailed specifications of the clock-cycle by clock-cycle functional and control module operations. The execution of benchmarks represented by MIPS machine-level instruction code sequences implementing commonly used programming methodologies (e.g., iteration, recursion, and searching) serves as a framework for evaluating the MIPS pipelined computer systems architecture. Inherently conflicting design tradeoffs such as clock rate and module functionality/control are explored. The successful 600.333/433 Computer Systems student must demonstrate an awareness of the role played by fundamental relationships among resource parameters in the operational performance of a computer systems architecture.

600.333/433 Computer Systems is generally taught twice each academic year in the Department of Computer Science: during the fall semester, usually with an enrollment of about 100 students, and during the first term of the summer session (June), usually with an enrollment of about 30 students. A commonly taken more advanced follow-up course, 600.334/434 Computer Systems Architecture, is usually taught once each academic year in the spring semester with an enrollment of about 50+ students.


Course Grading

A student's success in achieving the course goals is assessed in 600.333/433 Computer Systems by means of a Mid-Term Exam, an End-Term Exam, and a Final Exam (comprised of two equally weighted components, each, respectively, covering the material on the Mid-Term Exam and End-Term Exam), weekly homework assignments, and MIPS assembly language programming projects (using the SPIM simulator). The Mid-Term Exam is counted as 25% of the final grade and End-Term Exam is counted as 25% of the final grade. The Final Exam, which is optional, is counted as 25% of the final grade if taken. The programming projects count as 12.5% of the final grade and the homeworks are counted as 12.5% of the final grade.

A CSF student can elect not to take the Final Exam. If a student elects this option, Mid-Term Exam is counted as 37.5% of the final grade and End-Term Exam is counted as 37.5% of the final grade.

Exams and projects for students in 600.333 Computer Systems have optional components; students in 600.433 Computer Systems are required to complete all components of exams and projects.

All exams in 600.333/433 Computer Systems are taken with an open standard text book, but closed notes. Supplementing a textbook with inserts is not permitted, but obviously written comments or markings in a standard textbook are acceptable.


Exam scores on the Mid-Term Exam or End-Term Exam can be improved by means of performance on the Final Exam as follows. The Final Exam will be divided into two parts, each worth 120 points and graded separately. To understand this grade improvement opportunity, in the following discussion, consider Mid-Term Exam 1 to be the regular Mid-Term Exam given in mid-October, and Mid-Term Exam 2 to be the End-Term Exam given in early December. If the score on the Final Exam part corresponding to the Mid-Term Exam i, (where i is either 1 or 2), is higher than the score on the corresponding Mid-Term Exam i, then in computing the final grade for the course, the score on the Mid-Term Exam i will be replaced by the average of the actual score on the Mid-Term Exam i and the score on the Final Exam part corresponding to the Mid-Term Exam i. If the score on the Final Exam part corresponding to the Mid-Term Exam i is lower than the score on the Mid-Term Exam, i, no change will be made to the score on the Mid-Term Exam i in computing the final grade.



Pre-requisites

The pre-requisite for 600.333/433 Computer Systems is a general understanding of a high-level programming language such as C or C++. However, this should not be interpreted as a need for programming proficiency, as the course is essentially self-contained. 600.333/433 Computer Systems is commonly taken by a broad spectrum of students including Computer Science (B.S. and B.A.) and Computer Engineering undergraduate majors, Computer Science minors, Computer Science masters and doctoral students (600.433 version), as well as many other Whiting School of Engineering and Krieger School of Arts and Sciences undergraduate and graduate students interested in attaining a fundamental understanding of operations and performance of modern microprocessor architectures.



Course Topics

Topics covered in 600.333/433 Computer Systems are outlined in the following list. Each topic listed is covered in approximately 2 to 4 class periods (50 minute per class period). The ordering and number of class periods can vary slightly in different course offerings.



Textbook

There are many possible choices for textbooks for 600.333/433 Computer Systems Fundamentals. Some are provided in the list below. However, the broad range of students usually co-resident within the same 600.333/433 Computer Systems class is possible because of the availability and use of a particular comprehensive course textbook. 600.333/433 Computer Systems closely follows the contents of the first 7 chapters and Appendices A and B of the text: ``Computer Organization and Design: The Hardware/Software Interface,'' Second Edition, Morgan Kaufmann Publishers, by David A. Patterson and John L. Hennessy [Reference 1 below]. (It might be of interest that John Hennessy became the President of Stanford University in the spring, 2000, probably making CSF the only CS course you will ever take using a textbook written by a president of a major university.) The second Patterson/Hennessy textbook [2] cited below provides a more advanced perspective to computer architecture, and assumes that the material in the CSF textbook [1] is understood.
  1. Patterson, D., and Hennessy, J., "Computer organization and design: the hardware/software interface," Second Edition, Morgan-Kaufmann, 1998.
  2. Hennessy, J., and Patterson, D., "Computer architecture: a quantitative approach," Third Edition, Morgan-Kaufmann, 2002.
  3. Mano, M., "Computer system architecture," Prentice-Hall, (Third edition), 1993.

Last modified: Wed Sep 18 16:57:36 EDT 2002