Skip to main content Skip to navigation

CS257-15 Advanced Computer Architecture

Computer Science
Undergraduate Level 2
Module leader
Rossella Suma
Credit value
Module duration
10 weeks
Study location
University of Warwick main campus, Coventry
Introductory description

The module aims to provide students with a fundamental knowledge of computer hardware and computer systems, with an emphasis on system design and performance.
There is a prerequisite of CS132 Computer Organisation and Architecture.
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.

Module aims

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.

Outline syllabus

This is an indicative module outline only to give an indication of the sort of topics that may be covered. Actual sessions held may differ.

Context for modem 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.
Learning outcomes

By the end of the module, students 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.
Indicative reading list

Please see Talis Aspire link for most up to date list.

View reading list on Talis Aspire

Subject specific skills

A working knowledge of various architectures.
Programming in a low level language using architecture specific vectorised CPU instructions.

Transferable skills

General IT Skills - using a computer while working
Numeracy skills - developed while looking at program performance.
Problem solving - developing a creative solution to the coursework.

Study time

Type Required
Lectures 30 sessions of 1 hour (20%)
Private study 120 hours (80%)
Total 150 hours
Private study description

Background reading of concepts covered in the module from recommended reading and realised research papers.
Consultation of technical manuals covering specific architectures for the purposes of the coursework.
Exam revision.


No further costs have been identified for this module.

You do not need to pass all assessment components to pass the module.

Students can register for this module without taking any assessment.

Assessment group D2
Weighting Study time
Unsupervised Practical Assignment 20%
In-person Examination 80%


  • Answerbook Pink (12 page)
  • Students may use a calculator
Assessment group R1
Weighting Study time
In-person Examination - Resit 100%

CS257 resit examination

  • Answerbook Pink (12 page)
  • Students may use a calculator
Feedback on assessment

Written feedback on practical assignment.

Past exam papers for CS257


This module is Core for:

  • Year 2 of UCSA-G406 Undergraduate Computer Systems Engineering
  • Year 2 of UCSA-G408 Undergraduate Computer Systems Engineering

This module is Optional for:

  • Year 2 of UCSA-I1N1 Undergraduate Computer Science with Business Studies

This module is Option list A for:

  • UCSA-G500 Undergraduate Computer Science
    • Year 2 of G500 Computer Science
    • Year 2 of G500 Computer Science
  • UCSA-G503 Undergraduate Computer Science MEng
    • Year 2 of G500 Computer Science
    • Year 2 of G503 Computer Science MEng
    • Year 2 of G503 Computer Science MEng

This module is Option list B for:

  • UCSA-G4G1 Undergraduate Discrete Mathematics
    • Year 2 of G4G1 Discrete Mathematics
    • Year 2 of G4G1 Discrete Mathematics
  • Year 2 of UCSA-G4G3 Undergraduate Discrete Mathematics