LAB- I “mattoncini” dell’informatica digitale: 0 ed 1

Il codice binario è il metodo di conteggio più elementare, eppure ci permette di realizzare dispositivi in grado di compiere calcoli inimmaginabili … ma cosa c’è dietro?

(Credit: topfreebooks)

Correva l’anno 1940, la seconda guerra mondiale era da poco scoppiata, e la Germania grazie all’utilizzo di una macchina di crittografia avanzata denominata Enigma era in grado di comunicare con i propri alleati utilizzando un sistema quasi inhackerabile. L’inghilterra, dal canto suo, era convinta di poter riuscire ad hackerare quel sistema, e grazie unicamente al genio Alan Turing ed alla sua macchina chiamata “Bombe”, riuscì nell’impresa.

C’è chi potrebbe vedere in queste parole la trama del film “The Imitation Game”, altri invece l’inizio di una nuova era. È proprio in concomitanza alla costruzione di questa macchina che si scorgono gli albori dell’era digitale.

Un’era che si è evoluta negli anni quasi esponenzialmente fino ad arrivare ai giorni nostri, in cui macchine come quella di Turing sono infinitamente superate da un semplice smartphone. Ma su cosa si fonda davvero questa era digitale? È solo uno sviluppo tecnologico o c’è qualcosa di più?

L’informatica del contemporaneo

Tutti avranno sentito parlare, almeno una volta nella vita, di codice binario, zero ed uno; diversamente, il suo esatto funzionamento viene etichettato come “roba da nerd”. Il codice binario, infatti, non è ninent’altro che un diverso tipo di numerazione. È noto che il nostro sistema di numerazione chiamato decimale si basa appunto su dieci numeri diversi che composti tra loro possono generare tutte le quantità numeriche desiderate.

La ragione per cui il nostro sistema di numerazione si basa su dieci numeri è molto banale, abbiamo 10 dita, tutto qui. Probabilmente se ne avessimo avuto solo 1, il nostro sistema di numerazione sarebbe stato binario.

Tornando quindi alla numerazione decimale si è dimostrato che è possibile convertire qualunque numero decimale in binario e viceversa. Prendendo d’esempio il numero 7, tramite delle formule matematiche banali, è possibile convertirlo in una serie di 0 ed 1. Con codice binario, similmente a quello decimale è possibile svolgere tutte le quattro operazioni fondamentali nello stesso modo in cui si sommano i numeri normali.

Volendo ad esempio sommare 110010 ( 50) con 101 (5) basta mettere in colonna i vari addendi e sommarli, ricordandosi, però, che in questo caso 1+1 non è uguale a 2 ma bensì a 0 con il riporto di 1, quindi 10 (che si legge uno-zero e non dieci).

(Credit: businessonline)

È evidente quindi che tutti i macchinari che funzionano tramite codice binario come ad esempio i PC, non sono altro che degli enormi calcolatori che svolgono calcoli con i numeri binari anziché decimali.

Le immagini, gli audio, i video, e più in generale tutti i dati che rappresentano informazioni digitali sono solo una lunga serie di 0 ed 1 che si susseguono, numeri in codice binario. Per quanto possa sembrare strano, quindi, qualunque file salvato su di un PC è conservato sotto forma di una lunga serie di numeri tradotti in binario e memorizzati in termini di 0 ed 1.

Un numero di telefono, un messaggio vocale, un selfie, sono solo una grande stringa di numeri, e tutto ciò che ha a che fare con il digitale funziona così, sono solo 0 ed 1.

A tal punto quindi qualche domanda sorge spontanea: Cosa sono nella realtà fisica questi 0 ed 1? E come si fa a convertire qualcosa dalla realtà in stringhe di 0 ed 1?

Per quanto riguarda la seconda domanda ci torneremo su in futuro, in quanto la risposta è molto più complessa di quella che si possa immaginare. Focalizziamo l’attenzione per ora, quindi, solo sul significato fisico di 0 ed 1 e su come l’uomo sia stato in grado di progettare dispositivi per elaborare questi dati.

Un interruttore magico

