Spring 2016 :: 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 processor 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.

The best way to understand why systems are built the way they are is to build such systems. To that end, this is primarily 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

Fundamentals of Processor Performance and Power Consumption, Instruction Set Architectures, Pipelining, Instruction Fetch, Branch Prediction, Instruction Decode, Instruction-Level Parallelism, Out-of-order Execution, Register Renaming, Instruction Scheduling, Memory Hierarchy, Cache Internals, DRAM, Prefetching, Vector Processing, GPUs, and Multi-[socket(SMP,DSM)|core(CMP)|thread(SMT,CMT)] machines.

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 1:00pm - 2:20pm.
  • Location: Earth & Space, Room 069.
  • Instructor: Nima Honarmand, New CS Building, Room 339. Office Hours: Tue & Thu 2:30pm - 3:30pm.
  • Teaching Assistant: Tapti Palit, New CS Building, Room 334. Office Hours: Wed & Fri 4:00pm - 5:00pm.
  • Newsgroup: on Piazza. This is the main venue for all class-related discussions and announcements. Please sign up to avoid missing important announcements.

Evaluation

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
  • Homework 1: 10
  • Homework 2: 10
  • Course project: up to 115
  • Midterm exam: 15
  • Final exam: 25
  • Participation: 10

The quiz contributes 0 points to your course grade but is mandatory. A total of 95 points is a guaranteed A, a 90 is a guaranteed A-, and so on. Individual participation will be judged by the instructor based on active interaction during lecture and on the course mailing list (attendance in lecture or office hours does not constitute participation).

Books

The following books are the recommended for this course. You can find them on Amazon or other online bookstores. I strong 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 (5th Ed)
In addition to the paper books, several Appendices of H&P are also available online.

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