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

Docente: Giuseppe Scollo

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

Indice

  1. Guida rapida all'insegnamento
  2. Organizzazione dell'insegnamento
  3. Obiettivi formativi
  4. Attività formative
  5. Modalità di valutazione
  6. Programma delle lezioni
  7. Programma delle esercitazioni
  8. Testi consigliati
  9. Testi per consultazione
  10. Simulatori presentati (1)
  11. Simulatori presentati (2)
  12. Simulatori realizzati
  13. 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 giovedì, aula 4, h. 10:00-13:00)

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

Modalità di valutazione

I colloqui orali possono essere sostenuti in qualsiasi orario di ricevimento studenti; per questi non occorre prenotazione. Il superamento dell'esame porta all'acquisizione di 9 crediti.

Programma delle lezioni

  1. Finalità e organizzazione dello studio.  Macchine da calcolo: cenni storici
  2. Macchine da calcolo: unità funzionali, architetture
  3. Strutture algebriche, algebre di Boole
  4. Realizzazione di porte logiche, circuiti sequenziali, flip-flop
    • L04: 03/04/2017, Hamacher A.5-6
  5. Architetture RISC e CISC, modi d'indirizzamento, esempi di ISA reali
    • L05: 10/04/2017, Hamacher 2.0-4, A2.1-2
  6. Tipi e formati di istruzioni, esempi di linguaggi assemblativi reali
    • L06: 27/04/2017, Hamacher 2.8, 2.10.2, A2.4-5
  7. Operazioni di I/O, controllo e servizio delle interruzioni
    • L07: 08/05/2017, Hamacher 3.0-2.5, A3.1
  8. Software di supporto, linguaggi assemblativi e C, sistema operativo
    • L08: 18/05/2017, Hamacher 4.0-9.2
  9. Struttura di base del processore, microarchitetture RISC e CISC
    • L09: 23/05/2017, Hamacher 5.0-4
  10. Processori ad alte prestazioni, tecniche predittive, processori superscalari
    • L10: 29/05/2017, Hamacher 6.6-10
  11. Dispositivi di memoria principale, DMA, gerarchia delle memorie
    • L11: 05/06/2017, Hamacher 8.0-5
  12. Circuiti efficienti per l'aritmetica binaria
    • L12: 12/06/2017, Hamacher 9.2-4, 9.6

Programma delle esercitazioni

  1. Aritmetica Maya, sull'abaco e con simulatori
  2. Rappresentazione binaria dei numeri e dell'informazione
  3. Logica della commutazione, porte logiche, sintesi di funzioni logiche
  4. Registri, componenti di chip di memoria e del processore, PLA,FPGA,ALU
  5. Linguaggio assemblativo, direttive di assemblatore, pile e sottoprogrammi
    • E05: 20/04/2017, Hamacher 2.5-7, A2.3
  6. Modi di indirizzamento complessi, esempi di programmi assemblativi
    • E06: 04/05/2017, Hamacher 2.9-10.1, 2.11-13, A2.6
  7. Gestione di interruzioni ed eccezioni in architetture reali
    • E07: 11/05/2017, Hamacher 3.2.6, A3.2-3
  8. Esempi di programmi con integrazione di linguaggi C e assemblativi
  9. Progetto di microarchitetture, microprogrammazione, pipelining
    • E09: 26/05/2017, Hamacher 5.5-7, 6.0-5 + Sim. 17
  10. Bus e circuiti d'interfaccia, standard d'interconnessione (cenni)
    • E10: 01/06/2017, Hamacher 7.0-4 [+ 7.5] + Sim. 18, 19
  11. Memorie cache, miglioramento delle prestazioni, memoria secondaria
    • E11: 08/06/2017, Hamacher 8.6-7, 8.10 + Sim. 20
  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)

Testi per consultazione

Libri di testo

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

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

J.L. Hennessy , D.A. Patterson : Architettura degli elaboratori, Apogeo (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)

Note integrative per consultazione

  1.  Il calcolo automatico (A. Montanari)
  2. Before the Conquest (M. Asher, 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 note sono state rese disponibili nel corso dell'insegnamento (altri materiali sono reperibili da una precedente edizione dell'insegnamento)

Simulatori presentati (1)

  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.  UBC, Universal Base Converter
        (v. 1.0, Java: I. Gjonaj, G. Cutuli, S. Di Mauro)
  7.  Simulatore di codice di Hamming
        (v. 1.0, Java: F. Bombace)
  8.  Codice correttore di Hamming
        (v. 1.0, Java: S. Marchese)
  9.  Simulatore CodeXor
        (v. 1.0, Java: L. Morreale, G. Valenti)
  10.  Simulatore LCE
        (v. 1.0, Java: M. Bellocchi, G. Carpinato, A. Marcellino)
  11.  Simulatore di circuiti logici
        (Applet Java: D. Ferrarello, F. Ungheri)
  12.  Decodificatore da codice BCD a codice sette segmenti
        (v. 1.0, Javascript/Raphaël/jQuery: A. Ferraguto)

Simulatori presentati (2)

  1.  Simulatore di circuiti addizionatori e sottrattori
        (v. 1.0, Javascript/AngularJS: S. Borzì, D. Tascone)
  2.  Simulatore di PLA
        (v. 1.0, Python: A. Plebe)
  3.  Simulatore di ALU a 8 bit
        (v. 1.0, Flash: S. Lentini, G. Nicotra)
  4.  Simulatore di ALU a 8 bit
        (v. 1.0, Java: F. Vindigni)
  5.  DataPath Simulator
        (v. 1.0, Processing: F. D'Agostino)
  6.  Arbitraggio del bus
        (Java: R. Capuano)
  7.  PCI Bus Simulator
        (v. 1.0, Python: E. Faranda)
  8.  JSCacheSimulator
        (v. 1.0, Javascript/jQuery: E. Viglianisi)
  9.  Booth Algorithm Performer
        (v. 1.0, Javascript/jQuery: P. Ganesio, P. Martello, A. Nicolosi)
  10.  Divisore binario
        (v. 1.0, Javascript/jQuery: D. Cardillo, M. Nisi, O. Contarino)
  11.  Moltiplicatore Sequenziale di Booth
        (v. 1.0, Javascript/jQuery: A. Boudoudouh, M. Bongiovanni, W. Yang)

i suddetti simulatori sono stati presentati nel corso dell'insegnamento
(v. anche altri simulatori da una precedente edizione dell'insegnamento)

Simulatori realizzati

simulatori realizzati da studenti dell'edizione 2016-2017 dell'insegnamento

progetti completati

  1.  Light GBA
        (v. 1.0, C++: M. Panettiere)
  2.  Minimizzatore Petrick
        (v. 1.0, C++: F. Stiro, M. Maugeri, M. Toscano)
  3.  Simulatore di coerenza di cache
        (v. 1.0, Processing: V. Di Mauro)
  4.  Mobile Base Converter/Operations
        (v. 1.0, Java/Unity: G. Scapellato, A. Scapellato, C. Distefano)
  5.  Algoritmo Quine-McCluskey
        (v. 1.3, C#: G. Buzzanca)
  6.  Convertitore parallelo-seriale
        (v. 1.0, Flash/ActionScript, Arduino: C. Caruso, G. Naso, D. Morales)
  7.  MultypdroidBooth
        (v. 1.0, Java: F. Billeci, C. Raciti)
  8.  Two's Complement, Calcolatore Binario
        (v. 1.0, C++: M.A. Napoli Spatafora, G. Marino)

progetti parzialmente completati

Interazioni

Forum, Moodle, Galileo: cosa va dove?