Corso di Architetture degli Elaboratori per Informatica

AA. 2015-16


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

Testo alternativo: Patterson Hennessy, Struttura e progetto dei calcolatori 4ed Fondamenti.

Architettura GPU

Risultati appello 16/9/16, ammessi all'orale.
Per l'orale (con voto non INS) vi potete presentare giovedi' 22 dalle 10.00 alle 13.00 (aula E).
Per esigenze particolari, contattatemi per mail.

Camaiora 29
Dallaglio 21
Girardi 25
Siciliano INS

Esempio di compito di un appello passato


Lezioni frontali

Lezione 1, 151001:


Introduzione al corso. Calcolo digitale. Storia delle architetture: ENIAC.

Lezione 2, 151002:


Evoluzione architetture: Mainframe, Microprocessore, Workstation. Principali architetture (x86, motorola, arm , gpu). Evoluzione tecnologica: legge di Moore. Architetture e organizzazione. Livelli e astrazioni. Unita' funzionali, architettura di von Neumann (CPU+memoria+i/o). Rappresentazione dell'informazione.

Lezione 3, 151008:


Codifica posizionale. Base 2,8,16. Conversione base 2 in 10, 10 in 2, da 2 a 8,16 e vicecersa. Aritmetica binaria. Regole simboliche. Somma, moltiplicazione, shift a destra e sinistra. Esercizi.

Lezione 4, 151009:


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, 151013:


Esercizi sulla rappresentazione in base 2 e numeri in complemento a 2

Lezione 6, 151015:


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. Standard IEEE 754, precisione singola. Numeri normalizzati e denormalizzati (cenni).

Lezione 7, 151022:


IEEE 754: Arrotondamento, overflow e underflow. Esempio di conversione da numero decimale a floating point in HEX. Rappresentazioni alfanumeriche (ASCII, UNICODE), BCD. Introduzione alla logica combinatoria.

Lezione 8, 151023:


Reti logiche: combinatorie e sequenziali. Algebra delle reti. Operatori AND OR e NOT. Tabelle di verita'. Espressioni logiche. Porte logiche e simboli. Proprieta' dell'algebra booleana. Circuiti logici. Diodi, realizzazione di AND e OR con diodi.

Lezione 9, 151029:


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

Lezione 10, 151105:


Esempi di minimizzazione a 3 input con e senza Don't care. Algoritmo di Quine-McCluskey accenni. Reti combinatorie. Codificatore e decodificatore. Esempi di tab. di verita' e circuiti. Multiplexer e demultiplexer. Esempio di uso MUX come selettore di tabella di verita' e conversione parallelo-sequenziale. ROM: porte logiche per realizzazione.

Lezione 11, 151106:


Ripasso ROM. PROM, EPROM e EEPROM. Controllo di parita'. Comparatori di interi senza segno (singoli bit e estensione al caso generale). Half adder, full adder. Accenno ad anticipo di riporto.

Lezione 12, 151112:


Sommatore e sottrazione in complemento a 2. Logica sequenziale. Esempio Flip. Latch NOR. Esempio con tabella di verita' e mappe di Karnaugh. Diagramma temporale con ritardi delle porte.

Lezione 13, 151113:


Flip flop asincrono (Set-Reset). Reti sincrone. Flip flop con clock level triggered. FFSR edge triggered. FFJK. Contatori (con FFJK).

Lezione 14, 151119:


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

Lezione 15, 151120:


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.

Prova intermedia 151127:


Lezione 16, 151203:


Interrupt: meccanismo e tipi. RISC vs CISC. Unita' di controllo e operativa. Registri cpu. Schema di funzionamento dettagliato del ciclo di esecuzione. Realizzazione UC con logica cablata. Microprogrammazione.

Lezione 17, 151204:


Microprogrammazione: microistruzioni e organizzazione memoria di controllo e microPC. Panoramica storica. Prestazioni CPU. Indici Tempo di CPU, Speedup. Legge di Amdahl. Indici MIPS, MFLOPS, Benchmarks.

Lezione 18, 151210:


Sistema di I/O. Interfacce. Organizzazione I/O mapped e memory mapped. Sincronizzazione dispositivi di I/O. Controllo di programma, protocollo di handshaking. Interrupt, vettore interrupt, controller interrupt e daisy chaining. DMA e controller.

Lezione 19, 151211:


Architettura x86: dettagli sui registri. Segmentazione nell' 8086. Famiglie di istruzioni assembly. Ambiente di emulazione Turbo Debugger (linux e windows). Esercitazione guidata con l'emulatore.

Lezione 20, 151217:


Pipeline: esempio a 5 stadi di esecuzione (IR,ID,EX,RAM,WB). Criticita' strutturale e sui dati. Soluzione con stallo, propagazione/bypass.

Lezione 21, 151218:


Pipeline: Criticita' di controllo. Soluzioni con predizione di salto. Riepilogo con dataflow di pipeline.

Lezione 22, 160114:


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

Lezione 23, 160115:


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

Lezione 24, 160121:


Esercitazione assistita.

Lezione 25, 160122:


Esercitazione assistita.