Le pipeline logiciel (software pipelining, par opposition aux pipelines matériels) est une technique utilisée par les compilateurs pour optimiser l'exécution des boucles. Elle consiste à superposer l'exécution de plusieurs itérations de la boucle, comme un pipeline matériel le fait pour les différentes phases des instructions : une itération du code généré contiendra en fait des instructions provenant de plusieurs itérations d'origine. Le but est de réorganiser les instructions de manière à pouvoir exécuter des instructions provenant d'autres itérations pendant que des instructions coûteuses s'exécutent. Contrairement au déroulage de boucle, le compilateur cherche à optimiser les interactions entre plusieurs itérations de la boucle compilée, là où le déroulage ne permet que des optimisations locales après avoir dupliqué le code, qui sont limitées par le nombre de duplications. La boucle suivante pourra bénéficier du pipelining : for(i=0; i0) L: LOAD R1, RA++ // On charge dans un registre la valeur de l'élément du tableau A LOAD R2, RB++ // Pareil pour B MUL R3, R1, R2 // On multiplie les deux ; il faudra attendre le résultat plusieurs cycles STORE R3, RC++ // On stocke le résultat dans C RI-- // On décrémente le compteur BN0 RI, L // Tant qu'il n'est pas nul, on boucle Malheureusement, les instructions ne se terminent pas forcément toutes à la même vitesse. L'instruction de multiplication est relativement lente, et les instructions de chargement peuvent aussi prendre du temps. Un processeur qui exécuterait les instructions une à une dans l'ordre ne ferait rien tant que l'instruction de l'instruction de multiplication ne serait pas terminée, puisque l'écriture en mémoire a besoin de son résultat. Dans tous les cas, il lira une instruction qu'il ne pourra pas exécuter tout de suite.

À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.

Graph Chatbot

Chattez avec Graph Search

Posez n’importe quelle question sur les cours, conférences, exercices, recherches, actualités, etc. de l’EPFL ou essayez les exemples de questions ci-dessous.

AVERTISSEMENT : Le chatbot Graph n'est pas programmé pour fournir des réponses explicites ou catégoriques à vos questions. Il transforme plutôt vos questions en demandes API qui sont distribuées aux différents services informatiques officiellement administrés par l'EPFL. Son but est uniquement de collecter et de recommander des références pertinentes à des contenus que vous pouvez explorer pour vous aider à répondre à vos questions.