L’insegnamento ha l’obiettivo di fornire i concetti fondamentali relativi ai sistemi di elaborazione dell’informazione.
Nella prima parte dell'insegnamento vengono introdotte le tecniche e le metodologie per la progettazione dei sistemi digitali.
Nella seconda parte dell'insegnamento vengono presentati i componenti dei calcolatori elettronici e la loro organizzazione, l’architettura del set delle istruzioni dei processori, alcune tecniche per un’efficiente implementazione dei processori e il sottosistema di memoria. Inoltre, al fine di comprendere meglio il funzionamento del processore, l'insegnamento introduce lo studente alla programmazione assembly di un processore educational.
Conoscenza e capacità di comprensione
Lo studente conoscerà:
Conoscenze applicate e capacità di comprensione
Lo studente sarà in grado di:
Autonomia di giudizio
Lo studente sarà in grado di valutare l'impatto delle scelte architetturali sulle prestazioni dei calcolatori.
Abilità comunicative
Lo studente sarà in grado di esporre in modo chiaro e rigoroso le conoscenze acquisite e come applicarle per la progettazione di semplici sistemi di elaborazione.
Capacità di apprendere
Lo studente sarà in grado di apprendere autonomamente:
L'insegnamento verra svolto utilizzando lezioni frontali, esercitazioni pratiche e lo studio di alcuni casi.
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.
La frequenza non è obbligatoria ma fortemente consigliata.
Parte I Progettazione di sistemi digitali
1.1 Progetto di reti combinatorie
* Algebra di commutazione. Espressioni booleane minime. Minimizzazione mediate il metodo delle mappe di Karnaugh e di Quine-McCluckey.
1.2 Progetto di reti sequenziali sincrone
* Introduzione alle macchine sequenziali. Gli elementi di memoria: i bistabili. Sintesi di reti sequenziali sincrone. Minimizzazione delle macchine a stati finiti.
1.3 Progettazione di un sistema digitale
Flusso di progettazione di un sistema digitale. Datapath e unità di controllo.
Parte II Il calcolatore
2.1 Il calcolatore: astrazione e tecnologie
* I tipi di calcolatori e le loro caratteristiche. I componenti di un calcolatore elettronico e loro organizzazione. Valutazione delle prestazioni di un calcolatore. Legge di Amdhal.
2.2 Il linguaggio del calcolatore: l’Assembly
* Architettura del Set di Istruzione dei processori.
Traduzione e avvio di un programma: Assembler, linker e loader.
* Instruction Set Architecture MIPS64.
* Un Instruction Set Simulator per il processore MIPS 64. Operazioni logico-aritmetiche. Accesso alla memoria. Chiamate di sistema. Array. Stringhe. Chiamata a procedura. Procedure annidate. Stack.
2.3 Organizzazione del calcolatore
* Organizzazione sequenziale di un processore. Datapath di un processore sequenziale. Unità di Controllo di un processore sequenziale.
* Organizzazione pipeline di un processore. Hazard nella pipeline. Valutazione delle prestazioni di un processore pipeline. Tecniche per il rilevamento e la risoluzione degli hazard nella pipeline. Schedulazione del codice per la minimizzazione degli hazard.
2.4 Il Sottosistema di memoria.
Memorie RAM statiche e dinamiche. Memorie asincrone e sincrone.
Organizzazione della memoria.
* Memorie cache. Politiche di Block placement, block identification, block replacement e di scrittura. Valutazione delle prestazioni della memoria.
* Tecniche per il miglioramento delle prestazioni della cache.
_________________________________________________________________________________________________
* Conoscenze minime irrinunciabili per il superamento dell'esame.
N.B. La conoscenza degli argomenti contrassegnati con l'asterisco è condizione necessaria ma non sufficiente per il superamento dell'esame. Rispondere in maniera sufficiente o anche più che sufficiente alle domande su tali argomenti non assicura, pertanto, il superamento dell'esame.
[T1] Fummi, Sami, Silvano, “Progettazione digitale”, 2/ed McGraw-Hill
[T2] Patterson, Hennessy, “Struttura e progetto dei calcolatori”, Zanichelli
[T3] Bucci, “Architettura e organizzazione dei calcolatori elettronici: fondamenti”, McGraw-Hill
[T4] Materiale fornito dal docente on line
Argomenti | Riferimenti testi | |
---|---|---|
1 | Progetto di reti combinatori. Algebra di commutazione. Espressioni booleane minime. Minimizzazione mediate il metodo delle mappe di Karnaugh e di Quine-McCluckey. | T1 capitoli 3 e 4, T4 |
2 | Progetto di reti sequenziali sincrone. Introduzione alle macchine sequenziali. Gli elementi di memoria: i bistabili. Sintesi di reti sequenziali sincrone. Minimizzazione delle macchine a stati finiti. | T1 capitoli 5 e 6, T4 |
3 | Progettazione di un sistema digitale. Flusso di progettazione di un sistema digitale. Datapath e unità di controllo. Componenti di un sistema digitale. Multiplexer, Decoder, Encoder, Comparatore, Registri, Register file. | T1 capitoli 7 e 8, T2 capitolo 3, T4 |
4 | Sommatore. Moltiplicatore e divisore. Progetto di un ALU | T1 capitoli 7 e 8, T2 capitolo 3, T4 |
5 | I tipi di calcolatori e le loro caratteristiche. I componenti di un calcolatore. Organizzazione dei calcolatori elettronici. Valutazione delle prestazioni | T2 capitolo 1, T3 capitolo 5 T4 |
6 | Architettura del Set di Istruzioni dei processori. | T2 capitolo 2, T3 capitolo 5, T4 |
7 | Organizzazione sequenziale di un processore. Datapath di un processore sequenziale. Unità di Controllo di un processore sequenziale. | T2 capitolo 4, T3 capitolo 7, T4 |
8 | Organizzazione Pipeline di un processore | T2 capitolo 4, T4 |
9 | Assembly di un processore RISC. Assembler, linker e loader. Struttura di un programma assembly. | T4 |
10 | Un Instruction Set Simulator per il MIPS64. | T4 |
11 | Istruzioni logico-aritmetiche. Istruzioni di accesso alla memoria. Istruzioni per il controllo di flusso. | T4 |
12 | Chiamate di sistema. Lettura e stampa di interi e stinghe. Gestione degli array. | T4 |
13 | Chiamata a procedure. Stack pointer. | T4 |
14 | Il Sottosistema di memoria. Classificazione delle memorie. Ram Statica e RAM dinamica. DRAM asincrona e sincrona. Organizzazione della memoria. Decodifica degli indirizzi. | T2 capitolo 5, T3 capitolo 8, T4 |
15 | Memorie cache. Politiche di Block placement, block identification, block replacement e di scrittura. Valutazione delle prestazioni delle memorie cache. | T2 capitolo 5, T3 capitolo 8, T4 |
16 | Tecniche per il miglioramento delle prestazioni della cache. | T2 capitolo 5, T3 capitolo 8, T4 |
L'esame consiste in un'unica prova scritta e al calcolatore. Nella prova d'esame sono previsti:
Per superare la prova è necessario ottenere un punteggio minimo pari a 18 punti.
Non sono previste prove in itinere.
La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.
Esempi di domande e/o esercizi frequenti saranno disponibili nella pagina del corso su MS Teams