Diario delle lezioni
Per ogni lezione, in poche righe, saranno descritti gli argomenti affrontati. Con Rif, vi segnaliamo quali capitoli e paragrafi del libro di testo trattano gli argomenti del giorno. Attenzione, i riferimenti sono per la 4a edizione del libro in inglese (comunque non è difficile capire quali sono anche per la 3a edizione).
luned́ 8 marzo
Introduzione al corso. Il computer visto dall'alto. Il set di istruzioni. Prime istruzioni e loro rappresentazione in memoria. Rif: 2.1, 2.2., 2.3 e 2.4.
marted́ 9 marzo
Formato interno. Istruzioni logiche e di shift. Istruzioni di salto condizionato. Esercizio in classe: calcolo della somma degli elementi di un vettore di interi. Rif: 2.5-2.7.
luned́ 15 marzo
Il supporto hardware alla chiamata di procedure. Istruzioni jal e jr. Esercizio in classe: fattoriale con implementazione ricorsiva. Rif: 2.8.
venerd́ 19 marzo
Esercitazione: Direttive, etichette, chiamate di sistema, pseudo-istruzioni. Simulatore SPIM.
Esercizio_1: programma che chiede in input un intero, lo incrementa di 1, e lo stampa a video.
Esercizio_2: programma che chiede in input una sequenza di interi (che termina con lo 0) e stampa la somma dei valori inseriti. Rif: Appendice A
luned́ 22 marzo
Il processore: datapath e controllo. Una semplice implementazione a un clock per istruzione. Rif. 4.1, 4.2, 4.3 e 4.4.
venerd́ 26 marzo
Esercitazione: Pseudo-istruzioni.
Esercizio_1: programma che chiede in input il nome dell'utente e lo ristampa con un messaggio.
Esercizio_2: programma che prende in input una sequenza di interi (che termina con lo 0), memorizza i valori in un array, e li stampa in ordine inverso.
venerd́ 09 aprile
Esercitazione: operazioni logiche, matrici.
Esercizio_1: programma che prende in input un valore intero e ne ritorna la rappresentazione binaria.
Esercizio_2: programma che definisce una matrice 10x10 in cui ogni elemento assume come valore la somma dell'indice di riga e dell'indice di colonna, cioè matrice(i,j)=i+j con i,j=0,...,9
luned́ 12 aprile
Il processore: datapath e controllo. Una semplice implementazione a un clock per istruzione. Rif. 4.1, 4.2, 4.3 e 4.4.
venerd́ 16 aprile
Esercitazione.
Correzione homework.
Esercizio: programma che dati due array ordinati di interi, allocati staticamente: array1=[3,6,9,10,12,13] e array2=[1,2,5,7,8], stampa il merge dei due array.
luned́ 19 aprile
Esercitazione in vista dell'esonero di teoria.
venerd́ 23 aprile
Esercitazione. Esercizio_1: programma che esegue il prodotto matrice per vettore (strutture dati allocate staticamente).
Esercizio_2: esercizio precedente con stampa vettore risultato dopo ogni iterazione (riga per colonna).
luned́ 3 maggio
Il processore: pipelining. Rif. 4.5 e 4.6.
venerd́ 7 maggio
Esercitazione. Chiamata di funzioni, funzioni ricorsive. Esempio su registri caller- e callee- saved.
Esercizio: programma ricorsivo che calcola la somma dei primi n numeri interi.
luned́ 10 maggio
Il processore: data hazards. Rif. 4.7.
luned́ 17 maggio
Il processore: control hazard e branch prediction. Rif. 4.8.
venerd́ 28 maggio
Il processore: eccezioni. Cache: introduzione.
luned́ 31 maggio
Cache: Mapping, hardware e cache associative.
venerd́ 4 giugno
Cache: Esercitazione.
luned́ 7 giugno
Memoria virtuale: Introduzione.
venerd́ 11 giugno
Memoria virtuale: Traduzione indirizzo virtuale-fisico, TLB.
--
AlessandroMei - 08 Mar 2010