Qu’est-ce qu’une architecture informatique à 1 bit, et quelles sont ses utilisations ?


On pourrait la définir de nombreuses façons, mais la plus appropriée est probablement "possède un accumulateur à 1 bit".

Le Thinking Machines CM-2 en est un exemple étonnant. Il possède 65536 CPU à 1 bit organisés sous la forme d'une architecture "Single Instruction Multiple Data (SIMD)". Chaque CPU disposait d'un accumulateur à un seul bit, d'un bit de report, d'un bit de "condition", d'un registre de données à un seul bit qui contenait les données allant vers/venant de la mémoire, et d'un registre d'adresse mémoire assez grand utilisé pour adresser un emplacement mémoire dans l'énorme quantité de RAM fournie par le CM-2.


Un seul flux d'instructions était traité par tous les CPU. Les opérations comprennent toutes les différentes choses que vous pouvez faire à un accumulateur de 1 bit : le remettre à zéro, le mettre à 1, le compléter, ajouter le bit de données à l'accumulateur mettre l'accumulateur et calculer la retenue, les opérations pour déplacer l'accumulateur vers le bit de données dans l'une ou l'autre direction, et une façon de mettre le bit de condition. Mais il s'agissait d'un ensemble assez restreint d'instructions. Une propriété clé est qu'une instruction de diffusion est exécutée ou non en fonction de l'état du bit de condition. Cela permettait à des processeurs individuels de faire des choses différentes même s'ils exécutaient le même flux d'instructions, car ils traitaient des données différentes et mettaient donc le bit de condition différemment. Je ne me souviens pas de la façon dont le registre d'adresse mémoire était réglé ; je m'attendrais à ce qu'une des instructions l'incrémente et le décrémente, et à ce que d'autres instructions disent " fetch/store to memory ".


Donc, avec le bon flux d'instructions SIMD, vous pouvez coder un bit serial integer add, ou un bit serial floating add, ou un bit serial floating point add. Cela coûtait quelques centaines d'instructions SIMD séquentielles pour faire cela pour une valeur à virgule flottante de 64 bits, chacune s'exécutant à quelques dizaines de nanosecondes (rappelez-vous, il s'agit d'un ordinateur de 1990).

Ce que cela signifiait avec des CPU de 65K, vous perdiez un facteur de 200 environ pour faire des mathématiques. Mais cela signifie que vous aviez ce qui équivalait à 300 CPU qui pouvaient faire de la virgule flottante en parallèle. Et cela rendait le CM-2 assez spectaculaire pour l'époque.

Une conception géniale.

Il n'est plus fabriqué, mais on se demande pourquoi quelqu'un ne fait pas cela dans une puce à un milliard de transistors. Il est probable que la réponse soit "pas assez de bande passante vers la mémoire".

.