EC 513 Computer Architecture - Spring 2018

Course description

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:

  • know key classes of computer architectures, and new trends and developments in computer architecture;
  • clearly explain the importance of pipelining, instruction-level parallelism (ILP), thread-level parallelism (TLP), virtual memory and cache coherence;
  • understand the performance metrics of microprocessors, memories and memory organizations, and on-chip networks;
  • evaluate the performance, reliability, and energy efficiency of an architecture;
  • take advantage of instruction-level and data-level parallelisms for efficient high-performance program execution;
  • engage in independent research in computer architecture.


J. L. Hennessy and D. A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, 2011 (5th edition)

Term Office Hours

  • Prof. Kinsy: PHO 335 - TBD and by appointment.