Calcolatori Elettronici I

Università degli Studi di Napoli Federico II

Corso di Laurea in Ingegneria Informatica, allievi A-B

Corso di Laurea in Ingegneria dell'Automazione

Prof. Roberto Canonico


A.A. 2015-16

AVVISO: E' opportuno che gli studenti che seguono il corso di Calcolatori Elettronici I del prof. Canonico si iscrivano al corso sul sito http://www.docenti.unina.it/roberto.canonico mediante la apposita procedura.

Programma dettagliato delle lezioni svolte

Le slide delle lezioni (quando utilizzate) verranno pubblicate in formato PDF dopo ciascuna lezione.

Lezione Data Slide / Riferimenti Argomenti
1 09/03/2016 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.
Introduzione all'architettura del calcolatore.
Il processore. Ciclo del processore.
4 16/03/2016 Processore: Modello ad accumulatore e modello a registri generali.
Primi esempi di codici in linguaggio macchina per processori ad accumulatore ed a registri generali.
Architetture a stack (cenni).
Il modello di programmazione del processore Motorola MC68000.
Codifica delle istruzioni in linguaggio macchina.
5 17/03/2016 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.
Funzioni booleane e tabella di verità.
Funzioni booleane di 2 variabili.
Mintermini e maxtermini.
6 18/03/2016 Forma normale di tipo P e di tipo S di una funzione booleana.
Implicanti di una funzione. Implicanti primi.
Mappe di Karnaugh.
Rappresentazione di clausole e fattori elementari sulle Mappe di Karnaugh.
7 23/03/2016 Rappresentazione in memoria di dati di tipo word: disposizione big-endian e little-endian.
Word allineate e non allineate.
Introduzione al linguaggio macchina. Classi di istruzioni l/m.
Primi cenni sul processore MC68000: modello di programmazione e codifica delle istruzioni.
8 31/03/2016 Introduzione al problema della minimizzazione di funzioni booleane.
Ricerca dei primi implicanti: espansione.
Espansione ed individuazione dei primi implicanti essenziali sulle mappe di Karnaugh per funzioni fino a 5 variabili.
Funzioni cicliche.
9 01/04/2016
    Lezione 9 (prima parte):
  • Slide
  • Lezione 9 (seconda parte):
  • Slide
Metriche per la misura del costo di una funzione: costo di porte, costo di letterali, costo di ingressi.
Minimizzazione di funzioni booleane.
Copertura attraverso matrice di copertura.
Semplificazione della matrice di copertura: righe e colonne dominanti.
10 06/04/2016 Introduzione al linguaggio assembly.
Formato delle istruzioni in assembly.
Etichette. Direttive di assemblaggio.
AsimTool. Ambiente di simulazione Asim.
11 07/04/2016
    Lezione 11 (prima parte):
  • Slide
  • Lezione 11 (seconda parte):
  • Slide
Minimizzazione di funzioni booleane: espansione con il metodo di McCluskey.
Progetto di macchine combinatorie.
Funzioni incompletamente specificate.
Minimizzazione di funzioni incompletamente specificate con le mappe di Karnaugh e con la matrice di copertura.
12 08/04/2016
    Lezione 12 (prima parte):
  • Slide
  • Lezione 12 (seconda parte):
  • Slide
Progetto di un transcodificatore per display a 7 segmenti.
Funzioni NAND e NOR. Proprietà di NAND e NOR.
Forme NAND e NOR di una funzione booleana.
13 13/04/2016 Primi esempi di programmi in linguaggio assembly. Direttive di assemblaggio per la gestione dei dati.
Funzionamento dell'assemblatore. Tabella dei simboli. Assemblaggio in due passi.
Modi di indirizzamento: diretto a registro, assoluto ed immediato.
Primi esempi di programmi assembly MC68000 e loro esecuzione in Asim.
14 14/04/2016
    Lezione 14 (prima parte):
  • Slide
  • Lezione 14 (seconda parte):
  • Slide
Macchine combinatorie fondamentali.
Encoder e decoder, multiplexer e demultiplexer.
Composizione di multiplexer.
Addizionatori binari. Half e full adder.
15 15/04/2016
    Lezione 15 (prima parte):
  • Slide
  • Lezione 15 (seconda parte):
  • Slide
Effetti dei ritardi nelle macchine combinatorie.
Alee combinatorie: alee statiche e dinamiche.
Addizionatore binario parallelo a propagazione del riporto.
Addizionatore binario con anticipo del riporto: rete di carry look-ahead.
16 20/04/2016
    Lezione 16
