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