Elementi di Architettura degli Elaboratori (pdf) - Fisica
Elementi di Architettura degli Elaboratori (pdf) - Fisica
Elementi di Architettura degli Elaboratori (pdf) - Fisica
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.