Custom computers are special-purpose systems customised for specific applications such as signal processing and database operations, when general-purpose computers are too slow, too bulky or too power hungry. Traditionally the development of custom computers is an expensive, time-consuming and error-prone activity. This course introduces approaches which enable the rapid and systematic design of custom computers.
Learning Outcomes - Knowledge and Understanding
To know the specific material covered in the Syllabus, including the ability to do the following:
To provide motivations for custom computers
To develop parametric descriptions of custom computers
To optimise custom computers to meet design requirements
To explore customisations and their trade-offs
Learning Outcomes - Intellectual Skills
To compare different ways of describing custom computers
To compare different custom computers and their implementations
To compare optimisations for custom computers and their trade-offs
Learning Outcomes - Practical Skills
To demonstrate a custom computer works as expected by simulation and by analysis
To analyse the performance of a custom computer
Overview: motivations; features and examples of custom computers; summary of development methods and tools.
Design: parametrised description of leaf components and composite structures; resource and performance characterisation; high-level design tools.
Optimisation: techniques for improving design efficiency such as pipelining, serialisation, transposition and their combinations.
Realisation: bit-level designs, data refinement, FPGA-based implementations.
System-on-chip: architectures, technology trade-offs, design and optimisation methods.
Examples will be selected from a number of application areas, including digital signal processing, computer arithmetic and non-numerical operations.
Introductory courses on computer architecture and programming
Lectures and tutorials
*This is a level 6/H course