Como os temporizadores de despertar funcionam?

2

O Windows geralmente coloca um computador no modo S3 (standby / save-to-RAM), onde a energia é cortada da CPU, mas não da RAM.

Se a energia é cortada para a CPU, então como os temporizadores de ativação são acionados? Qual componente sabe quando acordar automaticamente o computador?

Se estiver na BIOS, como o Windows informa a BIOS da próxima hora de ativação?

    
por oldmud0 02.08.2015 / 21:20

1 resposta

1

Isso é feito por meio dos registros de "alarme" no RTC (relógio em tempo real) . No PC-AT original, esse chip era um MC146818 da Motorola.

Antes de adormecer (ACPI S3), o kernel programará o próximo horário de ativação para os registros de "alarme" no RTC, que está sempre ligado. Quando esse tempo de ativação chegar, o RTC acionará o chipset para ligar o sistema e retomar a partir do S3. (Observe que, na maioria dos sistemas modernos, o RTC é, na verdade, parte da ponte sul em si, portanto, a sinalização de ativação ocorre internamente).

Depois que o sistema sair do modo de suspensão, o kernel avaliará sua lista de eventos de ativação pendentes, despachando os que chegaram.

Este documento da Intel descreve a interface (para sistemas x86):

A programação desses registradores é feita no kernel do Linux em cmos_set_alarm .

    
por 02.08.2015 / 21:32

Tags