next up previous contents
Next: Les aléas Up: Pipeline de base Previous: Pipeline à 3 étages

Pipeline à 5 étages

Appliquons ce principe à la machine RISC décrite plus haut. Les 5 phases doivent être rendues indépendantes. Toute information issue d'un étage et devant être utilisée par l'étage suivant doit être mémorisée dans un registre servant d'interface entre les étages. On obtient ainsi le fonctionnement décrit par le tableau suivant :

cycle d'horloge 1 2 3 4 5 6
étage LI inst 1 inst 2 inst 3 inst 4 inst 5 inst 6
étage DI   inst 1 inst 2 inst 3 inst 4 inst 5
étage EX     inst 1 inst 2 inst 3 inst 4
étage MEM       inst 1 inst 2 inst 3
étage ER         inst 1 inst 2


\begin{figure}
\leavevmode
\epsfxsize = 13 true cm
\epsfysize = 11 true cm
\epsfbox{cpuRISCpipeline.eps}\end{figure}

Quelques remarques :

1.
l'emploi de deux caches spécialisés se révèle judicieux : chaque mémoire est sollicitée à chaque cycle. Cela n'aurait pas été possible si un seul cache contenant données et instructions avait été utilisé ;
2.
le bloc registres doit permettre deux lectures (registres sources pour l'étage DI) et une écriture (résultat pour l'étage ER) dans le même cycle. Un problème survient si l'écriture concerne un registre accédé en lecture ;
3.
le multiplexeur de sélection du registre CP a été déplacé de l'étage MEM vers l'étage LI. L'exécution à l'étage LI peut dépendre de la présence dans l'étage MEM d'une instruction de branchement compliquant le fonctionnement du pipeline.


next up previous contents
Next: Les aléas Up: Pipeline de base Previous: Pipeline à 3 étages
Patrick Marcel
2001-01-24