💾 004 - Computer 8 bit - Gate logici 💾
Nell'articolo precedente, abbiamo parlato di codice binario, e di come questo possa essere utilizzato per rappresentare numeri decimali, così come caratteri e praticamente qualsiasi tipo di informazione che vogliamo.
Adesso che abbiamo risolto il problema dell'immagazzinare l'informazione sotto forma binaria però, si apre subito un secondo quesito: Come possiamo ELABORARLA ?
Come fa il PROCESSORE ad elaborare le informazioni binarie che gli forniamo?
Lo fa attraverso dei Circuiti appositi.
Circuiti composti da GATE LOGICI, i protagonisti di questo articolo.
--
I gate logici, vedendoli dal punto di vista pratico, sono dei circuiti, (come tutto quello che è contenuto in un processore del resto), che permettono di realizzare "una specifica operazione logica, su una o più variabili".
Andiamo ad analizzare il significato di "operazione logica" e "variabile".
Il concetto di operazione logica è legato alla matematica: in particolare alla "Boolean Algebra", un ramo dell'algebra di cui George Boole è considerato iniziatore.
_(2).jpg)
Un busto raffigurante GEORGE BOOLE
Attribuzione: By William Murphy from Dublin, Ireland - BUST OF GEORGE BOOLE (UNIVERSITY COLLEGE CORK)-133760, CC BY-SA 2.0, Licenza
Nel 1847, Boole pubblicò l'opuscolo "Mathematical Analysis of Logic", un'opera che conteneva un primo sviluppo della sua celebre logica booleana, che successivamente rielaborerà con un'altra pubblicazione: "An Investigation of the Laws of Thought".
Boole in queste due opere, non stava facendo altro che un'analisi matematica di un sistema matematico in cui le variabili potessero assumere solo due valori: vero o falso (1 o 0).
Solo dopo, ci si rese conto di come le idee di Boole (i suoi studi sulla algebra booleana), così come i teoremi che aveva sviluppato, fossero facilmente applicabili a dei circuiti elettronici.
Il risultato del processo di traduzione, se così lo vogliamo chiamare, delle operazioni logiche di Boole in circuiti elettronici, sono i gate logici, che altro non fanno che implementare le operazioni logiche, utilizzando i numeri (specificatamente le singole cifre) binarie di cui abbiamo parlato nell'articolo precedente.
--
Il motivo per cui la logica booleana di Boole è stata applicata all'informatica, ha a che fare con il fatto che non solo, è relativamente facile da implementare con dei circuiti elettronici (rispetto ad altri metodi che erano stati pensati precedentemente) ma anche che attraverso le diverse operazioni booleane è possibile realizzare circuiti dalla complessità infinita, e capace di svolgere qualsiasi operazione.
La logica booleana, praticamente non ha limiti
Ed è proprio questa assenza di limiti che rende possibile la realizzazione di computer complessi come quelli moderni, attraverso i gate logici.
Sino ad adesso abbiamo parlato di Gate logici, affermando che sono delle componenti che eseguono delle operazioni logiche, su dati espressi (o codificati) in codice binario.
Le "variabili", non sono altro che i "dati" su cui i gate logici eseguono le operazioni logiche.
Così come una somma, per avvenire, richiede due addendi, così anche le operazioni eseguite dai gate logici ricredono degli operandi di cui eseguire l'operazione desiderata. Le variabili, in logica booleana, altro non sono che questi addendi.
Le variabili in logica booleana seguono l'andamento delle cifre del codice binario: infatti entrambe possono assumere solo due stati: 1 o 0, VERO o FALSO.
In pratica, se c'è una cosa che voglio che teniate a mente:
L' 1 e lo 0 del codice binario, ed il VERO ed il FALSO della logica booleana, per quello che ci riguarda sono la stessa identica cosa.==
Nonostante la storia del perchè i gate logici siano utilizzati in informatica per la realizzazione di computer, sia abbastanza complessa, il funzionamento dei gate logici è in realtà molto semplice.
Quindi non fatevi scoraggiare dalle mie continue digressioni storiche ok? 💪
In particolare approfondiremo il funzionamento dei seguenti gate logici:
con le loro varianti "invertite"
Andiamo ad approfondirli uno ad uno...
Per studiare il comportamento dei gate logici di cui parleremo, faremo ausilio della tabella che vedete qui in basso, chiamata TABELLA DELLA VERITA'
La TABELLA DELLA VERITA' di un particolare gate logico, nonostante il nome un po' minaccioso, in realtà non fa altro che dirci come si comporta il gate logico a cui fa riferimento, a seconda dello stato dei due input.
In questa tabella, sono presenti due input:
Ed un OUTPUT:
--
Lo stato logico dell'output, cambia a seconda dell'input.
E' inoltre utile sapere che nella TABELLA DELLA VERITA' viene riportata OGNI SINGOLA COMBINAZIONE in cui gli input si possono trovare:
In questo caso abbiamo 2 input, A e B, il che significa che avremo
Infatti, se notate, la tabella presenta solo 4 righe (escludendo le didascalie nella prima riga) Ognuna di quelle 4 righe, corrisponde ad una certa combinazione in cui gli input si possono trovare.

