Informazioni sul corso

Obiettivi formativi

Il corso vuole fornire agli studenti le nozioni di base sull'organizzazione e l'architettura dei sistemi di calcolo, singolo processore e paralleli, siano essi sistemi "general purpose" che dedicati alla risoluzione di specifici task computazionali con riferimento particolare a selezionate applicazioni scientifiche d'interesse della fisica computazionale.

Si prefigge inoltre di fornire la conoscenza di base di strumenti e linguaggi (VHDL) necessari alla progettazione dell'hardware dei moderni sistemi di elaborazione.

Programma tentativo

- Introduzione ai calcolatori elettronici. Struttura hardware, firmware e software del calcolatore, misura di prestazioni

- I linguaggi dei calcolatori: linguaggi assembler, linguaggi macchina, rappresentazione intera ed istruzioni

- L’aritmetica dei calcolatori: principali operazioni aritmetiche e logiche. Numeri interi e floating point.

- Fondamenti di progettazione logica e uso di linguaggi di descrizione circuitale: gates, tavole della verita' e equazioni logico-booleane; logica combinatoria e sequenziale, macchine a stati finiti. Introduzione al VHDL

- Architettura del processore: Unità funzionali, registri, unità di controllo, microprogrammazione; unità di elaborazione; pipelining, gestione eccezioni

- La gerarchia delle memorie: introduzione alle caches, memorie virtuali

- Cenni su architettura dei Sistemi multicore, multiprocessori e cluster: elaborazione parallela, classificazione, cenni descrittivi su architetture di calcolo moderne ad alte prestazioni (GPU) e reti per sistemi multiprocessore

Testi di riferimento

Patterson D.A., Hennessy J.L. Computer Organization and Design: The Hardware/Software Interface, Fourth Edition. Morgan Kaufmann Publishers, Inc. 2012. Quarta edizione.

Altro materiale didattico fornito dal docente a lezione