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.