O estado de espera em um microprocessador 8086 é gerado para sincronizar a velocidade da CPU com memória ou periféricos mais lentos. É essencialmente um atraso inserido no ciclo do ônibus. Isso acontece quando o 8086 precisa acessar dados que ainda não estão prontos. Veja como é gerado:
1.
sinal pronto: O 8086 usa o sinal `pronto 'para determinar se a memória ou periférico está pronto para fornecer dados ou aceitar dados. Este sinal é uma entrada para o 8086.
2.
Memória/tempo de resposta periférica: Quando o 8086 inicia um acesso à memória (leia ou grava), ele envia o endereço e os sinais de controle. A memória ou o recebimento periférico desta solicitação leva um certo tempo para responder. Este tempo depende de sua velocidade (tempo de acesso).
3.
pronto =0 (não pronto): Se a memória/periférico não estiver pronta para responder dentro do tempo que o 8086 espera (determinado por seu relógio interno), ele afirma a linha `pronta 'baixa (` pronta' =0).
4.
Aguarda a inserção do estado: A 8086 monitora a linha `pronta '. Quando vê `pronta` =0, ele insere um estado de espera. Isso significa que o 8086 suspende sua operação e aguarda essencialmente o próximo ciclo do relógio. Os sinais de endereço e controle são mantidos estáveis durante esse estado de espera.
5.
pronto =1 (pronto): Quando a memória/periférico finalmente se prepara, afirma a linha `pronta 'alta (` pronta' =1).
6.
Operação de retomar: Ao ver `pronta '=1, o 8086 retoma sua operação, preenchendo o acesso à memória.
Em essência, um estado de espera é simplesmente o 8086 restante no mesmo ciclo de barramento até que o sinal `pronto 'indique que a memória/periférico está pronta. Vários estados de espera podem ser inseridos se a memória/periférico exigir mais tempo para responder. O número de estados de espera é determinado por quanto tempo o sinal "pronto" permanece baixo.
Como é implementado: O mecanismo de estado de espera é geralmente implementado externo ao 8086, normalmente usando circuitos externos. Esse circuito monitora o tempo de acesso da memória e gera o sinal `pronto 'de acordo. Às vezes, isso é feito usando um chip gerador de estado de espera. Isso permite que o designer do sistema ajuste o número de estados de espera necessários com base na velocidade da memória usada. Uma memória mais rápida exigiria menos estados de espera, enquanto a memória mais lenta exigiria mais.
Em resumo, o estado de espera não é uma parte intrínseca do conjunto de instruções 8086, mas um mecanismo para sincronizar a operação da CPU com dispositivos externos mais lentos usando o sinal `pronto 'externo.