Course pages 2018–19
Comparative Architectures
Principal lecturer: Dr Robert Mullins
Taken by: Part II CST 50%, Part II CST 75%
Past exam questions
No. of lectures: 16
Suggested hours of supervisions: 4
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 and market trends.
- Fundamentals of Computer Design.
Amdahl’s law, energy/performance trade-offs, ISA design.
- Advanced pipelining.
Pipeline hazards; exceptions; optimal pipeline depth; branch prediction;
the branch target buffer [2 lectures]
- Superscalar techniques.
Instruction-Level Parallelism
(ILP); superscalar processor architecture [2 lectures]
- Software approaches to exploiting ILP.
VLIW architectures; local and global instruction scheduling techniques;
predicated instructions and support for speculative compiler optimisations.
- Multithreaded processors.
Coarse-grained, fine-grained, simultaneous multithreading
- The memory hierarchy.
Caches; programming for caches; prefetching [2 lectures]
- Vector processors.
Vector machines; short vector/SIMD instruction set extensions;
stream processing
- Chip multiprocessors.
The communication model; memory consistency models;
false sharing; multiprocessor memory hierarchies; cache coherence protocols;
synchronization [2 lectures]
- On-chip interconnection networks.
Bus-based interconnects; on-chip packet switched networks
- Special-purpose architectures.
Converging approaches to computer design
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 an understanding of vector, multithreaded and
multi-core processor architectures;
- for the architectures discussed, understand what
ultimately limits their performance and application domain.
Recommended reading
* Hennessy, J. & Patterson, D. (2012). Computer architecture: a quantitative approach. Elsevier (5th ed.) ISBN 9780123838728. (the 3rd and 4th editions are also good)