This course will include a review of fundamental computer architecture topics, including Instruction-level parallelism, Data-level parallelism, and Thread-level parallelism, as well as the introduction of advanced topics, including Multi-processor, Multi-core, Multi-threading, and Warehouse-scale computers.
It also covers the key design issues in distributed system architecture, including the key concepts and algorithms (e.g., logical clocks, Paxos) of synchronization and consistency, which are critical for today’s large-scale computer systems.
Discussion of the interactions between hardware and software in modern computer systems will be carried out as a central theme throughout the course.
Each student will propose a relevant topic for term project, study the related materials, develop and implement a research idea, and in the end report and present the results. State-of-the-art computer systems will be provided for students to conduct their course projects.
- Spring 2012