Tabella della verità dell'AND, da notare come ogni riga corrisponda ad una combinazione possibile in cui i 2 input possono trovarsi.
In particolare, la TABELLA DELLA VERITA' che abbiamo usato come esempio sino ad adesso è relativa all' AND GATE, che è il gate di cui stiamo parlando.
--
LA TABELLA DELLA VERITA' DELL'AND GATE
| A | B | OUTPUT |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
--
L'AND gate è forse uno dei gate logici di cui è più facile ricordarsi: L'output assume lo stato "1" solamente e solamente se entrambi gli ingressi A e B sono anch'essi "1". In tutti gli altri casi, l'output resta "0".
--
Adesso che conosciamo il comportamento dell' AND, è giunto il momento di conoscerne il simbolo:
Avete capito bene: i GATE LOGICI hanno dei simboli, che ci permettono di identificarli in un circuito.

I simboli dei vari gate logici, evidenziato il simbolo logico dell'AND gate, foto modificata a partire da un lavoro di pubblico dominio.
Andiamo adesso a recuperare il simbolo logico dell'AND gate, evidenziando la posizione dei diversi input e dell'output:


Il simbolo logico dell'AND gate con evidenziati gli ingressi A e B e l'output.
Visto il simbolo? Bene, allora possiamo continuare con il prossimo gate logico, l'OR gate. 🙂
Adesso che conosciamo come è fatta una TABELLA DELLA VERITA' possiamo semplicemente fare riferimento ad essa, per comprendere il funzionamento dei gate logici successivi:
--
LA TABELLA DELLA VERITA' DELL'OR GATE:
| A | B | OUTPUT |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
--
L'output dell'OR GATE, assume lo stato "1" se solo uno od entrambi dei suoi input hanno uno stato "1". Sono quando nessuno dei due input ha stato "1", allora lo stato dell'output è "0".
--
Andiamo anche a vedere il simbolo, segnando la posizione degli ingressi A e B e dell'OUTPUT:


