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