Sommaire Processeur!...........................................................................................................................................2 Introduction : ...................................................................................................................................2 Types d'instructions :.......................................................................................................................2 Types principaux d'instructions :.................................................................................................3 Étapes d'exécution :.....................................................................................................................3 Les registres :...................................................................................................................................4 Les mémoires caches : ....................................................................................................................5 Signaux de commande : ..................................................................................................................5 Micro-architecture interne : ............................................................................................................6 Différenciation des microprocesseurs : ...........................................................................................7 Fabrication d'un processeur: ...........................................................................................................8 Transistor : ......................................................................................................................................8 Le pipeline : ....................................................................................................................................8 Le dual core ou quad core : .............................................................................................................9 Information tirée des sites suivants: http://fr.wikipedia.org/wiki/Processeur http://www.vulgarisation-informatique.com/processeur.php http://www.commentcamarche.net/contents/pc/processeur.php3 1 / 10 Processeur! Introduction : Le « processeur » aussi appelé « micro-processeur » ou « CPU » (Central Processing Unit ou en français: Unité Central de Traitement), est le cœur de l'ordinateur. Il permet de manipuler des informations numériques c'est-à-dire des informations codées sous forme binaire et d'exécuter des instructions codées dans la mémoire. Un processeur est composé de millions de transistor. Le premier processeur fut créé le 15 novembre 1971 par Intel et intégrait 2300 transistor, de nos jour le nouveau Quad Core en contient 800 millions. Il est cadencé par une horloge interne, grâce a un cristal de quartz qui, soumis à un courant électrique, envoie des impulsions, appelés « top ». Un processeur cadencé plus rapidement est plus efficace car il peut traiter les instructions plus rapidement. Types d'instructions : Une instruction est l'opération élémentaire que le processeur peut exécuter, à condition qu'il sache de quelle instruction il s'agit. Pour cela les instructions seront stockées d'une manière bien précise dans la mémoire principale. Une instruction est composée de deux champs: ✗ Le code opération, représentant l'action que le processeur doit accomplir (si il faut déplacer des données d'un registre à l'autre, faire une addition...) . ✗ Le code opérande, représentant les paramètres de l'instruction (adresse mémoire, constantes utilisées, registres...) . Le code opérande dépend de l'opération. Il peut s'agir d'une donnée ou bien d'une adresse mémoire. 2 / 10 Types principaux d'instructions : Il existe différents types d'instructions. Les plus courants sont ceux-ci : ✗ ✗ ✗ ✗ ✗ Instructions d'opérations arithmétiques (addition, soustraction, division, multiplication) Instructions d'opérations logiques (OU, ET, OU EXCLUSIF, NON, etc...) Instructions de transferts (entre différents registres, entre la mémoire et un registre, etc... Instructions ayant rapport aux entrées et sorties. Instructions diverses ne rentrant pas dans les autres catégories (principalement des opérations sur les bits). Étapes d'exécution : Lorsqu'un processeur a besoin d'exécuter des instructions, il le fait toujours dans l'ordre suivant : ✗ ✗ ✗ ✗ Recherche de l'instruction (fetch) Lecture de l'instruction Décodage de l'instruction Exécution de l'instruction 3 / 10 Les registres : Lorsque le processeur exécute des instructions, les données sont temporairement stockées dans de petites mémoires de taille raisonnable et rapides que l'on appelle registre. Les registres sont utilisés tout le temps, ils sont donc très importants. Suivant le type de processeur le nombre global de registres peut varier d'une dizaine à plusieurs centaines. Une instruction pouvait faire appel aux registres. L'avantage est que ce type d'opérations est plus rapide que de faire appel à la mémoire vive, les registres étant une mémoire internes au processeur, contrairement à la mémoire vive. Les registres principaux sont : ✗ ✗ ✗ ✗ ✗ Les registre accumulateur (ACC), stockant les résultats des opérations arithmétiques et logiques. Le registre d'état (PSW, Processor Status Word), permettant de stocker des indicateurs sur l'état du système (retenue, dépassement, etc.). Le registre d'instruction (RI), contenant l'instruction en cours de traitement ; Le compteur ordinal(CO ou PC pour Program Counter), contenant l'adresse de la prochaine instruction à traiter. Le registre tampon, stockant temporairement une donnée provenant de la mémoire. 4 / 10 Les mémoires caches : La mémoire cache (également appelée antémémoire ou mémoire tampon) est une mémoire rapide permettant de bénéficier de bonnes performances dans les applications en réduisant le temps d'attente des informations stockées dans la mémoire vive. Chaque processeur en intègre une quantité variable selon le processeur. Il existe des mémoires moins performante tel que la mémoire vive mais il existe également des mémoire bien plus performante mais dont le prix est très élevé. Elle permet de stocker les données les plus fréquemment demandées à proximité du processeur devant être traitées par le processeur. On distingue trois niveaux de cache : ✗ La mémoire cache de premier niveaux (appelée L1 cache, pour Level 1 cache) est directement intégrée dans le processeur. La quantité intégrée est généralement faible (de 8 à 64 Ko généralement). Elle se subdivise en 2 parties : • La première est le cache d'instructions, qui contient les instructions issues de la mémoire vive décodées lors de passage dans les pipelines. • La seconde est le cache de données, qui contient des données issues de la mémoire vive et les données récemment utilisées lors des opérations du processeur. Les caches du premier niveau sont très rapides d'accès. Leur délai d'accès tend à s'approcher de celui des registres internes aux processeurs. ✗ La mémoire cache de second niveau (appelée L2 cache, pour Level 2 cache) est située au niveau du boîtier contenant le processeur (dans la puce). Le cache de second niveau vient s'intercaler entre le processeur avec son cache interne et la mémoire vive. Cette quantité varie de 128 Ko à 1 Mo, ce cache est légèrement moins rapide que le cache L1 ✗ La mémoire cache de troisième niveau (appelée L3 cache, pour Level 3 cache) est située au niveau de la carte mère. Ce cache est disponible seulement sur certains processeurs et peut vous permettre de gagner 10% de performances en fonction des applications, en réalité les gains sont très moyens voire inexistants. Lorsqu'un processeur a besoin de lire des données, il va d'abord regarder si celles-ci se trouvent dans la mémoire cache. Si elles s'y trouvent, on parle de succès du cache (cache hit), dans le cas contraire d'échec du cache (cache miss) les données étant placées ensuite en cache à partir de la mémoire vive. Signaux de commande : Les signaux de commande sont des signaux électriques permettant d'orchestrer les différentes unités du processeur participant à l'exécution d'une instruction. Les signaux de commandes sont distribués grâce à un élément appelé séquenceur. Le signal read / Write, en français lecture / écriture, permet par exemple de signaler à la mémoire que le processeur désire lire ou écrire une information. 5 / 10 Micro-architecture interne : Tous les processeurs sont composés de ces éléments : ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✗ ✗ L'UAL (unité arithmétique et logique, aussi appelée ALU) : c'est l'unité de calcul qui gère ce qui porte sur des nombres entiers. La FPU (Floating Point Unit) est l'unité de traitement des nombres à virgules (aussi appelés nombres flottants). Le décaleur: il est le spécialiste des divisions et multiplications par deux. Son rôle est de décaler les bits vers la gauche ou vers la droite. Les registres Le circuit de données: son rôle est d'acheminer les données provenant de l'UAL vers les registres. La MMI (Mémoire de micro instructions) : cette zone du processeur contient toutes les instructions nécessaires à celui-ci pour comprendre les instructions du langage machine. Le SEQ (séquenceur) : cet organe traduit les instructions compliquées en instructions plus simples pour permettre au processeur de les traiter. L'unité de gestion des instructions : elle recueille les instructions demandées, les décode puis les envoie à l'unité d'exécution. L'unité d'exécution : son rôle est d'exécuter les tâches que lui a envoyé l'unité d'instruction. L'unité de gestion des bus : elle permet de gérer les informations entrantes et sortantes. 6 / 10 Différenciation des microprocesseurs : Les processeurs se différencient la plupart du temps uniquement par leur marque et leur fréquence (tout du moins dans les grandes surfaces). En réalité, il existe de nombreux facteurs agissant sur leurs performances : ✗ ✗ ✗ ✗ ✗ Leur fréquence (vitesse de traitement maximale si vous préférez). Cette fréquence s'exprime en MHz (Méga-hertz) ou GHz (Giga-hertz). La fréquence s'obtient en multipliant la fréquence du FSB (Front Side Bus aussi appelé Bus système) par un coefficient multiplicateur. La fréquence de leur FSB : plus cette fréquence est élevée, meilleures sont les performances (à familles de processeurs égales). Leur architecture interne : Nombre d'ALU, de FPU pour un même processeur, contrôleur mémoire interne ou non, tout ça peut changer radicalement les performances et il est donc ridicule de comparer les performances d'un Athlon 64 avec celles d'un Pentium 4 à fréquence égale car les deux architectures n'ont pas été conçues pour les mêmes fréquences (même si les objectifs en matière de fréquence n'ont pas pu être atteints par Intel qui tablait sur 10 GHz, alors que le pentium 4 plafonne à 3.8 GHz hors overclocking). Leur quantité de mémoire cache (répartie sur 1, 2 ou 3 niveaux). Leur mode de connexion à la carte-mère (appelé socket, dont le nombre de trous et l'appellation varient. En général on appelle un socket par son nombre de trous, on parle alors de "socket 478", "socket 775", etc...). 7 / 10 Fabrication d'un processeur: Les processeurs sont tous gravés sur des plaques appelées Wafers. Les différentes séries de processeurs n'ont pas forcément la même finesse de gravure. Les processeurs actuels sont gravés en 90 et 65 nanomètres. Cette technique permet également de diminuer la consommation du processeur. Une finesse de gravure accrue permet également de loger plus de transistors dans le core (aussi appelé die) du processeur, et donc d'ajouter des fonctionnalités supplémentaires tout en gardant une surface aussi compacte que les générations précédentes. Transistor : Un transistor est un composant électronique semi-conducteur, possédant trois électrodes, capable de modifier le courant qui le traverse à l'aide d'une de ses électrodes. On parle ainsi de «composant actif», par opposition aux « composants passifs », tels que la résistance ou le condensateur, ne possédant que deux électrodes (on parle de « bipolaire »). Pour effectuer le traitement de l'information, le microprocesseur possède un ensemble d'instructions, appelé « jeu d'instructions », réalisées grâce à des circuits électroniques. Plus exactement, le jeu d'instructions est réalisé à l'aide de semi-conducteurs, « petits interrupteurs » utilisant l'effet transistor, découvert en 1947 par John Barden, Walter H. Brattain et William Shockley qui reçurent le prix Nobel en 1956 pour cette découverte. Le pipeline : Afin d'optimiser le rendement, la technique du pipeline est apparue sur les 386 d'Intel. Le pipeline permet de commencer à traiter l'instruction suivante avant d'avoir terminé la précédente via un mécanisme de "travail à la chaîne" qui est une technologie visant à permettre une plus grande vitesse d'exécution des instructions en parallélisant des étapes. 8 / 10 Pour comprendre le mécanisme du pipeline, il est nécessaire de comprendre les phases d'exécution d'une instruction. Les phases d'exécution d'une instruction pour un processeur contenant un pipeline « classique » à 5 étages sont les suivantes : ✗ ✗ ✗ ✗ ✗ LI : (Lecture de l'instruction (en anglais FETCH instruction) depuis le cache ; DI : Décodage de l'instruction (DECODe instruction) et recherche des opérandes (Registre ou valeurs immédiate); EX : Exécution de l'instruction (EXECute instruction) (si ADD, on fait la somme, si SUB, on fait la soustraction, etc.); MEM : Accès mémoire (MEMory access), écriture dans la mémoire si nécessaire ou chargement depuis la mémoire ; ER : Écriture (Write instruction) de la valeur calculée dans les registres. L'inconvénient de cette technique est que plus le pipeline est profond plus la perte de performances est importante si une erreur de prédiction survient. L'avantage de cette technique est qu'elle permet d'augmenter la fréquence du processeur plus facilement. Le dual core ou quad core : Le core (ou die) d'un processeur est toute sa partie centrale qui ressemble à ça (agrandie des milliers de fois) : 9 / 10 Technologie récente et à la mode, le dual core consiste à définir deux processeurs logiques au sein d'un processeur physique. Cette architecture est très efficace en multi-tâche, en mono-tâche elle ne vous fera rien gagner à moins d'augmenter les performances des cores (ajout de cache, hausse de fréquence...). Ce moyen permet d'utiliser au mieux les ressources du processeur en garantissant que des données lui sont envoyées en masse. 10 / 10