Cos’è un’architettura di computer a 1 bit, e quali sono i suoi usi?

Si potrebbe definire in molti modi, ma probabilmente il più appropriato è "ha un accumulatore a 1 bit".

Il Thinking Machines CM-2 è un esempio stupefacente di questo. Ha 65536 CPU a 1 bit organizzate come un'architettura "Single Instruction Multiple Data (SIMD)". Ogni CPU aveva un accumulatore a bit singolo, un bit di riporto, un bit di "condizione", un registro dati a bit singolo che teneva i dati che andavano e venivano dalla memoria, e un registro di indirizzo di memoria abbastanza grande usato per indirizzare una posizione di memoria nell'enorme quantità di RAM fornita dal CM-2.

Un singolo flusso di istruzioni veniva processato da tutte le CPU. Le operazioni includono tutte le varie cose che si possono fare con un accumulatore a 1 bit: azzerarlo, impostarlo a 1, completarlo, aggiungere il bit di dati all'accumulatore impostando l'accumulatore e calcolando il riporto, operazioni per spostare l'accumulatore al bit di dati in entrambe le direzioni, e un modo per impostare il bit di condizione. Ma era un insieme piuttosto piccolo di istruzioni. Una proprietà chiave è che un'istruzione broadcast sarebbe stata eseguita o meno in base allo stato del bit di condizione. Questo permetteva alle singole CPU di fare cose diverse anche se eseguivano lo stesso flusso di istruzioni, perché avrebbero elaborato dati diversi e quindi impostato il bit di condizione in modo diverso. Non ricordo come veniva impostato il registro degli indirizzi di memoria; mi aspetterei che una delle istruzioni lo incrementasse e decrementasse, e che altre istruzioni dicessero "fetch/store alla memoria".

Così, con il giusto flusso di istruzioni SIMD, si può codificare un'addizione intera seriale di bit, o un'addizione floating seriale di bit, o un'addizione floating point seriale di bit. Costava qualche centinaio di istruzioni SIMD sequenziali per fare questo per un valore in virgola mobile di 64 bit, ognuna delle quali correva a qualche decina di nanosecondi (ricordate, questo è un computer del 1990).

Questo significava che con 65K CPU, si perdeva un fattore di 200 circa per fare matematica. Ma questo significa che si aveva quello che equivaleva a 300 CPU che potevano fare la virgola mobile in parallelo. E questo rendeva il CM-2 piuttosto spettacolare per l'epoca.

Design geniale.

Non viene più prodotto, ma ci si chiede perché qualcuno non lo faccia in un chip da un miliardo di transistor. Probabilmente la risposta è "non c'è abbastanza larghezza di banda per la memoria".