ARCHITETTURA DEI SISTEMI DIGITALI
Anno accademico e docente
Non hai trovato la Scheda dell'insegnamento riferita a un anno accademico precedente?
Ecco come fare >>
- English course description
- Anno accademico
- 2017/2018
- Docente
- DAVIDE BERTOZZI
- Crediti formativi
- 6
- Periodo didattico
- Secondo Semestre
- SSD
- ING-INF/01
Obiettivi formativi
- L'obiettivo formativo è quello di fornire le nozioni di base sulle metodologie di progettazione (front-end e back-end) per architetture di sistemi digitali integrati (o systems-on-chip), nonchè sui principi di integrazione dei blocchi funzionali a livello sistema.
Le principali conoscenze acquisite saranno:
- Conoscenze relative ai passi di un flusso di sintesi di front-end mediante il principio del raffinamento successivo del livello di astrazione.
- Conoscenze relative ai passi di un flusso di sintesi di back-end, che a partire da una descrizione indipendente dalla tecnologia fornisca una implementazione su un substrato tecnologico fissato.
- Conoscenze relative ai protocolli e alle topologie per la comunicazione su chip, al fine di implementare l'infrastruttura che integra tutti i blocchi funzionali su un circuito integrato.
- Conoscenze relative alle problematiche principali che affliggono la progettazione di una architettura di elaborazione parallela: consistenza e coerenza della memoria.
Le principali abilità acquisite saranno:
- Capacità di modellare un blocco architetturale a livello di astrazione RTL mediante il linguaggio di descrizione dell'hardware "SystemC".
- Capacità di modellare e simulare sia l'hardware sia il software in un unico linguaggio di descrizione.
- Capacità di trasformare una specifica RTL in una implementazione tecnologica.
- Capacità di valutare le soluzioni che moderni processori multi-core adottano per affrontare il problema della consistenza e della coerenza della memoria.
- Capacità di interconnettere blocchi funzionali di un sistema mediate la combinazione protocollo-topologia che meglio si adatta ai requisiti di comunicazione. Prerequisiti
- Si richiedono le nozioni acquisite durante un corso di elettronica digitale di base: logica CMOS, interconnessioni on-chip, comportamento in transitorio, metodologie di fabbricazione.
Si richiedono altresì le nozioni di base sulla microarchitettura dei processori a singolo core: pipeline del processore, hazards, caching, aritmetica dell'elaboratore, programmazione assembler. Contenuti del corso
- - Roadmap internazionale sulla tecnologia dei semiconduttori: i "driver" a livello sistema
- Principi di base sul SystemC come linguaggio di descrizione dell'hardware
- Semantica della comunicazione in SystemC: "Interface Method Calls".
- Scheduler del SystemC e sensitività dinamica
- Canali primitivi e gerarchici
- Casi di studio sulla modellazione SystemC a diversi livelli di astrazione
- Metodologie di progettazione di sistemi integrati digitali: overview
- Metodologie di progettazione full custom
- Metodologie di progettazione basate su celle
- Metodologie di progettazione basate su array
- Macrocelle di tipo "soft" e "hard"
- Systems-on-Chip
- Il collo di bottiglia delle interconnessioni: una preoccupazione interdisciplinare
- Framework di integrazione a livello sistema: overview
- Caratteristiche dei protocolli per la comunicazione on-chip
- Soluzioni topologiche per la comunicazione on-chip
- Rassegna delle principali soluzioni industriali per la comunicazione on-chip:
- AMBA APB e AHB
- MULTI-LAYER AHB
- AMBA AXI
- Principi di base di networking
- Principi di progettazione di reti di interconnesioni integrate
- Problematiche progettuali per l'elaborazione parallela: overview
- Modelli per la consistenza della memoria
- La consistenza sequenziale e suoi rilassamenti
- Principi per mantenere la coerenza delle cache
- Protocolli basati su snooping
- Protocolli basati su directory Metodi didattici
- Il corso è organizzato nel seguente modo:
- Lezioni frontali in aula su tutti gli argomenti del corso, per circa due terzi del monte-ore complessivo. La metodologia didattica si basa sulla proiezione di lucidi che sono resi disponibili agli studenti almeno un'ora prima della lezione per il download. In aula, lo stile didattico è molto interattivo, e mira a stimolare lo sviluppo delle facoltà critiche e argomentative degli studenti.
- Esercitazioni nel laboratorio di informatica per imparare a modellare e simulare
blocchi architetturali mediante linguaggi di descrizione dell'hardware basati sul C++.
Ogni studente ha la sua postazione individuale e la sua cartella di lavoro, e svolgerà esercitazioni guidate in laboratorio per circa un terzo del monte-ore del corso.
Al di fuori delle esercitazioni guidate, gli studenti avranno libero accesso al laboratorio per ulteriori esercitazioni individuali, ma potranno pure installare il software di simulazione direttamente sui loro laptops, dando così ad essi maggior flessibilità nella preparazione. Modalità di verifica dell'apprendimento
- L'obiettivo della prova di esame consiste nel verificare il livello di raggiungimento dei seguenti obiettivi formativi:
- (abilità) modellazione di architetture mediante linguaggi di descrizione dell'hardware basati sul C/C++.
- (conoscenza e abilità) metodologie di progettazione e sintesi, sia front-end che back-end.
- (conoscenza) tecniche di interconnessione a livello sistema: protocolli, topologie, micro-architettura.
- (conoscenza) problematiche fondamentali dell'elaborazione parallela.
L'esame è diviso in 2 parti, che hanno luogo in giorni potenzialmente diversi per agevolare lo studente e la sua organizzazione dello studio:
1) Consegna della relazione e del codice sorgente di un progetto assegnato che prevede
la modellazione e simulazione di un blocco architetturale, e discussione dell'elaborato
in presenza del docente. Questa parte rappresenta il punto culminante delle lezioni di laboratorio del corso, e mira a verificare la conoscenza delle tecniche
di modellazione e simulazione basate sui linguaggi HDL (SystemC in particolare).
Il voto massimo raggiungibile con il progetto è di 5/30. Non è previsto voto minimo:
se l'elaborato non è sufficiente, lo studente deve migliorarlo per portarlo ad un livello minimo
concordato con il docente.
2) Prova orale nella quale non verrà valutata tanto l'abilità nell'esporre qualche argomento
trattato a lezione, quanto la capacità di collegare e confrontare aspetti diversi trattati durante
il corso. L'orale si compone di tre domande, che spaziano sui contenuti del corso, ed includono
le metodologie di progettazione, le tecniche di interconnessione e le architetture di elaborazione parallele.
Il voto massimo è di 25/30.
Le due parti dell'esame sono indipendenti, nel senso che la prima parte può essere superata
prima della seconda o viceversa. Testi di riferimento
- Il corso ha un approccio interdisciplinare all'ambito delle architetture dei system-on-chip, e tratta anche argomenti alla frontiera della ricerca industriale. Per questo motivo, si indicano testi di riferimento la cui consultazione è utile per parti specifiche del corso, di volta in volta indicate a lezione, ma che non hanno carattere esaustivo, bensì rafforzativo dell'apprendimento.
1. Digital Integrated Circuits - A Design Perspective (second edition), J.M.Rabaey, A.Chandrakasan, B.Nikolic, Prentice Hall
2. Computer Organization and Design: The Hardware/Software Interface, Third Edition
(The Morgan Kaufmann Series in Computer Architecture and Design), David A. Patterson, John L. Hennessy (Paperback - August 2, 2004)
3. Design of High Performance Microprocessor Circuits, A.Chandrakasan, W.J.Bowhill, F.Fox, IEEE Press, 2001.
4. Principles and Practices of Interconnection Networks
(The Morgan Kaufmann Series in Computer Architecture and Design) William James Dally, Brian Patrick Towles Morgan Kaufmann, 2004
5. System Design with SystemC, T.Groetker, S.Liao, G.Martin, S.Swan Kluwer Academic Publishers 2002
6. Designing Network On-Chip Architectures in the Nanoscale Era, J.Flich & D.Bertozzi, CRC Press, 2011.
Le slides proiettate a lezione ed il materiale necessario per le esercitazioni di laboratorio sono resi disponibili sul sito web del corso.