Corso di Architetture degli Elaboratori per Informatica

AA. 2017-18


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 (Argomenti fino alla logica sequenziale esclusa), 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 24/9


Orali in Aula E (Plesso Matematica e Informatica) Mer 26 (9-12)

AGRO' 15
ALBERTINI 18
DE VITA INS
EVOLA 24
GHERARDI 27
IBRA 22
IMPERIAL INS
KAUR 30
KHEMIRI INS
LAVAGNINI 24
NARDELLA 26



Riferimenti bibliografici

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

Rappresentazione dell'informazione

Logica Booleana e reti logiche

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

Architettura GPU

Vulnerabilita' Meltdown


Esempio di prova intermedia

Esempio di compito di un appello passato


Lezioni frontali

Lezione 1, 171005:


Introduzione al corso. Calcolo digitale. Storia delle architetture: ENIAC. Evoluzione architetture: Mainframe, Microprocessore, Workstation. Principali architetture (x86, motorola, arm , gpu). Evoluzione tecnologica: legge di Moore.

Lezione 2, 171006:


Architetture e organizzazione. 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 16 e vicecersa. Aritmetica binaria. Regole simboliche. Somma, moltiplicazione, shift a destra e sinistra.

Lezione 3, 171012:


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. Virgola fissa e mobile in base 10 e base 2.

Lezione 4, 171013:


Standard IEEE 754 Floating point singola precisione. Mantissa, esponente. Esempi passo passo di conversione. Numeri in virgola mobile. Numeri normalizzati e denormalizzati, arrotondamento (cenni). Esercizi su conversione numero decimale in float IEEE 754 (binario e esadecimale), numero intero decimale in complemento a 2.

Lezione 5, 171019:


Rappresentazioni alfanumeriche (ASCII, UNICODE), cenni a immagini e suoni. Introduzione alla logica combinatoria. Reti logiche: combinatorie e sequenziali. Algebra delle reti. Operatori AND OR e NOT. Tabelle di verita'. Espressioni logiche. Paragone proprieta' dell' elettronica vs. idraulica (elettroni/acqua, corrente/flusso). Realizzazione porta NOT con transistor.

Lezione 6, 171020:

Porte logiche e simboli. Proprieta' dell'algebra booleana. Circuiti logici. Prima forma canonica (esempio con sintesi di porte logiche). Seconda forma canonica.

Lezione 7, 171026:


Minimizzazione di circuiti. Mappe di Karnaugh. Implicanti primi. 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 8, 171027:


Multiplexer e demultiplexer. Esempi di valutazione delle reti logiche. Proprieta' mux e demux collegati in serie. Esempio di uso MUX come selettore di tabella di verita' e conversione dati organizzati in parallelo-sequenziale.

Lezione 9, 171108:


ROM: porte logiche per realizzazione. Esempio di rete logica. Accenni ad implementazione hardware. PROM, EPROM e EEPROM. PLA: confronto con ROM e riorganizzazione del decodificatore. Esempio di PLA. Controllo di parita'. Esempi. Comparatori di interi senza segno (singoli bit e estensione al caso generale).

Lezione 10, 171110:


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

Lezione 11, 171116:


Esempio di controllo overflow per adder. Logica sequenziale. Esempio Flip (tabella verita', valutazione rete logica, simulazione nel tempo). Latch NOR. Diagramma temporale con ritardi delle porte. Flip flop asincrono (Set-Reset).

Lezione 12, 171117:


FF SR con tabella di verita' e mappe di Karnaugh. Reti sincrone. Flip flop con clock level triggered. FFSR edge triggered. Esempi e valutazioni nel tempo. Registri con FFSR.

Lezione 13, 171128:


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

Lezione 14, 171201:


Gerarchia di memorie. Unita' di controllo e operativa. Registri del processore (PC, IR). Schema di funzionamento dettagliato del ciclo di esecuzione Esecuzione programma a basso livello. Fasi di esecuzione: Fetch, execute e aggiornamento PC. Stack, push e pop. Interrupt: meccanismo e tipi.

Lezione 15, 171207:


RISC vs CISC.

Lezione 16, 171212:


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

Lezione 17, 171215:


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 18, 171221:


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

Lezione 19, 171222:


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


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

Lezione 21, 180118:


Riorganizzazione del codice, esempio criticita' di dati (alu-alu, ram-alu). Criticita' di controllo. Soluzioni con predizione di salto. Riepilogo con dataflow di pipeline.

Lezione 22, 180119:


Architetture parallele. SISD, SIMD, MIMD. UMA, NUMA. Architettura Multicore. Accenni ai cluster. Architetture schede video GPU. Thread, SIMT, memorie, esempio di calcolo parallelo su SIMD e GPU.