телевизори. Конзоли. Проектори и аксесоари. Технологии. Цифрова телевизия

Как да намалите захранващото напрежение на процесора на лаптоп. Ние намаляваме генерирането на топлина от процесора и увеличаваме живота на батерията на лаптопа

Съвременните настолни и (особено) мобилни процесори използват редица енергоспестяващи технологии: ODCM, CxE, EIST и др. Днес ще се интересуваме от може би най-високото ниво от тях: гъвкав контрол на честотата и напрежението на процесорното ядро ​​по време на работа - Cool "n "Quiet, PowerNow! от AMD и Подобрен SpeedStep(EIST) от Intel.

Най-често потребител на компютър или лаптоп просто трябва да активира (отметнете квадратче) поддръжка за определена технология в BIOS и/или операционната система - не фина настройкаобикновено не се предоставя, въпреки че, както показва практиката, може да бъде много полезно. В тази статия ще говоря за това как можете да контролирате работното напрежение на ядрото на процесора от операционна система(Например Intel Pentium M и FreeBSD), и защо това може да е необходимо.

Въпреки големия брой ръководства, рядко се намира подробно описание на технологията Enhanced SpeedStep от гледна точка на операционната система (а не на крайния потребител), особено на руски, така че значителна част от статията е посветена на подробности за изпълнението и има донякъде теоретичен характер.

Надявам се, че тази статия ще бъде полезна не само за потребителите на FreeBSD: ще се докоснем и до GNU/Linux, Windows и Mac OS X. Въпреки това, в такъв случайконкретната операционна система е от второстепенно значение.

Предговор

Миналата година обнових процесора на стария си лаптоп: инсталирах Pentium M 780 вместо стандартния 735 и го натиснах до максимума, така да се каже. Лаптопът започна да се нагрява повече при натоварване (поради увеличаване на разсейването на топлината с 10 W); Не обърнах особено внимание на това (освен че почистих и смазах охладителя за всеки случай), но един хубав ден, по време на дълга компилация, компютърът... просто се изключи (температурата наистина достигна критичните сто градуса ). Показах стойността на системната променлива hw.acpi.thermal.tz0.temperature в трея, за да следя температурата и, ако нещо се случи, да прекъсна "тежката" задача навреме. Но след известно време загубих бдителност (температурата винаги оставаше в рамките на нормалното) и всичко се повтори. В този момент реших, че вече не искам постоянно да се страхувам от срив при дълго натоварване на процесора и да държа ръката си върху Ctrl-C, нито да насилвам процесора.

Обикновено промяната на стандартното напрежение означава увеличаването му, за да се осигури стабилна работа на процесора по време на овърклок (т.е. при повишена честота). Грубо казано, всяка стойност на напрежението съответства на определен диапазон от честоти, при които може да работи, и задачата на овърклокъра е да намери максималната честота, при която процесорът все още не е "бъг". В нашия случай задачата е в известен смисъл симетрична: за известна честота (по-точно, както скоро ще разберем, набор от честоти) да се намери най-ниското напрежение, което осигурява стабилен работа на процесора. Не искам да намалявам работната честота, за да не загубя производителност - лаптопът вече е далеч от най-високия клас. Освен това намалете напрежението по-изгодно.

Малко теория

Както е известно, разсейването на топлината на процесора е пропорционално на неговия капацитет, честота и квадратнапрежение (който се интересува защо е така, може да се опита сам да изведе зависимостта, разглеждайки процесора като набор от елементарни CMOS инвертори (логически отрицатели), или да последва връзките: едно, две, три).

Модерен мобилни процесориможе да консумира до 50-70 W, което в крайна сметка се разсейва в топлина. Това е много (помнете лампите с нажежаема жичка), особено за лаптоп, който в офлайн режим под натоварване ще „яде“ батерията, както това прасе яде портокали. В затворени пространства топлината най-вероятно ще трябва да се отвежда активно, което означава допълнителна консумация на енергия за въртене на вентилатора на охладителя (евентуално няколко).

Естествено, това състояние на нещата не устройваше никого и производителите на процесори започнаха да мислят как да оптимизират консумацията на енергия (и съответно преноса на топлина) и в същото време да предотвратят прегряването на процесора. За тези, които се интересуват, препоръчвам да прочетат няколко прекрасни статии от Дмитрий Беседин, а междувременно ще премина направо към въпроса.

Малко история

За първи път технологията SpeedStep (версия 1.1) се появи във второто поколение на трети Pentium (произведени с помощта на 18-микронен технически процес, мобилен Coppermine за лаптопи, 2000 г.), който в зависимост от натоварването или източника на захранване на компютъра - мрежа или батерия - може да превключва между високи и ниски честоти поради променлив множител. В икономичен режим процесорът консумира приблизително половината от енергията.

С прехода към 13-микронен технически процес технологията получава номер на версия 2.1 и става „подобрена“ - сега процесорът може да намали не само честотата, но и напрежението. Версия 2.2 е адаптация за архитектурата NetBurst, а към третата версия (платформа Centrino) технологията официално ще се нарича Enhanced Intel SpeedStep(EIST).

Версия 3.1 (2003) е използвана за първи път в първото и второто поколение процесори Pentium M (ядра Banias и Dothan). Честотата варираше (отначало просто превключваше между две стойности) от 40% до 100% от основата, на стъпки от 100 MHz (за Banias) или 133 MHz (за Dothan, нашият случай). В същото време Intel въвежда динамично управление на капацитета на кеша от второ ниво (L2), което позволява още по-добра оптимизация на консумацията на енергия. Версия 3.2 (Enhanced EIST) - адаптация за многоядрени процесори със споделен L2 кеш. (Малък ЧЗВ от Intel относно технологията SpeedStep.)

Сега, вместо сляпо да следваме многобройни инструкции и уроци, нека изтеглим pdf файла и се опитаме да разберем принципа на работа на EST (ще продължа да използвам това съкращение, защото е по-универсално и по-кратко).

Как работи EST

И така, EST ви позволява да контролирате производителността и консумацията на енергия на процесора и динамично, по време на експлоатацията му. За разлика от по-ранните реализации, които изискваха хардуерна поддръжка (в чипсета) за промяна на работните параметри на процесора, EST позволява програмно, т.е. като използвате BIOS или операционна система, променете множителя (съотношението на честотата на процесора към честотата на шината) и напрежението на ядрото (V cc) в зависимост от натоварването, вида на захранващия източник на компютъра, температурата на процесора и/или настройките на операционната система (политики).

По време на работа процесорът е в едно от няколко състояния (състояния на мощност): T (дросел), S (заспиване), C (празен), P (производителност), превключвайки между тях според определени правила (стр. 386 от ACPI 5.0 спецификация).

Всеки процесор, присъстващ в системата, трябва да бъде описан в DSDT таблица, най-често в пространството от имена \_PR, и обикновено предоставя редица методи, чрез които той взаимодейства с операционната система (PM драйвер) и които описват възможностите на процесора ( _PDC, _PPC), поддържани състояния (_CST, _TSS, _PSS) и тяхното управление (_PTC, _PCT). Необходимите стойности за всеки процесор (ако е включен в така наречения пакет за поддръжка на процесора) се определят от BIOS на дънната платка, който попълва съответните таблици и ACPI методи (стр. 11 pdf) при зареждане на машината .

EST контролира работата на процесора в P-състояние и те ще ни интересуват. Например Pentium M поддържа шест P-състояния (вижте Фиг. 1.1 и Таблица 1.6 pdf), различаващи се по напрежение и честота:

IN общ случай, когато процесорът е предварително неизвестен, единственият повече или по-малко надежден (и препоръчан от Intel) метод за работа с него е ACPI. Можете да взаимодействате с конкретен процесор директно, заобикаляйки ACPI, чрез регистрите MSR (Model-Specific Register), включително директно от командна линия: От версия 7.2 FreeBSD използва помощната програма cpucontrol(8) за това.

За да разберете дали вашият процесор поддържа EST, можете да погледнете 16-ия бит в регистъра IA_32_MISC_ENABLE (0x1A0), той трябва да бъде зададен:

# kldload cpuctl # cpucontrol -m 0x1a0 /dev/cpuctl0 | (прочетете _ msr hi lo ; echo $((lo >> 16 & 1))) 1
Подобна команда за GNU/Linux (изисква пакет msr-tools):

# modprobe msr # echo $((`rdmsr -c 0x1a0` >> 16 & 1)) 1
Преходът между състоянията възниква при запис в регистъра IA32_PERF_CTL (0x199). Можете да разберете текущия режим на работа, като прочетете регистъра IA32_PERF_STATUS (0x198), който се актуализира динамично (Таблица 1.4 pdf).В бъдеще ще пропускам префикса IA32_ за краткост.

# cpucontrol -m 0x198 /dev/cpuctl0 MSR 0x198: 0x0612112b 0x06000c20
От документацията следва, че текущото състояние е кодирано в долните 16 бита (ако командата се изпълни няколко пъти, тяхната стойност може да се промени - това означава, че EST работи). Ако се вгледате по-отблизо в останалите битове, те също не са боклук. Като потърсите в Google, можете да разберете какво означават.

Структура на регистър PERF_STATUS

Данните, прочетени от PERF_STATUS, са представени от следната структура(ако приемем, че данните се съхраняват като little-endian):

Struct msr_perf_status ( unsigned curr_psv: 16; /* Текущ PSV */ unsigned status: 8; /* Статусни знамена */ unsigned min_mult: 8; /* Минимален множител */ unsigned max_psv: 16; /* Максимален PSV */ unsigned init_psv: 16; /* PSV при включване */ );
Три 16-битови полета са така наречените стойности на състоянието на производителността (PSV), ще разгледаме тяхната структура по-долу: текущата стойност на PSV, максималната (в зависимост от процесора) и стойността при стартиране на системата (когато е включена) . Текущата стойност (curr_psv) очевидно се променя при промяна на режима на работа, максималната (max_psv) обикновено остава постоянна, началната стойност (init_psv) не се променя: като правило тя е равна на максималната стойност за настолни компютри и сървъри, но минимумът за мобилни процесори. Минимален множител (min_mult) за Процесори на Intelпочти винаги е равно на шест. Полето за състояние съдържа стойността на някои флагове, например, когато възникнат събитията EST или THERM (т.е. когато P-състоянието се промени или съответно процесорът прегрява).

Сега, след като знаем целта на всичките 64 бита на регистъра PERF_STATUS, можем да дешифрираме думата, която прочетохме по-горе: 0x0612 112b 0x06 00 0c20⇒ PSV в началото 0x0612, максимална стойност 0x112b, минимален множител 6 (както се очаква), флаговете са изчистени, текущата PSV стойност = 0x0c20. Какво точно означават тези 16 бита?

Структура на стойността на състоянието на ефективността (PSV).

Много е важно да знаете и разберете какво е PSV, защото в тази форма се задават режимите на работа на процесора.

