Accueil du site > Vie de la recherche > Actualités scientifiques




Recherchez sur ce site


Programmer le matériel : contributions du langage Esterel de Gérard Berry

A l’origine cloisonnés, les développements du logiciel et du matériel se rejoignent dans les années 1980. La loi de Moore, donc l’augmentation de la taille des circuits, et aussi le coût des erreurs imposent vite l’automatisation de la conception et de la fabrication du matériel. Professeur au Département d’Informatique de l’École Normale Supérieure (DI ENS, CNRS/Inria/ENS Paris), Jean Vuillemin revient sur l’évolution des recherches et des connaissances, et sur les contributions du langage Esterel de Gérard Berry à ce domaine.

Cet article est publié dans le cadre de notre série consacrée aux travaux de Gérard Berry, lauréat de la médaille d’or du CNRS en 2014.

Quelles sont les différences entre logiciel et matériel ?

Jean Vuillemin : Tout système informatique combine logiciel (1) et matériel (2). Le défi est d’intégrer les deux au niveau idéal de performance, mais sans erreur : ni logicielle, ni matérielle, ni dans l’interface.

Aux États-Unis, l’informatique est issue de deux disciplines bien différentes. A l’origine, les départements Computer Science (CS) étudiaient les algorithmes, la programmation et le logiciel. Les départements Electrical Engineering (EE) développaient les transistors, les circuits et le matériel. En 1976, Berkeley fusionne ses deux départements en EECS, dont la taille dépasse alors celle des départements de Physique et de Mathématiques. Les chercheurs de Berkeley deviennent les leaders mondiaux, de la simulation électrique à la synthèse de portes logiques et de circuits. Deux des startups de Berkeley dominent depuis le marché de la CAO (3) des circuits, et EECS en reçoit moult royalties.

Pourquoi avez-vous travaillé sur les circuits ?

J.V. : Je voulais comprendre les limites du calcul arithmétique. Comment additionner ou multiplier au mieux nos entiers ? Alors que CS me donnait les limites théoriques, EE et ses circuits me donnaient ses limites pratiques – pour un nombre donné de transistors par puce. J’ai alors conçu, et réalisé, avec beaucoup d’aides, divers circuits et algorithmes d’addition et de multiplication, chacun visant à établir un record de performance. Certaines de ces tentatives ont été couronnées de succès et ont été publiées mais beaucoup furent des désastres : nous avons « réussi » à faire un court-circuit entre l’alimentation et la terre, une horloge plus lente que le circuit à mesurer… Après trop d’années de travail perdues, je me jure en 1985 de ne plus jamais réaliser un circuit VLSI (4).

Pourtant l’apparition des FPGA (5) me fait changer d’avis dès 1986. C’est un circuit intégré qu’on peut programmer après sa fabrication, et son achat, et qu’on peut configurer en décidant de la fonction et du routage spécifique de chaque block. Fort de divers records de vitesse sur la multiplication FPGA, je rejoins l’industrie à Paris Research Laboratory (PRL) (6). Nos techniques d’alors livrent la synthèse automatique de chemins de données réguliers. Notre groupe obtient des records absolus de vitesse sur la cryptographie RSA et divers autres sujets. Nos applications sont toutes synthétisées automatiquement - avec répétitions dans le chemin des données. La synthèse du contrôle de ces applications représente encore trop d’efforts et de code vu leur contribution à la surface du circuit final.

J’invite alors Gérard Berry comme consultant à PRL. C’est là qu’il développe et valide le premier compilateur de langage Esterel vers du hardware, en l’occurrence des FPGA. Pour la première fois, le circuit est entièrement décrit par un code source unique, mis au point comme tout logiciel avancé, et automatiquement compilé vers un matériel rigoureusement conforme au code source. C’est là que Gérard Berry s’est convaincu qu’on pouvait synthétiser du hardware, de façon juste et efficace. Ce fut pour lui une direction toute aussi nouvelle que fructueuse.

Quels étaient les points forts du langage Esterel dans ce domaine ?

J.V. : Esterel apporte une solution élégante à la description et à la synthèse des parties de contrôle dans les circuits. Ce contrôle est de loin la partie la plus difficile à mettre au point, qu’il s’agisse de protocoles de communication ou de régulation de la consommation électrique. C’est aussi la source des erreurs les plus difficiles à chasser.

Le code source Esterel décrit rigoureusement le comportement du circuit, pour chaque porte logique et à chaque instant. Gérard Berry en profite pour coupler Esterel avec des outils de preuves. Il démontre ainsi automatiquement qu’avec son contrôleur d’ascenseur, la porte reste fermée quand la cabine bouge.

Quels sont les enjeux scientifiques actuels concernant la conception de circuits ?

J.V. : Un enjeu majeur est la sécurité de conception. Le coût d’une erreur dans beaucoup de systèmes est intolérable, en termes de vies humaines comme d’argent. Je laisse à Gérard Berry le plaisir de raconter ses célèbres histoires de bogues.

La complexité des systèmes augmente sans cesse, tant par le logiciel que le matériel. Chaque composant doit être sans erreur, et l’assemblage final parfait. L’enjeu du Co-design est de concevoir tous les composants matériels et logiciels et toutes leurs interactions pour en arriver là.

Un succès industriel marquant d’Esterel dans ce domaine est son adoption par Nokia et TI (7). Nokia concevait le logiciel de son futur téléphone et TI en réalisait les circuits. Les deux développements se faisaient en parallèle, et en 6 mois - time-to-market oblige ! - l’interface entre les deux mondes devait être rigoureusement spécifiée au temps 0. Toute erreur dans cette interface se reporte dans le produit. Après divers déboires, Nokia et TI adoptèrent Esterel pour spécifier leurs interfaces communes.

Retrouvez les autres articles de notre série :
- Programmer le matériel : contributions du langage Esterel de Gérard Berry (avec Jean Vuillemin)
- Gérard Berry et la preuve par ordinateur (avec Christine Paulin-Mohring)
- L’informatique au service de l’aéronautique : les contributions de Gérard Berry (avec Emmanuel Ledinot, et Gérard Ladier)
- L’ordinateur musicien : les apports du langage Esterel, conçu par Gérard Berry, à la musique mixte (avec Arshia Cont) (à venir)
- Gérard Berry et les neurosciences (avec Yves Frégnac et Sophie Denève)

Notes :
1. Software
2. Hardware
3. Conception assistée par ordinateur de circuits électroniques
4. Very-Large-Scale Integration
5. Field-Programmable Gate Array
6. Paris Research Laboratory, Digital Equipment Corporation
7. Texas Instruments