I Testi del Corso di Architetture
Il materiale didattico del corso consiste:
- in parte del seguente testo:
Andrew S. Tanenbaum, Structured Computer Organization, Pearson Prentice-Hall,
Fifth Edition, ISBN 0-13-148521-0;
di tale testo ne esiste anche versione in italiano:
Andrew S. Tanenbaum, Architettura dei Calcolatori, un approccio strutturale, Pearson Prentice-Hall, Quinta Edizione, ISBN13: 978-8-8719-2271-3, ISBN10: 88-7192-271-9.
- in una serie di note, non in stampa,
indicate nel programma sottostante e scaricabili in forma elettronica da questa stessa pagina
- strumenti software (simulatori) per esercitarsi e facilitare la
comprensione di alcuni agomenti, indicati nel programma sottostante e scaricabili da questa stessa pagina.
N.B. Relativamente agli argomenti che tratteremo nel nostro corso
la Fourth Edition del testo di cui sopra e' praticamente equivalente
(tranne alcuni piccoli aspetti di carattere tecnologico nei primi capitoli).
Chi puo' procurarsi con minore costo (usato o altro) la Fourth Edition
puo' tranquillamente studiare su tale edizione, di cui peraltro
esisteva anche una traduzione in italiano, non piu' in stampa:
Architettura dei Computer, Edizioni UTET, ISBN 88-7750-593-1.
Nel programma i riferimenti alle varie sezioni saranno relativi alla
Fifth Edition (che sono gli stessi della sua versione italiana).
Sara' annotato il riferimento relativo alla Fourth Edition (che e' lo stesso
della sua versione italiana)
laddove questo risulti differente.
Il Programma del Corso di Architetture, A.A. 2005/2006
Macchine Astratte.
Il concetto di Macchina Astratta (MA)
I sistemi di calcolo come gerarchia di Macchine Astratte
Realizzazione di MA tramite Hardware, Interpretazione, Traduzione
Cenni di storia del computer
Cenni ad esempi di Computer
Riferimenti:
- Introduzione alle Macchine Astratte.
- Tanenbaum, Capitolo 1. (Tutto)
- Lucidi su macchine astratte (formato ppt, formato pdf).
Materiale facoltativo:
- Altro materiale sulle Macchine Astratte
sono una parte delle note del prof. G.Chiola.
Introduzione alla struttura architetturale di Von Neumann
Struttura della CPU. Data path.
Architetture CISC. Introduzione alle architetture RISC. Confronti
CISC-RISC.
Principi di progetto.
Introduzione al pipelining, multicomputer,
multiprocessori.
Organizzazione della memoria: memoria principale,
memorie secondarie, memorie cache. Periferiche di I\O.
RAID
Codici ASCII e UNICODE.
Riferimenti:
- Tanenbaum, Capitolo 2 tutto (escluso paragrafo 2.2.4; del paragrafo 2.3.6 non occorre ricordarsi
l'organizzazione di tutti i vari livelli)
- Tavola riassuntiva confronto CISC-RISC .
- Lucidi su architetture di Von Neuman (formato ppt).
Materiale facoltativo:
- Lucidi lezioni Bella su RAID (lucidi in formato pdf, versione 2.2).
- Alcune pagine html sui RAID prodotte da un vostro collega (Carmelo Belfiore)
- Un articolino semplice ed interessante su confronto CISC/RISC e il Post-RISC.
Algebra booleana e circuiti.
Introduzione allo studio del livello di logica digitale (livello 0).
Algebre Booleane, Switching algebra (algebra booleana minimale), funzioni
booleane.
Completezza funzionale di insiemi di operatori.
Circuiti.
Definizioni di circuito combinatorio e sequenziale.
Moduli combinatori: codificatori, decodificatori, selettori, addizionatori,
ALU, ecc.
Reti sequenziali asincrone: flip-flop, latches.
Definizione di rete sequenziale sincrona.
Moduli sequenziali: latches, flip-flop, le
memorie, ecc..
Tri-state devices.
Riferimenti:
- Tanenbaum : Par. 3.1-3.3
Simulatori:
-
Un simulatore di circuiti combinatori e sequenziali
(By D. Ferrarello e Felice Ungheri).
- Un simulatore di Latch SR
- Simulatore
di memoria (Fig. 3-29 del Tanenbaum)
Materiale facoltativo:
- (F.Barbanera) Note integrative su Algebre booleane
- Materiale e simulatori per Algebra booleana e circuiti:
http://www.dei.isep.ipp.pt/~acc/bfunc/
(segnalazione by Daniela Ferrarello)
- Materiale sulle memorie di un corso australiano
http://ciips.ee.uwa.edu.au/~morris/CA406/memory.html#SRAM
http://ciips.ee.uwa.edu.au/~morris/CA406/mem_hierarchy.html#Magnetic
(segnalazione by S.D. Rapisarda)
CPU chips, Bus, I/O chips e loro interfacciamento su bus.
Riferimenti:
- Tanenbaum: Sezioni 3.4, 3.5.1(non in dettaglio), 3.5.3(non in dettaglio), 3.6.2(non in dettaglio, e comunque fino a PCI Bus Signals escluso), 3.7.
- Lucidi su Bus e CPU chips ( formato pdf).
Simulatori:
- Simulatore
di arbitraggio di Bus (Sezione 3.4.5 del Tanenbaum)
- Animazione di Bus Sincroni e Asincroni.
Sezione 3.4.4 del Tanenbaum (applicazioni Flash per Windows).
Materiale facoltativo:
- Lucidi in formato pdf
del seminario del Prof. Hidalgo su una tecnica per diminuire il consumo di potenza
nelle CPU.
Il livello di Microprogrammazione Mic1 ed un esempio di livello ISA: IJVM.
Il (micro)linguaggio Mic-1.
Microprogrammazione.
Realizzazione hardware della
macchina astratta Mic-1.
Il linguaggio IJVM.
L'assembly IJVM.
Programmazione in IJVM.
Realizzazione via software (interpretazione) di IJVM.
Cenni di realizzazione di Java per traduzione (compilazione) su IJVM.
Riferimenti:
- Tanenbaum: Capitolo 4, Sezioni 4.1, 4.2, 4.3.
- Note in formato pdf sul livello microarchitetturale Mic-1
(prelevate dal sito http://bias.csr.unibo.it/maltoni/arc/Dispense/MicroArchitettura.pdf)
I tre insiemi di lucidi (rubacchiati ai corsi del Politecnico di Milano) e le note
(rubacchiate al corso di Bologna) indicati sopra,
e non indispensabili per lo studio,
non devono e non possono sostituire il libro di testo, ma possono essere molto utili
per iniziare o per ripassare.
- Un insieme di
lucidi in formato pdf sulle
istruzioni di IJVM.
- Come toccare con mano
il bytecode JVM prodotto dalla compilazione di programmi Java.
- Un insieme di
lucidi in formato pdf sul modello della memoria di IJVM.
- Il linguaggio assembly IJVM.
La conoscenza dell'assembly IJVM e'
indispensabile per potersi esercitare con il simulatore IJVM. In tale semplice
linguaggio assembly sono presenti nozioni che, pur se comprensibili,
risulteranno piu' chiare nel contesto della parte sui linguaggi assemblatori.
Simulatori:
- Il simulatore della macchina Mic-1
- Il simulatore della macchina
IJVM (assembly). (sviluppato by Herbert Bonaffini)
- Simulatori evoluzione Stack di IJVM durante la valutazione di metodi ricorsivi
- Simulatore Funzionamento Istruzioni InvokeVirtual ed IReturn (richiede Flash Player)
Materiale facoltativo:
- Lucidi in formato ppt (zippati)
e in inglese, sugli argomenti del capitolo 4.
- Una breve descrizione della Java Virtual Machine.
- Per chi si vuol fare del male, il testo completo del libro di Lindholm, Yelling
"The Java Virtual Machine Specification"
Tecniche per il miglioramento dell'efficenza del livello microprogrammato e di quello
ISA
- Prefetching, Pipelining (Mic-2);
- Esempi di CPU: UltraSPARC-III e la CPU 8051 (UltraSPARC II e PicoJava II per IV ed. testo).
Riferimenti:
Tanenbaum Sez. 4.4.1, 4.4.2, 4.4.3, 4.6.2, 4.6.3 (il 4.6.2 e 4.6.3 non occorre farli in
modo approfondito)
Simulatori:
Mic-2 Animator (per Windows)
Materiale Facoltativo:
- Simulatore
di Branch Prediction
- Un insieme di
lucidi in formato pdf sulla IJVM, le pipelines e la
branch prediction.
- Lucidi lezioni Bella su memorie cache e miglioramento prestazioni (lucidi in formato pdf, versione 2.3).
- Simulatore
di esecuzione In-Order su CPU superscalare, Sezione 4.5.3 del testo, Fig. 4-43. (Programma Java)
- Lucidi sulle pipeline (.pdf).
- Per una descrizione completa del Pentium II:
http://www.sandpile.org. (Segnalazione by Carlo Mongelli)
- Materiale sulle pipeline di un corso australiano
http://ciips.ee.uwa.edu.au/~morris/CA406/pipelines.html
(segnalazione by S.D. Rapisarda)
- Materiale sulle Cache:
http://www.vlsilab.polito.it/thesis/alfonso/node246.html
- Materiale su cache, pipeline ecc. :
http://www.itis.mn.it/inform/evarchi/scheda.htm#cache
Input/Output e Il meccanismo delle Interruzioni
Programmed I/O, DMA I/O, I/O guidato dalle interruzioni
Trap
Esempio di gestione dell'I/O ad interruzioni nell'architettura del Tanenbaum
Riferimenti:
- Tanenbaum: 5.5.7, 5.6.4, 5.6.5
- Esempio di realizzazione di Input/Output (vedi simulatore sotto)
Simulatori:
Esempio
di realizzazione di Input/Output ad interruzioni
nell'architettura del Tanenbaum, con relativo simulatore.
Il livello ISA.
Memoria e Registri.
Formato delle istruzioni.
Modalita' di indirizzamento.
Riferimenti:
- Tanenbaum: Introduzione Cap.5, 5.1.1, 5.1.2, 5.1.3, 5.1.5(dargli un'occhiata), Intro 5.3, 5.3.1, 5.3.3(dargli un'occhiata), Intro 5.4, da 5.4.1 a 5.4.8(esclusa la Reverse Polish Notation e la Evaluation of reverse Polish Notation), 5.4.10, 5.4.11(dargli un'occhiata).
Simulatori:
Simulatore
di modalita' di indirizzamento
Materiale Facoltativo:
- Animazione
su codici ad espansione. L'esempio di Fig. 5-13 (5-12 nella IV ed.) ed altri. (applicazione Flash)
Il livello di Linguaggio Assembly.
I linguaggi assembly.
Cenni sul processo di assemblaggio e linking.
Il processo di assemblaggio e linking attraverso un esempio: l'assembly IJVM.
Riferimenti:
- Tanenbaum: Intro Capitolo 7, 7.1, Intro di 7.2, 7.2.1, 7.3.1, Intro di 7.4.
- Note e animazione
di un esempio di assemblaggio per l'assembly IJVM.
- l'assembly IJVM