PROGETTAZIONE DEI SISTEMI DI ELABORAZIONE

Obiettivi formativi:

Questo insegnamento ha lo scopo di illustrare le tecniche e i criteri di progettazione e dimensionamento di sistemi di elaborazione a microprocessore, con particolare riferimento alle conoscenze necessarie per confrontare diversi microprocessori, diverse architetture di memoria, diverse periferiche e diversi schemi di comunicazione tra i componenti del sistema, e per comprendere i concetti di microarchitettura e instruction set e la relazione tra linguaggio macchina e linguaggi ad alto livello.

Settore scientifico-disciplinare:

ING-INF/05.

Crediti:

8.

Modulo:

Unico.

Durata:

Semestrale (primo periodo), 72 ore (56 di lezione frontale + 16 di esercitazione guidata).

Frequenza:

Non sono previsti obblighi di frequenza.

Docente:

Prof. Alessandro Bogliolo.

Programma:

01. Introduzione:
      01.01 Contesto: tendenze tecnologiche e tendenze di mercato.
      01.02 Parametri di progetto di un sistema di elaborazione.
      01.03 Spazio di progetto e curve di Pareto.
      01.04 Stime di parametri e benchmark.
      01.05 Elementi di un sistema a microprocessore.

02. Il microprocessore:
      02.01 Il microprocessore come componente di un sistema.
      02.02 Specifica funzionale: il repertorio delle istruzioni.
      02.03 Specifiche parametriche: prestazioni, consumo.
      02.04 Ottimizzazioni dinamiche: out-of-order execution, speculazione.
      02.05 Laboratorio: Sviluppo di microbenchmark per la caratterizzazione della microarchitettura.

03. La gerarchia di memoria:
      03.01 Politiche di gestione della gerarchia di memoria.
      03.02 Strategie per aumentare le prestazioni della cache.
      03.03 Strategie per aumentare la larghezza di banda della memoria principale.
      03.04 Memoria virtuale.
      03.05 Laboratorio: Sviluppo di microbenchmark per la caratterizzazione della gerarchia di memoria.

04. Sistemi multiprocessore:
      04.01 Tassonomia: memoria condivisa vs. memoria distribuita.
      04.02 Comunicazione.
      04.03 Consistenza e coerenza delle cache.
      04.04 Sincronizzazione.

05. Memoria di massa e I/O:
      05.01 Dispositivi di memoria di massa.
      05.02 Prestazioni e affidabilità.
      05.03 Ridondanza: RAID.
      05.04 Dispotivi di memoria non volatile.
      05.05 Dispositivi di I/O.

06. Tecniche di codifica per l'ottimizzazione di metriche di progetto:
      06.01 Classificazione.
      06.02 Codici a rivelazione d'errore.
      06.03 Codici a correzione d'errore.
      06.04 Codici a basso consumo.
      06.05 Tecniche di compressione.

07. Sistemi a basso consumo di potenza:
      07.01 Tecniche di riduzione del consumo di potenza.
      07.02 Dynamic power management.
      07.03 Energy scavenging.

Testi di riferimento:

  • Hennessy, Patterson, "Computer Architecture: A Quantitative Approach", Morgan Kaufmann, 2001
          (Hennessy, Patterson, "Architettura dei Computer: Un Approccio Quantitativo", Jackson Libri, 2001).
  • Propedeuticità:

    Architettura degli Elaboratori, Probabilità e Statistica Matematica.

    Modalità didattiche:

    Lezioni frontali ed esercitazioni di laboratorio.

    Modalità di accertamento:

    Prova scritta, tesina individuale e prova orale.

    Commissione d'esame:

    Prof. Alessandro Bogliolo e Prof. Alberto Carini (supplente: Ing. Valerio Freschi).

    Note:

    Il progetto individuale e la prova scritta possono essere sostenuti in qualsiasi ordine, sono valutati in trentesimi, sono ritenuti sufficienti se i relativi voti sono non inferiori a 18 e restano validi per tutti gli appelli dell'anno accademico in cui vengono presentati o sostenuti.
    La media dei voti dello scritto e del progetto costituisce la base per il voto finale, che può essere modificato di 5 punti (in più o in meno) sostenendo una prova orale, opzionale.
    Se uno studente decide di ripetere la prova scritta, l'ultimo voto conseguito (anche se negativo) annulla i precedenti.

    Ultima modifica: 08/07/2009 Approvato da: Presidente CCdL