INFORMAZIONI SU

Architettura degli elaboratori e laboratorio

Programma dell'insegnamento - Corso di laurea in Informatica

Docente

  • Prof. Pietro Di Gianantonio

Indirizzo e-mail
pietro.digianantonio@uniud.it

Indirizzo Pagina Web Personale
Sito Web http://www.dimi.uniud.it/pietro

Crediti

12 CFU

Finalità

Il corso ha lo scopo di illustrare la struttura e il funzionamento di un computer nelle sue diverse componenti. Il percorso didattico inizia con lo studio delle parti elementari che costituiscono un calcolatore e considera componenti sempre più complesse fino ad arrivare allo studio di architetture complete.
Argomenti trattati nel corso sono anche la programmazione in linguaggio assembly e le tecniche di progettazione di semplici circuiti digitali.

Programma

- Introduzione: prospettiva storica sulle architetture degli elaboratori, concetti base, livelli d’astrazione nell'analisi di un'architettura.
- Reti logiche: porte logiche elementari, algebre booleane, circuiti combinatori d'uso frequente, progettazione circuiti sequenziali, chip di memoria.
- Rappresentazione delle informazioni: sistema di numerazione binario, conversione tra basi, rappresentazione di numeri interi e reali, rappresentazione di caratteri, codici di rilevamento errori.
- Processore: ciclo di fetch-decode-execute, data path, unità di controllo, presentazione dettagliata di un semplice microprocessore, pipeline, processori superscalari, predizione di salto, esecuzione fuori ordine, Intel Core.
- Linguaggio Macchina: Evoluzione dei linguaggi macchina, tipi di dati, indirizzamento, tipi d’istruzioni, formati istruzioni,
- Input/Output: programmed I/O, interrupt, DMA, dispositivi periferici, collegamenti mediante bus, meccanismi d’arbitraggio e sincronizzazione del bus, architettura di un tipico PC, bus PCI, SCSI, USB, dischi magnetici, RAID, dischi ottici.
- Gerarchie di Memoria: meccanismi di funzionamento della memoria cache e della memoria virtuale, paginazione e segmentazione, MMU.
- Architetture ad elaborazione parallela: tipologie di calcolatori paralleli, multiprocessori e multicomputer, Interconnessione fra processori, cache coherence, architetture UMA, NUMA, COW  e MPP.
- Programmazione assembly. Architettura ARM.  Istruzioni ARM: assegnamento, salto, aritmetiche-logiche. Modalità d’indirizzamento, chiamate di funzione, direttive all'assemblatore.

Attività di Laboratorio

Durante il corso verranno svolte 36 ore di laboratorio, dove verrà approfondita la progettazione di circuiti digitali e la programmazione in linguaggio assembly.

Prerequisiti

Per seguire il corso non sono necessari particolari prerequisiti.

Modalità d'esame

L'esame si compone di una prova scritta, di una prova di laboratorio, e di una prova orale.
L'esame scritto prevede lo svolgimento di una serie di esercizi e la risposta ad una serie di domande aperte (non a risposta multipla).
La prova di laboratorio consiste nella discussione degli esercizi svolti, durante l'anno, nelle ore di laboratorio.
La prova orale, obbligatoria per tutti, solitamente consiste in alcune domande sugli argomenti trattati a lezione.

Testo adottato

Andrew S. Tanenbaum. Architettura dei calcolatori, un approccio strutturale (sesta edizione). Pearson, 2013.