Computer Architecture

Course ID 15740

Doctoral Breadth Course: Computer Systems - (*)
Classes marked with "*" (star) are appropriate for any CSD doctoral or 5th year master's student.

Description

This course attempts to provide a deep understanding of the issues and challenges involved in designing and implementing modern computer systems. Our primary goal is to help students become more skilled in their use of computer systems, including the development of applications and system software. Users can benefit greatly from understanding how computer systems work, including their strengths and weaknesses. This is particularly true in developing applications where performance is an issue. 

Key Topics
In addition to covering issues that are relevant in systems with only a single processor, the course places a strong emphasis on parallel systems comprised of multiple processors, with topics ranging from programming models to hardware realizations. While the Hennessy and Patterson textbook covers nearly all of the topics that will be discussed in this course, the Culler, Singh and Gupta textbook goes into greater depth on parallel architecture and programming.

Required Background Knowledge
We expect that people are already at least somewhat familiar with assembly language programming, pipelining, and memory hierarchies. If you have not had such a course already, then it is still possible to take this course provided that you are willing to spend some additional time catching up on your own. If you feel uncertain about whether you have adequate preparation, please discuss this with the instructor.

Course Relevance
This course is not intended to be your first course on computer architecture or organization; it is geared toward students who have already had such a course as undergraduates.

Course Goals
Students will gain a deep understanding of various aspects of computer system design and optimization, often with a focus on high-performance computing, modern CPU architectures, energy efficiency, and parallelism.

Learning Resources
Piazza, Gradescope, Course website
Main Text: Hennessy, J. L, and Patterson, D. A., Computer Architecture: A Quantitative Approach, 5th Edition. Morgan Kaufmann, 2011.
Supplemental Text: Culler, D., and Singh, J.P., with Gupta, A. Parallel Computer Architecture: A Hardware/Software Approach, Morgan Kaufmann, 1998.

Assessment Structure
Exams: 30% (15% each); Assignments: 10% (5% each); Readings: 10%; Project: 40% Class Participation: 10%

Course Link
https://canvas.cmu.edu/courses/37418