Corso di Architetture degli Elaboratori per Informatica

AA. 2016-17


Modalità di verifica/esame
L'esame consiste in una prova scritta e un colloquio orale a cui si accede solo al superamento della prova scritta. E' possibile sostenere più volte la prova scritta ma ogni scritto consegnato annulla lo scritto precedente. La prova scritta consiste in un insieme di domande aperte sul programma del corso, mentre quella orale comprende alcune domande sugli aspetti di base e generali trattati nell'intero corso. E’ prevista una prova intermedia a novembre sulla prima meta’ del corso, che, se superata, permette l’esonero della prima parte della prova scritta negli appelli da Gennaio a Luglio inclusi. In questo caso il voto complessivo della prova scritta e’ calcolato come media aritmetica tra la prova scritta e quella intermedia.

Risultati Appello di Giugno
Gli orali si svolgeranno venerdi' 23 giugno alle 9.30 (aula F)
In caso di necessita' contattatemi via mail.

affinito 21
aita 19
arfanotti ins
avola 20
bonatti ins
cagnazzo ins
centanni 27
d'ascanio ins
esposito 26
tufano 19


Riferimenti bibliografici

Testo consigliato: Bucci Architettura e organizzazione dei calcolatori elettronici Fondamenti, 2009.

Parte su pipiline: Patterson Hennessy, Struttura e progetto dei calcolatori 4ed Fondamenti.

Architettura GPU


Esempio di prova intermedia

Esempio di compito di un appello passato


Lezioni frontali

Lezione 1, 161005:


Introduzione al corso. Calcolo digitale.

Lezione 2, 161007:


Storia delle architetture: ENIAC. Evoluzione architetture: Mainframe, Microprocessore, Workstation. Principali architetture (x86, motorola, arm , gpu). Evoluzione tecnologica: legge di Moore. Architetture e organizzazione. Livelli e astrazioni.

Lezione 3, 161012:


Unita' funzionali, architettura di von Neumann (CPU+memoria+i/o). Rappresentazione dell'informazione. Codifica posizionale. Base 2,8,16. Conversione base 2 in 10, 10 in 2, da 2 a 16 e vicecersa. Aritmetica binaria. Regole simboliche. Somma, moltiplicazione, shift a destra e sinistra.

Lezione 4, 161014 mattina:


Numeri negativi. Rappresentazione modulo/segno. Complemento a 9 e 10 (in base 10). Complemento a 1 e a 2. Esempio di rappresentazione a 4 bit. Esempi di somme di numeri negativi. Overflow per interi con e senza segno. Confronto rappresentazioni interi senza segno, modulo/segno, complemento a 2.

Lezione 5, 161014 pomeriggio:


Virgola fissa e mobile in base 10 e base 2. Esempi passo passo di conversione IEEE 754 Floating point singola precisione. Numeri in virgola mobile. Mantissa, esponente. Numeri normalizzati e denormalizzati, arrotondamento (cenni).

Lezione 6, 161019:


Esercizi su conversione numero decimale in float IEEE 754 (binario e esadecimale), numero intero decimale in complemento a 2 e numero in complemento a 2 in decimale. Rappresentazioni alfanumeriche (ASCII, UNICODE), BCD.

Lezione 7, 161021 mattina:


Introduzione alla logica combinatoria. Reti logiche: combinatorie e sequenziali. Algebra delle reti. Operatori AND OR e NOT. Tabelle di verita'. Espressioni logiche. Porte logiche e simboli.

Lezione 8, 161021 pomeriggio:


Proprieta' dell'algebra booleana. Circuiti logici. Paragone proprieta' dell' elettronica vs. idraulica (elettroni/acqua, corrente/flusso). Realizzazione porta NOT con transistor.

Lezione 9, 161026:


Realizzazione di AND e OR con transistor. Prima forma canonica (esempio con sintesi di porte logiche). Seconda forma canonica. Minimizzazione di circuiti. Mappe di Karnaugh. Implicanti primi.

Lezione 10, 161028 prima parte:


