Skip to content
Stockfish 11 dans un 68020 et un 68040

Laboratoire · moteurs embarqués · septembre 2026 · mis à jour le 30 septembre

Stockfish 11 et Fruit 2.1 dans un 68020, un 68040 et un ARM : les moteurs légendaires dans le silicium légendaire

Le plus fort moteur à évaluation classique jamais écrit, logé dans les processeurs qui ont fait la gloire des Mephisto, des Macintosh et des Amiga. Pas de système d'exploitation, pas d'écran, pas de clavier : Stockfish seul face au processeur, dans une machine qui n'a jamais existé, recréée dans l'émulateur MAME. Le portage est fait, puis étendu : une troisième machine, à processeur ARM, et un second moteur, Fruit 2.1. Les premières mesures sont là, encore provisoires.

Deux légendes qui ne s'étaient jamais rencontrées

Janvier 2020

Stockfish 11

C'est le dernier Stockfish d'avant les réseaux de neurones, l'aboutissement de douze ans de travail collectif. Il descend de Glaurung, puis a été affiné par des milliers de contributeurs et des millions de parties d'essai sur le réseau Fishtest. Son évaluation est entièrement écrite à la main, terme par terme. Dès la version suivante, un réseau de neurones prenait le relais. Dans le laboratoire, lors du tournoi « Le chant du cygne de l'évaluation classique », il a écrasé l'élite de sa catégorie : 76,5 %, sans une seule défaite en 179 parties.
1984 · 1990

Motorola 68020 et 68040

Le 68020 a fait entrer la famille 68000 dans le vrai 32 bits. Il a animé le Macintosh II et l'Amiga 1200, et, dans le monde des échecs, les modules Mephisto Berlin Pro et la Fidelity Designer Mach IV. Le 68040 est l'aboutissement de la lignée : cache intégré, pipeline profond, unité de calcul flottant sur la puce. C'est le cœur des Macintosh Quadra, de l'Amiga 4000 et des stations NeXT. Pour toute une génération, ces puces ont incarné la puissance de calcul.

Trente à trente-cinq ans séparent le moteur de ces processeurs. Rien ne les destinait à se rencontrer : Stockfish est écrit pour les processeurs 64 bits actuels, qui calculent sur plusieurs cœurs à plusieurs gigahertz, avec des gigaoctets de mémoire. Le 68020 et le 68040 viennent d'une époque où quelques mégaoctets étaient un luxe et où l'on comptait en mégahertz.

Le programme le plus raffiné de l'ère classique, sur le matériel qui a porté les plus grandes machines d'échecs dédiées.

Pourquoi cette expérience

Le laboratoire poursuit depuis des mois une même question : dans les progrès des échecs par ordinateur, quelle part revient au logiciel, quelle part au matériel ? Deux expériences ont déjà attaqué le problème par les deux bouts :

  • le logiciel seul : Stockfish 18 bridé à un nombre fixe de positions par coup, jusqu'à faire jeu égal avec un Mephisto Genius 68030 London à sa vitesse d'origine. L'équilibre se situe vers 1 000 positions par coup seulement ;
  • le matériel seul : les programmes d'origine des machines dédiées, intacts, mais émulés à grande vitesse, jusqu'à plus de 300 MHz équivalents pour le Saitek RISC 2500.

Il manquait l'expérience la plus directe de toutes. On prend le moteur moderne, on ne le bride par aucun artifice et on ne lui accorde aucune vitesse moderne : on le place sur le processeur même des machines d'époque. Stockfish 11 sur un 68020, c'est le programme de 2020 dans les conditions matérielles d'un Mephisto Berlin Pro. Il se retrouve à armes égales avec le programme de Richard Lang, sur le même terrain.

Une machine qui n'a jamais existé

Les machines d'échecs du paquet CB-Emu sont des reproductions fidèles : processeur, mémoire morte, clavier, afficheur, échiquier à capteurs. Pour parler UCI, elles ont besoin d'un module qui « appuie » sur leurs touches et lit leurs diodes. Pour Stockfish, rien de tout cela n'a de sens : il ne lit pas un échiquier, il parle UCI.

D'où le parti pris du portage : créer dans MAME deux machines entièrement nouvelles, réduites à l'essentiel. On y trouve un processeur, 68020 pour l'une, 68040 pour l'autre, de la mémoire, et un port série, le même type de liaison qui servait jadis à relier un ordinateur à son terminal. Il n'y a ni clavier, ni écran, ni échiquier. Stockfish y démarre « à nu », sans système d'exploitation, et dialogue en UCI par ce port série. De l'autre côté, un relais transmet les commandes de Banksia ou de cutechess, exactement comme pour n'importe quel moteur. Une troisième machine, à processeur ARM, a rejoint les deux premières (voir plus bas).

Banksia / cutechess interface de tournoi Relais UCI sur le PC série MAME · machine créée pour l'occasion 68020 ou 68040 Mémoire programme + tables Stockfish 11 sans système UCI sur série

Pas de module de pilotage ni de lecture d'afficheur : le moteur lui-même parle UCI, directement depuis le processeur émulé.

