Computer Laboratory

Course pages 2013–14

Comparative Architectures

Principal lecturer: Dr Timothy Jones
Taken by: Part II
Past exam questions
Information for supervisors (contact lecturer for access permission)

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. (2006). Computer architecture: a quantitative approach. Elsevier (4th ed.) ISBN 978-0-12-370490-0. (3rd edition is also good)