DIGITAL
FPTA
62
- ELETTRONICA OGGI 439 - SETTEMBRE 2014
Logiche programmabili evolutive
L
a crescente complessità dell’elaborazione grafica in
tempo reale è la principale causa che costringe i pro-
gettisti a migliorare continuamente i propri sistemi per
ottenere la velocità di calcolo più adeguata, anche se ciò
implica un irrigidimento funzionale dei circuiti sul silicio.
Questo però ne circoscrive l’utilizzo a un numero limitato di
applicazioni sminuendo la versatilità e il riutilizzo, che sono
oggi due prerogative essenziali per conseguire la massima
redditività dei prodotti elettronici in rapporto all’elevato
costo medio dei loro cicli di sviluppo. Tuttavia, la ricerca
delle migliori prestazioni non può prescindere dalla possi-
bilità di riconfigurare le funzionalità operative, perché solo
così è possibile stare al passo con l’evolvere delle esigenze
applicative.
Protagoniste assolute di questa importante fase di sviluppo
delle tecnologie elettroniche sono le logiche programmabili,
perché nel loro ruolo di sistemi elementari capaci di offrire la
massima libertà di riconfigurazione hanno recentemente atti-
rato l’attenzione dei ricercatori sulla possibilità di utilizzarle
per realizzare i sistemi hardware evolutivi (EH, Evolvable Har-
dware). La principale peculiarità degli EH consiste nell’essere
autonomamente in grado di trasformarsi per adattarsi alle
condizioni operative e, quindi, decidere di modificare parzial-
mente ma sostanzialmente le proprie funzionalità, per offrire
prestazioni ottimizzate più efficaci al cambiare delle condizio-
ni al contorno ossia di tutti i segnali in ingresso e all’uscita.
Genetica hardware
L’impostazione è molto simile a quanto fatto di recente con
lo sviluppo degli algoritmi evolutivi (EA, Evolutionary Algo-
rithm) ossia del software esperto capace di generare autono-
mamente le subroutine occorrenti per elaborare nuove strin-
ghe di bit quando cambiano le regole da soddisfare. Per far
ciò sfruttano un motore di controllo che si occupa di calco-
lare continuamente un indicatore di “fitness”, o adeguatezza,
per ogni blocco funzionale che serve a misurare quanto esso
sia adeguato nell’eseguire la funzione che gli è assegnata. Se
l’indicatore scende sotto una soglia critica, il controllo genera
automaticamente delle subroutine alternative e le sostituisce
finché l’indicatore non torna a un livello accettabile. Si tratta,
in effetti, di un’impostazione perfetta per l’adattamento sulle
moderne logiche e idonea sia per i Field-Programmable Gate
Array sia per i Field-Programmable Analog Array e, a livello
inferiore, anche per i Field-Programmable Transistor Array
che sono alla base sia degli Fpga che degli Fpaa.
Per far evolvere un circuito realizzato come array di transistor
è necessario però realizzarlo con una dotazione inizialmente
ridondante, in modo tale che vi siano abbastanza transistor
inutilizzati, liberi da riconfigurare per definire nuove funzio-
nalità. Il motore di controllo deve, inoltre, monitorare conti-
nuamente l’adeguatezza delle funzionalità presenti, in modo
tale da decidere la riconfigurazione dei transistor oppure la
configurazione di quelli liberi, disegnando le parti circuitali
necessarie per far fronte alle esigenze operative deficitarie.
In realtà la richiesta di nuove prestazioni può avvenire anche
per il malfunzionamento di una qualsiasi area circuitale come,
per esempio, può succedere nei sistemi spaziali esposti a
radiazioni, dove la capacità di auto riparazione è fondamen-
tale. In pratica, può servire per dare maggior versatilità a tutti
i sistemi applicati e, per esempio, concedere loro la facoltà
di disegnarsi autonomamente le interfacce e gli I/O, nonché
configurarli in base alle esigenze applicative effettivamente
necessarie, evitando così di riempirli a priori di periferiche
che poi magari non servono.
Un sistema hardware evolutivo è perciò un sistema euristico
capace di accorgersi dell’inadeguatezza di una soluzione
e decidere come farla evolvere, sintetizzando una serie di
modifiche che la trasformano in una soluzione migliore. Sotto
quest’aspetto sono molte le somiglianze con l’evoluzione in
natura, laddove a sopravvivere e progredire sono le sequen-
ze di geni più adeguate alle condizioni ambientali ed è perciò
che gli algoritmi evolutivi sono spesso indicati come algoritmi
genetici (GA, Genetic Algorithm). Nel nostro caso i geni sono
gruppi di transistor che possono essere paragonati ai cro-
mosomi e a seconda della loro configurazione definiscono
gli elementi logici funzionali. Cambiando le associazioni fra
Lucio Pellizzari
I sistemi hardware possono evolvere per
adattare le proprie caratteristiche al mutare delle
condizioni applicative e gli array logici sono già
predisposti per iniziare questa nuova importante
fase evolutiva delle tecnologie elettroniche