SISTEMI DEDICATI

INF/01 - 6 CFU - 1° semestre

Docente titolare dell'insegnamento

GIUSEPPE SCOLLO


Obiettivi formativi

Conoscenza e capacità di comprensione: acquisire conoscenza e capacità di comprensione delle principali metodologie di modellazione, progettazione e realizzazione ottimale di sistemi di elaborazione dedicati a una specifica applicazione.

Capacità di applicare conoscenza e comprensione: acquisire capacità di uso di strumenti harware e software, quali piattaforme di sviluppo di sistemi dedicati, per progettare e realizzare sistemi dedicati ad applicazioni con alte prestazioni .

Autonomia di giudizio: essere in grado di valutare la qualità di soluzioni a problemi di progetto di sistemi dedicati, ad alto grado di specializzazione, in termini di diversi parametri di prestazione, quali velocità computazionale, impiego di risorse hardware, efficienza energetica, costo, tempo di sviluppo.

Abilità comunicative: acquisire abilità comunicative e proprietà di linguaggio utili alla comunicazione, con interlocutori non esperti, di problematiche inerenti il funzionamento, la progettazione, la realizzazione e la valutazione di sistemi dedicati.

Capacità di apprendimento: sviluppare capacità di adattamento delle proprie conoscenze alla rapida evoluzione della disciplina e di aggiornamento mediante la consultazione di fonti specialistiche del settore.


Prerequisiti richiesti

Elementi di architettura degli elaboratori, programmazione I, sistemi operativi, reti di calcolatori.



Frequenza lezioni

Per una piena comprensione degli argomenti dell'insegnamento e delle tecniche presentate, è fortemente consigliata la frequenza delle lezioni e delle esercitazioni orientate al laboratorio.



Contenuti del corso

L'insegnamento si articola in 12 lezioni (24 ore) e 12 esercitazioni orientate al laboratorio (24 ore). I contenuti dettagliati sono pubblicati in versione preliminare come segue:



Testi di riferimento

  1. P.R. Schaumont: A Practical Introduction to Hardware/Software Codesign, 2nd Edition. Springer (2012), con correzioni al testo prodotte a partire dall'edizione 2013-2014 dell'insegnamento
  2. M. Zwolinski: Digital System Design With VHDL, 2nd Edition. Pearson (2004)
  3. F. Vahid & T. Givargis: Embedded System Design: A Unified Hardware/Software Introduction. Wiley (2002)
  4. P. Marwedel: Embedded System Design: Embedded Systems Foundations of Cyber-Physical Systems, 2nd Edition. Springer (2011)

Altro materiale didattico

Si accede al materiale didattico attraverso la Guida rapida all'insegnamento (Quick learning guide). Il materiale didattico consta di:

