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.
Capacità di apprendere
Lo studente sarà in grado di apprendere autonomamente:
L'insegnamento verrà 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.
Rappresentazione dell’Informazione nei calcolatori elettronici, Algoritmi. Sequenze di Controllo. Tipi di dati. Puntatori. Funzioni. Concetto di Stato. Macchina a stati finiti
La frequenza non è obbligatoria ma fortemente consigliata
Parte I Progettazione di sistemi digitali
1.1 Progetto di reti combinatorie
1.2 Progetto di reti sequenziali sincrone
1.3 Progettazione di un sistema digitale
Parte II Il calcolatore
2.1 Il calcolatore: astrazione e tecnologie
2.2 Il linguaggio del calcolatore: l’Assembly
2.3 Organizzazione del calcolatore
2.4 Il Sottosistema di memoria
(*) 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 del docente on line
E’ possibile scaricare tutto il materiale didattico in formato elettronico all’indirizzo htpp://studium.unict.it
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 a propagazione del riporto e Sommatore ad anticipo di riporto. Moltiplicatore e divisore. Progetto di un ALU | T1 capitoli 7 e 8, T2 capitolo 3, T4 |
5 | Linguaggi HDL. Sviluppo di un modello VHDL di sistema digitale. Simulazione di un modello VHDL. Testbench. | T1 appendice A, T4 |
6 | I tipi di calcolatori e le loro caratteristiche. I componenti di un calcolatore. Organizzazione dei calcolatori elettronici. | T2 capitolo 1, T3 capitolo 5, T4 |
7 | Architettura del Set di Istruzioni dei processori. | T2 capitolo 2, T3 capitolo 5, T4 |
8 | Organizzazione sequenziale di un processore. Datapath di un processore sequenziale. Unità di controllo di un processore sequenziale: realizzazione cablata e microprogrammata. | T2 capitolo 4, T3 capitolo 7, T4 |
9 | Organizzazione Pipeline di un processore. | T2 capitolo 4, T4 |
10 | Assembly del processore educational EDUMIPS64. Assembler, linker e loader. Struttura di un programma assembly. | T4 |
11 | Un Instruction Set Simulator per il processore EduMIPS Instruction Set Architecture dell’EDUMIPS. | T4 |
12 | Istruzioni logico-aritmetiche. Istruzioni di accesso alla memoria. Istruzioni per il controllo di flusso. | T4 |
13 | Chiamate di sistema. Lettura e stampa di interi e stinghe. Gestione degli array. | T4 |
14 | Chiamata a procedure. Procedure annidate. Stack pointer. | T4 |
15 | Il Sottosistema di memoria. Classificazione delle memorie. Ram Statica e RAM dinamica. Cicli di lettura e di scrittura. DRAM asincrona e sincrona. Organizzazione della memoria. Decodifica degli indirizzi. | T2 capitolo 5, T3 capitolo 8, T4 |
16 | Memorie cache. Valutazione delle prestazioni delle memorie cache. Politiche di Block placement, block identification, block replacement e di scrittura. | T2 capitolo 5, T3 capitolo 8, T4 |
17 | 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, con almeno 5 punti per i quesiti sulle reti logiche, almeno 5 punti per lo sviluppo del programma assembly e almeno 6 punti per i quesiti sulle architetture.
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 sono disponibili all’indirizzo http://studium.unict.it