De wachtstatus in een 8086-microprocessor wordt gegenereerd om de snelheid van de CPU te synchroniseren met langzamer geheugen of randapparatuur. Het is in wezen een vertraging die in de buscyclus wordt ingevoegd. Dit gebeurt wanneer de 8086 toegang nodig heeft tot gegevens die nog niet gereed zijn. Zo wordt het gegenereerd:
1. Gereedsignaal: De 8086 gebruikt het 'READY'-signaal om te bepalen of het geheugen of het randapparaat gereed is om gegevens te leveren of gegevens te accepteren. Dit signaal is een invoer voor de 8086.
2. Responstijd geheugen/randapparatuur: Wanneer de 8086 een geheugentoegang initieert (lezen of schrijven), verzendt deze de adres- en besturingssignalen. Het geheugen of randapparaat dat dit verzoek ontvangt, heeft een bepaalde hoeveelheid tijd nodig om te reageren. Deze tijd is afhankelijk van de snelheid (toegangstijd).
3. KLAAR =0 (Niet gereed): Als het geheugen/randapparaat niet klaar is om te reageren binnen de tijd die de 8086 verwacht (bepaald door de interne klok), wordt de regel 'READY' laag weergegeven ('READY' =0).
4. Wachtstatus invoegen: De 8086 bewaakt de lijn `READY`. Wanneer `READY` =0 wordt weergegeven, wordt een wachtstatus ingevoegd. Dit betekent dat de 8086 zijn werking onderbreekt en in wezen wacht op de volgende klokcyclus. De adres- en stuursignalen worden tijdens deze wachttoestand stabiel gehouden.
5. KLAAR =1 (Klaar): Wanneer het geheugen/randapparaat eindelijk gereed is, wordt de lijn `READY` hoog verklaard (`READY` =1).
6. Hervat de bewerking: Bij het zien van 'READY' =1 hervat de 8086 zijn werking en voltooit de geheugentoegang.
In wezen is een wachtstatus simpelweg dat de 8086 in dezelfde buscyclus blijft totdat het 'READY'-signaal aangeeft dat het geheugen/randapparaat gereed is. Er kunnen meerdere wachttoestanden worden ingevoegd als het geheugen/randapparaat meer tijd nodig heeft om te reageren. Het aantal wachttoestanden wordt bepaald door hoe lang het "READY"-signaal laag blijft.
Hoe het wordt geïmplementeerd:
Het wachtstatusmechanisme wordt doorgaans buiten de 8086 geïmplementeerd, waarbij doorgaans gebruik wordt gemaakt van externe schakelingen. Deze schakeling bewaakt de toegangstijd van het geheugen en genereert dienovereenkomstig het "READY"-signaal. Soms gebeurt dit met behulp van een wachttoestandgeneratorchip. Hierdoor kan de systeemontwerper het benodigde aantal wachttoestanden aanpassen op basis van de snelheid van het gebruikte geheugen. Een sneller geheugen zou minder wachttoestanden vereisen, terwijl een langzamer geheugen meer zou vereisen.
Samenvattend is de wachtstatus geen intrinsiek onderdeel van de 8086-instructieset, maar eerder een mechanisme voor het synchroniseren van de werking van de CPU met langzamere externe apparaten die het externe 'READY'-signaal gebruiken. |