Struct psv ( unsigned vid: 6; /* Идентификатор на напрежението */ unsigned _reserved1: 2; unsigned freq: 5; /* Идентификатор на честотата */ unsigned _reserved2: 1; unsigned nibr: 1; /* Нецяло числово съотношение на шина */ unsigned slfm: 1; /* Динамична FSB честота (Super-LFM) */);
Динамичното превключване на честотата на FSB указва да се пропуска всеки втори тактов цикъл на FSB, т.е. намалете работната честота наполовина; тази функция е въведена за първи път в процесори Core 2 Duo (ядро Merom) и не ни засяга, както и съотношението на шините Non-integer - специален режим, поддържан от някои процесори, който позволява, както подсказва името, по-фино управление от тяхната честота.

Две полета са свързани със самата EST технология - честотни идентификатори (Frequency Identifier, Fid), което е числено равно на множителя, и напрежение (Voltage Identifier, Vid), което съответства на нивото на напрежение (също така обикновено е най-малко документирано ).

Идентификатор на напрежението

Intel много неохотно разкрива информация (обикновено се изисква NDA) за това как точно се кодира ID на напрежението за всеки процесор. Но за повечето популярни процесори, за щастие, тази формула е известна; по-специално за нашия Pentium M (и много други): V cc = Vid 0 + (Vid × V стъпка), където V cc е текущото (реално) напрежение, Vid 0 е базовото напрежение (когато Vid == 0) , V стъпка - стъпка. Таблица за някои популярни процесори (всички стойности в миливолта):
процесор Вид 0 V стъпка V обувка Vmin Vmax
Pentium M 700,0 16,0 xxxx,x ххх,х xxxx,x
Е6000, Е4000 825,0 12,5 1100,0 850,0 1500,0
E8000, E7000 825,0 12,5 1100,0 850,0 1362,5
X9000 712,5 12,5 1200,0 800,0 1325,0
T9000 712,5 12,5 1200,0 750,0 1300,0
P9000, P8000 712,5 12,5 1200,0 750,0 1300,0
Q9000D, Q8000D 825,0 12,5 1100,0 850,0 1362,5
Q9000M 712,5 12,5 1200,0 850,0 1300,0
Умножителят (т.е. Fid) се записва в PSV, изместен 8 бита наляво, долните шест бита са заети от Vid. защото в нашия случай останалите битове могат да бъдат пренебрегнати, тогава PSV, честотата на процесора, системната шина и физическото напрежение са свързани с проста формула (за Pentium M):
Сега нека да разгледаме контролния регистър (PERF_CTL). Записването в него трябва да става по следния начин: първо се чете текущата стойност (цялата 64-битова дума), променят се необходимите битове в нея и се записват обратно в регистъра (т.нар. четене-промяна-запис). .

Структура на регистър PERF_CTL

struct msr_perf_ctl ( unsigned psv: 16; /* Искан PSV */ unsigned _reserved1: 16; unsigned ida_disengage: 1; /* IDA disengage */ unsigned _reserved2: 31; );
Битът за освобождаване на IDA (Intel Dynamic Acceleration) ви позволява временно да деактивирате опортюнистичния контрол на честотата на процесорите Intel Core 2 Duo T7700 и по-нови - пак не ни интересува. Low 16 bits (PSV) е режимът, в който „молим“ процесора да превключи.

Таблица _PSS

Таблицата _PSS е масив от състояния ( Пакетв терминологията на ACPI) или метод, който връща такъв масив; всяко състояние (P-състояние) на свой ред се определя от следната структура (стр. 409 от ACPI спецификацията):

Struct Pstate ( unsigned CoreFrequency; /* Core CPU работна честота, MHz */ unsigned Power; /* Максимално разсейване на мощността, mW */ unsigned Latency; /* Най-лошото забавяне на неналичност на процесора по време на преход, µs */ unsigned BusMasterLatency; / * Закъснение в най-лошия случай, докато главните шини нямат достъп до паметта, µs */ неподписано управление; /* Стойност, която трябва да бъде записана в PERF_CTL за превключване към това състояние */ неподписано състояние; /* Стойност (трябва да е равна на прочетената от PERF_STATUS) */ );
По този начин всяко P-състояние се характеризира с определена работна честота на ядрото, максимално разсейване на мощността, транзитни закъснения (всъщност това е времето за преход между състоянията, през които процесорът и паметта са недостъпни) и накрая, най-интересното: PSV , което съответства на това състояниеи който трябва да бъде записан в PERF_CTL, за да премине към това състояние (Контрол). За да сте сигурни, че процесорът успешно е преминал към ново състояние, трябва да прочетете регистъра PERF_STATUS и да го сравните със стойността, записана в полето Status.

EST драйверът на операционната система може да „знае“ за някои процесори, т.е. ще можете да ги управлявате без поддръжка на ACPI. Но това е рядкост, особено в днешно време (въпреки че за undervolting на Linux, някъде преди версия 2.6.20, беше необходимо да се закърпи таблиците в драйвера, а през 2011 г. този метод беше доста често срещан).

Струва си да се отбележи, че EST драйверът може да работи дори ако няма _PSS таблица и неизвестен процесор, т.к. максималните и минималните стойности могат да бъдат намерени от PERF_STATUS (в този случай, очевидно, броят на P-състоянията се изражда до две).

Стига теория. Какво да правим с всичко това?

Сега, когато знаем 1) предназначението на всички битове в необходимите MSR думи, 2) как точно е кодиран PSV за нашия процесор и 3) къде да търсим в DSDT необходими настройки, време е да направя таблица с честоти и напрежения по подразбиране. Нека да изхвърлим DSDT и да потърсим таблицата _PSS там. За Pentium M 780 трябва да изглежда така:

Default_PSS стойности

Име (_PSS, Пакет (0x06) ( // Дефинирани са общо 6 състояния (P-състояния) Пакет (0x06) ( 0x000008DB, // 2267 MHz (срв. Fid × FSB такт) 0x00006978, // 27000 mW 0x0000000A, // 10 µs (отговаря на спецификацията) 0x0000000A, // 10 µs 0x0000112B, // 0x11 = 17 (множител, Fid), 0x2b = 43 (Vid) 0x0000112B ), пакет (0x06) ( 0x0000074B, // 1867 MHz (82%) от максимума) 0x000059D8, // 23000 mW 0x0000000A, 0x0000000A, 0x00000E25, // Fid = 14, Vid = 37 0x00000E25 ), Пакет (0x06) ( 0x00000640, // 1600 MHz (71% от максимума) 0x00 005208, // 21000 mW 0x0000000A, 0x0000000A, 0x00000C20, // Fid = 12, Vid = 32 0x00000C20), пакет (0x06) ( 0x00000535, // 1333 MHz (59% от максимума) 0x00004650, // 18000 mW 0x0000000A, 0x0000000A, 0x 00000A1C, / / Fid = 10, Vid = 28 0x00000A1C ), Пакет (0x06) ( 0x0000042B, // 1067 MHz (47% от максимума) 0x00003E80, // 16000 mW 0x0000000A, 0x0000000A, 0x00000817, // Fid = 8, Vid = 23 0x00000817 ), Пакет (0x06) (0x00000320, // 800 MHz (35% от максимума) 0x000032c8, // 13000 MW 0x0000000a, 0x0000000a, 0x00000612, // fid = 6, vid = 18 0x00000612)))))


И така, ние знаем Vid по подразбиране за всяко P-ниво: 43, 37, 32, 28, 23, 18, което съответства на напрежения от 1388 mV до 988 mV. Същността на undervolting е, че тези напрежения вероятно са малко по-високи от това, което действително е необходимо за стабилна работа на процесора.Нека се опитаме да определим "границите на това, което е позволено".

Написах прост шел скрипт за това, който постепенно понижава Vid и изпълнява прост цикъл (разбира се, демонът powerd(8) трябва да бъде убит преди това). По този начин определих напреженията, които поне биха позволили на процесора да не замръзне, след това пуснах теста Super Pi няколко пъти и сглобих отново ядрото; По-късно повиших стойността на Vid за двете максимални честоти с още една точка, в противен случай gcc понякога се срива поради грешка в незаконна инструкция. В резултат на всички експерименти в продължение на няколко дни беше получен следният набор от „стабилни“ Vids: 30, 18, 12, 7, 2, 0.

Анализ на резултатите

Сега, след като емпирично определихме минималните безопасни напрежения, е интересно да ги сравним с оригиналните:
Намаляването на максималното напрежение дори с 15% доведе до доста забележими резултати: дългосрочното натоварване не само вече не води до прегряване на процесора и аварийно изключване, но температурата вече почти никога не надвишава 80°C. Прогнозираният живот на батерията в режим „офис“, съдейки по acpiconf -i 0, се увеличи от 1 час 40 м на 2 ч 25 м. (Не толкова много, но литиево-йонните клетки се уморяват с времето и не съм променил батерията, откакто купих лаптопа преди седем години.)

Сега трябва да се уверим, че настройките се прилагат автоматично. Можете например да модифицирате драйвера cpufreq(4), така че PSV стойностите да се вземат от неговата собствена таблица, а не чрез ACPI. Но това е неудобно, дори само защото трябва да запомните да закърпите драйвера, когато актуализирате системата, и като цяло - изглежда по-скоро като мръсен хак, отколкото като решение. Вероятно можете да закърпите powerd(8) по някакъв начин, което е лошо поради приблизително същите причини. Можете просто да стартирате скрипта, като намалите напрежението, като директно пишете в MSR (което всъщност направих, за да определя „стабилните“ напрежения), но тогава ще трябва да запомните и независимо да обработвате преходи между състояния (не само P-състояния, но изобщо, когато лаптопът се събуди от заспиване). Това също не е важното.

Ако получаваме PSV стойности чрез ACPI, тогава е най-логично да променим таблицата _PSS в DSDT. За щастие, не е нужно да се занимавате с BIOS за това: FreeBSD може да зареди DSDT от файл (вече говорихме за модифициране на ACPI таблици на Habré, така че няма да се спираме на това в подробности сега). Заменете задължителните полета в DSDT:

Корекция за намаляване на напрежението за _PSS

@@ -7385.8 +7385.8 @@ 0x00006978, 0x0000000A, 0x0000000A, - 0x0000112B, - 0x0000112B + 0x0000111D, + 0x0000111D ), Пакет (0x06) @@ -7395.8 + 7 395.8 @@ 0x000059D8, 0x0000000A, 0x0000000A, - 0x00000E25, - 0x00000E25 + 0x00000E12, + 0x00000E12 ), Пакет (0x06) @@ -7405.8 +7405.8 @@ 0x00005208, 0x0000000A, 0x0000000A , - 0x00000C20, - 0x00000C20 + 0x00000 C0C, + 0x00000C0C), пакет (0x06) @@ -7415.8 +7415.8 @@ 0x00004650 , 0x0000000A, 0x0000000A, - 0x00000A1C, - 0x00000A1C + 0x00000A07, + 0x00000A07 ), Пакет (0x06) @@ -74 25.8 +7425.8 @@ 0x00003E80, 0x0000 000A, 0x0000000A, - 0x00000817, - 0x00000817 + 0x00000802, + 0x00000802 ), пакет ( 0x06) @@ -7435.8 +7435.8 @@ 0x000032C8, 0x0000000A , 0x0000000A, - 0x00000612, - 0x00000612 + 0x00000600, + 0x00000600 ) ) )


Компилираме нов AML файл (ACPI байткод) и модифицираме /boot/loader.conf, така че FreeBSD да зарежда нашия модифициран DSDT вместо този по подразбиране:

Acpi_dsdt_load="ДА" acpi_dsdt_name="/root/undervolt.aml"
Това е общо взето всичко. Единственото нещо е, че не забравяйте да коментирате тези два реда в /boot/loader.conf, ако промените процесора.

Дори ако няма да намалявате стандартните напрежения, възможността за конфигуриране на управлението на състоянията на процесора (не само P-състояния) може да бъде полезна. В края на краищата често се случва „кривият“ BIOS да попълва таблиците неправилно, непълно или изобщо да не ги попълва (например, защото има Celerone, който не поддържа EST, а производителят не предоставя официално неговата подмяна). В този случай ще трябва да свършите цялата работа сами. Имайте предвид, че добавянето само на таблицата _PSS може да не е достатъчно; По този начин C-състоянията се определят от таблицата _CST и в допълнение може да е необходимо да се опишат самите контролни процедури (Контрол на производителността, _PCT). За щастие, това не е трудно и е описано доста подробно, с примери, в глава осма на ACPI спецификацията.

Undervolting в GNU/Linux

Да ви кажа честно, отначало мислех, че всичко, което мога да направя, е да прочета Ръководството за Undervolting на Gentoo и просто да го адаптирам за FreeBSD. Това се оказа не толкова просто, защото документът се оказа изключително глупав (което всъщност е странно за Gentoo Wiki). За съжаление, не намерих нищо подобно на новия им уебсайт, така че трябваше да се задоволя старо копие; и въпреки че разбирам, че това ръководство е загубило голяма част от своята релевантност, все пак ще го критикувам малко. :-)

По някаква причина те веднага, без да обявяват война, ми предлагат да закърпя ядрото (във FreeBSD, за минута, изобщо нямаме система кодне е трябвало да се променя). Въведете във вътрешността на драйвера или запишете в някои начални скриптове стойностите на определени „безопасни“ напрежения, получени от неизвестен и как от специална таблица (в която Pentium M 780 е подигравателно представен от ред, състоящ се само от въпрос марки). Следвайте съветите, някои от които са написани от хора, които явно нямат представа за какво говорят. И най-важното е напълно неясно защо и как точно работят тези магически замени на едни числа с други; няма начин да „докоснете“ EST, преди да закърпите нещо и да възстановите ядрото, и никога не се споменават MSR регистри и работа с тях от командния ред. Промяната на ACPI таблици не се счита за алтернативна или предпочитана опция.

Makos взаимодейства доста тясно с (и очаква правилна работа) ACPI и модифицирането на таблици е един от основните методи за персонализирането му за специфичен хардуер. Следователно, първото нещо, което идва на ум, е да изхвърлите и закърпите вашия DSDT по същия начин. Алтернативен метод: google://IntelEnhancedSpeedStep.kext, например едно, две, три.

Друга „прекрасна“ помощна програма (за щастие, вече остаряла) предлага да закупите за $10 възможността за промяна на напрежението и честотата. :-)

Съвременните настолни и (особено) мобилни процесори използват редица енергоспестяващи технологии: ODCM, CxE, EIST и др. Днес ще се интересуваме от може би най-високото ниво от тях: гъвкав контрол на честотата и напрежението на процесорното ядро ​​по време на работа - Cool "n "Quiet, PowerNow! за AMD и Enhanced SpeedStep (EIST) за Intel.

Най-често потребителят на компютър или лаптоп просто трябва да активира (постави отметка) поддръжка за определена технология в BIOS и/или операционната система - обикновено не се предоставя фина настройка, въпреки че, както показва практиката, може да бъде много полезно . В тази статия ще говоря за това как можете да контролирате работното напрежение на ядрото на процесора от операционната система (използвайки примера на Intel Pentium M и FreeBSD) и защо това може да е необходимо.

Въпреки големия брой ръководства, рядко се намира подробно описание на технологията Enhanced SpeedStep от гледна точка на операционната система (а не на крайния потребител), особено на руски, така че значителна част от статията е посветена на подробности за изпълнението и има донякъде теоретичен характер.

Надявам се, че тази статия ще бъде полезна не само за потребителите на FreeBSD: ще се докоснем и до GNU/Linux, Windows и Mac OS X. В този случай обаче конкретната операционна система е от второстепенно значение.

Предговор

Миналата година обнових процесора на стария си лаптоп: инсталирах Pentium M 780 вместо стандартния 735 и го натиснах до максимума, така да се каже. Лаптопът започна да се нагрява повече при натоварване (поради увеличаване на разсейването на топлината с 10 W); Не обърнах особено внимание на това (освен че почистих и смазах охладителя за всеки случай), но един хубав ден, по време на дълга компилация, компютърът... просто се изключи (температурата наистина достигна критичните сто градуса ). Показах стойността на системната променлива hw.acpi.thermal.tz0.temperature в трея, за да следя температурата и, ако нещо се случи, да прекъсна "тежката" задача навреме. Но след известно време загубих бдителност (температурата винаги оставаше в рамките на нормалното) и всичко се повтори. В този момент реших, че вече не искам постоянно да се страхувам от срив при дълго натоварване на процесора и да държа ръката си върху Ctrl-C, нито да насилвам процесора.

Обикновено промяната на стандартното напрежение означава увеличаването му, за да се осигури стабилна работа на процесора по време на овърклок (т.е. при повишена честота). Грубо казано, всяка стойност на напрежението съответства на определен диапазон от честоти, при които може да работи, и задачата на овърклокъра е да намери максималната честота, при която процесорът все още не е "бъг". В нашия случай задачата е в известен смисъл симетрична: за известна честота (по-точно, както скоро ще разберем, набор от честоти), намерете най-ниското напрежение, което осигурява стабилна работа на процесора. Не искам да намалявам работната честота, за да не загубя производителност - лаптопът вече е далеч от най-високия клас. Освен това намалете напрежението по-изгодно.

Малко теория

Както е известно, разсейването на топлината на процесора е пропорционално на неговия капацитет, честота и квадратнапрежение (който се интересува защо е така, може да се опита сам да изведе зависимостта, разглеждайки процесора като набор от елементарни CMOS инвертори (логически отрицатели), или да последва връзките: едно, две, три).

Съвременните мобилни процесори могат да консумират до 50-70 W, които в крайна сметка се разсейват в топлина. Това е много (помнете лампите с нажежаема жичка), особено за лаптоп, който в офлайн режим под натоварване ще „яде“ батерията, както това прасе яде портокали. В затворени пространства топлината най-вероятно ще трябва да се отвежда активно, което означава допълнителна консумация на енергия за въртене на вентилатора на охладителя (евентуално няколко).

Естествено, това състояние на нещата не устройваше никого и производителите на процесори започнаха да мислят как да оптимизират консумацията на енергия (и съответно преноса на топлина) и в същото време да предотвратят прегряването на процесора. За тези, които се интересуват, препоръчвам да прочетат няколко прекрасни статии от Дмитрий Беседин, а междувременно ще премина направо към въпроса.

Малко история

За първи път технологията SpeedStep (версия 1.1) се появи във второто поколение на трети Pentium (произведени с помощта на 18-микронен технически процес, мобилен Coppermine за лаптопи, 2000 г.), който в зависимост от натоварването или източника на захранване на компютъра - мрежа или батерия - може да превключва между високи и ниски честоти поради променлив множител. В икономичен режим процесорът консумира приблизително половината от енергията.

С прехода към 13-микронен технически процес технологията получава номер на версия 2.1 и става „подобрена“ - сега процесорът може да намали не само честотата, но и напрежението. Версия 2.2 е адаптация за архитектурата NetBurst, а към третата версия (платформа Centrino) технологията официално ще се нарича Enhanced Intel SpeedStep (EIST).

Версия 3.1 (2003) е използвана за първи път в първото и второто поколение процесори Pentium M (ядра Banias и Dothan). Честотата варираше (отначало просто превключваше между две стойности) от 40% до 100% от основата, на стъпки от 100 MHz (за Banias) или 133 MHz (за Dothan, нашият случай). В същото време Intel въвежда динамично управление на капацитета на кеша от второ ниво (L2), което позволява още по-добра оптимизация на консумацията на енергия. Версия 3.2 (Enhanced EIST) - адаптация за многоядрени процесори със споделен L2 кеш. (Малък ЧЗВ от Intel относно технологията SpeedStep.)

Сега, вместо сляпо да следваме многобройни инструкции и уроци, нека изтеглим pdf файла и се опитаме да разберем принципа на работа на EST (ще продължа да използвам това съкращение, защото е по-универсално и по-кратко).

Как работи EST

И така, EST ви позволява да контролирате производителността и консумацията на енергия на процесора и динамично, по време на експлоатацията му. За разлика от по-ранните реализации, които изискваха хардуерна поддръжка (в чипсета) за промяна на работните параметри на процесора, EST позволява програмно, т.е. като използвате BIOS или операционна система, променете множителя (съотношението на честотата на процесора към честотата на шината) и напрежението на ядрото (V cc) в зависимост от натоварването, вида на захранващия източник на компютъра, температурата на процесора и/или настройките на операционната система (политики).

По време на работа процесорът е в едно от няколко състояния (състояния на мощност): T (дросел), S (заспиване), C (празен), P (производителност), превключвайки между тях според определени правила (стр. 386 от ACPI 5.0 спецификация).

Всеки процесор, присъстващ в системата, трябва да бъде описан в DSDT таблица, най-често в пространството от имена \_PR, и обикновено предоставя редица методи, чрез които той взаимодейства с операционната система (PM драйвер) и които описват възможностите на процесора ( _PDC, _PPC), поддържани състояния (_CST, _TSS, _PSS) и тяхното управление (_PTC, _PCT). Необходимите стойности за всеки процесор (ако е включен в така наречения пакет за поддръжка на процесора) се определят от BIOS на дънната платка, който попълва съответните таблици и ACPI методи (стр. 11 pdf) при зареждане на машината .

EST контролира работата на процесора в P-състояние и те ще ни интересуват. Например Pentium M поддържа шест P-състояния (вижте Фиг. 1.1 и Таблица 1.6 pdf), различаващи се по напрежение и честота:

В общия случай, когато процесорът е предварително неизвестен, единственият повече или по-малко надежден (и препоръчан от Intel) метод за работа с него е ACPI. Можете да взаимодействате директно с конкретен процесор, заобикаляйки ACPI, чрез MSR регистри (Model-Specific Register), включително директно от командния ред: като се започне от версия 7.2, FreeBSD използва помощната програма cpucontrol(8) за това.

За да разберете дали вашият процесор поддържа EST, можете да погледнете 16-ия бит в регистъра IA_32_MISC_ENABLE (0x1A0), той трябва да бъде зададен:

# kldload cpuctl # cpucontrol -m 0x1a0 /dev/cpuctl0 | (прочетете _ msr hi lo ; echo $((lo >> 16 & 1))) 1
Подобна команда за GNU/Linux (изисква пакет msr-tools):

# modprobe msr # echo $((`rdmsr -c 0x1a0` >> 16 & 1)) 1
Преходът между състоянията възниква при запис в регистъра IA32_PERF_CTL (0x199). Можете да разберете текущия режим на работа, като прочетете регистъра IA32_PERF_STATUS (0x198), който се актуализира динамично (Таблица 1.4 pdf).В бъдеще ще пропускам префикса IA32_ за краткост.

# cpucontrol -m 0x198 /dev/cpuctl0 MSR 0x198: 0x0612112b 0x06000c20
От документацията следва, че текущото състояние е кодирано в долните 16 бита (ако командата се изпълни няколко пъти, тяхната стойност може да се промени - това означава, че EST работи). Ако се вгледате по-отблизо в останалите битове, те също не са боклук. Като потърсите в Google, можете да разберете какво означават.

Структура на регистър PERF_STATUS

Данните, прочетени от PERF_STATUS, са представени от следната структура (ако приемем, че данните се съхраняват като little-endian):

Struct msr_perf_status ( unsigned curr_psv: 16; /* Текущ PSV */ unsigned status: 8; /* Статусни знамена */ unsigned min_mult: 8; /* Минимален множител */ unsigned max_psv: 16; /* Максимален PSV */ unsigned init_psv: 16; /* PSV при включване */ );
Три 16-битови полета са така наречените стойности на състоянието на производителността (PSV), ще разгледаме тяхната структура по-долу: текущата стойност на PSV, максималната (в зависимост от процесора) и стойността при стартиране на системата (когато е включена) . Текущата стойност (curr_psv) очевидно се променя при промяна на режима на работа, максималната (max_psv) обикновено остава постоянна, началната стойност (init_psv) не се променя: като правило тя е равна на максималната стойност за настолни компютри и сървъри, но минимумът за мобилни процесори. Минималният множител (min_mult) за процесорите на Intel почти винаги е шест. Полето за състояние съдържа стойността на някои флагове, например, когато възникнат събитията EST или THERM (т.е. когато P-състоянието се промени или съответно процесорът прегрява).

Сега, след като знаем целта на всичките 64 бита на регистъра PERF_STATUS, можем да дешифрираме думата, която прочетохме по-горе: 0x0612 112b 0x06 00 0c20⇒ PSV в началото 0x0612, максимална стойност 0x112b, минимален множител 6 (както се очаква), флаговете са изчистени, текущата PSV стойност = 0x0c20. Какво точно означават тези 16 бита?

Структура на стойността на състоянието на ефективността (PSV).

Много е важно да знаете и разберете какво е PSV, защото в тази форма се задават режимите на работа на процесора.

Struct psv ( unsigned vid: 6; /* Идентификатор на напрежението */ unsigned _reserved1: 2; unsigned freq: 5; /* Идентификатор на честотата */ unsigned _reserved2: 1; unsigned nibr: 1; /* Нецяло числово съотношение на шина */ unsigned slfm: 1; /* Динамична FSB честота (Super-LFM) */);
Динамичното превключване на честотата на FSB указва да се пропуска всеки втори тактов цикъл на FSB, т.е. намалете работната честота наполовина; тази функция е въведена за първи път в процесори Core 2 Duo (ядро Merom) и не ни засяга, както и съотношението на шините Non-integer - специален режим, поддържан от някои процесори, който позволява, както подсказва името, по-фино управление от тяхната честота.

Две полета са свързани със самата EST технология - честотни идентификатори (Frequency Identifier, Fid), което е числено равно на множителя, и напрежение (Voltage Identifier, Vid), което съответства на нивото на напрежение (също така обикновено е най-малко документирано ).

Идентификатор на напрежението

Intel много неохотно разкрива информация (обикновено се изисква NDA) за това как точно се кодира ID на напрежението за всеки процесор. Но за повечето популярни процесори, за щастие, тази формула е известна; по-специално за нашия Pentium M (и много други): V cc = Vid 0 + (Vid × V стъпка), където V cc е текущото (реално) напрежение, Vid 0 е базовото напрежение (когато Vid == 0) , V стъпка - стъпка. Таблица за някои популярни процесори (всички стойности в миливолта):
процесор Вид 0 V стъпка V обувка Vmin Vmax
Pentium M 700,0 16,0 xxxx,x ххх,х xxxx,x
Е6000, Е4000 825,0 12,5 1100,0 850,0 1500,0
E8000, E7000 825,0 12,5 1100,0 850,0 1362,5
X9000 712,5 12,5 1200,0 800,0 1325,0
T9000 712,5 12,5 1200,0 750,0 1300,0
P9000, P8000 712,5 12,5 1200,0 750,0 1300,0
Q9000D, Q8000D 825,0 12,5 1100,0 850,0 1362,5
Q9000M 712,5 12,5 1200,0 850,0 1300,0
Умножителят (т.е. Fid) се записва в PSV, изместен 8 бита наляво, долните шест бита са заети от Vid. защото в нашия случай останалите битове могат да бъдат пренебрегнати, тогава PSV, честотата на процесора, системната шина и физическото напрежение са свързани с проста формула (за Pentium M):
Сега нека да разгледаме контролния регистър (PERF_CTL). Записването в него трябва да става по следния начин: първо се чете текущата стойност (цялата 64-битова дума), променят се необходимите битове в нея и се записват обратно в регистъра (т.нар. четене-промяна-запис). .

Структура на регистър PERF_CTL

struct msr_perf_ctl ( unsigned psv: 16; /* Искан PSV */ unsigned _reserved1: 16; unsigned ida_disengage: 1; /* IDA disengage */ unsigned _reserved2: 31; );
Битът за деактивиране на IDA (Intel Dynamic Acceleration) ви позволява временно да деактивирате опортюнистичния контрол на честотата на процесори Intel Core 2 Duo T7700 и по-нови - отново, не представлява интерес за нас. Low 16 bits (PSV) е режимът, в който „молим“ процесора да превключи.

Таблица _PSS

Таблицата _PSS е масив от състояния ( Пакетв терминологията на ACPI) или метод, който връща такъв масив; всяко състояние (P-състояние) на свой ред се определя от следната структура (стр. 409 от ACPI спецификацията):

Struct Pstate ( unsigned CoreFrequency; /* Core CPU работна честота, MHz */ unsigned Power; /* Максимално разсейване на мощността, mW */ unsigned Latency; /* Най-лошото забавяне на неналичност на процесора по време на преход, µs */ unsigned BusMasterLatency; / * Закъснение в най-лошия случай, докато главните шини нямат достъп до паметта, µs */ неподписано управление; /* Стойност, която трябва да бъде записана в PERF_CTL за превключване към това състояние */ неподписано състояние; /* Стойност (трябва да е равна на прочетената от PERF_STATUS) */ );
Така всяко P-състояние се характеризира с някаква работна честота на ядрото, максимално разсейване на мощността, транзитни закъснения (всъщност това е времето за преход между състояния, през които процесорът и паметта са недостъпни), накрая най-интересното: PSV , което съответства на това състояние и което трябва да бъде записано в PERF_CTL, за да се премине към това състояние (Контрол). За да сте сигурни, че процесорът успешно е преминал към ново състояние, трябва да прочетете регистъра PERF_STATUS и да го сравните със стойността, записана в полето Status.

EST драйверът на операционната система може да „знае“ за някои процесори, т.е. ще можете да ги управлявате без поддръжка на ACPI. Но това е рядкост, особено в днешно време (въпреки че за undervolting на Linux, някъде преди версия 2.6.20, беше необходимо да се закърпи таблиците в драйвера, а през 2011 г. този метод беше доста често срещан).

Струва си да се отбележи, че EST драйверът може да работи дори ако няма _PSS таблица и неизвестен процесор, т.к. максималните и минималните стойности могат да бъдат намерени от PERF_STATUS (в този случай, очевидно, броят на P-състоянията се изражда до две).

Стига теория. Какво да правим с всичко това?

След като вече знаем 1) предназначението на всички битове в необходимите MSR думи, 2) как точно е кодиран PSV за нашия процесор и 3) къде да търсим необходимите настройки в DSDT, време е да направим таблица с честоти и напрежения по подразбиране. Нека да изхвърлим DSDT и да потърсим таблицата _PSS там. За Pentium M 780 трябва да изглежда така:

Default_PSS стойности

Име (_PSS, Пакет (0x06) ( // Дефинирани са общо 6 състояния (P-състояния) Пакет (0x06) ( 0x000008DB, // 2267 MHz (срв. Fid × FSB такт) 0x00006978, // 27000 mW 0x0000000A, // 10 µs (отговаря на спецификацията) 0x0000000A, // 10 µs 0x0000112B, // 0x11 = 17 (множител, Fid), 0x2b = 43 (Vid) 0x0000112B ), пакет (0x06) ( 0x0000074B, // 1867 MHz (82%) от максимума) 0x000059D8, // 23000 mW 0x0000000A, 0x0000000A, 0x00000E25, // Fid = 14, Vid = 37 0x00000E25 ), Пакет (0x06) ( 0x00000640, // 1600 MHz (71% от максимума) 0x00 005208, // 21000 mW 0x0000000A, 0x0000000A, 0x00000C20, // Fid = 12, Vid = 32 0x00000C20), пакет (0x06) ( 0x00000535, // 1333 MHz (59% от максимума) 0x00004650, // 18000 mW 0x0000000A, 0x0000000A, 0x 00000A1C, / / Fid = 10, Vid = 28 0x00000A1C ), Пакет (0x06) ( 0x0000042B, // 1067 MHz (47% от максимума) 0x00003E80, // 16000 mW 0x0000000A, 0x0000000A, 0x00000817, // Fid = 8, Vid = 23 0x00000817 ), Пакет (0x06) (0x00000320, // 800 MHz (35% от максимума) 0x000032c8, // 13000 MW 0x0000000a, 0x0000000a, 0x00000612, // fid = 6, vid = 18 0x00000612)))))


И така, ние знаем Vid по подразбиране за всяко P-ниво: 43, 37, 32, 28, 23, 18, което съответства на напрежения от 1388 mV до 988 mV. Същността на undervolting е, че тези напрежения вероятно са малко по-високи от това, което действително е необходимо за стабилна работа на процесора.Нека се опитаме да определим "границите на това, което е позволено".

Написах прост шел скрипт за това, който постепенно понижава Vid и изпълнява прост цикъл (разбира се, демонът powerd(8) трябва да бъде убит преди това). По този начин определих напреженията, които поне биха позволили на процесора да не замръзне, след това пуснах теста Super Pi няколко пъти и сглобих отново ядрото; По-късно повиших стойността на Vid за двете максимални честоти с още една точка, в противен случай gcc понякога се срива поради грешка в незаконна инструкция. В резултат на всички експерименти в продължение на няколко дни беше получен следният набор от „стабилни“ Vids: 30, 18, 12, 7, 2, 0.

Анализ на резултатите

Сега, след като емпирично определихме минималните безопасни напрежения, е интересно да ги сравним с оригиналните:
Намаляването на максималното напрежение дори с 15% доведе до доста забележими резултати: дългосрочното натоварване не само вече не води до прегряване на процесора и аварийно изключване, но температурата вече почти никога не надвишава 80°C. Прогнозираният живот на батерията в режим „офис“, съдейки по acpiconf -i 0, се увеличи от 1 час 40 м на 2 ч 25 м. (Не толкова много, но литиево-йонните клетки се уморяват с времето и не съм променил батерията, откакто купих лаптопа преди седем години.)

Сега трябва да се уверим, че настройките се прилагат автоматично. Можете например да модифицирате драйвера cpufreq(4), така че PSV стойностите да се вземат от неговата собствена таблица, а не чрез ACPI. Но това е неудобно, дори само защото трябва да запомните да закърпите драйвера, когато актуализирате системата, и като цяло - изглежда по-скоро като мръсен хак, отколкото като решение. Вероятно можете да закърпите powerd(8) по някакъв начин, което е лошо поради приблизително същите причини. Можете просто да стартирате скрипта, като намалите напрежението, като директно пишете в MSR (което всъщност направих, за да определя „стабилните“ напрежения), но тогава ще трябва да запомните и независимо да обработвате преходи между състояния (не само P-състояния, но изобщо, когато лаптопът се събуди от заспиване). Това също не е важното.

Ако получаваме PSV стойности чрез ACPI, тогава е най-логично да променим таблицата _PSS в DSDT. За щастие, не е нужно да се занимавате с BIOS за това: FreeBSD може да зареди DSDT от файл (вече сме писали за модифициране на ACPI таблици на Habré повече от веднъж, така че няма да се спираме на това сега подробно) . Заменете задължителните полета в DSDT:

Корекция за намаляване на напрежението за _PSS

@@ -7385.8 +7385.8 @@ 0x00006978, 0x0000000A, 0x0000000A, - 0x0000112B, - 0x0000112B + 0x0000111D, + 0x0000111D ), Пакет (0x06) @@ -7395.8 + 7 395.8 @@ 0x000059D8, 0x0000000A, 0x0000000A, - 0x00000E25, - 0x00000E25 + 0x00000E12, + 0x00000E12 ), Пакет (0x06) @@ -7405.8 +7405.8 @@ 0x00005208, 0x0000000A, 0x0000000A , - 0x00000C20, - 0x00000C20 + 0x00000 C0C, + 0x00000C0C), пакет (0x06) @@ -7415.8 +7415.8 @@ 0x00004650 , 0x0000000A, 0x0000000A, - 0x00000A1C, - 0x00000A1C + 0x00000A07, + 0x00000A07 ), Пакет (0x06) @@ -74 25.8 +7425.8 @@ 0x00003E80, 0x0000 000A, 0x0000000A, - 0x00000817, - 0x00000817 + 0x00000802, + 0x00000802 ), пакет ( 0x06) @@ -7435.8 +7435.8 @@ 0x000032C8, 0x0000000A , 0x0000000A, - 0x00000612, - 0x00000612 + 0x00000600, + 0x00000600 ) ) )


Компилираме нов AML файл (ACPI байткод) и модифицираме /boot/loader.conf, така че FreeBSD да зарежда нашия модифициран DSDT вместо този по подразбиране:

Acpi_dsdt_load="ДА" acpi_dsdt_name="/root/undervolt.aml"
Това е общо взето всичко. Единственото нещо е, че не забравяйте да коментирате тези два реда в /boot/loader.conf, ако промените процесора.

Дори ако няма да намалявате стандартните напрежения, възможността за конфигуриране на управлението на състоянията на процесора (не само P-състояния) може да бъде полезна. В края на краищата често се случва „кривият“ BIOS да попълва таблиците неправилно, непълно или изобщо да не ги попълва (например, защото има Celerone, който не поддържа EST, а производителят не предоставя официално неговата подмяна). В този случай ще трябва да свършите цялата работа сами. Имайте предвид, че добавянето само на таблицата _PSS може да не е достатъчно; По този начин C-състоянията се определят от таблицата _CST и в допълнение може да е необходимо да се опишат самите контролни процедури (Контрол на производителността, _PCT). За щастие, това не е трудно и е описано доста подробно, с примери, в глава осма на ACPI спецификацията.

Undervolting в GNU/Linux

Да ви кажа честно, отначало мислех, че всичко, което мога да направя, е да прочета Ръководството за Undervolting на Gentoo и просто да го адаптирам за FreeBSD. Това се оказа не толкова просто, защото документът се оказа изключително глупав (което всъщност е странно за Gentoo Wiki). За съжаление, не намерих нищо подобно на новия им уебсайт, така че трябваше да се задоволя със старото копие; и въпреки че разбирам, че това ръководство е загубило голяма част от своята релевантност, все пак ще го критикувам малко. :-)

По някаква причина те веднага, без да обявяват война, ми предлагат да закърпя ядрото (във FreeBSD, за минута, изобщо нямаме система кодне е трябвало да се променя). Въведете във вътрешността на драйвера или запишете в някои начални скриптове стойностите на определени „безопасни“ напрежения, получени от неизвестен и как от специална таблица (в която Pentium M 780 е подигравателно представен от ред, състоящ се само от въпрос марки). Следвайте съветите, някои от които са написани от хора, които явно нямат представа за какво говорят. И най-важното е напълно неясно защо и как точно работят тези магически замени на едни числа с други; няма начин да „докоснете“ EST, преди да закърпите нещо и да възстановите ядрото, и никога не се споменават MSR регистри и работа с тях от командния ред. Промяната на ACPI таблици не се счита за алтернативна или предпочитана опция.

Makos взаимодейства доста тясно с (и очаква правилна работа) ACPI и модифицирането на таблици е един от основните методи за персонализирането му за специфичен хардуер. Следователно, първото нещо, което идва на ум, е да изхвърлите и закърпите вашия DSDT по същия начин. Алтернативен метод: google://IntelEnhancedSpeedStep.kext, например, едно, две, три.

Друга „прекрасна“ помощна програма (за щастие, вече остаряла) предлага да закупите за $10 възможността за промяна на напрежението и честотата. :-)

Регулиране на напрежението за процесори Intel

ВНИМАНИЕ! Авторът на статията не носи никаква отговорност за щети, причинени на компютъра в резултат на използването на описаните тук действия

Някои потребители имат повече късмет, други по-малко. Има късметлии, които получават процесори, които могат лесно да се овърклокнат до следващата „стандартна“ честота на FSB: Celeron до 100 и модификации Pentium III „E“ до 133 MHz, съответно. Въпреки това, такъв процесор не е толкова лесно да се получи: те са налични на пазарите, но продавачите често искат толкова много за „гарантиран“ камък с възможност за овърклок, че можете да закупите процесор с приблизително същата, но „родна“ честота, гарантирана от производителя. Но често срещате процесори, които работят на по-високи честоти, но са нестабилни. Тоест, появяват се неочаквани повреди, програмите „извършват неприемливи операции“ и се затварят, приятни за окото “ сини екрани"и подобни изкушения.

Често можете да се отървете от това, като повишите захранващото напрежение на процесора. За класическия Celeron (на ядрото Mendocino; т.е. модели 300A-533) стандартно напрежениеядрото е 2 V. По принцип без особен риск може да се вдигне с 5-10% (до 2,1 - 2,2 V). Абсолютно същото важи и за процесорите с ядрото Coppermine (Celeron 533A-766 и Pentium III): променят се само абсолютните числа.

Въпреки това е добре, ако можете да зададете желаното ниво на напрежение с помощта на BIOS или джъмпери на дънната платка, но какво да направите, ако това не е възможно (което обикновено се случва, когато говорим за евтини дънни платкиО)? Всъщност основната идея на овърклока изчезва: да се получи по-голяма производителност на евтин хардуер. На платки с конектор Slot 1 можете да използвате специални адаптери, но това не улеснява потребителите на платки с гнезда (освен това понякога разликата от 5-7 долара в цената на адаптер с регулиране на напрежението и прост модел без това е критично). Разликата в цената между платките, предназначени за овърклок, и евтините сокет модели е до $30 (в допълнение, повечето от тези платки имат ATX формат, така че при надграждане на компютър трябва да смените корпуса) и за да спестите тази сума, понякога струва си да използвате няколко нестандартни метода.

IN напоследъкТемата за промяна на захранващото напрежение стана актуална не само за овърклокърите. Факт е, че наличните дънни платки на стари чипсети (LX, EX, BX, ZX, Apollo Pro) често могат да работят поне с нови Celerons (понякога веднага, понякога след известна модификация), а понякога и с Pentium III, и единствената пречка е преобразувателят на напрежение на платката, който не е в състояние да осигури по-малко от 1.8 V. Напълно логично решение на този проблем е принудителното превключване на процесора на това напрежение.

Внимание. Не забравяйте, че с увеличаването на напрежението, мощността, разсейвана от процесора, също се увеличава. Това важи особено за овърклок: ще се наблюдава допълнително генериране на топлина поради увеличаване на честотата на процесора. Затова си струва да помислите предварително за доброто охлаждане на процесора (обаче си струва да направите това във всеки случай, независимо дали напрежението ще се увеличи или не)

За захранване на процесори от клас Pentium II и Celeron са необходими доста мощни захранвания, така че вторичното захранване на кеша (означено Vccs на фигурата) е отделено от основното захранване (Vccp) и със същите номинални стойности, стойностите на напрежението от линията Vccs не се използват. Тоест, в зависимост от вида на процесора (от нивото на напрежение на съответния крак на процесора), стабилизаторът на дънната платка задава необходимото напрежение.

Таблица №1. Идентификация на захранващото напрежение
VID Напрежение, V VID Напрежение, V
01111 1.30 11111 няма процесор
01110 1.35 11110 2.1
01101 1.40 11101 2.2
01100 1.45 11100 2.3
01011 1.50 11011 2.4
01010 1.55 11010 2.5
01001 1.60 11001 2.6
01000 1.65 11000 2.7
00111 1.70 10111 2.8
00110 1.75 10110 2.9
00101 1.80 10101 3.0
00100 1.85 10100 3.1
00011 1.90 10011 3.2
00010 1.95 10010 3.3
00001 2.00 10001 3.4
00000 2.05 10000 3.5

VID се използва само във версията SEPP/SECC (Slot1), така че напрежението на платките за Socket 370 може да се увеличи само до 2,05 V. За да работите с всички процесори на Intel, е необходима поддръжка за разпределените стойности с удебелен; Захранващите напрежения за FCPGA процесори са подчертани.

Таблица № 2. Захранване за някои процесори
процесор Vccp, ядро, V Vccs, кеш, V
Pentium II 233-300 (Klamath) 2.8 3.3
Pentium II 266-450 (Dechutes) 2.0 2.0
Pentium III 450-550 (Katmai) 2.0 3.3
Pentium III 600 (Katmai) 2.05 3.3
Celeron 266-533 (Covington, Mendocino) 2.0 -
Celeron 533A-600
1.5
1.7
-
Celeron 633-766
1.65
1.7
-

(Celeron 533A -766 има две модификации, предназначени за различни напрежения)

Физически (0) означава, че щифтът е свързан към земята (GND или Vss) и (1), че щифтът е свободен, тоест не е свързан с нищо (щифтът трябва да има потенциал за логическа единица).

По този начин можете да накарате стабилизатора да произвежда не стандартните 2 V за Celeron (ще говорим за тях по-късно), но повече или по-малко (интересното е, че в някои случаи имаше подобрение в стабилността на работа при намалено напрежение).

Фигурата показва щифтовете за сокет процесори. За процесори, произведени в дизайна на слот 1, следните щифтове отговарят за идентификацията на мощността:

VID0 VID1 VID2 VID3 VID4
B120 A120 A119 B119 A121

Например, ако залепим VID, VID, VID, получаваме напрежение от 2,2 V. Това трябва да е достатъчно за всеки овърклок и в същото време е доста приемливо за процесора да работи дълго време с добро охлаждане : ) Тоест, можете лесно да получите някои нива на напрежение, което изисква само изолиране на някои крака. Например за PPGA и SEPP (Slot1):

Примери за захранващи напрежения на процесора
Напрежение, V Кои крака трябва да бъдат залепени Препоръки
1.80 VID Ако не сте фен на овърклок, тогава това напрежение може да се използва за намаляване на температурата на процесора по време на работа или за пестене на енергия :) (Celeron консумира 10-20 W в зависимост от стандартната честота и това води до 10% спестявания: ))
1.90 VID Като цяло важи същото като за напрежение от 1,8 V
2.00 Стандартно напрежение Дадено като пример
2.20 VID;VID;VID Процесора би трябвало да работи без проблеми, само дето ще загрява повече.
2.40 VID;VID;VID Може или не може да работи :) (но най-вероятно първото), и да стане още по-горещо
2.60 VID;VID Рискът е доста голям, но ентусиастите могат да опитат (ако наистина искат да овърклокнат максимално процесора).
2.80 VID;VID;VID И не опитвайте - това е само за пример.

Останалите стойности са по-трудни за получаване, тъй като е необходимо по-силно въздействие върху процесора - ще трябва да свържете съответния контакт на процесора или конектора към земята (GND). Така например, като свържете щифтовете на слота (или гнездото) VID и GND към задна странадънна платка, получаваме напрежение от 2,05 V. Това обаче е рискована операция, тъй като в случай на грешка или неточно запояване, напрежението на I/O веригите (3,3 V) може да стигне до ядрото, което ще доведе до тежки последствия. Но по този начин можете да получите всяко напрежение от таблица № 1 на ядрото на процесора.

Всъщност за това как да запечатате краката. Вариантите са няколко. Първо, можете да ги изолирате, като нанесете устойчив лак. Този метод работи нормално само с наистина силен лак, тъй като при инсталиране в гнездото краката на процесора изпитват голяма физическа сила, което може да доведе до разрушаване на изолационния слой и съответно непланирано ниво на напрежение може да достигне до ядрото (например, 2,6 вместо 2,2 V, ако изолацията на проводника VID). Второ, за сокет процесор можете просто да ги отхапете, а за слот процесор можете да отрежете съответните проводници, но този метод не оставя шанс за отстъпление (ако отрязаният проводник все още може да бъде запоен, тогава запояването на отхапания крак е доста проблематично).

Най-реалистичният вариант, очевидно, е да се запечатат краката на процесора. В случай на кутия тип SEPP/SECC, можете да използвате лента, внимателно изрязана по формата на контактната подложка. На платката на процесора има надписи, които могат да ви помогнат да разберете къде се намира всеки щифт. В случай на PPGA и FCPGA можете да използвате този метод. От флуоропластично или полиетиленово фолио (от каквото се правят торбички) се изрязва кръг с диаметър около 5 mm. Поставя се така, че центърът му да е точно над контакта, който трябва да се изолира. След това с помощта на игла за шиене ръбовете на кръга се спускат между изводите.

По време на инсталацията обикновено не възникват проблеми, но може да възникне проблем при изваждането на процесора от гнездото: филмът остава вътре и не е толкова лесно да го премахнете (в краен случай гнездото може да бъде разглобено и всичко ненужно може да бъде извади от там :))

На снимката VID кракът е „подготвен“

С дължимата грижа и внимание е доста лесно да се извършат необходимите операции.

Същите методи са подходящи и за увеличаване или намаляване на захранващото напрежение в Pentium II и Pentium III, както във версиите Slot 1, така и FCPGA (разбира се, с подходящи промени по отношение на нивата на напрежение). Наистина трябва да се има предвид, че в случай на процесори с ядра Klamath и Coppermine, за да увеличите захранващото напрежение, ще трябва да вземете поялник: в този случай няма да можете да направите без късо съединение на някои от контактите към земята (за разлика от сърцевините, проектирани за напрежение 2, 0 V).

Също така не забравяйте, че не всички регулатори на напрежението, инсталирани на дънни платки, поддържат абсолютно всички нива. Съответният чип обикновено се намира близо до гнездото на процесора. По неговата маркировка можете да разпознаете производителя на чипа и, следователно, неговите характеристики. Ето адресите на някои фирми, произвеждащи регулатори на напрежение:

В статията са използвани материали от книгата на Михаил Гук " Процесори Pentium II, Pentium Pro и просто Pentium“, публикуван от Peter, както и официална документация от Intel за процесори Celeron

В интернет има дискусия за една много интересна програма, наречена RMClock. Преди това вече се бях сблъсквал с програмата няколко пъти, но неясните на пръв поглед настройки и липсата на каквато и да е документация предизвикаха отхвърляне и обезсърчиха всяко желание да се занимавам с тази помощна програма. Въпреки това програмата е много интересна и заслужава внимание. Сега ще ви кажа защо и как може да привлече средния собственик на лаптоп.

Разработчик RightMark

Размер на файла за качване 463 Kb

Цел на програмата

Малка помощна програма, която следи тактовата честота, дроселирането, натоварването на процесора, напрежението и температурата на ядрото на процесора в реално време. Той може също да управлява производителността и консумацията на енергия на процесори, които поддържат функции за управление на захранването. В режим автоматично управлениетой постоянно следи нивото на натоварване на процесора и автоматично променя неговата тактова честота, напрежение на ядрото и/или ниво на дроселиране в съответствие с концепцията за „производителност при поискване“.

Полза за средния потребител

По този начин намалете напрежението, подавано към централния процесор намаляване на консумацията на енергия, намаляване на генерирането на топлина и увеличаване на автономността.

Без да навлизаме в технически подробности, идеята е съвсем проста – намаляване на консумацията на енергия централен процесор(ПРОЦЕСОР). Методът не е универсален и не е 100% правилен, тъй като всеки процесор има уникални физически свойства и има голяма вероятност при една и съща тактова честота да изисква по-малко енергия от стандартната за всички процесори от този тип. Колко можете да намалите консумацията на енергия зависи от късмета и вашия процесор. Имах късмет, така че резултатите бяха много показателни.

Инсталация

Просто следваме инструкциите и нищо повече. Само имайте предвид, че програмата автоматично се добавя при стартиране и става стандартен софтуер за управление на профилите на потреблението на енергия. Така че, ако имате инсталиран друг софтуер (собствени помощни програми от Acer, ASUS), тогава те трябва да бъдат напълно деактивирани, за да се избегнат конфликти.

Настройки

Настройки

В този раздел трябва да маркирате две точки в блока ЗапочвамНастроики. За да може приложението да стартира автоматично при стартиране на Windows.

Управление

Също така оставяме всичко по подразбиране и проверяваме дали елементът Активирайтеоперационна системамощноступравлениеинтеграцияактивиран

Профили

Тук започва забавлението. За състояния AC захранване (работа от електрическата мрежа) и Батерия (работа от батерия), задайте необходимите профили. Когато работите от мрежата, препоръчвам настройка На търсене (производителност при необходимост) и когато работи на батерия Мощност Спестяване.

Непосредствено под профилите се показват всички възможни състояния на процесора (множители, FID), както и напрежението (VID), подадено към процесора в това състояние. Зависи от текущото състояние тактова честота, на който работи процесорът; Възможността за промяна на честотата е направена, за да се намали консумацията на енергия по време на леко натоварване или време на престой.

Сега нашата задача е да зададем по-ниско напрежение за всеки умножител. Не експериментирах твърде дълго и зададох минималното напрежение за всеки умножител. Веднага ще отговоря на въпроса за вредността на подобни действия - нищо няма да се случи с вашия процесор, в най-лошия случай системата ще замръзне. В моя случай всичко работи добре, но ако имате проблеми, опитайте да намалите напрежението на малки стъпки, докато минимална стойност, при което системата ще работи стабилно.

Сега трябва да настроите профили Изпълнение при поискване И Енергоспестяващ. За да направите това, изберете подходящите елементи. И в двата случая поставете отметка в квадратчето Използвайте П- състояние преходи ( PST), профила, в който се намирате в момента. Освен това за профила На търсене изберете всички множители от списъка и за профила Мощност Спестяване само първият (това означава, че когато работи на батерия, процесорът винаги ще работи минимална честота, разбира се, можете да изберете различен множител, като по този начин увеличите максимално допустимата честота). Оставяме останалите опции неактивни.

работа

Това е всичко. Сега трябва да активирате енергийния профил RMClock Power Management. За да направите това, щракнете с левия бутон върху батерията в тавата и изберете желания профил. Ако не е там, трябва да кликнете върху Допълнителни опцииконсумация на енергия и го изберете там. Сега, когато свържете захранването, лаптопът ще използва профила На търсене , А при работа на батерия - Мощност спестяване, използвайки настройките, които направихме преди това. В същото време намалихме консумацията на енергия на процесора и го накарахме ясно да реагира на програмните настройки (при използване стандартна програмаконтролната честота може да скача нагоре и надолу дори когато не работи, а напрежението също се променя).

Проверка

Ако сте направили всичко правилно, тогава в раздела Мониторингможете да видите резултата от работата. Графиката FID-VID показва множителя на тока и напрежението. Проверете тези стойности, когато работите на мрежово захранване и на батерия; те трябва да съответстват на зададените стойности в профила.

Сега е препоръчително да тествате всички настройки с някоя програма, например Prime95. Задачата е да се уверим, че процесорът работи без проблеми при настройките на напрежението, които сме избрали.

Тестване

На теория всичко е страхотно както винаги, но как тези действия влияят на реалната работа?

Тестова система: Terra 1220 (Intel Core 2 Duo T7300)

Тествах и двата режима на работа и ги сравних с подобни режими на стандартната програма за управление на захранването.

БалансиранVS Изпълнение при поискване

Автономността е тествана от програмата BatteryEater в режим на максимално натоварване (Classic). Безжичните интерфейси са деактивирани, яркостта на екрана е настроена на максимум.

Както можете да видите, времето за работа не се е променило изобщо и е 88 минути. Всеки тест беше извършен два пъти, за да се проверят резултатите. Така че в моя конкретен случай понижаването на напрежението не се отрази на времето живот на батерията. Но температурните индикатори са интересни, Максимална температурапо време на теста при използване на RMClock намалява с 23°C! Просто отличен резултат, което за крайния потребител означава банално намаляване на температурата на корпуса на лаптопа, както и намаляване на шума (вентилаторът не се включва на пълна скорост).

Производителността в PCMark също не се промени, разликата в измерванията е в границите на грешка. Но с температурата виждаме същата картина - максималната температура намалява с 17°C.

Пестене на енергияСРЕЩУМощностСпестяване

Тук ситуацията се повтори. Животът на батерията не е намалял, но температурата е спаднала значително. Това има положителен ефект върху комфорта при работа.

Въведение

Ентусиастите внимателно следят възможностите на процесорите за овърклок. Те прекарват много време в намиране на отговори на следните въпроси: Колко бързо могат да бъдат овърклокнати определени процесори? Какво ниво на напрежение е необходимо? Кое решение за охлаждане би било по-добро?

Овърклокването ви позволява да увеличите Производителност на процесорадо нивото на по-скъпите модели процесори, но е възможна и обратната посока. Обикновено можете да намалите напрежението на процесора, за да подобрите ефективността, без това да повлияе на производителността.

Напрежение, тактова честота и консумация на енергия

Тактовата честота е един от най-важните параметри, влияещи върху производителността, и постигането на високи тактови честоти обикновено изисква увеличаване на напрежението. Като се вземе предвид всичко изтеглено, най-много играе напрежението важна роляв крайната консумация на енергия и ролята на тактовата честота е все още второстепенна. Увеличаването или намаляването на тактовата честота влияе върху консумацията на енергия почти правопропорционално, а зависимостта от напрежението е квадратична. Поради тази причина увеличаването на напрежението винаги има по-значително въздействие върху консумацията на енергия, отколкото увеличаването на тактовата честота.

Разбира се, намаляването на работното напрежение също има значително влияние върху консумацията на енергия, така че решихме да проучим този въпрос по-задълбочено.

Занижени процесори

Много мобилни процесори са леко модифицирани версии с по-ниско напрежение на обикновените процесори. Вземете например Мобилни процесори Intel Core 2. Те се характеризират с оптимизирана консумация на енергия, но при сравними условия те ще работят по същия начин и ще консумират същото количество енергия като своите настолни колеги. Основна линия 2 Duo T е деклариран с максимална консумация на енергия от 35 W, линията P е ограничена до термичен пакет от 25 W и т.н.

Но има икономични процесори за настолни компютри. AMD предлага Процесори с оптимизирана мощностс наставката "e" (Phenom II X4 900e, 905e и Phenom X4 9350e). Intel пуска линия от процесори Core 2 Quad "S", които осигуряват производителност на нивото на стандартните модели, но остават в рамките на термопакета от 65 W вместо 95 W. Въпреки че енергийно ефективните версии на процесорите са по-скъпи, ние бяхме доста впечатлени от тях, като осигуряват по-ниска консумация на енергия на празен ход и под натоварване.

Направи го сам?

Възможно ли е да преобразувате процесора в икономична версия със собствените си ръце? Овърклокването и свръхнапрежението станаха много популярни, но какво ще кажете за намаляването на напрежението? Взехме две дънни платки на MSI, с които разполагахме: P45D3 Neo, която използвахме в търсене на оптимален овърклок Core 2 Duo, но този път в комбинация с процесор Core 2 Extreme QX9650, както и модела 790FX-GD70 за тестване на AMD Phenom II X4 955.

Платформи: AMD 790FX и Intel P45

За да проучим намаляването на напрежението на процесора Phenom II X4 955, взехме дънната платка MSI 790FX-GD70. Тази платка е от най-висок клас MSI моделза Socket AM3, той използва AMD чипсет 790FX, поддържащ всички най-нови AMD процесори; платката е оборудвана с технология ATI CrossFireX (благодарение на четири x16 PCI Express 2.0 слота) и голяма сумафункции, полезни за ентусиастите. Производителят реши да оборудва платката с функция за хардуерен овърклок, стабилизатор на напрежението с 4+1 фази с динамично превключване, както и голяма (но не прекомерна) система за охлаждане на топлинни тръби за чипсета и стабилизатори на напрежение. BIOS ви позволява да настроите честотата на DDR3 паметта до 2133 MT/s. RAID се поддържа на всичките шест SATA 3Gbps порта чрез южен мост SB750; има допълнителни SATA портове, FireWire 400 и два 1 Gbps Ethernet жака, да не говорим за 192 kHz HD аудио кодек.

Този път обаче едва ли ще имаме нужда от такъв набор от функции, тъй като целта на проекта беше да пести енергия. Петфазният регулатор на напрежението трябва да е ефективен, а самата платка на ниво ентусиаст е пълна с качествени компоненти, които могат да задоволят амбициите ни. Все пак бяхме донякъде разочаровани, че напрежението на чипсета и паметта не може да бъде намалено под номиналното напрежение. Може би MSI трябва да добави такава функция в бъдещите версии на BIOS.



За процесора Core 2 Quad на Socket 775 (използвахме Core 2 Extreme QX9650) взехме дънната платка P45D3 Neo, която се представи добре в нашия оптимални тестове за овърклок за Core 2 Duo. Платката е изградена на чипсет P45, но това не е продукт за ентусиасти: трябва да се задоволите с трифазен регулатор на напрежението, няма сложна система за охлаждане с топлинни тръби и стандартните функции на чипсета се допълват само от няколко опции. Допълнителна информацияза таблото е дадено в статията " Intel Core 2 Duo: анализ на овърклок, производителност и ефективност„Но ние все още използвахме тази платка за нашия проект за намаляване на напрежението, тъй като други продукти (включително Gigabyte X48T-DQ6 и Asus P5Q Deluxe) също не предоставиха опции за намаляване на напрежението на компоненти, различни от процесора.


Как правилно да намалим напрежението?

Опитните овърклокъри могат да пропуснат този раздел, но за всички останали препоръчваме да се запознаете с някои от функциите, свързани с процесорите с понижено напрежение.

Увисване

Първото нещо, което трябва да знаете е, че напрежението на процесора, което е зададено в BIOS (автоматично или от потребителя), може да не съответства на напрежението на Vcore, при което ще работи процесорът. Всъщност BIOS определя максималното напрежение на процесора, а ефективното напрежение обикновено е по-ниско. Може дори да се променя в зависимост от работните условия на процесора (например температура), които се променят, когато процесорът преминава от режим на празен ход в режим на натоварване и обратно.

Това поведение е напълно оправдано, тъй като проводимостта на кристала се подобрява, когато процесорът се нагрява при натоварване. Ако напрежението не се промени, токът ще се увеличи, тоест токът и температурата ще се повишават взаимно. Специален механизъм за увисване леко намалява напрежението на процесора при натоварване, за да поддържа процесора в рамките на електрическите спецификации.

Ако използвате инструменти като CPU-Z, за да прочетете ефективното напрежение на процесора, опитайте да проверите целевото напрежение с CoreTemp - и ще забележите, че двете стойности ще бъдат различни. Разликата между зададеното напрежение и ефективното напрежение на празен ход се нарича "отместване" (Voffset), а разликата в напрежението между режим на празен ход и пиково натоварване се нарича "увисване" (Vdroop).

Преглед

Процесорът достига пиково напрежение, когато премине от заредено състояние в неактивно състояние, тъй като напрежението никога не се движи точно от едно ниво на друго, а "скача" ниво и след това се изравнява. Именно при този „скок“ процесорът достига своя пиков целеви волтаж.

По същата причина е доста лесно да се тества дали процесор с понижено напрежение ще работи надеждно при пикови натоварвания: той ще наложи Vdroop и ще намали работното напрежение под определеното напрежение. Използвахме Prime95, страхотна помощна програма за използване на процесора. След 30 минути работа при пиково натоварване без сривове стигнахме до извода, че системата с понижено напрежение работи стабилно при натоварване. Това обикновено означава, че работата ще остане стабилна в неактивен режим, тъй като тогава се прилага малко по-високо напрежение. Но това не се отнася за енергоспестяващи режими като Intel SpeedStep, които допълнително намаляват честотата (множителя) и напрежението. Проведохме всички тестове за ниско напрежение с активна технология SpeedStep, но това не беше необходимо за технологията Cool"n"Quiet на AMD, тъй като тя използва стандартни напрежения и честоти, когато не работи.

Както обикновено, нашите резултати от овърклок или намаляване на напрежението не трябва да се приемат като истина от последна инстанция. Всичко зависи от вас: или трябва да извършите разширен набор от тестове, или да приемете риска системата да не винаги е стабилна. И вашите резултати може да са напълно различни - може би е по-добре да се върнете към по-консервативни настройки (тоест да увеличите малко напрежението), за да сте сигурни. Във всеки случай потенциалът за спестяване на енергия ще бъде доста значителен.


процесор AMD Phenom II X4 955остава водещ моделкомпания след обявяването му през април 2009 г. С поддръжка на DDR3 памет и тактова честота от 3,2 GHz, AMD успя да се конкурира с Intel Core 2 Quad в някои тестове, докато и процесорът, и платформата ще бъдат по-евтини. Все още обаче е далеч от производителността на Core i7.

Моделите Phenom II X4 се предлагат на честоти между 2,5 и 3,2 GHz (вижте по-долу). страница на уебсайта на AMD). Линията процесори 800 включва 4x 512 KB L2 кеш на ядро ​​и 4 MB споделен L3 кеш, докато линията 900 има 50% повече L3 кеш. Всички процесори Phenom II се произвеждат в Globalfoundries с помощта на 45nm DSL SOI технология, която осигурява ниска консумация на енергия и добри възможности за овърклок. Ще бъде интересно да видим доколко можем да свалим напрежението.

Автоматични настройки BIOS доведе до работа на Phenom II X4 955 при 1,32 V според CPU-Z. В същото време пиковата консумация на енергия на системата беше 216 W при пълно натоварване на процесора. Съвсем ясно е, че резултатът има какво да се подобрява.

Всички AMD процесори с активна технология Cool"n"Quiet могат да достигнат 800 MHz в режим на покой, докато стандартното напрежение на ядрото е намалено до 0,96 V. Както може да се види от обобщената таблица по-долу, Процесор Phenom II превключва на 0,96 V в режим Cool"n"Quiet, независимо какво напрежение на процесора е зададено в BIOS. Следователно консумацията на енергия на системата в неактивен режим винаги е била една и съща: 99 W. В този случай няма какво да се подобрява, освен ако BIOS не започне да ви позволява да променяте напрежението в неактивен режим.

Опитахме се да зададем няколко нива на напрежение (вижте таблицата по-долу) и тествахме натоварването върху тях с помощта на теста Prime95 за поне 30 минути. Оказва се, че стандартното напрежение от 1,32 V може да бъде намалено с цели 12% до 1,1175 V. В същото време намалихме системната консумация на енергия от 216 на 179 W, което е спад от 17,2%. Не е зле.

Финална маса

AMD Phenom II X4 955
BIOS напрежение Намушкване.
Автоматичен 0,96 V* 99 W 1,32 V 216 W да
1,3125 0,96 V* 99 W 1,288 V 205 W да
1,2875 0,96 V* 99 W 1,264 V 199 W да
1,2625 0,96 V* 99 W 1,24 V 196 W да
1,2375 0,96 V* 99 W 1,216 V 192 W да
1,2125 0,96 V* 99 W 1,192 V 186 W да
1,1875 0,96 V* 99 W 1,168 V 181 W да
1,175 0,96 V* 99 W 1,152 V 179 W да
1,1625 0,96 V* 99 W 1,136 V 177 W Не

* зададено на Cool"n"Quiet.


Сега е време да разгледаме Intel Core 2 Quad. Използвахме процесор Core 2 Extreme QX9650, защото нямахме обикновен модел Core 2 Quad на наше разположение.

Линията Core 2 Quad продължава да осигурява солидна производителност при приемливи нива на консумация на енергия. Линиите Q8000 и Q9000 са изградени върху 45nm Yorkfield дизайн. Q8000 използва 4 MB L2 кеш, докато Q9000 има 6 MB или дори 12 MB L2 кеш.

Всички четириядрени Ядрени процесори 2 Quad са сглобени от два 45nm двуядрени кристала Wolfdale.

Когато зададем напрежението в BIOS на "Automatic", получихме 1.256 V от Core 2 Extreme QX9650, което доведе до консумация на системата от 185 W при пълно натоварване.

Напрежението на празен ход не може да се променя директно; то винаги ще се определя в зависимост от напрежението на процесора, което посочите. Кога BIOS настройкиПо подразбиране получихме напрежение от 1.192 V след активиране на технологията SpeedStep, която намали множителя до 6x, а тактовата честота на ядрото беше 2.0 GHz. Получената консумация на енергия в неактивен режим от 94 W (вижте таблицата по-долу) все още е по-ниска от консумацията на енергия на AMD системата при само 0,96 V и 800 MHz честота на процесора, което е доста странно.

Най-ниското стабилно напрежение беше 1,072 V, което постигнахме с настройката на BIOS от 1,0785 V. При пълно натоварване това доведе до обща системна консумация на енергия от само 148 W, което означава, че получихме 20% намаление на консумацията на енергия с 16,3% намаление в процесора с напрежение на ядрото. Следващата стъпка трябваше да бъде напрежение от 1,0655 V, при което вече бяхме загубили стабилност. За щастие той даде същите лоши резултати при натоварване и на празен ход, правейки по-нататъшното намаляване на напрежението безсмислено.

Напрежението на празен ход, произтичащо от напрежението на нашия процесор от 1,0785 V, беше 0,1008 V, което води до консумация на енергия на празен ход на системата от 87 W. Подобрението е по-малко от 11%, но беше безплатно и системата работеше стабилно при тестове.

Intel Core 2 Extreme QX9650
BIOS напрежение Ефективно напрежение (норм.) Ефективна консумация на енергия (бездна.) Ефективно напрежение (натоварване) Ефективна консумация на енергия (топлина) Намушкване.
Автоматичен 1,192 V 94 W 1,25 V 185 W да
1.1955 V 1,128 V 93 W 1,184 V 172 W да
1,1695 V 1,104 V 92 W 1,16 V 166 W да
1,1435 V 1,008 V 91 W 1,136 V 162 W да
1,175 V 1,048 V 90 W 1,104 V 158 W да
1,0915 V 1,016 V 88 W 1,08 V 151 W да
1,0785 V 1,008 V 87 W 1,072 V 148 W да
1,0655 V 0,992 V 87 W 1,056 V 148 W Не


Системен хардуер
Процесор AMD AMD Phenom II X4 955 (45 nm, 3,2 GHz, 4x 512 KB L2 кеш и 6 MB L3 кеш, TDP 125 W, Rev. C2)
Процесор Intel Intel Core 2 Extreme QX9650 (45 nm, 3,0 GHz, 12 MB L2 кеш, TDP 130 W, Rev. D0)
Дънна платка (сокет 775) MSI P45D3 Neo-F (Rev. 1.0), чипсет: Intel P45, ICH10R, BIOS: 4.2 (18.02.2009 г.)
Дънна платка (сокет AM3) MSI 790FX-GD70 (Rev. 1.0), чипсет: AMD 790FX, SB750, BIOS: 1.3 (01.04.2009 г.)
DDR3 памет 2 x 2 GB DDR3-1600 (Corsair TR3X6G-1600C8D 8-8-8-24)
Видео карта Zotac Geforce GTX 260², GPU: GeForce GTX 260 (576 MHz), видео памет: 896 MB DDR3 (1998 MHz), 216 поточни процесора, честота на шейдъра 1242 MHz
HDD Western Digital VelociRaptor, 300 GB (WD3000HLFS) 10 000 rpm, SATA/300, 16 MB кеш
Blu-ray устройство LG GGW-H20L, SATA/150
захранващ агрегат PC захранване и охлаждане, шумозаглушител 750EPS12V 750 W
Системен софтуер и драйвери
операционна система Windows Vista Enterprise Версия 6.0 x64 Service Pack 2 (Компилация 6000)
AMD драйвер за чипсет Катализатор 9.4
Nvidia GeForce драйвер GeForce 185.85
Драйвер за чипсет Intel Chipset Installation Utility Ver. 9.1.0.1012
Драйвери за съхранение на Intel Matrix Storage Drivers Ver. 8.8.0.1009


Тестове и настройки

Тестове и настройки
PCMark Vantage Версия: 1.00
PCMark Benchmark
Първоначално число 95 Версия: 25.7
Големи FFT на място

Резултати от тестовете

Нямаме графика, показваща консумацията на енергия в неактивен режим на AMD Phenom II X4 955, тъй като напрежението на AMD процесорите не се променя. След активиране на функцията Cool"n"Quiet, процесорът без натоварване винаги работи на 800 MHz с напрежение 0,96 V (поне на нашата дънна платка MSI 790FX-GD70). Следователно системата AMD винаги е консумирала 99 вата, когато е неактивна.

Графиката показва консумацията на енергия в неактивен режим на системата Core 2 Extreme QX9650 при всички тествани нива на напрежение. При 1.008V можете да получите консумация на енергия от 87W, а при 1.192V консумацията на енергия по подразбиране е 94W.


Икономията на енергия от понижаване на напрежението в случая на флагманския процесор на AMD се оказа доста значителна. Започнахме със стандартно напрежение от 1,32 V, което даде пикова системна консумация на енергия от 216 W, а след това постигнахме само 179 W под товар при 1,175 V. Спестяването на енергия беше 37 W или 17,2% - доста значително, тъй като спестената енергия ще бъде достатъчна за захранване например на 20" модерен дисплей!

Може ли система на Intel да победи 17,2% икономия на енергия при пиково натоварване? Може би: в този случай минималното стабилно напрежение под товар беше 1,078 V вместо 1,255 V, а консумацията на енергия на цялата система беше 148 W вместо 185 W - 20% намаление.

Консумация на енергия и ефективност на PCMark

Измерихме производителността на PCMark Vantage и консумацията на енергия при настройки по подразбиране и оптимизирани за напрежение на системи AMD и Intel.


В случая на системата Phenom II X4 955, средната консумация на енергия е намалена от 157 на 141 W, подобрение от 10,2%. Системата Core 2 Extreme QX9650 успя да намали консумацията на енергия от 135 на 117 W, тоест резултатът беше впечатляващ, като се има предвид, че мощността на обработка надвишава горния клас AMD процесор, използвани от нас. Системата Intel намали средната консумация на енергия с 13,1%.


Следователно, общата енергия (във ватчасове), изразходвана за изпълнение, също намалява: с 11,4% за системата AMD и с 12,4% за системата Intel. Не е зле!


И накрая, съпоставихме резултатите от PCMark Vantage със средната консумация на енергия на двете системи (резултати за производителност на ват). Не забравяйте, че двете машини осигуряват една и съща производителност след оптимизиране на напрежението. Системата AMD Phenom II X4 955 успя да постигне 11,6% подобрение на енергийната ефективност в теста PCMark Vantage. Системата Intel подобри резултата от ефективността с 13,8%.

Заключение

Тествахме два процесора от висок клас от AMD и Intel на модерни дънни платки MSI платки, което направи възможно анализирането на потенциалните икономии на енергия, които могат да бъдат получени чрез намаляване на напрежението на процесора. Разбира се, възнамерявахме също да намалим напрежението на паметта или чипсетите, за да постигнем допълнителни спестявания, но нито една от дънните платки, които прегледахме, не ни позволи да променим напрежението на компонентите. Прегледахме Платки на Asus P6T и Rampage II Gene, Gigabyte MA790FXT-UD5P и X48T-DQ6, но в крайна сметка се спря на MSI 790FX-GD70 за Socket AM3 и P45D3 Neo за Socket LGA775.

AMD Phenom II X4: 17% по-ниска консумация на енергия, 11,6% по-висока ефективност

Пиковата консумация на енергия при натоварване спадна с до 17%, когато се настрои на най-ниското стабилно напрежение, което намерихме на Phenom II X4 955. Тъй като производителността остана същата, видяхме 11,6% увеличение на ефективността (производителност на ват) в PCMark Тест за предимство. Технологията AMD Cool"n"Quiet донякъде забави усилията ни да намалим напрежението, тъй като в режим на покой винаги превключваше в нормален режим, независимо от зададеното напрежение. И консумацията на енергия в неактивен режим винаги е била 99 вата.

Intel Core 2 Extreme: 20% по-ниска консумация на енергия, 13,8% по-висока ефективност

Резултатите бяха още по-значими в нашия тестова система Core 2 Extreme QX9650, където консумацията на енергия при пиково натоварване е намаляла с впечатляващите 20% без загуба на производителност. Това подобри производителността на PCMark Vantage на ват с цели 13,8%. Тъй като напрежението на процесора Intel в режим на пестене на енергия SpeedStep зависи от зададеното напрежение на ядрото, консумацията на енергия в режим на покой също спадна значително - до само 1,008 V. Това даде 8% икономия на енергия в режим на покой.

Струва ли си да се пести енергия?

Бяхме впечатлени от сравнително широките толеранси за спад на напрежението, тъй като очаквахме проблемите да започнат много по-рано. Но системите на AMD и Intel го показаха модерни процесориможе да работи при значително по-ниско напрежение. Успяхме да доставим процесора AMD Phenom II X4 с 16% по-малко напрежение, а процесора Intel Core 2 Extreme с 16,6% по-малко напрежение. Всичко това ни позволи да постигнем спестявания от 17-20% при пиково натоварване и за двете системи.

Въпреки това ще трябва да се уверите, че вашите настройки за намалено напрежение осигуряват надеждна работа, така че препоръчваме да подхождате към този процес с повишено внимание. Въпреки това, не е необходимо да постигате 16% намаление на напрежението - дори 10% намаление ще намали консумацията на енергия на системата безплатно, без никакво въздействие върху производителността.



Свързани публикации