Università degli Studi di Napoli "Parthenope"

Scheda dell'insegnamento

Anno accademico: 
2018/2019
Tipologia di insegnamento: 
Base
Tipo di attività: 
Obbligatorio
Corso di afferenza: 
Corso di Laurea triennale (DM 270) in INFORMATICA
Settore disciplinare: 
INFORMATICA (INF/01)
Lingua: 
Italiano
Crediti: 
12
Anno di corso: 
1
Docenti: 
SCAFURI Umberto
Ciclo: 
Primo Semestre
Ore di attivita' frontale: 
96

Obiettivi

Obiettivo del corso di “Architettura dei Calcolatori e Laboratorio di Architettura dei Calcolatori” è illustrare gli aspetti fondamentali dell'architettura dei moderni calcolatori elettronici, nonché trattare ed usare, durante le preposte attività di laboratorio, i concetti base per una loro efficiente programmazione in linguaggi a basso livello, quali linguaggio macchina e Assembly. A tal fine dopo una attenta trattazione dell’Algebra di Boole (utilizzata in laboratorio per il processo di Sintesi delle Reti Logiche Combinatorie e Sequenziali), della Rappresentazione binaria nonché dell’Aritmetica binaria, illustra dettagliatamente, quali elementi fondamentali nell’architettura dei sistemi di elaborazioni, lo schema funzionale/fisico della CPU, la Memoria ed il Sottosistema di I/O.
Particolare attenzione durante il corso è posta nello sviluppo di codice Assembly che, prodotto dagli studenti come attività di laboratorio, oltre a chiarire loro l’effettivo principio di funzionamento dei processori, dettagliatamente illustra il compito, l’interconnessione e l’interazione tra le diverse unità di base di un calcolatore.
Conoscenza e capacità di comprensione: le attività didattiche svolte durante il corso intendono fornire all’allievo, che si ipotizza dotato di una scarsa (se non nulla) preparazione informatica, una buona conoscenza tanto degli aspetti caratteristici dei sistemi binari quanto dei principi di funzionamento su cui essi si basano.
Capacità di applicare conoscenza e comprensione: Lo studio teorico e lo sviluppo delle varie prove teorico/pratiche fatte dall’allievo durante il corso, intendono fornire all’allievo una corretta visione dei calcolatori, al fine di rendergli evidente tanto le potenzialità quanto i limiti che questi possono avere nella soluzione di problemi reali.
Autonomia di giudizio: Lo studente deve essere in grado di scrivere programmi Assembly che consentano di rappresentare ed elaborare efficacemente in binario problemi reali anche di diversa natura.
Abilità comunicative: Lo studente deve essere in grado di partecipare attivamente a gruppi di lavoro impegnati in attività di progettazione/implementazione/documentazione di applicazioni Assembly. A tal fine fondamentale risulta la conoscenza acquisita durante il corso della corretta terminologia tecnica usata in ambito informatico.
Capacità di apprendimento: Gli argomenti trattati rappresentazione/elaborazione binaria, reti logiche, processori nonché la sequenza logica con cui si passa dagli uni agli altri, fornisce allo studente tanto una visione d’insieme del processore nella sua interezza, quanto quella di tre ambiti diversi. La capacita di comprendere al meglio i possibili vantaggi/svantaggi, che eventuali proposte tecnologiche possono apportare ad un processore, consente allo studente la capacità di aggiornarsi autonomamente
dalle diverse fonti d’informazioni presenti in Internet.

Prerequisiti

Nessuno.

Contenuti

