DIPARTIMENTO DI INGEGNERIA ELETTRICA ELETTRONICA E INFORMATICA Corso di laurea in Ingegneria informatica Anno accademico 2016/2017-3 anno CALCOLATORI ELETTRONICI 9 CFU - 1 semestre Docente titolare dell'insegnamento GIUSEPPE ASCIA Email: giuseppe.ascia@dieei.unict.it Edificio / Indirizzo: Edificio 4 Polifunzionale, V piano, stanza 14 Telefono: 0957382353 Orario ricevimento: martedì 9-11, venerdì 9-11 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. 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 programmare nel linguaggio Assembly relativo a un processore educational. 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 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. IInstruction Set Architecture MIPS64. Un Instruction Set Simulator per il processore MIPS 64: EDUMIPS Operazioni logico-aritmetiche. Accesso alla memoria. Chiamate di sistema. Array. Stringhe. Chiamata a procedura. 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. 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 [] 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. 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. 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. 4 Sommatore a propagazione del riporto e Sommatore ad anticipo di riporto. Moltiplicatore e divisore. Progetto di un ALU 5 * Linguaggi HDL. Sviluppo di un modello VHDL di sistema digitale. Simulazione di un modello VHDL. Testbench. 6 * I tipi di calcolatori e le loro caratteristiche. I componenti di un calcolatore. Organizzazione dei calcolatori elettronici. T1 capitoli 3 e 4, T1 capitoli 5 e 6, T1 capitoli 7 e 8, T2 capitolo 3, T1 capitoli 7 e 8, T2 capitolo 3, T1 appendice A, T2 capitolo 1, T3 capitolo 5 7 * Architettura del Set di Istruzioni dei processori. T2 capitolo 2, T3 capitolo 5, 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, 9 Organizzazione Pipeline di un processore. T2 capitolo 4, 10 * Assembly del processore educational EDUMIPS64. Assembler, linker e loader. Struttura di un programma assembly. 11 * Un Instruction Set Simulator per il processore EduMIPS Instruction Set Architecture dell EDUMIPS. 12 * Istruzioni logico-aritmetiche. Istruzioni di accesso alla memoria. Istruzioni per il controllo di flusso. 13 * Chiamate di sistema. Lettura e stampa di interi e stinghe. Gestione degli array.
14 Chiamata a procedure. Procedure annidate. Stack pointer. 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. 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, T2 capitolo 5, T3 capitolo 8, 17 Tecniche per il miglioramento delle prestazioni della cache. T2 capitolo 5, T3 * Conoscenze minime irrinunciabili per il superamento dell'esame. capitolo 8, 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. MATERIALE DIDATTICO E possibile scaricare tutto il materiale didattico in formato elettronico all indirizzo http://utenti.dieei.unict.it/users/gascia/corsi.html o all indirizzo htpp://studium.unict.it PROVA D'ESAME MODALITÀ D'ESAME Sono previste due prove da svolgere di norma nell'arco della stessa giornata. La prima prova in (2h 30min) verterà sulla progettazione dei sistemi digitali e saranno presenti 3 quesiti a risposta aperta 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 (3 ore) è 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 in itinere è necessario ottenere un punteggio minimo pari a 18 con almeno 10 punti nella prima parte della prova (programma assembly). Il punteggio della prova è dato dalla somma dei punteggi relativi alle due parti. 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. DATE D'ESAME Il calendario degli esami è disponibile sul il portale studenti dell ateneo ( http://portalestudente.unict.it) e presso il sito del corso di studio (www.dieei.unict.it/ing.informatica) PROVE IN ITINERE Sono previste due prove in itinere. La prima prova in itinere (2h 30min) verterà sulla progettazione dei sistemi digitali e saranno presenti 3 quesiti a risposta aperta 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 in itinere (3 ore) è 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 12 punti). Il punteggio della seconda prova è dato dalla somma dei punteggi relativi alle due parti. Per superare la seconda prova in itinere è necessario ottenere un punteggio minimo pari a 18 con almeno 10 punti nella prima parte della prova (programma assembly). Il punteggio della prova è dato dalla somma dei punteggi relativi alle due parti. Per superare l esame è necessario superare entrambe le prove in itinere. Il voto finale proposto per il superamento dell esame è pari alla media dei voti ottenuti nelle due prove. PROVE DI FINE CORSO Non sono previste prove di fine corso ESEMPI DI DOMANDE E/O ESERCIZI FREQUENTI Esempi di domande e/o esercizi frequenti sono disponibili all indirizzo http://utenti.dieei.unict.it/users/gascia/corsi.html o all indirizzo htpp://studium.unict.it