Giorno | Argomenti | Audio | Lavagna |
26/09 | Introduzione al corso. Strutturazione a livelli. Compilazione e Interpretazione. | 1a ora2a ora | Lavagna |
03/10 | Moduli. Forme di parallelismo fra moduli: replicazione funzionale (farm) e pipeline. Moduli e architettura firmware. Rappresentazione dell'informazione: sistema binario, conversione da e per binario. Rappresentazione in modulo e segno e complemento a due di numeri interi relativi. | 1a ora2a ora | Lavagna |
05/10 | Range nella rappresenazioni di numeri in binario. Operazioni notevoli. Algebra booleana. Porte logiche. Esempio: addizionatore (senza e con riporto), con considerazioni su livelli di porte e tempi di calcolo. | 1a ora2a ora | Lavagna |
17/10 | Reti logiche combinatorie: utilizzo della sola porta NAND, cenni al processo di fabbricazione dei circuiti integrati. Componenti standard: comparatore, commutatore, selettore, ALU. Componenti composti: commutatore e confrontatore da n bit. Cenni alle mappe di Karnaugh | 1a ora2a ora | Lavagna |
19/10 | Reti logiche sequenziali: automi, reti sequenziali di Mealy e di Moore. Ciclo di clock. Banda. Sintesi e analisi di reti sequenziali. | 1a ora2a ora | Lavagna |
24/10 | Esercitazione su reti logiche combinatorie (addizionatore, commutatore, potenze di due, con considerazioni su tempi di stabilizzazione, metodo canonico e metodo algoritmico con componenti standard) e sequenziali (automi di Mealy e Moore e reti seq per riconoscitore AABB, cenni a trasformazione Mealy ←→ Moore) | 1a ora2a ora | Lavagna |
26/10 | Componente memoria, memoria a doppia porta, memoria modulare: organizzazione sequenziale ed interallacciata. Unità firmware: parte operativa e parte controllo, funzionalità, tipo (Mealy/Moore), esempio di parte controllo, schema del procedimento formale di progettazione di una unità firmware. | 1a ora 2a ora non disponibile | Lavagna |
31/10 | Sincronizzazione a transizione di livelli. Derivazione formale di PO e PC da microprogramma. | 1a ora2a ora | Lavagna |
2/11 | Calcolo del ciclo di clock. Esercitazione: progettazione di una semplice unità firmware. | 1a ora2a ora | Lavagna |
9/11 | Variabili di condizionamento. Ottimizzazione microcodice (Condizioni di Bernstein). Controllo residuo. Esercizio: Implementazione di una unità STACK, con ottimizzazione del microcodice. | 1a ora2a ora | Lavagna |
16/11 | Esercitazione: completamento eserczio unità stack, Introduzione al Verilog. | 1a ora2a ora | Lavagna |
21/11 | Introduzione linguaggio assembler. Spazio di indirizzamento logico. Set di istruzioni assembler D-RISC: principali istruzioni e rappresentazione interna. | 1a ora2a ora | Lavagna |
23/11 | Istruzioni speciali D-RISC con cenni alla gestione delle interruzioni e arbitraggio della memoria. Compilazione di un sottoinsieme del linguaggio C in D-RISC. Esempi di compilazione. | 1a ora2a ora | Lavagna |
28/11 | Compilazione di codice con assegnazione registri. Codice “binario”. Interfaccia con il sottosistema di memoria e interprete firware per l'assembler D-RISC. | 1a ora2a ora | Lavagna |
30/11 | Esercitazione: estensione D-RISC con istruzione IFMEM=, analisi del microcodice di una unità firmware. (audio non ancora disponibile, da recuperare dal crash di Audacity) | 1a ora2a ora | Lavagna |
5/12 | Metodi benchmark e mix per la valutazione di processori. Trattemento delle interruzioni: fase fw, fase ASM, valutazione del ritardo. I/O: arbitraggio delle interruzioni, Bus di I/O e DMA, memory mapped I/O. | 1a ora2a ora | Lavagna |
7/12 | Prima ora: Disabilitazione interruzioni nella fase ASM del trattamento interruzione. DMA. Schedulazione di processi. Struttura di massima del PCB. Seconda ora: esercitazione (firmware) OmegaPC e SigmaPC, ottimizzazione di microcodice, calcolo di un ritardo massimo di stabilizzazione per la parte controllo a partire dal numero di microistruzioni, di frasi e di variabili di condizionamento del microprogramma di controllo. | 1a ora2a ora | Lavagna |
12/12 | Esercitazione firmware: controllo residuo per interfacciamento con unità multiple, accesso a memoria con indirizzi rappresentati come potenze di due, eliminazione di variabili di condizionamento complesse e cicli. Assembler: allocazione registri, assegnazione esercizio su tracce di indirizzi generate dall'esecuzione. | 1a ora2a ora | Lavagna |
14/12 | Esercitazione | 1a ora2a ora | Lavagna |
Materiale dell libro di testo relativo alla prima parte del corso: Capitolo I, II, III, IV (fino al 5.6 escluso), V, VII (fino al 3.5 escluso), IX (1, 2 e 3.2) |
18/02/2013 | Gerarchie di memoria. Paginazione. Cache ad indirizzamento diretto e completamente associativo: principi e implementazione. Cache ad indirizzamento associativo su insiemi | 1a ora2a ora | Lavagna |
21/02/2013 | Cache set associative: indirizzamento e modalità di implementazione. Bit di controllo. Algoritmi per il rimpiazzamento dei blocchi. Costo dei trasferimenti da/per il livello superiore della gerarchia di memoria. Tempo ideale e Tempo di completamento di un programma D-RISC | 1a ora2a ora | Lavagna |
25/02/2013 | Lezione non tenuta per la sospensione della didattica per le elezioni | | |
28/02/2013 | Lezione non tenuta per missione del docente | | |
4/03/2013 | Working set (completamento). Flag per la gestione della cache (non deallocare, prefetch). Politiche per il trattamento delle scritture (write through e write back). Valutazione del tempo di complementamento di un programma D-RISC: tempo ideale e tempo di completamento (con trattamento dei fault). Seconda ora: esercizi su traccia di indirizzi, working set, traduzione indirizzi. | 1a ora2a ora | Lavagna |
7/03/2013 | Forme di parallelismo. Richiami dalla parte iniziale del corso. Tempo di servizio e Latenza. Calcolo del tempo di Completamento. Code e fattore di utilizzo | 1a ora2a ora | Lavagna |
11/03/2013 | Processore pipeline. Degradi delle prestazioni dovute a salti e dipendenze logiche. | 1a ora2a ora | Lavagna |
14/03/2013 | Modello analitico delle prestazioni per il processore pipeline (con esercizi) | 1a ora2a ora | Lavagna |
18/03/2013 | Struttura delle unità di un processore pipeline (dettagli). Ottimizzazioni per controllo del degrado delle prestazioni: salto ritardato, loop unrolling, inlining, spostamento di codice. | 1a ora2a ora | Lavagna |
21/03/2013 | Esercitazione su processore pipeline: valutazione e ottimizzazione di codice | 1a ora2a ora | Lavagna |
25/03/2013 | Architetture con unità di esecuzione multiple di tipo pipeline. Dipendenze EU-EU. Esecuzione e schedulazione di istruzioni out-of-order. | 1a ora2a ora | Lavagna |
08/04/2013 | Branch prediction. Modelli analitici per valutazione del tempo di servizio su architetture pipeline con unità di esecuzione multiple e trattamento delle interruzioni. | 1a ora2a ora | Lavagna |
11/04/2013 | Introduzione alle archittture superscalari | 1a ora2a ora | Lavagna |
15/04/2013 | Archittture superscalari: modello dei costi, struttura parallela di IU, EU e DM. Multithreading: modello blocked e interleaved. | 1a ora2a ora | Lavagna |
18/04/2013 | Multithreading: dettagli sulla commutazione di thread, multithreading e superscalare. Organizzazione di CPU multithreaded e multicore. | 1a ora2a ora | Lavagna |
29/04/2013 | Esercitazione: gerarchie di memoria, dipendenze logiche, architetture pipeline con EU parallele e architetture superscalari. | 1a ora2a ora | Lavagna |
02/05/2013 | Esercitazione: architetture superscalari | 1a ora2a ora | Lavagna |
06/05/2013 | Evoluzione delle architetture: prospettive e nuove tecnologie. | 1a e 2a ora | Lavagna |
12/05/2013 | Lezioni facoltative su Verilog: sintassi dettagliata del sottoinsieme del linguaggio da utilizzare per il progetto. | 1a ora2a ora | Lavagna Slide |
16/05/2013 | Lezioni facoltative su Verilog: comandi di sistema, compilazione ed esecuzione di programmi di test, esempi di reti combinatorie e sequenziali. | audio video | Lavagna |
20/05/2013 | Ricevimento in classe | | |
–> Registro ufficiale delle lezioni | –> Didawiki AE |