Eu estava lendo esta página sobre como os estados de suspensão funcionam no Windows e fiquei intrigado com o vetor de redefinição. Meu entendimento atual é esse;
Quando o sistema está em S2 / S3, o processador é totalmente desligado, os caches são perdidos e o barramento é pelo menos parado, se não totalmente desligado. O conteúdo da RAM é preservado para permitir um resumo rápido.
Em resumo, o processador lê o endereço armazenado no vetor de redefinição (em x86, isto é 0xFFFFFFF0
), que geralmente é mapeado para a ROM . Salta para o endereço que acabou de ler e começa a executar.
Como é ROM, presumo que a memória não pode ser prontamente gravada e, portanto, deve permanecer semi-constante (excluindo flashes do BIOS, etc.)
Assim, o processador liga, lê um endereço da ROM, pula para esse endereço e inicia a execução (presumivelmente um POST ou outra inicialização).
Em algum momento ao longo do caminho, ele precisa voltar ao que estava executando antes de dormir.
Onde está o endereço para continuar armazenado e o que faz com que o processador procure lá?
In these states (S1-S3), volatile memory is kept refreshed to maintain the system state. Some components remain powered so the computer can wake from input from the keyboard, LAN, or a USB device.
que estou ciente de que o Win8 desconecta o usuário antes de hibernar (S4) em vez de fazer um desligamento real, para que possa retomar rapidamente (terminar a sessão significa menos memória para gravar no disco = mais rápido)