Calcolatori Elettronici I

Università degli Studi di Napoli Federico II

Corso di Laurea in Ingegneria Informatica, allievi A-DE

Corso di Laurea in Ingegneria dell'Automazione

Prof. Roberto Canonico


A.A. 2014-15

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/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
    Lezione 2 (parte 1):
  • Slide
  • Lezione 2 (parte 2):
  • Slide
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
    Lezione 3 (parte 1):
  • Slide
  • Lezione 3 (parte 2):
  • Slide
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. Mintermini e maxtermini.
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
    Lezione 13 (prima parte):
  • Slide
  • Lezione 13 (seconda parte):
  • Slide
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 (prima parte): vedi lezione precedente
    Lezione 14 (seconda parte):
  • Slide
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
    Lezione 16
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
    Lezione 17
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
    Lezione 18
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
    Lezione 19
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
    Lezione 21
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
    Lezione 23
Istruzioni aritmetiche, di comparazione e salto del processore MC68000.
Esercizi di programmazione assembler MC68000.
24 13/05/2015
    Lezione 24
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
    Lezione 26 (parte 1):
  • Slide
  • Lezione 26 (parte 2):
  • Slide
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
    Lezione 27
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
  • Documenti sul sito docenti nell'area
    Materiale Didattico/ Calcolatori_Elettronici_I /Documenti
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
  • Lezione 31
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.

Riferimenti a siti web


Libri di testo

  O IN ALTERNATIVA:   

Altri documenti


Esercizi

ESEMPI DI TRACCE DI ESAMI

Software didattico


Edizioni precedenti del corso


roberto.canonico at unina.it

Ultimo aggiornamento: 10 giugno 2015