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 2014-15

Indice

  1. Guida rapida all'insegnamento
  2. Organizzazione dell'insegnamento
  3. Obiettivi formativi
  4. Attività formative
  5. Modalità di valutazione
  6. Programma delle lezioni (1)
  7. Programma delle lezioni (2)
  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 72 ore di lezione ed esercitazione (lunedì e mercoledì, aula 4, h. 10:00-13:00)

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

Modalità di valutazione

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

Programma delle lezioni (1)

  1. Finalità e organizzazione dello studio.  Macchine da calcolo: cenni storici
  2. Macchine da calcolo: unità funzionali, architetture.   Aritmetica Maya
  3. Rappresentazione binaria dei numeri e dell'informazione
  4. Strutture algebriche, algebre di Boole
  5. Logica della commutazione, porte logiche, sintesi di funzioni logiche
  6. Realizzazione di porte logiche, circuiti sequenziali, flip-flop
  7. Registri, componenti di chip di memoria e del processore, PLA,FPGA,ALU
  8. Architetture RISC e CISC, modi d'indirizzamento, esempi di ISA reali
    • Hamacher 2.0-4, A2.1-2
  9. Linguaggio assemblativo, direttive di assemblatore, pile e sottoprogrammi
    • Hamacher 2.5-7, A2.3
  10. Tipi e formati di istruzioni, esempi di linguaggi assemblativi reali
    • Hamacher 2.8, 2.10.2, A2.4-5
  11. Modi di indirizzamento complessi, esempi di programmi assemblativi
    • Hamacher 2.9-10.1, 2.11-13, A2.6
  12. Operazioni di I/O, controllo e servizio delle interruzioni
    • Hamacher 3.0-2.5, A3.1

Programma delle lezioni (2)

  1. Gestione di interruzioni ed eccezioni in architetture reali
    • Hamacher 3.2.6, A3.2-3
  2. Software di supporto, linguaggi assemblativi e C, sistema operativo
  3. Struttura di base del processore, microarchitetture RISC e CISC
    • Hamacher 5.0-4
  4. Progetto di microarchitetture, microprogrammazione, pipelining
    • Hamacher 5.5-7, 6.0-6.6.3
  5. Processori ad alte prestazioni, tecniche predittive, processori superscalari
    • Hamacher 6.6.4-6.10
  6. Bus e circuiti d'interfaccia, standard d'interconnessione (cenni)
  7. Dispositivi di memoria principale, DMA, gerarchia delle memorie
    • Hamacher 8.0-5
  8. Memorie cache, miglioramento delle prestazioni, memoria secondaria
  9. Circuiti efficienti per l'aritmetica binaria
  10. Moltiplicazione veloce, aritmetica binaria in virgola mobile (IEEE 754)
    • Hamacher 9.5, 9.7-8
  11. Architetture di sistemi embedded
  12. Chip di calcolo parallelo, multiprocessori, reti e griglie di calcolo

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.  Cenni storici sulle macchine da calcolo (G. Scollo)
  2.  Before the Conquest (M. Asher, Mathematics Magazine 65:4 (1992) 211–218)
  3.  Macchine intermedie e struttura a livelli dei computer moderni
        in: N. Fazio, A. Nicolosi e F. Barbanera, Introduzione alle Macchine Astratte
  4.  Attualità e pratica dell'aritmetica Maya, A. D'Agata, B. Radelli, G. Scollo, IDD'97.
  5. The Ludic and Powerful Mayan Mathematics for Teaching, L.F. Magaña,
        Procedia - Social and Behavioral Sciences, vol. 106 (2013) pp. 2921–2930
  6.  La radice quadrata con l'aritmetica Maya, L.F. Magaña, Atti Convegno IILA, 2003.
  7.  Progetto di un sistema su un chip, Caso di studio 1 in: C. Hamacher et al.,
            Introduzione all’architettura dei calcolatori, 3/e, McGraw-Hill, 2013.
  8.  Introduction to OpenCL, D. Kanter, 2010.

altri materiali sono reperibili presso il sito della 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.  Simulatore di codice di Hamming
        (v. 1.0, Java: F. Bombace)
  6.  Codice correttore di Hamming
        (v. 1.0, Java: S. Marchese)
  7.  Simulatore CodeXor
        (v. 1.0, Java: L. Morreale, G. Valenti)
  8.  Simulatore LCE
        (v. 1.0, Java: M. Bellocchi, G. Carpinato, A. Marcellino)
  9.  Simulatore di circuiti logici
        (Applet Java: D. Ferrarello, F. Ungheri)
  10.  Simulatore di PLA
        (v. 1.0, Python: A. Plebe)
  11.  Simulatore di ALU a 8 bit
        (v. 1.0, Flash: S. Lentini, G. Nicotra)
  12.  Simulatore di ALU a 8 bit
        (v. 1.0, Java: F. Vindigni)

Simulatori presentati (2)

  1.  Arbitraggio del bus
        (Java: R. Capuano)
  2.  PCI Bus Simulator
        (v. 1.0, Python: E. Faranda)
  3.  JSCacheSimulator
        (v. 1.0, Javascript/jQuery: E. Viglianisi)
  4.  Moltiplicatore binario sequenziale
        (v. 1.0, Javascript/jQuery: G. Zappalà)
  5.  Booth Algorithm Performer
        (v. 1.0, Javascript/jQuery: P. Ganesio, P. Martello, A. Nicolosi)
  6.  Moltiplicatore Sequenziale di Booth
        (v. 1.0, Javascript/jQuery: A. Boudoudouh, M. Bongiovanni, W. Yang)
  7.  Divisore binario
        (v. 1.0, Javascript/jQuery: D. Cardillo, M. Nisi, O. Contarino)

Simulatori realizzati

  1.  Abaco Maya Decimale Android
        (v. 1.0, Java: F. Merola, M. Mazzamuto)
  2.  UBC, Universal Base Converter
        (v. 1.0, Java: I. Gjonaj, G. Cutuli, S. Di Mauro)
  3.  Decodificatore da codice BCD a codice sette segmenti
        (v. 1.0, Javascript/Raphaël/jQuery: A. Ferraguto)
  4.  Simulatore di circuiti addizionatori e sottrattori
        (v. 1.0, Javascript/AngularJS: S. Borzì, D. Tascone)
  5.  Floating Point
        (v. 1.0, C++: S. Giurato, A. Piazza)
  6.  Turing Machine
        (v. 1.0, Java: D. Distefano, M. Apa)
  7.  DataPath Simulator
        (v. 1.0, Processing: F. D'Agostino)
  8.  Convertitore Decimale/Binario con Arduino
        (v. 1.0, Arduino C: A. Costa)

eventuali altri simulatori saranno disponibili nel prosieguo degli esami
v. anche altri simulatori da precedenti edizioni dell'insegnamento

Interazioni

Forum, Moodle, Galileo: cosa va dove?