CDA 5155 is an introductory graduate-level course in computer architecture. This course is intended to do two things: to give you a solid, detailed understanding of how computers are designed and implemented, including the central processor and memory and I/O interfaces; and to make you aware of the numerous tradeoffs in design and implementation, their interaction, their realization in both historical and state-of-the-art systems, and trends that will affect them in future systems. We will cover instruction set architectures, pipelining (including basic pipelining, multiple-instruction-per-cycle machines, out-of-order instruction execution, and vector processing), memory systems (including caches and virtual memory), I/O interfaces, operating system issues, and basic multiprocessor systems. We will also do case studies on microprocessors and systems you may have used, perhaps including the P6 (Pentium Pro/II/III), Pentium 4, and the Sony PlayStation/3.


Computer Architecture: A Quantitative Approach, 5th edition, by Hennessy and Patterson, Morgan Kaufman Publishers

Course Policies

  • This course is a lot of work. You will spend many long nights debugging your processor at the end of the term. If you are registered for other classes that may interfere with your ability to dedicate a lot of time to this course, especially in the last few weeks, you should reconsider your schedule.
  • You are encouraged to interact with other students to discuss course material, form study groups for the exams, and provide each other with test case preparation, encouragement, and moral support. However, all individual assignments (i.e., homeworks and exams) are to be performed on your own, and all group assignments (i.e., the project) are to be performed only by members of the group.