|
|
|
|
|
|
PIANO DEL CORSO (TENTATIVO): LE DATE SONO PURAMENTE INDICATIVE E RELATIVE ALL'IPOTETICO SVOLGIMENTO REGOLARE DELLE LEZIONI. NOTA: (MI E' STATO CHIESTO...) LA NUMERAZIONE DELLE LEZIONI SI RIFERISCE SOLO ALL'ARGOMENTO, NON IMPLICA IN ALCUN MODO LO SVOLGIMENTO IN UN CERTO ORDINE. |
|
NOTA: lo svolgimento effettivo verra' aggiornato settimanalmente.
RIFERIMENTI BIBLIOGRAFICI: (PHRV1)
D.A. Patterson, J.L. Hennessy,
"Computer Organization and Design RISC-V Edition: The Hardware Software Interface",
Morgan Kaufman/Elsevier, 2017, ISBN 978-0128122754 (versione italiana: D.A. Patterson, J.L. Hennessy,
"Struttura e progetto dei calcolatori. Progettare con RISC-V" 1^a edizione ITALIANA, Zanichelli, 2019, ISBN 9788808820594)
(CORSINI) P. Corsini, "Dalle porte AND, OR, NOT al sistema calcolatore", Edizioni ETS, 2015, ISBN 9788846743114
|
|
LEZIONE #01 del 01-Ott-2020 (8:30-10:00)
| Introduzione generale. Progettazione logica -- tecnologia CMOS: porte NOT, NAND, NOR, porta di transito (stick diagram e circuito CMOS); ritardi di propagazione, caratteristica ingresso uscita, margini di rumore. (PARTE A)
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: CAP. 1.2 (Otto grandi idee sull'architettura dei calcolatori)
PHRV1: CAP. 1.3 (Cosa c'è dietro un programma)
PHRV1: CAP. 1.5 (Componenti di un calcolatore)
|
|
LEZIONE #01 del 06-Ott-2020 (14:30-16:00)
| Introduzione generale. Progettazione logica -- tecnologia CMOS: porte NOT, NAND, NOR, porta di transito (stick diagram e circuito CMOS); ritardi di propagazione, caratteristica ingresso uscita, margini di rumore. (PARTE B)
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: CAP. 1.2 (Otto grandi idee sull'architettura dei calcolatori)
PHRV1: CAP. 1.3 (Cosa c'è dietro un programma)
PHRV1: CAP. 1.5 (Componenti di un calcolatore)
|
|
LEZIONE #02 del 07-Ott-2020 (12:00-12:45)
| Richiami di algebra booleana. Progettazione logica: forme standard di funzioni booleane e mappe di Karnaugh.
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: APPENDICE A.2 (Gates, Truth Tables, and Logic Equations)
CORSINI: Paragrafo 2.8 (Mappe di Karnaugh)
|
|
LEZIONE #03 del 07-Ott-2020 (12:45-13:30)
| Reti combinatorie notevoli: Decoder, Encoder, Encoder con priorita', Multiplexer, Demultiplexer, Look-Up-Table (LUT); Full/Half Adder.
Realizzazione di semplice ALU.
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: APPENDICE A.3 (Combinational Logic)
PHRV1: APPENDICE A.12 (Field Programmable Devices)
PHRV1: APPENDICE A.5 (Constructing a Basic Arithmetic Logic Unit)
|
|
LEZIONE #04A del 08-Ott-2020 (8:30-09:15)
| Introduzione ai linguaggi di descrizione dell'hardware (HDL): Verilog.
(PARTE A)
| | | |
|
ESERCITAZIONE/LAB #01 del 08-Ott-2020 (09:15-10:00)
| Esercizi con Verilog e su Reti Logiche
| | | |
|
LEZIONE #05 del 13-Ott-2020 (14:30-16:00)
| Introduzione alle reti sequenziali: latch e flip-flop SR, clocked-SR, SR-master-salve, D-latch, D-edge-triggered e loro realizzazioni transistor-level.
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: APPENDICE A.7 (Clocks)
PHRV1: APPENDICE A.8 (Memory Elements: Flip-Flops, Latches, and Registers)
PHRV1: APPENDICE A.10 (Finite-State Machines)
PHRV1: APPENDICE A.11 (Timing Methodologies)
CORSINI: Paragrafo 3.2 (Dall'anello al latch SR)
CORSINI: Paragrafo 3.5 (Il D-latch e il D flip-flop)
|
|
LEZIONE #06A del 14-Ott-2020 (12:00-12:45)
| Reti sequenziali -- Macchine di Mealy e di Moore.
(PARTE A)
| | | RIFERIMENTI BIBLIOGRAFICI:
CORSINI: Paragrafo 5.4 (Modelli di base per le reti sequenziali sincronizzate: il modello di Moore)
|
|
LEZIONE #06B del 14-Ott-2020 (12:45-13:30)
| Reti sequenziali -- modelli VERILOG e sintesi classica. Flip-Flop JK e T.
(PARTE B)
| | | RIFERIMENTI BIBLIOGRAFICI:
CORSINI: Paragrafo 5.6 (Il riconoscitore di sequenza 11, 01, 10)
CORSINI: Paragrafo 5.7 (Modelli di base per le reti sequenziali sincronizzate: il modello di Mealy)
CORSINI: Paragrafo 5.8 (Modelli di base per le reti sequenziali sincronizzate: il modello di Mealy Ritardato)
|
|
ESERCITAZIONE/LAB #02A del 15-Ott-2020 (8:30-09:15)
| Esercizi da compiti precedenti (Mealy e Moore)
(PARTE A)
| | | |
|
ESERCITAZIONE/LAB #02B del 15-Ott-2020 (09:15-10:00)
| Esercizi da compiti precedenti (Mealy e Moore)
(PARTE B)
| | | |
|
LEZIONE #06C del 20-Ott-2020 (14:30-15:15)
| Contatori: Ripple, Serial Carry, Parallel Carry, Ring Counter; Sommatore Parallelo con riporto seriale con riporto look-ahead
(PARTE C)
| | | RIFERIMENTI BIBLIOGRAFICI:
CORSINI: Paragrafo 5.5 (Il flip-flop JK)
PHRV1: APPENDICE A.6 (Faster Addition: Carry-Lookahead)
|
|
LEZIONE #04B del 20-Ott-2020 (15:15-16:00)
| Realizzazione di un semplice processore con architettura RISC-V in Verilog
(PARTE B)
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: APPENDICE A.8 (Registers)
PHRV1: CAP. 4.1 (Il Processore)
PHRV1: CAP. 4.2 (Convenzioni del progetto logico)
PHRV1: CAP. 4.3 (Realizzazione del datapath)
PHRV1: CAP. 4.4 (Uno schema semplice di implementazione)
|
|
LEZIONE #07A del 21-Ott-2020 (12:00-13:30)
| Principi dei microprocessori RISC. Formati di istruzioni e istruzioni base, modalita' di indirizzamento
(PARTE A)
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: CAP. 2.2 (Operazioni svolte dall'hardware del calcolatore)
PHRV1: CAP. 2.3 (Operandi dell'hardware del calcolatore)
PHRV1: CAP. 2.4 (Numeri con e senza segno)
PHRV1: CAP. 2.5 (Rappresentazione delle istruzioni nel calcolatore)
PHRV1: CAP. 2.6 (Operazioni logiche)
PHRV1: CAP. 2.7 (Istruzioni per prendere decisioni)
PHRV1: CAP. 2.10 (Indirizzamento RISC-V di un campo immediato e un indirizzo ampio)
|
|
ESERCITAZIONE/LAB #03A del 22-Ott-2020 (8:30-10:00)
| Esercizi con Verilog e su Reti Logiche
(parte A)
| | | |
|
LEZIONE #12 del 27-Ott-2020 (14:30-15:15)
| Tipi di bus. Protocollo di scambio sincrono e asincrono. Arbitraggio (master/slave, daisy-chain). Cenni a bus PCI.
| | | |
|
LEZIONE #14 del 27-Ott-2020 (15:15-16:00)
| Esempio di complessita' interna dei chip: timer 8254
| | | RIFERIMENTI BIBLIOGRAFICI:
CORSINI: Paragrafo 7.10 (Struttura e gestione di un timer)
Riferimento (opzionale): INTEL, "82C84, CHMOS Programmable Interval Timer", datasheet
|
|
LEZIONE #15 del 28-Ott-2020 (12:00-12:45)
| | | | RIFERIMENTI BIBLIOGRAFICI:
CORSINI: Paragrafo 6.10 (Struttura interna di semplici interfacce seriali start/stop)
Riferimento (opzionale): TEXAS_INSTRUMENTS, "TL16C552A, dual asynchronous communication element with FIFO", datasheet
|
|
ESERCITAZIONE/LAB #07A del 28-Ott-2020 (12:45-13:30)
| Esercizi su gestione dell'I/O.
(PARTE A)
| | | |
|
ESERCITAZIONE/LAB #03B del 29-Ott-2020 (8:30-10:00)
| Esercizi con Verilog da compiti
(Parte B)
| | | |
|
ESERCITAZIONE/LAB #13 del 03-Nov-2020 (14:30-16:00)
| Esercizi di preparazione al compito.
| | | |
|
04-Nov-2020: Nessuna Lezione
PAUSA PER PREPARAZIONE COMPITINO |
|
|
05-Nov-2020 - COMPITINO (8:30-10:00)
|
|
LEZIONE #07B del 10-Nov-2020 (14:30-15:15)
| Formati di istruzioni e modalita' di indirizzamento
(PARTE B)
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: CAP. 2.9 (Comunicare con le persone)
|
|
LEZIONE #08A del 10-Nov-2020 (15:15-16:00)
| Assembly: chiamata a funzione.
(PARTE A)
| | | |
|
LEZIONE #08B del 11-Nov-2020 (12:00-13:30)
| Assemblatore a due passate. Principali direttive dell'assemblatore. Chiamata a servizi di sistema. Caricamento, collegamento di moduli multipli.
(PARTE B)
Programma fattoriale_riscv.s.
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: CAP. 2.13 (Un esempio riassuntivo in linguaggio C)
PHRV1: CAP. 2.14 (Confronto fra vettori e puntatori)
PHRV1: CAP. 2.12 (Tradurre ed avviare un programma)
Riferimento (opzionale): A. Waterman, K. Asanovic, The RISC-V Instruction Set Manual
|
|
ESERCITAZIONE/LAB #04 del 12-Nov-2020 (8:30-10:00)
| Sviluppo di programmi RISC-V su simulatore (PARTE A - esercizi 1 e 2)
| | | |
|
LEZIONE #10 del 17-Nov-2020 (14:30-16:00)
| Standard IEEE-754 per il floating-point. Supporto floating point nel processore
| | | |
|
LEZIONE #09 del 18-Nov-2020 (12:00-13:30)
| Equazione delle prestazioni. Valutazione delle prestazioni, set di benchmark SPEC. Legge di Amdahl.
| | | |
|
ESERCITAZIONE/LAB #12 del 19-Nov-2020 (8:30-10:00)
| Esercizi su floating point, instrumentazioni e funzioni ricorsive.
| | | |
|
LEZIONE #11 del 24-Nov-2020 (14:30-15:15)
| Eccezioni e interrupt. Routine di gestione dell'interrupt. Interrupt precisi e imprecisi.
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: CAP. 4.9 (Le eccezioni)
PHRV1: CAP. 5.14 (Un caso reale: il resto del sistema RISC-V e le istruzioni speciali)
|
|
LEZIONE #13A del 24-Nov-2020 (15:15-16:00)
| Requisiti dei sistemi di I/O
| | | RIFERIMENTI BIBLIOGRAFICI:
|
|
LEZIONE #13B del 25-Nov-2020 (12:00-12:45)
| Pilotare i dispositivi: tecniche a polling, interrupt, DMA.
| | | RIFERIMENTI BIBLIOGRAFICI:
CORSINI: Paragrafo 6.7 (Visione funzionale delle interfacce e loro gestione a controllo di programma)
CORSINI: Paragrafo 6.8 (Considerazioni sulla gestione dello spazio di I/O in un linguaggio ad alto livello)
CORSINI: Paragrafo 7.8 (Il sottosistema {controllore,sorgenti di interruzioni esterne})
|
|
LEZIONE #16A del 25-Nov-2020 (12:45-13:30)
| Tipi di memoria. Differenza fra SRAM e DRAM. Ciclo di lettura e di scrittura in DRAM.
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: CAP. 5.1 (Grande e veloce: la gerarchia di memoria)
PHRV1: CAP. 5.2 (Tecnologie delle memorie)
|
|
ESERCITAZIONE/LAB #05 del 26-Nov-2020 (8:30-09:15)
| Esercizi su assembly.
| | | |
|
ESERCITAZIONE/LAB #07B del 26-Nov-2020 (09:15-10:00)
| Esercizi su gestione dell'I/O.
(PARTE B)
| | | |
|
LEZIONE #16B del 01-Dic-2020 (14:30-15:15)
| Tipi di memoria. Differenza fra SRAM e DRAM. Ciclo di lettura e di scrittura in DRAM.
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: CAP. 5.1 (Grande e veloce: la gerarchia di memoria)
PHRV1: CAP. 5.2 (Tecnologie delle memorie)
|
|
LEZIONE #17A del 01-Dic-2020 (15:15-16:00)
| Gerarchia di Memoria e Principio di Localita'. Architettura delle cache: cache ad accesso diretto. Parametri caratterizzanti il funzionamento delle cache.
(PARTE A)
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: CAP. 5.3 (Principi base delle memorie cache)
|
|
LEZIONE #17B del 02-Dic-2020 (12:00-12:45)
| Gerarchia di Memoria e Principio di Localita'. Architettura delle cache: cache ad accesso diretto. Parametri caratterizzanti il funzionamento delle cache.
(PARTE B)
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: CAP. 5.3 (Principi base delle memorie cache)
|
|
LEZIONE #18 del 02-Dic-2020 (12:45-13:30)
| Cache associative. Cache su piu' livelli. Dipendenza delle prestazioni di un calcolatore dalla cache.
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: CAP. 5.4 (Come misurare e migliorare le prestazioni di una cache)
|
|
ESERCITAZIONE/LAB #08 del 03-Dic-2020 (8:30-10:00)
| Esercizi su cache.
| | | |
|
08-Dic-2020: Nessuna Lezione
Immacolata Concezione
|
|
|
LEZIONE #19 del 09-Dic-2020 (12:00-12:45)
| Memoria Virtuale: meccanismi hardware per supportarla. Paginazione a 2 o piu' livelli e a tabella inversa. TLB: Translation Lookaside Buffer.
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: CAP. 5.7 (Memoria Virtuale)
|
|
LEZIONE #20 del 09-Dic-2020 (12:45-13:30)
| Processori con pipeline. Risoluzione dei conflitti di pipeline. Limiti della pipeline e cenni ai processori superscalari.
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: CAP. 4.5 (Introduzione alla pipeline)
PHRV1: CAP. 4.6 (Unità di controllo e datapath pipelinizzati)
PHRV1: CAP. 4.7 (Hazard sui dati: propagazione e stallo)
PHRV1: CAP. 4.8 (Hazard sul controllo)
|
|
ESERCITAZIONE/LAB #09 del 10-Dic-2020 (8:30-09:15)
| Esercizi sulle cache e assembly.
| | | |
|
ESERCITAZIONE/LAB #10 del 10-Dic-2020 (09:15-10:00)
| Esercizi su processori con pipeline. Esercizi su assembly.
| | | |
|
ESERCITAZIONE/LAB #14 del 15-Dic-2020 (14:30-16:00)
| Sviluppo di programmi assembly su simulatore.
| | | |
|
16-Dic-2020: Nessuna Lezione
PAUSA PER PREPARAZIONE COMPITINO |
|
|
17-Dic-2020 - COMPITINO (8:30-10:00)
|
|
Per visualizzare il contenuto delle presentazioni in formato Acrobat (.pdf) e' possibile utilizzare Acrobat Reader, rilasciato gratuitamente dalla Adobe (Download Acrobat Reader) |
|