~~NOTOC~~ ====== EECS4201 Computer Architecture ====== ===== Course Outline ===== This course presents the core concepts of computer architecture and design ideas embodied in many machines, and emphasizes a quantitative approach to cost/performance trade offs. This course concentrates on uniprocessor systems. A few machines are studied to illustrate how these concepts are implemented; how various trade offs that exist among design choices are treated; and how good designs make efficient use of technology. Future trends in computer architecture are also discussed. ===== Learning Outcomes of the Course ===== After successful completion of the course, students are expected to be able to: - Design cache, memory hierarchy, and virtual memory using different techniques to improve cost/performance ratio. - Demonstrate how dynamic scheduling and speculative execution can improve the system performance and explain how it is implemented in modern processors. - Evaluate different design alternatives and make quantitative/qualitative argument for one design over the other. - Identity the different types of parallelism (data, instruction, thread, transaction) for a given application. - Compare and evaluate different techniques (such as multithreading, multicore, or vector) to improve CPU performance ===== Lecture Times ===== * Section E: Tuesdays and Thursdays, 10:00am - 11:30pm, CB 122