Obiettivi formativi
Il corso presenta una rassegna delle caratteristiche delle architetture avanzate
di sistemi a microprocessore, con particolare enfasi sugli aspetti riguardanti
le esigenze dei moderni sistemi multimediali, quali prestazioni, vincoli
di tempo reale e consumo di potenza. Il corso prevede esercitazioni in laboratorio
nelle quali alcuni aspetti teorici verranno valutati su simulatori software
di architetture a microprocessore di diversa natura.
Attività formative
Il corso viene svolto in circa 50 ore di lezioni ed esercitazioni di laboratorio.
Programma del corso
- Introduzione: Cenni storici, trend tecnologici ed impatto sulle
architetture. Tassonomia delle architetture a microprocessore.
- Analisi delle prestazioni: metriche basate su numero
di istruzioni. Benchmark (SPECInt, SPECfp). Calcolo di prestazioni in base
a benchmark. Legge di Amhdal.
- Progetto dell'unita' di controllo: Esecuzione in pipeline. Conflitti. Gestione dei salti. Interruzioni
ed eccezioni. Esecuzione fuori ordine.Predizione dei salti. Meccanismi di
prenotazione.
- Progetto della gerarchia di memoria: Livelli
di gerarchia. La memoria cache. Metodi di mapping. Algoritmi di rimpiazzamento.
Coerenza della cache. Prestazioni. Relazione
con sistemi che supportano la memoria virtuale. Paginazione e segmentazione.
- Architetture multiprocessore: Condizioni per l'innesco di un
deadlock. Rappresentazione dello stato di un sistema con grafi di allocazione.
Tecniche di deadlock prevention. Deadlock avoidance. Algoritmo del banchiere.
Deadlock detection e recovery.
- Sistemi embedded: Definizione e problematiche tipiche di sistemi
embedded. Implicazioni architetturali. Differenze rispetto a sistemi general-purpose.
- Consumo di potenza: Modello del consumo di potenza. Tecniche
per l'ottimizzazione del consumo a livello architetturale: gerarchia della
memoria, progetto delle interfacce, rappresentazione dei dati.
- Architetture di DSP: Caratteristiche e differenze rispetto
ad architetture tradizionali. Separazione dello spazio dei dati e del codice.
Utilizzo di hardware dedicato nell'unita' di controllo
- Il futuro dell architetture: Architetture IRAM. Architetture
basate su logica programmabile. Architetture per sistemi su chip: Network
on chip.