Fundamentals in design and quantitative analysis of modern processor microarchitectures including exploration of the current processor trends and various hardware and software techniques in high-performance computing. Review of pipeline and memory hierarchies and branch prediction. Dynamic scheduling, superscalar techniques, speculative execution, prefetching, high-speed I/O, VLIW, multi-threaded processors, and application-specific processors such as those for embedded and graphics systems.