Architettura degli elaboratori Turno 3/2005-2006

Da WikiDsy.
Versione del 27 mar 2006 alle 13:10 di 82.186.240.163 (discussione) (Lezione Giovedì 16 Marzo 2006)

News

GIOVEDI' 23 MARZO LEZIONE ANNULLATA

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

SITO UFFICIALE DEL CORSO

Forum del corso, e affini

Forum su DSY.IT

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:

Parte 1

Parte 2

Completi

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 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 ..

Progetti anni passati

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
  • Le Analogie con i circuiti
  • 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
A B AB
F F F
F T F
T F F
T T T

OR

A B AB
F F F
F T T
T F T
T T T

NOT

A ¬ A
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 ]

NOT.utilizzando.NAND.gif

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 ]

AND.utilizzando.NAND.gif

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 ]

OR .utilizzando.NAND.gif

  • Rappresentazione grafica dei circuiti
  • 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 Connettori
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