Computer Architecture


This course forms a strong foundation in the understanding and design of modern computing systems. Building on a computer organization base, this course explores techniques that go into designing a modern microprocessor. Fundamental understanding of computer architecture is key not only for students interested in hardware and processor design, but is a foundation for students interested in compilers, operating systems, and high performance programming. This course will explore how the computer architect can utilize the increasing number of transistors available to improve the performance of a processor. Focus will be given to architectures that can exploit different forms of parallelism, whether they be implicit or explicit. This course covers architectural techniques such as multi-issue superscalar processors, out-of-order processors, Very Long Instruction Word (VLIW) processors, advanced caching, and multiprocessor systems.

  1. Able to explain basic concepts like micro-architecture, ISA, pipeline and related hazards, caches etc.
  2. Able to explain common issues of superscalar architectures, different kinds of out-of-order processors along with common methods to improve their performance.
  3. Able to use concepts like VLIW, branch prediction, mechanism to improve cache performance, memory management, vector processors etc.
  4. Able to use simulators like Gem5 to evaluate and understand hardware and software optimization techniques.

Course Offering