Course description |
Il Corso di Architettura dei sistemi di elaborazione permette di comprendere, in maniera approfondita, il funzionamento di varie tipologie di sistemi di elaborazione e dei sottosistemi che lo compongono. In questo corso verranno analizzati nel dettaglio i sistemi di memoria e le gerarchie ad esse associate, verranno spiegati nel dettaglio il parallelismo, sia a livello di istruzioni che a livello di dati ed i sistemi per l’implementazione delle operazioni aritmetiche all’interno di un moderno sistema di elaborazione.
dei sistemi di elaborazione basati su microprocessore, già introdotti nei corsi della laurea di primo livello. Il
corso analizzerà le componenti di un sistema di elaborazione: dall’architettura interna dei microprocessori,
alla memoria, ai bus di sistema, alla gestione dei principali periferici, con particolare attenzione alle
architetture di calcolo massicciamente parallele ed il loro impiego per calcolo ad elevate prestazioni. |
Prerequisites |
Si considerano propedeutici i contenuti del corso di elettronica e misure elettroniche, architettura dei calcolatori e progettazione dei sistemi digitali, sistemi operativi. |
Objectives |
Al termine del corso lo studente sarà in grado di comprendere stimare e misurare le prestazioni di un moderno sistema di elaborazione in modo unitario e in termini di potenza di calcolo, dissipazione di potenza, energia dissipata per compito. Lo studente saprà inoltr prendere decisioni informate per il dimensionamento delle architetture di elaborazione e memoria che soddisfino i requisiti del sistema in termini di prestazioni e dipendibilità. |
Program |
Il corso di Architettura dei sistemi di elaborazione studia nel dettaglio i moderni sistemi di elaborazione e le metriche per la valutazione delle loro prestazioni. La prima parte del corso descrive in maniera approfondita la gerarchia del sistema di memoria, in particolare analizza la struttura ed il funzionamento della cache, della memoria principale, della memoria secondaria, della memoria di terzo livello ed inoltre analizza alcuni codici per la rilevazione e la correzione degli errori. Nella seconda parte del corso vengono descritte nel dettaglio le tecniche per aumentare le prestazioni di un elaboratore, come il parallelismo a livelli di istruzioni, il multithreading, l’aritmetica di un sistema di elaborazione ed il parallelismo a livello di dati. Il corso si può dividere in 8 macroargomenti: Approccio quantitativo al Progetto e all’Analisi, Memorie ad accesso casuale (RAM), Gerarchia del Sistema di Memoria, Rilevazione e correzione d’errore, Memoria secondaria e di terzo livello, Parallelismo a Livello Istruzioni, Aritmetica di un sistema di elaborazione, Parallelismo a Livello Dati. |
Book |
Testo principale
J. L. Hennessy, D. A. Patterson, Computer organization: a quantitative approach, fifth edition, ed. Morgan Kaupmann
Testo per approfondimenti
D. A. Patterson, J. L. Hennessy, Computer organization and design: the hardware/software interface, fifth edition, ed. Morgan Kaupmann
Testo propedeutico
C. Hamacher, Z. Vranesik, S. Zaky, N. Manjikian: Computer organization and embedded systems, ed. Mc Graw Hill, 2012 |
Exercises |
Le esercitazioni si baseranno sugli 8 macroargomenti del corso |
Professor/Tutor responsible for teaching
|
Romeo Beccherelli
|
List of lessons |
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|
|
Romeo Beccherelli
|
|