matite e gomma

Logo di Conformità WCAG-1 di Livello Tripla A, W3C-WAI Web Content Accessibility Guidelines 1.0

Validazione XHTML 1.0 Validazione CSS 3
Logo del Dipartimento di Matematica e Informatica, Insegnamento di Architettura degli elaboratori

Guida rapida all'insegnamento

Architettura degli elaboratori

Docenti: A-L: Giuseppe Scollo, M-Z: Christian Napoli

Università di Catania
Dipartimento di Matematica e Informatica
Corso di Laurea in Informatica, I livello, AA 2018-19

Indice

  1. Guida rapida all'insegnamento
  2. Organizzazione dell'insegnamento
  3. Obiettivi formativi
  4. Attività formative
  5. Modalità di valutazione
  6. Programma delle lezioni ed esercitazioni (1)
  7. Programma delle lezioni ed esercitazioni (2)
  8. Testi consigliati
  9. Testi per consultazione
  10. Laboratorio
  11. Simulatori presentati (1)
  12. Simulatori presentati (2)
  13. Simulatori presentati (3)
  14. Simulatori realizzati
  15. Interazioni

Organizzazione dell'insegnamento

Obiettivi formativi

Acquisizione e sviluppo della capacità di:

Attività formative

L'organizzazione dell'insegnamento prevede 36 ore di lezione e 36 ore di esercitazione (lunedì e mercoledì, h. 10:00-13:00)

L'acquisizione di concetti e metodi nella disciplina è sostenuta da:

Modalità di valutazione

le modalità di valutazione che seguono si applicano agli studenti del corso A-L e di A.A. precedenti

il calendario delle prove scritte è comune a entrambi i corsi

Il superamento dell'esame porta all'acquisizione di 9 crediti.

Programma delle lezioni ed esercitazioni (1)

  1. Finalità e organizzazione dello studio.  Macchine da calcolo: cenni storici
  2. Aritmetica Maya, sull'abaco e con simulatori
  3. Macchine da calcolo: unità funzionali, architetture.
  4. Rappresentazione binaria dei numeri e dell'informazione
  5. Strutture algebriche, algebre di Boole
  6. Logica della commutazione, porte logiche, sintesi di funzioni logiche
  7. Realizzazione di porte logiche, circuiti sequenziali, flip-flop
    • L04: 25/03/2019, Hamacher A.5-6
  8. Registri, componenti di chip di memoria e del processore, PLA,FPGA,ALU
  9. Architetture RISC e CISC, modi d'indirizzamento, esempi di ISA reali
    • L05: 01/04/2019, Hamacher 2.0-4, A2.1-2
  10. Linguaggio assemblativo, direttive di assemblatore, pile e sottoprogrammi
    • E05: 03/04/2019, Hamacher 2.5-7, A2.3
  11. Tipi e formati di istruzioni, esempi di linguaggi assemblativi reali
    • L06: 08/04/2019, Hamacher 2.8, 2.10.2, A2.4-5 + Sim. 23
  12. Modi di indirizzamento complessi, esempi di programmi assemblativi
    • E06: 10/04/2019, Hamacher 2.9-10.1, 2.11-13, A2.6

Programma delle lezioni ed esercitazioni (2)

  1. Operazioni di I/O, controllo e servizio delle interruzioni
    • L07: 15/04/2019, Hamacher 3.0-2.5, A3.1
  2. Gestione di interruzioni ed eccezioni in architetture reali
    • E07: 29/04/2019, Hamacher 3.2.6, A3.2-3
  3. Software di supporto, linguaggi assemblativi e C, sistema operativo
    • L08: 06/05/2019, Hamacher 4.0-9.2
  4. Esempi di programmi con integrazione di linguaggi C e assemblativi
  5. Struttura di base del processore, microarchitetture RISC e CISC
    • L09: 13/05/2019, Hamacher 5.0-4
  6. Progetto di microarchitetture, microprogrammazione, pipelining
    • E09: 15/05/2019, Hamacher 5.5-7, 6.0-5 + Sim. 24
  7. Processori ad alte prestazioni, tecniche predittive, processori superscalari
    • L10: 20/05/2019, Hamacher 6.6-10
  8. Bus e circuiti d'interfaccia, standard d'interconnessione (cenni)
    • E10: 22/05/2019, Hamacher 7.0-4 [+ 7.5] + Sim. 25, 26
  9. Dispositivi di memoria principale, DMA, gerarchia delle memorie
    • L11: 27/05/2019, Hamacher 8.0-5
  10. Memorie cache, miglioramento delle prestazioni, memoria secondaria
    • E11: 29/05/2019, Hamacher 8.6-7, 8.10 + Sim. 27
  11. Circuiti efficienti per l'aritmetica binaria
    • L12: 03/06/2019, Hamacher 9.2-4, 9.6
  12. Moltiplicazione veloce, aritmetica binaria in virgola mobile (IEEE 754)

