Fonctionnement & architecture des CPU (02/2000)

Depuis l’apparition du premier microprocesseur (Intel 4004) en 1972, la puissance des ordinateurs ne cesse de s’améliorer alors que leur taille est toujours plus réduite …

Le processeur (de l’anglais to process qui signifie traiter) est le cœur de votre ordinateur (cette image est souvent employée à cause de la similitude du battement du cœur et des « battements » du quartz des microprocesseurs définissant la fréquence de ceux-ci) mais aussi car il en constitue l’un des éléments indispensables.

Un processeur ne traite que des données numériques (c’est-à-dire une longue succession de 0 ou 1 (système binaire) qui correspond à une ou plusieurs instructions compréhensibles par le microprocesseur). Cependant, l’image du cerveau pour caractériser le processeur est un abus de langage car, en réalité, ce dernier se contente d’exécuter les instructions que l’on a programmées …
Mais revenons au processeur. Les premiers ordinateurs utilisaient des tubes à vide pour fonctionner puis des transistors à partir de 1947. Les microprocesseurs n’utilisent ni l’un, ni l’autre (les deux composants étant trop grands). En réalité, les microprocesseurs actuels utilisent des équivalents-transistors qui possèdent les mêmes caractéristiques que les transistors classiques mais qui sont beaucoup plus compacts. Ainsi, les fabricants de processeurs spécifiant des chiffres de plusieurs millions de transistors mentent : il s’agit en réalité de plusieurs millions d’équivalents transistors mais cette expression est devenue un abus de langage …
Le 4004 de Intel, premier CPU de l’histoire

Fonctionnement

Le microprocesseur peut être décomposé en quatre éléments principaux :

– une unité de gestion des bus qui se charge de l’arrivée et du renvoi des informations.
– une unité d’instruction qui s’occupe de lire les données transmises par l’unité de gestion puis de les envoyer à l’unité d’exécution après les avoir décodés.
– une unité d’exécution qui accomplit les tâches transmises par l’unité d’instruction.
– une horloge qui rythme le fonctionnement de ces deux unités (un cycle d’horloge
correspond à un « battement » du quartz du microprocesseur, ainsi, une fréquence de 300 MHz équivaut à 300 millions de cycles d’horloge par seconde).

Architecture
Les processeurs possèdent, de plus, une certaine architecture qui leur est propre, les rendant incompatibles entre eux. On peut citer les plus employés :

– les processeurs à architecture CISC (Complex Instruction Set Computer ou ordinateur à jeu complexe d’instructions) utilisés par tous les processeurs x86 fabriqués par Intel, AMD et Cyrix mais aussi IDT Centaur, Rise …
– les processeurs à architecture RISC (Reduced Instruction Set Computer ou ordinateur à jeu réduit d’instructions) utilisés désormais par les processeurs fabriqués par le duo Motorola et IBM (PowerPC).
– les processeurs à architecture VLIW (Very Long Instruction Word ou mot d’instructions très long) utilisés prochainement par les processeurs IA-64 fabriqués en collaboration par Intel et Hewlett-Packard.

Les CPU traitent de nombreux types d’instructions envoyées par le programme exécuté. Ces instructions sont d’une complexité variable : certaines peuvent êtres réalisés en un cycle d’horloge, d’autres demandent beaucoup plus de temps. Cet état de fait s’explique par le fait que les microprocesseurs intègrent un nombre limité d’instructions simples (addition, ET logique, OU logique…) qui sont directement câblées sur les circuits électroniques des puces. Cependant, il est impossible de câbler toutes les instructions complexes : le CPU serait irréalisable.
C’est de ce même constat qu’ont été créés les processeurs CISC et RISC, bien qu’ils utilisent une approche différente pour contourner ce problème.
Le CISC (Complex Instruction Set Computer) privilégie une solution basée sur le microprocesseur à l’inverse du RISC (Reduced Instruction Set Computer) qui s’en remet essentiellement à l’efficacité du programme et du compilateur.
Le processeur CISC, pour interpréter ces commandes complexes qui sont nécessaires au bon fonctionnement d’un ordinateur, intègre directement sur le silicium de la puce un nombre limité de micro-instructions (le microcode) auxquels viennent s’ajouter des circuits logiques permettant de lancer ces micro-instructions. En les combinant, celles-ci permettent de recréer n’importe quelle instruction complexe.
L’avantage de cette architecture est que les instructions sont gravées dans le processeur et ne demandent qu’une place très limitée en mémoire vive.

