taraskuzio.com

ENIAC, le premier FPGA ? - LinuxFr.org

Les employés de chez Xilinx aiment à raconter qu'ils sont les inventeurs du FPGA. Avec leurs glorieux XC2064 ils auraient été les inventeurs du concept et les premiers à en commercialiser.

Blueprint du XC2064
Deux ingénieurs de xilinx en plein placement-routage du XC2064 ?

En est-on si sûr ?

Tout d’abord revenons à la définition d’un FPGA :

Field Programmable Gate Array

Littéralement: Grille de portes programmable sur le champ.

Les FPGA sont des composants munis d’éléments logiques plus ou moins complexes dont les connexions ne sont pas figées. Les connexions peuvent être re-programmées pour modifier l’architecture électronique du système en fonction du besoin sans avoir à démonter l’appareil à chaque fois.

L’aspect programmable ne doit pas être vu dans le sens d’un programme que l’on télécharge dans une mémoire pour qu’il soit exécuté par un processeur. Non, le bon mot serait plutôt configurable ou re-câblable (quel beau mot) au besoin.

Dans un FPGA moderne, les blocs que l’on peut connecter sont des éléments logiques (LUT), des multiplexeurs, des multiplieurs, des additionneurs, les sérialiseurs/dé-sérialiseur (serdes) sans oublier les blocs de mémoires ram (BRAM). Des PLL viennent en renfort pour générer des horloges pour cadencer tout ce bazar.

Mapping du Gatemate A1
Plan du Gatemate A1 de Colognechip, les entrées sorties sont à la périphérie et les blocs logique au centre

Le « re-câblage » (on parle plutôt de configuration) est effectué en téléchargeant un fichier appelé bitstream dans la mémoire RAM ou flash du FPGA.

Mais alors revenons à l'ENIAC. Cette machine est considérée comme le premier ordinateur électronique. Quand on pense ordinateur vient tout de suite l’idée d’un processeur qui exécute des instructions enregistrées dans une mémoire.

Ça n’est pourtant pas le cas des débuts de l’ENIAC qui est conçu pour faire des calculs très rapidement, notamment pour calculer des tables de tir de missiles (pour tuer des gens). Et à chaque nouveau calcul il faut le re-câbler.

Les blocs que l’on peut connecter sont des multiplieurs, des additionneurs, des tables de fonctions (à roulettes) ainsi que des imprimantes et des lecteurs de cartes perforées pour les entrées/sorties.

Plan «mapping» de l’ENIAC
Plan de l’ENIAC, il y quelques similitudes avec un FPGA. Cependant les blocs sont à l’extérieur et le multiplexage et les entrées sorties se font au centre. (sources https://historyofinformation.com)

Pour re-câbler l’ENIAC point de bitstream mais des équipes de câbleuses qui reconfigurent la machine pour lancer un nouveau calcul histoire de faire péter une bombe plus fort (nucléaire) ou de bien atteindre la cible avec un canon.

Câbleuse en action
Câbleuses en pleine action, maintenant on télécharge un bitstream (source sigarch)

Mais, attendez, cette description ressemble furieusement à la description d’un FPGA non ?

Et oui, Xilinx n’a qu’à bien se tenir, le premier ordinateur électronique était également le premier FPGA de l’histoire. D’autres ont fait le lien également.

Peut-être pourrait-on l’inclure dans les outils de synthèse libre comme Yosys ?

Pas sûr.