Course overview
This course covers the fundamental aspects of computer design. It is suitable for anyone who wants to learn how computers function in-depth and understand the trade-offs inherent in the design of computer systems. Topics covered include: quantifying cost and performance; instruction set architecture; program behaviour and measurement of instruction set use; processor datapaths and control; pipelining, handling pipeline hazards; memory hierarchies and performance; I/O devices, controllers and drivers; I/O and system performance. A variety of assessments will be undertaken during the course, including extensive use of programming assignments.
Course learning outcomes
- Describe the principles and characteristics of a modern computer
- Explain how computers execute software
- Elaborate on the effects of design decisions on computer performance and cost