Course Objective
Memory subsystem is an important layer in the computing system that has to be efficient for the
whole system to operate efficiently. The course will focus on the principles to design a high performance, energy efficient, reliable, and secure memory hierarchy for multi-core systems. The course will be a fusion of fundamentals and state-of-the-art research and will also have a programming assignment component that will deal with the evaluation of different memory subsystem designs. At the end of the course, the students will have an understanding of both the foundations and the practice of memory subsystem design for current and future multi-core systems, and it will enable students to design both better hardware as well as software.