ARCHITETTURA DEGLI ELABORATORI E LABORATORIO F - N
Modulo ARCHITETTURA DEGLI ELABORATORI

Anno accademico 2022/2023 - Docente: EMILIANO ALESSIO TRAMONTANA

Risultati di apprendimento attesi

Conoscenza e capacità di comprensione: acquisire conoscenza e capacità di comprensione dei concetti fondamentali delle principali architetture hardware 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 progettazione 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.

Capacità di apprendimento: sviluppare la capacita di capire le caratteristiche innovative e migliorative dell'hardware futuro.

Modalità di svolgimento dell'insegnamento

Lezioni frontali, esempi e esercizi svolti in aula. 

Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare il programma previsto e riportato nel syllabus.

Prerequisiti richiesti

Nessun prerequisito richiesto. 

Frequenza lezioni

Per una piena comprensione degli argomenti del corso e delle tecniche presentate, la frequenza delle lezioni e delle esercitazioni è 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, memoria cache.
  12. Circuiti efficienti per l'aritmetica binaria.

Testi di riferimento

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

Programmazione del corso

 ArgomentiRiferimenti testi
1Finalità e organizzazione dello studio. Macchine da calcolo: cenni storici.C. 1
2Macchine da calcolo: unità funzionali, architettureC. 1
3Strutture algebriche, algebre di Boole.C. 2
4Realizzazione di porte logiche, circuiti sequenziali, flip-flop.A
5Architetture RISC e CISC, modi d'indirizzamentoC. 2
6Tipi e formati di istruzioni, esempi di linguaggi assemblativiC.2
7Operazioni di I/O, controllo e servizio delle interruzioni.C. 3
8Software di supporto, linguaggi assemblativi e C, sistema operativoC. 4
9Struttura di base del processore, microarchitetture RISC e CISCC. 5
10Processori ad alte prestazioni, tecniche predittive, processori superscalariC. 6
11Dispositivi di memoria principale, DMA, gerarchia delle memorie, cacheC. 8
12Circuiti efficienti per l'aritmetica binariaC. 9

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

Prova scritta e colloquio orale.
Opzionale lo svolgimento e la presentazione di un progetto.

La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.

Esempi di domande e/o esercizi frequenti

Conversioni di numeri in basi decimale, binario e esadecimale

Sintesi di funzioni logiche

Tabelle di verità di porte logiche

Istruzioni assembly, e programmi elementari

Esecuzione di istruzioni assembly tramite percorso dati 

Organizzazione della memoria cache

Esecuzione in pipeline e problematiche