Information Technology Reference
In-Depth Information
de fonctionner à 4
80 MIPS puisque le pipeline est à 4 étages et permet donc à
4 instructions de s'exécuter en parallèle. En fait ce n'est que lorsque le pipeline est
plein que le processeur fonctionne à cette vitesse.
En réalité ce schéma est idéal mais plusieurs circonstances mettent en défaut ce
schéma et ralentissent donc le fonctionnement du pipeline :
- les conflits de ressources. Il faut interdire l'accès simultané à une ressource par
plusieurs instructions ;
- les dépendances des données. C'est le cas où une instruction i a besoin comme
opérande du résultat de l'instruction i - 1. Les deux phases ne peuvent pas être
menées simultanément ;
- les conflits liés au contrôle. Les instructions de sauts inconditionnels et de bran-
chements conditionnels modifient le compteur ordinal et donc perturbent la simul-
tanéité d'exécution qu'impose le pipeline.
Malgré les circonstances qui empêchent le fonctionnement idéal d'un pipeline
cette technique reste très efficace pour l'amélioration des performances d'un ordina-
teur. Multiplier les pipelines permet encore des améliorations de performances. La
figure 7.28 donne le schéma d'un pipeline double.
×
Décodage
Exécution
Rangement
Fetch
Exécution
Décodage
Rangement
Figure 7.28
Pipeline double.
Pour ce pipeline double, une unité unique de chargement charge des paires d'instruc-
tions qui s'exécutent simultanément dans leur propre pipeline. Cette technique
implique impérativement que les instructions qui s'exécutent n'aient aucune interre-
lations et dépendances, autrement dit elles ne doivent pas utiliser de ressources
communes. C'est le compilateur qui a en charge la garantie de l'indépendance fonc-
tionnelle des instructions (c'était déjà le cas pour le pipeline unique). Actuellement
les machines disposent toutes de pipelines simples ou doubles dans les machines
RISC. Le processeur Intel 486 (machine CISC) dispose d'un pipeline tandis que le
Pentium (CISC) dispose de deux pipelines à 5 étages.
En fait les règles qui permettent de déterminer si deux instructions d'une paire
peuvent effectivement s'exécuter simultanément sont extrêmement complexes. Une
instruction d'une paire peut voir son exécution retardée parce qu'elle n'est pas
compatible avec l'autre instruction, ce qui oblige à réorganiser l'ordonnancement de
l'exécution des instructions pour profiter de l'efficacité des pipelines doubles. Il
s'agit du concept d'ordonnancement dynamique des instructions . C'est le compila-
teur qui est chargé de cette réorganisation très complexe. Plusieurs études montrent
Search WWH ::




Custom Search