Ce que ce portage a de vertigineux

Faire tourner Stockfish sur un PC est trivial. Le faire tourner sur un 68020 nu, c'est lui retirer tout ce qu'il tient pour acquis :

  1. Plus de système d'exploitation. Ni fichiers, ni fils d'exécution, ni horloge système, ni console. Tout ce que Stockfish demandait à Windows ou à Linux doit être fourni par un code de démarrage minimal : la mémoire, le temps qui passe, l'entrée et la sortie du texte UCI.
  2. Plus de 64 bits. Stockfish représente l'échiquier par des « bitboards » de 64 bits, un bit par case, manipulés d'un seul coup par un processeur moderne. Le 68020 et le 68040 travaillent en 32 bits : chaque opération sur l'échiquier doit être découpée en deux moitiés.
  3. Un monde à l'envers. La famille 68000 range les octets dans l'ordre inverse de celui des PC (big-endian). Le code doit produire exactement les mêmes calculs sur une architecture qui lit la mémoire dans l'autre sens.
  4. Un seul cœur, peu de mémoire. Les recherches parallèles de Stockfish n'ont plus d'objet ; sa table de transposition doit tenir dans la mémoire d'une machine d'époque.
  5. Un matériel inventé. Aucune machine réelle ne correspond : il a fallu écrire la description de ces deux machines dans MAME, leur carte mémoire et leur port série, puis vérifier que le moteur y démarre et y joue.

Au bout du chemin, Stockfish 11 répond uciok depuis un processeur de 1984, reçoit une position, réfléchit et rend son coup. C'est l'algorithme de Stockfish 11 et son évaluation classique qui tournent désormais sur le silicium des années 1980.

Ce qui est fait Trois machines émulées : 68020 (avec coprocesseur 68881) à 16 MHz, 68040 à 40 MHz, ARM9 à 30 MHz. Deux moteurs embarqués dans chacune, Stockfish 11 et Fruit 2.1, sans système d'exploitation ; dialogue UCI par port série, relayé vers Banksia et cutechess. Six moteurs en tout.

Une troisième machine : l'ARM9 à 30 MHz

