ARCHITETTURA DEGLI ELABORATORI E LABORATORIO A - E
Modulo ARCHITETTURA DEGLI ELABORATORI

Anno accademico 2022/2023 - Docente: CORRADO SANTORO

Risultati di apprendimento attesi

Conoscenza e capacità di comprensione: acquisire conoscenza e capacità di comprensione dei concetti fondamentali di architettura dei sistemi di calcolo e dei principi metodologici che ne ispirano lo sviluppo, nella prospettiva storica della loro evoluzione;

Capacità di applicare conoscenza e comprensione: acquisire capacità di risolvere problemi di progetto di sistemi di calcolo, cimentandosi con esercizi proposti a tal fine, e di adoperare, progettare e realizzare strumenti software, quali simulatori ed interpreti, per macchine astratte relative ai livelli più bassi della organizzazione dei sistemi di calcolo.

Autonomia di giudizio: essere in grado di confrontare e valutare la qualità di soluzioni a problemi di progetto di sistemi di calcolo.

Abilità comunicative: acquisire abilità comunicativa e proprietà di linguaggio utili alla comunicazione di problematiche inerenti il funzionamento, la progettazione, la realizzazione e la valutazione di sistemi di calcolo, anche con interlocutori non esperti.

Capacità di apprendimento: sviluppare capacita di adattamento delle proprie conoscenze alla rapida evoluzione della disciplina e di aggiomamento mediante la consultazione di fonti specialistiche del settore.

Modalità di svolgimento dell'insegnamento

  • Lezioni frontali

  • Esercitazioni in aula

Prerequisiti richiesti

Nessuno

Frequenza lezioni

La frequenza delle lezioni e' fortemente consigliata

Contenuti del corso

  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.
  5. Architetture RISC e CISC, modi d'indirizzamento, esempi di ISA reali.
  6. Tipi e formati di istruzioni, esempi di linguaggi assemblativi reali.
  7. Operazioni di I/O, controllo e servizio delle interruzioni.
  8. Software di supporto, linguaggi assemblativi e C, sistema operativo.
  9. Struttura di base del processore, microarchitetture RISC e CISC.
  10. Processori ad alte prestazioni, tecniche predittive, processori superscalari.
  11. Dispositivi di memoria principale, DMA, gerarchia delle memorie.
  12. Circuiti efficienti per l'aritmetica binaria.

Testi di riferimento

  1. C. Hamacher, Z. Vranesic, S. Zaky & N. Manjikian : Introduzione all'architettura dei calcolatori. Terza edizione, McGraw-Hill Education (Italy), 2013
  2. Note integrative fornite dal docente durante lo sviluppo delle lezioni.

Programmazione del corso

 ArgomentiRiferimenti testi
1Finalità e organizzazione dello studio. Macchine da calcolo: cenni storici.1: 1.7
2Macchine da calcolo: unità funzionali, architetture1: 1.0-3, 1.6
3Strutture algebriche, algebre di Boole.2
4Realizzazione di porte logiche, circuiti sequenziali, flip-flop.1: A.5-6
5Architetture RISC e CISC, modi d'indirizzamento, esempi di ISA reali.1: 2.0-4, A2.1-2
6Tipi e formati di istruzioni, esempi di linguaggi assemblativi reali.1: 2.8, 2.10.2, A2.4-5
7Operazioni di I/O, controllo e servizio delle interruzioni.1: 3.0-2.5, A3.1
8Software di supporto, linguaggi assemblativi e C, sistema operativo.1: 4.0-9.2
9Struttura di base del processore, microarchitetture RISC e CISC.1: 5.0-4
10Processori ad alte prestazioni, tecniche predittive, processori superscalari.1: 6.6-10
11Dispositivi di memoria principale, DMA, gerarchia delle memorie.1: 8.0-5
12Circuiti efficienti per l'aritmetica binaria.1: 9.2-4, 9.6

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

  • Prova pratica
  • Prova orale
  • Progetto facoltativo

Esempi di domande e/o esercizi frequenti

  • Conversione binario/decimale, binario/esadecimale, decimale/esadecimale
  • Somma in complemento a 2
  • Rappresentazione in virgola mobile
  • Analisi di funzioni logiche (da funzione a tabella della verita')
  • Sintesi di funzioni logiche (da tabella della verita' a funzione), mappe di Karnaugh
  • Circuito sommatore binario
  • Circuiti moltiplicatori e divisori
  • Allineamento delle word in memoria
  • Instruction-Set Architecture
  • Data Path
  • Pipeline
  • Processori CISC, microprogrammazione
  • Confronto tra RISC/CISC
  • Cache Memory
  • Esercizi in assembly sui vettori
  • Somma di vettori
  • Ricerca all'interno di un vettore
  • Filtraggio di un vettore