Seguici su
Cerca

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

Anno accademico 2024/2025 - 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. 

Il materiale proiettato viene fornito nella pagina del docente sul sito del corso di laurea (www.dmi.unict.it/tramonta/)

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.

Gli studenti con disabilità e/o DSA dovranno contattare con sufficiente anticipo rispetto alla data dell'esame il docente, il referente CInAP del DMI e il CInAP per comunicare che intendono sostenere l'esame fruendo delle opportune misure compensative (che saranno indicate dal CInAP).

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 è obbligatoria.

Contenuti del corso

Introduzione al calcolatore con categorie di calcolatori, componenti funzionali principali. Rappresentazione dei numeri e dei caratteri con il sistema binario. Modi per parallelizzare a livello hardware. Cenni sulla storia dei calcolatori, e generazioni di calcolatori. 
Architetture RISC e CISC, modi d'indirizzamento. Tipi e formati di istruzioni RISC, esempi di programmi in linguaggio Assembly RISC. Gestione della pila e dei sottoprogrammi. Istruzioni logiche, scorrimento, rotazione. Insiemi di istruzioni CISC.
Operazioni di ingresso e uscita, accesso a dispositivi di I/O, controllo e servizio delle interruzioni.
Software di supporto, linguaggi assemblativi e C, sistema operativo.
Struttura di base del processore, componenti hardware per architetture RISC: banco di registri, ALU, percorso dati, sezione di prelievo di istruzioni. Passi di esecuzione, salti, attesa dalla memoria. Controllo cablato e segnali di controllo. Processori CISC, architettura a bus, controllo microprogrammato.
Organizzazione in pipeline, problematiche del pipeline, dipendenza i dato, ritardi della memoria, ritardi nei salti, limiti di risorse. Valutazione delle prestazioni in pipeline. Processori con funzionamento superscalare.
Sistema di ingresso uscita, struttura a bus, bus sincrono, asincrono, arbitraggio.

Sistema di memoria, memoria statica, dinamica, celle di memoria, organizzazione di chip di memoria. Gerarchia di memoria, schemi di indirizzamento e sostituzione per la memoria cache.
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
1Introduzione al corso, Categorie calcolatori, componenti funzionaliC. 1
2Istruzioni, esecuzione, prestazioni, Generazioni tecnologicheC. 1
3Memoria, indirizzamento, Operazioni, istruzioni, notazione RTN, addizioni, modi di indirizzamento, assemblaggioC. 2
4Pila, sottoprogrammi, Passaggio parametri su registri e pila, aree attivazioneC. 2
5Operazioni aritmetiche e logiche, Istruzioni CISC, bit esito, codifica istruzioniC. 2
6Operazioni I/O, interruzioni, routine servizio interruzioni, interruzioni multiple, gestore interruzioniC. 3
7Software per i linguaggi assemblativi, cenni su sistemi operativiC. 4
8Componenti hardware, Stadi, banco dei registri, datapath, generatore di indirizzi, passi d'esecuzione, saltiC. 5
9Segnali di controllo, controllo cablato, generazione segnali, Architettura CISC, controllo microprogrammatoC. 5
10Pipeline, Dipendenze di dato, Ritardi di memoria, Ritardi nei saltiC. 6
11Predizioni salti, automi, buffer, calcolo prestazioni, Architettura superscalare e problematicheC. 6
12Bus sincrono, multiciclo, asincrono, arbitraggioC. 7
13Dispositivi di memoria, gerarchia delle memorie, memorie statiche e dinamicheC. 8
14Moduli di memoria, organizzazione dei moduli, località, cache hit e missC. 8
15Indirizzamento diretto, associativo, a gruppi, dati scaduti, algoritmi di sostituzione, prestazioniC. 8
16Circuiti per l'aritmetica binariaC. 9

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

La valutazione consiste di una prova scritta e un colloquio orale. La prova scritta si svolge alle ore 9:00 del giorno dell'appello, salvo comunicazioni diverse. La prova scritta dura un'ora e consiste di vari quesiti a risposte multiple e due domande aperte che prevedono l'implementazione di codice e il disegno di diagrammi. Il superamento della prova scritta permette di presentarsi alla parte 'orale dell'esame, nei giorni successivi allo scritto, che verranno comunicati. 

Una ottima valutazione dello scritto sarà attribuita quando il numero di risposte corrette per i quesiti a risposte multiple è vicino al numero di domande totali e quando le risposte alle domande aperte sono corrette e precise.

L'esame sarà valutato in modo ottimo (voto dal 28 al 30 e lode) se si mostrerà di aver acquisito profonda conoscenza dei concetti del corso e precisione nella loro esposizione. Un voto intermedio (dal 24 al 27) sarà dato nel caso in cui l'esame mostra una comprensione parziale degli argomenti. Uno voto appena sufficiente (dal 18 al 23) sarà dato quando pur conoscendo parzialmente gli argomenti, questi vengono esposti in modo superficiale.

Per partecipare all'esame è necessario avere effettuato la prenotazione sul portale SmartEdu.

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