02.10.2013 Views

Elementi di Architettura degli Elaboratori (pdf) - Fisica

Elementi di Architettura degli Elaboratori (pdf) - Fisica

Elementi di Architettura degli Elaboratori (pdf) - Fisica

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Corso <strong>di</strong> Laurea in FISICA<br />

Laurea Specialistica in Informatica<br />

<strong>Fisica</strong> dell’informazione<br />

dell informazione<br />

1 <strong>Elementi</strong> <strong>di</strong> <strong>Architettura</strong> <strong>degli</strong><br />

elaboratori<br />

Prof. Luca Gammaitoni<br />

Informazioni sul corso:<br />

www.fisica.unipg<br />

www.fisica. unipg.it/gammaitoni/fisinfo<br />

it/gammaitoni/fisinfo


Corso <strong>di</strong> Laurea in FISICA<br />

<strong>Fisica</strong> dell’informazione<br />

dell informazione<br />

<strong>Elementi</strong> <strong>di</strong> architettura<br />

<strong>degli</strong> elaboratori<br />

Non è degno <strong>di</strong> uomini eccellenti perdere ore come schiavi e<br />

faticare su calcoli che potrebbero essere affidati a chiunque<br />

se venissero usate le macchine.<br />

Gottfried Wilhelm Leibnitz


Automatizzare il calcolo<br />

In base due possono essere effettutate le normali<br />

operazioni aritmetiche, utilizzando gli algoritmi usuali<br />

Per esempio la somma tra due numeri:


Ve<strong>di</strong>amo nel dettaglio la somma a 1 bit:<br />

B1 +<br />

_____ B2 =<br />

S<br />

0 +<br />

_____ 0 =<br />

0<br />

0 +<br />

_____ 1 =<br />

1<br />

1 +<br />

_____ 1 =<br />

10<br />

Tavola <strong>di</strong> verità della somma a 1 bit


Costruire un sommatore<br />

Tavola <strong>di</strong> verità della somma a 1 bit<br />

Disciplina nota come <strong>Architettura</strong> dei calcolatori


Operatori logici, cenni <strong>di</strong> logica booleana<br />

La somma non è la sola operazione che si può fare sui bit.<br />

Oltre alle operazioni algebriche esistono le operazioni LOGICHE<br />

Operazione LOGICA NOT Tavola <strong>di</strong> verità


Operazione LOGICA OR Tavola <strong>di</strong> verità


Operazione LOGICA AND<br />

Tavola <strong>di</strong> verità


Algebra <strong>di</strong> Boole: ….. George Boole (1815 - 1864)<br />

NOT<br />

OR<br />

Ve<strong>di</strong>amo qualche esempio….<br />

AND


NOT<br />

OR<br />

AND<br />

Se I1 = 1 ------> NOT (I1) = 0 Se I1 = 0 ------> NOT (I1) = 1<br />

Se I1 = 0 e I2 = 1 ------> I1 AND I2 = 0<br />

Se I1 = 1 e I2 = 1 ------> I1 AND I2 = 1<br />

Se I1 = 0 e I2 = 1 ------> I1 OR I2 = 1


NOT<br />

OR<br />

AND<br />

Se I1 = 0 e I2 = 1 ------> (I1 OR I2) AND I1 = ?<br />

Se I1 = 1 e I2 = 0 ------> (I1 AND I2) OR (I1 OR I2) = ?<br />

Se I1 = 1 e I2 = 1 ------> (I1 OR I2) AND (I1 OR I2) = ?


NOT<br />

Reti combinatorie<br />

OR<br />

AND


Algebra <strong>di</strong> Boole


Problema: data una tavola <strong>di</strong> verità come determinare l’espressione<br />

algebrica che la sod<strong>di</strong>sfa<br />

Ci sono <strong>di</strong>verse tecniche ….<br />

Data una tavola <strong>di</strong> verità:<br />

1. si considerano le righe delle uscite corrispondenti a valori 1<br />

2. per queste righe si fa l’AND tra gli elementi che costituiscono gli ingressi negando<br />

quelli che hanno 0 in ingresso<br />

3. si fa l’OR dei termini così ottenuti.<br />

Esempio: il semi-sommatore


Sommatore<br />

Full-adder<br />

S = …?<br />

R = …?<br />

Per determinare l’espressione algebrica corrispondente<br />

(o la sua rappresentazione schematica) possiamo applicare<br />

i tre passi della nostra regola per ottenere:<br />

