The course will introduction students to the evolution and the principles underlying modern computer architectures. It will emphasize the fundamental relationship between technology, hardware organization, and programming systems. Topics covered in the class will include processor micro-architecture, instruction set design, pipelined, out-of-order, and speculative execution, superscalar, very long instruction word (VLIW), vector, and multithreaded processors, cache and virtual memory organizations, synchronization, memory models, and cache coherence protocols for multiprocessors, multithreaded architectures, multiprocessor interconnection networks, and embedded systems.
This course forms a strong foundation in the understanding and design of modern computing systems. Upon successful completion of this course, students will be able to:
J. L. Hennessy and D. A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, 2011 (5th edition)