Advanced Computer Systems
Pre-requisite modules
Co-requisite modules
- None
Prohibited combinations
- None
Occurrence | Teaching period |
---|---|
A | Semester 2 2024-25 |
This module continues the Systems and Devices stream by considering advanced computer systems in terms of their structure and how it affects their programming. To this point, the systems introduced have been basic uniprocessors with simple memory. The module starts by introducing the concept of multiple processor architectures, pipelined and superscalar processors, systems-on-chip and advanced memory structures, including caches.
The rest of the module considers how these hardware features affect the way that such modern systems are efficiently programmed. Issues of programming for pipelines, caches, etc. are considered. Then how processes running in parallel on separate processors can share underlying resources safely. Finally, the module considers building blocks for parallel programming, e.g. threads and communication. It will also consider how such constructs map to processor instructions. The module will consider real-world examples throughout.
S301 |
Appreciate how, and why, the hardware structure of multiprocessor architectures differs from the architectures discussed in S&D1. Use this knowledge to develop software applications for such architectures. |
S302 |
Use knowledge of computer system design concepts to evaluate the likely performance of a proposed computer architecture. |
S303 |
Demonstrate the ability to optimise software for advanced hardware features like caches, branch predictors, and pipelines. |
S304 | Demonstrate through software development, how data structures are laid out in memory, how they can be accessed from a program, and how processor instructions are generated to manipulate them. |
Task | % of module mark |
---|---|
Online Exam -less than 24hrs (Centrally scheduled) | 100 |
None
Students will only need to retake failed assessment components.
Task | % of module mark |
---|---|
Online Exam -less than 24hrs (Centrally scheduled) | 100 |
Feedback is provided through work in practical sessions, and after the final assessment as per normal University guidelines
**** H. Abelson, and G.J. Sussman, Structure and Interpretation of Computer Programs, MIT Press, 1996
*** R.W. Sebesta, Concepts of Programming Languages, Addison Wesley, 2009
*** A. Burns and G. Davis, Concurrent Programming, Addison-Wesley, 1993
** D. Watt and W. Findlay, Programming Language Design Concepts, Wiley, 2004
** T.W. Pratt and M.V. Zelkowitz, Programming Languages: Design and Implementation, Prentice Hall, 2001
** D. Lea, Concurrent Programming in Java, Addison Wesley, 1996
** A. Burns and A. Wellings, Concurrent and Real-Time Programming in Ada, CUP, 2007
** F. Casarini and S. Thompson, Erlang Programming, O'Reilly, 2009
** A. Burns and A. Wellings, Real-Time Systems and Languages 4/e, Addison Wesley