Lezioni di Architettura degli elaboratori O. D antona Le funzioni booleane Funzione booleana La funzione booleana è un applicazione dall insieme dei numeri le cui cifre sono composte da 0 e 1 all insieme contenente le cifre 0 e 1. F : { 0, 1 } n { 0, 1 } Notiamo quindi che abbiamo un insieme numeroso ma finito di possibilità. Quante sono le combinazioni possibili n cifre che possono assumere i valori 0 e 1? Le combinazioni possibili sono 2 n. Quante sono le funzioni booleane di 2 variabili? Facciamo un esempio con una variabile sola. x f 1 f 2 f 3 f 4 0 0 0 1 1 1 0 1 0 1 Osservando questa tabella possiamo scrivere queste funzioni booleane di una variabile: f 1 (x) = 0, f 2 (x) = x, f 3 (x) = x, f 4 (x) = 1 ( x si può scrivere anche 1 x ) Le funzioni booleane di una variabile sono quindi 4, ovvero 2 elevato al numero di combinazioni possibili con una variabile: 2 1. Con 2 variabili booleane otteniamo che il numero delle funzioni booleane di 2 variabili è 2 elevato alla 2 2. Generalizzando ancora otteniamo che il numero delle funzioni booleane di N variabili è 2 elevato alla 2 n. Operazioni booleane Le operazioni booleane principali sono descritte dalle seguenti tabelle di verità. Somma logica OR Prodotto logico AND Negazione logica NOT x y x + y x y x y x x 0 0 1 0 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1
Quali sono le principali proprietà degli operatori booleani AND, OR, NOT? Le proprietà principali di questi operatori logici sono: Formula Proprietà Note x + x = x Idempotenza x x = x x negato 2 volte = x x + 0 = x x 1 = x Idempotenza Idempotenza Tautologia - 0 è l elemento neutro della somma logica Tautologia - 1 è l elemento neutro del prodotto logico Principio di dualità x + 1 = 1 Assorbimento Principio di dualità x * 0 = 0 Assorbimento x + x = 1 Assorbimento Principio di dualità x x = 0 Assorbimento x 1 + ( x 2 + x 3 ) = ( x 1 + x 2 ) + x 3 x 1 ( x 2 x 3 ) = ( x 1 x 2 ) x 3 x ( y + z ) = x y + x z Prop. distributiva del prodotto rispetto alla somma x + ( y z ) = ( x + y ) ( x + z ) Prop. distributiva della somma rispetto al prodotto x + y = Neg( x z ) Neg( x + y ) = x z Legge di De Morgan Legge di De Morgan E necessario utilizzare le parentesi per specificare la precedenza degli operatori. Dimostriamo che vale la proprietà distributiva della somma rispetto al prodotto cona la tabella della verità. x y z x + y x + z y z x + ( y z ) ( x + y ) ( x + z ) 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 Le ultime due colonne sono uguali: la proprietà è dimostrata. 2
Circuiti Combinatori I Circuiti combinatori sono circuiti in cui i segnali di uscita dipendono direttamente da quelli di ingresso. La rappresentazione grafica delle operazioni logiche elementari OR, AND e NOT è la seguente: Combinando queste porte logiche possiamo ottenere circuiti complessi. Multiplexer o Selettore Il Multiplexer è un circuito combinatorio cha ha la funzione di selezionare in uscita (Z) uno solo di n ingressi (a, b), in base ad un segnale di selezione (S). Più segnali di ingresso ci sono più segnali di selezione saranno necessari per scegliere il segnale da mandare in uscita. Nell esempio sotto riportato abbiamo un Multiplexer a 2 vie, con simbolo grafico. Tabella della verità del circuito Multiplexer e riduzione algebrica. a b S Z 0 0 0 0 0 0 1 0 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 Z = a b S + a b S + a b S + a b S Z = ( a + a ) b S + a S ( b + b ) Z = a S + b S quando S = 1, Z = a, quando S = 0, Z = b if S then a else b 3
Ritardo di commutazione Bisogna sempre ricordare che i segnali impiegano un certo tempo per attraversare le porte logiche che attraversano. Vedi l esempio sotto riportato: Multiplexer a 3 vie Il multiplexer a 3 vie può essere realizzato concettualmente in due modi: il primo replicando in cascata il circuito già mostrato, il secondo mantenendo un livello solo ma complicando la circuiteria delle porte logiche: 1 forma (stratificata) 2 forma Nella 1 forma c è un tempo di propagazione crescente, una stratificazione dei circuiti, mentre nella 2 forma c è una complessità crescente. E fondamentale durante la progettazione dei circuiti booleani tenere in debito conto il problema della profondità dei circuiti booleani, cioè più i circuiti sono stratificati, più i tempi di propagazione aumentano e i segnali veicolati potrebbero arrivare troppo tardi per adempiere alla loro funzione. 4
Il Decoder Il Decoder è un componente che converte un numero booleano di n cifre in input in 2 n uscite in cui solo l uscita che rappresenta il numero di ingresso è ad 1. Nell esempio sotto riportato abbiamo un Decoder con simbolo grafico e tabella della verità. S 1 S 2 U 0 U 1 U 2 U 3 0 0 1 0 0 0 0 1 0 1 0 0 1 0 0 0 1 0 1 1 0 0 0 1 U0 S0 U1 S1 Dec U2 U3 E possibile realizzare un Multiplexer con un decoder. 5
Il Demultiplexer Il Demultiplexer è un circuito combinatorio che utilizza n segnali di selezione per incanalare un segnale di ingresso verso una delle 2 n uscite. Nell esempio sotto riportato abbiamo un Demultiplexer con relativo simbolo grafico. Esempio di utilizzo di un Multiplexer accoppiato ad un Demultiplexer Un esempio di tale utilizzo lo possiamo trovare in una connessione remota, per diminuire i costi di trasmissione consentendo a più soggetti di condividere la banda. I due segnali S di selezione del dato d ingresso, a o b, devono essere sincronizzati per commutare in modo fasato l uscita del canale. Nell ipotesi che i due componenti siano collocati presso Milano e Torino, sappiamo che: la distanza tra Milano e Torino è di circa 130 Km la velocità del segnale nel cavo conduttore è 2/3 la velocità della luce: 200.000 km/h La velocità di trasferimento dei dati sul canale è di 10 Mbps Il file da trasferire è di 15 kbyte Possiamo calcolare: 1) Il tempo che impiegherà un segnale che viaggia nel cabo conduttore a raggiungere la località opposta 2) Il tempo di trasferimento di un file di 15Kb V = S / T = 130 km / 200.000 km/sec = 0,65 ms T = S / V = 15 kbyte / 10 Mbps = 15 * 8 * 10 3 bit / 10 * 10 6 bit/sec = 120 / 10 * 10-3 = 12 ms Notiamo che il tempo di trasferimento di un segnale è molto inferiore rispetto al tempo di scrittura di tale segnale sul cavo di connessione. In generale i circuiti che scrivono e leggono sul canale conduttore sono complessi e introducono dei ritardi significativi. 6
I Mintermini Teorema delle Somme di Prodotti Completi (SPC) 1 Forma Canonica Qualunque funzione booleana può essere espressa come Somma di Prodotti Completi e tale scrittura è unica. In simboli: F( x1, x2,, xn ) = Σ j = 1.. m ( Π i = 1.. n x i ± ) L indice j cicla tra tutte le combinazioni degli ingressi che come risultato in uscita danno 1, tra tutte le combinazioni possibili di n variabili: 2 n. L indice i rappresenta la posizione della singola variabile d ingresso del circuito e varia da 1 a n. In altre parole, ogni termine che sommiamo logicamente (OR) è sempre composto dal prodotto logico (AND) di tutte le variabili d ingresso, asserite o negate (1, 0). Esempio. La funzione booleana che rappresentava il Multiplexer è stata ridotta algebricamente alla forma: Z = a S + b S, partiva però da una tabella di verità dalla quale abbiamo preso solo i termini per cui l uscita era uguale a 1: Z = a b S + a b S + a b S + a b S Possiamo notare che ogni termine sommato è composto dal prodotto di tutti gli ingressi, asseriti o negati, pertanto la funzione Z ( a, b, S ) è stata espressa come Somma di Prodotti Completi. Definizione di mintermine. I mintermini sono funzioni booleane che assumono il valore 1 (vero, asserito) in corrispondenza di un unica configurazione di ingressi. Notiamo anche che tutti i termini sommati della Z ( a, b, S ) contengono solo le configurazioni di ingressi che portano ad 1 l uscita. Possiamo quindi definire che: Ogni funzione booleana può essere espressa univocamente come somma di mintermini. Definizione di Insieme funzionalmente completo L esistenza del teorema SPC o 1 forma canonica è una dimostrazione che le funzioni AND, OR e NOT costituiscono insieme funzionalmente completo, ovvero ciascuna funzione booleana può essere scritta in una forma algebrica utilizzando solo questi tre operatori. Osservando poi che per la legge di De Morgan: x + y = Neg( x z ), si può concludere che anche AND e NOT sono un insieme funzionalmente completo ma anche minimale. Minimale significa che l insieme non perde le sue proprietà se si toglie un elemento. Le uniche porte logiche che costituiscono da sole un insieme funzionalmente completo e minimo sono le porte NAND e NOR. Minimo perché non è possibile togliere altri elementi dell insieme senza che non sia più funzionalmente completo. Accenno alla 2 Forma Canonica Analoghe considerazioni si possono fare per il teorema del Prodotto di Somme o 2 forma canonica che è definito in simboli da: Definizione di maxtermine. F( x1, x2,, xn ) = Π j = 1.. m ( Σ i = 1.. n x i ± ) I maxtermini sono funzioni booleane che assumono il valore 0 (falso, negato) in corrispondenza di un unica configurazione di ingressi. Ogni funzione booleana può essere espressa univocamente come prodotto di maxtermini. 7
Programmable Logica Array PLA Sfruttando la caratteristica delle funzioni booleane che consente loro di essere rappresentate come somme di mintermini, si sono creati dei componenti, chiamati PLA Programmable Logical Array, che opportunamente programmati possono realizzare una qualsiasi funzione booleana complessa. Un componente PLA internamente è composto da una griglia di ingressi affermati e negati, incrociati con i segnali di ingresso ad una serie di porte AND, la cui uscita confluisce in un unica porta OR di somma logica. Per utilizzarla basterà programmare (saldare) l intersezione tra i segnali d ingresso e le porte AND secondo la funzione booleana da implementatare. Le PLA hanno tempi di propagazione bassi e sono quindi l ideale per costruire logiche combinatorie complesse e veloci. L esempio riportato in figura si riferisce alla tabella di verità del Multiplexer a 2 vie descritto nelle precedenti pagine: Z = a b S + a b S + a b S + a b S 8
Circuito combinatorio per costruire un Sommatore Completo Questo circuito combinatorio riceve in input due bit (a, b) da sommare con il riporto (C) ricevuto da una precedente somma in cascata e resituisce la somma (S) + l eventuale riporto (R) dell operazione. S(a, b, c) = a b c + a b c + a b c + a b c = ( a b + a b ) c + ( a b + a b ) c R(a, b, c) = a b c + a b c + a b c + a b c = a b c + a b c + a b c + a b c + a b c + a b c Proprietà di idempotenza = b c ( a + a ) + a c ( b + b ) + a b ( c + c ) ( a + a ) = 1 = a b + a c + b c 9