Embedded Systems Architectures
Professor | Ansaloni Giovanni |
Course program | MSc |
Year | 1 |
Semester | Fall |
Category | Fundamental |
ECTS | 3 |
Academic year | 2016/2017 |
Objective
The course deals with the high-level structure of modern digital systems, with a particular focus on low-power systems-on-chip and on massively parallel computing platforms. Lectures combine the theoretical description of architectural concepts and techniques with the exploration of real-world implementations. Case studies are investigated detailing the characteristics of the ARM family of systems-on-chip and of the OpenCL framework. The course showcases how application domains shape the hardware features of computing ICs, which in turn demand dedicated execution and programming models.
Contents
-
Introduction to computer architectures
- Basic concepts, instruction level parallelism, hazards
- Memory hierarchies: caches and scratchpads
-
Embedded computing platforms: the ARM architecture
- The Cortex-M processor core
- The ARM and Thumb instruction sets
- Programming ARM microcontrollers: C and assembler
- ARM-based systems: interfacing peripherals on the AMBA bus
- Managing interrupts and DMA transfers
-
Massively parallel GPUs for general-purpose computing
- Overview of GPUs organization: computing and memory resources
- Parallelizing computational kernels: OpenCL fundamentals
- Data placement strategies for performance optimization
- Inter-thread synchronization
References
J. L. Hennessy and D. A. Patterson. "Computer architecture: a quantitative approach, Fifth Edition". Elsevier, 2012.
M. Scarpino, “OpenCL in Action”, Manning, 2012.
S. Furber, "ARM System-on-Chip Architecture”, Addison-Wesley, 2000.