===== Architetture degli Elaboratori (Corso B) 2009-2010 =====
==== Registro delle lezioni ==== 
Il registro ufficiale delle lezioni è pubblicato sul [[http://unimap.unipi.it/registri/dettregistriNEW.php?re=29634::::&ri=4278|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 | [[http://backus.di.unipi.it/~marcod/AE/PrimaOra2509.pdf|1a ora]] [[SecondaOra2509.pdf|2a ora]] | Danelutto |
| 30 set | 14 | 16 | Sistema binario. Conversione da e per binario. Rappresentazioni modulo e segno e complemento a 2. Operazioni notevoli | [[http://backus.di.unipi.it/~marcod/AE/DueOre3009.pdf|1a e 2a ora]] | Danelutto |
| 2 ott | 11 | 13 | Componenti elementari (registri, ALU, memoria) | [[http://backus.di.unipi.it/~marcod/AE/ae031009.pdf|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) | [[http://backus.di.unipi.it/~marcod/AE/07102009.pdf|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. | [[http://backus.di.unipi.it/~marcod/AE/09102009.pdf|1a e 2a ora]] | Danelutto |
| 14 ott | 14 | 16 | Reti sequenziali: definizione, modello di Mealy e di Moore, automi corrispondenti, implementazione LLC | [[http://backus.di.unipi.it/~marcod/AE/14102009a.pdf|1a ora]] [[http://backus.di.unipi.it/~marcod/AE/14102009b.pdf|2a ora]] | Danelutto |
| 16 ott | 11 | 13 | Analisi e sintesi di reti sequenziali. Esempi. Cenni alla realizzazione di elementi di memoria (Flip flop D) | [[http://backus.di.unipi.it/~marcod/AE/16102009.pdf|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. | [[http://backus.di.unipi.it/~marcod/AE/23102009.pdf|1a e 2a ora]] | Danelutto |
| 28 ott | 14 | 16 | Procedimento formale di derivazione PO/PC da microprogramma | [[http://backus.di.unipi.it/~marcod/AE/28102009.pdf|1a e 2a ora]] | Danelutto |
| 30 ott | 11 | 13 | Esercitazione su unità firmware e calcolo del ciclo di clock | [[http://backus.di.unipi.it/~marcod/AE/30102009.pdf|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. | [[http://backus.di.unipi.it/~marcod/AE/6112009.pdf|1a e 2a ora]] | Danelutto | 
| 18 nov | 14 | 16 | Ottimizzazione del microcodice, condizioni di Bernestein e Introduzione del concetto di controllo residuo | [[http://backus.di.unipi.it/~marcod/AE/18112009-2.pdf|2a ora]] (gli schizzi della prima ora sono persi) | Danelutto |
| 20 nov | 11 | 12.30 | Esercitazione su realizzazione di unità firmware. | [[http://backus.di.unipi.it/~marcod/AE/19112009.pdf|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. | [[http://backus.di.unipi.it/~marcod/AE/25112009.pdf|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. | [[http://backus.di.unipi.it/~marcod/AE/27112009.pdf|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"). | [[http://backus.di.unipi.it/~marcod/AE/2122009.pdf|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. | [[http://backus.di.unipi.it/~marcod/AE/04122009.1.pdf|1a ora]][[http://backus.di.unipi.it/~marcod/AE/04122009.2.pdf|2a ora]] | Danelutto |
| 9 dic | 14 | 16 | Esercitazione: firmware | [[http://backus.di.unipi.it/~marcod/AE/09122009.pdf|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 |  [[http://backus.di.unipi.it/~marcod/AE/24feb10.pdf|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. | [[http://backus.di.unipi.it/~marcod/AE/3mar10.pdf|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. | [[http://backus.di.unipi.it/~marcod/AE/5mar10.pdf|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. | [[http://backus.di.unipi.it/~marcod/AE/12mar10.pdf|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. | [[http://backus.di.unipi.it/~marcod/AE/17mar10.pdf|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.  | [[http://backus.di.unipi.it/~marcod/AE/19mar10.pdf|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.  | [[http://backus.di.unipi.it/~marcod/AE/24mar10.pdf|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). | [[http://backus.di.unipi.it/~marcod/AE/26mar10.pdf|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. | [[http://backus.di.unipi.it/~marcod/AE/14apr010.pdf|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. | [[http://backus.di.unipi.it/~marcod/AE/16apr10.pdf|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. | [[http://backus.di.unipi.it/~marcod/AE/23apr10.pdf|1a e  2a ora]] | Danelutto |
| 28 aprile | 14 | 15 | Modello analitico per le prestazioni del processore pipeline. | [[http://backus.di.unipi.it/~marcod/AE/28apr10lez.pdf|PDF]] | Danelutto |
| 28 aprile | 15 | 16 | Esempi di valutazione delle prestazioni per processore pipeline | [[http://backus.di.unipi.it/~marcod/AE/28apr10es.pdf|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). | [[http://backus.di.unipi.it/~marcod/AE/30apr10es.pdf|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". | [[http://backus.di.unipi.it/~marcod/AE/7mag10.pdf|PDF]] | Danelutto |
| 14 maggio | 11 | 13 | 1a ora: Esercitazione: processore pipeline. Seconda ora: Ottimizzazioni pipeline. Ingresso uscita | [[http://backus.di.unipi.it/~marcod/AE/14mag10.pdf|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). | [[http://backus.di.unipi.it/~marcod/AE/19mag10a.pdf|1a ora]] [[http://backus.di.unipi.it/~marcod/AE/19mag10b.pdf|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). | [[http://backus.di.unipi.it/~marcod/AE/20mag10.pdf|PDF]] | Danelutto |
| 19-20 maggio | | | Esempi tratti da documentazione Intel e IBM | [[http://backus.di.unipi.it/~marcod/AE/archie.pdf|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. | [[http://backus.di.unipi.it/~marcod/AE/21mag10.pdf|PDF]] | Danelutto |
|||| Il corso è finito.  ||||||
[[http://www.cli.di.unipi.it/doku/doku.php/informatica/ae/start|Torna]] alla pagina di Architetture degli Elaboratori L-31 sul wiki della didattica. 