Мой процессор Intel меняет тактовую частоту в зависимости от использования, но как он определяет, на какой тактовой частоте работать? Тактовая частота определяется программным обеспечением ОС с использованием алгоритма или аппаратно? Это зависит от количества прерываний? Оборот кеша? Сам процессор устанавливает свои собственные часы? Или его устанавливает отдельный контроллер? Или софт?
16
Ответы:
Частота ядра процессора не поступает напрямую с материнской платы. Эти часы обычно намного медленнее (часто в 10 и более раз), чем внутренняя частота процессора. Вместо этого, тактовый сигнал от материнской платы используются в качестве опорной частоты для более высокой частоты фазовой автоматической подстройки частоты управляемого генератора внутри процессора. Сгенерированные тактовые импульсы работают с кратным эталонного тактового сигнала, и это кратное число можно изменить, установив определенные регистры в ЦП. Фактическая генерация часов производится исключительно аппаратно.
Чтобы еще больше снизить мощность, ЦП также подает сигнал регулятору напряжения, подающему напряжение на его сердечник, для работы при более низкой уставке. На низких частотах ЦП может работать при более низком напряжении без сбоев, а поскольку потребление энергии пропорционально квадрату напряжения, даже небольшое снижение напряжения может сэкономить большое количество энергии.
Масштабирование напряжения и частоты выполняется аппаратно, но решение работать в режиме пониженного энергопотребления принимается программным обеспечением (ОС). То, как ОС определяет оптимальный режим работы, представляет собой отдельную, более сложную проблему, но, скорее всего, все сводится к тому, сколько% времени система простаивает в последнее время. В основном в режиме ожидания, ниже частота. В основном занят, поднять частоту. Как только ОС решит, с какой частотой работать, нужно просто установить регистр.
Ссылка: « Усовершенствованная технология Intel SpeedStep для процессора Intel Pentium M »
источник
Что ж, в современных операционных системах есть нечто, называемое «планировщик задач». Он запускается периодически (очень быстро) и выбирает (из списка) следующую задачу для выполнения. Задачи могут быть во многих состояниях, таких как выбор, заблокирован, спит и т. Д.
Если все задачи находятся в режиме выбора (ожидая чего-то от операционной системы) и не могут быть обработаны, или некоторые из них находятся в спящем режиме и т. Д., Поэтому не требуется интенсивное использование выполняемого процессора, планировщик задач вызовет специальную задачу, которая называется «простоя». ».
Если драйвер ЦП проверяет таблицу планировщика задач и проверяет, что незанятое задание выполняется большую часть времени ЦП, он просто отправит команду в схему PLL генерации тактового сигнала ЦП, чтобы уменьшить его тактовую частоту. Напротив, если задача простоя занимает все меньше и меньше времени процессора (что означает, что процессор интенсивно используется), драйвер процессора увеличит скорость процессора.
Это не очень сложно, но есть нижний предел, при котором ЦП нельзя регулировать ниже, потому что не все ЦП полностью статичны (поэтому им нужны циклы обновления). Полностью статический процессор может опуститься до 0 (нуля) МГц, потому что нет никакого состояния, которое может быть потеряно, если часы остановлены.
источник