Computer Laboratory Home Page Search A-Z Directory Help
University of Cambridge Home Computer Laboratory
Computer Science Syllabus - Computer Design
Computer Laboratory > Computer Science Syllabus - Computer Design

Computer Design next up previous contents
Next: Data Structures and Algorithms Up: Michaelmas Term 2005: Part Previous: Michaelmas Term 2005: Part   Contents

Computer Design

Lecturer: Dr S.W. Moore

No. of lectures: 16

Prerequisite courses: none, but Operating Systems would be helpful

This course is a prerequisite for Comparative Architectures (Part II) and VLSI Design (Part II).


The aims of this course are to introduce the hardware/software interface models and the hardware structures used in designing computers. The first eight lectures are concerned with the hardware/software interface and cover the programmer's model of the computer. The last eight lectures look at hardware implementation issues at a register transfer level.


  • Introduction to the course and some background history.

  • Historic machines. EDSAC versus Manchester Mark I.

  • Introduction to RISC processor design and the ARM instruction set.

  • ARM tools and code examples.

  • Operating system support including memory hierarchy and management.

  • Intel x86 instruction set.

  • Java Virtual Machine.

  • Executing instructions. An algorithmic viewpoint.

  • Basic processor hardware. Pipelining and data paths.

  • Extending the ARM pipeline including load and branch delay slots.

  • Implementation of the N-105 processor.

  • Memory hierarchy. Caching etc.

  • Buses. Internal communication pathways.

  • Communication interfaces and devices.

  • Data-flow and comments on future directions.


At the end of the course students should

  • be able to read assembler given a guide to the instruction set and be able to write short pieces of assembler if given an instruction set or asked to invent an instruction set

  • understand the differences between RISC and CISC assembler

  • understand what facilities a processor provides to support operating systems, from memory management to software interrupts

  • understand memory hierarchy including different cache structures

  • appreciate the use of pipelining in processor design

  • understand the communications structures, from buses close to the processor, to peripheral interfaces

  • have an appreciation of control structures used in processor design

Recommended reading

* Hennessy, J.L. & Patterson, D.A. (2002). Computer architecture: a quantitative approach. Morgan Kaufmann (3rd ed.). (2nd edition, 1996, is also good.)
Patterson, D.A. & Hennessy, J.L. (1998). Computer organization and design. Morgan Kaufmann (2nd ed., as an alternative to the above).

Pointers to sources of more specialist information are included in the lecture notes and on the associated course web page.

next up previous contents
Next: Data Structures and Algorithms Up: Michaelmas Term 2005: Part Previous: Michaelmas Term 2005: Part   Contents
Christine Northeast
Sun Sep 11 15:46:50 BST 2005