Corso di Architetture degli Elaboratori per Informatica

AA. 2014-15


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

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

Architettura GPU

Prova intermedia Novembre 2014


Lezioni frontali

Lezione 1, 141001:


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

Lezione 2, 141003:


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

Lezione 3, 141008:


Livelli e astrazioni. 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 8,16 e vicecersa.

Lezione 4, 141010:


Aritmetica binaria. Regole simboliche. Somma, moltiplicazione, shift a destra e sinistra. Esercizi. Numeri negativi. Rappresentazione modulo/segno. Complemento a 9 e 10 (in base 10).

Lezione 5, 141015:


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 6, 141017:


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. Arrotondamento, overflow e underflow.

Lezione 7, 141022:


Esempio di conversione da numero decimale a floating point in HEX. Rappresentazioni alfanumeriche (ASCII, UNICODE), BCD. Introduzione alla logica combinatoria.

Lezione 8, 141024:


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

Lezione 9, 141029:


Realizzazione NOT con transistor. Porte logiche e simboli. Proprieta' dell'algebra booleana. Prima forma canonica (esempio con sintesi di porte logiche).

Lezione 10, 141031:


Seconda forma canonica. Minimizzazione di circuiti. Mappe di Karnaugh. Implicanti primi. Esempi a 3 input.

Lezione 11, 141105:


Algoritmo di Quine-McCluskey accenni. Tabelle con Don't care e mappe di Karnaugh. 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.

Lezione 12, 141107:


ROM: porte logiche per realizzazione. PROM, EPROM e EEPROM. Controllo di parita'. Comparatori di interi senza segno. Half adder, full adder. Accenno ad anticipo di riporto. Sommatore e sottrazione in complemento a 2.

Lezione 13, 141112:


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).

Lezione 14, 141114:


Reti sincrone. Flip flop con clock level triggered. FFSR edge triggered. FFJK. Registri. Contatori (con FFJK). Introduzione memorie. Indirizzamento e allineamento. SRAM e DRAM.

Lezione 15, 141119:


Banchi di memoria. Memoria secondaria, cache. Principio di localita'. Gerarchia di memorie. Esecuzione programma a basso livello. Registri del processore (PC, IR). Fasi di esecuzione: Fetch, decode, execute.

Lezione 16, 141121:


Stack, push e pop. Interrupt: meccanismo e tipi. RISC vs CISC. Unita' di controllo e operativa. Registri cpu. Schema di funzionamento dettagliato del ciclo di esecuzione.

Prova intermedia, 141126:


Lezione 17, 141203:


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

Lezione 18, 141205:


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.

Lezione 19, 141210:


Sincronizzazione dispositivi di I/O. Controllo di programma, protocollo di handshaking. Interrupt, vettore interrupt, controller interrupt e daisy chaining.

Lezione 20, 141217:


DMA e controller. Architettura x86: dettagli sui registri. Segmentazione nell' 8086. Famiglie di istruzioni assembly. Ambiente di emulazione Turbo Debugger (linux e windows).

Lezione 21, 141219:


Esercitazione guidata con l'emulatore di 8086.

Lezione 22, 150107:


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

Lezione 23, 150109:


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

Lezione 24, 150114:


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

Lezione 25, 150116:


Architetture schede video GPU. Cluster.

Lezione 26, 150123:


Esercitazione