Obiettivi formativi
L’obiettivo del corso è fornire allo studente le competenze e le metologie necessarie per la progettazione di sistemi dedicati ad applicazioni specifiche. La presenza di tali sistemi, spesso “invisibili” rispetto ai sistemi general-purpose come i PC, è il costante aumento e copre all’incirca i due terzi del mercato dei sistemi basati su processore. Esempi di tali sistemi sono le apparecchiature biomedicali, centraline e sistemi per automotive, apparati per applicazioni telecom, sistemi di controllo industriale, set-top-box e buona parte dell’elettronica di consumo.
Il progetto di tali sistemi richiede l’utilizzo coordinato di competenze e tecnologie spesso trasverali a quanto presentato nei vari corsi di laurea, al fine di identificare la soluzione migliore sotto un notevole insieme di aspetti quali la flessibilità, la standardizzazione, il costo, le dimensioni, la potenza dissipata e le prestazioni, gli aspetti metodologici legati al flusso della progettazione, ecc. .
Il contenuto del corso considera tali esigenze sistematizzando dapprima le competenze inerenti le architetture hardware, di comunicazione e software di base utilizzabili per la realizzazione di sistemi embedded, con riferimento agli standard esistenti e alle peculiarità del sistema da realizzare. Successivamente viene mostrato come gestire un flusso di progettazione che porti ad una soluzione “ottimale” sia sotto il profilo dei vincoli tradizionali di progetto (come ad es. la potenza dissipata o le prestazioni), sia considerando l’impatto che le soluzioni tecnologiche adottate hanno sotto il profilo del flusso di progettazione (es. costo o tempo di sviluppo)
Gli approfondimenti relativi allo sviluppo del software di sistema e real time per applicazioni embedded è l'oggetto principale del corso di Sistemi Operativi Real Time, che si sviluppa in parallelo e complementa il corso di Sistemi Embedded.
Per aggiungere incisività alle materie trattate è prevista la trattazione di alcuni casi di studio rappresentativi dei vari ambiti applicativi.
Durante il corso saranno proposti stage aziendali e temi da approfondire come tesi di laurea
Prerequisiti
- - -
Contenuti dell'insegnamento
- Introduzione alle caratteristiche di un sistema embedded
- Architetture hardware per Sistemi Embedded
- Architetture software per Sistemi Embedded
- Analisi e ottimizzazione di architetture miste Hw/Sw
- Casi di Studio
Programma esteso
* Introduzione
- Caratteristiche di un sistema embedded
- Requisiti e vincoli dei vari ambiti applicativi
- I trend del mercato e della progettazione
- Flussi di sviluppo Hw/Sw
- Problematiche di ottimizzazione del consumo energetico
* Architetture hardware per Sistemi Embedded
- Caratteristiche degli esecutori del software: processori General-Purpose, Processori dedicati, DSP, Network processors, Microcontrollori, Sistemi Multiprocessore e Clusters, Architetture multi-many core.
- Architetture di comunicazione: i bus standard, Network-on-Chip (NoC), i bus di campo, interfacce wireless. Esempi.
- Esecutori hardware: caratteristiche degli Application Specific IC e del loro flusso di progettazione, sistemi per il fast prototyping, sistemi riconfigurabili, esempi di componentistica off-the-shelf, wireless sensor networks.
* Architetture software per Sistemi Embedded
- Livelli di astrazione: assembler, sorgente, libreria, software di base, middleware
- Strumenti ed ambienti di sviluppo del software per applicazioni embedded
- Generalità sui sistemi operativi real-time: caratteristiche generali, lo scheduler, la configurazione, gestione dinamica delle risorse per
- Analisi del software embedded: formalismi e strumenti di analisi/profiling del codice, ottimizzazione energetica
- Esempi: estensioni RT di Linux, Android, sistemi operativi per reti di sensori
* Analisi e ottimizzazione di architetture miste Hw/Sw
- L’analisi dei vincoli di progetto e la scelta dell’architettura realizzativa.
- Problematiche di stime delle prestazioni/potenza dissipata ai vari livelli di astrazione.
- Problematiche di ottimizzazione delle prestazioni/potenza/costo ai vari livelli di astrazione.
- Analisi e modellazione di problematiche thermal e di affidabilità con enfasi verso architetture multi-core con comunicazione basata su NoC
- Gestione e pianificazione della progettazione di sistemi embedded: modelli per il flusso di sviluppo della realizzazione di sistemi, design-for-resuse e problematiche di stime per hw e sw, problemi di project management.
* Casi di Studio
- Esempi di analisi, scelte realizzative e conduzione delle varie fasi di un progetto. Si considerano esempi legati allo sviluppo di applicazioni con differente granularità, come le reti di sensori, i cluster, i sistemi multiprocessore e SoC, sistemi basati su RFID, ponendo sempre in evidenza i vari trade-off da affrontare.
Bibliografia
• Carlo Brandolese, William Fornaciari, Sistemi embedded, Editore: Pearson, Anno edizione: 2007, ISBN: 9788871923420
Metodi didattici
Lezioni frontali in aula con approfondimenti monografici e casi di studio.
Agli studenti verrà proposto di sviluppare, sulla base dei propri interessi e competenze, una piccola ricerca monografica o un progetto sperimentale.
Modalità verifica apprendimento
Due prove scritte intermedie durante il corso oppure una prova scritta complessiva. Presentazione orale della ricerca svolta o del progetto sviluppato
Altre informazioni
- - -
Obiettivi agenda 2030 per lo sviluppo sostenibile
- - -