SISTEMI PER L'ELABORAZIONE DELL'INFORMAZIONE 1
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,