Состояние ожидания — это задержка, которую испытывает процессор компьютера при доступе к внешней памяти или другому устройству, которое медленно реагирует.
Микропроцессоры компьютеров обычно работают намного быстрее, чем другие подсистемы компьютера, которые хранят данные, которые считывает и записывает ЦП. Даже память, самая быстрая из них, не может предоставлять данные так быстро, как ЦП может их обрабатывать. В примере 2011 года типичные процессоры ПК, такие как Intel Core 2 и AMD Athlon 64 X2, работают с тактовой частотой в несколько ГГц , что означает, что один тактовый цикл составляет менее 1 наносекунды (обычно около 0,3 нс - 0,5 нс на современных ЦП настольных ПК), в то время как основная память имеет задержку около 15-30 нс. Некоторые кэши ЦП второго уровня работают медленнее, чем ядро процессора.
Когда процессору требуется доступ к внешней памяти, он начинает размещать адрес запрашиваемой информации на адресной шине . Затем он должен ждать ответа, который может вернуться через десятки, если не сотни циклов. Каждый из циклов, потраченных на ожидание, называется состоянием ожидания.
Состояния ожидания — это пустая трата производительности процессора. Современные разработки пытаются устранить или скрыть их, используя различные методы: кэши ЦП , конвейеры инструкций , предварительная выборка инструкций , предсказание ветвлений , одновременная многопоточность и другие. Ни один из методов не является на 100% успешным, но вместе они могут значительно уменьшить проблему.
Состояния ожидания могут использоваться для снижения энергопотребления процессора, позволяя основным часам процессора либо замедляться, либо временно останавливаться во время состояния ожидания, если у ЦП нет другой работы. Вместо того, чтобы бесполезно вращаться в тесном цикле ожидания данных, спорадическое снижение тактовой частоты таким образом помогает поддерживать ядро процессора холодным и продлевать срок службы батареи в портативных вычислительных устройствах.
На мэйнфреймах IBM термин состояние ожидания используется с другим значением. Состояние ожидания относится к остановке ЦП, возможно, из-за какой-то серьезной ошибки (например, неустранимая ошибка во время IPL операционной системы ). Состояние ожидания обозначается битом 14 PSW, установленным в 1, а другие биты PSW предоставляют код состояния ожидания, указывающий причину ожидания. В режиме z/Architecture код состояния ожидания находится в битах 116-127. [1]