Spring 2018 :: CSE 502 — Computer Architecture

Course Description

Computer Architecture is about planning, designing and, eventually, building computer systems. It is where hardware design meets software. A computer architect's job is to choose, and sometimes create, hardware components and interconnect them in order to create computers that meet certain functional, performance and cost goals.

This course is an introductory study of the major concepts of modern computer architecture. Through this course, students will gain an understanding of the key concepts of modern processor architecture and its implications on software and hardware design. Specifically, the course will concentrate on the memory hierarchy and out-of-order execution, giving students the necessary tools to understand the micro-architecture of modern processors and to reason about their performance. We will also study cutting-edge topics such as GPU architectures, data centers and special-purpose accelerators.

The best way to understand why systems are built the way they are is to build one yourself. To that end, this is a project-oriented course. The lectures will be dominated by a discussion of micro-architectural components, with the explicit goal of enabling students to create detailed working models of these components.

Course Topics

In-depth coverage of classic computer architecture topics including:

  • Fundamentals of processor performance and power consumption
  • Instruction Set Architectures
  • Pipelined processor design: instruction fetch, decode and execution; pipeline hazards and bypassing
  • Super-scalar and out-or-order pipelines: Instruction-level parallelism, out-of-order execution, register renaming, instruction scheduling, branch prediction and speculative execution
  • Vector processing
  • Memory Hierarchy: cache internals, DRAM and prefetching

Introductory topics in parallel computer architectures:

  • Muti-cores and multi-processors
  • Hardware multi-threading
  • Cache coherence and memory consistency

Overview of new directions in computer architecture (time permitting):

  • GPUs
  • Warehouse scale computers (data centers)
  • Accelerators
  • Emerging storage technologies

Prerequisites

An undergraduate course in computer architecture or system organization is an informal prerequisite for this class, as is proficient knowledge of programming and debugging. Students without prior systems experience or working knowledge of programming will be expected to devote additional time early during the course. Prior coursework in operating systems, compilers, digital logic, and/or hardware design will likely be of help. If you are unsure whether or not you have the necessary background or if you are unable to sign up via the web, please contact the instructor.


Course Information

  • Time: Tue & Thu 4:00 – 5:20 PM.
  • Location: Frey Hall, Room 305.
  • Instructor: Nima Honarmand, New CS Building, Room 339. Office Hours: Tue & Thu 3:00 – 4:00 PM.
  • Teaching Assistant: TBD.
  • Newsgroup: "General Discussions" forum on Blackboard. Blackboard is the main venue for all class-related discussions and announcements. Make sure to subscribe to the forum ASAP to avoid missing posts.

Evaluation

Exams

There will be one graded quiz and two exams in this course: a midterm exam, to be held in-class, and a final exam, which will be held during Finals week at the officially scheduled date/time. See the course schedule for specific exam times and locations. Both exams will be closed-everything. They will include everyhting in course lectures, class discussions, required readings, Blackboard posts and course assignments.

Assignments

There will be 2 homework assignments and a course project. You can find more details about them here.

Grading

Students will be evaluated based on their performance in the following categories:

  • Quiz 0: 0
  • Quiz 1: 10
  • Homework 1: 10
  • Homework 2: 10
  • Course project: up to 125
  • Midterm exam: 20
  • Final exam: 20
  • Student presentation (optional): 10

The guaranteed letter grades cutoffs are as follows: [A, A-, B+, B, ..., D, F] = [95, 90, 85, 80, ..., 50, <50]. A curve might be applied on top of this, at the instructor's discretion, to improve the letter grades.


Course References

The following books are the recommended for this course. You can find them on Amazon or other online bookstores. I strongly encourage you to obtain at least one (ideally both) of these and study it cover to cover—especially if you are planning to pursue Systems research for your PhD work.

  • Modern Processor Design: Fundamentals of Superscalar Processors, by Shen and Lipasti
  • Computer Architecture: A Quantitative Approach, by Hennessy and Patterson (6th Ed)
In addition to the paper books, the online Appendices of H&P are available here.

Additional readings will be assigned as needed from materials that are available online or from the library. In addition, you can find a list of useful references and reading materials for the course project on the assignments page.


Academic Integrity

Each student must pursue his or her academic goals honestly and be personally accountable for all submitted work. Representing another person’s work as your own is always wrong. Faculty is required to report any suspected instances of academic dishonesty to the Academic Judiciary. For more comprehensive information on academic integrity, including categories of academic dishonesty please refer to the academic judiciary website here.

Critical Incident Management

Stony Brook University expects students to respect the rights, privileges, and property of other people. Faculty are required to report to the Office of University Community Standards any disruptive behavior that interrupts their ability to teach, compromises the safety of the learning environment, or inhibits students’ ability to learn. Faculty in the HSC Schools and the School of Medicine are required to follow their school-specific procedures. Further information about most academic matters can be found in the Undergraduate Bulletin, the Undergraduate Class Schedule, and the Faculty-Employee Handbook.

Acknowledgements

The course lectures are largely based on material from offerings of similar courses by Professors Austin, Brehob, Emer, Falsafi, Ferdman, Hill, Hoe, Kim, Loh, Lipasti, Martin, Milder, Roth, Sanchez, Shen, Smith, Sohi, Torrellas, Tyson, Vijaykumar, and Wenisch (in alphabetical order) of Carnegie Mellon University, Georgia Institute of Technology, Massachusetts Institute of Technology, Purdue University, Stony Brook University, University of Illinois, University of Michigan, University of Pennsylvania, and University of Wisconsin (in alphabetical order).