Università degli Studi di Siena
Dipartimento di Ingegneria dell'Informazione e Scienze Matematiche (DIISM)
Insegnamento di
Architettura dei Calcolatori 2020-2021
 
 
 ultime notizie (home)
 registrazione matricola
 lezioni
(accesso riservato)
 errata-corrige slides
 tools per esercitazioni
 programma
 compitini/compiti
 progetti
 modalità esame
 feedback
 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
 TUTTI I COMPITI CON SOLUZIONE IN UN UNICO FILE
 BIBLIOGRAFIA DEL CORSO 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, 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.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c121lez02-boole.pdf
  • ARCAL21-VIDEOLE02.mp4
  • 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)
    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 08-Ott-2020 (09:15-10:00)
    Esercizi con Verilog e su Reti Logiche
    RISORSE:
  • Simulatore di Reti Logiche: Verilogger e Cartella di base e utilità
  • Esempi di codice Verilog: prova.v, nand.v, encoder.v, mult4to1
  •  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)
    RISORSE:
  • Esercizio n.6 dal compito del 04-11-2016.
  •  ESERCITAZIONE/LAB #02B del 15-Ott-2020 (09:15-10:00)
    Esercizi da compiti precedenti (Mealy e Moore)
    (PARTE B)
    RISORSE:
  • Esercizio n.6 dal compito del 04-11-2016.
  •  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)
    RISORSE:
  • Codice Binario del precedente programma RISC-V: memfilerv.dat
  • Programma RISC-V da eseguire sul processore RISC-V-VERILOG: riscvtest.s
  • CPURISC-V COMPLETA IN VERILOG (v.01): codice di tutti i blocchi architetturali visti a lezione e del processore mentre esegue le 17 istruzioni del precedente programma riscvtest.s e diagramma temporale di verifica
  •  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.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c121lez12-bus.pdf
  • ARCAL21-VIDEOLE12.mp4
  • RIFERIMENTI BIBLIOGRAFICI:
  • Bucci, "Calcolatori Elettronici", McGrawHill, 2017: Appendice F (Interconnessioni)
  •  LEZIONE #14 del 27-Ott-2020 (15:15-16:00)
    Esempio di complessita' interna dei chip: timer 8254
    PRESENTAZIONE/SLIDES/VIDEO:
  • c121lez14-timer.pdf
  • ARCAL21-VIDEOLE14.mp4
  • 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)
    Comunicazioni su bus seriali (pacchettizazione, Ethernet, USB) e UART 16550A.
  • Programma serialtest.c e istruzioni per l'uso.
  • PRESENTAZIONE/SLIDES/VIDEO:
  • c121lez15-ser.pdf
  • ARCAL21-VIDEOLE15.mp4
  • 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)
    RISORSE:
  • Esercizio n.1 dal compito del 04/12/2006
  •  ESERCITAZIONE/LAB #03B del 29-Ott-2020 (8:30-10:00)
    Esercizi con Verilog da compiti
    (Parte B)
    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 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: c121es03B-FILES.zip
  •  ESERCITAZIONE/LAB #13 del 03-Nov-2020 (14:30-16:00)
    Esercizi di preparazione al compito.
    RISORSE:
  • Esercizio n.4 dal compito del 21-12-2015 (verilog; produttore/consumatore).
  •  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)
    RIFERIMENTI BIBLIOGRAFICI:
  • PHRV1: CAP. 2.8 (Supporto hardware alle procedure)
  • Riferimento (opzionale): A. Waterman, K. Asanovic, The RISC-V Instruction Set Manual
  •  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)
    RISORSE:
  • Simulatore di processore RISC-V: RARS (nota: necessita di JAVA SE).
  • TABELLA DELLE ISTRUZIONI PRINCIPALI (RISC-V) disponibile durante i compiti
  • Programma sommatoria_riscv.s.
  • Programma fattoriale_riscv.s.
  • 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 #10 del 17-Nov-2020 (14:30-16:00)
    Standard IEEE-754 per il floating-point. Supporto floating point nel processore
    PRESENTAZIONE/SLIDES/VIDEO:
  • c121lez10-fp.pdf
  • ARCAL21-VIDEOLE10.mp4
  • 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 #09 del 18-Nov-2020 (12:00-13:30)
    Equazione delle prestazioni. Valutazione delle prestazioni, set di benchmark SPEC. Legge di Amdahl.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c121lez09-perf1.pdf
  • ARCAL21-VIDEOLE09.mp4
  • 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.
  •  ESERCITAZIONE/LAB #12 del 19-Nov-2020 (8:30-10:00)
    Esercizi su floating point, instrumentazioni e funzioni ricorsive.
    RISORSE:
  • Esercizio n.1 dal compito del 02-11-2007 (conversione IEEE-754-SP).
  • Simulatore di processore RISC-V: RARS (nota: necessita di JAVA SE).
  • Esercizio n.2 dal compito del 02-11-2007 (programma esterno) - c1071102-pro1_riscv.s (main) - c1071102-pro2_riscv.s (prog.esterno).
  •  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
    PRESENTAZIONE/SLIDES/VIDEO:
  • c121lez13A-dma.pdf
  • ARCAL21-VIDEOLE13A.mp4
  • RIFERIMENTI BIBLIOGRAFICI:
     LEZIONE #13B del 25-Nov-2020 (12:00-12:45)
    Pilotare i dispositivi: tecniche a polling, interrupt, DMA.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c121lez13B-dma.pdf
  • ARCAL21-VIDEOLE13B.mp4
  • 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.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c121lez16A-mem.pdf
  • ARCAL21-VIDEOLE16A.mp4
  • 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.
    RISORSE:
  • Simulatore di processore RISC-V: RARS (nota: necessita di JAVA SE).
  • Esercizio implementazione 'free' dal compito del 20-11-2018 es. n.1.
  • Programma c1181120-pro1_riscv.s.
  •  ESERCITAZIONE/LAB #07B del 26-Nov-2020 (09:15-10:00)
    Esercizi su gestione dell'I/O.
    (PARTE B)
    RISORSE:
  • Esercizio n.3 dal compito del 30/06/2016
  •  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.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c121lez16B-mem.pdf
  • ARCAL21-VIDEOLE16B.mp4
  • 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.
    PRESENTAZIONE/SLIDES/VIDEO:
  • c121es08-cache.pdf
  • ARCAL21-VIDEOES08.mp4
  • RISORSE:
  • Esercizio n.2 dal compito del 03-12-2003.
  • Esercizio n.2 dal compito del 30-11-2005.
  •  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.
    RISORSE:
  • Esercizio n.2 dal compito del 15-12-2009 (opzionale).
  • Esercizio n.1 dal compito del 03-12-2003 oppure come pagina web.
  • Simulatore di pipeline WebRISC-V
  • Illustrazione del simulatore WebRISC-V
  •  ESERCITAZIONE/LAB #14 del 15-Dic-2020 (14:30-16:00)
    Sviluppo di programmi assembly su simulatore.
    RISORSE:
  • Simulatore di processore RISC-V: RARS (nota: necessita di JAVA SE).
  • Esercizio n.1 dal compito del 10-02-2016 (metodo di Gauss-Seidel per sis. lineari FLOAT)
  • c1160210-pro1_riscv.s programma per RARS.
  • Nota: allego nota sulla Gestione delle chiamate di funzione di cui e' presente solo l'audio ma non il video per qualche strano motivo tecnico.
  •  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)