This course on Advanced Computer Architecture I will teach you the fundamental principles of the operation of modern, high-performance processors and systems. We assume knowledge of pipelined processors with cache memories, as studied in depth in ECE/CS 552, and continue with advanced techniques for extracting greater levels of instruction-level parallelism and memory-level parallelism. The former exploits opportunities for parallel execution of instructions from an inherently serial instruction stream, while the latter attempts to overlap increasing memory access latency with other useful work. We will study the memory hierarchy as well as virtual memory, and will also cover processor chips with multiple cores, where concurrency is extracted from multiple sequential threads of execution. We will read research papers that study state-of-the-art designs and explore exciting new ideas in a course project.
More details can be found in the course syllabus (on Canvas).
Prerequisites:
ECE/CS 552 (or equivalent).
CS 537 (not strictly enforced).
Grading:
16% Paper Reviews
5% Quizzes
20% Midterm Exam 1
20% Midterm Exam 2
34% Project
5% Class Participation
There is no required textbook; we will rely on readings from the literature and other online resources. The following books are useful additional references: "Computer Architecture: A Quantitative Approach" by John L. Hennessy and David A. Patterson, and "Modern Processor Design: Fundamentals of Superscalar Processors" by John Paul Shen and Mikko Lipasti.