5.2 Exemple de d´eroulement d’une instruction
5.2.1 D´eroulement de l’instruction
Intel a d´efini un s´equencement en termes decycles machine. Cela signifie que chaque instruction est d´ecoup´ee en cycles principaux (un `a cinq). L’instruction d’addition envisag´ee ici comporte trois cycles machine. Chacun de ces derniers comporte de deux `a cinqcycles ´el´ementaires(les “´etats”) d´efinis par l’horloge de base, c’est-`a-dire que la dur´ee d’un cycle ´el´ementaire est ´egale `a une p´eriode d’horloge. Les microcommandes impliqu´ees dans la r´ealisation de chaque cycle
´el´ementaire seront d´esign´ees parµijko`ujest le num´ero du cycle etkle num´ero du cycle ´el´ementaire.
1. Premier cycle machine: celui-ci correspond `a la lecture de l’instruction en m´emoire (Instruction Fetch) et comporte quatre cycles ´el´ementaires.
(a) Le contenu du compteur ordinal CO est transf´er´e dans le tam-pon d’adresses RA. En mˆeme temps le bus de donn´ee fournit une indication sur le cycle machine en cours, ici le cycle Instruction Fetch. Cette phase not´ee M1-T1 (figure5.10) met en jeu les micro-commandes :
− µ111 commande du multiplexeur Mux pour aiguiller le contenu de CO vers RA,
− µ211 commande de chargement du tampon RA,
− µ311 indique que l’on est dans le cycle T1. Cette information apparaˆıt sur une ligne du bus de contrˆole sous le nom SYNC et peut ˆetre utilis´ee par la logique externe,
− µ411 commande des drivers du bus de donn´ees dans le sens
“´emission”, etc.
STATUS SYNC
M1-T1
µ113
11 1
112
114
µ
µ
µ
Figure5.10 : La phase M1-T1
Ces micro-commandes ne sont certainement pas les seules, mais donnent une bonne id´ee du rˆole de ces signaux pour assurer le d´eroulement de l’instruction.
(b) La phase M1-T2 consiste `a incr´ementer le contenu du compteur or-dinal. Cette anticipation de l’incr´ement de CO permet de gagner du temps lorsqu’on traite des instructions sur un seul mot et ac-corde un d´elai suppl´ementaire `a la m´emoire pour se positionner (voir phase suivante). Parmi les commande, on rel`evera les micro-commandes µ112 indiquant le “mode incr´ement” pour le compteur ordinal,µ212 activant l’incr´emention et µ312 ouRD, validant l’acc`es
`
a la m´emoire (figure5.11).
RD M1-T2
µ123
12
µ2
READY
121
µ
Figure5.11 : La phase M1-T2
Pendant cette phase, la ligne READY est test´ee. Si elle est `a 0, ce qui signifie que la m´emoire n’est pas prˆete `a d´elivrer le code instruction, le processeur introduit des cycles ´el´ementaires d’attente TW. C’est aussi durant cette phase que les lignes de suspension sont test´ees.
(c) Dans la phase d’attente M1-TW, l’instruction attendue sur le bus de donn´ee est consid´er´ee comme non stable. Elle ne peut donc pas ˆetre “saisie” dans le registre instruction (figure5.12).
(d) La phase M1-T3 (figure 5.13) est la phase de lecture effective de l’instruction. Celle-ci est charg´ee dans le registre instruction RI.
Parmi les micro-commandes concern´ees on peut noter :
− µ113commande pour les amplificateurs de ligne (drivers) du bus de donn´ees,
− RDsignal de contrˆole pour la m´emoire,
− µ213 chargement du registre instruction RI.
L’adresse de la case m´emoire contenant l’instruction est sur le bus depuis la phase M1-T1. On suppose que la m´emoire poss`ede un temps d’acc`es suffisamment faible, donc que l’information cherch´ee
M1-TW
READY RI
RD
Figure5.12 : La phase M1-TW M1-T3
m132 133
131
m
m RI
RD
Figure5.13 : La phase M1-T3
est disponible pendant cette phase. On ne repr´esente donc pas de phase d’attente TW.
(e) La phase M1-T4 marque le d´ebut effectif du d´eroulement de l’instruction. Elle correspond au transfert du contenu du registre A vers le tampon ACT, transfert dont nous avons d´ej`a expliqu´e le rˆole dans la pr´evention des al´eas de fonctionnement. La micro-commandeµ114d´eclenche le chargement de ACT (le code d’addition est d´ej`a positionn´e sur l’unit´e arithm´etique et logique) (figure5.14).
2. Second cycle machine: celui-ci comporte trois cycles ´el´ementaires et correspond au cycle machine de lecture de l’op´erande en m´emoire.
(a) La phase M2-T1 consiste `a indiquer le type de cycle,Memory Read, et correspond en tous points `a la phase M1-T1.
L’adresse de l’op´erande en m´emoire, adresse contenue dans HL, est rang´ee dans le tampon RA.
(b) Lors de la phase M2-T2, la ligne READY est test´ee et des cycles d’attente sont ins´er´es si n´ecessaire.
M1-T4
m41
Figure5.14 : La phase M1-T4
STATUS SYNC
M2-T1
Figure5.15 : La phase M2-T1
(c) La phase d’attente M2-TW est en tous points semblable `a la phase M1-TW.
(d) La phase M2-T3 (figure 5.17) est celle de la lecture du deuxi`eme op´erande avec les micro-commandes :
− µ123 commande pour ledriverdu bus de donn´ees,
− RDsignal de contrˆole pour la m´emoire,
M2-T2(TW)
READY RD
Figure5.16 : La phase M2-T2
− et µ223pour le chargement de TMP.
M2-T3 TMP
RD
Figure5.17 : La phase M2-T3
L’adresse de la case m´emoire contenant l’op´erande est sur le bus d’adresses depuis la phase M2-T1. Comme dans la phase de lec-ture instruction, il y a ´emission d’une commande de leclec-ture vers la m´emoire avec positionnement dudriverdu bus de donn´ees. La seule diff´erence r´eside dans le chargement des registres : TMP y remplace RI.
3. Troisi`eme cycle machine: celui-ci pourrait ˆetre d´ecrit comme le cycle d’ex´ecution de l’instruction. Il comporte deux cycles ´el´ementaires.
(a) L’avant-derni`ere phase M3-T1 (figure 5.18) est une phase pendant laquelle il ne se passe rien pour l’op´eration en cours. Elle est in-troduite artificiellement pour permettre `a l’instruction suivante de commencer son cycle.
STATUS SYNC
M1-T1 M3-T1
Figure5.18 : La phase M3-T1
(b) La derni`ere phase M3-T2 (figure 5.19) consiste `a r´ecup´erer le r´esultat de l’op´eration d’addition dans le registre A et `a positionner les drapeaux. Parmi les micro-commandes associ´ees on peut relever :
− µ132 pour le chargement du registre A,
− µ232 pour le chargement du registre des drapeaux.
M1-T1 M3-T2
322
µ
READY
321
µ
RD
Figure5.19 : La phase M3-T2
Le recouvrement entre instructions successives (overlapping) permet d’augmenter les performances de fa¸con sensible. Pour l’instruction d’addition on gagne deux cycles ´el´ementaires sur les neuf cycles re-quis (hors cycles d’attente).