Libro di testo:
[ITA] D. A. Patterson e J. L. Hennessy. “Struttura e progetto dei calcolatori”, 4a edizione (basata sulla 5a edizione USA), Zanichelli, 2015. ISBN: 9788808352026.
[EN] D. A. Patterson and J. L. Hennessy. “Computer Organization and Design, The Hardware/Software Interface”, 5th edition, Morgan Kaufmann, 10 Oct 2013. ISBN: 9780124077263.

Programma:
il set di istruzioni;
il processore;
pipelining e branch prediction;
gerarchie di memorie;
architetture multiprocessor e multicore.

Ricevimento:
Settimanalmente il lunedì alle ore 16:00, su appuntamento

Obiettivi generali:
L’obiettivo dell'insegnamento di Architettura degli elaboratori è di far comprendere i principi che sono usati per progettare i calcolatori moderni. In particolare, il corso tratta la struttura interna del microprocessore e le idee che hanno permesso la straordinaria evoluzione della potenza di calcolo negli ultimi 30 anni. come pipelining, caching, branch prediction, e multi-processing.

Obiettivi specifici:
Il corso tratta i principi di base di organizzazione del microprocessore e le nozioni di pipelining, caching, branch prediction, virtualizzazione e multi-processing. Inoltre, il corso tratta la programmazione assembly.

Conoscenza e comprensione:
Lo studente acquisirà conoscenza sull’organizzazione del microprocessore MIPS, come implementazione delle idee generali che fanno parte degli obbiettivi del corso. Inoltre, lo studente acquisirà conoscenza su come si strutturano i programmi in assembly, incluse le strutture dati, i paradigmi standard di programmazione e la ricorsione.

Applicazione di conoscenza e comprensione:
Le conoscenze sono applicate sulla architettura MIPS, comprese in modo tale da poter capire le implicazioni delle scelte di programmazione sulla performance dei programmi su hardware specifico. Questa risultato è ottenuto tramite esercizi di programmazione e di valutazione delle prestazioni.

Autonomia di giudizio:
Lo studente sarà in grado di comprendere le problematiche relative alle prestazioni del software su hardware specifico e di valutarne autonomamente le caratteristiche.

Abilità comunicative:
Il corso non si propone espliciti obiettivi sulle capacità comunicative, eccetto di formare all'esposizione rigorosa degli argomenti tecnici.

Capacità di apprendimento successivo:
Il corso pone le basi per la comprensione dei moduli dell'insegnamento di Sistemi operativi e di tutti i corsi di programmazione, inclusa la programmazione di sistemi paralleli.