L’ordinateur, calculateur universel
par Jean-Luc Dormoy
La loi de Moore repose sur la possibilité de construire des machines universelles pour le calcul, avec d’un côté une partie matérielle unique pour toutes les applications (lehardware, ou matériel en français) et de l’autre une spécialisation pour chaque application sous la forme d’un texte (le software, ou logiciel en français). C’est ce découpage technique qui a les conséquences économiques particulières permettant la loi de Moore.
La découverte de l’ordinateur : la machine universelle
Les principes de l’ordinateur ont été découverts dans les années 30 par des mathématiciens investis dans les fondements des mathématiques et de la logique. La théorie repose sur une double idée. Premièrement, on a pour la première fois un modèle général de ce qu’est une machine. Certains protagonistes de cette découverte iront même jusqu’à affirmer que ce modèle recouvre toute idée de procédure systématique (thèse de Church).
Deuxièmement, il existe certaines machines qui sont universelles : elles peuvent simuler le fonctionnement de n’importe quelle machine pourvu qu’on leur fournisse un texte ad hoc représentant celle-ci, c’est-à-dire un programme. Ce sont ces machines universelles que l’on appelle aujourd’hui ordinateurs. Si cette découverte scientifique majeure a été rendue possible par les travaux de Kurt Gödel, dont son fameux théorème d’incomplétude de 1931[1], c’est à Alan Turing que l’on doit l’idée de la mécanisation, de la machine universelle, et les résultats théoriques fondamentaux à ce sujet.
Pour ses acteurs, les conséquences de cette découverte ne font aucun doute. Toute activité matérielle ou humaine pouvant faire l’objet d’une définition procédurale précise pourra faire l’objet d’un programme, pourvu évidemment que l’on dispose d’une machine universelle.
A cause de la Seconde Guerre Mondiale, il n’a pas été possible dès sa découverte de mettre en route la construction d’un calculateur universel. Alan Turing sera néanmoins le grand architecte du projet abrité à Bletchley Park, qui a construit un calculateur spécifique adapté au décryptage des messages Enigma échangés entre les sous-marins allemands. On dit que les succès de Turing et de ses collègues ont été tellement importants qu’ils ont permis de rendre sûres les routes maritimes de l’Atlantique Nord, et ainsi de permettre le transfert des ressources des Etats-Unis en Europe, et en définitive pour les Alliés de gagner la Guerre. Mais ce calculateur était spécifique, non programmable.
Le calculateur universel considéré comme le premier par l’historiographie officielle sera construit sous l’autorité de John von Neumann aux Etats-Unis en 1945, l’ENIAC. Encore fallait-il reconfigurer certains circuits pour le reprogrammer.
En réalité, le premier ordinateur universel fut construit par un ingénieur aéronautique allemand solitaire, Konrad Zuse, dans le salon de son appartement à Berlin en 1943. C’était la quatrième machine d’une série, la Zuse IV, la première entièrement programmable, et qui mettait en œuvre une innovation importante, la représentation des nombres continus par mantisse et exposant. La Zuse IV fut, ironie de l’histoire, construite en utilisant des composants électroniques que Zuse récupérait sur les radars d’avions britanniques et américains abattus par la DCA. Fort heureusement, la création de Zuse n’a jamais intéressé les autorités nazies. Konrad Zuse a créé après la guerre en Allemagne une compagnie d’ordinateurs, qui a été rachetée par IBM au début des années 1960.
Qu’est-ce qu’une machine ?
Il faut en effet s’entendre sur le mot machine. Une acception du terme est : procédé construit par l’homme par lequel sa force est démultipliée. C’est la machine en tant que source d’énergie pour agir sur le monde matériel, son muscle. La machine à vapeur, le moteur à explosions ou électrique en sont des déclinaisons.
Un autre aspect est son contrôle, son système nerveux, son intelligence. Celui-ci était assuré le plus souvent par l’homme ou un mécanisme ad hoc. Par exemple, la régulation permettant au piston de la machine à vapeur de revenir à sa position d’origine était initialement assurée par un ouvrier. C’est seulement plus tard qu’on a eu l’idée d’utiliser le mouvement créé par le piston pour établir cette rétroaction, via un mécanisme ingénieux. Donc, même dans la machine à vapeur, pur « muscle mécanique », le contrôle est essentiel.
Le coût du contrôle
Avant l’ordinateur, le contrôle, l’intelligence, avaient le plus souvent été assurés par l’homme, ou dans quelques cas par des mécanismes analogiques ingénieux, souvent à base de leviers, de poulies, d’engrenages, de vannes. Par « contrôle », « intelligence », nous entendons ici un automatisme capable de commander une machine mécanique, énergétique, bref matérielle. L’informatique permettra de se rendre compte que l’ensemble des processus intellectuels sous-jacents à l’organisation de la société humaine relèvent également du « contrôle » ou de l’intelligence, et sont également susceptibles d’automatisation.
Mais essayons ici de nous placer dans l’état d’esprit d’un ingénieur d’avant toute informatique, qui souhaiterait mettre en œuvre un mécanisme mettant en œuvre un contrôle intelligent.
Il va lui falloir non seulement concevoir ce contrôle (quel contrôle veut-on, le « quoi »), mais aussi concevoir un artefact matériel qui le réalise (le « comment »). Or ce nouveau problème est probablement posé dans un nouveau contexte, et réclame donc une imagination et une créativité sur la spécification abstraite et probablement mathématisée du contrôle, mais également et surtout sur sa mise en œuvre. Ainsi, les mécanismes de contrôle dans une pendule, dans une usine ou dans un circuit électrique pourront avoir beaucoup de points communs en théorie, mais les petits engrenages de la pendule pourront s’avérer difficilement transposables.
En outre, il va falloir construire la réalisation matérielle du contrôle en autant d’exemplaires que nécessaire, ce qui va réclamer une certaine quantité de matière, d’énergie, et de travail humain.
Prenons désormais le même ingénieur après l’avènement de l’informatique. Avec l’ordinateur programmable, le contrôle n’a plus besoin de réalisation matérielle, ou, plus précisément, une machine universelle suffit pour n’importe quel contrôle, et donc pour le notre. Il « suffit » d’avoir écrit un programme réalisant ce contrôle. Bien sûr en pratique il faudra aussi probablement des capteurs et des actionneurs, mais eux aussi peuvent être génériques et indépendants du contrôle mis en œuvre.
C’est cette différence qui explique pourquoi la balance économique doit inéluctablement pencher en faveur de la machine universelle. Pour le prouver, résumons et formalisons les étapes de conception et de production du contrôle dans les deux situations précédentes, avant et après l’informatique.
Avant l’informatique, on a d’un côté la conception fonctionnelle (coût C1), la conception du mécanisme analogique la réalisant (C2) et la fabrication de ce mécanisme (coût unitaire C3). C1 et C2 ne dépendant pas du nombre d’exemplaires de l’automatisme de contrôle produits – c’est du capex – alors que C3 en dépend – c’est de l’opex.
Après l’informatique, on a la conception du programme, qui se résume à son écriture, et dont on peut estimer en première approximation qu’il a un coût C’1 + C’2[2] (spécification + mise en œuvre) équivalent à C1 + C2 ; plus pour chaque exemplaire du mécanisme de contrôle le coût unitaire d’une machine universelle (C0) – aujourd’hui par exemple un microprocesseur.
Au total, si l’on fabrique n unités de l’automatisme de contrôle, il faut comparer C1+C2+nC3 et C’1+C’2+nC0, c’est-à-dire si n est grand C3 et C0.
En réalité, l’informatique est déjà en situation favorable, car une installation aura sans doute de multiples mécanismes de contrôle, qui grâce à l’informatique moderne pourront être réalisés par des composants logiciels tournant sur une même et unique machine universelle
Mais la situation ne se résume pas à l’usine ou au processus dont notre ingénieur a la charge. La machine universelle est en effet là, disponible, pour tous les ingénieurs du monde ayant des problèmes similaires ou très différents. En principe, une seule machine universelle suffit pour tout le monde ! Bien sûr nous savons qu’il y a en réalité des adaptations aux multiples paramètres et contextes d’utilisation, néanmoins l’universalité est respectée dans une très large mesure.
En résumé, il faut donc comparer le coût de production de l’automatisme analogique particulier C3, et le coût de production d’une machine universelle C0 – pris sur l’ensemble du marché du moment des machines universelles.
Les plateaux de la balance
Aux débuts de l’informatique, le coût d’une machine universelle était suffisamment important pour laisser penser que la balance penchait en faveur des mécanismes analogiques. Mais c’était raisonner sur le court terme : une fois la production de masse de machines universelles assurée, son coût deviendrait tellement faible qu’il serait moindre que celui d’un seul élément de contrôle d’une installation, sans parler du contrôle de toute l’installation !
Cette évidence d’aujourd’hui, où on fabrique et vend environ 15 milliards de dispositifs de calcul élémentaires dans le monde (chiffres 2010), est encore souvent faussement appréciée : on peut naïvement penser qu’une machine « universelle » est nécessairement plus chère qu’une machine spécifique, au nom du fait que sa fonction est plus générale. Ce raisonnement local, centré sur une fonction particulière, ignore justement le gain de l’universalité, qui s’exprime globalement, toutes fonctions et toutes applications réunies.
Ou comme on dit en économie, le calcul est devenu une commodité.
Cela, les inventeurs de l’ordinateur l’avaient bien compris. Ils ont eu des difficultés énormes à faire partager cette idée, et il fallait effectivement trouver les voies d’une production de masse de machines universelles. Mais, une fois la production à faible coût de machines universelles assurée, la balance économique pencherait inéluctablement en faveur du contrôle logique, parce que l’on échange de la production en « petite série » de contrôle analogique C3 contre de la « grande série » de machines universelles C0. Et justement parce qu’il est machine universelle, l’ordinateur convient à tous les contrôles, dans toutes les branches. Difficile d’imaginer plus grande série.
On peut même voir les choses autrement. Le coût C0 de la machine universelle tendant vers zéro, en passant de l’analogique au digital, on transfère un effort de production de matière et d’énergie répété n fois en un unique effort de production de texte. Donc, même pour une « petite » application, l’informatique l’emportera. Ou, si l’on veut, l’avantage de l’informatique sera une loi de plus en plus micro-économique.
Conclusion : l’informatique doit envahir tous les domaines relevant sous une forme ou une autre de l’intelligence, à partir du moment où le coût de la machine universelle est suffisamment faible. 74 ans après la parution de l’article fondateur d’Alan Turing, et depuis lors, c’est ce que nous vivons.
Nota: Il demeure comme nous le verrons des applications spécifiques d’intelligence ou de calcul susceptibles de grande série. C’était par exemple jusqu’à récemment le cas de systèmes de codage et décodage d’images dans des systèmes multimédia portables ou grand public, c’est le cas aujourd’hui des capteurs intelligents mis en œuvre sous forme de microsystèmes. Dans ce cas, un circuit spécialisé, produit en très grande série (aujourd’hui plusieurs dizaines ou centaines de millions d’exemplaires) peut s’avérer compétitif. Il peut même l’emporter sur un processeur générique équipé du logiciel ad hoc. Mais cette situation n’est que provisoire, à la limite de ce que le marché autorise comme nouvelle application grâce à la baisse des coûts du calcul.
L’important est que l’impetus fondamental pour les progrès de la production de composants de calcul est fourni par les besoins en composants de calcul universels. Nous reviendrons en le détaillant sur ces transitions entre machines spécifiques et universelles à l’ouverture d’un nouveau marché applicatif de masse.
[1] Ce théorème porte sur le fondement des mathématiques, et énonce qu’il existe dans toute théorie non contradictoire et suffisamment expressive des énoncés vrais mais non démontrables. En outre, il est impossible de prouver que l’arithmétique est non contradictoire.
[2] En réalité, C’2 est beaucoup plus faible que C2, ou alors permet des services beaucoup plus sophistiqués.
Moore’s Law and the Future of [Technology] Economy de Jean-Luc Dormoy est mis à disposition selon les termes de la licence Creative Commons Attribution – Pas d’Utilisation Commerciale – Partage à l’Identique 3.0 non transposé.
Basé(e) sur une oeuvre à mooreslawblog.com.