Skip to content
Stockfish 11 dans un 68020 et un 68040

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

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 gauntlets sont joués : les six moteurs ont désormais leur cote mesurée. Deux nouveaux moteurs ont rejoint la machine ARM : Crafty 19.15 et Cray Blitz 49h. Et trois machines s'ajoutent, 486DX, Pentium et ARM9 à 300 MHz, avec Stockfish 11 et Cray Blitz 49h.

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 Six machines émulées : 68020 (avec coprocesseur 68881) à 16 MHz, 68040 à 40 MHz, ARM9 à 30 MHz, puis 486DX à 33 MHz, Pentium à 90 MHz et ARM9 à 300 MHz. Stockfish 11 et Fruit 2.1 sur les trois premières, plus Crafty 19.15 et Cray Blitz 49h sur l'ARM9 à 30 MHz ; Stockfish 11 et Cray Blitz 49h sur les trois dernières. Pas de système d'exploitation ; dialogue UCI par port série, relayé vers Banksia et cutechess. Quatorze moteurs en tout, dont six déjà classés.

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 à 2868 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.

Deux nouveaux venus sur l'ARM9 : Crafty 19.15 et Cray Blitz 49h

Robert Hyatt a écrit deux des programmes les plus marquants de l'histoire des échecs par ordinateur : Cray Blitz, champion du monde des ordinateurs en 1983 et 1986 sur les superordinateurs Cray, puis Crafty, son successeur libre. Les deux rejoignent la machine ARM9 à 30 MHz, avec la même méthode que Stockfish et Fruit : pas de système d'exploitation, dialogue UCI par le port série.

  • Crafty 19.15. Cette version ne parlait que le protocole xboard : l'UCI a été greffé dans le moteur lui-même, sans adaptateur.
  • Cray Blitz 49h. C'est le Fortran d'origine de Hyatt, la « septième révision majeure » datée du 9 décembre 1990. Il est compilé pour l'ARM avec des entiers de 64 bits, comme sur le Cray. Seule la fréquence de lecture de la pendule change : tous les 500 nœuds au lieu de 20 000, car 20 000 nœuds duraient une fraction de seconde sur un Cray et plus de cinq secondes à 30 MHz. Sa bibliothèque d'ouvertures est reconstruite à partir des 2 458 parties d'origine, limitées à leurs 22 premiers coups : 68 679 positions. Le niveau est réglable : pendule du GUI, secondes par coup fixes ou profondeur fixe.

Sur PC, Cray Blitz 4.9h figure dans la liste à 2543 Elo. Leurs cotes sur l'ARM9 restent à mesurer.

Trois machines de plus : 486DX, Pentium et ARM9 à 300 MHz

Même méthode, trois processeurs de plus :

Deux moteurs y sont embarqués : Stockfish 11, et Cray Blitz 49h, le programme de Robert Hyatt, champion du monde des ordinateurs en 1983 et 1986, dans sa révision du 9 décembre 1990. Leurs cotes sur ces trois machines restent à mesurer.

MAME, et QEMU pour aller plus vite

MAME émule chaque instruction fidèlement, mais il ne suit pas toujours le temps réel. Mesuré sur le PC MSI du laboratoire, il n'atteint que 0,72 fois la vitesse du 486DX 33 MHz, 0,29 fois celle du Pentium 90 MHz et 0,17 fois celle de l'ARM9 300 MHz.

Ces trois machines existent donc aussi sous QEMU, un émulateur qui traduit le code du processeur émulé en code du PC hôte et va beaucoup plus vite. Sur la machine de développement, QEMU tourne 6,5 fois plus vite que le vrai 486DX, 3,2 fois plus vite que le Pentium 90 et 1,2 fois plus vite que l'ARM9 300 MHz.

Pour que le moteur dispose du temps d'un vrai processeur, et non de celui du PC hôte, QEMU compte les instructions exécutées et en déduit l'heure de la machine. Le compte est étalonné sur MAME, machine par machine et moteur par moteur : on fait faire les mêmes recherches, aux mêmes nombres de positions, sous les deux émulateurs, et on ajuste QEMU jusqu'à ce que les durées coïncident. Après étalonnage, les durées sous QEMU et sous MAME diffèrent de moins de 1 %. Le relais retient ensuite chaque coup jusqu'à ce que le temps réel rejoigne le temps de la machine : la pendule du tournoi voit un vrai 486, un vrai Pentium ou un vrai ARM9 300 MHz.

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 IV680202079
Mephisto Berlin 68000680002120

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 ? Les parties ont tranché : les cotes mesurées figurent plus bas.

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.

Les cotes mesurées

Les gauntlets sont joués, à 60 coups en 15 minutes, face aux adversaires classés de la liste. Les six moteurs embarqués ont désormais leur cote dans le classement général, calculée par Ordo avec tous les autres moteurs du laboratoire.

MoteurMachineCotePartiesErreur
Stockfish 11ARM9 · 30 MHz2824338± 11
Stockfish 1168040 · 40 MHz2546279± 11
Stockfish 1168020 + 68881 · 16 MHz2383223± 13
Fruit 2.1ARM9 · 30 MHz231036± 33
Fruit 2.168040 · 40 MHz224028± 37
Fruit 2.168020 + 68881 · 16 MHz2043179± 14

Face aux machines d'époque

  • Sur 68020, Stockfish 11 (2383) devance de 68 points le Mephisto Berlin Pro 68020 (2315), écrit par Richard Lang pour ce même processeur. Il dépasse même le Genius 68030 London (2363), de 20 points.
  • Sur 68040, Stockfish 11 (2546) passe 183 points au-dessus du London, la meilleure machine dédiée de la liste. Il rejoint Cray Blitz 4.9h (2543) sur le Ryzen 9 ; Rebel 6.0, remonté à 2674 après recalibration, le devance désormais.
  • Sur ARM9 à 30 MHz, Stockfish 11 (2824) est au niveau de Fruit 2.1 sur Apple M1 Max (2833) et de Gandalf 5.1 sur Ryzen 9 (2833).
  • Fruit 2.1 sur 68020 (2043) se place entre la Fidelity Designer Mach III (2029) et la Mach IV (2079).

Stockfish contre Fruit

Sur chaque machine, Stockfish devance Fruit : de 340 points sur 68020, 306 sur 68040 et 514 sur ARM9. Fruit calcule pourtant 1,7 à 1,9 fois plus de positions par seconde ; la profondeur de recherche de Stockfish l'emporte. D'une machine à l'autre, Stockfish gagne 163 points du 68020 au 68040, puis 278 du 68040 à l'ARM9.

À consolider Fruit 2.1 sur 68040 et sur ARM9 n'a joué que 28 et 36 parties, avec des marges de 37 et 33 points. Les cotes de Stockfish 11, sur 223 à 338 parties, ont des marges de 11 à 13 points.

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 reposaient sur 28 à 36 parties par moteur, avec des marges de 130 à 240 points, et les machines CB-Emu y jouaient à niveau fixe. Les gauntlets les ont remplacées (voir « Les cotes mesurées ») : le tournoi de contrôle surestimait Stockfish 11 de 48 points sur 68020, 209 sur 68040 et 54 sur ARM9.
À suivre Les gauntlets de Crafty 19.15 et de Cray Blitz 49h sur ARM9, puis de Stockfish 11 et Cray Blitz 49h sur 486DX, Pentium et ARM9 à 300 MHz, donneront leurs cotes. Fruit 2.1 sur 68040 et sur ARM9 jouera davantage de parties pour resserrer ses marges.

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