Next: Computer Systems Modelling Up: Lent Term 2008: Part Previous: Bioinformatics Contents
Comparative Architectures
Lecturer: Dr R.D. Mullins
No. of lectures: 16
Prerequisite course: Computer Design
Aims
This course examines the techniques and underlying principles that are used to design high-performance computers and processors. Particular emphasis is placed on understanding the trade-offs involved when making design decisions at the architectural level. A range of processor architectures are explored and contrasted. In each case we examine their merits and limitations and how ultimately the ability to scale performance is restricted.
Lectures
- Introduction. The impact of technology scaling, market trends and application characteristics. Power and performance metrics. Environmental impact.
- Review. Instruction-set principles; the scalar pipeline
- Overview of architectural techniques. Classification of approaches; examples and pitfalls; Amdahl's law
- Advanced Pipelining. Pipeline hazards; exceptions; branch prediction; avoiding branches; fetch issues; trace cache; limitations of pipelining and optimal pipeline depth [2 lectures]
- Superscalar techniques. Instruction-Level Parallelism (ILP); static and dynamic scheduling; register renaming; load/store instruction ordering; advanced speculation techniques; example microarchitectures [2 lectures]
- Software approaches to exploiting ILP. VLIW architectures; dynamic binary code translation; exploiting compiler hints
- Multithreaded processors. Coarse-grained, fine-grained, SMT
- The memory hierarchy. Caches; programming for caches; prefetching; software managed memories; main memory [3 lectures]
- Vector processors. Vector machines; short vector/SIMD instruction set extensions; stream processing
- Chip multiprocessors. Examples of multi-core processors; Memory, interconnect and programming challenges; performance limits
- Special-purpose architectures. Converging approaches to computer design
- Review and current developments
Objectives
At the end of the course students should
- understand what determines processor design goals.
- appreciate what constrains the design process and how architectural trade-offs are made within these constraints.
- be able to describe the architecture and operation of pipelined and superscalar processors, including techniques such as branch prediction, register renaming and out-of-order execution.
- have a basic understanding of vector, multithreaded and multi-core processor architectures.
- for the architectures discussed, understanding what ultimately limits their performance and application domain.
Recommended reading
* Hennessy, J. & Patterson, D. (2006). Computer architecture: a quantitative approach. Elsevier (4th ed.) ISBN 978-0-12-370490-0. (3rd edition is also good)
Next: Computer Systems Modelling Up: Lent Term 2008: Part Previous: Bioinformatics Contents