|
|
|
|
|
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 04-Ott-2021 (14:00-15:30)
| Introduzione generale. Progettazione logica -- tecnologia CMOS: porte NOT, NAND, NOR, porta di transito (circuito CMOS); ritardi di propagazione, caratteristica ingresso uscita, margini di rumore.
| | | 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 05-Ott-2021 (17:30-18:15)
| 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 05-Ott-2021 (18:15-19:00)
| 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 #04 del 08-Ott-2021 (10:15-11:00)
| Introduzione ai linguaggi di descrizione dell'hardware (HDL): Verilog.
| | | |
|
ESERCITAZIONE/LAB #01 del 08-Ott-2021 (11:00-11:45)
| Esercizi con Verilog e su Reti Logiche
| | | |
|
LEZIONE #04 del 11-Ott-2021 (14:00-14:45)
| 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 #05 del 11-Ott-2021 (14:45-15:30)
| Introduzione alle reti sequenziali: latch e flip-flop SR, clocked-SR, SR-master-salve, D-latch, D-edge-triggered e loro realizzazioni transistor-level.
(PARTE A)
| | | 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 #05 del 12-Ott-2021 (17:30-18:15)
| Introduzione alle reti sequenziali: latch e flip-flop SR, clocked-SR, SR-master-salve, D-latch, D-edge-triggered e loro realizzazioni transistor-level.
(PARTE B)
| | | 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 #06 del 12-Ott-2021 (18:15-19:00)
| Reti sequenziali -- Macchine di Mealy e di Moore: modelli VERILOG e sintesi classica. Flip-Flop JK e T.
(PARTE A)
| | | RIFERIMENTI BIBLIOGRAFICI:
CORSINI: Paragrafo 5.4 (Modelli di base per le reti sequenziali sincronizzate: il modello di Moore)
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 #02 del 15-Ott-2021 (10:15-11:45)
| Esercizi da compiti precedenti (Mealy e Moore)
| | | |
|
LEZIONE #06 del 18-Ott-2021 (14:00-14:45)
| Contatori: Ripple, Serial Carry, Parallel Carry, Ring Counter; Sommatore Parallelo con riporto seriale con riporto look-ahead
(PARTE B)
| | | RIFERIMENTI BIBLIOGRAFICI:
CORSINI: Paragrafo 5.5 (Il flip-flop JK)
PHRV1: APPENDICE A.6 (Faster Addition: Carry-Lookahead)
|
|
LEZIONE #07 del 18-Ott-2021 (14:45-15: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.9 (Comunicare con le persone)
PHRV1: CAP. 2.10 (Indirizzamento RISC-V di un campo immediato e un indirizzo ampio)
|
|
LEZIONE #07 del 19-Ott-2021 (17:30-19:00)
| Principi dei microprocessori RISC. Formati di istruzioni e istruzioni base, modalita' di indirizzamento
(PARTE B)
| | | 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.9 (Comunicare con le persone)
PHRV1: CAP. 2.10 (Indirizzamento RISC-V di un campo immediato e un indirizzo ampio)
|
|
ESERCITAZIONE/LAB #03x del 22-Ott-2021 (10:15-11:00)
| Ripasso sui Testbench per il Verilog
| | | |
|
ESERCITAZIONE/LAB #03 del 22-Ott-2021 (11:00-11:45)
| Esercizi con Verilog e su Reti Logiche
(parte A)
| | | |
|
LEZIONE #14 del 25-Ott-2021 (14:00-14:45)
| 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 25-Ott-2021 (14:45-15:30)
| | | | 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 #06 del 26-Ott-2021 (17:30-19:00)
| Seminario: FPGA System Development for Industrial Applications: A working example.
-- In this presentation we will discuss how an FPGA system is developed on an Industrial environment, starting from the customer requirements, to the system specifications, system development, integration, testing and verification. We will present the workflow, and quality checks required by using a working example from a Radar Application.
| | | RISORSE:
Dr. Calliope-Louisa Sotiropoulou is an Electronics Engineer and holds the position of R&D Manager at Campera Electronic Systems Srl. Recent projects include Radar applications development and verification systems, real-time image processing for Biomedical applications, microcontroller-FPGA interfacing for military applications, real-time monitoring for satellite plasma engines and others. Her previous work lies in the area of advanced image processing implementations and FPGA firmware design and High-Performance Computing. She participated in various upgrade projects of the ATLAS Detector Trigger and Data acquisition systems (CERN). Dr. Sotiropoulou has been granted prestigious Post-Doc scholarships such as Marie Curie (European Commission) and Scuola Galileo Galilei (University of Pisa) and awarded the IEEE NPSS TNS 2020 Best Paper Award for her publication on A Hardware Implementation of a Brain Inspired Filter for Image Processing.
Datasheet di un Digital-Analog-Converter (DAC) AD9144
|
|
ESERCITAZIONE/LAB #07A del 29-Ott-2021 (10:15-11:45) - Dr. M. Procaccini
| Esercizi su gestione dell'I/O.
(PARTE A)
| | | |
|
01-Nov-2021: Nessuna Lezione
Tutti i Santi
|
|
|
ESERCITAZIONE/LAB #03B del 02-Nov-2021 (17:30-19:00) - Dr. M. Procaccini
| Esercizi con Verilog da compiti
(Contatori)
| | | |
|
ESERCITAZIONE/LAB #13 del 05-Nov-2021 (10:15-11:45) - Dr. M. Procaccini
| Esercizi di preparazione al compito (verilog; produttore/consumatore).
(PARTE A)
| | | |
|
ESERCITAZIONE/LAB #13 del 08-Nov-2021 (14:00-15:30) - Dr. M. Procaccini
| Esercizi di preparazione al compito (verilog; produttore/consumatore).
(PARTE B)
| | | |
|
09-Nov-2021: Nessuna Lezione
PAUSA PER PREPARAZIONE COMPITINO |
|
|
12-Nov-2021 - COMPITINO (10:15-12:30)
|
|
LEZIONE #08 del 15-Nov-2021 (14:00-15:30)
| Assembly: chiamata a funzione.
(PARTE A)
| | | |
|
LEZIONE #08 del 16-Nov-2021 (17:30-18:15)
| 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
|
|
LEZIONE #10 del 16-Nov-2021 (18:15-19:00)
| Standard IEEE-754 per il floating-point. Supporto floating point nel processore
| | | |
|
ESERCITAZIONE/LAB #04 del 19-Nov-2021 (10:15-11:45)
| Sviluppo di programmi RISC-V su simulatore (PARTE A - esercizi 1 e 2)
| | | |
|
LEZIONE #09 del 22-Nov-2021 (14:00-14:45)
| Equazione delle prestazioni. Valutazione delle prestazioni, set di benchmark SPEC. Legge di Amdahl.
| | | |
|
LEZIONE #11 del 22-Nov-2021 (14:45-15:30)
| Eccezioni e interrupt. Routine di gestione dell'interrupt. Interrupt precisi e imprecisi. (PARTE A)
| | | 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 #11 del 23-Nov-2021 (17:30-18:15)
| Eccezioni e interrupt. Routine di gestione dell'interrupt. Interrupt precisi e imprecisi. (PARTE B)
| | | 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 #12 del 23-Nov-2021 (18:15-19:00)
| Tipi di bus. Protocollo di scambio sincrono e asincrono. Arbitraggio (master/slave, daisy-chain). Cenni a bus PCI.
| | | |
|
ESERCITAZIONE/LAB #12 del 26-Nov-2021 (10:15-11:45)
| Esercizi su floating point, instrumentazioni e funzioni ricorsive.
| | | |
|
LEZIONE #13 del 29-Nov-2021 (14:00-14:45)
| Requisiti dei sistemi di I/O; 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 #16 del 29-Nov-2021 (14:45-15:30)
| Tipi di memoria. Differenza fra SRAM e DRAM. Ciclo di lettura e di scrittura in DRAM. (PARTE A)
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: CAP. 5.1 (Grande e veloce: la gerarchia di memoria)
PHRV1: CAP. 5.2 (Tecnologie delle memorie)
|
|
LEZIONE #16 del 30-Nov-2021 (17:30-18:15)
| Tipi di memoria. Differenza fra SRAM e DRAM. Ciclo di lettura e di scrittura in DRAM. (PARTE B)
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: CAP. 5.1 (Grande e veloce: la gerarchia di memoria)
PHRV1: CAP. 5.2 (Tecnologie delle memorie)
|
|
LEZIONE #17 del 30-Nov-2021 (18:15-19: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)
|
|
ESERCITAZIONE/LAB #07B del 03-Dic-2021 (10:15-11:45)
| Esercizi su gestione dell'I/O.
(PARTE B)
| | | |
|
LEZIONE #17 del 06-Dic-2021 (14:00-14:45)
| Cache associative. Cache su piu' livelli. Dipendenza delle prestazioni di un calcolatore dalla cache.
(PARTE B)
| | | RIFERIMENTI BIBLIOGRAFICI:
PHRV1: CAP. 5.4 (Come misurare e migliorare le prestazioni di una cache)
|
|
LEZIONE #19 del 06-Dic-2021 (14:45-15:30)
| 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 07-Dic-2021 (17:30-19:00)
| 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 #08 del 10-Dic-2021 (10:15-11:00)
| Esercizi su cache.
| | | |
|
ESERCITAZIONE/LAB #09 del 10-Dic-2021 (11:00-11:45)
| Esercizi sulle cache e assembly.
| | | |
|
ESERCITAZIONE/LAB #05 del 13-Dic-2021 (14:00-15:30) - Dr. M. Procaccini
| Esercizi su assembly.
| | | |
|
ESERCITAZIONE/LAB #14 del 14-Dic-2021 (17:30-19:00)
| Sviluppo di programmi assembly su simulatore.
| | | |
|
17-Dic-2021 - COMPITINO (10:15-12:30)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dal 20-Dic-2021 al 21-Gen-2022: Nessuna Lezione
VACANZA/PONTE
|
|
|
Per visualizzare il contenuto delle presentazioni in formato Acrobat (.pdf) e' possibile utilizzare Acrobat Reader, rilasciato gratuitamente dalla Adobe (Download Acrobat Reader) |
|