Docente/i:
Marco Ferretti
Denominazione del corso: Advanced computer architecture
Codice del corso: 504712
Corso di laurea: Computer Engeneering
Sede: Pavia
Settore scientifico disciplinare: ING-INF/05
L'insegnamento è caratterizzante per: Computer Engeneering
Crediti formativi: CFU 6
Sito web del corso: www.unipv.it/mferretti
Obiettivi formativi specifici
Il corso descrive l’architettura dei moderni processori e multi-processori ed introduce i principi della programmazione parallela. Lo studente sarà in grado di comprendere il principio di funzionamento dei processori recenti e di valutare le caratteristiche distintive dei processori “generla purpose” e di quelli per le applicazioni “embedded”. In particolare verrà illustrato il paradigma multi-core, l’architettrua a memoria condivisa, che sono anche la piattaforma di riferimento per il progetto di programmazione parallela condotto secondo lo standard OpenMP.
Programma del corso
Il processore: aspetti generali
- Caratterizzazione del set di istruzioni (ISA);
- Classificazione delle architetture: CISC, RISC, general purpose, embedded, estensioni per la multimedialità.
Il processore RISC: tecniche realizzative
- CPU RISC: la pipeline semplice;
- Il controllo nella pipeline semplice;
- Le superpipeline e la gestione di più unità;
- Superscalarità;
- Schedulazione dinamica ed esecuzione speculativa;
Gestione della memoria
Le cache: principio di località. Organizzazione e dimensionamento. Strutture associative a più vie. Applicazioni multimediali e lo streaming buffer.
Architetture non standard
- I processori embedded.
- Video processor; media processor.
- L’approccio VLIW.
- Estensioni multimediali nei processori general purpose (MMX-SSE...).
Ottimizzazione delle applicazioni
Lo sviluppo di applicazioni efficienti (codice compatto, codice veloce) è un obiettivo molto importante soprattutto quando l'architettura di riferimento è quella dei processori embedded. L'utilizzo dei compilatori ottimizzanti da solo non garantisce di ottenere le migliori prestazioni; la codifica rimane uno degli strumenti principali. Con una serie di seminari in aula tenuti in collaborazione di esperti di aziende leader nel settore, si illustraenno le tecniche di ottimizzazione per processori della classe VLIW, su semplici esempi di applicazioni multimediali. Il linguaggio di riferimento è il C language.
Prerequisiti
La conoscenza dell’architettura di base di un elaboratore e dell’interazione fra architettura e sistema operativo. Conoscenza di base di un linguaggio assembler. Capacità di programmare in C-language.
Tipologia delle attività formative
Lezioni (ore/anno in aula): 45
Esercitazioni (ore/anno in aula): 16
Attività pratiche (ore/anno in aula): 0
Materiale didattico consigliato
J. L. Hennessy & D. A. Patterson . Computer Architecture: A Quantitative Approach, 3rd - 4rth and 5th editions. Elsevier - Morgan Kauffmann. Si consulti il sito del corso per un elenco dei capitoli e dei paragrafi.
D. A. Patterson & J. L. Hennessey. Computer Organization and Design: The Hardware/Software Interface,Revised 4th Edition. Morgan Kauffman. Si consulti il sito del corso per un elenco dei capitoli e dei paragrafi.
M. Ferretti, D. Gunetti. Chart del corso (in inglese). Disponibili sul sito del corso.
Modalità di verifica dell'apprendimento
Una prova scritta, un progetto sw e una discussione del progetto (è possibile anche una prova orale).
|