I moderni elaboratori e l'evoluzione tecnologica. Il ruolo delle prestazioni. Introduzione ai linguaggi assembly. Il linguaggio MIPS. Il simulatore Spim. 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 a ciclo singolo e a cicli multipli. Eccezioni. Pipelining. Il sistema interruzioni. Le interazioni con le periferiche.
D. Patterson, J. Hennessy. Computer Organization and Design, Fifth Edition: The Hardware/Software Interface (The Morgan Kaufmann Series in Computer Architecture and Design), Morgan & Kaufmann, 5/e, 2013 (edizione italiana dello stesso testo: Struttura e progetto dei calcolatori. Con Contenuto digitale (fornito elettronicamente) – 1 dic 2014).
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. Inoltre l'insegnamento di un linguaggio assembly (MIPS) 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. La descrizione dellla struttura del processore e della struttura del sistema con memorie e dispositivi ha come obiettivo di dare una visione di insieme di un sistema di elaborazione.
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 Bondavalli,
Su appuntamento. Contattare il docente tramite numero telefonico o e-mail (bondavalli@unifi.it).
DiMaI, Universita' di Firenze, Viale Morgagni, 65 - 50134 Firenze
Tel. 055 2751481
Dott. Paolo Lollini,
Su appuntamento. Contattare il docente tramite numero telefonico o e-mail (lollini@unifi.it).
DiMai, Universita' di Firenze, Viale Morgagni, 65 - 50134 Firenze
Tel. 055 2751486
Modalità di verifica apprendimento
La verifica della preparazione consiste in una prova scritta, un approfondimento pratico sulla programmazione in linguaggio assemby ed un colloquio orale.
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 MIPS.
Il simulatore QtSpim.
Laboratorio: programmazione in ambiente QtSpim;
Concetti fondamentali di rappresentazione dei numeri e aritmetica binaria.
Il progetto di una ALU.
Moltiplicazione e divisione.
Numeri in virgola mobile.
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.
Eccezioni.
Miglioramento delle prestazioni col Pipelining: il cammino dei dati ed il controllo.
Gerarchie di memoria.
Le interazioni con le periferiche ed Il sistema interruzioni.