Modi di indirizzamento: indiretto, indiretto con predecremento, indiretto con postincremento.
Manuale assembler del processore MC68000.
17 21/04/2016
    Lezione 17
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.
18 22/04/2016
    Lezione 18
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.
19 27/04/2016 Istruzioni in l/m e settaggio dei flag.
Istruzioni aritmetiche, logiche, di comparazione e salto del processore MC68000.
Istruzioni di salto condizionato (Bcc) del processore MC68000.
20 28/04/2016
    Lezione 20
Tempificazione dei flip-flop: latch ed edge-triggered.
Flip-flop RS e D edge-triggered.
Flip-flop JK e T.
21 29/04/2016
    Lezione 21
Macchine sequenziali sincrone. Tabelle di transizione e schema realizzativo.
Metodologia di progetto delle reti sincrone.
Progetto di un riconoscitore di sequenza 101 con FF e.t. di tipo D.
Progetto di un contatore sincrono mod-8 con FF e.t. di tipo T.
22 04/05/2016
    Lezione 22 (parte 1):
  • Slide
  • Lezione 22 (parte 2):
  • Slide
MC68000: modi di indirizzamento avanzati:
Indirect with displacement, Indirect with displacement and index.
Istruzione LEA.
Codifica in assembler di tipici costrutti di controllo del flusso di programma.
Gestione di uno stack attraverso i modi di indirizzamento con predecremento e postincremento. Esercizi di programmazione assembler MC68000 (ricerca di un token in una stringa, vedi lucidi L13).
23 05/05/2016 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.
Progetto di contatori a crescere ed a decrescere (up/down).
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.
24 06/05/2016
    Lezione 24
Contatori sincroni composti. Contatore mod-256. Contatore decadico mod-100. Contatore mod-24.
Contatori asincroni (ripple counter).
Consultazione di datasheet di componenti commerciali.
25 11/05/2016 Gestione dei sottoprogrammi in linguaggio macchina: problema del collegamento e del passaggio dei parametri.
Uso dello stack per il collegamento.
Uso dello stack per l'allocazione del record di attivazione. Frame pointer.
MC68000: istruzioni JSR, RTS, LINK, UNLK, MOVEM.
26 12/05/2016
    Lezione 26
Macchine combinatorie: reti universali.
Realizzazione di macchine combinatorie mediante multiplexer, ROM o PLA.
Shift register. Contatori di Johnson.
27 13/05/2016
    Lezione 27
Esercizio di analisi di una rete sincrona.
Pogetto di un contatore sincrono mod-8 con sequenza Gray.
Progetto di un riconoscitore di sequenza 0011 sincrono.
28 18/05/2016 Esercizi di programmazione assembly: trasformazione lettere minuscole in maiuscole in una stringa di caratteri (touppercase).
Analisi del codice assembly MC68000 prodotto da un compilatore C (file programmi-C.zip).
29 19/05/2016
    Lezione 29:
  • Slide
  • Documenti sul sito docenti nell'area
    Materiale Didattico/ Calcolatori_Elettronici_I /Documenti
Concetto di equivalenza e compatibilitā tra stati.
Minimizzazione degli stati con il metodo di Paull-Unger per macchine completamente specificate.
Riconoscitore di codice 8421.
30 20/05/2016 Il sistema delle interruzioni.
Il sistema delle interruzioni del processore MC68000.
Interruzioni vettorizzate ed autovettorizzate.
Istruzione RTE. Interrupt, eccezioni e trap.
31 25/05/2016 Architettura interna della CPU.
Cenni al ruolo della unitā di controllo della CPU.
Analisi della fase fetch del processore.
Breve presentazione dei processori ARM (cenni).
32 26/05/2016 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.
33 27/05/2016 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.
34 01/06/2016
  • Lezione 34
Esercizio sulla minimizzazione degli stati di una macchina sequenziale.
Esercizio sul progetto di una macchina sincrona "contatore di uno ogni tre bit".
Esercizio di programmazione assembly: subroutine per il calcolo della somma degli elementi positivi in un array di interi.
35 08/06/2016
  • Lezione 35
Esercizi su analisi e sintesi di macchine sequenziali sincrone.
Esercizi di programmazione assembly MC68000.

Riferimenti a siti web


Libri di testo

  O IN ALTERNATIVA:   

Altri documenti


Esercizi

ESEMPI DI TRACCE DI ESAMI

Altri documenti di approfondimento


Software didattico


Edizioni precedenti del corso


roberto.canonico at unina.it

Ultimo aggiornamento: 06 giugno 2016