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