Computer Architecture
About
The course covers architectural techniques necessary to achieve high performance for user programs. It also covers simulation-based analysis methods for quantitative assessment of the impact of a particular architectural technique on performance.
The content is divided into the following parts:
1. The first part covers aspects affecting the development of computer technology including Moore's Law, performance measures (execution time vs. throughput), benchmarking, and fundamentals of computer performance such as Amdahl's Law and memory access locality.
2. The second part covers various techniques for exploiting instruction level parallelism (ILP) by defining key concepts of what ILP is and what limits it. The techniques covered fall into two categories: dynamic and static techniques. The main dynamic techniques covered are Tomasulo's algorithm, branch prediction and speculation. The most important static techniques are loop unrolling, software pipelining, trace scheduling and predicated instructions.
3. The third part covers principles of modern memory hierarchies such as inclusive and non-inclusive memory hierarchies, lockup free caching techniques, prefetching, classification of cache misses.
4. The fourth part deals with multi-core microprocessors and techniques such as multi-threading and cache coherence.
Prerequisites and selection
Entry requirements
Successfully completed two year of studies within the subject Computer Science or equivalent. The course DIT122 Datorsystemteknik or equivalent is required. Applicants must prove their knowledge of English: English 6/English B from Swedish Upper Secondary School or the equivalent level of an internationally recognized test, for example TOEFL, IELTS.
Selection
Selection is based upon the number of credits from previous university studies, maximum 285 credits