Compilateurs

Quelle définition du pipeline logiciel (software pipelining) est correcte ?

  1. AUne technique augmentant par logiciel le nombre d'étages du pipeline du CPU
  2. BUne technique répartissant la boucle en fonctions exécutées en parallèle par plusieurs threads
  3. CUne technique superposant les traitements d'itérations différentes pour masquer les temps d'attente
Afficher la réponse et l'explication

Réponse : C. Une technique superposant les traitements d'itérations différentes pour masquer les temps d'attente

Le pipeline logiciel découpe le traitement d'une itération en étapes comme « chargement, calcul, écriture » et dispose les instructions de sorte qu'une même itération du code effectue par exemple l'écriture de l'itération i, le calcul de l'itération i+1 et le chargement de l'itération i+2. Les calculs d'autres itérations progressent pendant les latences de chargement, et les unités de calcul ne restent pas inactives. Un prologue et un épilogue sont nécessaires avant et après la boucle. Ce n'est ni une modification du nombre d'étages du CPU ni une parallélisation par threads.

S'entraîner sur ce thème Retour au thème

Autres questions sur Compilateurs

  1. Pourquoi un compilateur, sous réglage strict, ne réordonne-t-il pas de lui-même l'addition en virgule flottante (a + b) + c en a + (b + c) ?
  2. Quel type d'instructions la vectorisation automatique du compilateur utilise-t-elle ?
  3. Quelle condition fondamentale les optimisations du compilateur doivent-elles respecter ?
  4. Quelle définition de la sélection d'instructions, l'une des étapes de la génération de code, est correcte ?
  5. Quelle définition du compilateur croisé est correcte ?

Comparatifs sur ce thème