This course covers topics on advanced computer architecture, and is appropriate for both advanced undergraduates and graduate students. Building on introductory classes which show how a basic computer functions, this course examines techniques for improving computer performance and usability. Topics covered include virtual memory, pipelining, caches (memory hierarchies), multithreading, multicore processors, and a few advanced topics (e.g., security, virtual machines, fault tolerance).
It is assumed that you are familiar with the material covered in Compsci 104 or ECE 152. If you have not taken a course with equivalent content, it is required you first take one of these two courses. Compsci 110 (Operating Systems) is recommended, but not required. Please see me if you have any questions about required background. There is C programming required in this course.