Università degli Studi di Siena
Dipartimento di Ingegneria dell'Informazione e Scienze Matematiche (DIISM)
Insegnamento di
Architettura dei Calcolatori 2024-2025
 
 
 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
 modalità esame
 RELATED LINKS
bgcolor="#FFFFFF" width="840" height="3900" border="0" cellpadding="0" cellspacing="0" valign="top" align="left">
 PRIMA PARTE DELLE SLIDE (TEORIA) IN UN UNICO FILE
 SECONDA PARTE DELLE SLIDE (TEORIA) IN UN UNICO FILE
 PRIMA PARTE DELLE ESERCITAZIONI IN UN UNICO FILE
 SECONDA PARTE DELLE 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:
  • (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, 2020, ISBN 9788846759351
  •  LEZIONE #01 del 01-Ott-2024 (09:00-11:00)
    Introduzione generale. Progettazione logica -- tecnologia CMOS: porte NOT, NAND, NOR, porta di transito (circuito CMOS); ritardi di propagazione, caratteristica ingresso uscita, margini di rumore.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez01-intro.pdf
  • 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 02-Ott-2024 (11:00-12:00)
    Richiami di algebra booleana. Progettazione logica: forme standard di funzioni booleane e mappe di Karnaugh.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez02-boole.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • PHRV1: APPENDICE A.2 (Gates, Truth Tables, and Logic Equations)
  • CORSINI: Paragrafo 2.8 (Mappe di Karnaugh)
  •  LEZIONE #03 del 02-Ott-2024 (12:00-13:00)
    Reti combinatorie notevoli: Decoder, Encoder, Encoder con priorita', Multiplexer, Demultiplexer, Look-Up-Table (LUT); Full/Half Adder. Realizzazione di semplice ALU.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez03-gates.pdf
  • 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 03-Ott-2024 (11:00-12:00)
    Introduzione ai linguaggi di descrizione dell'hardware (HDL): Verilog.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez04-intro_hdl.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • PHRV1: APPENDICE A.4
  • Riferimento (opzionale): M. Danelutto, "Note sull'utilizzo di Verilog"
  • Riferimento (opzionale): 1364-2001 - IEEE Standard Verilog Hardware Description Language
  •  ESERCITAZIONE/LAB #01 del 03-Ott-2024 (12:00-13:00)
    Esercizi con Verilog e su Reti Logiche
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125es01-verilogtools2.pdf
  • RISORSE:
  • Simulatore di Reti Logiche: Verilogger e Cartella di base e utilità
  • Esempi di codice Verilog: prova.v, nand.v, encoder.v, mult4to1
  • Comandi essenziali del VERILOG: VERILOG CHEAT-SHEET
  •  LEZIONE #05 del 08-Ott-2024 (09:00-11: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.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez05-seqnet1.pdf
  • 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 09-Ott-2024 (11:00-13:00)
    Reti sequenziali -- Macchine di Mealy e di Moore: modelli VERILOG e sintesi classica. Flip-Flop JK e T.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez06-seqnet2.pdf
  • 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 10-Ott-2024 (11:00-12:00)
    Esercizi da compiti precedenti (Mealy e Moore)
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125es02-mealymoore.pdf
  • RISORSE:
  • Esercizio n.6 dal compito del 04-11-2016.
  •  ESERCITAZIONE/LAB #03 del 10-Ott-2024 (12:00-13:00)
    Ripasso sui Testbench per il Verilog
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125es03-testbench.pdf
  • RISORSE:
  • NAND semplice: nand_semplice.v
  • Flip-flop D-Edge Triggered realizzato con FF-SR Master-Slave: DETconSRMS.v
  • Riconoscitore di Sequenza 110110 con modello di Moore: RIC.SEQ.Moore.v
  •  LEZIONE #07 del 15-Ott-2024 (09:00-11:00)
    Principi dei microprocessori RISC. Formati di istruzioni e istruzioni base, modalita' di indirizzamento
    (PARTE A)
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez07-riscv1.pdf
  • 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 15-Ott-2024 (14:00-15:00)
    Principi dei microprocessori RISC. Formati di istruzioni e istruzioni base, modalita' di indirizzamento
    (PARTE B)
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez07-riscv1.pdf
  • 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 #08 del 15-Ott-2024 (15:00-16:00)
    Esempio di complessita' interna dei chip: timer 8254
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez08-timer.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • CORSINI: Paragrafo 7.10 (Struttura e gestione di un timer)
  • Riferimento (opzionale): INTEL, "82C84, CHMOS Programmable Interval Timer", datasheet - local copy of 82c84 datasheet
  •  ESERCITAZIONE/LAB #04 del 17-Ott-2024 (11:00-13:00)
    Esercizi con Verilog e su Reti Logiche
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125es04-verilog_riscv2.pdf
  • RISORSE:
  • Programma RISC-V da eseguire sul processore RISC-V-VERILOG: riscvtest.s
  • Note operative per questa esercitazione
  • MATERIALE DA SCARICARE DURANTE L'ESERCITAZIONE:
    1. CPURISC-V COMPLETA IN VERILOG (v.02): codice di tutti i blocchi architetturali visti a lezione e del processore mentre esegue le 17 istruzioni del precedente programma riscvtest.s
    2. Codice Binario del precedente programma RISC-V: memfilerv.dat
    3. diagramma temporale di verifica
    4. modello del testbench da unire al modulo da testare
  •  LEZIONE #09 del 22-Ott-2024 (09:00-10:00)
    Comunicazioni su bus seriali (pacchettizazione, Ethernet, USB) e UART 16550A.
  • Programma serialtest.c e istruzioni per l'uso.
  • PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez09-ser.pdf
  • 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 #05 del 22-Ott-2024 (10:00-11:00)
    Esercizi su Timer e Porta Seriale.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125es05-timerser.pdf
  • RISORSE:
  • Esercizio n.3 dal compito del 06-11-2023.
  • Esercizio n.7 dal compito del 04-12-2006.
  •  ESERCITAZIONE/LAB #06 del 23-Ott-2024 (11:00-13:00)
    Esercizi con Verilog da compiti
    Esercizi vari da compiti precedenti.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125es06-reti_seq.pdf
  • RISORSE:
  • Esercizio n.7 dal compito del 17-01-2018.
  • Esercizio n.7 dal compito del 14-02-2018.
  • Esercizio n.7 dal compito del 14-11-2017.
  • Esercizio n.7 dal compito del 08-02-2019.
  • Esercizio n.7 dal compito del 11-04-2018.
  • Esercizio n.7 dal compito del 01-03-2018.
  • Progetti e diagrammi temporali Verilog: ARCAL_VERILOG_ES06.zip
  •  ESERCITAZIONE/LAB #07 del 24-Ott-2024 (11:00-13:00)
    Esercitazione con board FPGA e RISC-V.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125es07-rvfpga.pdf
  •  ESERCITAZIONE/LAB #08 del 29-Ott-2024 (09:00-11:00)
    Esercizi di preparazione al compito (verilog; produttore/consumatore).
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125es08-prodcons.pdf
  • RISORSE:
  • Esercizio n.7 dal compito del 21-12-2015.
  •  ESERCITAZIONE/LAB #09 del 30-Ott-2024 (11:00-13:00)
    Esercizi di preparazione al compito.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125es09-exercizes.pdf
  • RISORSE:
  • Esercizio n.4 dal compito del 06-11-2023.
  • Esercizio n.4 dal compito del 10-11-2022.
  • Esercizio n.4 dal compito del 12-11-2021.
  •  31-Ott-2024: Nessuna Lezione
    PAUSA PER PREPARAZIONE COMPITINO
     05-Nov-2024 - COMPITINO (08:00-11:00)

     LEZIONE #11 del 06-Nov-2024 (11:00-13:00)
    Assembly: chiamata a funzione.
    (PARTE A)
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez11-riscv2.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • PHRV1: CAP. 2.8 (Supporto hardware alle procedure)
  • Riferimento (opzionale): A. Waterman, K. Asanovic, The RISC-V Instruction Set Manual
  •  LEZIONE #11 del 07-Nov-2024 (11:00-12:00)
    Assemblatore a due passate. Principali direttive dell'assemblatore. Chiamata a servizi di sistema. Caricamento, collegamento di moduli multipli.
    (PARTE B)
  • Programma fattoriale_riscv.s.
  • PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez11-riscv2.pdf
  • 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 #11 del 07-Nov-2024 (12:00-13:00)
    Sviluppo di programmi RISC-V su simulatore
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125es11-riscvex1.pdf
  • RISORSE:
  • Simulatore di processore RISC-V: RARS (nota: necessita di JAVA SE (almeno v.1.8)).
  • TABELLA DELLE ISTRUZIONI PRINCIPALI (RISC-V) disponibile durante i compiti
  • Programma sommatoria_riscv.s.
  • Programma fattoriale_riscv.s.
  •  LEZIONE #12 del 12-Nov-2024 (09:00-10:00)
    Standard IEEE-754 per il floating-point. Supporto floating point nel processore
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez12-fp.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • PHRV1: CAP. 3.5 (Numeri in virgola mobile)
  • Riferimento (opzionale): IEEE-754-2008 standard
  • Lettura (opzionale): D. Goldberg, What Every Computer Scientist Should Know About Floating-Point Arithmetic, ACM Computing Surveys, pp.5-48, Mar. 1991
  •  LEZIONE #13 del 12-Nov-2024 (10:00-11:00)
    Equazione delle prestazioni. Valutazione delle prestazioni, set di benchmark SPEC. Legge di Amdahl.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez13-perf.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • PHRV1: CAP. 1.6,1.9,1.10
  • Lettura (opzionale): J.E. Smith, Characterizing computer performance with a single number.,Commun. ACM pp.1202-1206, Oct. 1988.
  •  LEZIONE #14 del 13-Nov-2024 (11:00-13:00)
    Eccezioni e interrupt. Routine di gestione dell'interrupt. Interrupt precisi e imprecisi.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez14-interrupt.pdf
  • 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)
  •  ESERCITAZIONE/LAB #12 del 14-Nov-2024 (11:00-13:00)
    Esercizi su floating point, instrumentazioni e funzioni ricorsive.
    RISORSE:
  • Esercizio n.1 dal compito del 03-11-2009 (instrumentazione) - c1091103-pro1_riscv.s (programma RARS che contiene i due programmi fibit e fibrc in un unico file).
  • Esercizio n.2 dal compito del 02-11-2007(programma esterno) - c1071102-pro1_riscv.s (main) - c1071102-pro2_riscv.s (prog.esterno).
  • Esercizio n.1 dal compito del 10-02-2016 - (esecuzione di programma floating point (Jacobi iterative method), codice jacobi_riscv.s.
  • Esercizio n.1 dal compito del 26-10-2005 (load/store su elementi di matrice), codice matrixmul_riscv.s.

  • Simulatore di processore RISC-V: RARS (nota: necessita di JAVA SE (almeno v.1.8)).
  •  LEZIONE #15 del 19-Nov-2024 (09:00-10:00)
    Tipi di bus. Protocollo di scambio sincrono e asincrono. Arbitraggio (master/slave, daisy-chain).
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez15-bus.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • Bucci, "Calcolatori Elettronici", McGrawHill, 2017: Appendice F (Interconnessioni)
  •  LEZIONE #16 del 19-Nov-2024 (10:00-11:00)
    Requisiti dei sistemi di I/O; Pilotare i dispositivi: tecniche a polling, interrupt, DMA
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez16-dma.pdf
  • 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 #17 del 20-Nov-2024 (11:00-12:00)
    Tipi di memoria. Differenza fra SRAM e DRAM. Ciclo di lettura e di scrittura in DRAM.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez17-mem.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • PHRV1: CAP. 5.1 (Grande e veloce: la gerarchia di memoria)
  • PHRV1: CAP. 5.2 (Tecnologie delle memorie)
  •  LEZIONE #18 del 20-Nov-2024 (12:00-13:00)
    Gerarchia di Memoria e Principio di Localita'. Architettura delle cache: cache ad accesso diretto. Parametri caratterizzanti il funzionamento delle cache.
    (PARTE A)
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez18-cache.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • PHRV1: CAP. 5.3 (Principi base delle memorie cache)
  •  ESERCITAZIONE/LAB #13 del 21-Nov-2024 (11:00-13:00)
    Esercizi su gestione dell'I/O.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125es13-iodrivers.pdf
  •  LEZIONE #18 del 26-Nov-2024 (09:00-11:00)
    Gerarchia di Memoria e Principio di Localita'. Architettura delle cache: cache ad accesso diretto. Parametri caratterizzanti il funzionamento delle cache.
    (PARTE B)
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125lez18-cache.pdf
  • RIFERIMENTI BIBLIOGRAFICI:
  • PHRV1: CAP. 5.3 (Principi base delle memorie cache)
  •  ESERCITAZIONE/LAB #15 del 27-Nov-2024 (11:00-13:00)
    Esercizi su cache.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125es15-cache.pdf
  • RISORSE:
  • Esercizio n.2 dal compito del 03-12-2003.
  • Esercizio n.2 dal compito del 30-11-2005.
  •  ESERCITAZIONE/LAB #14 del 28-Nov-2024 (11:00-12:00)
    Esercizi su puntatori.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125es14-pointers_functions.pdf
  • RISORSE:
  • Esercizio n.1 dal compito del 20-12-2022.
  •  ESERCITAZIONE/LAB #17 del 28-Nov-2024 (12:00-13:00)
    Esercizi su assembly. (PARTE A)
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125es17-free_riscv.pdf
  • RISORSE:
  • Simulatore di processore RISC-V: RARS (nota: necessita di JAVA SE (almeno v.1.8)).
  • Esercizio implementazione 'free' dal compito del 20-11-2018 es. n.1.
  • Programma c1181120-pro1_riscv.s.
  •  ESERCITAZIONE/LAB #17 del 03-Dic-2024 (09:00-11:00)
    Esercizi su assembly. (PARTE B)
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125es17-free_riscv.pdf
  • RISORSE:
  • Simulatore di processore RISC-V: RARS (nota: necessita di JAVA SE (almeno v.1.8)).
  • Esercizio implementazione 'free' dal compito del 20-11-2018 es. n.1.
  • Programma c1181120-pro1_riscv.s.
  •  ESERCITAZIONE/LAB #19 del 04-Dic-2024 (11:00-13:00)
    Sviluppo di programmi assembly su simulatore.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c125es19-gauss_seidel_float.pdf
  • RISORSE:
  • Simulatore di processore RISC-V: RARS (nota: necessita di JAVA SE (almeno v.1.8)).
  • Esercizio n.1 dal compito del 10-02-2016 (metodo di Gauss-Seidel per sis. lineari FLOAT)
  • c1160210-pro1_riscv.s programma per RARS.
  •  05-Dic-2024: Nessuna Lezione
    PAUSA PER PREPARAZIONE COMPITINO
     10-Dic-2024 - COMPITINO2 (09:00-12:00)






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