Advanced Computer Architecture

More Information

UBC Calendar

3 Credits

CPEN 511

Modern processor design with an emphasis on superscalar microarchitecture. Topics include: Quantitative principles, pipelining, memory hierarchy, multithreading, advanced instruction flow, and data flow techniques.

Course Outline

The microprocessor industry is undergoing a dramatic change with the widespread introduction of multicore processors. This course is about the numerous ways chip architects translate an ever growing supply of transistors into exciting products that take advantage of process technology improvements.

As semiconductor process technology changes, the tradeoffs underlying microprocessor design constantly evolve leading to dramatic changes in the design at the architecture and underlying microarchitecture level. In this course we study the major developments in microprocessor design over the past 10 to 15 years and then explore future directions for computer architecture in light of current process technology trends. The first part examines microarchitecture techniques employed in current superscalar processors from the unifying perspective of instruction flow, register and memory data flow. Then we explore the challenges to achieving the full benefits of future process technology scaling, the architecture and microarchitecture solutions currently being adopted, as well as potential solutions that may be adopted in the future.

The course should be of interest to most ECE graduate students, including hardware oriented students wishing to understand the impact of low level optimizations on system performance/cost; software oriented students interested in making the most effective use of future hardware systems; and communications or systems oriented students wishing to study examples of highly complex systems (with literally billions of interacting components).

Course Topics

  • Review of quantitative approaches, ISA design, caches, pipelining.
  • Superscalar organization: Instruction, register and memory dataflow techniques.
  • Advanced branch prediction and trace cache mechanisms.
  • Data capture versus non-data capturing scheduling windows.
  • Complexity effective superscalar design approaches and challenges.
  • Memory system design: hardware support for concurrent cache misses, dependence prediction and speculative bypassing.
  • Proposed value prediction mechanisms and their impact.
  • Hardware mechanisms for efficient multiprocessor memory consistency.
  • Prefetching techniques.
  • Detailed case study (e.g., Pentium Pro, Pentium 4, Opteron, etc...)


Modern Processor Design: Fundamentals of Superscalar Processors, John Paul Shen, Mikko H. Lipasti, McGraw Hill.




a place of mind, The University of British Columbia

Electrical and Computer Engineering
2332 Main Mall
Vancouver, BC Canada V6T 1Z4
Tel +1.604.822.2872
Fax +1.604.822.5949

Emergency Procedures | Accessibility | Contact UBC | © Copyright 2020 The University of British Columbia