CS 6290: High Performance Computer Architecture

Instructional Team

Milos Prvulovic
Milos Prvulovic
Creator, Instructor
Nolan Capehart
Nolan Capehart
Head TA

Overview

This course covers modern computer architecture, including branch prediction, out-of-order instruction execution, cache optimizations, multi-level caches, memory and storage, cache coherence and consistency, and multi- and many-core processors.

Course Goals

After taking this course, students should be able to:

  • Confidently discuss key ideas and elements of modern computer architectures, including branch prediction, out-of-order execution, cache optimizations, multi-level caches, memory, storage, reliability/availability, multi-core processors, cache coherence and consistency, and long-term and recent trends in computer architecture.
  • Apply knowledge of these concepts during software design and development, to improve program performance, and during hardware architecture design, to create systems that are well suited for their intended purpose.
  • Comprehend explanations of more advanced concepts, including those presented in research literature.

Preview

Sample Syllabi

Fall 2024 syllabus (PDF)
Summer 2024 syllabus (PDF)
Spring 2024 syllabus (PDF)

Note: Sample syllabi are provided for informational purposes only. For the most up-to-date information, consult the official course documentation.

Course Content

To access the public version of this course's content, click here, then log into your Ed Lessons account. If you have not already created an Ed Lessons account, enter your name and email address, then click the activation link sent to your email, then revisit that link.

Before Taking This Class...

Suggested Background Knowledge
  • Undergraduate computer architecture course that covers basic computer organization
  • Working knowledge of topics such as instruction sets, pipelining, etc.
  • Familiarity with C/C++ and Linux, and confidence with making modifications to large programs (for the course project)

If you answer "no" to any of the following questions, it may be beneficial to refresh your knowledge of the prerequisite material prior to taking CS 6290:

  1. Have you taken a computer organization course before?
  2. Are you familiar with at least one RISC instruction set and would you feel comfortable reading and writing small assembler programs?
  3. Are you familiar with basic computer architecture concepts, such as pipelines and caches?
  4. Are you familiar with C/C++ and would you be comfortable writing and/or modifying 100+ lines of code in a program that has over 100,000 lines of code?
  5. Are you comfortable with, or even excited about, learning how real processors work and using simulation to see how changes in processor design affect its performance?
Technical Requirements and Software
  • At least 32GB of available disk space and ability to install additional (free) software. For course projects, you will need to install the Oracle VirtualBox VM and run a Linux virtual machine that contains the setup for the project. Although it is possible to install the software for the projects natively in Linux, such a setup will not be supported.
  • Browser and connection speed: An up-to-date version of Chrome or Firefox is strongly recommended. We also support Internet Explorer 9 and the desktop versions of Internet Explorer 10 and above (not the metro versions). 2+ Mbps is recommended; the minimum requirement is 0.768 Mbps download speed.
  • Operating system:
    • PC: Windows XP or higher with latest updates installed
    • Mac: OS X 10.6 or higher with latest updates installed

Academic Integrity

All Georgia Tech students are expected to uphold the Georgia Tech Academic Honor Code. This course may impose additional academic integrity stipulations; consult the official course documentation for more information.