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. |
Data | Slide / Riferimenti | Argomenti |
- |
|
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. |
![]() |
|
![]() |
|
![]() |
|
Ultimo aggiornamento: 9 giugno 2017