ADVANCED COMPUTER ARCHITECTURES

ING-INF/05 - 6 CFU - 2° semestre

Docente titolare dell'insegnamento

GIUSEPPE ASCIA


Obiettivi formativi

L’insegnamento ha l’obiettivo di fornire i concetti relativi alle architetture avanzate nei moderni sistemi di elaborazione dell’informazione.

Partendo dalle architetture di base, il corso affronta le problematiche e le soluzioni relative all’esecuzione di applicazioni e presenta le metodologie hardware e software per l’ottimizzazione delle prestazioni per le diverse forme di parallelismo (instruction-level, data-level, thread-level).

Conoscenza e capacità di comprensione

Lo studente conoscerà e comprenderà:

-le tecniche per l’esecuzione ottimale delle applicazioni nei processori pipeline con istruzioni floating point

-le problematiche e le soluzioni relative alle eccezioni nei processori pipeline.

-le tecniche di branch prediction

-le problematiche e le soluzioni relative alla schedulazione statica e dinamica delle istruzioni

-le architetture dei processori che sfruttano forme di data level parallelism

-le diverse forme di thread-level parallelism e le relative implementazioni

-le architetture multiprocessori

-le problematiche e le soluzioni per la coerenza delle memorie cache in sistemi multiprocessori

Conoscenze applicate e capacità di comprensione

Lo studente sarà in grado di valutare le prestazioni dei moderni sistemi a microprocessore, per sfruttare al meglio le diverse forme di parallelismo delle applicazioni in relazione alle caratteristiche delle diverse architetture e per proporre eventuali ottimizzazioni.

Autonomia di giudizio

Lo studente sarà in grado di valutare l'impatto delle scelte architetturali sulle prestazioni dei calcolatori.

Abilità comunicative

Lo studente sarà in grado di esporre in modo chiaro e rigoroso le conoscenze acquisite e come applicarle per la valutazione delle diverse scelte architetturali.

Capacità di apprendere

Lo studente sarà in grado di apprendere autonomamente ulteriori caratteristiche avanzate delle architetture dei processori


Modalità di svolgimento dell'insegnamento

L'insegnamento verra svolto utilizzando lezioni frontali ed esercitazioni.

Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.


Prerequisiti richiesti

Conoscenza delle architetture dei calcolatori base e le relative problematiche, i linguaggi assembly



Frequenza lezioni

La frequenza non è obbligatoria, ma è fortemente consigliata.



Contenuti del corso

1. Architettura di base

* Organizzazione pipeline dei processori (problematiche e soluzioni, implementazione).

* Branch prediction.

* Eccezioni nella pipeline.

2. Parallelismo a livello di Istruzione

* Scheduling statico e dinamico.

* Speculazione Hardware, Esecuzione Multi-issue. Architetture superscalari: principi e problemi.

* Architetture VLIW (Very Long Instruction Word), esempi di famiglie di architetture

3. Parallelismo a livello di dati

Processori vettoriali.

Estensioni SIMD;

4. Sistemi multiprocessore e parallelismo a livello di thread

* Tassonomia, topologie, gestione della comunicazione nei sistemi multiprocessore.

* Gestione della memoria.

* I protocolli di coerenza della cache.

5. Architetture Application Specific

_____________________________________________________________

* 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.



Testi di riferimento

[T1] Hennessy & Patterson: Computer architecture, a quantitative approach (Morgan Kaufmann eds.) 5 ed.

[T2] Patterson & Hennessy: “Struttura e progetto dei calcolatori”. Zanichelli 4. Ed

[T3] Materiale fornito dal docente


Altro materiale didattico

E’ possibile scaricare tutto il materiale didattico in formato elettronico all’indirizzo http://studium.unict.it



Programmazione del corso

 ArgomentiRiferimenti testi
1Organizzazione pipeline: problematiche e soluzioni. Esecuzione Pipeline di istruzioni Floating PointT1 Appendix C, T2 Capitolo 4 
2Tecniche di branch prediction statiche e dinamicheT1 Capitolo 3 
3Gestione delle eccezioni nella pipelineT1 Appendix C, T2 Capitolo 4 
4Data dependence e control dependence. Schedulazione static e dinamica delle istruzioniT1 Capitolo 3 
5Schedulazione dinamica mediante ScoreboardT1 Capitolo 3 
6Schedulazione dinamica mediante algoritmo di TomasuloT1 Capitolo 3 
7Esecuzione speculativa e Reorder BufferT1 Capitolo 3 
8Architetture superscalari: multi-issue con schedulazione statica e dinamicaT1 Capitolo 3 
9Architetture VLIW (Very Long Instruction Word): schedulazione statica delle istruzioniT1 Appendix H 
10Architetture VLIW: codifica delle istruzioniT1 Appendix H 
11Architettura VLIW: Tecniche per incrementare il livello di parallelismo delle istruzioniT1 Appendix H 
12Processori vettorialiT1 Capitolo 4 
13Estensioni SIMDT1 Capitolo 4 
14Architetture in grado di supportare il parallelismo a livello di threadT1 Capitolo 5 
15MultiprocessoriT1 Capitolo 5 
16Gestione della memoriaT1 Capitolo 5 
17I protocolli di coerenza della cacheT1 Capitolo 5 
18Architetture Application SpecificT3 


Verifica dell'apprendimento


MODALITÀ DI VERIFICA DELL'APPRENDIMENTO

Gli studenti devono svolgere una prova orale.

La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.


ESEMPI DI DOMANDE E/O ESERCIZI FREQUENTI

E’ possibile scaricare esempi di domande e/o esercizi all’indirizzo http://studium.unict.it




Apri in formato Pdf English version