Processeurs : la guerre des jeux d’instructions

Mobilité

Cette semaine, nous revenons sur l’évolution des processeurs afin de faire le point, au tournant du millénaire, sur ce qui fait la différence entre deux espèces en voie de transformation, le CISC et le RISC. Si le modèle CISC est applicable aux PC, le modèle RISC est souvent raccroché aux Mac. Mais d’autres machines l’utilisent. Essai d’exposé d’une théorie évolutionniste des processeurs et prospective…

La guerre des jeux d’instruction (Instruction Sets) prend ses racines dans l’histoire de l’informatique. Comprendre la situation actuelle revient à faire un retour sur ce qui a marqué le secteur ces trente dernières années. C’est aussi attacher une importance toute particulière aux conditions du marché et pas seulement aux conditions scientifiques et techniques. Celles-ci ont en effet été influencées fortement par les besoins de compétitivité des firmes engagées. Ici, il convient de noter que ces firmes sont les mastodontes du secteur : IBM, Intel, Motorola ou Sun. A celles-ci, il faut ajouter des universités prestigieuses et des chercheurs géniaux, qui ont su faire évoluer les modèles sur lesquels l’informatique fonctionne.

Le lieu : les Etats-Unis. La période : années 60-70. Le problème : comment éviter la crise du logiciel que tous les analystes prédisent ?

Faciliter la vie du programmeur

Le coeur du dilemme qui a révolutionné l’informatique dans les années 70 se trouve bien là ! Tous les observateurs de l’époque sont d’accord : ils prédisent une crise grave due au coût croissant des logiciels. D’où l’idée de faire passer une partie de la complexité logicielle vers le matériel, afin de faciliter le travail des programmeurs, des compilateurs ou des assembleurs. Il faut préciser ici que les calculateurs de l’époque, ceux de grand-papa, sont programmés « à la main » dans le langage qui leur est propre. Conséquence : à chaque sortie de nouveau calculateur (plus puissant), il convient de développer des programmes « propriétaires ». L’idée qui germe alors dans les esprits des ingénieurs d’IBM est la suivante : pourquoi ne pas développer entre le langage de programmation « évolué » utilisé par l’homme et le processeur, une « interface » destinée à combler la faille sémantique et qui le traduirait en langage machine ! C’est la naissance de l’architecture à jeux d’instructions (Instruction Set Architecture), dont l’utilité n’a pas été remise en cause depuis. Les processeurs utilisant cette architecture commencent alors à sortir. L’architecture la plus répandue aujourd’hui pour les ordinateurs reste l’x86 d’Intel, qui suit l’architecture du 8080, le premier succès de la firme. Mais Motorola propose aussi le 6 800 qui sera suivi de la famille 68 000 (appelée aussi 68K).

Il faut bien avoir en tête que le choix de faire travailler plus la machine que les hommes est limité par les difficultés techniques de l’époque : la mémoire des ordinateurs est alors chère, la « mémoire secondaire » est lente, les compilateurs (processus permettant de transformer le programme pour qu’il soit compris par la machine) sont médiocres et les processeurs disposent de beaucoup moins de transistors qu’aujourd’hui. Leur intégration est restreinte. En reportant sur la machine une partie du travail du programmeur (en réalité toutes les tâches répétitives), on réussit entre autres choses à réduire les coûts de développements logiciels, à faciliter le débogage (la recherche d’erreurs de programmation), à améliorer les programmes et la forme compacte du code.

Le CISC règne en maître jusqu’à la fin des années 70

Les machines fonctionnant sur ce modèle font donc tourner des programmes dont la taille a été considérablement réduite, ce qui a pour conséquence d’utiliser moins de mémoire, de déboguer plus facilement et de compiler plus vite la production logicielle ! Voilà en résumé le modèle d’architecture qui va prévaloir et régner sans partage jusqu’à la fin des années 70. Ce modèle n’a alors pas de nom en particulier. Il s’agit de ce qu’on appellera plus tard l’architecture CISC (Complex Instruction Set Computer), qui se base sur les travaux de Von Neumann et sur le modèle développé par l’Université de Harvard. Demain, nous nous pencherons sur la façon dont fonctionne cette architecture pour comprendre ce qui la différencie du RISC (Reduced Instruction Set Computer).

Pour en savoir plus :

Un cours de base sur les architectures CISC et RISC