Il materiale didattico è pubblicato, durante lo sviluppo dell'insegnamento, in parte attraverso collegamenti nella Guida rapida dell'insegnamento, forniti nelle suddette pagine del programma delle lezioni e delle esercitazioni, e per la parte restante nell'area di esercitazione e di consultazione e discussione dei materiali didattici, realizzata nel servizio dipartimentale Moodle, ad accesso riservato ai partecipanti all'insegnamento (ciò è necessario perché buona parte del materiale è protetto da copyright, con permesso di distribuzione limitata agli studenti dell'insegnamento).



Programmazione del corso

 *ArgomentiRiferimenti testi
1*L01. Finalità e organizzazione dello studio. Introduzione al codesign di sistemi dedicati.1: 1.1.4-1.4,1.6; 3: 1.1-1.4 
2*E01. Introduzione al codesign e alla cosimulazione in Gezel.1: 1.1-1.1.3, 5.1-5.2, A.1-A.2 
3*L02. Architetture e progettazione di sistemi dedicati.1: 1.5,1.7; 2: 1.1; 3: 1.5-1.6 
4*E02. Introduzione al progetto di sistemi hardware con FPGA.2: 1.3 
5*L03. Modelli dataflow, flusso del controllo.1: 2; 4: 2.5 
6*E03. Linguaggi di descrizione dell'hardware: VHDL, Verilog, SystemC.2: 3.1-3.7; 4: 2.7 
7*E04. Esempi di reti combinatorie in VHDL.2: 4.1-4.6 
8*L04. Realizzazioni software di modelli dataflow.1: 3.1-3.3 
9*E05. Esempi di reti sequenziali in VHDL.2: 6.1-6.5.1 
10*L05. Sistemi sincroni come macchine a stati finiti con datapath (FSMD).1: 5.1-5.4.3,5.6 
11*E06. Esempi di FSMD in Gezel e in VHDL.1: 5.4.4-5.5; 2: 7.1-7.2 
12*L06. Microprogrammazione: architetture, controllo, interpreti microprogrammati.1: 6.1-6.4,6.6 
13*E07. Esempio di progetto di un microprocessore in VHDL.2: 7.3-7.5 
14*L07. Progetto e analisi di programmi per sistemi dedicati.1: 7.1,7.3-7.5 
15*E08. Esempi di analisi di programmi e uso di simulatori di processori.1: 7.6 
16*L08. Progettazione di System-on-Chip (SoC).1: 8.1-8.3 
17*E09. Uso di un sistema di sviluppo di SoC con FPGA.2: 9.1-9.3 
18*L09. Comunicazione HW/SW, sistemi di bus on-chip.1: 9.1-9.4, 10.1 
19*E10. Pianificazione di seminari degli studenti. 
20*L10. Interfacce di microprocessore.1: 11.1-11.3 
21*L11. Interfacce hardware.1: 12.1-12.4 
22 E11. Progetto di coprocessori e di ASIP su sistema di sviluppo di SoC con FPGA. 
23 L12. Progetto di coprocessori per machine learning. 
24 E12. Codesign in OpenCL di rete neurale su FPGA. 
* Conoscenze minime irrinunciabili per il superamento dell'esame.

N.B. La conoscenza degli argomenti contrassegnati con l'asterisco è condizione necessaria ma non sufficiente per il superamento dell'esame. Rispondere in maniera sufficiente o anche più che sufficiente alle domande su tali argomenti non assicura, pertanto, il superamento dell'esame.


Verifica dell'apprendimento


MODALITÀ DI VERIFICA DELL'APPRENDIMENTO

Esame orale, progetto (opzionale).

Obiettivi della valutazione:

Colloqui orali:


PROVE IN ITINERE

non previste


PROVE DI FINE CORSO

consegna di relazioni sulle esperienze di laboratorio compiute


ESEMPI DI DOMANDE E/O ESERCIZI FREQUENTI
  1. Modify the ARM assembly program in [Schaumont, Ch. 1] Listing 1.2, which is obtained by compilation of the C program in Listing 1.1, so that it will produce the same result in a shorter time, i.e. after fewer instruction executions.
  2. Optimize the SDF graph shown in [Schaumont, Fig. 3.18] to a single C function by implementing the schedule at compile-time, and by optimizing the FIFO queues into single variables.
  3. Explain the difference between the following terms:
    • Control hazard and data hazard
    • Delayed branch and conditional branch
    • Little Endian and Big Endian
    • volatile int * a and int * const a
    • Virtual Memory Address (VMA) and Load Memory Address (LMA)
  4. La Figura [Schaumont, Fig. 6.15] mostra un datapath microprogrammato. Abbiamo 6 bit di controllo per il datapath: 2 bit per ciascun multiplatore (M1 e M2) e 2 bit per l'ALU. La codifica dei bit di controllo è indicata in figura.
    (a) Sviluppare una codifica orizzontale per la lista di micro-istruzioni in Tabella 6.5.
    (b) Sviluppare una codifica verticale per la stessa lista di micro-istruzioni. La codifica dovrebbe essere "ragionevole", cioè risultare in un decodificatore compatto ed efficiente per il datapath.
  5. Trovare la massima velocità di comunicazione dalla CPU1 alla CPU2 del sistema in figura [Schaumont, Fig. 9.11]. Assumere che le CPU abbiano un canale dedicato di sincronizzazione disponibile in modo che esse saranno in grado di scegliere il momento migliore per eseguire un’operazione di lettura o di scrittura. Utilizzare le seguenti costanti:
    • Ogni transazione sul bus ad alta velocità richiede 50 ns.
    • Ogni transazione sul bus a bassa velocità richiede 200 ns.
    • Ogni accesso alla memoria (lettura o scrittura) richiede 80 ns.
    • Ogni trasferimento del ponte richiede 100 ns.
    • Le CPU sono molto più veloci rispetto al sistema di bus, e possono leggere/scrivere dati sul bus a qualsiasi velocità dati scelta
  6. Un processore ASIP esegue operazioni su un flusso di campioni. I campioni compaiono a tasso fisso e sono trattati con un algoritmo A. Quale delle seguenti ottimizzazioni ridurrà il consumo di energia E necessario per elaborare un solo campione? La risposta per ogni domanda è una di: sì, no, impossibile da stabilire.
    1. Riscrivere l’algoritmo A in modo che esso richieda meno MOPS al processore (MOPS = milioni di operazioni al secondo);
    2. Aggiungere un’istruzione custom B che eseguirà l’algoritmo A in solo la metà dei cicli di clock. Presumere che la potenza consumata dall’hardware aggiuntivo sia trascurabile;
    3. Aumentare la frequenza di clock dell’ ASIP;
    4. Abbassare la tensione dell’ ASIP.



Apri in formato Pdf English version