Testi consigliati

Testo di riferimento

C. Hamacher, Z. Vranesic, S. Zaky & N. Manjikian :
Introduzione all'architettura dei calcolatori
Terza edizione, McGraw-Hill Education (Italy), 2013

Note integrative

  1.   Aritmetica Maya (G. Scollo)
  2.   Strutture algebriche, algebre di Boole (G. Scollo)
  3.    Esempi di sviluppo ed elaborazione di programmi in C + Assembly (G. Scollo)

note disponibili nel prosieguo delle lezioni

Testi per consultazione

Libri di testo

G. Bucci: Calcolatori elettronici - Architettura e organizzazione, McGraw-Hill (2009)

D.M. Harris, S.L. Harris: Sistemi digitali e architettura dei calcolatori, Zanichelli (2017)

J.L. Hennessy , D.A. Patterson : Architettura degli elaboratori, Maggioli (2008)

D.A. Patterson, J.L. Hennessy : Struttura e progetto dei calcolatori, 4/e, Zanichelli (2015)

W. Stallings: Architettura e organizzazione dei calcolatori, 8/e, Pearson (2010)

A.S. Tanenbaum, T. Austin: Architettura dei calcolatori, 6/e, Pearson (2013)

Note integrative per consultazione

  1.  Il calcolo automatico (A. Montanari)
  2. Before the Conquest (M. Ascher, Mathematics Magazine 65:4 (1992) 211–218)
  3.  Attualità e pratica dell'aritmetica Maya, A. D'Agata, B. Radelli, G. Scollo, IDD'97.
  4. The Ludic and Powerful Mayan Mathematics for Teaching, L.F. Magaña,
        Procedia - Social and Behavioral Sciences, vol. 106 (2013) pp. 2921–2930
  5.  La radice quadrata con l'aritmetica Maya, L.F. Magaña, Atti Convegno IILA, 2003.
  6.  Macchine intermedie e struttura a livelli dei computer moderni
        in: N. Fazio, A. Nicolosi e F. Barbanera, Introduzione alle Macchine Astratte

queste e/o altre note sono disponibili nel prosieguo delle lezioni

Laboratorio

il Laboratorio di Architettura degli elaboratori, dà supporto all'apprendimento pratico della materia

sono attività del Laboratorio:

Simulatori presentati (1)

simulatori prodotti in precedenti edizioni dell'insegnamento e/o altri simulatori sono presentati nel prosieguo dell'insegnamento e vengono via via resi accessibili attraverso collegamenti nella lista che segue (3 pagine)

  1.  Conversione della rappresentazione dei numeri su abaco Maya
        (v. 1.0, Java: R. Carrubba)
  2.  Operazioni aritmetiche additive su abaco Maya
        (v. 1.0, Java: S. Alparone, P. Catania)
  3.  Moltiplicazione su abaco Maya
        (v. 1.0, Java: F. Alessandro, M. Rosano)
  4.  Abaco Maya decimale
        (v. 1.0, Java: A. Ottimo, A. Reale)
  5.  Abaco Maya decimale Android
        (v. 1.0, Java: F. Merola, M. Mazzamuto)
  6.  Simulatore di radice quadrata in Abaco Maya
        (v. 2.0, Javascript: L. Catania, A. De Domenico, S. Di Patti, F. Brischetto)
  7.  UBC, Universal Base Converter
        (v. 1.0, Java: I. Gjonaj, G. Cutuli, S. Di Mauro)
  8.  Codice correttore di Hamming
        (v. 1.0, Java: S. Marchese)
  9.  Simulatore di codice di Hamming
        (v. 1.0, Java: F. Bombace)
  10.  Encoder
        (v. 1.0, Java: P. Giua)

