Charles Explorer logo
🇬🇧

Computer Architecture

Class at Faculty of Mathematics and Physics |
NSWI143

Syllabus

- Introduction to digital systems, logical expressions, boolean functions, gates, combinational and sequential circuits, basic building blocks, arithmetic operations.

- Computer performance, fundamental metrics and their limitations, comparing performance of computer architectures.

- ISA implementation, single-cycle and multi-cycle data path and control, hardwired and microprogrammed controller implementation, exception handling.

- Pipelined instruction execution, scalar pipelined data path, hazard detection and handling, branch prediction, exception handling.

- Superscalar architectures, static and dynamic instruction scheduling, out-of-order execution, speculative execution, contemporary architectures.

- Memory subsystem organization, latency and throughput, static and dynamic memory technology, cache organization and mapping, cache coherence.

- Parallel processing and multiprocessor systems, Flynn's taxonomy, Amdahl's law, SIMD processing in multimedia, multicore CPUs, GPUs.

Annotation

The goal of the course is to provide information on design and internal organization of computers and CPU on such a level that the future professionals will not take the computer as a black box that, in a magic way, executes programs. To do that, it is necessary to understand the computer design principles on the level of functional components, their behavior and interaction and the influence on the performance of the computer.

Understanding the basic principles is a necessary prerequisite to be able to efficiently use modern programming languages.