Course Syllabus
Obiettivi
L’obiettivo di questo corso è fornire agli studenti una comprensione avanzata dei principali aspetti dei Sistemi Embedded e Cyber-Fisici (ECPS) con funzionalità AI. Alla fine del corso gli studenti conosceranno i principali concetti relativi agli ECPS, i loro più rilevanti campi applicativi, i principali requisiti per gli ECPS nei diversi campi applicativi, le tecnologie attualmente disponibili per costruire ECPS con funzionalità AI. Gli studenti saranno in grado di progettare applicazioni embedded con funzionalità AI che soddisfino le più importanti categorie di requisiti. Le conoscenze acquisite saranno applicate realizzando nel corso delle sessioni di laboratorio alcuni semplici ECPS di esempio.
Contenuti sintetici
I sistemi embedded e cyber-fisici (ECPS) nel loro contesto. La struttura degli ECPS: unità di elaborazione, memorie, sistemi di comunicazione, sensori, attuatori.Introduzione allo scheduling real-time. Progettare ECPS.
Programma esteso
I sistemi embedded e cyber-fisici (ECPS) nel loro contesto:
- Definizione di ECPS; categorie di ECPS; domini applicativi, valore di mercato e diffusione.
- Principali requisiti: temporali, di affidabilità, di efficienza.
- ECPS ed AI: cloud, edge ed endpoint AI.
La struttura degli ECPS:
- Unità di elaborazione: CPU e microcontrollori, DSP e GPU, ASIC, logiche programmabili. Acceleratori AI.
- Memorie. Sistemi di comunicazione: GPIO, bus seriali sincroni e asincroni.
- Modelli di sensori e attuatori: modelli affini, saturazione, distorsione armonica, range dinamico. Convertitori analogico-digitale e digitale-analogico.
- Sensori: accelerometri, giroscopi, sensori barometrici, magnetometri; IMU; sensori di temperatura ed altri sensori. Attuatori: solenoidi, motori DC.
Introduzione allo scheduling real-time:
- Definizione di sistema real-time e concetti fondamentali dello scheduling real-time: task e job, task periodici, aperiodici e sporadici, metriche, ottimalità.
- Scheduling per task periodici. Condizioni di schedulabilità. Nonidealità e blocking time.
- Scheduling per insiemi di task eterogenei con task sporadici: servers.
- Risorse condivise: sezioni critiche e locking; inversione di priorità; protocolli di accesso alle risorse; blocking time per conflitto di risorse.
Progettare ECPS:
- Tipici requisiti nei diversi domini applicativi degli ECPS.
- Modelli dei sistemi real-time e cyber-fisici; macchine a stati.
- System engineering.
Prerequisiti
Conoscenze di base di programmazione con i linguaggi C e Python; conoscenza di base dei principi dei sistemi operativi (processi, thread, scheduling) e dell’architettura degli elaboratori; conoscenza di base dei principi di analisi dei requisiti software e della progettazione del software con UML; conoscenza di base dei principi del machine learning, come insegnati nel corso Advanced Foundations of Artificial Intelligence.
Modalità didattica
Lezioni in aula e attività pratica di laboratorio consistente nello sviluppo di una serie di project works in piccoli gruppi. La presenza alle lezioni e ai laboratori è altamente raccomandata.
Materiale didattico
Gli argomenti che vengono insegnati nel corso non vengono discussi in maniera comprensiva in alcun libro: corrispondentemente, il corso non ha un libro di testo di riferimento. Il materiale didattico verrà fornito durante il corso, e consisterà in una serie di dispense, slides, articoli di ricerca, e una selezione di capitoli tratti da libri tra i quali:
E. A. Lee, S.A. Seshia. Introduction to Embedded Systems: A Cyber-Physical Approach. Seconda edizione, MIT Press, 2017.
G. C. Buttazzo. Hard Real-Time Computing Systems, Predictable Scheduling Algorithms and Applications. Terza edizione. Springer, 2011.
P. Warden, D. Situnayake. TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers. O’Reilly, 2019.
Periodo di erogazione dell'insegnamento
Secondo semestre.
Modalità di verifica del profitto e valutazione
Prova scritta con domande aperte, problemi ed esercizi; relazione scritta sull’attività di laboratorio.
Orario di ricevimento
Su appuntamento (inviare un email al docente per concordare una data e un orario per l’incontro).
Aims
This course aims at providing the students an advanced understanding of the main aspects of Embedded and Cyber-Physical Systems (ECPS) with AI capabilities. At the end of this course the students will know the main concepts of ECPS, their most relevant applicative fields, the essential requirements for ECPS in the different applicative fields, the current technologies available to build ECPS with AI capabilities. The course will teach students how to design embedded applications with AI capabilities satisfying the most relevant categories of requirements. The acquired knowledge will be applied by realizing some simple example ECPS during the laboratory sessions.
Contents
Embedded and cyber-physical systems (ECPS) in their context. The structure of ECPS: processing units, memories, communication systems, sensors, actuators. Introduction to real-time scheduling. The design of ECPS.
Detailed program
Embedded and cyber-physical systems (ECPS) in their context:
- Definition of ECPS; categories of ECPS; application domains, market value and diffusion.
- Basic requirements: timing, reliability, efficiency.
- ECPS and AI: cloud, edge and endpoint AI.
The structure of ECPS:
- Processing units: CPU and microcontrollers, DSP and GPU, ASIC, programmable logics; AI accelerators.
- Memories; Communication systems: GPIO, synchronous and asynchronous serial buses.
- Models of sensors and actuators: Affine models, saturation, harmonic distortion, dynamic range. Analog-to-digital and digital-to-analog converters.
- Sensors: accelerometers, gyroscopes, pressure sensors, magnetometers; IMU; temperature sensors and other sensors. Actuators: solenoids, DC motors.
Introduction to real-time scheduling:
- Definition of real-time system and basic concepts in real-time scheduling: tasks and jobs, periodic, aperiodic e sporadic tasks, metrics, optimality.
- Scheduling for periodic tasks; schedulability conditions; nonidealities and blocking.
- Scheduling for heterogeneous sets of tasks with sporadic tasks: servers.
- Shared resources: critical sections and locking; priority inversion; resource access protocols; blocking time due to resource conflict.
Designing ECPS:
- Typical requirements in the different ECPS application domains.
- Models of real-time and cyber-physical systems; state machines.
- System engineering.
Prerequisites
Basic knowledge of programming in the C and Python programming languages; basic knowledge of operating system principles (processes, threads, scheduling) and of computer architecture; basic knowledge of principles of software requirements analysis and software design with UML; basic knowledge of the principles of machine learning as taught in the course Advanced Foundations of Artificial Intelligence.
Teaching form
In-presence classes and laboratory practice consisting in the development of project works in small groups. Attendance to classes and laboratories is highly recommended.
Textbook and teaching resource
The topics that are taught in the course are not comprehensively discussed by any single book: Correspondingly, the course has no textbook. The learning material will be provided during the course as handouts, slides, research articles and a selection of chapters from books including:
E. A. Lee, S.A. Seshia. Introduction to Embedded Systems: A Cyber-Physical Approach. Second Edition, MIT Press, 2017.
G. C. Buttazzo. Hard Real-Time Computing Systems, Predictable Scheduling Algorithms and Applications. Third Edition. Springer, 2011.
P. Warden, D. Situnayake. TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers. O’Reilly, 2019.
Semester
Second.
Assessment method
Written examination with open questions, problems and exercises; written report on the laboratory activity.
Office hours
By appointment (send an email to the course instructor to agree a date and time for a meeting).
Key information
Staff
-
Pietro Braione
-
Seyed Mojtaba Daryabari