Esempi di minimizzazione a 3 input con e senza Don't care. Conversione da implicanti primi a termini. Casi speciali: i bordi della mappa. Reti combinatorie. Codificatore e decodificatore. Esempi di tab. di verita' e circuiti corrispondenti.

Lezione 11, 161028 seconda parte:


Multiplexer e demultiplexer. Esempi di valutazione delle reti logiche. Proprieta' mux e demux collegati in serie.

Lezione 12, 161102:


Esempio di uso MUX come selettore di tabella di verita' e conversione dati organizzati in parallelo-sequenziale. ROM: porte logiche per realizzazione. Esempio di rete logica. Accenni ad implementazione hardware. PROM, EPROM e EEPROM.

Lezione 13, 161104 mattina:


PLA: confronto con ROM e riorganizzazione del decodificatore. Esempio di PLA e funzionamento con i mintermini delle espressioni rappresentate. Controllo di parita'. Esempi. Comparatori di interi senza segno (singoli bit e estensione al caso generale). Esempio con attraversamento di un numero di porte lineare e logaritmico.

Lezione 14, 161104 pomeriggio:


Half adder, full adder. Accenno ad anticipo di riporto. Sommatore e sottrazione in complemento a 2. Esempio di controllo per realizzare ADD e SUB. Esempio di controllo overflow. Realizzazione incremento, complemento a 2.

Lezione 15, 161109:


Logica sequenziale. Esempio Flip. Latch NOR. Esempio con tabella di verita' e mappe di Karnaugh. Diagramma temporale con ritardi delle porte. Flip flop asincrono (Set-Reset). Reti sincrone. Flip flop con clock level triggered.

Lezione 16, 161111 mattina:


FFSR edge triggered. FFJK ed esempi. Registri con FFSR. Contatori (con FFJK).

Lezione 17, 161111 pomeriggio:


Introduzione memorie. Indirizzamento e allineamento. SRAM e DRAM. Banchi di memoria. Memoria secondaria, cache. Principio di localita'. Gerarchia di memorie.

Lezione 18, 161116:


Esecuzione programma a basso livello. Registri del processore (PC, IR). Fasi di esecuzione: Fetch, execute e aggiornamento PC. Stack, push e pop. Interrupt: meccanismo e tipi.

Lezione 19, 161118:


RISC vs CISC. Unita' di controllo e operativa. Registri cpu. Schema di funzionamento dettagliato del ciclo di esecuzione (fetch, esecuzione e PC+1)

Prova intermedia 161123:


Lezione 20, 161130:


Realizzazione UC con logica cablata. Microprogrammazione. Microprogrammazione: microistruzioni e organizzazione memoria di controllo e microPC. Panoramica storica.

Lezione 21, 161202:


Prestazioni CPU. Indici Tempo di CPU, Speedup. Legge di Amdahl. Indici MIPS, MFLOPS, Benchmarks. Sistema di I/O. Interfacce. Organizzazione I/O mapped e memory mapped. Sincronizzazione dispositivi di I/O. Controllo di programma, protocollo di handshaking.

Lezione 22, 161207:


Interrupt, vettore interrupt, controller interrupt e daisy chaining. DMA e controller. Architettura x86: dettagli sui registri. Segmentazione nell' 8086.

Lezione 23, 161214:


Famiglie di istruzioni assembly. Ambiente di emulazione Turbo Debugger (linux e windows). Esercitazione guidata con l'emulatore. Pipeline: esempio a 5 stadi di esecuzione (IR,ID,EX,RAM,WB).

Lezione 24, 161216 (3 ore):


Criticita' strutturale e sui dati. Soluzione con stallo, propagazione/bypass. Criticita' di controllo. Soluzioni con predizione di salto. Riepilogo con dataflow di pipeline.

Lezione 25, 161221:


Architetture parallele. Introduzione. SISD, SIMD, MIMD. UMA, NUMA. Architettura Multicore. Accenni ai cluster.

Lezione 26, 170118:


Architetture schede video GPU. Thread, SIMT, memorie, esempio di calcolo parallelo su SIMD e GPU.

Lezione 27, 170120:


Esercitazione assistita.