ADVANCED COMPUTER ARCHITECTURES

Anno accademico 2019/2020 - 1° anno
Docente: Giuseppe ASCIA
Crediti: 6
SSD: ING-INF/05 - Sistemi di elaborazione delle informazioni
Organizzazione didattica: 150 ore d'impegno totale, 100 di studio individuale, 35 di lezione frontale, 15 di esercitazione
Semestre:
ENGLISH VERSION

Obiettivi formativi

Obiettivi del corso sono la comprensione da parte dello studente dei concetti alla base delle architetture avanzate dei microprocessori, la conoscenza delle problematiche e delle soluzioni relative all’esecuzione di applicazioni, la conoscenza delle metodologie hardware e software per l’ottimizzazione delle prestazioni. la comprensione degli ambiti di applicazione delle diverse forme di parallelismo (instruction-level, data-level, thread-level) .

Le conoscenze acquisite dallo studente sono utilizzate per la valutazione delle 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.


Modalità di svolgimento dell'insegnamento

L'insegnamento verra svolto utilizzando lezioni frontali ed esercitazioni.


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.

* La gerarchia di memoria e la sua implementazione.

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;

Processori grafici, GPGPU

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.

_____________________________________________________________

* 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



Programmazione del corso

 ArgomentiRiferimenti testi
1Organizzazione pipeline: problematiche e soluzioni, Implementazione del controllo e del datapathT1 Appendix C, T2 Capitolo 4 
2Tecniche di branch prediction statiche e dinamicheT1 Capitolo 3 
3Gestione delle eccezioni nella pipelineT1 Appendix C, T2 Capitolo 4 
4Gerachia di memoria per sistemi single core: problematiche, soluzioni e relativa implementazioneT2 Capitolo 5 
5Valutazione delle prestazioni e loro ottimizzazione: processore e la memoriaT1 Capitolo 1, T2 Capitolo 1 
6Data dependence e control dependence. Schedulazione static e dinamica delle istruzioniT1 Capitolo 3 
7Schedulazione dinamica mediante ScoreboardT1 Capitolo 3 
8Algoritmo di TomasuloT1 Capitolo 3 
9Esecuzione speculativa e Reorder BufferT1 Capitolo 3 
10Architetture superscalari: multi-issue con schedulazione statica e dinamicaT1 Capitolo 3 
11Architetture VLIW (Very Long Instruction Word): schedulazione statica delle istruzioniT1 Appendix H 
12Architetture VLIW: codifica delle istruzioniT1 Appendix H 
13Architettura VLIW: Tecniche per incrementare il livello di parallelismo delle istruzioniT1 Appendix H 
14Processori vettorialiT1 Capitolo 4 
15Estensioni SIMDT1 Capitolo 4 
16Processori grafici, GPGPUT1 Capitolo 4 
17Architetture in grado di supportare il parallelismo a livello di threadT1 Capitolo 5 
18Gestione della comunicazioneT1 Capitolo 5 
19Gestione della memoriaT1 Capitolo 5 
20I protocolli di coerenza della cacheT1 Capitolo 5 

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

Gli studenti devono svolgere una prova orale.


Esempi di domande e/o esercizi frequenti

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