Paul Kelly: Advanced Computer Architecture


New: The 2004-5 past paper on the official web site has two pages missing. The complete paper is available here.

New: The CS MEng3 students had their exam for this course in week 11. The exam paper is available here (The rubric was to answer both questions in two hours). This is clearly a vital source for revision for the summer exam, which is likely similar since it is also based on the paper below.

New: This year's exams will be partially based on the following paper: Introduction to the Cell multiprocessor, by J A Kahle et al (IBM Journal of Research and Development, Vol 49, No 4/5 July/September 2005. It is essential that you study this paper closely. Copies will be distributed in class. The paper will also be provided with the question paper in the exam.

Lecture notes are available on the web here. Note that these may not be fully up to date until paper copies are actually distributed.

Tutorial exercises are available on the web here. Note that these may not be fully up to date until paper copies are actually distributed.

Books: some information about the course text and other useful reference sources can be found here.

Supporting materials are available on the web here.

See in particular IntelŪ PentiumŪ 4 and IntelŪ Xeon Processor Optimization (Intel 2002).

Course mailing list archive mailing list archive for this course here. This should be your first stop with queries, especially about the laboratory work. The main purpose is to archive responses to student queries - it is not necessary to subscribe, but please cc your queries and responses to the list

Past papers are available on the web here and here (the latter page takes you to the past papers for the end-of-autumn-term tests for MEng3 students on the four-year Computer Science programme, who have special examination arrangements because they are away on their industrial placements during the summer).

Examinations Information about the examination is available here.

Early architecture research at Imperial College See Manny Lehmann's description of ICCE I and ICCE II, experimental computers built at Imperial in the late 1940s/early 1950s.


Objectives

The objective of this course is to introduce the fundamental techniques on which high-performance computing is based, to develop the foundations for analysing the benefits of design options in computer architecture, and to give some experience of the application of these techniques.

It should be noted that the use of parallelism is secondary to the objective of achieving high performance. For this reason, the course contains much of the material found in an advanced computer architecture syllabus.

The role of compilers in achieving high performance also takes a fairly high profile, and special emphasis will be placed on the capabilities of restructuring compilers based on data dependence analysis in loops.

Structure

  1. Reading

    You are advised to purchase a textbook for this course. As it is an advanced course, you will find you need to use books and research papers effectively. Not only will you find this makes the course more interesting and comprehensible --- it also gets you special bonuses in exam and coursework assessment. The recommended book is:

    This is a well-constructed and authoritative textbook (Patterson is arguably the inventor of the SPARC architecture used in Sun workstations, Hennessy created the MIPS architecture used in Silicon Graphics machines).

    Make sure you get the latest edition.

    Other reading See the Books section of the course web site.

  2. Exercises

    Both assessed and unassessed exercises will be used to {\em introduce} important ideas. Thus if you don't do them in time, you won't know what's going on in the lectures.

  3. Lectures

    The primary objective of the lectures is to help you understand and use the textbooks. Copies of the lecture's overhead transparencies will be provided, and you are encouraged to make notes of your own.