18.06.2013 Views

Prima parte (pdf)

Prima parte (pdf)

Prima parte (pdf)

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

Lezioni di Architettura degli elaboratori – O. D’antona<br />

Le funzioni booleane<br />

Funzione booleana<br />

La funzione booleana è un’applicazione dall’insieme dei numeri le cui cifre sono composte da 0 e 1<br />

all’insieme contenente le cifre 0 e 1.<br />

F : { 0, 1 } n { 0, 1 }<br />

Notiamo quindi che abbiamo un insieme numeroso ma finito di possibilità.<br />

Quante sono le combinazioni possibili n cifre che possono assumere i valori 0 e 1 ?<br />

Le combinazioni possibili sono 2 n.<br />

Quante sono le funzioni booleane di 2 variabili ?<br />

Facciamo un esempio con una variabile sola.<br />

x f1 f2 f3 f4<br />

0 0 0 1 1<br />

1 0 1 0 1<br />

Osservando questa tabella possiamo scrivere queste funzioni booleane di una variabile:<br />

f1(x) = 0, f2(x) = x, f3(x) =⎯x, f4(x) = 1 (⎯x si può scrivere anche 1 – x )<br />

Le funzioni booleane di una variabile sono quindi 4, ovvero 2 elevato al numero di combinazioni possibili con<br />

una variabile: 2 1 . Con 2 variabili booleane otteniamo che il numero delle funzioni booleane di 2 variabili è 2<br />

elevato alla 2 2 .<br />

Generalizzando ancora otteniamo che il numero delle funzioni booleane di N variabili è 2 elevato alla 2 n .<br />

Operazioni booleane<br />

Le operazioni booleane principali sono descritte dalle seguenti tabelle di verità.<br />

Somma logica OR Prodotto logico AND Negazione logica NOT<br />

x y x + y x y x • y x ⎯x<br />

0 0 1 0 0 1 0 0<br />

0 1 1 0 1 1 0 1<br />

1 0 1 1 0 1 1 0<br />

1 1 1 1 1 1 1 1<br />

1


Quali sono le principali proprietà degli operatori booleani AND, OR, NOT ?<br />

Le proprietà principali di questi operatori logici sono:<br />

Formula Proprietà Note<br />

x + x = x Idempotenza<br />

x • x = x Idempotenza<br />

x negato 2 volte = x Idempotenza<br />

x + 0 = x Tautologia - 0 è l’elemento neutro<br />

della somma logica<br />

x • 1 = x Tautologia - 1 è l’elemento neutro<br />

del prodotto logico<br />

Principio di dualità<br />

x + 1 = 1 Assorbimento Principio di dualità<br />

x * 0 = 0 Assorbimento<br />

x +⎯x = 1 Assorbimento Principio di dualità<br />

x •⎯x = 0 Assorbimento<br />

x1 + ( x2 + x3 ) = ( x1 + x2 ) + x3<br />

x1 • ( x2 • x3 ) = ( x1 • x2 ) • x3<br />

x • ( y + z ) = x • y + x • z Prop. distributiva del prodotto<br />

rispetto alla somma<br />

x + ( y • z ) = ( x + y ) • ( x + z ) Prop. distributiva della somma<br />

rispetto al prodotto<br />

x + y = Neg(⎯x •⎯z ) Legge di De Morgan<br />

Neg( x + y ) =⎯x •⎯z Legge di De Morgan<br />

E’ necessario utilizzare le parentesi per specificare la precedenza degli operatori.<br />

Dimostriamo che vale la proprietà distributiva della somma rispetto al prodotto cona la tabella della verità.<br />

x y z x + y x + z y • z x + ( y • z ) ( x + y ) • ( x + z )<br />

0 0 0 0 0 0 0 0<br />

0 0 1 0 1 0 0 0<br />

0 1 0 1 0 0 0 0<br />

0 1 1 1 1 1 1 1<br />

1 0 0 1 1 0 1 1<br />

1 0 1 1 1 0 1 1<br />

1 1 0 1 1 0 1 1<br />

1 1 1 1 1 1 1 1<br />

Le ultime due colonne sono uguali: la proprietà è dimostrata.<br />

2


Circuiti Combinatori<br />

I Circuiti combinatori sono circuiti in cui i segnali di uscita dipendono direttamente da quelli di ingresso.<br />

La rappresentazione grafica delle operazioni logiche elementari OR, AND e NOT è la seguente:<br />

Combinando queste porte logiche possiamo ottenere circuiti complessi.<br />

Multiplexer o Selettore<br />

Il Multiplexer è un circuito combinatorio cha ha la funzione di selezionare in uscita (Z) uno solo di n ingressi<br />

(a, b), in base ad un segnale di selezione (S).<br />

Più segnali di ingresso ci sono più segnali di selezione saranno necessari per scegliere il segnale da<br />

mandare in uscita. Nell’esempio sotto riportato abbiamo un Multiplexer a 2 vie, con simbolo grafico.<br />

