Docente/i:
Giovanni Danese
Ivo De Lotto
Denominazione del corso: Reti logiche e calcolatori elettronici
Codice del corso: 500540
Corso di laurea: Ingegneria Elettronica e delle Telecomunicazioni, Ingegneria Informatica
Settore scientifico disciplinare: ING-INF/05
L'insegnamento è caratterizzante per: Ingegneria Informatica
Crediti formativi: CFU 12
Sito web del corso: gamma.unipv.it
Obiettivi formativi specifici
L’insegnamento intende fornire:
con il primo modulo i fondamenti dell’algebra di Boole, i metodi e le tecniche di analisi e di progetto delle reti combinatorie e sequenziali sincrone e asincrone e una descrizione delle unità funzionali di un processore numerico, in particolare dell’unità aritmetica e delle principali operazioni aritmetiche da essa svolte; le esercitazioni vertono sull’analisi e sintesi delle reti logiche e sugli algoritmi per le operazioni aritmetiche in presenza di un addizionatore.
con il secondo modulo un approfondimento dell’architettura dei microcalcolatori e dei microprocessore, data la loro grande diffusione in impianti e strumenti di misura, e di spiegarne il funzionamento attraverso il linguaggio assemblativo di programmazione, mettendo in evidenza la relazione esistente tra l’architettura di un calcolatore e da un lato le tecnologie logiche ed elettroniche, dall’altro l’organizzazione del software di base; le esercitazioni riguardano il linguaggio assemblativo di un microprocessore e la scrittura e la messa a punto di semplici programmi attraverso un idoneo ambiente di sviluppo e simulazione.
Programma del corso
Gli argomenti sono divisi fra i due moduli.
Il primo modulo prevede:
Introduzione all’algebra di Boole, Le reti combinatorie, Le reti sequenziali, I blocchi funzionali di un processore numerico e unità aritmetica.
Il secondo modulo prevede:
Architettura dei calcolatori, Architettura di una CPU, Microprocessore e linguaggio assemblativo, L’ambiente di sviluppo dei progetti.
Introduzione all’algebra di Boole
Introduzione alla logica e alla teoria degli insiemi; algebra di Boole; espressioni e funzioni booleane; teorema di espansione di boole; prima e seconda forma canonica; implicanti e implicati; rappresentazione di funzioni booleana; semplificazione di funzioni booleane e funzioni di costo minimo (metodo delle mappe di Karnaugh, metodo di Tison, metodo di Quine McCluskey, funzione di Petrick).
Le reti combinatorie
Reti combinatorie; variabili logiche e segnali elettrici; componenti elettronici elementari; blocchi funzionali elementari: And, Or, Not, Nand, Nor, Xor, Id. Analisi di reti combinatorie. Sintesi di reti combinatorie. Reti combinatorie elementari: addizionatore, codificatore e decodificatore, selettore d’ingresso e d’uscita, ROM. Transitori nelle reti combinatorie: alee statiche. Reti con segnalazione d’errore, reti immuni da errore. Diagnosi ai morsetti.
Le reti sequenziali
Reti sequenziali: stato interno, descrizione di automi a stati finiti, macchine minime; metodo della tabella triangolare e macchine compatibili. Macchine asincrone, corse critiche. Macchine sincrone. Analisi di macchine sequenziali, analisi temporale. Sintesi di macchine sequenziali: assegnazione degli stati. Reti sequenziali notevoli: Flip-flop, registri, contatori, riconoscitori di sequenza, sommatore seriale.
Blocchi funzionali di un processore numerico e unità aritmetica
Schema a blocchi di un processore numerico: flusso delle istruzioni e flusso dei dati, istruzioni macchina elementari e relativi microcodici. Unità aritmetica: rappresentazione dei numeri relativi e conversione tra rappresentazioni, sommatori, acceleratori di riporto, prodotto, moltiplicatori veloci, algoritmi di divisione. Operazioni sui numeri reali.
Architettura dei calcolatori
Hardware, firmware e software. Componenti elettronici di un calcolatore. Unità di memoria e relativa gestione. Unità d’ingresso e d’uscita e relativa gestione. Interruzione. Interconnessione tra unità funzionali:bus.
Architettura di una CPU
Unità funzionali, registri, linguaggio di trasferimento tra registri; unità di controllo, microcomandi, microprogrammazione.
Microprocessore e linguaggio assemblativo
Microprocessori e sistemi costruiti su microprocessori. Modalità d’indirizzamento istruzioni di un linguaggio assemblativo. Gestione dei segnali d’intereruzione. Esempi di programmi scritti in un linguaggio assemblativo.
L’ambiente di sviluppo dei progetti
L’ambiente di sviluppo dei progetti
Assemblatore. Linker-Loader. Simulatore. Esempi di programmi scritti in linguaggio assemblativo e relativa messa a punto mediante l’uso di un simulatore
Prerequisiti
Devono esser noti i principi della programmazione e i contenuti dei corsi di Fondamenti d’Informatica.
Tipologia delle attività formative
Lezioni (ore/anno in aula): 60
Esercitazioni (ore/anno in aula): 60
Attività pratiche (ore/anno in aula): 0
Materiale didattico consigliato
Per il primo modulo i riferimenti bibliografici sono i primi 4.
Per il secondo modulo i riferimenti sono quinto e sesto.
I.De Lotto. Appunti di Calcolatori elettronici. Parte prima: reti logiche e unità aritmetica. Spiegel, Milano, 2001.
F.Luccio:, L.Pagli. Reti logiche e calcolatore. Boringhieri, Torino, 1979.
R.Laschi. Reti logiche. Esculapio Ed. Bologna, 1986.
M.Morris Mano, Charles R. Kime. Reti logiche. Addison Wesley, Milano, 2002.
David A.Patterson, Jonh L.Hennessy. Struttura e progetto dei calcolatori (con CD ROM)-Interfaccia hardware e software. Zanichelli, 2010. Terza edizione Zanichelli condotta sulla quarta edizione americana.
David A. Patterson, John L. Hennessy. Computer organization and design: The hardware-software interface. Morgan Kaufman Publishers, Inc. 2009. Quarta edizione.
Modalità di verifica dell'apprendimento
Per gli argomenti del primo modulo è prevista una prova scritta con lo svolgimento di esercizi relativi alle reti combinatorie, alle reti sequenziali e all’unità aritmetica e un colloquio in cui si discutono i risultati della prova scritta. Per gli argomenti del secondo modulo è prevista una prova di teoria in cui il candidato approfondisce argomenti trattati nel corso e una prova pratica in cui viene valutata la capacità del candidato di utilizzare gli strumenti di sviluppo messi a disposizione e usati durante il corso. Per questo modulo la valutazione è ottenuta come media aritmetica dei voti conseguiti nella prova di teoria, con peso 2/3, e nella prova pratica, con peso 1/3, a condizione che ambo le valutazioni siano sufficienti. Il risultato della verifica complessiva è rappresentato dalla media aritmetica dei risultati delle prove per i due moduli, arrotondata all’intero più vicino, a condizione che ambo le valutazioni siano sufficienti.
|