Università “Federico II” di Napoli, Corso di Laurea in Ingegneria Elettronica e Ing. TLC Prof.Ing. Mauro Mastroianni CALCOLATORI ELETTRONICI I Programma del corso (9 CFU - 3 CFU) Corso di Laurea Ing. Elettronica e Ing. delle Telecomunicazioni Anno Accademico 2011/12 Prof. Ing. MAURO MASTROIANNI Aggiornamento al 07-06-2012 PROGRAMMA DA 9 CFU (Il programma da 3 CFU è in fondo al documento) Unità 1: RICHIAMI E INTRODUZIONE Unità 1-1: Rappresentazione dei numeri e richiami numerazione in varie basi Richiami di numerazione binaria, ottale, esadecimale. Operazioni in aritmetica binaria. Rappresentazione dei numeri. Generalità sui codici. Overflow e Underflow. Errori di rappresentazione. Rappresentazione e Aritmetica dei numeri naturali: segno e modulo, complementi alla base, complementi diminuiti. Eccesso-k. Virgola fissa. Virgola mobile: normalizzazione e approssimazione. Bit e byte: unità di misura della capacità di memoria. Unità 1-2: Introduzione ai calcolatori elettronici Macchina di Turing. Modelli di Von Neumann. Unità di controllo. Ciclo del processore. Unità aritmetico-logica. Modelli architetturali di un computer. CPU. Modello architetturale di una CPU. Memoria primaria e interazione con CPU. Registri. Sistema di I/O. Bus. Unità 1-3: Storia dei calcolatori elettronici Le generazioni di computer. Lavori Batch. Tecnica delle “divisione del tempo”. Esempi. Unità 2: RETI LOGICHE E MACCHINE ELEMENTARI Unità 2-1: Algebra di Boole Algebra di Boole. Modello fondamentale. Definizioni e postulati. Proprietà notevoli. Legge di dualità. Variabili e funzioni booleane. Funzioni AND, OR, NOT. Teoremi complemento, convoluzione, elementi neutri, assorbimento (dimostrazioni). Teorema di De Morgan e di Shannon (dimostrazioni). Teorema dell’elemento unico. Principio di eliminazione. Algebra degli insiemi. Teorema di Stone. Algebra della logica. Segnale binario. Porta logica NOT, AND, OR. Algebra dei circuiti e reti. Corrispondenza tra forma e circuito. Unità 2-2: Funzioni booleane e porte universali Mintermine e maxtermine. Tabelle di verità. Le sedici funzioni di due variabili. Porte a più ingressi. Forma normale di tipo p e di tipo s. Numero caratteristico. Equazioni booleane. Operatori logici e funzioni generalizzate. Funzioni booleane “generalizzate”. Funzioni NAND e NOR, proprietà e trasformazione di forme p e s. Esercizi. Programma del corso di Calcolatori Elettronici I Pagina 1 di 5 Università “Federico II” di Napoli, Corso di Laurea in Ingegneria Elettronica e Ing. TLC Unità 2-3: Minimizzazione con mappe di Karnaugh Costi di una forma. Minimizzazione algebrica. Implicanti, (dimostrazioni). Diagrammi di Veitch e Mappe di Karnaugh, minimizzazione con Mappe di Karnaugh. Mappe per forme specificate (presenza di don’t care) e relativa minimizzazione di Prof.Ing. Mauro Mastroianni Implicanti Primi e proprietà proprietà notevoli. Esercizi di S. Funzioni incompletamente Karnaugh. Esercizi. Unità 2-4: Minimizzazione con metodo di Quine e McCluskey Presupposti teorici e dimostrazioni. Ricerca degli implicanti primi: metodo di Quine, metodo di McCluskey, metodo di Karnaugh. Copertura minima, nucleo, resto. Metodi di copertura minima. Minimizzazione per funzioni incompletamente specificate (don’t care). Esercizi. Unità 2-5: Parità, Disparità e Decomposizione funzionale Funzioni XOR ed EQ, forme alternative e proprietà. Funzioni parità e disparità, dualità, associatività (dimostrazioni), struttura ad albero della disparità. Decomposizione funzionale e matrici di decomposizione. Esempi. Unità 2-6: Codifica e Controllo di errore Codifica delle informazioni a lunghezza fissa e a lunghezza variabile. Codifica diretta e indiretta. Codice BCD. Codici incompleti e ridondanti. Decodifica. Codifica dei caratteri. Controllo di errore con bit di parità. Tecnica Check Sum. Distanza di Hamming. Teorema di Hamming (solo enunciato). Unità 2-7 e 2-8: Macchine combinatorie fondamentali Caratteristiche delle macchine combinatorie. Transcodificatore. Transcodificatore per visualizzatore a 7 segmenti. Decodificatore. Decodificatore incompleto. Decodificatore composto a semiselezione e ad albero. Utilizzo di Decoder nell’input/output del processore. Codificatore. Codificatore BCD. Codificatore a priorità. Multiplexer. Demultiplexer. Multiplexer e Demultiplexer indirizzabile. Costruzione di un multiplexer e di un de multiplexer a 2 ingressi di selezione. Multiplexer composti. Comparatore parallelo e seriale. Comparatore bit-seriale e circuito. Comparatore binario. Collegamento in cascata di comparatori. Semiaddizionatore. Addizionatore. Sottrattore. Addizionatore binario. Addizionatore seriale e parallelo. Addizionatore con anticipo del riporto (carry lookahead). Reti di addizionatori con anticipo del riporto. Rete di anticipo a più livelli. Composizione di macchine combinatorie. Esercizi. Esempi di macchine elementari in commercio: datasheet comparatore 54-85, multiplexer 54151, multiplexer 54-153. Unità 2-9: Reti Universali Reti con multiplexer e Logica Folded. Esercizi. ROM. Programmable Logic Array. Field Programmable Gate Array (FPGA). Unità 2-10: Tempificazione Ritardo di propagazione e ritardo inerziale. Sequenze di valori. Valori e Sequenze impulsivi e a livelli. Classificazione delle sequenze. Clock. Clock a n fasi. Commutazione sul fronte di clock. Macchine a livello e impulsive. Alee e classificazione. Alee multiple. Alee per impulsi concomitanti. Alee statiche e aggiunta implicanti. Alee dinamiche. Esercizi. Unità 2-11: Macchine sequenziali Concetto di stato e automa. Quintupla della macchina sequenziale. Modello di Moore e Mealy. Modello realizzativo. Diagramma e Tabella degli stati. Esercizi su riconoscitori di sequenze. Modello generale di rete sequenziale. Stato stabile e Macchina asincrona. Modello Fondamentale con ritardi di Macchina asincrona. Macchina a sincronizzazione esterna. Rete a sincronizzazione esterna. Programma del corso di Calcolatori Elettronici I Pagina 2 di 5 Università “Federico II” di Napoli, Corso di Laurea in Ingegneria Elettronica e Ing. TLC Prof.Ing. Mauro Mastroianni Unità 2-12: Flip-Flop, Registri, Contatori, Bus Elemento bistabile e classificazione dei Flip-Flop. Flip flop RS: realizzazione ed equazioni di stato. Flip flop abilitato: Latch e Edge triggered. Flip flop D, T, JK: realizzazioni ed equazioni di stato. Esempi di Flip-Flop in commercio: 74HC74 (D e RS), CD4095BMS (JK e RS). Registri e classificazione, seriale e parallelo. Realizzazione con JK. Trasferimenti tra registri. Esempi di shift register in commercio: 74H595. Esercizi. Contatori modulo n. Realizzazione con JK. Diagramma di tempificazione. Esempi di contatore in commercio: 74VHC393. Esercizi con i contatori Concetto di bus. Bus dedicato e comune. Trasferimento su bus unico. Porte abilitanti (tristate). Esempi di buffer tristate in commercio: DM74LS125A. Abilitazione di un bus e OR di bus. Comunicazione su un bus unico. Trasferimenti paralleli con due bus. Unità 2-13: Progetto di reti sincrone Modello reti sincrone impulsive a sincronizzazione esterna. Fasi della progettazione. Progetto completo di un riconoscitore di sequenza. Progetto di un riconoscitore BCD. Unità 3: PROGRAMMAZIONE DEI MICROPROCESSORI Unità 3-1: Architettura del processore Organizzazione dei dati in memoria: parola-carattere, big-little-endian, allineamento. Architettura e caratteristiche del processore MC68000. Panoramica su altre CPU. Unità 3-2: Introduzione a Assembly Esempio di equivalenza tra linguaggio macchina e linguaggio assembly. Cenni alle differenze tra assemblatori, compilatori e interpreti. Esempi di assembly per diversi microprocessori. Caratteristiche dei linguaggi assembly, istruzioni, convenzioni. Program Location Counter. Formato istruzioni e classificazione. Unità 3-3: Programmazione assembly MC68000 Modello di programmazione del 68000. Registro di stato. Classi di istruzioni. Alcuni codici operativi del 68000 e cenni all’indirizzo effettivo (effective address): MOVE, LEA, MOVEA, ADD e SUB, ADDI e SUBI, ADDQ e SUBQ, MUL e DIV, CLR, EXG e SWAP, istruzioni Logiche, istruzioni di Shift, CMP, CMPM. Istruzioni di salto condizionato Bcc e DBcc e codici di condizione. Istruzione BTST. Salti incondizionati JMP. Caso particolare DBRA (esempio di ciclo for). Differenza signed / unsigned nel confronto. Pseudo-operazioni e etichette. Esempio di programma in linguaggio assembly. Codifica in assembly dei costrutti IF, IF…ELSE, DO-WHILE, WHILE. Unità 3-4: Ambiente ASIM Funzionamento del software ASIM e AsimTool. Unità 3-5: Primi esercizi Assembly MC68000 Esempi di programmi assembly: moltiplicazione di due interi; somma di n numeri; prodotto scalare di due vettori; ricerca di un carattere in un testo e variante migliorativa. Unità 3-6: Indirizzamento e tempificazione istruzioni nel MC68000 Organizzazione dati in memoria. Dimensioni indirizzi e registri. Estensione dell’indirizzo. Esercizi. Modi fondamentali di indirizzamento degli operandi: indirizzamento diretto attraverso registro, indirizzamento immediato, indirizzamento assoluto. Altri modi di indirizzamento: indirizzamento indiretto e varianti (pre-decremento e post-incremento), indirizzamento indicizzato con base, indirizzamento indicizzato con indice e base, indirizzamento relativo. Esempi ed esercizi. Tempificazione delle istruzioni: concetti base, velocità dei modi di indirizzamento, velocità delle istruzioni, cenni alle tabelle di tempificazione delle istruzioni del 68000, esempi di cicli per l’istruzione Move e per le istruzioni di somma. Applicazioni pratiche in aula PC. Programma del corso di Calcolatori Elettronici I Pagina 3 di 5 Università “Federico II” di Napoli, Corso di Laurea in Ingegneria Elettronica e Ing. TLC Prof.Ing. Mauro Mastroianni Unità 3-7: Subroutines Richiami sui sottoprogrammi. Collegamento mediante salto semplice. Collegamento con utilizzo dello stack. Collegamento con apposite istruzioni di salto a subroutines: soluzione con link register e soluzione con stack. Le istruzioni JSR e RTS del 68000. Esempi ed esercizi. Passaggio dei parametri. Soluzione nei registri: esempio con la moltiplicazione a somme ripetute. Soluzione in aree di memoria: posizionamento dei parametri nel chiamante o nel chiamato; esempio con la divisione binaria con subroutines (escluso lo studio in dettaglio dell’algoritmo della divisione binaria). Soluzione con lo stack: le istruzioni LINK e UNLINK; esempio con la moltiplicazione binaria. Passaggio per valore o per riferimento. Esempi ed esercizi. Simulazioni in ASIM di un programma con due moduli: chiamante e chiamato. Unità 3-8: Esempi di programmazione assembly per 68000 Dieci esempi di programmi assembly senza e con subroutines. Unità 4: MEMORIE e SISTEMA DI INPUT-OUTPUT Unità 4-1: Memoria primaria Memoria statica e dinamica. Cella. Definizione di memoria. Modello logico. Pinout di un chip. Memoria indirizzabile. Memoria associativa. Tassonomia della memoria. Cella statica e dinamica. Parametri. Unità di misura della capacità. Schemi di selezione: associativa, lineare, a più dimensioni, temporale. Componenti di una RAM. Esempio di una memoria in commercio: 28F512. Collegamenti tra moduli RAM. Banco di memoria: parallelismo di bit, SIMM, DIMM, SO-DIMM, Micro-DIMM. Memoria DRAM e SRAM. Memoria SDRAM: SDR e DDR. Socket e Canali di memoria. Memory card. Alimentazione elettrica delle memorie. Integrità dei dati: Parity checking, fake parity, ECC. Buchi di memoria. ROM e tipi di memorie non volatili. Firmware. Gerarchia delle memorie e modello a piramide. Cenni a memoria cache. Principio di località. CPU a più cache (esempi CPU dal 1993 al 2007). Unità 4-2: Architettura I/O Schema di collegamento del sistema di I/O. Device controller. Protocollo sincrono e asincrono. Comunicazione parallela e seriale (sincrona e asincrona). Elementi della comunicazione. Collegamento port-mapped e memory mapped. Driver. Meccanismi di comunicazione: polling, DMA, interruzioni. Unità 4-3: Interruzioni e privilegi Inquadramento generale delle Interruzioni. Ciclo del processore esteso. Meccanismo di gestione interruzioni. Salvataggio stato. Latenza. Interruzioni innestate. Priorità e mascheramento. Identificazione del chiamante: polling e daisy chain, interrupt vettorizzato, interrupt autovettorizzato. Vettore delle interruzioni. Driver e ISR. Interruzioni nel 68000. Priorità, identificazione del chiamante, dettaglio del vettore delle interruzioni e dell’autovettore. Gruppi di eccezioni. Stati di esecuzione. Istruzioni TRAP e TRAPV. Stati user e supervisor e passaggio tra stati. Istruzioni privilegiate. Gestione delle eccezioni in cinque fasi. Unità 4-4: PIN e diagrammi temporali del 68000 PIN del 68000. Gruppi: trasferimento dati; interruzioni; varie. Facoltativo: Comprensione di diagrammi temporali: ciclo accesso in memoria, ciclo ACK delle interruzioni. Unità 4-5: Memoria di massa Generalità. Classi di dispositivi. Accesso sequenziale e diretto. Memoria a nastro. Memoria a dischi magnetici: struttura, organizzazione dati, tempi d’accesso, interfacce, form factor, rpm. Dischi magneto-ottici (cenni). Dischi ottici: lettura e scrittura su CD e DVD. Memorie USB. Memory card. Per tutti i tipi di memoria: vantaggi e svantaggi, capacità di memoria tipica e massima, velocità, robustezza. Facoltativo: Memorie a disco obsolete. Programma del corso di Calcolatori Elettronici I Pagina 4 di 5 Università “Federico II” di Napoli, Corso di Laurea in Ingegneria Elettronica e Ing. TLC Prof.Ing. Mauro Mastroianni Note al programma: Gli esempi di chip in commercio e i datasheet non devono essere studiati per esporli all’esame ma solo per meglio comprendere il relativo argomento. Libri di testo consigliati Teoria e Progetto delle Reti Logiche. Autori: B. Fadini, A. Esposito. Editore: Liguori Editore. Edizione: seconda. Anno di pubblicazione: 1994. 416 pagine. Al 04/03/2012 disponibile su bol.it al prezzo di € 43,20; non disponibile su ibs.it; non disponibile su amazon.it Introduzione all’architettura dei calcolatori. Autori: Hamacher V. Vranesic, Safwat Zaky. Editore: McGraw-Hill. Edizione: seconda. Data di Febbraio 2007. ISBN: 8838663734. ISBN-13: 9788838663734. Pagine: 660. disponibile su bol.it al prezzo di € 36,00; non disponibile su ibs.it; non amazon.it Carl, Zvonko Pubblicazione: Al 04/03/2012 disponibile su Altri testi e risorse utili: Reti logiche: complementi ed esercizi. Autori: Fadini B., Mazzocca N. Editore: Liguori Editore. Anno di pubblicazione: 1995. 252 pagine. Al 04/03/2012 disponibile su bol.it al prezzo di € 20,50; non disponibile su ibs.it; non disponibile su amazon.it Prove d’esame (con o senza le relative soluzioni) dei docenti di “Calcolatori Elettronici I” della Federico II pubblicate sulle aree web, compreso l’area web del docente di questo corso PROGRAMMA Integrazione da 3 CFU Dal programma da 9CFU: - Unità 1: RICHIAMI E INTRODUZIONE - Unità 2: RETI LOGICHE E MACCHINE ELEMENTARI Note al programma: Gli esempi di chip in commercio e i datasheet non devono essere studiati per esporli all’esame ma solo per meglio comprendere il relativo argomento. Libri di testo consigliati e altro Teoria e Progetto delle Reti Logiche (vedi dettagli prima) Reti logiche: complementi ed esercizi (vedi dettagli prima) Prove d’esame (vedi dettagli prima) Programma del corso di Calcolatori Elettronici I Pagina 5 di 5