Università degli Studi di Siena
Dipartimento di Ingegneria dell'Informazione e Scienze Matematiche (DIISM)
Insegnamento di
Architettura dei Calcolatori 2019-2020
 
 
 ultime notizie (home)
 registrazione matricola
 lezioni
(accesso riservato)
 errata-corrige slides
 tools per esercitazioni
 programma
 orario ricevimento
 iscrizione ai compitini
(sito Facolta')
 compitini/compiti
 progetti
 registrazione gruppo
(accesso riservato)
 modalita' esame
 feedback
 RELATED LINKS
bgcolor="#FFFFFF" width="840" height="3900" border="0" cellpadding="0" cellspacing="0" valign="top" align="left">
 TUTTE LE SLIDE (TEORIA) IN UN UNICO FILE
 TUTTE LE ESERCITAZIONI IN UN UNICO FILE

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:
  • (PH1RV) D.A. Patterson, J.L. Hennessy, "Computer Organization and Design RISC-V Edition: The Hardware Software Interface",ter 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-2019 (10:00-13: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 e loro dipendenza dai parametri fisici.
     LEZIONE #02 del 03-Ott-2019 (11:00-12:00)
    Richiami di algebra booleana
     LEZIONE #03 del 03-Ott-2019 (01:00-02:00)
    Progettazione logica: forme standard di funzioni booleane e mappe di Karnaugh; reti combinatorie notevoli: Decoder, Encoder, Encoder con priorita', Multiplexer, Demultiplexer, Look-Up-Table (LUT); Full/Half Adder; Realizzazione di semplice ALU. (PARTE A)
  • PHRV1: APPENDICE A.3 -- CORSINI: Paragrafo 2.8
  •  LEZIONE #03 del 08-Ott-2019 (10:00-11:00)
    Progettazione logica: forme standard di funzioni booleane e mappe di Karnaugh; reti combinatorie notevoli: Decoder, Encoder, Encoder con priorita', Multiplexer, Demultiplexer, Look-Up-Table (LUT); Full/Half Adder; Realizzazione di semplice ALU. (PARTE B)
     LEZIONE #04 del 08-Ott-2019 (01:00-03:00)
    Introduzione ai linguaggi di descrizione dell'hardware (HDL): Verilog e relizzazione di un semplice processore con architettura RISC-V
     ESERCITAZIONE/LAB #01 del 10-Ott-2019 (11:00-13:00)
    Esercizi con Verilog e su Reti Logiche
  • Simulatore di Reti Logiche: Verilogger e Cartella di base e utilita'
  • prova.v, nand.v, encoder.v, mult4to1
  • ESERCIZIO PER CASA DA PRESENTARE IN GRUPPO PER L'ESERCITAZIONE DEL 17/11/2019:
    • Scaricare il file CPUMIPS e individuare il blocco del processore relativo al proprio gruppo.
    • Adattare il modulo Verilog scritto per il processore MIPS (a 32 bit) per il processore RISC-V (a 64 bit)
    • I moduli adattati, dovranno essere compilabili dal Verilogger e il testbench dovra' essere anch'esso adattato in modo da mostrare il corretto funzionamento del modulo (vedere snaphosts in formato PNG presenti nello stesso file del processore MIPS per ogni blocco verilog).
     LEZIONE #05 del 15-Ott-2019 (10:00-13: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; generazione di clock a due fasi.
  • PHRV1: APPENDICE A.7,A.8,A.10 e anche CORSINI: Paragrafi 3.2,3.5
  •  ESERCITAZIONE/LAB #03 del 17-Ott-2019 (11:00-13:00)
    Esercizi con Verilog e su Reti Logiche
  • Simulatore di Reti Logiche: Verilogger e Cartella di base e utilita'
  • Verifica gruppo per gruppo di ogni componente Verilog del processore RISC-V
  • Il Dr. Procaccini ha compilato questa breve guida per questa esercitazione
  •  LEZIONE #07 del 22-Ott-2019 (10:00-13:00)
    Principi dei microprocessori RISC. Formati di istruzioni e istruzioni base. Chiamata a funzione.
     ESERCITAZIONE/LAB #03b del 24-Ott-2019 (11:00-12:00)
    Esercizi con Verilog e su Reti Logiche
     ESERCITAZIONE/LAB #04 del 24-Ott-2019 (01:00-02:00)
    Sviluppo di programmi RISC-V su simulatore (PARTE A - esercizi 1 e 2)
  • Simulatore di processore RISC-V: RARS (nota: necessita di JAVA SE).
  • Programma sommatoria_riscv.s.
  • Programma fattoriale_riscv.s.
  •  LEZIONE #06 del 29-Ott-2019 (10:00-13:00)
    Reti sequenziali -- Macchine di Mealy e di Moore: modelli VERILOG e sintesi classica; Flip-Flop JK e T; Contatori: Ripple, Serial Carry, Parallel Carry, Ring Counter; Sommatore Parallelo con riporto seriale con riporto look-ahead
  • CORSINI: Paragrafi 5.4-5.8
  •  ESERCITAZIONE/LAB #03c del 31-Ott-2019 (11:00-13:00) - Dr. M. Procaccini
    Esercizi con Verilog da compiti
     LEZIONE #08 del 05-Nov-2019 (10:00-13:00)
    Assembly: modalita' di indirizzamento. Assemblatore a due passate. Principali direttive dell'assemblatore. Chiamata a servizi di sistema. Caricamento, collegamento di moduli multipli. (PARTE A)
  • Programma fattoriale_riscv.s.
  •  ESERCITAZIONE/LAB #05 del 07-Nov-2019 (11:00-13:00)
    Esercizi su assembly.
  • Esercizio implementazione 'free' dal compito del 20-11-2018 es. n.1.
  • Programma c1181120-pro1_riscv.s.
  •  LEZIONE #09 del 12-Nov-2019 (10:00-11:00)
    Equazione delle prestazioni. Valutazione delle prestazioni, set di benchmark SPEC. Legge di Amdahl.
  • Lettura: J.E. Smith, "Characterizing computer performance with a single number.",Commun. ACM 31, 10 (Oct. 1988), 1202-1206
  •  LEZIONE #10 del 12-Nov-2019 (01:00-03:00)
     ESERCITAZIONE/LAB #06 del 14-Nov-2019 (11:00-13:00)
    Sviluppo di programmi assembly su simulatore (PARTE A).
  • Ulteriori commenti su funzione "free"
  • Fibonacci iterativo
  •  LEZIONE #10 del 19-Nov-2019 (10:00-11:00)
    Supporto floating point nel processore.
     LEZIONE #11 del 19-Nov-2019 (01:00-02:00)
    Eccezioni e interrupt. Routine di gestione dell'interrupt. Interrupt precisi e imprecisi.
     LEZIONE #12 del 19-Nov-2019 (02:00-03:00)
    Tipi di bus. Protocollo di scambio sincrono e asincrono. Arbitraggio (master/slave, daisy-chain). Cenni a bus PCI.
     ESERCITAZIONE/LAB #06 del 21-Nov-2019 (11:00-13:00)
    Sviluppo di programmi assembly su simulatore (PARTE B).
  • Simulatore RARS
  • Esercizio n.1 dal compito del 02-11-2007 (conversione IEEE-754-SP).
  • Esercizio n.1 dal compito del 03-11-2009 (instrumentazione) - programma RARS (contiene i due programmi fibit e fibrc).
  • Esercizio eq.prestazioni/cpi compito 26-10-2005 --> codice matrixmul_riscv.s e codice fibonacci_riscv.s.
  •  LEZIONE #13 del 26-Nov-2019 (10:00-11:00)
    Pilotare i dispositivi: tecniche a polling, interrupt, DMA. Il caso dei PC: controllore di interrupt 8259A.
  • CORSINI: Paragrafi 6.7-6.8,7.8
  •  LEZIONE #14 del 26-Nov-2019 (01:00-02:00)
    Esempio di complessita' interna dei chip: timer 8254
  • CORSINI: Paragrafi 6.10
  •  LEZIONE #15 del 26-Nov-2019 (02:00-03:00)
    Comunicazioni su bus seriali (pacchettizazione, Ethernet, USB) e UART 16550A.
  • CORSINI: Paragrafi 7.10
  • Programma serialtest.c e istruzioni per l'uso.
  •  ESERCITAZIONE/LAB #07 del 28-Nov-2019 (11:00-13:00) - Dr. M. Procaccini
    Esercizi su gestione dell'I/O.
  • Esercizio n.1 dal compito del 04/12/2006
  • Esercizi n.1 e n.3 dal compito del 30/06/2016
  •  LEZIONE #16 del 03-Dic-2019 (10:00-11:00)
    Tipi di memoria. Differenza fra SRAM e DRAM. Ciclo di lettura e di scrittura in DRAM.
     LEZIONE #17 del 03-Dic-2019 (01:00-03:00)
    Gerarchia di Memoria e Principio di Localita'. Architettura delle cache: cache ad accesso diretto. Parametri caratterizzanti il funzionamento delle cache.
     ESERCITAZIONE/LAB #08 del 05-Dic-2019 (11:00-13:00)
    Esercizi su cache.
  • Esercizio n.2 dal compito del 03-12-2003.
  • Esercizio n.2 dal compito del 30-11-2005.
  •  LEZIONE #18 del 10-Dic-2019 (10:00-11:00)
    Cache associative. Cache su piu' livelli. Dipendenza delle prestazioni di un calcolatore dalla cache.
     LEZIONE #19 del 10-Dic-2019 (01:00-03:00)
    Memoria Virtuale: meccanismi hardware per supportarla. Paginazione a 2 o piu' livelli e a tabella inversa. TLB: Translation Lookaside Buffer.
     ESERCITAZIONE/LAB #09 del 12-Dic-2019 (11:00-13:00)
    Esercizi sulle cache e assembly.
  • Esercizio n.2 dal compito del 04-12-2007.
  •  LEZIONE #20 del 17-Dic-2019 (10:00-11:00)
    Processori con pipeline. Risoluzione dei conflitti di pipeline. Limiti della pipeline e cenni ai processori superscalari.
     ESERCITAZIONE/LAB #11 del 17-Dic-2019 (01:00-02:00)
    Illustrazione del simulatore della pipeline.
  • Illustrazione del simulatore WebRISC-V per visualizzare il comportamento della pipeline del processore RISC-V.
  •  ESERCITAZIONE/LAB #10 del 17-Dic-2019 (02:00-03:00)
    Esercizi su processori con pipeline. Esercizi su assembly. (PARTE A)
  • Esercizio n.2 dal compito del 15-12-2009.
  • Esercizio n.1 dal compito del 03-12-2003.
  • Programma det3x3.c.
  • Programma det3x3_riscv.s per RARS.
  •  ESERCITAZIONE/LAB #12 del 19-Dic-2019 (11:00-12:00)
    Esercizi di preparazione al compito.
  • Esercizio n.2 dal compito del 02-11-2007 (programma esterno) - c1071102-pro1_riscv.s (main) - c1071102-pro2_riscv.s (prog.esterno).
  •  ESERCITAZIONE/LAB #13 del 19-Dic-2019 (01:00-02:00)
    Esercizi di preparazione al compito.
  • Esercizio n.4 dal compito del 21-12-2015 (verilog; produttore/consumatore).
  •  dal 24-Dic-2019 al 07-Gen-2020: Nessuna Lezione
    VACANZA/PONTE
     ESERCITAZIONE/LAB #14 del 09-Gen-2020 (11:00-13:00)
    Esercizi di preparazione al compito.
  • Esercizio n.1 dal compito del 10-02-2016 (metodo iterativo di Gauss-Seidel per sis. lineari FLOAT) - c1160210-pro1_riscv.s.
  •  14-Gen-2020 - COMPITINO (10:00-14:00)






    Per visualizzare il contenuto delle presentazioni in formato Acrobat (.pdf) e' possibile utilizzare Acrobat Reader, rilasciato gratuitamente dalla Adobe (Download Acrobat Reader)