I moderni elaboratori e l'evoluzione tecnologica. Il ruolo delle prestazioni. Introduzione ai linguaggi assembly. Il linguaggio Risc V. Il simulatore. Reti logiche combinatorie e sequenziali. Concetti fondamentali di rappresentazione dei numeri e aritmetica binaria. Il progetto di una ALU. Moltiplicazione e divisione. Numeri in virgola mobile. Progetto della CPU. Eccezioni. Gerarchie di memoria, Cache, memoria virtuale.
David A Patterson, John L Hennessy, STRUTTURA E PROGETTO DEI CALCOLATORI - Progettare con RISC-V. Edizione italiana a cura di Alberto Borghese. Zanichelli, 2019 . ISBN: 9788808820594
C. Bolchini, C. Brandolese, F. Salice e D. Sciuto. Reti logiche, 2/e, Apogeo, 19 settembre 2013.
Obiettivi Formativi
Il corso intende fornire gli elementi di base per comprendere l'architettura dei calcolatori e l'interfaccia tra quest'ultima ed i livelli di astrazione superiori di un sistema di calcolo.
L'insegnamento di un linguaggio assembly (RISC V) intende fornire gli elementi per comprendere i linguaggi assembly e l'interfaccia che essi costituiscono fra l'architettura hardware ed i livelli di astrazione superiori di un sistema di calcolo, inclusi i linguaggi di programmazione ad alto livello.
La descrizione dellla struttura del processore e della struttura del sistema con memorie ha come obiettivo di dare una visione di insieme di un sistema di elaborazione, enfatizzando le relazioni tra il processore e le diverse tipologie di memorie utilizzate nei comuni calcolatori.
Prerequisiti
Nessuno
Metodi Didattici
CFU: 12
Numero di ore totali del corso: 300
Numero di ore per studio personale e altre attività formative di tipo individuale: 194
Numero di ore relative alle attività in aula: 82
Numero di ore relative ad attività di laboratorio (lezioni in laboratorio): 20
Numero di ore relative ad attività di esercitazioni (in laboratorio e in campo): 0
Numero di ore relative ad attività seminariali: 0
Numero di ore relative ad attività di stage: 0
Numero di ore per prove in itinere: 4
Altre Informazioni
Frequenza delle lezioni ed esercitazioni: FORTEMENTE Raccomandata
Strumenti a supporto della didattica UniFi E-Learning: http://e-l.unifi.it
Orario di ricevimento:
Prof. Andrea Ceccarelli,
Su appuntamento. Contattare il docente tramite numero telefonico o e-mail (andrea.ceccarelli@unifi.it).
DiMaI, Universita' di Firenze, Viale Morgagni, 65 - 50134 Firenze
Tel. 055 2751487
Dott. Tommaso Zoppi,
Su appuntamento. Contattare il docente tramite numero telefonico o e-mail (tommaso.zoppi@unifi.it).
DiMai, Universita' di Firenze, Viale Morgagni, 65 - 50134 Firenze
Tel. 055 2751486
Modalità di verifica apprendimento
Metodo di Verifica Tradizionale
- Relazione sull’attività di laboratorio
- Prova scritta + prova orale sugli argomenti del corso, da sostenere nello stesso appello.
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 scritta consta di 5/6 esercizi reltivi a tutto il programma da completarsi solitamente in due ore, e viene valutata sufficiente con un punteggio di almeno 18. La prova orale può essere sostenuta solo se la prova scritta risulta sufficiente, ed è relativa all'intero programma inclusa la parte di laboratorio e discussione progetto. In sede di orale verrà valutata la conoscenza degli argomenti presentati in tutto il programma didattico. Il voto finale viene ottenuto considerando la valutazione del progetto, dello scritto e dell'orale e NON come media aritmetica tra i risultati delle singole prove.
Metodo di Verifica con Prova Intermedia
Praticabile una sola volta nella carriera universitaria
In alternativa al metodo di verifica tradizionale, per studenti che frequentano la prima volta, o che hanno già frequentato ma non hanno mai nè tentato l'esame completo nè usufruito di questa modalità negli anni scorsi, è possibile sostenere due prove nella pausa invernale delle lezioni in Febbraio 2023.
Tali prove intermedie (2) sono dei test scritti che vertono su tutti gli argomenti di teoria e laboratorio affrontati nel primo semestre. Ciascuna prova intermedia consta di 5/6 esercizi reltivi a tutto il programma da completarsi solitamente in due ore, e viene valutata sufficiente con un punteggio di almeno 18. Lo studente può partecipare ad entrambe le prove: consegnare però al secondo appello dell'intermedio invalida qualunque risultato ottenuto alla prima prova (anche se valutata positivamente). Il superamento della prova intermedia in un qualunque dei due appelli a Febbraio 2023 garantisce l'esonero dai test scritti fino all'appello di Febbraio 2024 compreso.
Nel caso in cui una delle due prove intermedie risulti almeno sufficiente, l'iscrizione all'esame resta vincolata alla consegna del progetto (come nel metodo tradizionale), che deve essere valutata positivamente. In caso di valutazione positiva del progetto, lo studente accederà ad una prova orale che verterà principalmente sugli argomenti del secondo semestre. In ogni caso, durante la prova orale i docenti potranno chiedere argomenti del primo semestre sui quali sono state evidenziate gravi lacune nella prova di esonero. L'obiettivo dell'esame orale, infatti, è quello di valutare la conoscenza degli argomenti presentati nel corso e di controllare l'assenza di lacune importanti su TUTTI gli argomenti visti durante il corso. Il voto finale viene ottenuto considerando la valutazione del progetto, della prova intermedia e dell'orale e NON come media aritmetica tra i risultati delle singole prove.
Programma del corso
I moderni elaboratori e l’evoluzione tecnologica.
Il ruolo delle prestazioni.
Reti logiche combinatorie: specifica, sintesi, minimizzazione.
Metodologie di timing ed elementi di memoria.
Macchine a stati finite e reti sequenziali.
Introduzione al linguaggio assembly del sistema RISC-V.
Il simulatore RISC-V.
Laboratorio: programmazione in Assembly ;
Concetti fondamentali di rappresentazione dei numeri e aritmetica binaria.
Il progetto di una ALU.
Moltiplicazione e divisione.
Numeri in virgola mobile.
processore RISC-V: Progetto della CPU a ciclo singolo: il cammino dei dati ed il controllo.
Miglioramento delle prestazioni col Pipelining: il cammino dei dati ed il controllo. Le criticità della pipeline e arricchimenti del processore per la loro soluzione, eccezioni.
Gerarchie di memoria, caches andcenni alla memoria virtuale.