La famille 68000 n'a pas été la seule à équiper les machines d'échecs de haut de gamme. Au début des années 1990, les processeurs ARM ont pris le relais : ARM2 dans le Saitek RISC 2500, ARM6 à 30 MHz dans la TASC R30 dès 1993. D'où une sœur ARM des deux machines 68k, avec les mêmes périphériques, le même port série, le même protocole et le même mode de chargement du moteur. Seul le processeur change, et c'est précisément l'intérêt : comparer le même moteur sur deux familles de processeurs de la même époque.

  • Le processeur : un ARM9 (jeu d'instructions ARMv5TE) cadencé à 30 MHz, la fréquence de la TASC R30. L'ARM7TDMI visé au départ a été écarté : la bibliothèque standard du compilateur utilise une instruction qu'il ne connaît pas, exactement comme le coprocesseur 68881 s'était imposé pour les machines 68k.
  • La mémoire : 1 Mo de mémoire morte pour le moteur, 32 Mo de mémoire vive, comme les machines 68k.
  • L'ordre des octets : petit-boutiste, comme un PC, à l'inverse des 68020 et 68040.

L'ARMv5 apporte surtout deux instructions précieuses pour un moteur d'échecs : CLZ, qui trouve le premier bit d'un mot en une seule instruction, l'opération la plus appelée d'un moteur à bitboards, et UMULL, la multiplication longue, utile aux « nombres magiques » qui servent à calculer les coups des pièces à longue portée. Sur le papier, l'ARM9 est mieux armé que le 68020 pour ce travail.

Un second moteur : Fruit 2.1

Fruit 2.1, de Fabien Letouzey, date de 2005. C'est l'autre grand moteur à évaluation classique du laboratoire : sur PC, il figure dans la liste à 2723 Elo. Il a été embarqué sur les trois mêmes machines, avec la même méthode. Sa conception diffère de celle de Stockfish sur un point qui compte ici : Fruit ne représente pas l'échiquier par des bitboards de 64 bits mais par un simple tableau de cases. Il échappe donc au surcoût des processeurs 32 bits, et calcule plus de positions par seconde que Stockfish sur la même puce. Reste à savoir ce que ces positions valent.

La grande inconnue : sa force

Combien vaut Stockfish 11 privé de ses gigahertz ? Personne ne le sait. Les indices dont on dispose tirent dans des directions opposées :

  • Son intelligence par position calculée est immense. Stockfish 18 égale le Genius 68030 London en ne calculant qu'environ 1 000 positions par coup. Stockfish 11 n'a pas le réseau de neurones de son successeur, mais sa recherche est d'une sélectivité que les programmes de 1990 n'imaginaient pas.
  • Son code est écrit pour un autre monde. Chaque opération sur ses bitboards de 64 bits coûte double sur un processeur 32 bits. Son évaluation détaillée, taillée pour des processeurs modernes, pèse lourd à chaque position. Un programme conçu dès l'origine pour le 68020, comme celui du Berlin Pro, tire de chaque cycle un rendement que Stockfish n'a jamais eu besoin de chercher.

Le face-à-face est d'autant plus fascinant que les repères sont là, dans la liste du laboratoire, à vitesse d'origine :

Machine d'époqueProcesseurCote du laboratoire
Mephisto Genius 68030 London680302363
Mephisto Berlin Pro 68020680202315
Fidelity Designer Mach IV680202090
Mephisto Berlin 68000680002135

Stockfish 11 sur 68020 battra-t-il le Berlin Pro, écrit par Richard Lang pour ce même processeur ? Le 68040 le propulsera-t-il au-delà du London, le roi des machines Mephisto ? Ou bien trente ans de progrès logiciel se heurteront-ils au mur des mégahertz ? C'est la question que les parties vont trancher.

Pour la première fois, le logiciel de 2020 et celui de 1990 vont s'affronter sur le même silicium.

Le protocole de mesure

La mesure suit les règles du laboratoire, pour que les chiffres se placent directement sur la liste calibrée :

  • les six moteurs embarqués tournent à la vitesse du processeur émulé, comme les machines d'époque auxquelles on les compare ;
  • cadence du laboratoire, 60 coups en 15 minutes, ouvertures du livre Perfect 2023 ;
  • gauntlets face aux machines dédiées de la liste, puis face aux moteurs PC classés si la force l'exige ;
  • calcul des cotes avec les adversaires à cote fixe, marges d'erreur à l'appui ; les parties perdues au temps et les incidents techniques sont écartés.

Premières mesures

Avant les gauntlets, un tournoi de contrôle a réuni les six moteurs embarqués et cinq machines CB-Emu : Genius 68030 London, Berlin Pro 68020, RISC II, RISC 2500 et Star Diamond. Chacun a joué chacun des autres en quatre parties, soit 220 parties sous Banksia. Les moteurs embarqués jouaient à 60 coups en 15 minutes ; les machines CB-Emu à leur propre niveau d'environ 15 secondes par coup.

Vitesse de calcul

Valeurs médianes relevées dans les parties de ce tournoi (positions par seconde et profondeur annoncées par les moteurs) :

MachineStockfish 11Fruit 2.1
68020 + 68881 · 16 MHz580 pos/s · prof. 101 070 pos/s · prof. 5
68040 · 40 MHz1 570 pos/s · prof. 112 730 pos/s · prof. 6
ARM9 · 30 MHz3 540 pos/s · prof. 136 550 pos/s · prof. 7

L'ARM9 à 30 MHz calcule environ 6 fois plus vite que le 68020 à 16 MHz, et le 68040 environ 2,6 à 2,7 fois plus vite, pour les deux moteurs. Fruit calcule 1,7 à 1,9 fois plus de positions que Stockfish sur la même puce, mais Stockfish va nettement plus profond dans le même temps.

Cotes provisoires

Les 52 parties perdues au temps ont été écartées, dont 31 par le Star Diamond ; il reste 168 parties. Les cinq machines CB-Emu gardent leur cote du laboratoire, et celles des six moteurs embarqués en sont déduites.

MoteurCote provisoireMarge (95 %)Score
Stockfish 11 · ARM9 30 MHz2878± 24033,5 / 36
Stockfish 11 · 68040 40 MHz2755± 19731 / 36
Stockfish 11 · 68020 16 MHz2431± 14318,5 / 33
Mephisto Genius 68030 London2363fixe16,5 / 35
Fruit 2.1 · ARM9 30 MHz2345± 13217 / 36
Mephisto Berlin Pro 680202315fixe14 / 32
Fruit 2.1 · 68040 40 MHz2309± 15211 / 28
Mephisto RISC II2266fixe14,5 / 32
Saitek RISC 25002247fixe5,5 / 32
Novag Star Diamond2226fixe4 / 7
Fruit 2.1 · 68020 16 MHz1970± 2302,5 / 29

Deux constats ressortent déjà, marges comprises. Sur le processeur même du Berlin Pro, Stockfish 11 a remporté ses quatre parties contre lui (4 / 4). Et sur chaque machine, Stockfish devance Fruit d'environ 450 à 530 points : la profondeur de recherche l'emporte sur le nombre de positions.

Chiffres provisoires Ces cotes reposent sur 28 à 36 parties par moteur, avec des marges de 130 à 240 points, et les machines CB-Emu y jouaient à niveau fixe. Elles donnent un ordre de grandeur, pas une place définitive dans la liste. Les gauntlets en cours, à 60 coups en 15 minutes face aux adversaires classés de la liste, les remplaceront.
À suivre Les résultats des gauntlets de Stockfish 11 et de Fruit 2.1 sur 68020, 68040 et ARM9 feront l'objet d'une mise à jour, avec la cote définitive de chacun et sa place parmi les machines dédiées et les moteurs PC de la liste.

chess.lumn.eu · laboratoire de calibration · 29 septembre 2026 · mis à jour le 30 septembre 2026