SISTEMI PER L'ELABORAZIONE DELL'INFORMAZIONE 1  

 Maurizio Pighin - Luca Chittaro

A.A. 1994/95

Programma del Corso

 

I FONDAMENTI

La struttura a livelli di un sistema di elaborazione; l'evoluzione dei sistemi di elaborazione (1:1,19 3:1,29). I principi dell'algebra booleana (1:39,51 2:11,20). Le porte logiche elementari (1:21,39 2:21,44 3:76,86). Le reti combinatorie: descrizione e sintesi; i metodi di Karnaugh, McCluskey, Petrick e la loro interpretazione algebrica; la sintesi di reti con porte elementari; il trattamento di funzioni parzialmente specificate (1:51,72 2:45,109 3:90,95). L'aritmetica dei calcolatori; le rappresentazioni posizionali con base; le conversioni di base; la rappresentazione binaria dei numeri interi e dei numeri frazionari; i numeri floating-point; le operazioni elementari; i circuiti aritmetici (1:141,223 2:110,130 3:96,101/553,573). Le nozioni di reti sequenziali sincrone e asincrone. Le reti sequenziali sincrone: automi finiti, diagrammi degli stati, tabelle di flusso, codifica degli stati, minimizzazioni, sintesi (1:99,132 2:131,158). I flip-flop, i registri, le memorie RAM e ROM, i circuiti integrati (1:83,99/440,472 2:159,196 3:86,89/101,111).

 

I SISTEMI CONVENZIONALI

L'architettura dei sistemi di elaborazione; il modello di Von Neumann: CPU, Memoria, I/O; il livello di microprogrammazione; la parte operativa e la parte di controllo di un sistema di elaborazione; esempi di implementazione di calcolatori (1:227,251 2:214,296 3:31,48/161,225). La valutazione delle prestazioni (5:111,147/444,446). I principali meccanismi di comunicazione e di arbitraggio di risorse; i BUS; i meccanismi di gestione delle interruzioni; analisi dettagliata dell'architettura del Motorola 68000 e del BUS VME (1:356,394 2:297,302/314,346 3:111,160).

 

LE MEMORIE E I DISPOSITIVI DI INPUT/OUTPUT

Le gerarchie di memoria; la memoria virtuale; i meccanismi di gestione con paginazione; i supporti architetturali per la gestione della memoria virtuale; la memoria cache: meccanismi completamente associativi, ad accesso diretto, ad accesso diretto su insiemi (1:472,474/ 602/630 2:305,306 3:209,215/318,339 5:274,315). Cenni sulle caratteristiche delle periferiche e delle memorie di massa: le memorie ad accesso diretto, ad accesso sequenziale, i terminali, le stampanti (1:395,430/474,517 2:306,314-3:48,73).

 

LE ARCHITETTURE AVANZATE E LE RETI (cenni)

Il parallelismo dei sistemi monoprocessore: i meccanismi di pre-fetch e look-ahead; le architetture RISC: le motivazioni e le principali caratteristiche; la classificazione dei calcolatori secondo Flynn; (1:271,287 3:432,457/487,531 5:437,450/470,472/485,510). Le reti locali e remote; lo standard ISO-OSI; Internet (1:518,587 6:1,90).

 

LA MACCHINA ASSEMBLER

Motivazioni alla programmazione in Assembler. Embedded systems. Caratteristiche di maggior rilievo dei processori Motorola 680x0 (68000, 68020, 68030, 68040, 68060). Cenni sui Microcontroller derivati dal 68000 e sul PowerPC MPC601. La programmazione in linguaggio Assembler: formato delle istruzioni, istruzioni eseguibili e direttive all'assemblatore. La direttiva EQU, costanti ed espressioni. Direttive per riservare e inizializzare memoria. Codice assoluto e rilocabile, le direttive ORG e DATA. Le modalità di indirizzamento: classificazione in 14 tipi, analisi dettagliata. Le istruzioni di tipo MOVE (assegnamento) e il loro effetto sui condition codes, analisi dettagliata. Le istruzioni di tipo CMP (confronto) e il loro effetto sui condition codes, analisi dettagliata. Le istruzioni di salto condizionato, i possibili test ed il loro significato in termini di condition codes. Le istruzioni di salto non condizionato, salti assoluti e relativi. Le subroutine: motivazioni, struttura, passaggio dei parametri, trasferimento e ritorno del controllo, salvataggio/ripristino dei registri, effetti sullo stack. Allocazione/deallocazione di memoria mediante istruzioni LINK e UNLK, effetti sullo stack, frame pointer. Istruzioni aritmetiche per somma, sottrazione, moltiplicazione e divisione. Operazioni logiche, di scorrimento, di rotazione, di manipolazione bit, di manipolazione registri, di aritmetica BCD. Le eccezioni: reazione del processore alle eccezioni, effetti sullo stack, l'Exception Vector Table ed il suo utilizzo, generazione implicita ed esplicita di eccezioni, struttura e realizzazione di un exception handler (1:289,354/635, 674/589,606 3:229,317 - 4 - 7).

 

BIBLIOGRAFIA

Libro di Testo

[1] A.Clements, The principles of Computer Hardware, Oxford Science Publications (Oxford University Press), 1992.

Libri di Approfondimento e Consultazione

[2] F.Luccio, L.Pagli, Reti logiche e calcolatore, Boringhieri, 2E Ed., 1991.

[3] A.S.Tanenbaum: Structured Computer Organization, Prentice Hall, 1990 (Third Edition).

[4] King,Knight, Programmare il Motorola 68000, Masson (ediz. originale: Addison Wesley).

[5] F.Baiardi,A.Tomasi,M.Vanneschi, Architettura dei Sistemi di Elaborazione, 1E Vol., Franco Angeli, 1987.

[6] A.S.Tanenbaum, Computer Networks, Prentice Hall, 1989 (Second Edition).

[7] Kawe,Hawkins,Leventhal, Assembler per 68000, Jackson (ediz. originale: McGraw-Hill).