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 (The Hardware/Software Interface), Morgan & Kaufmann, 4/e, 2009 (edizione italiana dello stesso testo: Struttura e Progetto dei Calcolatori, 3/e, Zanichelli, 2010).
C. Bolchini, C. Brandolese, F. Salice e D. Sciuto. Reti logiche, 2/e, Apogeo, 2009.
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.
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: 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.