S = R in’(B1’• B2)+ R in’(B1• B2’)+ R in(B1’• B2’)+ R in(B1• B2)<br />

R = R in’(B1’• B2)+ R in(B1’• B2)+ R in(B1• B2’)+ R in(B1• B2)


S = R in’(B1’• B2)+ R in’(B1• B2’)+ R in(B1’• B2’)+ R in(B1• B2)<br />

R = R in’(B1’• B2)+ R in(B1’• B2)+ R in(B1• B2’)+ R in(B1• B2)<br />

Si può minimizzare?


Raccogliendo a fattor comune si ha:<br />

S = R in ’ (B1’B2+B1B2’)+ R in (B1’B2’+B1B2)<br />

R = (R in ’+ R in )(B1B2)+ R in (B1’B2+B1B2’)<br />

Concentriamo la nostra attenzione su S, ed in particolare sul<br />

secondo termine R in (B1’B2’+B1B2). Applicando De Morgan si ha:<br />

(B1’B2’)+(B1B2) = ((B1’B2’)’ (B1B2)’)’<br />

e applicando ancora De Morgan entro le singole parentesi:<br />

((B1’B2’)’ (B1B2)’)’ = ((B1+B2) (B1’+B2’))’ =<br />

= (B1B1’+B1B2’+B2B1’+B2B2’)’<br />

Poiché B1B1’ = B2B2’ = 0,<br />

possiamo scrivere il secondo termine <strong>di</strong> S come R in (B1B2’ + B1’B2)’ e così:<br />

S = R in ’ (B1’B2+B1B2’)+ R in (B1’B2 + B1B2’)’<br />

Utilizzando la porta logica OR esclusivo, con B1⊕B2 = (B1’B2)+(B1B2’), si<br />

ottiene:<br />

S = R in ’ (B1⊕B2)+ R in (B1⊕B2)’= R in ⊕ (B1⊕B2)


Veniamo ora al termine che fornisce il riporto:<br />

R = (R in’+ R in)(B1B2)+ R in(B1’B2+B1B2’)<br />

Il primo termine si semplifica osservando che<br />

(R in’+ R in) = 1<br />

mentre il secondo termine altro non è che R in(B1⊕B2).<br />

Quin<strong>di</strong><br />

R = B1B2+ R in(B1⊕B2)


Full Adder:<br />

S = R in ⊕ (B1⊕B2)<br />

R = B1B2+ R in(B1⊕B2)<br />

La rete combinatoria per il Full Adder:


Dal modello ai <strong>di</strong>spositivi: il transistor<br />

1944 (Bardeen, Brattley e Shotky)<br />

Se V in > 0.5V allora V out = 0 V<br />

Se V in < 0.5V allora V out = 5 V


Dal modello ai <strong>di</strong>spositivi: il transistor<br />

1944 (Bardeen, Brattley e Shotky)<br />

NOT gate:<br />

Se V in > 0.5V allora V out = 0 V<br />

Se V in < 0.5V allora V out = 5 V<br />

Se V in > 0.5V (stato <strong>di</strong> Input=1) allora V out = 0 V (stato <strong>di</strong> Output=0)<br />

Se V in < 0.5V (stato <strong>di</strong> Input=0) allora V out = 5 V (stato <strong>di</strong> Output=1)


Ve<strong>di</strong>amo una interessante combinazione…<br />

NAND gate:


Alla fine ne restò uno solo<br />

NOT gate:<br />

AND gate:<br />

OR gate:<br />

Verificare …


Somma a più bit<br />

Esempio: uno schema che mostra il funzionamento <strong>di</strong> un<br />

<strong>di</strong>spositivo sommatore per numeri a 3 bit.<br />

I numeri adden<strong>di</strong> sono:<br />

A1A2A3 e B1B2B3 (per esempio 011 + 100)<br />

L’ultimo bit <strong>di</strong> riporto Cr (quello più a sinistra o, come si <strong>di</strong>ce quello più significativo) prende<br />

il nome <strong>di</strong> bit <strong>di</strong> overflow.<br />

Se questo bit è <strong>di</strong>verso da 0 significa che il risultato della somma non può essere contenuto<br />

in tre bit (con<strong>di</strong>zione detta per l’appunto <strong>di</strong> overflow).


Reti combinatorie:<br />

L’uscita <strong>di</strong> una rete combinatoria è funzione dei propri ingressi.<br />

L’uscita varia “istantaneamente” al variare <strong>degli</strong> ingressi.<br />

