Programmabilità … anche minima


Una moderna incarnazione della storica e primordiale Turing Machine. Al posto di nastri magnetici memorie ad accesso non necessariamente sequenziale, limite dei nastri magnetici dove farlo era lento e dispendioso. Ma rimane un Macchina di Turing in quanto coglie l’essenza di computer come lo aveva pensato Alan Turing, essenza che vive ancora oggi in circuiterie più complesse, ma prima presento questa complessità ridotta e minima, poi si può studiare sulle varie architetture cosiddette dei computers con il loro hardware programmabile col software.

Fase 1: Il puntatore di istruzione (IP, Instruction Pointer), seleziona quale istruzione leggere dalla memoria ROM di programma formato da una serie di istruzioni. L’istruzione corrente fluisce in 4 destinazioni che la scompongono: 2 che sono la sorgente e la destinazione di copia di bits di memoria, e 2 che sono i puntatori alle 2 possibili istruzioni successive, selezionate dal Path Selector (PS, selezionatore di percorso).

Fase 2: Avviene la copia del bit (parte di informazione) tra sorgente e destinazione. Questo può anche modificare il Program PS (Path selector), coi suoi effetti.

Fase 3: Viene aggiornata l’istruzione corrente mediante IP (Puntatore a istruzione). L’istruzione corrente specificamente consiste nella istruzione contenuta nella memoria ROM individuata dall’indirizzo del Puntatore a Istruzione, indirizzo contenuto nel Puntatore a Istruzione.

Nota: forse tra imprecisioni e varianti possibili di questo design le cose non sono esattamente così, ma con differenze.

Ecco mostrato come un programma viene eseguito, istruzione per istruzione, con ogni istruzione avente 2 possibili istruzioni prossime, con selezionatore di istruzione prossima, e con il nocciolo dell’istruzione che consiste nella copia di bits con 2 posizioni una come fonte da cui prelevare il dato, l’altra come specificazione del dove collocarlo. Muovendo bit si ha anche immissione ed emissione di informazioni, che possono così essere elaborate.

Con queste semplici istruzioni è possibile derivarne ogni altra essendo Turing Complete il design. Io ne ho derivate ad esempio istruzioni dell’algebra di George Boole per fare operazioni di somma e conteggio.

Una sua variante però potrebbe avere accesso indiretto alla memoria, ovvero con memorie in RAM contenenti indirizzi da cui leggere informazioni o scrivere informazioni, un pò come il PEEK & POKE nei sistemi BASIC. Ovviamente una Turing Machine classica a memoria su nastri magnetici avrebbe qualche problema a fare questo, anche se non sarebbe impossibile tecnicamente.


Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.