CS257 15 CATS (7.5 ECTS) Term 2
Core - CSE, Option - CS, CMS
Note: This module is only available to students in the second year of their degree and is not available as an unusual option to students in other years of study.
CS132 Computer Organisation and Architecture
The module aims to provide students with a fundamental knowledge of computer hardware and computer systems, with an emphasis on system design and performance. The module concentrates on the principles underlying systems organisation, issues in computer system design, and contrasting implementations of modern systems. The module is central to the aims of the Computing Systems degree course, for which it is core.
By the end of the module, a student should be able to:
- Discuss the organisation of computer-based systems and how a range of design choices are influenced by applications
- Understand different processor architectures and system-level design processes.
- Understand the components and operation of a memory hierarchy and the range of performance issues influencing its design.
- Understand the organisation and operation of current generation parallel computer systems, including multiprocessor and multicore systems.
- Understand the principles of I/O in computer systems, including viable mechanisms for I/O and secondary storage organisation.
- Develop systems programming skills in the content of computer system design and organisation.
Key topic areas addressed are computer system engineering principles, memory systems, processor architectures, parallel computer organisation, and I/O and secondary storage. A summary of key concepts in each of these areas is shown below. Each of these areas will also incorporate a detailed case study.
Context for modern computer systems engineering, including:
- Dimensions for the classification of computer systems
- Persistent trends in embedded systems
- Forms of parallelism, Performance evaluation
- Architectural developments
Advanced topics in memory systems, for example:
- Interleaved memory - structure, performance
- Virtual memory - utilisation, locality of reference, performance
- Paged memory - structure, challenges, address translation, optimisation
- Cache memory - structure, performance, implementation, optimisation
Advanced topics in processor architecture, possibly including:
- CPU control issues
- Instruction sequencing and clock cycle grouping
- Instruction-level parallelism - data dependency, exploitation, measurement
- Branch predication and speculative execution
- Micro-operations and control signals - relationship, control signal generation, hardware design consideration, implementations, microprogrammed control
- Principles of Pipelining - instruction pipelines, hazards, pipeline analysis
- Thread-level parallelism - multithreading to improve uniprocessor throughput, common approaches, granularity issues, thread scheduling, measurement
- Forms of multithreading - block, interleaved, and simultaneous
- Principles of superscalar processors - structure, performance, evaluation
Parallel computer organisation, for example:
- Classifications of parallelism
- SIMD architectures - vector computation, SIMD instruction set extensions
- MIMD architectures - cache coherence, cache restriction, broadcast-based cache writes, snoop bus, directory coherence, MESI, models of consistency
- Processor interconnection - principles of processor interconnection, network topologies, implementations, properties, performance, cost
- Multicore systems - structure, performance, complexity, power consumption, memory utilisation, software development issues for multicore systems
- Data-level parallelism - motivation, challenges, applications
- Manycore architecture - motivations and persistent trends, GPUs, future architectures, software development issues for manycore systems
- Multiprocessor systems - processor coupling, symmetric multiprocessors, clustered resources, high performance systems, performance benchmarking, software development issues for multiprocessor systems
I/O and secondary storage, possibly including:
- I/O techniques - polling variants, interrupts, direct memory access
- I/O channels - structures, latency and bandwidth issues, standards
- RAID systems - organisation, performance-cost tradeoffs
- Storage area networks - motivation, organisation, control, performance issues
W. Stallings, Computer Organization and Architecture: Designing for Performance (9th Edition), Prentice Hall, May 2012.
- J. L. Hennessy, D. A. Patterson, Computer Architecture: A Quantitative Approach (5th Edition), Morgan Kaufmann, October 2011.
Three-hour examination (80%), Unsupervised practical assignment (20%)