B006802 (B032) - ARCHITETTURE DEGLI ELABORATORI 2018-2019
Topic outline
-
Informazioni generali sul corso
Titolari- Prof.Andrea Bondavalli, DiMaI, Università di Firenze. E-mail: bondavalli@unifi.it. Ricevimento: su appuntamento.
- Dott. Paolo Lollini, DiMaI, Università di Firenze. E-mail: paolo.lollini@unifi.it. Ricevimento: su appuntamento.
CFU: 12
Descrizione
Il corso intende fornire gli elementi di base per comprendere l'architettura dei calcolatori ed in particolare l'interfaccia tra quest'ultima ed i livelli di astrazione superiori di un sistema di calcolo. Come risultato, gli studenti apprenderanno i principi su cui si basa la progettazione dei moderni calcolatori.
Contenuti
(in carattere normale gli argomenti trattati dal Prof. Bondavalli, in grassetto gli argomenti trattati dal Dott. Lollini)
- Introduzione.
- Il ruolo delle prestazioni.
- Reti Logiche:
- Reti Logiche Combinatorie. Algebra di commutazione. Reti logiche combinatorie: specifica, sintesi, minimizzazione. Reti combinatorie fondamentali.
- Reti Logiche Sequenziali. Macchine a stati finiti e reti sequenziali. Minimizzazione di macchine a stati finiti.
- Memorie. Metodologie di temporizzazione e memorie. Elementi di memoria fondamentali.
- Concetti fondamentali di rappresentazione dei numeri e aritmetica binaria. Il progetto di una ALU. Moltiplicazione e divisione. Numeri in virgola mobile.
- Introduzione al linguaggio assembly del sistema MIPS.
- Laboratorio: programmazione in ambiente SPIM/MARS.
- Il Processore:
- Progetto della CPU a ciclo singolo: il cammino dei dati ed il controllo.
- Progetto della CPU a cicli multipli: il cammino dei dati ed il controllo.
- Miglioramento delle prestazioni col pipeline.
- Oltre il processore:
- Gerarchie di memoria.
- Interazioni con i Dispositivi.
Libri di testo
- C. Bolchini, C. Brandolese, F. Salice e D. Sciuto. Reti logiche, 2/e, Apogeo, 2009.
- D. Patterson, J. Hennessy. Computer Organization and Design (The Hardware/Software Interface), Morgan & Kaufmann, 5/e, 2013 (varie edizioni italiane dello stesso testo - edizioni precedenti sono disponibili fra cui Struttura e Progetto dei Calcolatori, 4/e, Zanichelli, 2015).
Metodi di verifica
- Prova scritta + prova orale sugli argomenti del corso, da sostenere nello stesso appello.
- Relazione sull’attività di laboratorio
Nota
La prova orale può essere sostenuta solo se la prova scritta risulta sufficiente.Sia la prova scritta che la prova orale possono essere sostenute solo se la relazione di progetto di laboratorio è stata preventivamente consegnata e valutata positivamente. La prova orale prevede anche la discussione sull'attività svolta in laboratorio. Il superamento della prova di progetto determina l'AMMISSIONE degli studenti interessati a tutti gli appelli di AE fino a quelli di febbraio 2020 compresi.
Alternativa (praticabile una sola volta nella carriera universitaria)In alternativa al metodo di verifica tradizionale, * per studenti che non hanno usufruito di questa modalita' negli anni scorsi *, è possibile sostenere due prove nel corso dell'anno:
a) la prima, scritta, si tiene alla fine del primo semestre (due appelli) e verte sugli argomenti ivi trattati;
b) la seconda, orale, si tiene alla fine del secondo semestre - o in caso di fallimento anche nei successivi appelli - e verte sugli argomenti trattati nel secondo semestre. Può essere sostenuta solo se la prima prova di esonero risulta sufficiente e la relazione di laboratorio consegnata. NOTA BENE: durante la prova orale i docenti potranno comunque chiedere argomenti del primo semestre sui quali sono state evidenziate gravi lacune nella prova di esonero.Gli studenti che in un appello intendono sostenere una prova orale devono OBBLIGATORIAMENTE prenotarsi sulla apposita pagina web d'ateneo http://stud.unifi.it:8080/prenot.
Presentazione del corso [download]
Forum di discussione e annunci-
Iscrizioni alla Seconda prova Intermedia (22 Febbraio 2019) - termine iscrizione: 20 Febbraio 2019, ore 23:55 Forum
-
ARGOMENTI DEL CORSO
Nelle sezioni sottostanti verranno via via descritti gli argomenti trattati a lezione insieme ai relativi riferimenti bibliografici e al materiale didattico (es. slides). Gli Argomenti sono trattati dal prof. Bondavalli, salvo diversa esplicita indicazione. -
Tecnologia informatica, livelli di astrazione e Prestazioni
- Introduzione.
- Livelli di astrazione.
- Interfaccia chiave
- Prestazioni. La misura delle prestazioni. Relazione fra le metriche.
- La scelta dei benchmark
- Evoluzione tecnologica.
Dove studiare: ...
Computer Organization and Design, Capitolo 1 ("Computer Abstractions and Technology")
Lucidi presentati a lezione: -
Reti Logiche Combinatorie
- Introduzione al progetto logico. Reti combinatorie e sequenziali.
- Introduzione alla sintesi logica: tabelle di verità, espressioni booleane, circuiti logici.
- Algebra di Boole.
- Sintesi e minimizzazione di reti combinatorie a due livelli.
- Mappe di Karnaugh.
Dove studiare:
Reti Logiche, Capitoli 1, 2, 4 (fino a 4.4.1) e 5.1
Altro materiale (lucidi usati a lezione)
(Nota: i lucidi usati a lezione sono in parte ripresi e modificati dalle slide in uso nel corso di Reti Logiche A del Politecnico di Milano, tenuto dalla Prof.ssa C. Bolchini; cf. http://home.dei.polimi.it/bolchini/)
-
Reti Logiche Sequenziali
- Modello comportamentale delle reti logiche sequenziali
- Un modello matematico: gli automi di Moore e Mealy
- Rappresentazioni alternative: diagramma stati/transizioni; tabella degli stati; modello di Huffman
- La sintesi logica delle reti sequenziali
- Equivalenza tra modelli: trasformazioni Moore->Mealy e Mealy->Moore
- Ottimizzazione di macchine a stati finiti
Dove studiare:
Reti Logiche, cap. 6 (esclusa sottosezione 6.3.5) , cap. 9 (escluso 9.3)
Lucidi Presentati a lezione: -
Elementi di memoria fondamentali
- Clock e metodologie di temporizzazione. Edge-triggered methodology
- Elementi di memoria: latch e flip-flop
- Registri
- SRAM eDRAM (cenni).
Dove studiare:- Reti Logiche: cap. 7 + cap. 11 sezione 1
- Computer Organization and Design: Appendice C, Sezione C.9 della quarta edizione in inglese (corrispondente alla Appendice B, Sezione B9 dello stesso in terza edizione) per la parte su SRAM e DRAM ("Memory Elements: SRAMs and DRAMs").
Lucidi presentati a lezione: -
L'aritmetica dei calcolatori
- Numeri con segno e senzasegno.
- Rappresentazioni binarie.
- Somma e sottrazione.
- Reti combinatorie fondamentali.
- La costruzione di una ALU e ottimizzazioni.
- Moltiplicazione e divisione.
- Numeri in virgola mobile e operazioni.
Dove studiare: ...
Reti logiche, Capitolo 3 ("La codifica dell'informazione")
Computer Organization and Design, Appendice C della edizione inglese, Sezioni C.5, C.6 (corrispondenti a Appendice B della terza edizione, Sezioni B.5 e B.6)
Computer Organization and Design, Capitolo 3 ("Arithmetic for Computers")
Lucidi presentati a lezione: -
Introduzione al linguaggio assembly del sistema MIPS. + Laboratorio: programmazione in ambiente QtSpim. (Dott. Lollini)
- Linguaggio ad alto livello, linguaggio assembly e macchina.
- Compilatore, assembler, linker e loader.
- Il set di istruzioni MIPS, RISC e CISC.
- Codifica delle istruzioni.
- Gestione della memoria.
- Procedure e funzioni.
- Chiamate al sistema operativo, input e output.
- Esempi di programmazione
- Esercitazioni guidate di laboratorio in ambiente QtSpim su:
- Syscall, cicli while, switch case e vettori;
- Procedure;
- Sbrk, puntatori e liste puntate.
D. A. Patterson, J. L. Hennessy. «Struttura e progetto dei calcolatori» – quarta edizione italiana condotta sulla quinta edizione americana (va bene anche la terza edizione italiana condotta sulla quarta edizione americana):- Capitolo 2 («Le istruzioni: il linguaggio dei calcolatori»)
- Appendice A («Gli assemblatori, i linker e il simulatore SPIM»), che era Appendice B nella terza edizione italiana del libro)
Strumenti:- Simulatore QtSpim (reperibile alla pagina web http://sourceforge.net/projects/spimsimulator/files/)
- Simulatore MARS (reperibile alla pagina web http://courses.missouristate.edu/KenVollmar/mars/)
-
Nuova versione del documento, aggiornata il 9/5/2019. Modifiche rispetto alla precedente versione, rese necessarie per evitare problemi di saturazione della memoria del simulatore:
- la lunghezza massima k della parola chiave è pari a 4 caratteri, quindi S=“S1∙∙∙Sk“ con 1≤k≤4;
- il file di testo “messaggio.txt” contenente il messaggio di testo da cifrare è composto da un massimo di 128 caratteri.
-
Il processore: unità di elaborazione dati e unità di controllo
- Progetto di una unita' di elaborazione dati.
- Una implementazione elementare.
- Implementazione multi-ciclo.
- Controllo processore multiciclo.
- Microprogrammazione.
- Eccezioni
Dove studiare:
Computer Organization and Design, Capitolo 4 ("The Processor")Lucidi presentati a lezione:
-
Miglioramento delle prestazioni mediante l'uso di pipeline (Dott. Lollini)
- Panoramica.
- Il cammino dei dati.
- Il controllo.
- Risolvere le criticità: strutturali, dei dati e del controllo.
- Miglioramenti dell'architettura base: superpipeline, pipeline statica, pipeline dinamica.
Dove studiare:
Computer Organization and Design, Capitolo 4 ("The Processor"), da Sezione 4.5 a Sezione 4.10
Lucidi presentati a lezione:
-
Capacità e velocità: sfruttare la gerarchia delle memorie
- Vantaggi delle gerarchie di memoria.
- Concetto di cache.
- Cache a mappa diretta.
- Cache associativa.
- Prestazioni.
- Memoria virtuale come cache fra RAM e Disco.
Computer Organization and Design, Capitolo 5 ("Large and Fast: Exploiting Memory Hierarchy), Sezioni 5.1, 5.2, 5.3, 5.4, 5.5
Lucidi presentati a lezione: -
L'interfaccia tra processori e periferiche
- Introduzione.
- L'interfaccia tra processori e periferiche.
- Bus: connettere processore , I/O e Memoria.
- Gestione delle interruzioni
Dove studiare: ...
Computer Organization and Design, Capitolo 6 ("Storage and Other I/O Topics"), Sezioni da 6.1 a 6.8 della versione italiana (apogeo), di David A. Patterson, John L. Hennessy - Morgan Kauffmann.
Lucidi presentati a lezione: - Introduzione.
-
Questa sezione raccoglie i lucidi e altro materiale utilizzato per le esercitazioni