Multi-Core Processor Systems
5284MCPS6Y | |||||
6 EC | |||||
English | |||||
| |||||
Graduate School of Informatics | |||||
Education Desk FNWI | |||||
| Add to course registration | |||||
Objectives
- To understand the principles and design of modern multi-core microprocessors and and their microarchitectures.
- To understand how such processors can be deployed in systems targeted for different application fields, such a as embedded / edge systems-on-a-chip or parallel/distributed computing systems.
- Building a simulation model of a cache-coherent multi-core system, with which cache behavior in such systems can be analyzed and evaluated.
- To develop an understanding of how such multi-core processors can be programmed.
Contents
This course builds on a basic knowledge of microprocessor architecture. It develops this with and emphasis on instruction-level and thread-level concurrency in (multi-core) microprocessor design as well as concurrency in memory systems. The topics that are covered include superscalar and VLIW processor architectures, instruction- and thread-level parallelism, memory hierarchy, distributed- and shared-memory parallel computers.
The course also provides an introduction into programming models and techniques for multi-core processors found in everyday laptops to large-scale server systems. Here, the focus will be on multithreaded programming models for shared address space systems, where we discuss both OpenMP compiler directives and Posix threads.
Recommended prior knowledge
The course requires a solid background in system-oriented programming using the C or C++ programming language, and basic knowledge on computer organization.
Registration
More information about procedures and registration periods can be found at https://student.uva.nl/en/topics/course-registration
Teaching method and contact hours
- Lecture
- Self-study
- Computer lab session/practical training
Study materials
- Literature:
- John Hennessy and David Patterson, Computer Architecture: a Quantitative Approach, Morgan Kaufmann, 3rd ed. or later.
- Practical training material:
- Study material for the part on parallel programming will be provided during the course.
Assessment
Practical assignments, theory tests/assignments, review of a scientific paper.