Coronavirus (Covid-19): Latest updates and information
Skip to main content Skip to navigation

CS257 Advanced Computer Architecture

CS257-15 Advanced Computer Architecture

Academic year
20/21
Department
Computer Science
Level
Undergraduate Level 2
Module leader
Adam Chester
Credit value
15
Module duration
10 weeks
Assessment
Multiple
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.

Costs

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 D1
Weighting Study time
Unsupervised Practical Assignment 20%
2 hour online examination (Summer) 80%

Exam

Assessment group R
Weighting Study time
2 hour online resit examination (September) 100%

CS257 resit examination

Feedback on assessment

Written feedback on practical assignment.

Past exam papers for CS257

Courses

This module is Core for:

  • Year 2 of UCSA-G400 BSc Computing Systems
  • Year 2 of UCSA-G402 MEng Computing Systems
  • 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
  • Year 2 of UCSA-G5N1 Undergraduate Computer and Management Sciences

This module is Core option list B for:

  • Year 2 of UCSA-G5N1 Undergraduate Computer and Management Sciences

This module is Option list A for:

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

This module is Option list B for:

  • Year 2 of UCSA-GN51 Undergraduate Computer and Business Studies
  • Year 2 of UCSA-G4G1 Undergraduate Discrete Mathematics
  • Year 2 of UCSA-G4G3 Undergraduate Discrete Mathematics

Further Information

Term 2

15 CATS (7.5 ECTS)

Online Material

Additional Information

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.