



Next: Data Structures and Algorithms Up: Michaelmas Term 2007 Previous: Business Studies Contents
Computer Design
Lecturer: Dr S.W. Moore
No. of lectures: 16
Prerequisite courses: none, but Operating Systems, Digital Electronics and ECAD would be helpful
This course is a prerequisite for the Part II courses Comparative Architectures and VLSI Design.
Aims
The aims of this course are to introduce the hardware/software interface models and the hardware structures used in designing computers. The first seven lectures are concerned with the hardware/software interface and cover the programmer's model of the computer. The last nine lectures look at hardware implementation issues at a register transfer level.
Lectures
- Introduction to the course and some background history.
- Historic machines. EDSAC versus Manchester Mark I.
- Introduction to RISC processor design and the MIPS instruction set.
- MIPS tools and code examples.
- Operating system support
including memory hierarchy and management.
- Intel x86 instruction set.
- Java Virtual Machine.
- Memory hierarchy (caching).
- Executing instructions. An algorithmic viewpoint.
- Basic processor hardware, pipelining and hazards. [2 lectures]
- Verilog implementation of a MIPS processor. [3 lectures]
- Internal and external communication.
- Data-flow and comments on future directions.
Objectives
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
- have an appreciation of how to implement a processor in Verilog
Recommended reading
* Harris, D. & Harris, S. (2007). Digital design and computer architecture: from gates to processors. Morgan Kaufmann.
Recommended further reading:
Hennessy, J. & Patterson, D. (2006). Computer architecture: a quantitative approach. Elsevier (4th ed.). ISBN 978-0-12-370490-0. (Older versions of the book are also still generally relevant.)
Patterson, D.A. & Hennessy, J.L. (2004). Computer organization and design. Morgan Kaufmann (3rd ed., as an alternative to the above). (2nd ed., 1998, is also good.)
Pointers to sources of more specialist information are included in the lecture notes and on the associated course web page.




Next: Data Structures and Algorithms Up: Michaelmas Term 2007 Previous: Business Studies Contents