Pipeline (architecture des processeurs)

Le pipeline d'instructions est une technique utilisée dans la conception des microprocesseurs, microcontrôleurs et unités centrales modernes pour augmenter leur débit d'instructions (le nombre d'instructions pouvant être exécutées dans une unité de temps).

L'idée principale est de diviser (appelé "split") le traitement d'une instruction du CPU, tel que défini par le microcode de l'instruction, en une série d'étapes indépendantes de micro-opérations (également appelées "microinstructions", "micro-op" ou "µop"), avec un stockage à la fin de chaque étape. Cela permet à la logique de contrôle des unités centrales de traiter les instructions à la vitesse de traitement de l'étape la plus lente, ce qui est beaucoup plus rapide que le temps nécessaire pour traiter l'instruction en une seule étape.

Le terme pipeline fait référence au fait que chaque étape porte une microinstruction unique (comme une goutte d'eau), et que chaque étape est liée à une autre étape (analogie ; similaire aux conduites d'eau).

La plupart des processeurs modernes sont commandés par une horloge. L'unité centrale est constituée en interne de logique et de mémoire (flip-flops). Lorsque le signal de l'horloge arrive, les flip-flops stockent leur nouvelle valeur ; la logique a alors besoin d'un certain temps pour décoder les nouvelles valeurs des flip-flops. Puis l'impulsion d'horloge suivante arrive et les flip-flops stockent d'autres valeurs, et ainsi de suite. En décomposant la logique en plus petits morceaux et en insérant des bascules entre les morceaux de logique, le temps requis par la logique (pour décoder les valeurs jusqu'à la génération de sorties valides en fonction de ces valeurs) est réduit. De cette façon, la période d'horloge peut être réduite.
Par exemple, le pipeline RISC est divisé en cinq étapes avec un ensemble de flip-flops entre chaque étape comme suit :

  1. Instruction de recherche
  2. Instruction de décodage et de recherche de registre
  3. Exécuter
  4. Accès à la mémoire
  5. S'inscrire et se rétracter

Les processeurs à tuyauterie sont constitués en interne d'étages (modules) qui peuvent fonctionner de manière semi-indépendante sur des microinstructions séparées. Chaque étage est relié par des bascules à l'étage suivant (comme une "chaîne") de sorte que la sortie de l'étage est une entrée pour un autre étage jusqu'à ce que le travail de traitement des instructions soit terminé. Une telle organisation des modules internes du processeur réduit le temps de traitement global de l'instruction.

Une architecture sans pipeline n'est pas aussi efficace car certains modules de l'unité centrale sont inactifs alors qu'un autre module est actif pendant le cycle d'instruction. Le pipe-line ne supprime pas complètement le temps d'inactivité d'une unité centrale en pipe-line, mais le fait de faire fonctionner les modules de l'unité centrale en parallèle augmente le débit des instructions.

On dit qu'un pipeline d'instructions est entièrement pipeliné s'il peut accepter une nouvelle instruction à chaque cycle d'horloge. Un pipeline qui n'est pas entièrement pipeliné a des cycles d'attente qui retardent la progression du pipeline.

Questions et réponses

Q : Qu'est-ce que le pipelining d'instructions ?


R : Le pipelining d'instructions est une technique utilisée dans la conception des microprocesseurs, microcontrôleurs et CPU modernes pour augmenter le débit d'instructions en divisant le traitement d'une instruction CPU en une série d'étapes indépendantes avec un stockage à la fin de chaque étape.

Q : Comment fonctionne le pipelining ?


R : Le pipelining fonctionne en décomposant la logique en plus petits morceaux et en insérant des flip flops entre les morceaux de logique, ce qui réduit le temps nécessaire à la logique pour décoder les valeurs jusqu'à générer des sorties valides en fonction de ces valeurs. Cela permet des périodes d'horloge plus rapides.

Q : Quels sont quelques exemples de pipelines ?


R : Un exemple de pipeline est le pipeline RISC, qui est divisé en cinq étapes avec un ensemble de flip flops entre chaque étape.

Q : Comment le pipelining augmente-t-il le débit d'instructions ?


R : Le pipelining augmente le débit d'instructions en permettant aux modules du CPU de travailler en parallèle, ce qui réduit le temps d'inactivité pendant un cycle d'instruction et augmente le temps de traitement global.

Q : Tous les pipelines sont-ils entièrement pipelinés ?


R : Non, tous les pipelines ne sont pas entièrement pipelinés ; certains pipelines ont des cycles d'attente qui retardent la progression dans le pipeline.

AlegsaOnline.com - 2020 / 2023 - License CC3