Computer architecture concerns the design of general-purpose and special-purpose processors, and of parallel computer systems for applications ranging from embedded robotics through mobile handsets to datacentres and supercomputers.
- Pipelines, hazards, instruction-level parallelism, locality and caching
- Dynamic scheduling, Tomasulo's algorithm and register renaming
- Software instruction scheduling and software pipelining
- Superscalar and long-instruction-word architectures
- Branch prediction and speculative execution
- Simultaneous multithreading
- Vector instruction execution
- Caches, cache coherency, memory systems, address translation
- Optimisations for parallelism and locality and their automation in compilers
- Graphics processors and manycore architectures
- Security vulnerabilities and their mitigation
Taught by Professor Paul Kelly
- College Site
- Module Site
- Year 3 Tar [Imperial Students Only]