Calcolatori Elettronici

Università degli Studi di Napoli Federico II

Prof. Roberto Canonico


A.A. 2022-23

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.

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 06/03/2023 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.
2 07/03/2023 Rappresentazione posizionale dei numeri. Sistemi binario, ottale ed esadecimale.
Rappresentazione di numeri naturali.
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 o complemento ad 1.
3 09/03/2023 Rappresentazione per eccessi (vedi slide lezione 2).
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.
4 13/03/2023 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.
5 14/03/2023 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.
6 16/03/2023 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.
Mappe di Karnaugh. Rappresentazione di clausole sulle Mappe di Karnaugh.
7 20/03/2023 Introduzione al problema della minimizzazione di funzioni booleane.
Individuazione degli implicanti primi sulle mappe di Karnaugh.
Ricerca dei primi implicanti: espansione sulla mappa di Karnaugh per funzioni fino a 4 variabili.
Primi implicanti essenziali. Funzioni cicliche.
Copertura mediante mappe di Karnaugh.
Minimizzazione di funzioni booleane: matrice di copertura.
21/03/2023
     
Lezione annullata per sovrapposizione con seduta di Laurea in Ingegneria Informatica.
8 23/03/2023
     
9 27/03/2023
     
28/03/2023
     
Lezione annullata per sovrapposizione con seduta di Laurea Magistrale in Ingegneria Informatica.
10 30/03/2023
     
11 03/04/2023
     
12 04/04/2023
     
13 13/04/2023
     
14 17/04/2023
     
15 18/04/2023
     
16 20/04/2023
     
27/04/2023
Lezione annullata su disposizione della Scuola Politecnica.
17 02/05/2023
Lezione di recupero.
18 02/05/2023
     
19 04/05/2023
     
20 05/05/2023
Lezione di recupero.
21 08/05/2023
     
22 08/05/2023
Lezione di recupero.
09/05/2023
     
Lezione annullata per altro impegno didattico concomitante.
23 11/05/2023 Introduzione all'architettura del calcolatore.
Il processore. Ciclo del processore.
Interfacciamento processore-memoria.
Rappresentazione in memoria di dati di tipo word: disposizione big-endian e little-endian. Word allineate e non allineate.
24 12/05/2023
Lezione di recupero.
15/05/2023
Prima pova intracorso.
16/05/2023
Lezione annullata per altro impegno didattico concomitante.
25 18/05/2023 Processore: modello ad accumulatore e modello a registri generali.
Primi esempi di codici in linguaggio macchina per processori ad accumulatore ed a registri generali.
Introduzione al linguaggio macchina. Classi di istruzioni l/m.
Codifica delle istruzioni in linguaggio macchina.
Il modello di programmazione del processore Motorola MC68000.
26 19/05/2023 Lezione di recupero.
Introduzione al linguaggio assembly.
Formato delle istruzioni in assembly.
Funzionamento dell'assemblatore: Program Location Counter (PLC). Linguaggio assembly MC68000. Direttive di assemblaggio: ORG, END, EQU, DC, DS.
Primo esempio di programma assembly MC68000.
27 22/05/2023 Prima panoramica su alcune istruzioni l/m del processore MC68000.
L'istruzione MOVE.
AsimTool. Ambiente di simulazione Asim.
Modi di indirizzamento diretto a registro, immediato ed assoluto.
28 23/05/2023 Modi di indirizzamento del processore MC68000: indiretto, indiretto con pre-decremento, indiretto con post-incremento.
Istruzioni di salto assoluto (jump) e salto relativo (branch): differenze nella codifica in linguaggio macchina.
Istruzioni di salto condizionato (Bcc) del processore MC68000.
Esercizi di programmazione assembler MC68000: calcolo del prodotto scalare di due vettori di interi.
Esecuzione dei programmi nel simulatore Asim.
29 25/05/2023 Codifica in assembler di tipici costrutti di controllo del flusso di programma.
Istruzioni aritmetiche del processore MC68000: ADD, SUB, NEG. Istruzioni ADDI, ADDQ.
Flag del processore e loro settaggio da parte delle istruzioni aritmetiche e di confronto.
Istruzioni di confronto: CMP e TST.
Istruzioni su operandi di tipo indirizzo: MOVEA e ADDA.
Istruzione DBcc.
Esercizi di programmazione assembler MC68000: ricerca di un token in una stringa NUL-terminated.
30 29/05/2023
     
31 30/05/2023
     
32 01/06/2023 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.
33 05/06/2023 Esercizi di programmazione assembler MC68000: confronto tra due stringhe NUL-terminated con subroutine STRCMP.
Aritmetica in precisione multipla: il flag X e l'istruzione ADDX.
Esecuzione di un programma con subroutine nel simulatore ASIM.
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.
34 06/06/2023 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).
08/06/2023 Seconda prova intracorso.
35 09/06/2023 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.

Libri di testo

Libri consigliati per consultazione


Riferimenti a siti web


Altri documenti


Calendario esami a.a. 2022-2023

NOTA: Le date indicate di seguito si riferiscono alla prova scritta. La prova orale sarà schedulata nei giorni successivi alla prova scritta anche in funzione del numero di studenti da esaminare.

Edizioni precedenti del corso


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

Ultimo aggiornamento: 25 maggio 2023