Väntetillståndet i en 8086 mikroprocessor genereras för att synkronisera CPU:s hastighet med långsammare minne eller kringutrustning. Det är i huvudsak en fördröjning in i busscykeln. Detta händer när 8086 behöver komma åt data som inte är redo ännu. Så här genereras det:
1. Klar signal: 8086 använder signalen "Ready" för att avgöra om minnet eller perifera är redo att tillhandahålla data eller acceptera data. Denna signal är en ingång till 8086.
2. Minne/perifer responstid: När 8086 initierar en minnesåtkomst (läs eller skriver) skickar den adress- och styrsignalerna. Minnet eller perifert mottagande av denna begäran tar en viss tid att svara. Denna tid är beroende av dess hastighet (åtkomsttid).
3. redo =0 (inte redo): Om minnet/perifera inte är redo att svara inom den tid som 8086 förväntar sig (bestäms av sin interna klocka), hävdar det att "Ready" -linjen låg ("klar" =0).
4. Vänta tillstånd: 8086 övervakar linjen "Ready". När den ser `redo '=0 sätter det in ett väntetillstånd. Detta innebär att 8086 avbryter sin drift och väntar i huvudsak på nästa klockcykel. Adress- och styrsignalerna hålls stabila under detta väntetillstånd.
5. redo =1 (redo): När minnet/perifera äntligen blir klart, hävdar det att "Ready" -linjen hög ("klar" =1).
6. CV -operation: Efter att ha sett `Ready '=1 återupptar 8086 sin drift och slutför minnesåtkomst.
I huvudsak är ett väntetillstånd helt enkelt de 8086 kvar i samma buscykel tills "redo" -signalen indikerar att minnet/perifer är klart. Flera väntetillstånd kan sättas in om minnet/perifert kräver mer tid att svara. Antalet väntetillstånd bestäms av hur länge "redo" -signalen förblir låg.
Hur det implementeras:
Väntetillståndsmekanismen implementeras vanligtvis externt till 8086, vanligtvis med externa kretsar. Denna krets övervakar minnes åtkomsttid och genererar "Ready" -signalen i enlighet därmed. Ibland görs detta med ett väntetillståndsgeneratorchip. Detta gör det möjligt för systemdesignern att justera antalet väntetillstånd som behövs baserat på hastigheten på det använda minnet. Ett snabbare minne skulle kräva färre väntetillstånd, medan långsammare minne skulle kräva mer.
Sammanfattningsvis är väntetillståndet inte en inre del av instruktionsuppsättningen 8086 utan snarare en mekanism för att synkronisera CPU:s operation med långsammare externa enheter med hjälp av den externa "Ready" -signalen.