Calcolatori Elettronici I

Corso di Laurea in Ingegneria Biomedica, Ingegneria Elettronica ed Ingegneria delle Telecomunicazioni, Canale San Giovanni

ing. Alessandro Cilardo

A.A. 2016-17




>>>~~~ Risultati finali delle prove infracorso ~~~<<<

Materiale lezioni svolte:
Ulteriori esercitazioni ed approfondimenti.
Data Slide / Riferimenti Argomenti
Martedì 7/3/2017 Introduzione al Corso. Brevi cenni storici sulla evoluzione dei calcolatori elettronici.
Primi cenni introduttivi sull'architettura di un calcolatore elettronico.
Venerdì 10/3/2017 Sistemi di numerazione. Sistema Binario. Rappresentazione binaria senza segno. Concetto di overflow.
Rappresentazione in complementi. Proprietà fondamentali. Rappresentazione in complementi diminuiti. Rappresentazione in modulo e segno. Rappresentazione Eccesso-k.
Martedì 14/3/2017 Rappresentazione in virgola fissa: Esercizi su rappresentazione di interi, interi con segno, frazionari in virgola fissa.
Rappresentazione in virgola mobile. Normalizzazione. Standard IEEE 754. Esempi.
Giovedì 16/3/2017 Esercizi di riepilogo sulla parte di rappresentazione. Esercizi ed approfondimenti sulla rappresentazione in virgola mobile.
Codifica dell'informazione. Codici completi/incompleti, ridondanti, a lunghezza variabile. Rappresentazione decodificata. Esempi. Codice BCD. Codice ASCII.
Venerdì 17/3/2017 Architettura del calcolatore. Funzionamento delle memorie. Operazioni di ingresso/uscita. Allineamento. Organizzazione little-endian e big-endian. Struttura del processore. Unità di controllo e unità operativa. ALU. Registri interni e registri macchina. Operazioni registro-registro e registro-memoria. Descrizione dettagliata del processo di fetch. Esempio: processore Motorola 68000.
Martedì 21/3/2017 Esempio dettagliato di funzionamento interno di memoria e processore.
Giovedì 23/3/2017 Istruzioni del processore. Operandi delle istruzioni. Classificazione delle istruzioni. Architetture CISC e RISC. Classi fondamentali di istruzioni. Istruzioni di trasferimento dati, logico/aritmetiche, di scorrimento, di confronto, di salto, di collegamento a sottoprogramma, di input/output.
Codifica delle istruzioni.
Venerdì 24/3/2017 Programmazione Assembler. Ciclo e strumenti di sviluppo.
Martedì 28/3/2017 Processore Motorola 68000. Modello di programmazione. Introduzione al linguaggio assembler del processore 68000. Istruzioni fondamentali: trasferimento, operazioni logico/aritmetiche, salti condizionati e incondizionati. Pseudo-istruzioni. Gestione di cicli.
Programmi di esempio: presentazione dettagliata di cinque programmi assembler elementari.
Strumenti didattici: Assemblatore AsimTool e simulatore ASIM. Guida dettagliata all'installazione e all'uso di Asim/AsimTool.
Venerdì 31/3/2017 Primi esercizi assembler proposti agli studenti: gestione della memoria, operazioni logico/aritmetiche, salti condizionati, cicli.
Martedì 4/4/2017 Introduzione ai modi di indirizzamento. Register Direct; Data-register Direct; Address-register Direct; Immediato; Absolute (short e long); Address-register Indirect. Auto-Increment; Auto-Decrement; Indexed short; Based; Based Indexed; Relative; Relative Indexed (short e long)
Esempi sui modi di indirizzamento. Accesso ad un vettore. Scorrimento di una matrice.
Venerdì 7/4/2017 Esempi notevoli di strutture dati e programmi per la loro manipolazione. Programma per la ricerca del minimo all'interno di una matrice. Programma per il rovesciamento del contenuto di un vettore. Programma per la ricerca di una sottostringa all'interno di una stringa.
Martedì 11/4/2017 completamento della lezione precedente. Esercizi
Giovedì 20/4/2017 Ulteriori istruzioni del processore Motorola 68000. Test, Scambio, Add/Sub Quick, operazioni con immediati, moltiplicazione e divisione, trasferimento indirizzi (MOVEA), trasferimenti multipli di registri (MOVEM), confronti memoria-memoria (CMPM). Decrement-and-Branch (DBcc).
Venerdì 21/4/2017 Sviluppo di esercizi. Programmi con DBcc. Programmi con moltiplicazione. Manipolazione di stringhe con terminatore. Confronti tra uso delle direttive EQU e DC.
Strutture di controllo in assembler. Confronto con il C/C++. Costrutti if, if...else, do...while, while, for
Giovedì 27/4/2017 Sottoprogrammi - Introduzione. Sottoprogrammi nei linguaggi di alto livello; procedure e funzioni. Esempi. Problematiche: linkage e scambio dei parametri. Istruzioni assembler per il collegamento a sottoprogramma. Linkage tramite registri. Linkage tramite memoria. Esempi di programmi assembler.
Organizzazione della memoria a Stack. Operazioni di push e pop. Esempio dettagliato di funzionamento dello Stack. Supporto del processore per la gestione dello stack. Realizzazione delle operazioni di push e pop nel processore Motorola 68000. Linkage tramite stack. Istruzioni JSR e RTS. Esempi di programmi assembler.
Venerdì 28/4/2017 Prova di riepilogo su rappresentazione ed architettura dei calcolatori
Martedì 2/5/2017 Sottoprogrammi - Passaggio di parametri tramite registri. Passaggio di parametri tramite aree di memoria. Passaggio di parametri tramite stack. Ruolo dello stack nelle chiamate annidate ed in particolare in quelle ricorsive. Discussione dettagliata di esempi con scambio di parametri tramite stack.
Giovedì 4/5/2017 Sottoprogrammi - Gestione dello Stack Frame. Funzionamento ed uso delle istruzioni LINK ed UNLK. Esempi sulla gestione dello Stack Frame tramite istruzioni LINK ed UNLK.
Venerdì 5/5/2017 Sottoprogrammi - Esempio dettagliato di programma con subroutine ed uso dello stack frame (istruzioni LINK/UNLK)
Esercizi di riepilogo sulla parte di programmazione assembler.
Martedì 9/5/2017 Discussione di un esercizio di programmazione assembler tratto da una prova d'esame.
Sottosistema di Ingresso/Uscita. Periferiche. Soluzioni per l'organizzazione dell'I/O: "I/O mapped" I/O e "memory-mapped I/O". Interfaccia della periferica. Registri di Controllo/Stato, Indirizzi, Dati. Esempio: dispositivo "Terminal"; interfaccia, registri di Controllo/Stato e Dati. Programma di esempio.
Giovedì 11/5/2017 Interazione CPU-Periferiche: polling e interruzioni. Modifica al ciclo di Von Neumann per la gestione di eventi eccezionali. Modalità di esecuzione Utente e Supervisore. Esempio nel caso del processore M68000. Tipologie di interruzioni: reset, trap, interruzioni per l'I/O. Meccanismo di funzionamento delle interruzioni. Sequenza di attivazione: dettagli. Salvataggio e ripristino dello stato del programma interrotto. Latenza di un'interruzione. Interrupt multipli e priorità. Interrupt innestati. Presenza di più periferiche sulle stesse linee di interrupt. Identificazione delle periferiche: interrupt vettorizzati. Interruzioni nel M68000: linee di interruzione, livelli di priorità, interruzioni vettorizzate, tabella delle interruzioni, interruzioni autovettorizzate.
Venerdì 12/5/2017 Introduzione allo studio delle Reti Logiche. Algebra di Boole. Rappresentazione delle funzioni logiche. Tabella di verità.
Minimizzazione delle funzioni logiche. Mintermini e Maxtermini. Forme P ed S. Esempi.
Martedì 16/5/2017 Minimizzazione tramite metodi algebrici. Metodo di Quine/McCluskey. Confronti con metodo basato su mappe di Karnaugh. Esempi ed esercizi.
Venerdì 19/5/2017 Ulteriori spiegazioni su metodo di Quine/McCluskey. Matrice di copertura.
Punti di indeterminazione (don't care). Minimizzazione in forma S. Esempi ed esercizi sul progetto di reti combinatorie.
Martedì 23/5/2017 Funzioni NAND e NOR. Realizzazione di reti usando soltanto porte NAND e soltanto porte NOR. Funzione Disparità e Parità. Realizzazione ad albero. Esercizi.
Giovedì 25/5/2017 Circuiti combinatori notevoli: definizione di codificatori/decodificatori/transcodificatori, multiplexer/demultiplexer, addizionatori/sottrattori, comparatori. Struttura dettagliata di un addizionatore/sottrattore a propagazione del riporto.
Esercizi sul progetto di reti combinatorie e sulle macchine combinatorie elementari.
Venerdì 26/5/2017 Reti logiche con memoria. Latch RS con NOR. Tabella Funzionale e Tabella di eccitazione. Latch RS con NAND. Segnale di Abilitazione. Latch di tipo D. Problemi di tempificazione con i Latch. Flip-Flop master-slave. Flip-Flop edge-triggered. Flip-Flop di tipo JK. Flip-Flop di tipo T. Ingressi diretti di preset e clear. Riepilogo.
Martedì 30/5/2017 Esercitazione su Reti Logiche combinatorie, su elementi di memoria e su analisi di semplici reti sequenziali
Aggiunte tracce relative alla parte di Reti Logiche. (Nota: le tracce sono relative all'esame di Reti Logiche e pertanto possono contenere esercizi relativi a materiale facoltativo per questo corso)
Giovedì 1/6/2017 Macchine sequenziali: struttura realizzativa. Esempio di analisi di una rete sequenziale. Tabella e grafo di transizione. Modello Formale: Macchine a Stati Finiti. Macchine di Mealy e di Moore. Esempi. Modello realizzativo generale: modello di Huffman. Progetto di reti sequenziali. Macchine asincrone e problemi di tempificazione (cenni). Macchine sincrone autosincronizzate e a sincronizzazione esterna. Esempio di progetto.
Martedì 6/6/2017 Equivalenza tra stati e tra macchine. Problema della minimizzazione degli stati nelle macchine sequenziali. Algoritmo del partizionamento e metodo tabellare di Paull-Unger. Esempio dettagliato di minimizzazione degli stati in una macchina completa e definizione delle classi di equivalenza.
Registri. Registri a scorrimento. Contatori: contatori a cascata, sincroni, modulari.
Esempi dettagliati ed esercizi di analisi e progetto di macchine sincrone con diversi tipi di elementi di memoria.
Giovedì 8/6/2017 Prova di riepilogo su tutti i contenuti del corso.


Materiale aggiuntivo:
DataSlide / RiferimentiArgomenti
   - Organizzazione della memoria nel processore M68000. Spazio di indirizzamento. Dimensione dei registri indirizzi e del bus indirizzi. Aliasing. Esempi. Processori M68000 e M68020. Esercizi sull'organizzazione della memoria. Indirizzabilità a livello di byte, word e long-word.

Esercizi


Libro di testo

  • (Testo di approfondimento per la parte di Reti Logiche)
    Reti logiche
    Cristiana Bolchini, Carlo Brandolese, Fabio Salice, Donatella Sciuto.
    Seconda Edizione, Apogeo, 2008
    ISBN: 978-88-5032-833-8

Altri documenti di approfondimento


Software didattico


Ultimo aggiornamento: 9 giugno 2017