L’Intel 8086, de 1978, manque un peu de puissance par rapport aux normes actuelles, étant une puce 16 bits fonctionnant jusqu’à 10 MHz. Cela n’a pas arrêté l’ingénieur basé au Canada Robin Grossetcependant, qui a trouvé un moyen d’en attacher un à un Raspberry Pi.
PC minimaliste, CPU 8086 + @Raspberry_Pi comme bus de données. pic.twitter.com/ACulnWQ1gI8 mars 2022
Anciennement d’IBM, et maintenant directeur technique de la société d’intelligence artificielle MindBridge, Grosset connaît bien une puce ou deux. Le Raspberry Pi 4 agit comme un bus de données, basculant l’horloge, traitant les requêtes du processeur et assurant la lecture et l’écriture dans la mémoire et les E/S, permettant à la puce 8086 d’exécuter MS-DOS. La puce est alimentée par la broche 3,3 V de la matrice GPIO du Pi – à laquelle elle est directement connectée – ce qui signifie que tous les processeurs 8086 ne fonctionneront pas, car les différents modèles nécessitent de 3 V à 7 V.
La puce en question est en fait un clone, le NEC V30, pin compatible avec l’Intel 8086 d’origine et utilisé dans le PDA Psion Series 3 de 1991 et la console de jeux Wonderswan. Le code fonctionne également avec l’Intel 8088, une variante du 8086 avec un bus de données 8 bits. Pour le moment, le 8086 ne fonctionne qu’à environ 0,3 MHz, lent même selon les normes de 1978, mais sa mémoire et ses disques durs sont rapides car ils sont fournis par le Pi.
« C’est un travail en cours et juste un peu amusant », nous a dit Grosset. « Le projet original a été créé par Elijah Miller. Je m’y suis intéressé parce que c’est un processeur connecté directement à l’en-tête Raspberry Pi, ce que je pensais être C’est rendu possible sans aucune autre puce d’interface de support, juste des liens de câblage directs.
Grosset a également travaillé sur un « pi6502 » alimenté par Raspberry Pi Zero 2 W qui a été fabriqué en attendant des pièces pour sa version 8086. « Pendant que j’attendais l’arrivée de mes processeurs 8086, j’ai testé un processeur 6502 et, avec quelques ajustements, j’ai pu atteindre 2,6 Mhz. Ce code est ici et implémente un Apple 1 très rapide », poursuit-il.
« Pour moi, c’est intéressant car vous devez déterminer la synchronisation du bus des puces du processeur et vous comprenez ce que fait le processeur à un niveau très détaillé. Le défi pour que cela fonctionne à pleine vitesse réside à la fois dans les problèmes de synchronisation du processeur et dans la création de code vraiment efficace pour exécuter les GPIO.
Le code de Grosset pour le HAT 8086, y compris la bibliothèque C qu’il a écrite pour l’interfaçage, est disponible sur GitHub, si vous avez votre propre 8086 et un penchant pour MS-DOS. Il existe cependant des alternatives.