Simulatori presentati (2)

  1.  Simulatore CodeXor
        (v. 1.0, Java: L. Morreale, G. Valenti)
  2.  Simulatore LCE
        (v. 1.0, Java: M. Bellocchi, G. Carpinato, A. Marcellino)
  3.  Risolutore Mappe di Karnaugh
        (v. 1.0, Javascript: R. Scavo, D. Santitto, S. Torrisi)
  4.  Algoritmo Quine-McCluskey
        (v. 1.3, C#: G. Buzzanca)
  5.  Minimizzatore Petrick
        (v. 1.0, C++: F. Stiro, M. Maugeri, M. Toscano)
  6.  Simulatore di circuiti logici
        (Applet Java: D. Ferrarello, F. Ungheri)
    • N.B. l'esecuzione di applet Java, bloccata in versioni recenti dei browser più diffusi, può essere avviata da linea di comando col programma appletviewer, incluso nel Java JDK
  7.  Decodificatore da codice BCD a codice sette segmenti
        (v. 1.0, Javascript/Raphaël/jQuery: A. Ferraguto)
  8.  Simulatore di circuiti addizionatori e sottrattori
        (v. 1.0, Javascript/AngularJS: S. Borzì, D. Tascone)
  9.  Convertitore parallelo-seriale
        (v. 1.0, Flash/Arduino: C. Caruso, G. Naso O., D. Morales)
  10.  Simulatore di PLA
        (v. 2.0, Python: M. Cavallaro, A. Plebe)

Simulatori presentati (3)

simulatori prodotti in precedenti edizioni dell'insegnamento e/o altri simulatori sono presentati nel prosieguo dell'insegnamento e vengono via via resi accessibili attraverso collegamenti in questa lista

  1.  Simulatore di ALU a 8 bit
        (v. 1.0, Flash: S. Lentini, G. Nicotra)
  2.  Simulatore di ALU a 8 bit
        (v. 1.0, Java: F. Vindigni)
  3.  VisUAL - A highly visual ARM emulator
        (v. 1.27, Java: Salman Arif, Imperial College, London)
  4.  DataPath Simulator
        (v. 1.0, Processing: F. D'Agostino)
  5.  Arbitraggio del bus
        (Java: R. Capuano)
  6.  PCI Bus Simulator
        (v. 1.0, Python: E. Faranda)
  7.  JCacheSimulator
        (v. 1.0, Javascript/jQuery: E. Viglianisi)
  8.  Booth Algorithm Performer
        (v. 1.0, Javascript/jQuery: P. Ganesio, P. Martello, A. Nicolosi)
  9.  Divisore binario
        (v. 1.0, Javascript/jQuery: D. Cardillo, M. Nisi, O. Contarino)
  10.  Moltiplicatore Sequenziale di Booth
        (v. 1.0, Javascript/jQuery: A. Boudoudouh, M. Bongiovanni, W. Yang)

Simulatori realizzati

simulatori realizzati da studenti nell'edizione 2018-19 dell'insegnamento

  1.  Convertitore Maya ↔ Arabo
        (v. 1.0, Javascript: D. Casano, V. Catania, D. Giuffrida, G. Cunto)
  2.  Huffy - Compression Tool
        (v. 1.0, Java: M. Ferrigno)
  3.  Funzioni Booleane in due variabili con transistori bipolari
        (v. 1.0, transistori BJT: E. Casablanca, S. Cavallaro, A. Cardilicchia)
  4.  Wooden Binary Counter
        (v. 1.1, legno: S. Privitera, G. Maccarrone, A. Fiorito)
  5.  Dual Shifting Register
        (v. 1.0, integrati SSI: L. Pappalardo)
  6.  Circuito full-adder a 7 bit su Breadboard
        (v. 1.0, integrati SSI: S. Maugeri)
  7.  Logic Circuit Simulator
        (v. 1.0, Javascript: G. Di Grande, M. Gulisano)
  8.  Xbool
        (v. 1.0, Java: G. Trigili)
  9.  CPU Datapath
        (v. 1.3, Javascript: D.A. Di Stefano)
  10.  Simulatore di pipelining
        (v. 1.1, Java, Processing: G. Piccinini)
  11.  Simulatore di cache associativa
        (v. 1.0, C++: L. Puglisi)
  12.  VisualBooth
        (v. 1.0, Java, Processing: A.A. Privitera, G.A. Rotondo Cocco, G. Mazzara)
  13.  Mini stazione meteo
        (v. 1.0, Raspberry Pi, Python: L. Anselmo)
  14.  ArchiQuiz
        (v. 1.0, Javascript: G. Di Mauro, M. Lo Giudice, G. Fichera)

Interazioni

Forum, Moodle, Galileo: cosa va dove?