Architettura degli elaboratori Turno 3/2005-2006
Indice
- 1 News
- 2 Anni precedenti
- 3 Informazioni generali
- 4 Informazioni specifiche
- 5 Materiale Didattico
- 6 Diario del corso
- 6.1 Lezione Giovedì 9 Marzo 2006
- 6.2 Lezione Martedì 14 Marzo 2006
- 6.3 Lezione Giovedì 16 Marzo 2006
- 6.4 Lezione Martedì 21 Marzo 2006
- 6.5 Lezione Giovedì 23 Marzo 2006
- 6.6 Lezione Martedì 28 Marzo 2006
- 6.7 Lezione Giovedì 30 Marzo 2006
- 6.8 Lezione Martedì 4 Aprile 2006
- 6.9 Lezione Giovedì 6 Aprile 2006
- 6.10 Lezione Martedì 11 Aprile 2006
- 6.11 Lezione Giovedì 13 Aprile 2006
- 6.12 Lezione Martedì 18 Aprile 2006
- 6.13 Lezione Giovedì 20 Aprile 2006
- 6.14 Lezione Martedì 25 Aprile 2006
- 6.15 Lezione Giovedì 27 Aprile 2006
- 6.16 Lezione Martedì 02 Maggio 2006
- 6.17 Lezione Giovedì 04 Maggio 2006
News
Anni precedenti
Informazioni generali
Docenti
Prof. D'Antona / Prof. Marra per il laboratorio.
Corsi di laurea
Modalità d'esame
Orale + Progetto
dal sito ufficiale: L'esame ha cadenza mensile, tendenzialmente di lunedì. Le date degli appelli sono pubblicate sul sito del D.I.Co. Il voto è determinato da due prove. Una è un'interrogazione tradizionale sugli argomenti trattati a lezione. La seconda consiste nella stesura di una porzione di programma in linguaggio Assembly MIPS (si vedano le due sezioni precedenti). Le due prove possono essere sostenute indipendentemente, purché a non più di 12 mesi l’una dall’altra, pena la necessità di ripetere la prova già sostenuta. Il voto per entrambe le prove è in trentesimi. Il voto finale, che potrà essere registrato solo dopo aver sostenuto con successo entrambe le prove, è ottenuto per media pesata dai due voti parziali. Il peso del progetto in Assembly è di un terzo del totale. Il tema del progetto è pubblicato su questa pagina tre volte l’anno, all’inizio dei quadrimestri gennaio-aprile, maggio-luglio, settembre-dicembre. Il candidato può consegnare in qualunque momento per posta elettronica all’indirizzo marra@dico.unimi.it l’elaborato relativo al tema d’esame corrente. Per poter registrare il voto finale in un dato appello, tuttavia, occorre consegnare il progetto una settimana prima dell’appello in questione, per dare il tempo ai docenti di valutare l’elaborato; le scadenze precise relative agli appelli correnti sono riportate nel tema d’esame. L’elaborato deve consistere di un solo file di testo contenente il sorgente Assembly, eventualmente corredato da un secondo file contenente la documentazione, in formato testo, Adobe PDF, o Rich Text Format.
Orari e luogo delle lezioni
Martedì | Giovedì |
---|---|
18:30-21:30 Aula 200 (via Golgi) | 18:30-21:30 Aula 200 (via Golgi) |
Orario di ricevimento studenti
Lunedì 12.00 - 14.00
Informazioni specifiche
Sito del corso
Forum del corso, e affini
Materiale Didattico
Programma del corso
Non ancora disponibile
TESTI
Testo di riferimento
- STRUCTURED COMPUTER ORGANIZATION 5 edizione autore Tanenbaum
la versione italiana del libro è in stampa in questi giorni
Altri testi Consigliati
- D.A. Patterson, J.L. Hennessy, Struttura, organizzazione e progetto dei calcolatori: interdipendenza tra hardware e software, Jackson libri, Milano, 1999 (seconda edizione).
- Per le reti di calcolatori: D. Comer, Internet e reti di calcolatori, Addison Wesley-Pearson Italia, Milano, 2003 (terza edizione).
- Il testo: O. D'Antona, E. Damiani, Ambienti esecutivi e di sviluppo dei linguaggi di programmazione, Addison Wesley-Masson, Milano, 1992, è una semplice introduzione preliminare agli argomenti del corso.
Altro materiale consigliato
Video delle lezioni
Le Lezioni saranno registrate durante il semestre e rese fruibili sul sito Virtual Classroom
NB. è necessario un account SILAB per accedere al sito
NB2 le lezioni dovrebbero essere online 7/10 giorni dopo la loro registrazione
Appunti
Appunti del corso a cura di Paolo Pavan:
MIPS
Convenzioni MIPS per il passaggio dei parametri discusse a lezione
Altro materiale in Internet
- Un utile ambiente di sviluppo gratuito (SO Windows), detto MIPSter, espressamente pensato per il simulatore SPIM (e l’assembly MIPS) è scaricabile da qui
- A questo indirizzo si trovano le pagine ufficiali su MIPSter
- Un versione dello SPIM per MacOS si trova a questoindirizzo, a cura di Daniel Franke
- Un buon editor gratuito è ConTEXT, reperibile a questo indirizzo. È prevista una modalità di evidenziazione della sintassi orientata all’assembly MIPS.
- Multipiattaforma trovate jEdit (in java), con parziale supporto alla sintassi MIPS
Esami passati, tesine, compiti ..
Diario del corso
Lezione Giovedì 9 Marzo 2006
- Introduzione al corso
si consigliano gli appunti reperibili dal sito ufficiale del corso a questo link
Lezione Martedì 14 Marzo 2006
- Ripasso lezione precedente
- Funzioni booleane (le funzioni booleane sono funzioni che ricevono in ingresso una nupla di 0,1 e restituiscono un BIT 0,1)
- I Mintermini(il mintermine è una funzione booleane che assume il valore 1 in corrispondenza di un unica configurazione di ingressi)
- Rapresentazione tramite diagramma di Venn di funzioni booleane
- Analogie fra funzioni Booleane e calcolo proposizionale (Una proposizione cioè una 'frase' da cui analogamente alle funzioni booleane ci si può aspettare 2 soli risultati Vero o Falso)
- la congiunzione logica
- la disgiunzione logica
- la negazione logica
- Accenni storici a Kurt Goedel e la Logica Polivalente
- Le Analogie con i circuiti
- Le porte Logiche ( logical Gate)
- cenni storici su Vanner Bush (padre dei calcolatori anologici), e su Claude Shannon (suo alievo che formalizzò la corrispondenza fra calcolo proposizionale e Circuiti)
- Riassunto Altre prinicpali propietà Algebra Booleana(elemento neutro delle operazioni , distributiva , assorbimento ....)
- AND
∧ | ||
F | F | F |
F | T | F |
T | F | F |
T | T | T |
OR
∨ | ||
F | F | F |
F | T | T |
T | F | T |
T | T | T |
NOT
¬ | |
F | T |
T | F |
funzionalmente completi (sono cioè sufficenti ad esprimere una qualsiasi funzioni booleana
- NOT e AND/ NOT e OR sarebbero già sufficenti a esprimere qualsiasi espressione booleana (Dimostrazione usando De Morgan)
- La porta NAND da sola è sufficente ad esprimere qualsiasi funzione booleana
Sapendo che a NAND b = NOT( a AND b ) possiamo dimostrare che:
La funzione NOT a è esprimibile come a NAND a
NOT a = NOT( a AND a ) [ per idempotenza a AND a = a ]
NOT( a AND a ) = a NAND a [ per la definizione sopra ]
La funzione a AND b è esprimibile come ( a NAND b ) NAND ( a NAND b )
a AND b = NOT( NOT( a AND b ) ) [ per idempotenza NOT( NOT a ) = a ]
NOT( NOT( a AND b ) ) = NOT( a NAND b ) [ per la definizione sopra ]
NOT( a NAND b ) = ( a NAND b ) NAND ( a NAND b ) [ per la definizione di NOT utilizzando un NAND ]
La funzione a OR b è esprimibile come ( a NAND a ) NAND ( b NAND b )
a OR b = NOT( NOT( a ) ) OR NOT( NOT( b ) ) [ per idempotenza NOT( NOT a ) = a ]
NOT( NOT( a ) ) OR NOT( NOT( b ) ) = NOT( NOT( a ) AND NOT( b ) ) [ legge di De Morgan ]
NOT( NOT( a ) AND NOT( b ) ) = NOT( a ) NAND NOT( b ) [ per la definizione sopra ]
NOT( a ) NAND NOT( b ) = ( a NAND a ) NAND ( b NAND b ) [ per la definizione di NOT utilizzando un NAND ]
- Rappresentazione grafica dei circuiti
- Il Multiplexer e la sua rappresentazione
- esempio del loro uso combinato per la condivisione di una linea telefonica
DA FARE / DA PENSARE:
1)abbiamo visto che usando solo AND e OR non riusciamo ad esprimere tutte le possibili funzioni booleane, Quali e Quante funzioni riusciamo ad esprimere?
Lezione Giovedì 16 Marzo 2006
- tabella riassuntiva
Insieme Connettori | Funzionalmente completo | Minimale | Minimo |
AND,OR,NOT | SI | NO | NO |
AND,NOT | SI | SI | NO |
OR,NOT | SI | SI | NO |
NAND | SI | SI | SI |
- ripasso Multiplexer (o selettore)
- Multiplexer con + di 2 ingressi
- Visto circuito Multiplexer a 3 Ingressi
- La formula per determinare il numero di variabili necessarie in un Multiplexer ad n ingressi (ceiling di Logaritmo in base 2 di n)
- il ceiling ed il flor di un numero reale
- Tabella di verità di un decoder 2 ingressi 4 uscite
- Usare il decodificatore assieme al multiplexer (altra forma di multiplexer a più ingressi)
- primo Teorema della rappresentazione canonica di funzioni Booleane:
Qualunque funzione di n variabili può essere scritta univocamente come somma di j (j numero intero) prodotti di n variabili asserite o negate
o in altra forma:
Qualsiasi funzione booleana può essere espressa univocamente come somma di mintermini)
- Esempio con grafico di Venn
- Metodo per ottenere in forma canonica una funzione Booleana a partire dalla tabella di verità
- Esembio con tabella Multiplexer
- Applicazioni pratiche del teorema della forma canonica:
- PLA(Programmable Logic Array)
- il FULL ADDER (sommatore di BIT)
- Accenni alle funzioni booleane monotome
Lezione Martedì 21 Marzo 2006
- Esercizio di ripasso : caratterizazione del mintermine
- Casi particolari Multiplexer (2 ingressi a,b e "selettore" S):
- 2 ingressi uguali
- b = S
- a = s
- a = 0 , b = 1
- Diagramma su le possibili uscite da un multiplexer (2 ingressi a,b e "selettore" S)
- Esercizio svolto in classe: Costruire la tabella di verità di un circuito proposto e usando la tabella scrivere la funzione booleana rapresentata dal circuito
- I Maxtermini
- Forma canonica duale (POS Product Of (Complete) Sums)
- SOP (Sum Of (Complete) products) è basata su mintermine
- POS (POS Product Of (Complete) Sums) è basata sui maxtermini
- XOR(eXclusive OR)
- il circuito COMPARATORE
- Esempio compara 1 singolo bit
- Esempio Comparatore n-uple di 3 bit
- il circuito SHIFTER (traslatore)
- Differenza Logica fra Data-Path e Control-Path
- Un sommatore completo/FULL ADDER (con carry-in e carry-out) realizzato con 2 XOR
- Esempio sommatore a 16 BIT con ottimizzazione (esecuzione in parallelo di una parte del calcolo - il secondo "ottetto" esegue contemporaneamente al primo ottetto il calcolo con carry-in 1 - il terzo otteto esegue il calcolo con carry-in 0 (tengo solo la soluzione che mi interessa senza aspettare riporto in uscita )
- Cenni su l'esecuzione speculativa
- Esempio di circuito Moltiplicatore con registry a 64bit
- Esempio ottimizzazione con registry a 32bit
Lezione Giovedì 23 Marzo 2006
Lezione rinviata come da preavviso
Lezione Martedì 28 Marzo 2006
- Esempio Moltiplicatore
- Aritmetica Binaria
- Gli interi rapresentati in base 2
- Gli interi in genere in base n
- Conversioni da decimale a base n e viceversa
- La Notazione Complemento a 2
- L'opposto in complemento a 2
- Sottrazione in Complemento a 2
- L'Overflow nell'aritmetica complemento a 2 ed il relativo controllo
Lezione Giovedì 30 Marzo 2006
- Ripasso Aritmetica Binaria/Complemento a 2
- Un Importante Propietà dei numeri complemento a 2 L' ESTENSIONE DEL SEGNO(Es. 1010 = 11010 = 111010....)
- Esercizio Un Calendario Digitale (Tabella di Verità)
- dai CIRCUITI COMBINATORI AI CIRCUITI SEQUENZIALI
- il concetto di stato di un circuito
- Il circuito SR(Set and Reset)
- il concetto di memoria
- il circuito LATCH D o BAT (Bistabile Asincrono Trasparente)
- Esempio di funzionamento
- il FLIP FLOP (sincrono!)
- Esempio di Funzionamanto
Lezione Martedì 4 Aprile 2006
- Lo Shifter (ripasso)
- I Registri (ripasso)
- Shift register
- Gli automi a stati finiti
- Esempio : l'automa a stati finiti che rappresenta il latch-d
- Metodi per "passare" dall'automa a stati finiti al circuito
- Calcolo del numero di Bistabili necessari a rapresentare gli stati dell'automa
- Progetttazione della rete combinatoria di pilotaggio
- Domanada: Quante sono le stringhe binarie di lunghezza finita?
- risposta: ALEPH con 0
- inciso sui diversi tipi di infinito
- Ulteriore Automa d'esempio:
- Pensiamo di voler costruire un circuito che riceva ogni x millesecondi un dato , questo circuito deve riconoscere quando gli ultimi 3 bit che ha ricevuto sono tutti e tre 1 , nel qual caso deve accendere una lampadina
Lezione Giovedì 6 Aprile 2006
- Formalizzazione degli automi a stati finiti
- il Register File - RF
- Il circuito di scrittura dell' RF
- Il circuito di lettura dell' RF
- I SISTEMI DI MEMORIA
- La macchina di Von Neumann
- la fase di fetch
- la fase esecutiva
- La comunicazione tra memoria e processore:IL BUS
- I tre sottoinsiemi logici del BUS:
- BUS DATI
- BUS INDIRIZZI
- BUS DI CONTROLLO
- Altri dispositivi di memorizzazione:
- i dischi magnetici
- settori, tracce e cilindri
- i sistemi RAID
- i cd
Lezione Martedì 11 Aprile 2006
lezione annullata per concomitanza con esame (come da preavviso)
Lezione Giovedì 13 Aprile 2006
Lezione Non svolta come da calendario accademico
Lezione Martedì 18 Aprile 2006
Lezione Non svolta come da calendario accademico
Lezione Giovedì 20 Aprile 2006
- L'INSTRUCTION REGISTER
- Esempio didattico con istruzioni a lunghezza fissa a 16 BIT
- LA FASE DI FETCH
- IL PROGRAM COUNTER
- la ALU
- la ALU nel nostro esempio didattico a 16 bit
- la prima cella della ALU
- le successive celle della ALU
- Le 2 Funzioni del RF
- sorgente dei Dati
- destinazione dei dati
- Accenni all'architettura PIPELINE
- processori con istruzioni a lunghezza fissa(ULTRASPARC 3) / e variabile (pentium 4)
- i vantaggi di avere istruzioni a lunghezza fissa
- cenni su microprogrammi e firmware
- Acceni storici alla nascita dei processori RISC
- IL MAR (Memory Adress Register)
- MDR (Memory Data Register)
Lezione Martedì 25 Aprile 2006
Lezione Non svolta come da calendario accademico
Lezione Giovedì 27 Aprile 2006
- esempio di commutazione "level triggered" (innescato usando uno "spike" causato dal ritardo di commutazione di un invertitore)
- Esempio: Automa a stati finiti di una machinetta del caffè
- la catena di compilazione
- l'Analizzatore lessicale
- Automa a stati finiti di un analizzatore lessicale (di un linguaggio modulo a 2)
- La tabella dei simboli del compilatore
- I tipi di dato (2 informazioni (a)occupazione memoria, (b)operazioni che posso compiere)
- Esempio: rappresentazione in Pascal di una stringa - utilizzo della memoria
- I Limiti degli Automi a stati finiti
- Esempio: (non è possibile costruire un automa a stati finiti che riconosca stringe binarie di lungheza arbitraria del tipo 0^n 1^n cioè stringhe con n zeri seguiti da n 1)
Lezione Martedì 02 Maggio 2006
- IL LINGUAGGIO MACCHINA
- Un Ipotesi di Linguaggio macchina per una architettura rigorosamente a 32BIT (i fogli che descrivono questo linguaggio macchina didattico sono stati distribuiti dal prof. D'Antona)
- Il Codice Operativo nel nostro Linguaggio Macchina didattico
- and , or , add , sub , slt
- gli altri BIT dell'Instruction Register: rs,rt,rd
- Branch on equal
- Bne Branch on not equal
- l'OFFSET (rappresentato come intero a complemento a 2, usando i 16 bit meno significativi dell'IR)
- Le istruzioni LOAD e STORE
- Il Codice Operativo nel nostro Linguaggio Macchina didattico
- Esempio: Scrittura di un semplice programma usando il linguaggio macchina appena definito
- Simulazione "personificata" passo passo del funzionamento del nostro programma di esempio scritto in linguaggio macchina (programma che calcola la somma un array di numeri interi)
- il LOADER
- il loader ed il program counter
- L'assemblatore a due passate
- La prima passata
- Gestione delle etichette GOTO
- la tabella delle etichette
- La seconda passata
- gestione dei salti incrementando o decrementando il program counter (OFFSET = ValoreTabella - Valore corrente di Line)
- La prima passata
Lezione Giovedì 04 Maggio 2006
- Il Compilatore ad una passata
- Il circuito che esegue l'istruzione LOAD
- Il circuito che esegue l'istruzione STORE
- Il circuito che esegue l'estensione del segno
- Il circuito che esegue l'istruzione BRANCH ON EQUALS