A savoir sur les Processeurs
- A. La mémoire cache Un processeur possède une vitesse de fonctionnement vraiment supérieure à n’importe quel autre organe d’un ordinateur. Pour pouvoir correctement l’alimenter en calculs et données, il faut donc mettre à sa disposition une mémoire de proximité, la plus rapide possible. C’est ce rôle qui est dévolu à la mémoire cache. Jadis intégrée physiquement à proximité du processeur, elle est aujourd’hui souvent directement intégrée sur la même plaque silicium (aussi appelée « die ») que le(s) cœur(s) du processeur. Haut de page
- B. Deux subdivisions de mémoire cache Il existe principalement deux subdivisions de mémoire cache sur les processeurs grand public. La mémoire cache de niveau 1 (aussi appelée cache L1) qui est aux prises directement avec le(s) cœur(s) du processeur et la mémoire cache de niveau 2 (cache L2) qui pourvoit le cache L1 en données. Habituellement, le cache L2 est plus grand que le cache L1 et, la majorité du temps, il est également plus lent. Cette architecture en cascade répond à divers besoins et découle de nombreux choix et contraintes technologiques complexes qui nécessitent à eux seuls un texte dédié. Sachez toutefois que cette architecture en cascade comprend actuellement (pour le grand public) deux organisations distinctes : les caches L1 et L2 inclusifs et les caches L1 et L2 exclusifs. La première option traduit la présence dans le cache L1 d’une copie partielle des données présentes dans le cache L2, alors que le choix d’une architecture en cache exclusif assure que les données présentes dans le cache L1 ne le sont pas dans le cache L2. Haut de page
- C. Synchronisation de la mémoire cache et du processeur Aujourd’hui, la mémoire cache fonctionne la plupart du temps en mode synchrone avec le(s) cœur(s) du processeur, c’est-à-dire qu’ils fonctionnent à la même vitesse (fréquence en GHz). Leur organisation s’opère en général en xx-way associative ce qui correspond à un choix de découpage et d’adressage des zones mémoire (où xx est un nombre pair). De ces choix découle une foule de conséquences qui seraient trop longues à détailler ici. Sachez seulement que ces choix correspondent à des "besoins" différents et qu’il n’existe pas de choix meilleur que l’autre dans l’absolu. Haut de page
-
D.
Les registres
Il s’agit de la mémoire la plus intimement en interaction avec le cœur du processeur. Elle lui sert à lire et stocker directement les données entrées ou en sortie de calcul. Plus que cela, les registres sont souvent spécialisés dans un certain type de données/instructions comme le stockage ou la gestion de pointeurs, bien que certains gardent, pour des raisons de souplesse, une fonction générale.
Les registres sont plus ou moins étendus, mais, surtout, ils sont "codés" en xx bits. Ainsi, un processeur qui utilise des registres 32 bits est dit "processeur 32 bits" alors que les processeurs utilisant des registres 64 bits sont dits "processeurs 64 bits". Le principal impact aujourd’hui sur les machines grand public est la capacité du processeur à fonctionner avec plus de mémoire vive. Haut de page - E. Les unités de contrôle, de fetch et de décodage Le processeur dispose de nombreux organes dont ceux dédiés au contrôle, au fetch et au décodage. Schématiquement, l’unité de contrôle veille à ce que toute la machinerie du processeur soit bien coordonnée, en plus d’adresser, de rediriger et gérer les flux de communication entre le(s) cœur(s) d’exécution et les différents niveaux de mémoire (registres, cache L1 et L2) via le bus interne du processeur. L’opération de « fetch » fait partie de ses prérogatives et - comme nous le verrons un peu plus loin -, elle permet d’aller chercher les instructions et de charger en mémoire les données dont le processeur à besoin. Bien que leur rôle soit très différent de celui des unités de contrôle, les unités de décodage sont à présent incontournables. Leur nécessité vient de ce qu’aujourd’hui les instructions qui sont chargées à partir de la mémoire sont complexes et demandent à être redécoupées en lots plus petits et plus facilement traitables par les unités d’exécution du processeur. Le rôle de traduction et de découpage de l’unité d’exécution influe fortement sur la longueur du pipeline dans les processeurs à pipeline long. Le pipeline est assimilable à la chaîne de production d’une usine, mais pour le calcul, chaque étape marque une opération. La succession des opérations vise à mener à bien le calcul. Haut de page
-
F.
Les unités de calcul
Dans les processeurs modernes grand public, le cœur exécutant des processeurs s’incarne dans les unités de calcul. Elles sont la matérialisation physique d’une grande partie du pipeline de calcul.
On distingue principalement deux grandes familles d’unités de calcul : les unités de calcul arithmétique et logique (ALU) et les unités de calcul en virgule flottante.
Le premier type d’unité (ALU) permet d’effectuer les calculs sur les nombres entiers et les opérations de logique booléenne. Essentielles dans les calculs génériques comme ceux qu’exigent les logiciels de bureautique, l’intelligence artificielle ou les navigateurs internet, les unités de calcul ALU ont longtemps été l’enjeu principal dans la course aux performances et tendent à le redevenir avec la part de plus en plus grande des applications consommatrices d’intelligence artificielle. Notons que sur certains processeurs les unités ALU peuvent calculer jusqu’à deux fois plus vite que ne le laisse supposer leur fréquence d’horloge.Le second type d’unités de calcul (FPU) permet de calculer des nombres en virgules flottantes. Pour simplifier : elles calculent des chiffres à virgule avec plus ou moins de précision suivant les choix du concepteur ou du logiciel qui utilise les FPU. Ce type d’unités est très lourdement sollicité dans toutes applications de calculs lourds comme les jeux, les applications multimédias (vidéo, conception 3D, etc.) ou encore les calculs scientifiques.
Enfin, on trouve parfois des termes comme « unité de calcul vectoriel ». Rappelons que le calcul est dit vectoriel quand il agit d’une opération qui agit de façon déterminée sur un groupe de données de nature homogène (qu’on appelle vecteur). Il s’agit souvent de plusieurs unités de calcul FPU qui ont la possibilité de fonctionner en mode SIMD (une instruction appliquée sur plusieurs groupes de données) à l’aide d’instructions spécifiques dédiées à cet effet (MMX, 3D now, SSE1-2-3-4 ou encore Altivec, etc.). Bien entendu, il existe de « vraies unités » de calcul vectoriel mais elles se font rares dans les processeurs grand public qui ont plus vocation à effectuer des calculs de nature très variée.
Haut de page
-
Page suivante
2. L’architecture et les...
















