L'état d'attente dans un microprocesseur 8086 est généré pour synchroniser la vitesse du processeur avec une mémoire ou des périphériques plus lents. Il s'agit essentiellement d'un retard inséré dans le cycle du bus. Cela se produit lorsque le 8086 doit accéder à des données qui ne sont pas encore prêtes. Voici comment il est généré :
1. Signal prêt : Le 8086 utilise le signal « READY » pour déterminer si la mémoire ou le périphérique est prêt à fournir des données ou à accepter des données. Ce signal est une entrée du 8086.
2. Temps de réponse mémoire/périphérique : Lorsque le 8086 initie un accès mémoire (lecture ou écriture), il envoie les signaux d'adresse et de contrôle. La mémoire ou le périphérique recevant cette requête met un certain temps à répondre. Ce temps dépend de sa vitesse (temps d'accès).
3. PRÊT =0 (Pas prêt) : Si la mémoire/le périphérique n'est pas prêt à répondre dans le délai attendu par le 8086 (déterminé par son horloge interne), il affirme la ligne « READY » basse (« READY » =0).
4. Insertion de l'état d'attente : Le 8086 surveille la ligne « READY ». Lorsqu'il voit `READY` =0, il insère un état d'attente. Cela signifie que le 8086 suspend son fonctionnement et attend essentiellement le prochain cycle d'horloge. Les signaux d'adresse et de commande restent stables pendant cet état d'attente.
5. PRÊT =1 (Prêt) : Lorsque la mémoire/le périphérique devient enfin prêt, il affirme la ligne `READY` haute (`READY` =1).
6. Reprendre l'opération : En voyant `READY` =1, le 8086 reprend son fonctionnement, complétant l'accès à la mémoire.
Essentiellement, un état d'attente est simplement le 8086 restant dans le même cycle de bus jusqu'à ce que le signal « READY » indique que la mémoire/le périphérique est prêt. Plusieurs états d'attente peuvent être insérés si la mémoire/le périphérique nécessite plus de temps pour répondre. Le nombre d'états d'attente est déterminé par la durée pendant laquelle le signal « PRÊT » reste faible.
Comment cela est-il mis en œuvre :
Le mécanisme d'état d'attente est généralement implémenté à l'extérieur du 8086, généralement à l'aide de circuits externes. Ce circuit surveille le temps d'accès à la mémoire et génère le signal « PRÊT » en conséquence. Parfois, cela se fait à l'aide d'une puce génératrice d'état d'attente. Cela permet au concepteur du système d'ajuster le nombre d'états d'attente nécessaires en fonction de la vitesse de la mémoire utilisée. Une mémoire plus rapide nécessiterait moins d’états d’attente, tandis qu’une mémoire plus lente en nécessiterait davantage.
En résumé, l'état d'attente n'est pas une partie intrinsèque du jeu d'instructions 8086 mais plutôt un mécanisme permettant de synchroniser le fonctionnement du CPU avec des périphériques externes plus lents en utilisant le signal externe « READY ».
|