Un estado de espera es un retraso que experimenta un procesador de computadora cuando accede a una memoria externa u otro dispositivo que responde lentamente.
Los microprocesadores de las computadoras generalmente funcionan mucho más rápido que los otros subsistemas de la computadora, que contienen los datos que la CPU lee y escribe. Incluso la memoria, la más rápida de ellas, no puede suministrar datos tan rápido como la CPU podría procesarlos. En un ejemplo de 2011, los procesadores de PC típicos como el Intel Core 2 y el AMD Athlon 64 X2 funcionan con un reloj de varios GHz , lo que significa que un ciclo de reloj es menos de 1 nanosegundo (normalmente alrededor de 0,3 ns a 0,5 ns en las CPU de escritorio modernas), mientras que la memoria principal tiene una latencia de alrededor de 15-30 ns. Algunas cachés de CPU de segundo nivel funcionan más lento que el núcleo del procesador.
Cuando el procesador necesita acceder a la memoria externa, comienza a colocar la dirección de la información solicitada en el bus de direcciones . Luego debe esperar la respuesta, que puede llegar decenas o incluso cientos de ciclos después. Cada uno de los ciclos que se pasan esperando se denomina estado de espera.
Los estados de espera son un desperdicio absoluto del rendimiento de un procesador. Los diseños modernos intentan eliminarlos u ocultarlos utilizando una variedad de técnicas: cachés de CPU , secuencias de instrucciones , precarga de instrucciones , predicción de bifurcaciones , subprocesamiento simultáneo de múltiples hilos y otras. Ninguna técnica es 100% exitosa, pero juntas pueden reducir significativamente el problema.
Los estados de espera se pueden utilizar para reducir el consumo de energía de un procesador, permitiendo que el reloj del procesador principal disminuya su velocidad o se detenga temporalmente durante el estado de espera si la CPU no tiene otro trabajo que hacer. En lugar de girar inútilmente en un bucle cerrado esperando datos, reducir esporádicamente la velocidad del reloj de esta manera ayuda a mantener el núcleo del procesador frío y a extender la vida útil de la batería en dispositivos informáticos portátiles.
En los mainframes de IBM , el término estado de espera se utiliza con un significado diferente. Un estado de espera se refiere a una CPU que se detiene, posiblemente debido a algún tipo de condición de error grave (como un error irrecuperable durante la carga de programa inicial del sistema operativo ). Un estado de espera se indica mediante el bit 14 de la PSW que se establece en 1, con otros bits de la PSW que proporcionan un código de estado de espera que indica una razón para la espera. En el modo z/Architecture , el código de estado de espera se encuentra en los bits 116-127. [1]