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.
martedì 25 febbraio
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.
giovedì 27 febbraio
Introduzione all'
assembler MIPS e al
tool SPIM.
Primi due programmini: somma di due numeri (
versione non interattiva e
versione interattiva).
venerdì 28 febbraio
Istruzioni logiche, di shift e di salto condizionato. Formato interno. Rif. 2.5 e 2.6.
martedì 4 marzo
Esercitazione.
giovedì 6 marzo
Realizzazione di
istruzioni di alto livello in assembler.
Programma in assembler:
Somma degli elementi di un vettore.
venerdì 7 marzo
Supporto hardware alla chiamata di procedure. Rif. 2.7.
martedì 11 marzo
Esercitazione.
giovedì 13 marzo
Programmi in assembler:
Test se una stringa è palindroma;
Media di due numeri (con arrotondamento per difetto);
Media di due numeri (senza arrotondamento).
venerdì 14 marzo
ALU. Clock, latch e flip flop. Rif. B.5-B6 (
App_B_-_The_basics_of_logic_design_(ALU).pdf) e B.7-B.8 (
App_B_-_The_basics_of_logic_design_(clock_e_memoria).pdf).
martedì 18 marzo 2007
Il processore: datapath e controllo. Una semplice implementazione a un clock per istruzione. Rif. 5.1, 5.2, 5.3 e 5.4.
giovedì 27 marzo
Programmi sui vettori:
Sostituzione con '*' di tutte le vocali in una data stringa;
Richiesta di un vettore all'utente e stampa la somma degli elementi in posizione pari.
venerdì 28 marzo 2007
Il processore: datapath e controllo. Una semplice implementazione a un clock per istruzione. Rif. 5.1, 5.2, 5.3 e 5.4. Esercitazione: quali sono i segnali di controllo per le istruzioni add, sw, beq, j nell'architettura in questa
figura (figura 5.24, capitolo 5 del libro,
Attenzione, la figura contiene un errore, se volete vedere come correggerlo, guardate
qui).
martedì 1 aprile
Una implementazione multiciclo: il datapath. Ref. 5.5.
giovedì 3 aprile
Gestione di matrici: somma degli elementi (
soluzione più vicina al codice di alto livello;
soluzione più efficiente).
venerdì 4 aprile
Una implementazione multiciclo: il controllo. Ref. 5.5.
martedì 8 aprile
Una implementazione multiciclo: il controllo. Ref. 5.5. Esercitazione, implementare sulla architettura multiciclo l'istruzione
jr.
giovedì 10 aprile
Le eccezioni. Ref 5.6. Esercitazione, implementare sulla architettura multiciclo l'istruzione
jal.
martedì 15 aprile
Esercizi su matrici:
calcolo della trasposta e
stampa della diagonale di una matrice quadrata.
giovedì 17 aprile
Esercizi di preparazione all'esonero:
somma e stampa degli elementi della triangolare inferiore di una matrice e
conteggio degli elementi non duplicati in un vettore.
martedì 29 aprile
Correzione esonero di teoria.
martedì 6 maggio
Pipelining e hazard. Ref. 6.1.
giovedì 8 maggio
Realizzazione di
funzioni e funzioni ricorsive in assembler; esempio del
fattoriale.
martedì 13 maggio
Pipelining: Implementazione.
giovedì 15 maggio
Semplice programma di stampa di una
struttura C; calcolo dei numeri di Fibonacci (
prima versione,
più intuitiva ma inefficiente, e
seconda versione, più efficiente ma meno ovvia).
venerdì 16 maggio
Pipelining: Forwarding e branch hazard. Ref. 6.1.
martedì 20 maggio
Cache. Rif. 7.1-7.2.
giovedì 22 maggio
Esempi di funzioni ricorsive: creazione e stampa di
liste di interi; bubble sort (
prima versione;
seconda versione, con tail recursion).
venerdì 23 maggio
Cache: Performance e multi-way.
martedì 27 maggio
I/O. Rif 8.1, 8.2, 8.4, 8.5 (riassunto di questi 4 paragrafi).
giovedì 29 maggio
Seminario Ibm.
venerdì 30 maggio
Seminario Ibm.
martedì 3 giugno
Simulazione d'esame:
simulazione2.pdf.
giovedì 5 giugno
Funzioni mutuamente ricorsive:
primo esercizio e
secondo esercizio.