Tabella della verità del circuito Multiplexer e riduzione algebrica.<br />

a b S Z<br />

0 0 0 0<br />

0 0 1 0<br />

0 1 0 1<br />

0 1 1 0<br />

1 0 0 0<br />

1 0 1 1<br />

1 1 0 1<br />

1 1 1 1<br />

Z =⎯a b⎯S + a⎯b S + a b⎯S + a b S<br />

Z = ( a + ⎯a ) b⎯S + a S ( b +⎯b )<br />

Z = a S + b⎯S<br />

quando S = 1, Z = a, quando S = 0, Z = b<br />

if S then a else b<br />

3


Ritardo di commutazione<br />

Bisogna sempre ricordare che i segnali impiegano un certo tempo per attraversare le porte logiche che<br />

attraversano. Vedi l’esempio sotto riportato:<br />

Multiplexer a 3 vie<br />

Il multiplexer a 3 vie può essere realizzato concettualmente in due modi: il primo replicando in cascata il<br />

circuito già mostrato, il secondo mantenendo un livello solo ma complicando la circuiteria delle porte logiche:<br />

1° forma (stratificata)<br />

2° forma<br />

Nella 1° forma c’è un tempo di propagazione crescente,<br />

una stratificazione dei circuiti, mentre nella 2° forma c’è<br />

una complessità crescente.<br />

E’ fondamentale durante la progettazione dei circuiti<br />

booleani tenere in debito conto il problema della<br />

profondità dei circuiti booleani, cioè più i circuiti sono<br />

stratificati, più i tempi di propagazione aumentano e i<br />

segnali veicolati potrebbero arrivare troppo tardi per<br />

adempiere alla loro funzione.<br />

4


Il Decoder<br />

Il Decoder è un componente che converte un numero booleano di n cifre in input in 2 n uscite in cui solo<br />

l’uscita che rappresenta il numero di ingresso è ad 1. Nell’esempio sotto riportato abbiamo un Decoder con<br />

simbolo grafico e tabella della verità.<br />

E’ possibile realizzare un Multiplexer con un decoder.<br />

S1 S2 U0 U1 U2 U3<br />

0 0 1 0 0 0<br />

0 1 0 1 0 0<br />

1 0 0 0 1 0<br />

1 1 0 0 0 1<br />

S0<br />

S1<br />

Dec<br />

U0<br />

U1<br />

U2<br />

U3<br />

5


Il Demultiplexer<br />

Il Demultiplexer è un circuito combinatorio che utilizza n segnali di selezione per incanalare un segnale di<br />

ingresso verso una delle 2 n uscite.<br />

Nell’esempio sotto riportato abbiamo un Demultiplexer con relativo simbolo grafico.<br />

Esempio di utilizzo di un Multiplexer accoppiato ad un Demultiplexer<br />

Un esempio di tale utilizzo lo possiamo trovare in una connessione remota, per diminuire i costi di<br />

trasmissione consentendo a più soggetti di condividere la banda.<br />

I due segnali S di selezione del dato d’ingresso, a o b, devono essere sincronizzati per commutare in modo<br />

fasato l’uscita del canale.<br />

Nell’ipotesi che i due componenti siano collocati presso Milano e Torino, sappiamo che:<br />

• la distanza tra Milano e Torino è di circa 130 Km<br />

• la velocità del segnale nel cavo conduttore è 2/3 la velocità della luce: 200.000 km/h<br />

• La velocità di trasferimento dei dati sul canale è di 10 Mbps<br />

• Il file da trasferire è di 15 kbyte<br />

Possiamo calcolare:<br />

1) Il tempo che impiegherà un segnale che viaggia nel cabo conduttore a raggiungere la località opposta<br />

2) Il tempo di trasferimento di un file di 15Kb<br />

V = S / T = 130 km / 200.000 km/sec = 0,65 ms<br />

T = S / V = 15 kbyte / 10 Mbps = 15 * 8 * 10 3 bit / 10 * 10 6 bit/sec = 120 / 10 * 10 -3 = 12 ms<br />

Notiamo che il tempo di trasferimento di un segnale è molto inferiore rispetto al tempo di scrittura di tale<br />

segnale sul cavo di connessione. In generale i circuiti che scrivono e leggono sul canale conduttore sono<br />

complessi e introducono dei ritardi significativi.<br />

6


I Mintermini<br />

Teorema delle Somme di Prodotti Completi (SPC) – 1° Forma Canonica<br />

Qualunque funzione booleana può essere espressa come Somma di Prodotti Completi e tale scrittura è<br />

unica. In simboli:<br />

∀ F( x1, x2, …, xn ) = Σ j = 1.. m ( Π i = 1.. n xi ± )<br />

L’indice j cicla tra tutte le combinazioni degli ingressi che come risultato in uscita danno 1, tra tutte le<br />

combinazioni possibili di n variabili: 2 n .<br />

L’indice i rappresenta la posizione della singola variabile d’ingresso del circuito e varia da 1 a n.<br />