Esiste una <strong>di</strong>versa classe <strong>di</strong> <strong>di</strong>spositivi che chiameremo<br />

sequenziali quenziali.<br />

In un <strong>di</strong>spositivo sequenziale il valore che si ottiene all’uscita in un dato istante<br />

<strong>di</strong>pende sia dal valore che si trova all’ingresso in quello stesso istante che dallo stato<br />

precedente del <strong>di</strong>spositivo stesso.<br />

Esempio: la cella <strong>di</strong> memoria <strong>di</strong> un computer


Esempio: una “Bombarda”<br />

Il cannone può trovarsi in <strong>di</strong>versi stati possibili,<br />

1) “carico”<br />

2) “scarico”<br />

3) “fuori servizio”


Esempio: una “Bombarda”<br />

Analogia:<br />

Ingresso: accensione miccia<br />

valore: SI, NO<br />

Uscita: esplulsione proiettile<br />

valore: SI, NO<br />

Non posso costruire una tavola <strong>di</strong> verità senza tenere conto dellostato del cannone.<br />

Infatti il valore dell’uscita <strong>di</strong>pende non soltanto dall’ingresso ma anche dallo stato<br />

del cannone:<br />

Ingresso: NO -----------------------> Uscita: NO<br />

Ingresso: SI -----------------------> Uscita: SI se STATO = carico<br />

Ingresso: SI -----------------------> Uscita: NO se STATO carico


In sintesi:<br />

Il valore che si ottiene all’uscita in un dato istante (cioè<br />

quando serve sparare) <strong>di</strong>pende sia dal valore che si trova<br />

all’ingresso (miccia accesa o miccia spenta) in quello stesso<br />

istante che dallo stato precedente del <strong>di</strong>spositivo stesso<br />

(cannone carico, scarico o fuori uso).<br />

Un modo per descrivere questo comportamento è quello <strong>di</strong><br />

<strong>di</strong>re che il <strong>di</strong>spositivo conserva memoria della storia<br />

precedente, ovvero ha una memoria sua interna che<br />

determina lo stato attuale del <strong>di</strong>spositivo.<br />

Il termine sequenziale, associato a questa classe <strong>di</strong> <strong>di</strong>spositivi<br />

sta proprio ad in<strong>di</strong>care che il risultato <strong>degli</strong> ingressi <strong>di</strong>pende<br />

dalla sequenza delle azioni a cui è stato sottoposto<br />

precedentemente il <strong>di</strong>spositivo stesso.


Come lo si può realizzare con i <strong>di</strong>spositivi noti?<br />

Utilizzando un trucco: il feedback<br />

Flip-Flop SR, sincrono


Flip-Flop SR, sincrono


Flip-Flop tipo D<br />

la configurazione proibita è impe<strong>di</strong>ta a priori e l’ingresso D viene<br />

memorizzato all’uscita Q, durante ogni fase abilitata dal clock


Definizione<br />

un <strong>di</strong>spositivo sequenziale caratterizzato da<br />

un certo numero <strong>di</strong> stati n, prende anche il<br />

nome <strong>di</strong>:<br />

Macchina a Stati Finiti Fin ti (FSM)<br />

o “Automa a Stati Finiti”.


Due tipologie <strong>di</strong> FSM sono particolarmente rilevanti per chi si occupa <strong>di</strong><br />

architettura dei computer:<br />

la macchina <strong>di</strong> Moore e la macchina <strong>di</strong> Mealy.<br />

Una FSM è una macchina <strong>di</strong> Moore: Moore<br />

se, ad ogni istante, il valore delle uscite <strong>di</strong>pende esclusivamente dal<br />

valore dei suoi stati in quell’istante senza <strong>di</strong>pendere dal valore <strong>degli</strong><br />

ingressi in quegli istanti.<br />

Una FSM è una macchina <strong>di</strong> Mealy: Mealy<br />

se, ad ogni istante, il valore delle uscite <strong>di</strong>pende sia dal valore dei suoi<br />

stati in quell’istante che dal valore <strong>degli</strong> ingressi, in quegli stessi istanti.<br />

Si può <strong>di</strong>mostrare che si può sempre trasformare una macchina <strong>di</strong> Moore in<br />

una <strong>di</strong> Mealy e viceversa. Tuttavia il passaggio dalla macchina <strong>di</strong> Mealy alla<br />

macchina <strong>di</strong> Moore comporta in genere un amumento del numero <strong>degli</strong> stati<br />

della macchina stessa.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!