Calcolatori Elettronici

Università degli Studi di Napoli Federico II

Prof. Roberto Canonico


A.A. 2024-25

AVVISO: E' opportuno che gli studenti che seguono il corso di Calcolatori Elettronici del prof. Canonico si iscrivano al corso sul sito docenti http://www.docenti.unina.it/roberto.canonico mediante la apposita procedura, selezionando l'opzione "Iscrizione alla mailing list" per ricevere eventuali comunicazioni dal docente.
Si invitano gli studenti a consultare quotidianamente gli avvisi pubblicati nella bacheca del sito docenti.

Argomenti delle lezioni svolte

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

Lezione Data Slide / Riferimenti Argomenti
1 06/03/2025 Introduzione al Corso ed agli strumenti telematici per la didattica.
Brevi cenni storici sulla evoluzione dei calcolatori elettronici.
Informazione e sua rappresentazione. Codici a lunghezza fissa ed a lunghezza variabile.
Codici binari. Esempi di codici.
Rappresentazione posizionale dei numeri. Rappresentazione di numeri naturali in una base generica.
2 11/03/2025 Rappresentazione posizionale dei numeri: sistemi binario, ottale ed esadecimale.
Rappresentazione in macchina di numeri naturali.
Rappresentazione in macchina 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 o complemento ad 1. Rappresentazione per eccessi.
3 13/03/2025 Rappresentazione di numeri frazionari in virgola fissa. Rappresentazione di nuemri reali in virgola mobile.
Discretizzazione di R ed errore assoluto e relativo. Errori di underflow ed overflow.
Rappresentazione in virgola mobile in forma normalizzata.
Standard IEEE 754: rappresentazione in singola e doppia precisione;
rappresentazione in forma de-normalizzata; rappresentazione di valori speciali.
Esempi di rappresentazione di numeri reali secondo lo standard IEEE 754.
Codici per la rappresentazione di caratteri. Codice ASCII. Unicode (cenni).
Algebra di Boole. Proprietà fondamentali.
Definizione di Algebra di Boole.
Teorema di De Morgan ed altre proprietà dell'algebra di Boole.
4 17/03/2025 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.
5 18/03/2025 Forma normale di tipo P e di tipo S di una funzione booleana.
Relazione d'ordine parziale in un'algebra di Boole.
Implicazione come relazione d'ordine nell'algebra delle proposizioni.
Clausole e fattori elementari.
Implicanti di una funzione. Implicanti primi.
Generazione di consensi tra mintermini.
6 20/03/2025 Mappe di Karnaugh. Rappresentazione di clausole sulle Mappe di Karnaugh.
Individuazione degli implicanti primi sulle mappe di Karnaugh.
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: espansione sulla mappa di Karnaugh per funzioni fino a 4 variabili.
Primi implicanti essenziali. Funzioni cicliche.
7 24/03/2025 Minimizzazione di funzioni booleane.
Espansione e copertura mediante mappe di Karnaugh.
Ricerca dei primi implicanti sulla mappa di Karnaugh per una funzione di 5 variabili.
Risoluzione del problema di copertur mediante matrice di copertura.
Semplificazione di righe dominate e colonne dominanti.
Introduzione alle macchine combinatorie.
8 25/03/2025 Funzioni incompletamente specificate.
Minimizzazione di funzioni incompletamente specificate: progetto di un transcodificatore per display a 7 segmenti. Macchine combinatorie ideali e reali. Ritardo di risposta di una porta logica.
Macchine combinatorie fondamentali: Encoder e decoder. Composizione di decoder. Arbitro di priorità.
9 27/03/2025 Multiplexer e demultiplexer lineari ed indirizzabili.
Porte abilitanti tristate. Multiplexer con porte tristate. Macchine combinatorie fondamentali: half e full adder.
Addizionatore binario parallelo a propagazione del riporto.
Addizionatore binario con anticipo del riporto: rete di carry look-ahead.
10 31/03/2025 Funzioni NAND e NOR. Proprietà di NAND e NOR.
Forme NAND e NOR di una funzione booleana.
Effetti dei ritardi nelle macchine combinatorie.
Alee in reti combinatorie: alee statiche e dinamiche.
Macchine combinatorie: reti universali.
Realizzazione di macchine combinatorie mediante multiplexer, ROM o PLA.
11 01/04/2025 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: definizione e modello fondamentale.
12 03/04/2025 Introduzione ai flip-flop: il flip-flop RS. 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.
13 07/04/2025
Tempificazione dei flip-flop: latch ed edge-triggered.
Flip-flop RS e D edge-triggered: tabella delle transizioni di stato e circuito.
Esercizio di analisi di una rete sincrona.
14 08/04/2025 Flip-flop JK e T edge-triggered: tabella delle transizioni di stato.
Macchine sequenziali sincrone. Tabelle di transizione e schema realizzativo.
Metodologia di progetto delle reti sincrone.
Tabella di eccitazione dei flip-flop D, JK e T.
Ingressi di posizionamento asincroni dei flip-flop commerciali.
FF JK usato come T.
15 10/04/2025 Introduzione ai contatori sincroni.
Progetto di un contatore sincrono mod-16 con FF e.t. di tipo JK.
Progetto di contatori a crescere ed a decrescere (up/down).
Progetto di un contatore sincrono mod-10 con FF e.t. di tipo JK e con FF di tipo T.
Contatori sincroni: ingressi di precaricamento e di reset sia sincrono che asincrono.
Consultazione di datasheet di componenti commerciali.
FF JK usato come D. FF T usato come D.
16 14/04/2025 Concetto di equivalenza tra stati.
Minimizzazione degli stati con il metodo di Paull-Unger per macchine completamente specificate.
Definizione di compatibilità tra stati in una macchina sequenziale incompletamente specificata.
Differenza tra equivalenza e compatibilità tra stati.
Esercizio di progetto di macchina sequenziale sincrona.
17 15/04/2025 Riconoscitore di codice 8421: minimizzazione degli stati.
Progetto di riconoscitore di sequenza sincrono con uscita di Mealy.
18 24/04/2025 Registri sincroni: parallel-in/parallel-out, serial-in/serial-out, serial-in/parallel-out.
Registri a scorrimento. Uso di multiplexer in registri a scorrimento.
Riduzione del modulo di un contatore mediante reset o precaricamento sincrono.
Composizione di contatori sincroni. Contatore mod-256 con due contatori mod-16. Contatore mod-24 con contatore mod-16 e FF JK.
Ripple Counter. Contatore di Johnson.
19 28/04/2025 Introduzione all'architettura del calcolatore.
Il processore. Ciclo del processore.
Interfacciamento processore-memoria.
Processore: modello ad accumulatore e modello a registri generali.
Primi esempi di codici in linguaggio macchina per processori ad accumulatore ed a registri generali.
20 29/04/2025
Prima prova intracorso.
21 05/05/2025 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.
Codifica delle istruzioni in linguaggio macchina.
Il modello di programmazione del processore Motorola MC68000.
22 06/05/2025 Introduzione al linguaggio assembly.
Formato delle istruzioni in assembly.
Funzionamento dell'assemblatore: Program Location Counter (PLC).
Primo esempio di programma assembly MC68000.
23 08/05/2025 Linguaggio assembly MC68000. Direttive di assemblaggio: ORG, END, EQU, DC, DS.
Funzionamento dell'assemblatore. Tabella dei simboli. Assemblaggio in due passi.
Prima panoramica su alcune istruzioni l/m del processore MC68000.
L'istruzione MOVE. L'istruzione ADD. Le istruzioni BEQ e BNE.
Programma per il calcolo del prodotto di due numeri naturali mediante somme successive.
AsimTool. Ambiente di simulazione Asim.
Esecuzione passo-passo di un programma nel simulatore Asim.
24 12/05/2025 Modi di indirizzamento: diretto a registro, immediato ed assoluto.
Modi di indirizzamento: indiretto, indiretto con pre-decremento, indiretto con post-incremento.
Istruzione LEA.
25 13/05/2025 Istruzioni aritmetiche del processore MC68000: ADD, SUB, NEG.
Flag del processore e loro settaggio da parte delle istruzioni aritmetiche e di confronto.
Istruzioni di confronto: CMP e TST.
Istruzioni di salto assoluto (jump) e salto relativo (branch): differenze nella codifica in linguaggio macchina.
Istruzioni di salto condizionato (Bcc) del processore MC68000.
Istruzione DBcc.
Esercizi di programmazione assembler MC68000 con esecuzione del programma in Asim: calcolo del prodotto scalare di due vettori di interi.
26 15/05/2025 Codifica in assembler di tipici costrutti di controllo del flusso di programma.
Istruzioni ADDI, ADDQ.
Esercizi di programmazione assembler MC68000 con esecuzione del programma in Asim: elaborazione degli elementi di un vettore di interi.
27 19/05/2025 Istruzioni su operandi di tipo indirizzo: MOVEA e ADDA.
Gestione di uno stack attraverso i modi di indirizzamento con predecremento e postincremento.
Modi di indirizzamento con modifica dell'indirizzo: based, indexed e based-indexed.
Modi di indirizzamento del processore MC68000: indirect with displacement, indirect with displacement and index.
Modi di indirizzamento del processore MC68000: PC-relative e PC-relative indexed.
Esercizi di programmazione assembler MC68000: ricerca di un token in una stringa NUL-terminated.
28 20/05/2025 Gestione dei sottoprogrammi in linguaggio macchina: problema del collegamento.
Collegamento tramite link register (istruzione jal dei processori RISC).
Collegamento tramite stack. MC68000: istruzioni JSR, RTS.
Gestione dei sottoprogrammi in linguaggio macchina: problema del passaggio dei parametri.
Tecniche di passaggio dei parametri a subroutine in assembly.
Passaggio attraverso registri del processore.
29 22/05/2025 Passaggio dei parametri attraverso record di attivazione allocato su stack. Frame pointer.
MC68000: istruzioni LINK, UNLK, MOVEM.
Esempio di programma con passaggio di parametri su stack.
Esecuzione di un programma con subroutine nel simulatore ASIM.
Esercizi di programmazione assembler MC68000: trasformazione lettere minuscole in maiuscole in una stringa di caratteri (subroutine touppercase).
Aritmetica in precisione multipla: il flag X e l'istruzione ADDX.
Risoluzione e discussione degli esercizi di programmazione assembler MC68000 della prova intracorso.
30 26/05/2025 Architettura interna della CPU. Struttura a bus interno unico ed a tre bus interni. Trasferimenti tra registri del processore. Register file. Cenni al ruolo della unità di controllo della CPU. Analisi della fase fetch del processore.
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. SDRAM.
31 27/05/2025 Seconda prova intracorso.
32 29/05/2025 Il sistema delle interruzioni. Interrupt Service Routine (ISR).
Context switch e latenza delle interruzioni.
Priorità delle interruzioni e nesting delle ISR.
Identificazione della richiesta di interruzione: daisy chaining, polling o handshaking.
Interruzioni vettorizzate ed autovettorizzate.
Esercizi di programmazione assembler MC68000: confronto tra due stringhe NUL-terminated con subroutine STRCMP.
33 03/06/2025 Il sistema delle interruzioni del processore MC68000. Istruzione RTE.
Interruzioni vettorizzate ed autovettorizzate in sistemi basati su MC68000.
Livelli di privilegio del processore MC68000.
Istruzioni privilegiate.
Interrupt, eccezioni e trap. Istruzione TRAP.
Architettura interna della CPU. Struttura a bus interno unico ed a tre bus interni. Trasferimenti tra registri del processore. Register file. Cenni al ruolo della unità di controllo della CPU. Analisi della fase fetch del processore.
Breve presentazione dei processori ARM (cenni).
34 05/06/2025 Il sistema di I/O.
I/O memory mapped vs. I/O isolato.
Sincronizzazione del colloquio CPU-periferica: I/O programmato vs I/O con interruzioni.
Esempio di driver con I/O programmato e con interruzioni.
Interfacce con capacità DMA.
35 09/06/2025
Esercitazione.

Libri di testo

  • Reti Logiche (seconda edizione)
    C. Bolchini, C. Brandolese, F. Salice, D. Sciuto.
    Apogeo, 2008
    ISBN: 8838786208

Libri consigliati per consultazione


Riferimenti a siti web


Altri documenti


Software didattico


Pagina ufficiale sul sito docenti.unina.it
Email del docente: roberto.canonico at unina.it

Ultimo aggiornamento: 24/3/2025