Programma Preliminare Architettura degli Elaboratori + Laboratorio(Corso A) a.a.2002/2003 Docente: Tangorra Filippo Obiettivo del corso è quello di trattare i fondamenti dell’architettura e della organizzazione dei calcolatori attraverso la descrizione dei principali componenti dei moderni sistemi di elaborazione e il ruolo da essi svolto. Sono esaminati la funzione ed il funzionamento dell'unità centrale di elaborazione concentrando l’attenzione sul formato e sull’insieme delle istruzioni e sulla descrizione del ciclo di istruzione. È trattata l' organizzazione dei componenti di un sistema di elaborazione quali il bus, la memoria interna ed esterna ed i dispositivi di ingresso/uscita. Infine è affrontata l’organizzazione delle architetture RISC e le problematiche connesse alle architetture parallele. Contenuti: Concetti generali Evoluzione storica dei calcolatori e delle architetture di calcolatori. Struttura a livelli di un sistema di elaborazione. Concetto di macchina virtuale. Classificazione delle architetture degli elaboratori. Rappresentazione dell'informazione e aritmetica dei calcolatori (parte esercitativa) Sistema di numerazione binario, rappresentazione e operazioni con numeri relativi e numeri a virgola mobile. Codici binari: codici di caratteri; codici BCD; codici a rivelazione di errore; codici a correzione di errore; codici a lunghezza variabile. Le strutture di informazione. Esercizi. Struttura di calcolatore Il modello di Von Neumann. Il ciclo d'istruzione. Prefetching e pipeline. La Memoria centrale e la memoria di massa. Il Bus. La Memoria cache. L'Unità di controllo e di calcolo. Elaborazione delle eccezioni e loro classificazione. Il linguaggio e le strutture dati Il formato di istruzioni. Codici operativi espandibili. I metodi di indirizzamento. Lo stack. La notazione polacca. Algoritmi di trasformazione da notazione infissa a postfissa. Classi di istruzioni. Il livello del linguaggio assembler (in laboratorio) Struttura del microprocessore INTEL 8088/86. L'assemblatore. Il processo di assemblaggio. Programmi collegatori e di caricamento. Esercizi. Meccanismi di supporto al sistema operativo Gestione della memoria. Partizioni fisse e variabili. Rilocazione dinamica. Memoria virtuale. Paginazione e segmentazione. Architetture avanzate Architetture RISC non microprogrammate. Parallelismo temporale. Pipeline. Confronto architetture RISC e CISC. Parallelismo fisico. Classificazione Flynn. Topologie macchine parallele. Laboratorio di Architettura degli Elaboratori Il principale obiettivo della attività di Laboratorio è quello di permettere la pratica da parte dello studente sull'uso e sulle funzionalità delle componenti principali di una architettura a livello di macchina convenzionale. I contenuti del corso sono : - Assembly language : macro assembler famiglia Intel 80x. - Formato delle istruzioni assembly. - Procedure di base per l' I/O : macro e interruzioni. - Editing, compilazione, debugging ed esecuzione di un programma scritto in assembly language. - Un ambiente di sviluppo : il PWB su Intel Pentium. - Esempi ed esercizi. Testo di riferimento - A.S. Tanenbaum, ''La struttura del calcolatore'',. Ed. UTET, 2000.