CALCOLATORI ELETTRONICI M - Z
Anno accademico 2018/2019 - 3° annoCrediti: 9
SSD: ING-INF/05 - Sistemi di elaborazione delle informazioni
Organizzazione didattica: 225 ore d'impegno totale, 146 di studio individuale, 49 di lezione frontale, 30 di esercitazione
Semestre: 1°
ENGLISH VERSION
Obiettivi formativi
Il corso ha un duplice obiettivo.
In primo luogo ha l’obiettivo di introdurre alla conoscenza delle tecnologie e metodologie per la progettazione di sistemi digitali a diversi livelli di astrazione. Lo studente impara a progettare reti logiche combinatorie e sequenziali e a progettare sistemi digitali mediante linguaggi HDL.
Un secondo obiettivo è la conoscenza dell’organizzazione dei calcolatori elettronici, l’architettura del set delle istruzioni, e le tecniche per un’efficiente implementazione. In tale contesto lo studente impara a valutare le prestazioni di un calcolatore e l'impatto delle scelte architetturali sulle prestazioni. Inoltre, lo studente impara a programmare nel linguaggio Assembly relativo a un processore educational.
Modalità di svolgimento dell'insegnamento
L'insegnamento verra svolto utilizzando lezioni frontali, esercitazioni pratiche e lo studio di alcuni casi.
Prerequisiti richiesti
Rappresentazione dell’Informazione nei calcolatori elettronici, Algoritmi. Sequenze di Controllo. Tipi di dati. Puntatori. Funzioni. Concetto di Stato. Macchina a stati finiti.
Frequenza lezioni
La frequenza non è obbligatoria ma fortemente consigliata.
Contenuti del corso
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.
* Linguaggi per la descrizione dello hardware. Il VHDL. Flusso di progettazione mediante tools automatici. Entity e architecture. Modello concorrente e sequenziale. Process. Tipi di dati. Procedure e funzioni. Simulazione e sintesi.
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.
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.
Testi di riferimento
[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
Programmazione del corso
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 |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
Nell'esame del corso sono previste due prove.
La prima prova (2h 30min) verterà sulla progettazione dei sistemi digitali e saranno presenti 3 quesiti sulle reti logiche e lo sviluppo al calcolatore di un modello VHDL di un componente digitale. Per ciascuna delle parti è attribuito un punteggio massimo di 15 punti. Per superare la prova è necessario ottenere un punteggio minimo pari a 9 per ciascuna delle due parti. Il punteggio della prova è data dalla somma dei punteggi. Per superare la prova è necessario ottenere un punteggio minimo pari a 18.
La seconda prova (2h 30 min) è organizzata in due parti: la prima parte prevede lo sviluppo di un programma assembly (max 16 punti)
Nella seconda parte sono previsti 2 quesiti sull’architettura dei calcolatori (max 14 punti).
Il punteggio della seconda prova è dato dalla somma dei punteggi relativi alle due parti.
Per superare la seconda prova è necessario ottenere un punteggio minimo pari a 18 con almeno 10 punti nella prima parte della prova (programma assembly).
Per superare l’esame è necessario superare entrambe le prove.
Il voto finale proposto per il superamento dell’esame è pari alla media dei voti ottenuti nelle due prove.
Sono previste due prove in itinere che vengono svolte secondo le stesse modalità dell'esame.
Esempi di domande e/o esercizi frequenti
Esempi di domande e/o esercizi frequenti sono disponibili all’indirizzo htpp://studium.unict.it