Venerdì 26 maggio 2006: Lezione
I/O. Rif. 8.4.
Martedì 23 maggio 2006: Lezione
I/O. Rif. 8.1-8.3.
Lunedì 22 maggio 2006: Esercitazione
Martedì 16 maggio 2006: Lezione
Memoria virtuale. Rif. 7.4.
Lunedì 15 maggio 2006: Esercitazione
Venerdì 12 maggio 2006: Lezione
Set Associative Cache. Rif. 7.3.
Martedì 9 maggio 2006: Lezione
Cache. Rif. 7.2.
Lunedì 8 maggio 2006: Esercitazione
Introduzione alle funzioni (vedi le
slides) ed esempio del
fattoriale ricorsivo.
Venerdì 5 maggio 2006: Lezione
Branch hazards. Cache. Rif. 6.6, 7.1.
Martedì 2 maggio 2006: Lezione
Pipelining. Rif. 6.3-6.5.
Venerdì 28 aprile 2006: Esercitazione
Preparazione all'esonero (soluzione degli esoneri fatti nel canale E-O:
fila A e
fila B)
Mercoledì 19 aprile 2006: Esercitazione
Gestire matrici di interi:
- leggere una matrice dall'utente a stamparne la trasposta (codice)
Martedì 11 aprile 2006: Lezione
Pipelining. Rif. 6.1.
Venerdì 7 aprile 2006: Lezione
Il processore: Eccezioni. Prime chiacchere da bar sul pipelining. Rif. 5.6 e 6.1.
Martedì 4 aprile 2006: Esercitazione
Venerdì 31 marzo 2006: Esercitazione
Gestire vettori di interi:
Martedì 28 marzo 2006: Lezione
Il processore: datapath e controllo. Una implementazione a più clock per istruzione (seconda parte). Rif. 5.5.
Lunedì 27 marzo 2006: Lezione
Il processore: datapath e controllo. Una implementazione a più clock per istruzione (prima parte). Rif. 5.5.
Venerdì 24 marzo 2006: Lezione
Il processore: datapath e controllo. Una semplice implementazione a un clock per istruzione. Rif. 5.1, 5.2, 5.3 e 5.4.
Martedì 21 marzo 2006: Lezione
Come si misura la performance dei calcolatori. Rif. 4.1, 4.2 e 4.3.
Lunedì 20 marzo 2006: Esercitazione
Realizzazione in assembly dei principali costrutti di un linguaggio ad alto livello.
Materiale:
Lucidi e programmini:
if-then,
if-then-else, switch (
prima e
seconda versione),
while (
prima e
seconda versione),
do-while e
for.
Mercoledì 15 marzo 2006: Lezione
Moltiplicazione (parte 2). ALU. Rif. 3.3 e 3.4
Martedì 14 marzo 2006: Lezione
Gestire byte e halfword. Caricare costanti lunghe. Istruzioni per saltare "lontano". Moltiplicazione (parte 1). Rif. 2.8, 2.9, 3.3 e 3.4,
Lunedì 13 marzo 2006: Esercitazione
Esercitazione: Introduzione all'assemblatore e al linker (funzioni principali); struttura di un programma assemply MIPS; istruzioni e pseudo-istruzioni; presentazione del tool SPIM e alcuni esempi di uso.
Materiale: Lucidi (
prima e
seconda parte); inoltre, il materiale su
assembler,
SPIM e
istruzioni SPIM.
Infine, si possono usare come semplici esempi iniziali due versioni della somma di due numeri,
con inizializzazione da programma o
presi in input dall'utente.
Links:
tutto su SPIM
Venerdì 10 marzo 2006: Lezione
Esercitazione: programmare in linguaggio assembly MIPS la funzione f(n)=2n; una funzione max(x,y) che calcola il massimo tra x e y; una procedura swap(i,j) per lo scambio delle due word in memoria agli indirizzi i e j; una procedura per lo scambio di due word consecutive in memoria dato un indirizzo (che utilizzi swap come sottoprocedura); una funzione per il calcolo del massimo tra tutte le parole comprese tra due indirizzi.
Martedì 7 marzo 2006: Lezione
Supporto hardware alle chiamate di procedura e funzione. Esempi: funzione somma di due interi, fattoriale e fibonacci. Rif: 2.7.
Lunedì 6 marzo 2006: Lezione
Istruzioni di shift e logiche. Instruzioni di salto condizionato e incondizionato. Semplice esempio di costrutto if-then-else. Esempio di ciclo (somma degli elementi di un vettore di interi). Rif: 2.5 e 2.6.
Venerdì 3 marzo 2006: Lezione
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.
Nota
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.