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. | Danelutto | |
28 aprile | 15 | 16 | Esempi di valutazione delle prestazioni per processore pipeline | 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). | 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”. | Danelutto | |
14 maggio | 11 | 13 | 1a ora: Esercitazione: processore pipeline. Seconda ora: Ottimizzazioni pipeline. Ingresso uscita | 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). | Danelutto | |
19-20 maggio | Esempi tratti da documentazione Intel e IBM | ||||
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. | Danelutto | |
Il corso è finito. |
Torna alla pagina di Architetture degli Elaboratori L-31 sul wiki della didattica.