Я читал эту страницу о том, как спящие состояния работают в Windows, и я был заинтригован вектором сброса. Мое нынешнее понимание таково;
Когда система находится в режиме S2/S3, процессор полностью выключен, кэши потеряны, и шина, по крайней мере, остановлена, если не полностью отключена. Содержимое ОЗУ сохраняется для быстрого возобновления работы.
При возобновлении процессор считывает адрес, сохраненный в векторе сброса (в x86 это 0xFFFFFFF0
), который обычно отображается в ПЗУ. Он переходит на адрес, который только что прочитал, и начинает выполняться.
Поскольку это ПЗУ, я предполагаю, что память не может быть легко записана и поэтому должна оставаться полупостоянной (за исключением перепрограммирования BIOS и т.д.)
Таким образом, процессор включается, считывает адрес из ПЗУ, переходит на этот адрес и начинает выполнение (предположительно, POST или другая инициализация).
В какой-то момент пути ему нужно вернуться к тому, что он выполнял перед сном.
Где хранится адрес для возобновления и что заставляет процессор искать там?