Les cœurs de processeur

Les cœurs de processeur

  1. Objectif

    • Comprendre la notion de cœur des processeurs
  2. Présentation

    • Le processeur ou CPU (CentralProcessing Unit) est le composant de votre ordinateur qui exécute les instructions qui lui sont données par votre système d’exploitation (Windows).
    • Un processeur est un circuit électronique intégré (une petite puce) qui effectue les calculs qui exécutent un ordinateur. Un processeur exécute des instructions arithmétiques, logiques, d’entrée/sortie (E/S) et d’autres instructions de base transmises par un système d’exploitation (OS).
    • Leur but est de recevoir des entrées sous la forme d’instructions de programme et d’exécuter des milliards de calculs pour fournir la sortie avec laquelle l’utilisateur s’interfacera. Les termes processeur, unité centrale (CPU) et microprocesseur sont communément liés comme synonymes.
    • Les processeurs sont présents dans de nombreux appareils électroniques modernes, notamment les PC, les smartphones, les tablettes et autres appareils électroniques portables.
    • Un processeur peut être avec un cœur (il est dite monocœur) ou plusieurs cœurs (il est dite multicœur) qui est une puce de processeur qui a plus d’un processeur sur une seule puce contenue dans un seul boîtier.
    • Les cœurs de processeur sont simplement des unités qui font partie du processeur de n’importe quel ordinateur. Leur fonction est de recevoir des instructions et d’effectuer des opérations de calcul, où les informations sont traitées et stockées temporairement dans la RAM.
    • En termes simples, on peut dire que la vitesse à laquelle un ordinateur exécute des programmes est proportionnelle au nombre de cœurs présents. Un processeur à deux cœurs est appelé dual core, un processeur à quatre cœurs est appelé quad core et ainsi de suite.

      Les cœurs de processeur

  3. Qu’est-ce qu’un cœur ?

    • Un processeur standard possède un cœur (on dit qu’il est single-core). Un processeur avec un seul cœur ne peut traiter qu’une seule instruction à la fois, une instruction étant une tâche que l’on demande au processeur d’exécuter : convertir une vidéo, compresser des fichiers volumineux, exécuter un logiciel, etc.
    • Plusieurs instructions peuvent être traitées par le cœur d’un processeur mais ce sera toujours en série, c’est-à-dire une instruction à la fois. Avant l’apparition des processeurs multicœurs, on avait l’impression que les processeurs avec un seul cœur étaient multi-tâches tellement ils passaient d’une instruction à une autre rapidement mais il n’en était rien
  4. Historique des processeurs multicœurs

    • Lorsque les premiers processeurs à puce ont été fabriqués, les entreprises fabriquant ces puces ne pouvaient installer qu’un seul processeur sur une seule puce.
    • À mesure que la technologie de fabrication de puces s’améliorait, il est devenu possible pour les fabricants de puces de fabriquer des puces avec plus de circuits, et finalement, la technologie de fabrication a atteint le point où les fabricants de puces pouvaient fabriquer des puces avec plus d’un processeur et ont créé la puce multicœur.
    • Kunle Olukotun , professeur de génie électrique à Stanford , et ses étudiants ont conçu la première puce multicœur en 1998. En 2001, IBM a présenté le premier processeur multicœur au monde, une puce VLSI (intégration à très grande échelle) avec deux microprocesseurs 64 bits. comprenant plus de 170 millions de transistors.
  5. Processeur multicœur

    • Un processeur multicœur est un processeur informatique sur un seul circuit intégré avec deux ou plusieurs unités de traitement distinctes , appelées cœurs, dont chacune lit et exécute les instructions du programme.
    • Un processeur multicœur est composé de deux ou plusieurs cœurs indépendants, chacun étant capable de traiter des instructions individuellement.
    • Les instructions sont des instructions CPU ordinaires (telles que l’ajout, le déplacement de données et le branchement), mais le processeur unique peut exécuter des instructions sur des cœurs séparés en même temps, augmentant la vitesse globale des programmes prenant en charge le multithreading ou d’autres techniques de calcul parallèle.
    • Un processeur dual-core contient deux cœurs, un processeur quad-core quatre cœurs, un processeur hexa-core six cœurs…
    • Les fabricants intègrent généralement les noyaux sur une seule puce de circuit intégré(connu sous le nom de multiprocesseur à puce ou CMP) ou sur plusieurs matrices dans un seul boîtier de puce .
    • Les microprocesseurs actuellement utilisés dans presque tous les ordinateurs personnels sont multicœurs.
    • Un processeur multicœur implémente le multitraitement dans un seul boîtier physique. Les concepteurs peuvent coupler des cœurs dans un périphérique multicœur de manière serrée ou lâche.
    • Les processeurs multicœurs sont disponibles dans les ordinateurs personnels depuis le début des années 2000.
    • Les conceptions multicœurs résolvaient le problème des processeurs atteignant le plafond de leurs limites physiques en termes de vitesse d’horloge et de l’efficacité avec laquelle ils pouvaient être refroidis tout en maintenant la précision.
    • En passant à des cœurs supplémentaires sur une seule puce de processeur, les fabricants ont évité les problèmes de vitesse d’horloge en multipliant efficacement la quantité de données pouvant être gérée par le processeur.
    • Les processeurs multicœurs ont été introduits pour résoudre les problèmes courants dans les systèmes monocœur tels que : la consommation d’énergie, la dissipation de température, la fréquence, etc. processeurs grâce à la logique simple : “Deux têtes valent mieux qu’une”





  6. Les cœurs logiques

    • Les cœurs logiques sont un découpages d’un cœur physiques en deux par la technologie SM (HyperThreading chez Intel et AMD SMT).
    • Ce dernier pourra alors gérer deux files d’attente au lieu d’une seule.
    • Le but est d’utiliser un cœur à son maximum en s’assurant que ce dernier est toujours occupé.
    • Il s’agit donc d’une optimisation de la file d’attente (thread).
    • Comme un cœurs physique possède deux cœurs logiques, il est assez faciles de savoir qu’un processeur 4 cœurs aura 8 cœurs logiques
  7. Processus et threads

    • Un processus est une tâche spécifique, comme un programme, s’exécutant sur un ordinateur. Un processus se compose d’un ou plusieurs threads.
    • Un thread est simplement un flux unique de données provenant d’un programme passant par le processeur de l’ordinateur. Chaque application génère ses propres threads en fonction de la façon dont elle s’exécute. Sans multitâche, un processeur monocœur ne peut gérer qu’un seul thread à la fois, de sorte que le système bascule rapidement entre les threads pour traiter les données de manière apparemment simultanée.
    • L’avantage d’avoir plusieurs cœurs est que le système peut gérer plusieurs threads simultanément. Chaque cœur peut gérer un flux de données distinct.
    • Cette architecture augmente considérablement les performances d’un système qui exécute des applications concurrentes. Étant donné que les serveurs ont tendance à exécuter de nombreuses applications simultanées à un moment donné, la technologie a été développée à l’origine pour l’entreprise cliente.
  8. Dépendance logicielle

    • Bien que le concept de processeurs multicœurs semble attrayant, il existe une mise en garde majeure à propos de cette technologie. Pour profiter pleinement des avantages des multiples processeurs, le logiciel exécuté sur l’ordinateur doit être écrit pour prendre en charge le multithreading.
    • Sans le logiciel prenant en charge une telle fonctionnalité, les threads seront principalement exécutés via un seul cœur, dégradant ainsi l’efficacité globale de l’ordinateur.
    • Après tout, s’il ne peut fonctionner que sur un seul cœur dans un processeur quadricœur, il peut en fait être plus rapide de l’exécuter sur un processeur double cœur avec des vitesses d’horloge de base plus élevées.
    • Tous les principaux systèmes d’exploitation actuels prennent en charge la capacité de multithreading. Mais le multithreading doit également être écrit dans le logiciel d’application.
    • La prise en charge du multithreading dans les logiciels grand public s’est améliorée au fil des ans, mais pour de nombreux programmes simples, la prise en charge du multithreading n’est toujours pas implémentée en raison de la complexité de la construction du logiciel. Par exemple, un programme de messagerie ou un navigateur Web ne bénéficiera probablement pas autant du multithreading qu’un programme de montage graphique ou vidéo, où l’ordinateur traite des calculs complexes.
  9. La fréquence du processeur c’est quoi ?

    • La fréquence du processeur : Exprimée en gigahertz (GHz) à présent, la fréquence du processeur désigne le nombre d’opérations effectuées en une seconde par le processeur.
      Une horloge lui définit sa cadence. Un processeur cadencé à 3 GHz effectue la bagatelle de 3 milliards d ‘opérations à la seconde.

    • En termes simples, on peut dire que la vitesse à laquelle un ordinateur exécute des programmes est proportionnelle au nombre de cœurs présents.
    • Certains facteurs affectent la capacité d’un processeur multicœur à accélérer les processus, tels que sa vitesse d’horloge innée et simplement la capacité d’un programme à capitaliser sur les capacités des processeurs multicœurs.
    • Si l’on regarde la vitesse d’un processeur, on comprend que les processeurs sont des circuits électroniques qui effectuent des calculs mathématiques qui se déroulent en une fraction de seconde.
    • Le temps qu’il faut à un processeur pour terminer un calcul est un cycle. Plus il y a de cycles par seconde, plus le processeur peut effectuer ses calculs rapidement.
    • La plupart des processeurs actuels sont mesurés en gigahertz ou en un milliard de cycles par seconde. Un processeur de 2 gigahertz exécute 2 milliards de cycles par seconde, de même qu’un processeur de 2,3 gigahertz exécute des milliards de cycles par seconde.
    • Un processeur dual-core fonctionnant à 2 gigahertz peut exécuter un total de 4 milliards de cycles, soit 2 milliards pour chaque processeur.
    • Vitesses d’horloge
      • Les cœurs de processeur

      • En termes généraux, une vitesse d’horloge plus élevée signifiera un processeur plus rapide.
      • Les vitesses d’horloge deviennent plus nébuleuses lorsque vous considérez les vitesses par rapport à plusieurs cœurs, car les processeurs traitent plusieurs fils de données grâce aux cœurs supplémentaires, mais chacun de ces cœurs fonctionnera à des vitesses inférieures en raison des restrictions thermiques.
      • Par exemple, un processeur bicœur peut prendre en charge des vitesses d’horloge de base de 3,5 GHz pour chaque processeur, tandis qu’un processeur quadricœur ne peut fonctionner qu’à 3,0 GHz.
      • Un processeur dont la vitesse d’horloge est de 3,2 GHz exécute 3,2 milliards de cycles par seconde. (Les anciens CPU avaient des vitesses mesurées en mégahertz, soit des millions de cycles par seconde).
      • En regardant simplement un seul cœur sur chacun d’eux, le processeur dual-core est 14% plus rapide que sur le quad-core. Ainsi, si vous avez un programme qui n’est qu’à thread unique, le processeur dual-core est en fait plus efficace.
      • Là encore, si votre logiciel peut utiliser les quatre processeurs, le processeur quad-core sera en réalité environ 70 % plus rapide que ce processeur dual-core.
      • Lorsque les processeurs étaient tous mono-cœurs (un seul cœur), la fréquence d’horloge était l’unique critère qui permettait de connaître la vitesse d’exécution du CPU. L’émergence des processeurs multi-cœurs ont changé la donne et ont introduit d’autres facteurs à prendre en considération comme la consommation énergétique et la mémoire cache.

    • Que signifie la fréquence turbo ?
      • Les spécifications des CPU Intel indiquent à la fois la fréquence turbo maximale et la fréquence de base du processeur.
      • La fréquence de base du processeur fait référence au point de fonctionnement régulier du CPU, tandis que la fréquence turbo maximale fait référence à la vitesse maximale que le processeur peut atteindre grâce à la technologie Intel® Turbo Boost.