Digital Hardware: 2009-2010
Information
|
Lecturer |
|
|
Degrees |
|
|
Term |
Trinity Term 2010 (16 lectures) |
Overview
This course covers the fundamentals of the electronic circuits that are used to build computers. Beginning with the functions of individual transistors, and building towards a complete implementation of a simple processor, the course explains in a structured way how complex behaviours are built up from simpler parts. Students will gain an understanding of the factors that affect the performance of hardware, and how these factors change with changes of scale, for example in the size of the data that a computer system handles. They will also gain experience in the important technique of hierarchical specification, implementation and proof of correctness using logic and data representation.Learning outcomes
After studying this course, undergraduates will be able to:
- Design small combinational and sequential circuits from logic gates.
- Understand the design of simple architectures processors.
- Implement simple programs in assembly language.
- Understand the characteristics and limitations of computer arithmetic.
- Distinguish between specification and implementation, and appreciate the use of rigorous correctness arguments.
Synopsis
- Overview; propositional and predicate logic; disjunctive normal form.
- Adequacy of {AND, OR, NOT}; K-maps; adequacy of NAND.
- Transistors; inverter; nand; nor; exor; and; or.
- Multiplexer; demultiplexer; decoder; programmable logic array.
- BCD example; shifter; adders; arithmetic-logic unit.
- Vector ALU; ripple-carry adder; look-ahead adder.
- State; latches; flip flops; sequential circuits.
- 3-bit counter; data representation; hazards.
- Registers; random-access memory; register-transfer design.
- Processor; the fetch-execute cycle; control unit.
- Microcode; implementation of MIPS; branch instructions.
- Alternative architectures.
- Data representation.
- Signed and unsigned integer arithmetic.
- Floating-point arithmetic.
- Revision.
There will be one practical on simulating a carry-look ahead adder in Hugs. There are no pre-requisites for this course. A MIPS simulator may be used, plus the carry-look ahead adder in Hugs.
Syllabus
Simple design of combinational and sequential circuits; standard design elements. Computer arithmetic for integers and floating-point numbers; basic error analysis. Register transfer level design of a simple microprocessor. Simple programming in assembly language. Rôle of assemblers, compilers and linkers. Memory hierarchy.Reading list
- S.A. Ward and R.H. Halstead, Computation Structures, MIT Press, 1990.
- A.S. Tanenbaum, Structured Computer Organisation, Prentice-Hall International, Third Edition, 1990.
- M.M. Mano, Digital Design, Prentice-Hall International, 1984.
- T. H. Cormen, E. E. Leiserson and R. L. Rivest, Introduction to Algorithms, first edition only, The MIT Press, 1990.
- J. L. Hennessy and D. A. Patterson, Computer Organisation and Design: the hardware/software interface, Morgan-Kaufmann, 2005 (Third edition).