Department of Computer Science and Technology

Course pages 2017–18

Chip Multiprocessors

Principal lecturer: Dr Robert Mullins
Taken by: MPhil ACS, Part III
Code: R05
Hours: 16 (8 × two-hour seminar sessions)
Class limit: 16 students
Prerequisites: An undergraduate course in computer architecture


This course provides an introduction to parallel computing with a particular focus on chip-multiprocessors. The course begins by examining the potential advantages of multi- and many-core processors. It explores the basics of parallel algorithm design, approaches to parallel programming and the architecture of modern chip-multiprocessors. The final seminar will be given by a guest speaker from industry.


  • Trends in microprocessor architecture.
  • Introduction to parallel computing.
  • Parallel algorithms.
  • Chip multiprocessor architecture and cache coherency [2 seminars].
  • Transactional memory.
  • On-chip interconnection networks.
  • Manycore research issues.


On completion of this module students should:

  • understand the reasons for the shift from wide-issue superscalar to multi-core processors;
  • appreciate the challenges involved in exploiting parallel processors and their limits;
  • be familiar with a range of approaches to parallel programming based on both shared-memory and message-passing models;
  • understand the cache-coherency and transactional memory systems that support shared-memory programming in multiprocessors;
  • have a clear understanding of the wide range of possible on-chip interconnection network designs;
  • be able to discuss the challenges in exploiting a large number (possibly hundreds) of processing cores on a single chip.


To complete two paper reviews and write a short survey paper.

Practical work



Each seminar will consist of a short lecture, reading club and student presentations.

Assessments will be set and marked by the course lecturer.

  • 60% - Four essays discussing the reading assignments (e.g. papers and reports)
  • 10% - A 20 minute presentation on a specific paper or area
  • 10% - Participation during the module's reading group discussions
  • 20% - A longer survey paper

Final module mark will be percentage.

Recommended reading

Most of the reading for this course will be in the form of the selected papers each week. However, the following may be useful background reading to refresh your knowledge from undergraduate courses:

Culler, D.E. & Singh, J.P. (1999). Parallel computer architecture: a hardware/software approach. Morgan Kaufmann, ISBN 1-55860-343-3.
Grama, A, Anshul, G., Karypis, G. & Kuman, V. (2004). Introduction to parallel computing. Addison-Wesley (2nd ed.).
Hennessy, J.L. & Patterson, D.A. (2006). Computer architecture: a quantitative approach. Morgan Kaufmann (4th ed.).
Herlihy, M. & Sahvit, N. (2008). The art of multiprocessor programming. Morgan Kaufmann. ISBN: 978-0-12-370591-4.
Olukotun, K., Hammond, L. & Laudon, J. (2007). Chip multiprocessor architecture. Morgan Claypool. ISBN: 978-1598291223.

A list of papers will also be provided for discussion at each seminar. The complete reading list will be available from the course web page.

Preparatory reading:

All students should have a good knowledge of the material presented in the Hennessy and Patterson book. Chapter 4 in particular is essential reading before the course begins.