Cependant, elle possède un inconvénient majeur : elle monopolise une surface importante sur le silicium et fait donc augmenter, non seulement la taille du processeur, mais aussi son prix. De plus, les instructions complexes étant de taille variable, les processeurs CISC doivent avoir un contrôle du temps très précis et s’aligner sur les durées les plus longues. Et comme, les instructions complexes sont assez peu fréquentes, la vitesse de fonctionnement de l’ordinateur en est d’autant ralentie …

Le processeur RISC n’utilise pas de microcode. Pour exécuter ces instructions complexes, il utilise deux solutions complémentaires :

– il se base sur l’application qui doit remplacer la plupart des commandes complexes en une suite d’instructions simples directement exécutables, ce qui demande donc un gros travail de compilation.

– le reste des instructions complexes qui ne peuvent être remplacées par des commandes simples est tellement réduit que l’on peut leur consacrer à chacune un circuit spécifique directement câblé dans le silicium.

L’avantage de cette architecture vient du fait que les instructions câblées sont exécutées plus rapidement que les instructions micro codées. Ainsi, toutes les instructions, simples ou complexes peuvent être réalisées en un seul cycle d’horloge. De plus, la suppression des micro-instructions de la surface de silicium la réduit d’autant ce qui permet la baisse des coûts de fabrication.
Cependant, les applications fonctionnant sur architecture RISC, remplaçant les commandes complexes en instructions simples prennent une place importante en mémoire vive.
Malgré ses avantages technologiques sur la technologie CISC, les puces RISC n’ont pas su s’imposer. En effet, jusqu’à une époque assez proche, le prix de la mémoire vive était très élevé. Or, la technologie RISC demandant aux programmes de prendre en charge le remplacement de commandes complexes en instructions simples, cela nécessite une grande quantité de mémoire vive. C’est pourquoi elle n’a pas pu s’imposer sur la technologie CISC que la plupart des processeurs actuels utilisent.
Enfin, il existe un autre type d’architecture qu’aucun processeur « généraliste » actuellement disponible n’utilise. Cette architecture nommée VLIW (Very Long Instruction Word) décompose les instructions en très longs mots : par exemple, pour effectuer une opération, l’instruction comprendra les deux données ainsi que le type d’opération à effectuer (addition). Cette architecture devrait permettre d’atteindre des performances encore plus impressionnantes que les puces RISC tout en ayant une taille encore plus réduite.

Mode 32/64 bits
La plupart des processeurs actuels utilisés travaillent en mode 32 bits. Mais que signifie donc cette appellation ?
En fait, les donnés transmises aux processeurs sont évidemment en format binaire mais sont regroupées en un groupe de n bits, appelé un mot. Plus ce mot possède de bits (et donc d’octets) plus les données transmises sont nombreuses ce qui entraîne une augmentation des performances des CPU qui attendent beaucoup moins de temps les données.
La plupart des processeurs actuels acceptent donc des mots allant jusqu’à 4 octets (1 octet = 8 bits).
Les processeurs comme le futur Merced pourront traiter des mots allant jusqu’à 8 octets (64 bits), d’où plus d’instructions fournies pendant la même durée.
Cependant, le doublement de la bande passante d’un processeur entraîne un gros problème : il nécessite, en principe, le doublement de la bande passante du bus système du chipset.
En fait, cette obligation peut être contournée mais les performances seront moins bonnes …