Advanced Computer Architectures
The course builds on previous knowledge in basic computer architecture, and visits the major techniques devised to get higher performance from a single processor, and, later on, from multi-processors. It describes the concepts of pipelined CPUs, cache architecture and optimization, Instruction-Level parallelism (Superscalar and VLIW architectures), Thread-Level parallelism (fine-grained, coarse-grained, simultaneous multithreading), Data-level parallelism (Vector architectures), and shared-memory multi-processing. The course also includes a project where the Simplescalar and Cacti simulation tools are used to perform design-space exploration, and to understand the tradeoffs that computer architects must consider between performance and cost.
- J. Hennessey, D. Patterson "Computer Architecture: a quantitative approach” 5th edition, Morgan-Kaufmann Publishers.