| | | corso | | | |
Architettura degli Elaboratori I + Lab. di Informatica III A
(Corso di Laurea in Informatica (quinquennale))
Codice: | 4I055 | Crediti: | 18 | Semestre: | 1 | Sigla: | AE1 | |
Docente
Prerequisiti
MATEMATICA DISCRETA
PROGRAMMAZIONE I
Obiettivi di apprendimento
Descrizione
Il corso fornisce le basi concettuali e metodologiche per studiare e
valutare l'architettura degli elaboratori, nonchè per affrontare il
progetto di sistemi di elaborazione ai livelli firmware ed assembler.
L'approccio seguito tende a stabilire un giusto bilanciamento tra esigenze
formative e necessità di conoscere le caratteristiche dei principali
sistemi esistenti e loro tendenze. Le basi metodologiche sono
rappresentate
dai modelli di microprogrammazione e di strutturazione a livello firmware,
riducendo al minimo indispensabile la trattazione delle reti logiche. Su
queste basi viene descritta l'architettura del processore centrale, della
memoria e delle unità di I/O, ai livelli firmware ed assembler,
fornendo
infine primi elementi per la conoscenze di aspetti avanzati quali Risc vs
Cisc, gestione della memoria e caching e pipelining.
English Description
This course supplies the conceptual and methodological background to study
and to evaluate the architecture of computer systems, as well as to design
processing systems at the firmware and assembler levels.
The adopted
approach aims to achieve a good balance between methodological
fundamentals
and knowledge of the characteristics of existing systems and their
tends.
The fundamentals are represented by the microprogramming models and by the
firmware structuring models, though reducing the treatment of logic design
at the minimum which is strictly necessary. On this background, the course
describes the architecture of central processors, memory units, and I/O
units, at the firmware and assembler levels. Initial elements for the
knowledge of advanced issues - Risc vs Cisc, memory management and
caching,
and pipelining - are supplied.
Programma
- Introduzione agli elaboratori
- Traduzione di programmi ad alto livello, istruzioni macchina,
unità
base
di un elaboratore.
- Concetto di memoria e sua realizzazione.
- Rappresentazione dei numeri.
- Concetto di programma memorizzato.
- Esecuzione delle istruzioni.
- Trasferimenti tra registri.
- Comunicazioni tra processore e memoria.
- Livelli di macchina.
- Riferimenti : PAT cap. 1 ; BTV cap. 1, 2.1.
- Linguaggio macchina
- Istruzioni e modi di indirizzamento. Loro motivazioni ed
utilizzazioni.
- Registri generali.
- Set di istruzioni MIPS. Cenni ad altri set di istruzioni esistenti
(VAX,
Motorola, Intel, ecc) e differenze.
- Riferimenti : PAT cap.3, A10.
- Reti logiche
- Comportamento esterno. Differenza tra reti combinatorie (funzioni
pure) e
reti sequenziali (concetto di stato interno).
- Reti combinatorie : richiami di Algebra di Boole, tabella di
verità,
componenti elementari, sintesi senza minimizzazione. Concetto di segnali a
livelli e
ad impulsi. Ritardi temporali. Reti standard : decodificatore,
commutatore,
selezionatore, addizionatore, shifter, ALU ; valutazione dei loro tempi di
ritardo.
- Reti sequenziali : concetto di automa a stati finiti. Memoria e
registri.
- Modello strutturale con rete combinatoria ed elemento di memoria.
Clock e
ciclo di clock. Modelli matematici di Moore e di Mealy.
- Riferimenti : GER cap. 1.1, 1.2, 1.3, 1.8, 1.9, 1.10, 1.11, 1.12, 2.1
(non
2.1.4), 2.4.1, 2.4.2.
- Livello firmware e microprogrammazione
- La microprogrammazione come strumento metodologico di descrizione e di
progetto.
- Modello PC-PO. Determinazione del ciclo di clock. Dal microprogramma
alla
struttura della PO usando i componenti logici elementari. Introduzione del
bus sincrono. Parallelismo a livello di microistruzioni. Microlinguaggi e
modelli.
- Comunicazione tra unità : collegamenti, interfacce a livelli e a
transizione di livello,
bus asincrono. Arbitri principali.
- Valutazione dei tempi di elaborazione.
- Riferimenti : GER cap. 3.1, 3.2, 3.3 ; BTV cap. 2.2 ; 5; 6.
- Processore centrale
- Implementazione delle istruzioni MIPS-like. Schemi di PO :
orizzontale,
verticale, cenni ai possibili compromessi.
- Performance e sua valutazione.
- Uso di unità aritmetiche più potenti :
moltiplicatore-divisore ;
loro
impatto sulla performance. Uso di coprocessori esterni.
- PC microprogrammata (modello PS).
- Riferimenti : BTV cap. 5 ; 4.1.1. Consultazione di PAT, cap. 2.
- Ingresso-uscita
- Unità di I/O. Modelli architetturali : controllo di programma,
DMA,
memory mapped I/O, comunicazioni esplicite.
- Interruzioni : strutture e trattamento.
- Riferimenti : BTV cap. 2.2. PAT cap.8.
- Aspetti avanzati di architettura
- Elementi essenziali su gestione della memoria, MMU, cache,
organizzazioni
pipeline e superscalari.
- Descrizione delle caratteristiche principali di processori esistenti
delle
famiglie Intel, Motorola, SUN, PowerPC.
- Riferimenti : consultazione di BTV cap. 7, 11.
Ore lezione: | 75 | Ore esercitazione: | 45 | | | |
Bibliografia
Materiale didattico
- ANT: S. Antonelli, "Rappresentazione dell'informazione".
- ANT: S. Antonelli, "Algebra booleana".
- BTV : F. Baiardi, A. Tomasi, M. Vanneschi, "Architettura dei Sistemi
di
Elaborazione", volume 1. Franco Angeli.
- GER : G.B. Gerace, "La Logica dei Sistemi di Elaborazione". Editori=
Riuniti.
- PAT : D.A. Patterson, J. Hennessy, "Computer Organization and Design:
the Hardware/Software Interface". Morgan Kaufmann. Disponibile anche
l'edizione in lingua italiana.
- VAN : M. Vanneschi, "Appunti di Architettura degli Elaboratori I".
Servizio Editoriale Universitario, Università di Pisa
Su alcuni argomenti verranno distribuiti appunti a cura dei docenti.
Testi di consultazione
- A.S. Tanenbaum, "Architettura del Computer: un Approccio Strutturale".
Gruppo Editoriale Jackson.
- R. Barbuti, P. Mancarella, "Linguaggio macchina e compilazione",
Appunti
ad uso degli studenti di Programmazione I.
- F. Luccio, L. Pagli, "Reti Logiche e Calcolatore", Bollati
Boringhieri.
- D.P. Bovet, "Introduzione all'Architettura dei
Calcolatori",Zanichelli.
Modalità di esame
- Prova scritta nei sei appelli previsti dal calendario oppure mediante i
compitini (verifiche intermedie)
- Prova orale.
VERIFICHE INTERMEDIE (del.CCSI n.32-7/3/97 n. 37-26/3/99 n.53 e
54-30/4/99)
Tutti i corsi obbligatori dei primi tre anni ( diploma e laurea) fanno 2
verifiche intermedie (compitini) per ogni semestre in periodi fissi
stabiliti dal CCSI, che si svolgono con la sospensione della didattica.
Tali verifiche vengono considerate come prove d'esame e pertanto ad esse
si applicano le regole per gli esami, ivi comprese propedeuticita' e
sbarramenti :
- gli studenti non possono svolgere i compitini di una
materia se non hanno gia' superato gli esami delle materie a quella
propedeutiche.
- per poter sostenere esami del secondo anno, gli studenti devono aver
superato almeno gli esami relativi a 7 unita' didattiche su 10 del
primo anno.
In particolare le verifiche valgono solo per la sessione di esame
successiva al semestre in cui sono svolte e il superamento con successo
comporta l'esonero dalla prova scritta.
Dall'anno accademico 1999/2000 valgono inoltre tutte le propedeuticita'
(sia per il secondo anno che per il triennio) stabilite dal Consiglio
con delibera n.86 del 22/7/96 e riportate nell'Ordinamento degli Studi
del Corso di Informatica.
APPELLI (del.n. 66 CCSI 28/5/99)
Il Consiglio ha stabilito di adeguare il calendario accademico a quanto
stabilito dal nuovo regolamento didattico d'Ateneo abolendo i vincoli
sulla fruibilita' degli appelli al termine del semestre diverso da
quello in cui si e' tenuto il corso, in modo da permettere a TUTTI gli
studenti di poter sostenere l' esame relativo ad ogni corso, nei 6
appelli previsti dal calendario.
Per sostenere l'esame è obbligatorio iscriversi presso il Centralino del
Dipartimento di Informatica almeno due giorni prima della prova scritta.
Modalità di esame
Scritto e orale
Ulteriore pagina web del corso: