Як процесор може динамічно змінювати тактову частоту?


16

Мій процесор Intel змінює тактову частоту в залежності від використання, але як він вирішує, на якій тактовій частоті працювати? Чи тактова частота визначається програмним забезпеченням ОС за допомогою алгоритму, чи це на основі апаратних засобів? Це залежить від кількості перерв? Оборот кеша? Чи CPU сам встановлює свій годинник? Або встановлює його окремий контролер? Або програмне забезпечення?


1
Який це процесор? Вбудовані системи зазвичай не працюють так.
Леон Геллер

Можливо, щось більше для SuperUser ?

Деякі вбудовані процесорні сімейства, наприклад PIC24F, мають програмовану тактову частоту, і це можна використовувати для економії енергії. Зовнішній осцилятор можна використовувати так, щоб годинник для чутливих до часу периферійних пристроїв залишався стабільним.
Каз

Відповіді:


18

Основний тактовий процесор не отримується безпосередньо з материнської плати. Цей годинник, як правило, набагато повільніше (часто в 10 разів і більше), ніж внутрішня частота ЦП. Натомість тактовий сигнал з материнської плати використовується в якості опорної частоти для осцилятора, керованого цикловим блокуванням з більш високою частотою, всередині процесора. Згенерований годинник працює на деякому кратному еталонному тактові, і це число можна змінити, встановивши певні регістри в процесорі. Фактична генерація годинника робиться виключно апаратними засобами.

Щоб ще більше знизити потужність, центральний процесор також подає сигнал на регулятор напруги, що подає його основну напругу, щоб працювати на нижній заданій точці. На нижчих частотах ЦП може працювати при меншій напрузі без несправності, а оскільки споживання електроенергії пропорційне квадрату напруги, навіть невелике зниження напруги може заощадити велику кількість енергії.

Масштабування напруги та частоти проводиться апаратним забезпеченням, але рішення про запуск в режимі низької потужності приймається програмним забезпеченням (ОС). Те, як ОС визначає оптимальний режим для запуску, - це окрема, грізна проблема, але вона, ймовірно, зводиться до того, наскільки% часу система останнім часом не працює. Переважно простоюють, знижують частоту. Переважно зайняті, піднімайте частоту. Після того, як ОС вирішує частоту, на яку потрібно запускатись, це лише питання встановлення регістра.

Довідка: " Покращена технологія Intel SpeedStep для процесора Intel Pentium M "


3
Такі функції, як Intel Turbo Boost, не вимагають програмного втручання для експлуатації теплових запасів за рахунок збільшення тактової частоти. Очевидно, апаратне забезпечення також може відслідковувати вузькі вузькі місця (наприклад, шляхом підрахунку циклів зупинки через доступ до пам'яті) та зменшувати частоту, коли продуктивність обчислень не є первинним вузьким місцем.
Пол А. Клейтон

Btw економія на частоті комутації майже лінійна і не стільки за рахунок провідності, яка була б av ^ 2 співвідношеннями
JonRB

3

Ну а в сучасних операційних системах є щось, що називається "планувальник завдань". Він запускається періодично (дуже швидко) і вибирає (зі списку), яке буде виконати наступне завдання. Завдання можуть бути у багатьох станах, наприклад, вибрано, заблоковано, спляче тощо.

Якщо всі завдання знаходяться в режимі вибору (чекають чогось з операційної системи) і їх не можна обслуговувати, або деякі сплять і т. Д., Тому не використовується інтенсивне використання процесора, планувальник завдань викликає спеціальне завдання під назвою "простоювати" ".

Якщо драйвер процесора перевіряє таблицю планувальників завдань і перевіряє, що завдання в режимі очікування працює більшу частину процесорного часу, він просто надішле команду до схеми PLL генерації тактового процесора, щоб зменшити її тактову частоту. Навпаки, якщо завдання в режимі очікування забирає все менше часу процесора (мається на увазі, що процесор сильно звикає), драйвер процесора збільшить швидкість процесора.

Це не дуже важко, але є нижня межа, коли процесор не може бути знижений нижче, оскільки не всі процесори повністю статичні (тому вони потребують оновлення циклів). Повністю статичний процесор може виходити на 0 (нульовий) МГц, оскільки стан не втрачається, якщо годинник зупиняється.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.