Organizzazione generale di un calcolatore: Hardware e Software. Software applicativo e software di base. Il modello di von Neuman. Principi di funzionamento di un calcolatore. Algebra di Boole. Funzioni booleane e tabelle di verità. Reti Logiche: Reti combinatorie. Minimizzazione dei circuiti. Progettazione di reti combinatorie. Half adder e full adder. Automa a stati finiti. Reti sequenziali. Elementi di memoria. Struttura e funzionamento di una rete sequenziale. I Flip-Flop. Registri.
Rappresentazione e codifica dei dati: Codifica delle informazioni. Codici ridondanti. Rilevazione e correzione di errori, codici ad espansione. Codificatore e decodificatore. Multiplexer e demultiplexer indirizzabili. Il sistema di numerazione posizionale. La numerazione binaria. La numerazione decimale. Rappresentazione dei numeri naturali. Rappresentazione dei numeri relativi. Complementi alla base, complementi diminuiti. Rappresentazione dei numeri reali in virgola fissa e mobile. Aritmetica dei calcolatori. Schema di principio di un calcolatore:
Organizzazione e principi di funzionamento di un calcolatore secondo il modello di Von Neumann. Schema di principio di un elaboratore: organi dell'unità centrale (unità di controllo, registri macchina - PC, MA, MB, IR, SR - e ALU). Il ciclo del processore. Data-path del processore. Architetture microprogrammate. Elementi architetturali di un processore microprogrammato. Microprogramma. Istruzioni macchina e microistruzioni. Funzione e organizzazione della memoria centrale. Interfacciamento processore-memoria. Tecniche sincrone ed asincrone. La fase di Interrupt nel ciclo del processore. Il sistema di Interruzione.
Memoria: Parametri caratteristici di una memoria. Gerarchia delle memorie. Memorie RAM e ROM. La memoria cache. Memorie di massa (CD, HD, Floppy, Tape). Architettura interna di un modulo di memoria. Schema di selezione lineare e a semi-selezione. Composizione di moduli di memoria. Collegamento in parallelo e in serie. Tecniche di verifica dell'integrità dei dati. Memorie interleaving.
Interfacciamento Processore-dispositivi di I/O: Modello architetturale: Struttura a bus singolo, Struttura a doppio bus, Struttura a DMA. Modelli di programmazione: I/O memory mapped, I/O con istruzioni speciali.
Processori CISC, RISC e VLIW: Concetti e caratteristiche fondamentali. Insiemi di istruzioni, organizzazione ortogonale e load/store, macchine CISC e RISC. Esempio didattico: registri, set di istruzioni, pseudo-istruzioni e linguaggio Assembly. Esempi di programmi.
Attività di Laboratorio Linguaggio Assembly: Introduzione al linguaggio Assembly. Codici operativi elementari. Formato dell'istruzione. Modalità di indirizzamento. Subroutine. Cenni alle problematiche di linkage e passaggio dei parametri.
Sviluppo di programmi Assembly per il processore 68000: Richiami: Modello di programmazione del processore 68000; formato dell'istruzione e codici operativi. Modalità di indirizzamento. Subroutine. Linkage e passaggio dei parametri. Assembly del processore 68000. Sviluppo di programmi assembly per il processore 68000. Assemblatore, linker, loader, librerie e supporti run time.
Approfondimenti: Accesso in DMA. Interrupt vettorizzati. Memoria virtuale (segmentazione e paginazione) e supporti hardware alla traduzione degli indirizzi. Meccanismi di protezione e Trap. Memorie cache associative e a corrispondenza diretta. Tecniche di pipelining e tecniche di caching. CPU superscalare..
Cenni ai moderni sistemi Multicore e Manycore: Caratteristiche architetturali e aspetti peculiari.

Metodi didattici

Verifica dell'apprendimento

L’obiettivo della verifica è quantificare, per ogni studente, il livello di apprendimento raggiunto riguardo gli argomenti elencati nel programma di “Architettura dei Calcolatori e Laboratorio di Architettura dei Calcolatori” sopra riportato. La procedura di verifica consiste in una prova orale (50% del voto) inerente gli argomenti trattati nel suddetto programma ed una prova scritta individuale che sottopone all’allievo quesisti riguardo tanto l’analisi e sintesi delle reti logiche (20% del voto), quanto lo sviluppo di codice Assembler 68K (30% del voto). Ovviamente la complessità dei diversi quesisti proposti in ciascuna prova scritta è di pari livello dei quesiti trattati durante le esercitazioni assistite previste come attività di laboratorio.
Per l’esito positivo della valutazione sono necessari gli esiti positivi di entrambe le verifiche: prova scritta (reti logiche + codice Assembler68K) e prova orale.

Testi

W. STALLINGS: “Architettura e organizzazione dei calcolatori (progetto e prestazioni)”, Pearson Italia..
G. BUCCI: “Architettura dei calcolatori elettronici: fondamenti”, Mc Graw-Hill Italia.

Il materiale didattico (dispense, esercizi, programma d'esame, etc. in formato pdf ed eventuali presentazioni multimediali in formato flash) è disponibile attraverso il Servizio di eLearning della Facoltà di Scienze e Tecnologie all'indirizzo:
http://e-scienzeetecnologie.uniparthenope.it/

Altre informazioni