next up previous contents
Next: Database Systems Up: Descriptions of Modules and Previous: Computer Communications   Contents


Computer Design


The CS2 course covered some details of the interconnection of CPU and I/O systems in a complete computer, and CS1h provided a brief look at the inside of the CPU itself. 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 CS3 module 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$7 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.

The practicals in the hardware lab associated with this course are designed to give you familiarity with design techniques covered in the first two sections; you get a chance to try designing at the computer system level during the System Design Project in term 3.


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, programmable logic), hardware description languages, hardware design tools. 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, programmable logic). IC logic families: CMOS, bipolar

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, static & dynamic RAM, 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

In common with other CS3 technical modules, 75% of the mark for this course will come from the written exam in June. The remaining 25% comes from the coursework, and this is based entirely on the hardware lab practicals - students work in pairs on these, from 2 to 5 one afternoon a week from week 2 to week 9 of term. There are 4 practicals, and the marks for each will be based partly on actual completion of the work in the lab, and partly on a short written report for each practical - these are due for submission in weeks 3, 5 and 8 and 10 of term. The marks for the 4 practicals are weighted 1:2:3:3. There will be no other coursework.

\par\stars{2} V. C. Hamacher, Z. G. Vranesic \& S. G. Zaky
...-Hall, 1999. More a CS2 level book, but
worth referring to.

next up previous contents
Next: Database Systems Up: Descriptions of Modules and Previous: Computer Communications   Contents
CS3 dummy user 2001-09-25