ALGEBRA DI BOOLE L'algebra di Boole è un insieme di regole matematiche; per rappresentare queste regole si utilizzano variabili logiche, funzioni logiche, operatori logici. variabili logiche: si indicano solitamente con lettere maiuscole e possono assumere solo due valori 0 o 1, questi due valori corrispondono, in un circuito elettronico, ad un livello di tensione basso (low – L) o alto (high -H). In una proposizione logica corrispondono al Vero o Falso. funzioni logiche: esprimono il legame tra le variabili operatori logici: sono ciò che permette di legare le variabili logiche per costruire le funzioni. Ci sono tre operatori logici fondamentali: NOT = negazione, OR = somma logica, AND = prodotto logico A ̅ L'operatore NOT si scrive con una linea sopra la lettera indicante la variabile logica A ; 0 1 NOT di A = ̅ 1 0 ̿ = input AND A B C A*B*C NAND A∗B∗C 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 ∗ = A B C AND NAND Basta che un ingresso sia zero perché l'uscita sia zero Basta che un ingresso sia zero perché l'uscita sia uno Solo se tutti gli ingressi sono a uno l'uscita è uno Solo se tutti gli ingressi sono a uno l'uscita è zero ∗1= ∗0=0 ∗ ̅ = 0 A+B+C ++ OR NOR Basta che un ingresso sia uno perché l'uscita sia uno Basta che un ingresso sia uno perché l'uscita sia zero Solo se tutti gli ingressi sono a zero l'uscita è zero Solo se tutti gli ingressi sono a zero l'uscita è uno 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 0 + = +1=1 + 0 = + ̅ = 1 1 A B A+ B + EX-OR EX-NOR 0 0 0 1 0 1 1 0 Se gli ingressi sono uguali l'uscita è zero Se gli ingressi sono uguali l'uscita è uno 1 0 1 0 1 1 0 1 Se gli ingressi sono diversi l'uscita è uno Se gli ingressi sono diversi l'uscita è zero A + B= + ̅B ∗ = ∗ ∗ ( ∗ ) = ( ∗ ) ∗ ∗ ( + ) = ∗ + ∗ ∗ = ̅ + proprietà commutativa proprietà associativa proprietà distributiva teorema di De Morgan + =+ ( + ) + = + ( + ) + ( ∗ ) = ( + ) ∗ ( + ) + = ̅ ∗ Tabelle della verità e Funzioni canoniche Out La funzione definita in questa tabella della verità può essere scritta nella forma di funzione canonica in somma di prodotti (somma di mintermini) A B C 0 0 0 0 0 1 U U è una variabile dipendente dalle variabili A,B e C. nella realizzazione di un circuito elettronico U sarà l'uscita; A,B e C saranno gli ingressi. 0 0 = ̅ ∗ ∗ + ∗ ∗ + ∗ ∗ ̅ + ∗ ∗ 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 input C'è un mintermine per ogni uno di U ( nell'esempio 4 ), i termini del prodotto A B C devono essere negati se nella combinazione in ingresso c'è uno zero. La funzione U definita in questa tabella della verità può essere scritta nella forma di funzione canonica prodotto di somme (prodotto di max termini) = ( + + ) ∗ ( + + ̅ ) ∗ ( + + ) ∗ (̅ + + ) C'è un maxtermine per ogni zero di U ( nell'esempio 4 ), i termini della somma A B C devono essere negati se nella combinazione in ingresso c'è uno Out A B C V Un altro esempio 0 0 0 1 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 somma di mintermini = ̅ ∗ ∗ ̅ + ̅ ∗ ∗ + ̅ ∗ ∗ ̅ + ∗ ∗ ̅ prodotto di maxtermini = ( + + ̅ ) ∗ (̅ + + ̅ ) ∗ (̅ + + ) ∗ (̅ + + ̅ ) 2 Minimizzazione Prendiamo la funzione canonica calcolata prima = ̅ ∗ ∗ + ∗ ∗ + ∗ ∗ ̅ + ∗ ∗ può essere semplificata utilizzando l'algebra di Boole = ̅ ∗ ∗ + ∗ ∗ + ∗ ∗ (̅ + ) ma ̅ + = 1 e ∗ ∗ 1 = ∗ ̅ = ∗∗+∗∗+∗ = ̅ ∗ ∗ + ∗ ( ∗ + ) + =1 = ̅ ∗ ∗ + ∗ ( + ) ∗ ( + ) ma = ̅ ∗ ∗ + ∗ ( + ) = ̅ ∗ ∗ + ∗ + = ( ̅ ∗ + ) ∗ + ma ̅ ∗ + = (̅ + ) ∗ ( + ) = + = ( + ) ∗ + = + + Questa è la forma MINIMA così chiamata perché non più semplificabile, risulta evidente che nel realizzare un circuito la forma minima riduce il numero delle porte necessarie e del numero degli ingressi. La minimizzazione così effettuata è lunga e complicata, ovviamente ci sono metodi per arrivare più velocemente alla forma minima. Mappe di Karnaugh – minimizzazione con i mintermini o somma di prodotti input A B C 0 0 0 Out In questa 'mappa' sono riportati i valori di U nelle 8 caselle U 0 in corrispondenza dei valori di ABC riportati sui bordi della mappa e in piccolo vicino ai valori di U. tra una casella e la vicina la combinazione di ABC varia sempre e solo di un bit. Se ci sono due uno vicini la mappa ci indica una possibile semplificazione la semplificazione si può fare utilizzando la mappa, si raggruppano i due uno perché sono vicini, invece di due prodotti di tre termini si scrive un prodotto con solo i due termini delle combinazioni degli ingressi ABC, che sono uguali nelle due caselle,se sono zero devono essere negati 0 0 1 0 0 1 0 0 0 1 1 0 U= A*C 1 0 0 0 1 0 1 1 1 1 0 0 perché nelle due caselle segnate A e C non variano e sono entrambi uguali a uno, B non comparirà perché in una casella è zero nell'altra è uno Utilizzando l'algebra si ottiene lo stesso risultato 1 1 1 1 AB 00 C 0 1 01 11 10 0 0 0 0 000 010 110 100 0 0 1 1 001 011 111 101 Le combinazioni ABC sono di solito scritte solo sui bordi, qui sono riportate in piccolo anche all'interno delle caselle per meglio capire il funzionamento della mappa Utilizzando l'algebra si ottiene lo stesso risultato = ∗ ∗ + ∗ ∗ = ∗ ∗ ( + ) = ∗ 3 input A B C Out Se ci sono quattro uno vicini la mappa ci indica una U semplificazione ancora maggiore invece di quattro prodotti di tre termini si scrive solo un termine che è uguale nelle 4 caselle, in questo caso è A=1 in tutte e quattro le caselle AB 00 C 0 U= A 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 1 perché nelle due caselle segnate A non varia, B e C non compariranno perché in due caselle c'è zero nelle altre due c'è uno 1 01 11 10 0 0 1 1 000 010 110 100 0 0 1 1 001 011 111 101 Le combinazioni ABC sono di solito scritte solo sui bordi, qui sono riportate in piccolo anche all'interno delle caselle per meglio capire il funzionamento della mappa Utilizzando l'algebra si ottiene lo stesso risultato = ∗ ∗ + ∗ ∗ + ∗ ∗ ̅ + ∗ ∗ ̅ = qui è molto più evidente l'utilità della mappa I gruppi di uno da raccogliere possono essere da 2, da 4 da 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Le mappe possono essere per circuiti a due ingressi( 4 caselle), a tre ingressi( 8 caselle), a quattro ingressi ( 16 caselle), 4 Mappa per tabella della verità a quattro ingressi AB 00 01 11 10 CD 00 0 0 0 0 01 0 0 0 0 11 1 1 1 1 10 1 1 1 1 U=C La mappa di Karnaugh va intesa come fosse un mappamondo, le caselle opposte sulla stessa riga o sulla stessa colonna sono da considerarsi vicine, le quattro caselle sugli spigoli sono quindi raggruppabili in un gruppo unico da quattro. Vediamo degli esempi per capire meglio: AB CD AB 00 01 11 10 00 1 0 0 1 01 0 0 0 11 0 0 10 1 0 CD 00 01 11 10 00 0 0 1 0 0 01 1 0 0 0 0 11 0 0 0 1 10 0 0 CD 00 01 11 10 00 0 1 1 0 1 01 0 0 0 0 0 0 11 1 1 1 1 1 0 10 0 1 1 0 + ∗ ̅ ∗ =∗∗ = ∗ AB CD AB = ∗+∗ AB 00 01 11 10 00 1 0 0 1 01 1 0 1 11 1 0 10 1 0 CD AB 00 01 11 10 00 0 0 1 0 0 01 1 1 1 0 0 11 0 0 0 1 10 0 0 + ∗ ∗ ̅ ∗ = ̅ ∗ + ∗ CD 00 01 11 10 00 1 1 1 0 1 01 0 0 0 0 1 0 11 1 1 1 1 1 0 10 1 1 1 0 = ∗ + ̅ ∗ +∗ = ∗ + ̅ ∗ Mappa per tabella della verità a due ingressi non semplificabile A 0 1 0 0 1 1 1 0 B = ̅ ∗ + ∗ 5 Porte Logiche Hardware Il funzionamento del computer si basa tutto sulla presenza/assenza di segnali elettrici all’interno dei milioni e milioni di circuiti che lo compongono. I due BIT ovvero i valori “0” e “1” di cui abbiamo parlato finora corrispondono alla presenza o assenza di segnali. L’attività del computer consiste essenzialmente nella continua rapidissima combinazione e propagazione di tutti questi segnali al proprio interno, al ritmo di un orologio interno, che “batte” fino e oltre i 3 miliardi di volte ogni secondo ( il clock ) e sotto il controllo del microprocessore. Tutti i dispositivi di memoria funzionano in due possibili stati fisici (presente/assente, riflettente/opaco, orario/antiorario ...); insomma, l'elemento minimo di memoria è sempre un micro-dispositivo che può trovarsi in uno solo tra due stati fisici distinti. memorie a semiconduttore RAM, ROM, chiavette USB, memorie FLASH, elementi di memoria presenti nella CPU (=registri) BIT = presenza o assenza di una debole tensione elettrica memorie magnetiche Hard Disk Floppy Disk BIT = microarea orientata magneticamente in senso orario oppure antiorario memorie ottiche CD DVD BIT = microarea che riflette un raggio laser oppure al contrario non lo riflette I bit sono organizzati in gruppi di 8. Una sequenza di 8 bit prende il nome di BYTE (leggi bàit). Noi scriveremo Byte sempre con la maiuscola, per abituarci al fatto che le abbreviazioni sono B=Byte, b=bit Un Byte, ad esempio 01100010, potrà, a seconda del contesto, indicare: · un dato numerico, ad esempio il numero "98" · un dato non numerico, ad es. la lettera "b minuscola", oppure il codice di un colore il codice di un'istruzione, ad es. l'istruzione di "somma", o l'istruz. di attivazione della stampante · · l'indirizzo (=il numero d'ordine) della cella di memoria dove risiede un certo dato, o istruzione. Allora, ricapitoliamo: in un computer, le istruzioni di un programma, e i dati su cui il programma è chiamato a operare, sono codificati come sequenze di “0” e di “1” (bit), organizzate in gruppi di otto (Byte) e fisicamente realizzate, nella RAM (memoria di lavoro) o sulle “memorie di massa” (HD, CD, DVD, …), da dispositivi di natura diversa ma accomunati dal fatto che ciascuno di essi può, istante per istante, trovarsi in uno e uno solo fra due stati fisici ben distinti. ll microprocessore è in grado di “MANIPOLARE” queste sequenze di 0 e di 1, seguendo le istruzioni contenute nei programmi, in modo da realizzare operazioni logiche e aritmetiche, la selezione della cella di RAM dalla quale prelevare l’istruzione che è corretto eseguire, in una data fase di un processo, o dalla quale/nella quale prelevare/riversare un dato, comandi vari (es. illuminazione con un colore piuttosto che un altro di un dato puntino sullo schermo, attivazione della stampante, ecc. ecc. ecc.) I multipli del Byte, usati per misurare la capienza o “capacità” delle varie memorie, sono: il KiloByte (KB), il MegaByte (MB), il GigaByte (GB), il TeraByte (TB). Fuori dall’ Inform. Kilo Mega 1000 = 10 A volte, in Inform. 3 1.000.000 = 10 k 6 M 9 Giga 1.000.000.000 = 10 Tera 1.000.000.000.000=1012 G T 1024 = 210 1.048.576 = 2 20 30 1.073.741.824 = 2 1.099.511.627.776= 240 Kilobinary=kibi ki Megabinary=Mibi Mi Gigabinary=Gibi Gi Terabinary=Tebi Ti Ogni multiplo è 1024=210 volte il precedente; la scelta di questo numero (anziché 1000=103) si deve al fatto che in logica binaria, è 2 la base e non il 10. 6 Attualmente, le capacità “tipiche” delle varie memorie sono: RAM 4 GB HARD DISK (HD) Da 250 o 500 GB a 1 TB CHIAVETTA USB Da 4 a 32 GB e più 650 CD 700 800 MB DVD 870 Da 4,7 GB in su Per realizzare tutte le sue funzioni il PC deve poter utilizzare le funzioni logiche che abbiamo descritto. Le funzioni logiche vengono realizzate con le Porte logiche che sono circuiti elettronici realizzati con semiconduttori. Nella prima colonna ci sono i simboli IEEE (Institute of Electrical and Electronics Engineers) ripresi dal CEI (comitato elettrotecnico italiano) Nella seconda colonna ci sono i simboli americani Le tabelle della verità di queste porte riportano su ingressi e uscite 0 o 1oppure L o H (Low – High) 7