Advanced Computer Architecture
Modern processor design with an emphasis on superscalar microarchitecture. Topics include: Quantitative principles, pipelining, memory hierarchy, multithreading, advanced instruction flow, and data flow techniques.
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).
- 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.