suivant up previous sommaire
Suivant: Les aléas Haut: Pipeline de base Précédent: 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.


suivant up previous sommaire
Suivant: Les aléas Haut: Pipeline de base Précédent: Pipeline à 3 étages