next up previous contents
Next: Computer Security Up: Descriptions of Courses and Previous: Computer Communications   Contents

Subsections

Computer Design

Here are links to the course home page and the formal TQA description.

NOTE: Owing to constraints on laboratory space, this module is limited to 100 students. Visiting students must obtain the permission of the course lecturer before taking this course, unless it has already been agreed before entry to the University. The places will be allotted first come, first served to degree students.

Description

This course is designed to provide an understanding of the different ways computers can be analysed and designed, starting with the basic logic elements you are familiar with (NAND, NOR etc.). The course does not (mostly) look at the differences between machines with different types of instruction set, nor does it cover design techniques for extracting maximum performance from computers - these aspects of computer hardware are often referred to as computer architecture, and are covered in the Inf3 course of that name. The issues and techniques covered in the Computer Design course are relevant to the design of all computers, regardless of their particular architecture.

The course splits fairly well into three sections. By the end of the first section ($\sim$6 lectures) you should be able to design combinational and sequential logic blocks using a variety of design techniques and implementation methods, be able to choose suitably between the various design and implementation options, and be able to analyse other people's designs; by the end of the second section ($\sim$6 lectures), you should be able to analyse and design systems of the complexity of a simple CPU or I/O controller; and by the end of the course, you should be able to analyse and design at the level of a computer capable of executing assembly code and performing I/O.

Syllabus

Introduction
Levels of abstraction in computer design.

Logic Design
Combinational logic design: 1 & 0 points, maxterms, minterms, canonical forms, Karnaugh maps, implicants, prime implicants, essential prime implicants, hazards, implementations (SSI, MSI, programmable logic). Sequential logic design: SR latch, flip-flops: level- and edge-triggerred, D- and JK-type, Huffman model, Moore and Mealy machines, sequential machine design procedure, examples, implementations (SSI, MSI, programmable logic).

Processor Design
Data path and control. Fixed program controllers: example and design procedure. Instruction set processors: data path design, simple control, microprogrammed control, pipelining. ALU design: addition -- ripple carry and look ahead adders, negative numbers & subtraction. Multiplication -- sequential multiplier, modification for 2's complement, combinational multiplier, division. Floating point numbers: fp addition, multiply and divide, implementations.

Memory Design
Byte vs. word addressing, memory system design, error detection and correction.

I/O Design
I/O controller design. Connection of I/O controllers to CPU, synchronization of I/O and CPU -- polling, interrupts. Direct Memory Access -- bus arbitration, DMA controller implementation. I/O processors. Synchronous and asynchronous buses

Assessed Coursework

The coursework mark is based entirely on the hardware lab practicals - from 2 to 5 one afternoon a week from week 2 to week 9 of the first semester. The practicals in the hardware lab are designed to give you familiarity with design techniques covered in the course. Students work in pairs on the first two exercises and individually on the third of three exercises.

References:

** V. C. Hamacher, Z. G. Vranesic & S. G. Zaky Computer Organization, fifth edition, McGraw-Hill, 2001. Covers almost all the syllabus (and more). Similar in approach to the lectures.

** D. A. Patterson & J. L. Hennessy Computer Organization & Design: The Hardware/Software Interface, second edition, Morgan Kaufmann, 1998. A different view of most of the material in the syllabus, and a lot of other interesting stuff.

* M. M. Mano Digital Design, second edition, Prentice-Hall, 1991. A very good book on logic design, with much more coverage of that part of the syllabus than the previous two books.

* A. S. Tanenbaum Structured Computer Organization, fourth edition Prentice-Hall, 1999. More a CS2 level book, but worth referring to.


next up previous contents
Next: Computer Security Up: Descriptions of Courses and Previous: Computer Communications   Contents
Colin Stirling 2006-01-05