Il simbolo logico dell'OR GATE con evidenziati gli ingressi A e B e l'output.
Passiamo subito al successivo: lo XOR gate.
Immagino abbiate capito il concetto 🙂; vi lascio la tabella della verità dello XOR gate:
--
LA TABELLA DELLA VERITA' DELLO XOR GATE:
| A | B | OUTPUT |
|---|---|---|
| 0 | 0 | 0 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 1 | 0 |
--
L'output dello XOR GATE, è molto simile a quello dell'OR gate, con l'unica differenza che nel caso in cui entrambi gli input assumono lo stato "1", l'output assume lo stato "0" (e non "1" come nell'OR).
--
Ed il simbolo logico:


Il simbolo logico dello XOR GATE con evidenziati gli ingressi A e B e l'output.
Ci manca solo l'ultimo dei gate logici "normali" (adesso vedremo meglio cosa intendo), il NOT GATE:
Il not GATE presenta una particolarità rispetto ai precedenti:
--
LA TABELLA DELLA VERITA' DEL NOT GATE:
| A | OUTPUT |
|---|---|
| 0 | 1 |
| 1 | 0 |
--
L'output del NOT GATE è praticamente l'esatta INVERSIONE del suo input: se l'input è "1", l'output è "0" e viceversa.
Da notare che in questo caso la tabella presenta solo 2 righe perchè invece di 2 input ne abbiamo solo uno (e quindi
--
Anche il simbolo logico è più particolare, in quanto presenta per l'appunto un solo input:


Sino ad adesso abbiamo parlato dei gate logici AND, OR, XOR e NOT.
La cosa interessante è che questi possono essere "combinati" per realizzare anche altri gate logici, il NAND, il NOR, e lo XNOR.
Dal punto di vista concettuale NAND, NOR e XNOR sono letteralmente la versione "invertita" di AND, OR e XOR. Infatti, questi hanno un comportamento equivalente a quello che succederebbe se all'output di uno di questi 3 gate fosse aggiunto un NOT gate, e l'output di quel not gate fosse considerato come output del gate stesso.
In pratica, il NAND, il NOR e lo XNOR sono come degli AND, degli OR e degli XOR con un NOT "davanti".
--
==Andiamo a visualizzare il concetto di cui sto parlando prendendo il NAND gate come esempio:

Circuito equivalente ad un NAND gate: da notare l'AND gate seguito da un NOT gate che ne inverte l'output
Il circuito rappresentato qui sopra, è logicamente equivalente ad un NAND gate, anche se di fatto è composto solo da un AND e da un NOT.
--
I gate NAND, NOR, XNOR, essendo logicamente differenti rispetto alle loro varianti non invertite, assumono anche un simbolo differente:

Simbolo logico del NAND gate, da notare quel piccolo "cerchio" dalla parte dell'output.
Quello rappresentato qui sopra è il simbolo logico dell NAND gate. Da notare la sua estrema somiglianza con il simbolo logico dell'AND gate, eccezione fatta per quel piccolo "cerchietto" posizionato vicino all'output.
Quel piccolo cerchietto sta proprio a rappresentare la "inversione" che distingue il NAND gate dall'AND.
LA TABELLA DELLA VERITA' DEL NAND GATE:
| A | B | OUTPUT |
|---|---|---|
| 0 | 0 | 1 |
| 1 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 1 | 0 |
--
L'output del NAND gate assume lo stato "0" solo se entrambi gli input sono 1.
--
Simbolo logico del NAND gate:

LA TABELLA DELLA VERITA' DEL NOR GATE:
| A | B | OUTPUT |
|---|---|---|
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 0 |
--
L'output del NOR gate assume lo stato "1" solo se entrambi gli input sono 0.
--
Simbolo logico del NOR gate:

LA TABELLA DELLA VERITA' DELLO XNOR GATE
| A | B | OUTPUT |
|---|---|---|
| 0 | 0 | 1 |
| 1 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 1 | 1 |
--
L'output dello XNOR gate assume lo stato "1" se entrambi gli input sono "0" o se sono entrambi "1".
--
Simbolo logico dello XNOR gate:

I gate logici sono alla base dell'elettronica digitale così come la conosciamo.
Sono degli strumenti relativamente semplici, ma che permettono di realizzare circuiti e componenti capaci di implementare funzioni molto complesse.
Adesso che abbiamo imparato a conoscerli, negli articoli successivi non ci resta che imparare ad utilizzarli per raggiungere il nostro scopo: realizzare un computer ad 8 bit.
Alla prossima 👋
Data: 12/01/25
Pagina successiva inerente al progetto: Ancora da realizzare