Le processeur, (ou CPU, Central Processing Unit, « Unité centrale de traitement » en français) est le composant essentiel d'un ordinateur qui interprète les instructions et traite les données d'un programme.
Les parties essentielles d’un processeur sont :
Voici la comparaison des registres entre 32 et 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...
* 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.
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.
Un processeur double cœur ou dual core est un processeur équipé de deux cœurs (ou unités de calcul) qui travaillent en parallèle.
En effet, la puissance d'un processeur semble aujourd'hui limitée à une certaine fréquence, qu'il est difficile de dépasser sans hausse substantielle du coût de fabrication (en grand public, on trouve des processeurs standard de l'ordre de 3,2 Ghz). Après avoir atteint ce seuil critique dans l'évolution naturelle de la puissance des processeurs essentiellement basée sur la course aux gigahertz, les fondeurs AMD et Intel travaillent maintenant sur des processeurs plus sophistiqués. Ainsi, la puissance d'un processeur double cœur est l'ordre du double du processeur de référence.
La différence majeure entre les processeurs à double cœur et les ordinateurs utilisant plusieurs processeurs est qu'un processeur double cœur n'est en fait qu'un seul processeur, qui lui, finalement, contient deux cœurs avec un système de mise en commun, alors qu'un ordinateur biprocesseurs a deux processeurs distincts.
La technologie nommées multicœurs (multicore en anglais) permet d'assembler deux cœurs de processeurs côte-à-côte sur le silicium : le support (la connectique qui relie le processeur à la carte électronique) lui ne change pas. Certains éléments, comme par exemple l'antémémoire (la mémoire cache) peuvent être mis en commun. Les processeurs multicœurs sont cadencés à des fréquences inférieures à celle des monoprocesseurs, d'où une consommation et un dégagement de chaleur réduit. Prenons l'exemple d'un ordinateur biprocesseur où chaque processeur est cadencé à 3,6 Ghz. La puissance totale de la machine sera de 7,2 Ghz, moins quelques pourcents dûs aux latences diverses. Il est possible de remplacer, en utilisant exactement les mêmes supports, les deux processeurs précédents par leur équivalent multicœur. Ceux-ci pourront par exemple fonctionner à la fréquence de 2,8 Ghz. La machine résultante sera donc toujours dotée de deux processeurs, mais de quatre cœurs, la puissance de calcul étant maintenant de 4 × 2,8 soit 11,2 Ghz (auxquels, là aussi, il faut soustraire (deux fois) quelques pourcents). Associé à la technique de l'hyperthreading, cette technologie est en plein essor. On peut noter que Sun Microsystems étudie la construction de multicœurs en trois dimensions, c’est-à-dire avec une zone de recouvrement des deux cœurs (donc superposés) permettant de mettre en place des canaux de communication entre eux. Il est important de préciser que ces architectures ne sont intéressantes que pour les programmes qui se prètent simultanément aux deux techniques precitées (multicœurs et hyperthreading).