Supercon 2023 : explorer l’élégance du Voja4

Lorsque vous concevez un badge électronique, l'objectif est de créer un appareil intéressant et suffisamment profond pour garder vos participants engagés pendant toute la durée de l'événement, mais pas si compliqué qu'ils ne puissent pas le maîtriser avant de devoir rentrer chez eux. . C'est un équilibre difficile à trouver, et à vrai dire, tous les badges Supercon n'ont pas réussi à atterrir à cet égard.

Mais si vous avez vraiment bien fait les choses, vous créerez un matériel qui parviendra à survivre à l'événement pour lequel il a été conçu. Un badge que les participants continuent d’explorer pendant des mois, voire des années. Si l'exposé « Inside the Voja4 » de Nathan Jones est une indication, nous pensons qu'il est prudent de dire que cet objectif a été atteint avec le badge Supercon 2022.

Au cours de cette présentation de quarante minutes, Nathan explique ce qui rend le badge 4 bits si fascinant d'un point de vue technique et comment il pourrait théoriquement être étendu pour accomplir des tâches bien plus complexes qu'on pourrait le croire à première vue.

Suivre les instructions

L'essentiel de la présentation de Nathan porte sur l'architecture du Voja4, ou plus précisément sur l'architecture utilisée par le processeur 4 bits émulé qui réside à l'intérieur du microcontrôleur PIC24 du badge. Le processeur émulé n'est basé sur rien de ce qui a jamais existé dans le monde réel : il est sorti directement de l'imagination du concepteur de badges Voja Antonić. Mais cela ne veut pas non plus dire qu’il s’agit d’une création fantaisiste. Nathan explique comment il se compare aux architectures de processeur plus traditionnelles et explique les raisons de son écart par rapport aux normes.

Si le but du Voja4 était simplement d'amener les gens à écrire du code pour du matériel vintage, nous aurions pu simplement mettre un 6502 sur la chose et l'arrêter. Mais dans ce cas, l’utilisateur aurait simplement trouvé un code 6502 sur Internet, l’aurait exécuté sur le badge, puis aurait rapidement oublié tout cela. Au lieu de cela, l'objectif était de familiariser les participants avec l'idée de la programmation nue et les joies de pouvoir réellement comprendre ce que fait l'ordinateur à chaque étape.

En gardant à l’esprit le niveau idéal de complexité des badges, il était nécessaire de créer un processeur utilisant un jeu d’instructions considérablement réduit. À court terme, cela rend la programmation du badge en assemblage plus facile que s'il avait utilisé un « vrai » CPU. D’un autre côté, cette austérité signifie que votre code final pourrait s’avérer plus long et plus compliqué que ce qui est strictement nécessaire. Comme le dit Nathan, ce serait bien d'avoir une instruction de multiplication intégrée, mais cela ne veut pas dire que vous ne pouvez pas la contourner.

Contrairement à presque tout ce que les participants auraient probablement pu expérimenter, le Voja4 utilise une longueur d'instruction de 12 bits. Au sein de ces 12 bits, qui correspondaient à 12 boutons physiques et LED sur le devant du badge, vous pouviez exprimer à la fois l'opcode et jusqu'à deux opérandes. À première vue, cela semblerait vous limiter à seulement 16 opcodes possibles, mais en concevant certains opcodes de manière à ce qu'ils ne nécessitent qu'un seul opérande, Voja a pu doubler ce nombre.

Par rapport à d'autres architectures, qui peuvent vous lancer dans une boucle avec des éléments tels que des longueurs d'instructions variables, cela permet de comprendre beaucoup plus facilement ce qui se passe pendant chaque cycle sur le Voja4.

Limité par l'imagination… et la RAM

En regardant le Voja4 et ses spécifications, vous pourriez naturellement supposer qu'il ne s'agit que d'une nouveauté informatique. Mais Nathan soutient que le jeu d'instructions, bien que limité, est suffisamment complet pour qu'aucune tâche ne puisse être exécutée – en supposant que vous ayez du temps à consacrer. Il cite des exemples de personnes exécutant Linux sur des puces 8 bits comme l'ATmega1284P, qui peuvent prendre des heures rien que pour démarrer à l'invite de connexion.

Cela dit, il manque techniquement encore un élément : plus de mémoire. Le Voja4, tel qu'il a été conçu, ne peut pas adresser suffisamment de mémoire pour rendre quelque chose comme ça possible, mais à la fin de son exposé, Nathan propose quelques modifications hypothétiques qui pourraient être apportées pour permettre au badge d'adresser la mémoire externe via le port série.

Encore une fois, la patience serait de mise avec un tel arrangement. Mais si on lui donnait toute la mémoire qu'il peut gérer et suffisamment de temps pour la parcourir, la seule limitation restante du Voja4 serait dans l'imagination de l'utilisateur. Bien que nous ne nous attendions pas à ce que quiconque démarre Linux avec comme il l'a fait sur le badge FPGA 2019, nous aimerions voir quelqu'un essayer d'étendre la mémoire du Voja4 et vraiment repousser les limites de ce qu'il peut faire. Peut-être pour la Supercon 2024 ?

François Zipponi
Je suis François Zipponi, éditorialiste pour le site 10-raisons.fr. J'ai commencé ma carrière de journaliste en 2004, et j'ai travaillé pour plusieurs médias français, dont le Monde et Libération. En 2016, j'ai rejoint 10-raisons.fr, un site innovant proposant des articles sous la forme « 10 raisons de... ». En tant qu'éditorialiste, je me suis engagé à fournir un contenu original et pertinent, abordant des sujets variés tels que la politique, l'économie, les sciences, l'histoire, etc. Je m'efforce de toujours traiter les sujets de façon objective et impartiale. Mes articles sont régulièrement partagés sur les réseaux sociaux et j'interviens dans des conférences et des tables rondes autour des thèmes abordés sur 10-raisons.fr.