OXFORD UNIVERSITY COMPUTING LABORATORY

Computer Architecture

information |  course material  | past exam papers  | previous course materials

Lecturer

Degrees

Term

overview

This course aims to give an understanding of the mechanisms which implement the programmer's idealised computer. It builds on the introduction to hardware and to simple processors in the Digital hardware course, and uses Functional Programming as a tool in simulation and description.

�The Computer Architecture course aims to describe a range of architectural designs and to contrast them, highlighting the design decisions they incorporate. The designs are described and analysed at the register-transfer level of abstraction. By the end of the course, the student should understand the major architectural styles and appreciate the compromises that they encapsulate. They should be able to read outline descriptions of real processors and understand more or less in which way their designs fit into the frameworks described in the course.

Practicals

Processor simulation exercises, in Hugs.

synopsis

Datapaths and control structures for processors, register transfer level description of hardware, and simulation in Haskell. Styles of processor, including MIPS; features of some unusual processors. Comparison of CISC/RISC architectural styles. Instruction set design, instruction formats, addressing modes.Processor pipelining. Pipeline hazards, hazard detection, forwarding, branch prediction. Out-of-order execution, scoreboarding and register renaming. Main and cache memories, cache coherency, direct memory access, backing store and peripherals.

syllabus

Register Transfer model of processors. Datapaths and control structures. Comparison of architectural styles for general purpose computers, including RISC/CISC. Pipelining; pipeline hazards and their resolution by stalling and forwarding. Techniques for executing more than one instruction in each clock cycle. The hierarchy of storage in a computer; caches and virtual memory. Styles of parallel computer, and their implementation in contemporary designs.

reading list

Principal texts; either one of:

  • D A Patterson & J L Hennessy, Computer Organization and Design: the hardware/software interface, Morgan-Kaufmann (Fourth edition) 2009.
  • D A Patterson & J L Hennessy, Computer Organization and Design: the hardware/software interface, Morgan-Kaufmann (Third edition, revised printing) 2007.

The fourth edition covers more recent designs, only the third edition covers multi-cycle designs. Either one should be adequate, if available. Similarly, the second edition is relevant if available, but may be confusing.

Background reading:
Some articles (to be identified near the time of the course) about contemporary designs.

Random Image
Random Image
Random Image