Embedded Systems Architectures
|Professor|| Ansaloni Giovanni
|Course program|| MSc
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.
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
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.