Lezione | Data | Slide / Riferimenti | Argomenti |
1 | 09/03/2015 |
|
Introduzione al Corso. Brevi cenni storici sulla evoluzione dei calcolatori elettronici. Primi cenni introduttivi sulla architettura di un calcolatore elettronico. |
2 | 11/03/2015 | Informazione e sua rappresentazione. Codici a lunghezza fissa ed a lunghezza variabile. Codici binari. Esempi di codici. Rappresentazione posizionale dei numeri. Sistemi binario, ottale ed esadecimale. Rappresentazione di numeri naturali. |
|
3 | 13/03/2015 | Rappresentazione di numeri interi relativi: rappresentazione in segno e modulo ed in complementi. Rappresentazione in complementi alla base. Funzione resto-modulo-M. Algoritmi di complementazione. Estensione della rappresentazione. Aritmetica in complementi. Overflow. Rappresentazione in complementi diminuiti. Rappresentazione per eccessi. Codifica di caratteri. Il codice ASCII. |
|
4 | 16/03/2015 |
|
Introduzione all'architettura del calcolatore. Il processore. Ciclo del processore. Modello ad accumulatore. Modello a registri generali. Architetture a stack (cenni). Architetture pipelined (cenni). Codifica delle istruzioni. |
5 | 18/03/2015 |
|
Algebra di Boole. Proprietā fondamentali. Definizione di Algebra di Boole. Teorema di De Morgan ed altre proprietà dell'algebra di Boole. Modelli di algebre di Boole: algebra delle proposizioni, algebra degli insiemi ed algebra dei circuiti. Porte logiche elementari e loro composizione. |
6 | 21/03/2015 |
|
Funzioni booleane e tabella di verità. Funzioni booleane di 2 variabili. Forma normale di tipo P e di tipo S di una funzione booleana. |
7 | 23/03/2015 |
|
Implicanti di una funzione. Implicanti primi. Mappe di Karnaugh. Rappresentazione di clausole e fattori elementari sulle Mappe di Karnaugh. |
8 | 26/03/2015 |
|
Introduzione al problema della minimizzazione di funzioni booleane. Metriche per la misura del costo di una funzione: costo di porte, costo di letterali, costo di ingressi. Ricerca dei primi implicanti ed individuazione dei primi implicanti essenziali sulle mappe di Karnaugh. Funzioni cicliche. |
9 | 27/03/2015 |
|
Minimizzazione di funzioni booleane. Fase di espansione: metodo di McCluskey. Fase di copertura: matrice di copertura. |
10 | 30/03/2015 |
|
Progetto di macchine combinatorie. Funzioni incompletamente specificate. Minimizzazione di funzioni incompletamente specificate con le mappe di Karnaugh e con la matrice di copertura. Progetto di un transcodificatore per display a 7 segmenti. |
11 | 01/04/2015 |
|
Introduzione al linguaggio macchina. Classi di istruzioni l/m. Primi cenni sul processore MC68000: modello di programmazione e codifica delle istruzioni. AsimTool. Ambiente di simulazione Asim. |
12 | 13/04/2015 |
|
Introduzione al linguaggio assembly. Formato delle istruzioni in assembly. Etichette. Direttive di assemblaggio. Il programma assemblatore. Processo di assemblaggio. Tabella dei simboli. |
13 | 15/04/2015 | Funzioni NAND e NOR. Proprietà di NAND e NOR. Forme NAND e NOR di una funzione booleana. Macchine combinatorie fondamentali: addizionatori binari. Half e full adder. |
|
14 | 17/04/2015 |
Lezione 14 (seconda parte): |
Addizionatore binario parallelo a propagazione del riporto. Addizionatore binario con anticipo del riporto: rete di carry look-ahead. Macchine combinatorie fondamentali: encoder e decoder, multiplexer e demultiplexer. |
15 | 20/04/2015 |
|
Gestione degli indirizzi nel processore MC68000: aliasing degli indirizzi. Modi di indirizzamento: diretto a registro, assoluto ed immediato. |
16 | 22/04/2015 |
|
Automi a stati finiti. Modelli di Moore e di Mealy. Rappresentazione di ASF mediante tabelle e mediante grafi. Macchine sequenziali. Def. di stato stabile sotto un dato ingresso. Macchine sequenziali asincrone. Modello fondamentale. |
17 | 24/04/2015 |
|
Il flip flop RS fondamentale come macchina asincrona. Circuito a NOR ed a NAND: analisi. Problemi di tempificazione del flip-flop RS fondamentale. Flip-flop RS abilitato latch. Flip-flop D latch. |
18 | 27/04/2015 |
|
Primi esempi di programmi in linguaggio assembly. Direttive di assemblaggio per la gestione dei dati. Modi di indirizzamento: indiretto, indiretto con predecremento, indiretto con postincremento. Gestione di uno stack attraverso i modi di indirizzamento con predecremento e postincremento. |
19 | 29/04/2015 |
|
Tempificazione dei flip-flop: latch ed edge-triggered. Flip-flop RS e D edge-triggered. Flip-flop JK e T. |
20 | 04/05/2015 |
|
Manuale assembler del processore MC68000. Istruzioni in l/m e settaggio dei flag. Istruzioni di salto in l/m: JMP, BRA, Bcc. Esempio di programma assembler. |
21 | 06/05/2015 |
|
Macchine sequenziali sincrone. Tabelle di transizione e schema realizzativo. Metodologia di progetto delle reti sincrone. Progetto di un contatore sincrono mod-8 con FF e.t. di tipo JK. |
22 | 08/05/2015 |
|
Alee combinatorie: alee statiche e dinamiche. Progetto di un contatore sincrono mod-16 con FF e.t. di tipo JK. Progetto di un contatore sincrono mod-10 con FF e.t. di tipo JK. |
23 | 11/05/2015 |
|
Istruzioni aritmetiche, di comparazione e salto del processore MC68000. Esercizi di programmazione assembler MC68000. |
24 | 13/05/2015 |
|
Macchine combinatorie: reti universali. Realizzazione di macchine combinatorie mediante multiplexer e mediante ROM. Ingressi di posizionamento asincroni dei flip-flop commerciali. Contatori sincroni: ingressi di reset e precaricamento sia sincrono che asincrono. Riduzione del modulo di un contatore mediante precaricamento o reset sincrono. |
25 | 15/05/2015 |
|
Gestione dei sottoprogrammi in linguaggio macchina: passaggio dei parametri.
Uso dello stack per l'allocazione del record di attivazione. Frame pointer. Gestione dei sottoprogrammi in linguaggio macchina: problema del collegamento e del passaggio dei parametri. Uso dello stack per il collegamento. MC68000: istruzioni JSR, RTS, LINK, UNLK, MOVEM. |
26 | 20/05/2015 |
Codifica in assembler di tipici costrutti di controllo del flusso di programma. MC68000: modi di indirizzamento avanzati: Indirect with displacement, Indirect with displacement and index. Esempio di programma assembler 68000: trasformazione lettere minuscole in maiuscole in una stringa di caratteri (touppercase). |
|
27 | 22/05/2015 |
|
Contatori sincroni composti. Contatore mod-256. Contatore mod-24. Contatori asincroni (ripple counter). Shift register. |
28 | 25/05/2015 |
|
Progetto di un riconoscitore di sequenza 0011 sincrono. Concetto di equivalenza e compatibilitā tra stati. |
29 | 27/05/2015 | Lezione 29
|
Minimizzazione degli stati con il metodo di Paull-Unger per macchine completamente specificate. Riconoscitore di codice 8421. |
30 | 29/05/2015 |
|
Il sistema delle interruzioni. Il sistema delle interruzioni del processore MC68000. Interruzioni vettorizzate ed autovettorizzate. Istruzione RTE. Interrupt, eccezioni e trap. |
31 | 01/06/2015 |
|
Esercizi di programmazione assembly. Esercizio toupper.a68. Analisi del codice assembly MC68000 prodotto da un compilatore C (file programmi-C.zip) ![]() |
32 | 03/06/2015 |
|
Ulteriori approfondimenti sul funzionamento delle interruzioni nei sistemi basati sul processore MC68000. Livelli di privilegio del processore MC68000. Identificazione della richiesta di interruzione: daisy chaining, polling o handshaking. Architettura interna della CPU. Cenni al ruolo della unitā di controllo della CPU. Analisi della fase fetch del processore. |
33 | 08/06/2015 |
|
Gerarchia di memorie in un calcolatore. Memorie indirizzabili vs. memorie content-addressable. Memorie RAM. Schemi di selezione. Selezione lineare e semiselezione. SRAM vs. DRAM. Collegamenti di chip di memoria per aumentare la capacitā. Interfacciamento CPU-memoria. Schemi asincroni e sincroni. Breve presentazione dei processori ARM (cenni). |
34 | 10/06/2015 |
|
Il sistema di I/O. I/O memory mapped vs. I/O isolato. Sincronizzazione del colloquio CPU-periferica: I/O programmato, I/O con interruzioni. Esempio di driver con I/O programmato e con interruzioni. Interfacce con capacitā DMA. |
![]() |
|
|||
![]() |
|
O IN ALTERNATIVA: | ![]() |
|
![]() |
|
![]() |
Ultimo aggiornamento: 10 giugno 2015