Soit l'exécution d'une instruction en 3 phases indépendantes (fetch, decode, execute) réalisée chacune en 1 cycle d'horloge. La mise en pipeline consiste à faire travailler en parallèle les 3 unités responsables des 3 phases. Ainsi, au cycle i, on recherche l'instruction i, on décode l'instruction i-1 et on exécute l'instruction i-2. Au cycle i+1, on recherchera l'instruction i+1, on décodera l'instruction i et on exécutera l'instruction i-1.
cycle d'horloge | 1 | 2 | 3 | 4 | 5 | 6 |
étage fetch | inst 1 | inst 2 | inst 3 | inst 4 | inst 5 | inst 6 |
étage decode | inst 1 | inst 2 | inst 3 | inst 4 | inst 5 | |
étage execute | inst 1 | inst 2 | inst 3 | inst 4 |
Le temps moyen d'exécution d'une instruction est divisé par 3. On parle de pipeline à 3 étages. Le temps d'exécution de n instructions est de 2+n cycles d'horloge. Le délai de 2 cycles est appelé temps de latence du pipeline.