CS3 Computer Architecture
Module Syllabus


Computer architecture is about making computing hardware and software operate as fast as possible and for the minimum cost. Over the years improvements in technology and advances in computer architecture have resulted in huge increases in computer performance. This course examines the fundamentals of high-performance computer architecture and looks at how the interface between hardware and software (architecture and compiler) influences performance.

Topics covered

  1. Fundamentals
    Performance evaluation methods and metrics, principles of high performance design, technology issues.

  2. Processor Design, Pipelines and Parallel Functional Units
    Instruction set classes, registers, memory addressing, instruction set measurements. Essential elements of a high performance processor. Pipeline design, pipeline hazards & interlocks, out-of-order execution, scoreboards and reservation stations. Control prediction techniques and their exploitation.

  3. Memory System Design
    Memory hierarchies. Basic cache design and improvements.

  4. I/O
    I/O interface. RAIDS. Buses.

  5. Multiprocessors
    Multiprocessor organisations. Cache coherence.

Assessed Coursework

Two practical exercises are set during the course. The deadlines for these exercises are at the end of weeks 6 and 10. The exercises are available from the Computer Architecture home-page.

Recommended Texts

* * *

J.L. Hennessy & D.A. Patterson,
Computer Architecture: A Quantitative Approach (2e),
Morgan Kaufmann Publishers Inc., 1996.

This page is maintained by Marcelo Cintra, last modified 19th March 2002.