In altre parole, ogni termine che sommiamo logicamente (OR) è sempre composto dal prodotto logico (AND)<br />

di tutte le variabili d’ingresso, asserite o negate (1, 0).<br />

Esempio. La funzione booleana che rappresentava il Multiplexer è stata ridotta algebricamente alla forma:<br />

Z = a S + b⎯S,<br />

partiva però da una tabella di verità dalla quale abbiamo preso solo i termini per cui l’uscita era uguale a 1:<br />

Z =⎯a b⎯S + a⎯b S + a b⎯S + a b S<br />

Possiamo notare che ogni termine sommato è composto dal prodotto di tutti gli ingressi, asseriti o negati,<br />

pertanto la funzione Z ( a, b, S ) è stata espressa come Somma di Prodotti Completi.<br />

Definizione di mintermine.<br />

I mintermini sono funzioni booleane che assumono il valore 1 (vero, asserito) in corrispondenza di un’unica<br />

configurazione di ingressi.<br />

Notiamo anche che tutti i termini sommati della Z ( a, b, S ) contengono solo le configurazioni di ingressi che<br />

portano ad 1 l’uscita. Possiamo quindi definire che:<br />

Ogni funzione booleana può essere espressa univocamente come somma di mintermini.<br />

Definizione di Insieme funzionalmente completo<br />

L’esistenza del teorema SPC o 1° forma canonica è una dimostrazione che le funzioni AND, OR e NOT<br />

costituiscono insieme funzionalmente completo, ovvero ciascuna funzione booleana può essere scritta in<br />

una forma algebrica utilizzando solo questi tre operatori.<br />

Osservando poi che per la legge di De Morgan: x + y = Neg(⎯x •⎯z ), si può concludere che anche AND e<br />

NOT sono un insieme funzionalmente completo ma anche minimale. Minimale significa che l’insieme non<br />

perde le sue proprietà se si toglie un elemento.<br />

Le uniche porte logiche che costituiscono da sole un insieme funzionalmente completo e minimo sono le<br />

porte NAND e NOR. Minimo perché non è possibile togliere altri elementi dell’insieme senza che non sia più<br />

funzionalmente completo.<br />

Accenno alla 2° Forma Canonica<br />

Analoghe considerazioni si possono fare per il teorema del Prodotto di Somme o 2° forma canonica che è<br />

definito in simboli da:<br />

Definizione di maxtermine.<br />

∀ F( x1, x2, …, xn ) = Π j = 1.. m ( Σ i = 1.. n xi ± )<br />

I maxtermini sono funzioni booleane che assumono il valore 0 (falso, negato) in corrispondenza di un’unica<br />

configurazione di ingressi.<br />

Ogni funzione booleana può essere espressa univocamente come prodotto di maxtermini.<br />

7


Programmable Logica Array – PLA<br />

Sfruttando la caratteristica delle funzioni booleane che consente loro di essere rappresentate come somme<br />

di mintermini, si sono creati dei componenti, chiamati PLA – Programmable Logical Array, che<br />

opportunamente programmati possono realizzare una qualsiasi funzione booleana complessa.<br />

Un componente PLA internamente è<br />

composto da una griglia di ingressi<br />

affermati e negati, incrociati con i<br />

segnali di ingresso ad una serie di<br />

porte AND, la cui uscita confluisce in<br />

un’unica porta OR di somma logica.<br />

Per utilizzarla basterà<br />

“programmare” (saldare)<br />

l’intersezione tra i segnali d’ingresso<br />

e le porte AND secondo la funzione<br />

booleana da implementatare.<br />

Le PLA hanno tempi di<br />

propagazione bassi e sono quindi<br />

l’ideale per costruire logiche<br />

combinatorie complesse e veloci.<br />

L’esempio riportato in figura si<br />

riferisce alla tabella di verità del<br />

Multiplexer a 2 vie descritto nelle<br />

precedenti pagine:<br />

Z =⎯a b⎯S + a⎯b S + a b⎯S + a b S<br />

8


Circuito combinatorio per costruire un Sommatore Completo<br />

Questo circuito combinatorio riceve in input due bit (a, b) da sommare con il riporto (C) ricevuto da una<br />

precedente somma in cascata e resituisce la somma (S) + l’eventuale riporto (R) dell’operazione.<br />

S(a, b, c) = ⎯a⎯b c +⎯a b⎯c + a⎯b⎯c + a b c<br />

= ( a⎯b + a b ) c + (⎯a b + a⎯b )⎯c<br />

R(a, b, c) = ⎯a b c + a⎯b c + a b⎯c + a b c<br />

= ⎯a b c + a b c + a⎯b c + a b c + a b⎯c + a b c Proprietà di idempotenza<br />

= b c (⎯a + a ) + a c (⎯b + b ) + a b (⎯c + c ) (⎯a + a ) = 1<br />

= a b + a c + b c<br />

9

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

Saved successfully!

Ooh no, something went wrong!