Architetture degli Elaboratori (Corso B) 2009-2010

Registro delle lezioni

Il registro ufficiale delle lezioni è pubblicato sul sito ufficiale. I contenuti delle lezioni saranno raccolti anche nella tabella sottostante, con i link al materiale utilizzato per la lezione (in PDF).

Lezioni già svolte
Giorno Inizio Fine Argomenti Note Docente
23 set 14 16 Introduzione al corso. Strutturazione a livelli e moduli. N.D. Danelutto
25 set 11 13 Compilazione e interpretazione. Moduli di Elaborazione 1a ora 2a ora Danelutto
30 set 14 16 Sistema binario. Conversione da e per binario. Rappresentazioni modulo e segno e complemento a 2. Operazioni notevoli 1a e 2a ora Danelutto
2 ott 11 13 Componenti elementari (registri, ALU, memoria) 1a e 2a ora Danelutto
7 ott 14 16 Algebra di Boole. Cenni alla tecnologia di implementazione dei circuiti stampati. Tabelle di verità. Sintesi di funzioni mediate reti combinatorie: forme canoniche (somma di prodotti) 1a e 2a ora Danelutto
9 ott 11 13 Sintesi di reti combinatorie da definizione algoritmica della funzione. Reti combinatorie su parola. Cenni alla possibilità di utilizzare un'unica porta (NAND) per la realizzazione delle reti combinatorie. 1a e 2a ora Danelutto
14 ott 14 16 Reti sequenziali: definizione, modello di Mealy e di Moore, automi corrispondenti, implementazione LLC 1a ora 2a ora Danelutto
16 ott 11 13 Analisi e sintesi di reti sequenziali. Esempi. Cenni alla realizzazione di elementi di memoria (Flip flop D) 1a e 2a ora Danelutto
21 ott 11 13 La lezione non si terrà causa partecipazione a workshop all'estero
23 ott 11 13 Realizzazione dei moduli di memoria. Memoria da n bit con memorie da 1 bit. Memoria modulare sequenziale e interallacciata. 1a e 2a ora Danelutto
28 ott 14 16 Procedimento formale di derivazione PO/PC da microprogramma 1a e 2a ora Danelutto
30 ott 11 13 Esercitazione su unità firmware e calcolo del ciclo di clock 1a e 2a ora Danelutto
6 nov 11 13 Forme di comunicazione fra unità firmware. Meccanismi a transizione di livello. Impatto sul microcodice. Esempi e valutazione delle prestazioni. 1a e 2a ora Danelutto
18 nov 14 16 Ottimizzazione del microcodice, condizioni di Bernestein e Introduzione del concetto di controllo residuo 2a ora (gli schizzi della prima ora sono persi) Danelutto
20 nov 11 12.30 Esercitazione su realizzazione di unità firmware. 1a e 2a ora Danelutto
25 nov 14 16 Introduzione Livello assembler. Modello di calcolatore general purpose. Ciclo Fetch/Decode/Execute. Interruzioni (cenno). Catena di compilazione. Istruzioni aritmetiche e loro formato. 1a e 2a ora Danelutto
27 nov 11 13 Istruzioni assembler (memoria, salti). Meccanismi per le procedure/funzioni. Schemi di compilazione di semplici statement condizionali e iterativi. 1a e 2a ora Danelutto
2 dic 14 16 Esercitazione su livello assembler: compilazione di procedure con passaggio di parametri diversi (prodotto vettoriale con parametri in registri o in memoria, scorrimento di liste). Inizializzazione di variabili (PCB, zona di memoria “compilata”). 1a e 2a ora Danelutto
4 dic 11 13 Esercitazione: livello assembler, modi di indirizzamento, salvataggio e ripristino dei registri generali da area di memoria (e.g. PCB), esempio di procedura con parametri passati per memoria (esercitazione 3 a.a. 2008-2009). Firmware: commenti sul testo della prima prova di verfica 2006-2007. 1a ora2a ora Danelutto
9 dic 14 16 Esercitazione: firmware 1a e 2a ora Danelutto
Secondo Semestre
24 feb 14 16 Il processore. Interfaccia con la memoria e con l'unità interruzioni. Registri. Interprete firmware. Implementazione con salto calcolato. Esempio di implementazione di istruzioni: ADD e LD 1a e 2a ora Danelutto
3 mar 14 16 Implementazione dell'esecuzione delle diverse classi di istruzioni assembler. Valutazione delle prestazioni: mix e benchmark. Esempi di valutazioni con benchmark (da top500.org). Compilazione di un segmento di codice C in D-RISC e valutazione del tempo di completamento. 1a e 2a ora Danelutto
5 mar 11 13 Classe di istruzioni aritmetiche lunghe. Cenni (anche storici) sulla dicotomia CISC/RISC. Evoluzioni dell'architettura del processore: introduzione della gerarchia di memoria con cache e cenni al superpipeline. Trattamento delle interruzioni con dettagli della fase firmware e della fase assembler. 1a e 2a ora Danelutto
10 mar 14 16 Latenza del trattamento delle interruzioni. Gerarchie di memoria: principi e concetti di base. Esempi di gerarchie (file system, web). Spazio di indirizzamento logico e fisico. Principio di località e riuso. Definizione del working set. Esempio con moltiplicazione di matrici. non disponibile (lezione alla lavagna) Danelutto
12 mar 11 13 Andamento della probabilità di fault. Spazio di indirizzamento bi-dimensionale. Paginazione e traduzione degli indirizzi. Allocazione statica e dinamica. Tabella di rilocazione (e relazione con PCB). Implementazione della MMU. 1a e 2a ora Danelutto
17 mar 14 16 Cache. Politiche write-through e write-back. Cache con indirizzamento diretto, completamente associativo e associativo su insiemi. Tempi di accesso e modalità di implementazione. 1a e 2a ora Danelutto
19 mar 11 13 Esercizio: estensione dell'assembler D-RISC con istruzione aritmetica MM. Confronto tempi di completamento di codice con e senza estensione. Working set, traduzione indirizzi e utilizzo di cache associativa su insiemi. 1a e 2a ora Danelutto
24 mar 14 16 Cache: algoritmi per il rimpiazzamento; tecniche per il prefetching. Processi: time sharing, schedulazione a basso livello (con prerilascio), descrittore di processo. 1a e 2a ora Danelutto
26 mar 11 13 Processi: schedulazione a basso livello. Spazio di indirizzamento e condivisione di informazioni fra processi. PCB. Routine nello spazio di indirizzamento di tutti i processi: handler di interruzioni, routine dello scheduler di basso livello. Forme di parallelismo: pipeline e replicazione funzionale. Misure di performance: scalabilità, speedup, efficieinza. Pipeline: modellazione della performance (introduzione). 1a e 2a ora Danelutto
14 aprile 14 16 Forme di parallelismo. Pipeline: tempo di completamento, impatto delle comunicazioni. Replicazione funzionale (farm): modello per tempo di servizio e tempo di completamento. Data flow puro (cenni): definizione grafo data flow. Regole per l'esecuzione delle istruzioni macro data flow. Cenni all'applicazioni in processori con unità di esecuzione out-of-order. 1a e 2a ora Danelutto
16 aprile 11 13 Architettura generale del processore pipeline. Pipeline astratto, schema concreto, schema semplificato. Problemi relativi alla gestione delle memorie dati e istruzioni. Posizionamento dell'unità registri (logico, reale). Concetto di “bolla” nel pipeline. 1a e 2a ora Danelutto
23 aprile 11 13 Tempi di servizio di IM, IU, DM ed EU. Meccanismi di supporto all'esecuzione dei salti e per la sincronizzazione dei registri generali. Trattamento interruzioni nel processore pipeline. Dipendenze logiche. Metodo della simulazione per la valutazione delle prestazioni. 1a e 2a ora Danelutto
28 aprile 14 15 Modello analitico per le prestazioni del processore pipeline. PDF Danelutto
28 aprile 15 16 Esempi di valutazione delle prestazioni per processore pipeline PDF Danelutto
30 aprile 11 12 Ottimizzazioni per processore pipeline: inlining, loop unrolling, delayed branch, ristrutturazione del codice (con cenno alle tecniche basate su analisi data flow). PDF Danelutto
30 aprile 12 13 Presentazione della laurea specialistica in Informatica e Networking Vanneschi
7 maggio 11 13 Esercitazione: Compilazione ed ottimizzazione del ciclo interno della moltiplicazione di matrici. Implementazione di una istruzione di reduce. Compilazione di un ciclo “Jacobi a 2 dimensioni”. PDF Danelutto
14 maggio 11 13 1a ora: Esercitazione: processore pipeline. Seconda ora: Ottimizzazioni pipeline. Ingresso uscita PDF Danelutto
19 maggio 14 16 Interazione fra processore ed I/O in caso di MM I/O (e INT), MM I/O con DMA (e INT) e MM I/O con DMA e processore di I/O. Multiprocessori: a processori anonimi e dedicati, SMP(UMA) e NUMA. Struttura generale. QuickPath Intel per SMP single chip (cenni). 1a ora 2a ora Danelutto
20 maggio 16 18 Reti di interconnessione per multiprocessore (cenni). Cache coherence: problema, soluzioni standard (cenni). Upper bound della performance per SMP. Trend architetturali “del momento”: multiprocessor on chip con rete di interconnessione tipo mesh, controllo del consumo mediante variazione della frequenza del clock, multiprocessori eterogenei (wirespeed). PDF Danelutto
19-20 maggio Esempi tratti da documentazione Intel e IBM PDF
21 maggio 11 13 Esercitazione: compilazione codice (bubblesort) e ottimizzazione, valutazione di tempo di servizio e di tempo di completamento. Fault di cache, tempo di completamento vero (con trattamento dei fault di cache). Traccia degli indirizzi generati e mappatura su blocchi di cache. PDF Danelutto
Il corso è finito.

Torna alla pagina di Architetture degli Elaboratori L-31 sul wiki della didattica.