Immaginiamo il seguente scenario: è notte e ci stiamo ritirando verso casa, appena arrivati ciò che istintivamente si fa è entrare in casa ed accendere una lampadina per illuminare la casa. Possiamo quindi immaginare, con un po’ di fantasia, che quella lampadina, prima che arrivassimo era in uno stato logico spento (0) e nel momento in cui l’abbiamo accesa, è passata ad uno stato logico acceso (1).

Se avessimo, ad esempio, 8 lampadine a disposizione, potremmo rappresentare, accendendone alcune e lasciandone spente altre, tutti i numeri binari rappresentabili con 8 cifre. Basta solo un po’ di immaginazione nell’associare ad una lampadina “on”, un 1 logico e ad una “off”, uno 0 logico.

Una sequenza del genere può rappresentare ad esempio il numero 00001000, ossia 8 in numerazione decimale. In generale con 8 lampadine si possono rappresentare i numeri decimali da 0 fino a 255. (Credit: fotolia)

Ecco è proprio su questo che si basa sostanzialmente tutta la tecnologia digitale attuale. Con le uniche differenze che:

  • All’interno di PC non vi sono enormi interruttori da premere ma dispositivi a semiconduttori chiamati MOSFET che sono a tutti gli effetti degli interruttori miniaturizzati lunghi qualche decina di nanometro (10^-9 m);
  • All’interno dei PC non vi sono lampadine che si spengono o si accendono ma elettroni che si depositano in determinate zone anziché in altre, generando così un accumulo che viene tradotto in un potenziale elettrico;

Sostanzialmente, quindi, all’interno degli attuali dispositivi tecnologici gli stati logici di 0 ed 1 equivalgono a delle tensioni (accumuli di elettroni) che variano in base alla tecnologia.

I livelli logici della logica TTL, le tensioni da 2V a 0.8V sono considerati stati logici metastabili, ossia non sono ne 1 ne 0 logici e nel caso la macchina finisca in questi stati verrà riportato un errore (Credit: chegg)

Ad esempio una tecnologia molto in voga negli anni ‘80/’90 chiamata TTL associava lo “0” logico ad una tensione di 0V e l’uno logico ad una tensione di 5V. Nella tecnologia CMOS, più recente, si associa l’uno logico a 3,3V invece che a 5V, ciò al fine di diminuire la potenza assorbita dal dispositivo.

Connettendo, quindi, nei modi più fantasiosi miliardi di questi interruttori in grado di generare valori logici di 0 ed 1,( 3,3V, 5V o 0V), è possibile costruire dispositivi che siano in grado di eseguire compiti proprio come i nostri PC e smartphone.

Porte e “finestre” logiche

Vediamo nel dettaglio, però, quali sono questi dispositivi elementari che ci permettono di compiere diversi tipi di operazione con i numeri binari. In particolare possiamo analizzare il loro funzionamento a livello concettuale.

È noto infatti che tutto il mondo digitale, per assolvere specifici compiti, utilizza dispositivi chiamati porte logiche.

Le porte logiche non sono altro che un insieme di interruttori connessi in un certo modo che permettono di realizzare delle operazioni tra numeri binari.

Queste porte logiche possiamo quindi immaginarle come delle “scatoline” che avendo un determinato numero binario in ingresso, generano una particolare uscita. Per semplicità, invece di parlare di stringhe di 0 ed 1 possiamo andare ad analizzare la singola cifra binaria chiamata bit (BInary digiT).

Un integrato in cui sono implementate varie porte logiche. La zona di funzionamento ove sono presenti gli interruttori MOSFET è quella in oro, tutto il resto è solo plastica e metallo. (Credit: forusolutio)

