Если кэш находится под напряжением в определенном состоянии простоя и если он реализован с использованием технологии энергозависимой памяти (такой как SRAM), кэш потеряет свое содержимое. В этом случае, чтобы поддерживать архитектурное состояние, все грязные строки должны быть записаны в некоторую структуру памяти, которая сохранит свое состояние (например, следующий уровень иерархии памяти). Большинство процессоров поддерживают режимы ожидания при включении питания. Например, на процессорах Intel, в ядре C6 и более глубоких состояниях ядро полностью запитано, включая все частные кэши. Когда ядро выходит из какого-либо из этих состояний, кеши будут холодными.
Это может быть полезно в состоянии простоя с целью экономии энергии, чтобы sh кешировать, но не отключать питание. Ворота это. Спецификация ACPI определяет такое состояние, называемое C3, в разделе 8.1.4 (версии 6.3):
В то время как в состоянии C3 кэши процессора поддерживают состояние, но процессор не обязан выполнять sn oop мастер шины или многопроцессорный ЦП обращается к памяти.
Далее в том же разделе описывается, что C3 не требует сохранения состояния кэшей, но также не требует его очистки. По сути, ядро в ACPI C3 не гарантирует согласованность кэша. В реализации ACPI C3 либо системное программное обеспечение должно было бы вручную обработать кэш sh перед тем, как ядро войдет в C3, либо аппаратное обеспечение будет использовать некоторый механизм для обеспечения согласованности (очистка - не единственный способ). Это состояние бездействия потенциально может сэкономить больше энергии по сравнению с более мелкими состояниями, поскольку нет необходимости задействовать согласованность кэша.
Насколько мне известно, единственные процессоры, которые реализуют версию ACPI C3 без питания. это от Intel, начиная с Pentium II. Все существующие процессоры Intel x86 могут быть классифицированы в соответствии с тем, как они реализуют ACPI C3:
- Intel Core и более поздние версии, а также Bonnell и более поздние версии. Состояние оборудования называется C3. Реализация использует несколько механизмов снижения мощности. Тот, который относится к вопросу, сбрасывает все основные кэши (инструкции, данные, операции, блок пейджинга), вероятно, выполняя процедуру микрокода при входе в состояние ожидания. То есть все грязные строки записываются обратно на ближайший общий уровень иерархии памяти (L2 или L3), и все допустимые чистые строки становятся недействительными. Так поддерживается когерентность кэша. Остальная часть состояния ядра сохраняется.
- Pentium II, Pentium III, Pentium 4 и Pentium M: состояние аппаратного обеспечения в этих процессорах называется Sleep. В состоянии сна процессор полностью синхронизирован и не реагирует на рычаги (среди прочего). Кэш-память на кристалле не очищается, а аппаратное обеспечение не предоставляет альтернативного механизма, который защищает действительные строки от непоследовательности. Поэтому системное программное обеспечение отвечает за обеспечение согласованности кэша. В противном случае Intel указывает, что если запрос sn oop происходит к процессору, который переходит в спящий режим или уже находится в спящем режиме или уже находится в спящем режиме, то в результате поведение будет непредсказуемым.
- Все остальные не поддерживают ACPI C3.
Обратите внимание, что стробирование часов экономит электроэнергию путем:
- Отключение логики генерации часов c, которая сама потребляет энергию.
- Выключение любая логика c, которая что-то делает в каждом тактовом цикле.
При стробировании тактовых импульсов мощность Dynami c сводится практически к нулю. Но для поддержания состояния в энергозависимых структурах памяти все еще потребляется постоянное энергопотребление c.
Многие процессоры имеют по крайней мере один уровень встроенного кэш-памяти, который используется несколькими ядрами. Процессоры под брендом Core Solo и Core Duo (независимо от того, основаны ли они на микроархитектурах Enhanced Pentium M или Core) представили состояние простоя, которое реализует ACPI C3 на уровне пакетов, где общий кэш может постепенно отключаться и восстанавливаться (уровень пакетов Intel состояния соответствуют состояниям системного уровня в спецификации ACPI). Это аппаратное состояние называется PC7, Enhanced Deeper Sleep State, Deep C4 или другими именами в зависимости от процессора. Общий кэш намного больше по сравнению с частными, поэтому для полного заполнения sh потребуется гораздо больше времени. Это может снизить эффективность PC7. Поэтому он сбрасывается постепенно (эта операция выполняется последним ядром пакета, который входит в CC7). Кроме того, когда пакет выходит из PC7, общий кэш также постепенно включается, что может снизить стоимость входа в PC7 в следующий раз. Это базовая идея, но детали зависят от процессора. В PC7 значительная часть пакета находится под напряжением.