Esistono diversi tipi di porte logiche, che si possono ottenere dalla combinazione di un numero arbitrario di porte logiche fondamentali. Queste ultime sono sostanzialmente 4 :

  • Porta logica NOT: è una delle porte logiche più semplici. La sua funzione è semplicemente quella di complementare il bit in ingresso, ossia nel caso in cui in ingresso a questa “scatolina” ci sia uno 0 logico in uscita ci sarà un 1, nel caso ci sia 1, in uscita ci sarà 0;
  • Porta logica AND: Questa porta logica svolge la funzione di moltiplicazione. Generalmente ha in ingresso 2 o più bit e l’uscita è rappresentata dalla moltiplicazione dei 2 bit in ingresso. Ricordando che 0 moltiplicato per qualunque numero ha come risultato 0, la porta logica genererà in uscita 1 se in ingresso abbiamo due 1, altrimenti 0;
  • Porta logica OR: Questa porta logica assolve la funzione di pseudo-somma. Anch’essa ha in ingresso 2 o più bit e l’uscita è semplicemente la somma dei due bit in ingresso. Nel caso però di due 1 in ingresso il risultato matematico sarebbe un 10 (2) . Essendo una porta logica che ha però solo 1 bit di uscita genererà un 1, ossia il valore logico più alto possibile;
  • Porta logica XOR: Questa porta logica esegue una funzione già leggermente diversa dalle 3 elementari citate in precedenza. Essa, infatti, restituisce come 1 in uscita solo se i bit di ingresso sono diversi tra loro. Nel caso quindi di bit in ingresso uguali a 01 oppure 10 si avrà un 1 in uscita. Se si hanno invece 11 o 00 in ingresso si avrà uno 0 in uscita;
In figura sono rappresentati i simboli delle varie porte logiche, con le “tabelle della verità”. Queste descrivono cosa si ha in output dato una certa coppia di bit in input.

Partendo quindi da queste quattro semplici porte logiche è possibile implementare tutte le funzioni matematiche esistenti ( +, -, x, ÷) .

Uno sguardo al futuro (qu)bit

I primi dispositivi elettronici entrarono in commercio negli anni ’50, e i metodi di elaborazione dei dati e le tecnologie sono notevolmente mutati da allora, ma i principi fondanti riguardo i numeri binari sono pressoché immutati. Il concetto di bit è stato ed è, tutt’ora, il cardine dell’elettronica digitale.

Feyman per primo ha suggerito un possibile “upgrade” del concetto di bit nei primi anni ’80, proponendo una fantomatica fusione dell’informatica con la meccanica quantistica. Solo 20 anni più tardi IBM riuscrà a costruire il primo Computer quantistico con appena 7 (qu)bit, Nel 2013, invece, l’azienda D-Wave è riuscita a commercializzare un computer quantico.

(Credit: codexsprawl)

Probabilmente ci si potrebbe chiedere come sia possibile costruire un “upgrade” di un bit, e cosa sia veramente un qubit, e la risposta concettualmente è molto più semplice di quello che ci si potrebbe aspettare.

Un qubit è semplicemente un bit che può valere sia 0 che 1 contemporaneamente, come una sorta di interruttore magico che può essere sia acceso che spento contemporaneamente.

Sorprendente vero?

Eppure i computer quantistici lavorano proprio con questi qubit, e sono davvero bravi a farlo. Il più grande vantaggio che si può avere da un computer del genere è la velocità nel fare i calcoli in parallelo. Se i computer classici per compiere dei calcoli partendo da un 1 logico e rifarli partendo da uno 0 logico necessitano di due passaggi, con un computer quantistico no. Basta utilizzare un qubit che valga 0 ed 1 contemporaneamente ed in un solo passaggio svolge gli stessi conti che farebbe un pc classico in due passaggi.

Non è però tutto oro ciò che sembra, seppure, infatti, i computer quantistici offrono opportunità inimmaginabili in alcuni campi, in altri i bit classici rappresentano ancora la migliore scelta. Quindi forse, più che un “upgrade” del bit classico il qubit per adesso può solo essere considerato come il fratellino piccolo, ma già più intelligente.

Tutto dipende da come crescerà negli anni.

Editor: Federico Izzo, Ing. Fisico PoliTo, associato VISIONARI

VISIONARI è un’associazione non-profit che promuove l’utilizzo responsabile di scienza e tecnologia per il miglioramento della società. Per diventare socio, partecipare ai nostri eventi e attività, o fare una donazione, visita: https://visionari.org

Seguici su Facebook e Instagram per scoprire nuovi progetti innovativi.

--

--

ad astra
VISIONARI | Scienza e tecnologia al servizio delle persone

Per diventare socio, partecipare ai nostri eventi e attività, o fare una donazione visita: https://visionari.org