Ako podceniť napätie na procesore notebooku. Zníženie tepla procesora a zvýšenie životnosti batérie notebooku

Regulácia napätia procesora Intel

POZOR! Autor článku nenesie žiadnu zodpovednosť za škody spôsobené na počítači v dôsledku uplatnenia tu popísaných akcií.

Niektorí používatelia majú viac šťastia, iní menej. Sú šťastlivci, ktorí dostanú procesory, ktoré sa ľahko pretaktujú až na ďalšiu „štandardnú“ frekvenciu FSB: Celeron až do 100, respektíve Pentium III „E“ – modifikácie až do 133 MHz. Takýto procesor však nie je tak ľahké zohnať: sú na trhoch, no predajcovia za „zaručene“ pretaktovaný kameň chcú najčastejšie toľko, že si môžu kúpiť procesor s približne rovnakou, no „natívnou“ frekvenciou, garantovanou výrobcom. Pomerne často sa ale stretávate s procesormi, ktoré pracujú na zvýšenej frekvencii, no sú nestabilné. To znamená, že sa objavia neočakávané zlyhania, programy "vykonajú neprijateľné operácie" a zatvoria sa, "modré obrazovky" a podobné slasti lahodia oku.

Často sa to dá eliminovať zvýšením napätia procesora. Klasický Celeron (založený na jadre Mendocino; t.j. modely 300A-533) má štandardné napätie jadra 2 V. V zásade sa dá bez väčšieho rizika zdvihnúť o 5-10% (až 2,1 - 2,2 V). Pre procesory s jadrom Coppermine (Celeron 533A-766 a Pentium III) platí absolútne to isté: menia sa len absolútne čísla.

Je však dobré, ak pomocou systému BIOS alebo prepojok na základnej doske môžete nastaviť požadovanú úroveň napätia, ale čo ak takáto možnosť neexistuje (čo sa zvyčajne stáva, keď hovoríme o lacných základných doskách)? V skutočnosti zmizne hlavná myšlienka pretaktovania: získať lepší výkon na lacnom hardvéri. Na základných doskách s konektorom Slot 1 je možné použiť špeciálne adaptéry, čo však používateľom soketových kariet neuľahčuje (okrem toho je niekedy rozdiel 5-7 dolárov v cene adaptéra s reguláciou napätia a jednoduchého modelu bez nej kritické). Rozdiel v cene medzi doskami určenými na pretaktovanie a lacnými socketovými modelmi je až 30 $ (okrem toho je väčšina týchto dosiek formátu ATX, takže pri upgrade počítača treba meniť aj skrinku) a aby ste ušetrili túto sumu, niekedy by ste mali použiť niekoľko neštandardných metód.

V poslednej dobe sa téma zmeny napájacieho napätia stala aktuálnou nielen pre overclockerov. Faktom je, že existujúce dosky založené na starých čipsetoch (LX, EX, BX, ZX, Apollo Pro) sú často schopné pracovať aspoň s novými Celeronmi (niekedy okamžite, inokedy po úprave), inokedy Pentiom III a jediným prekážkou je menič napätia na doske, ktorý nedokáže poskytnúť menej ako 1,8 V. Úplne logickým riešením tohto problému je prinútiť procesor prepnúť na toto napätie.

Pozor... Nezabudnite, že so zvyšujúcim sa napätím rastie aj výkon, ktorý procesor rozptýli. To platí najmä pre pretaktovanie: bude tiež pozorované dodatočné generovanie tepla v dôsledku zvýšenia frekvencie procesora. Preto sa oplatí myslieť vopred na dobré chladenie procesora (to by sa však malo robiť v každom prípade bez ohľadu na to, či sa napätie zvyšuje alebo nie)

Na napájanie procesorov triedy Pentium II a Celeron sú potrebné pomerne výkonné zdroje napájania, takže napájanie sekundárnej vyrovnávacej pamäte (na obrázku označené Vccs) je oddelené od zdroja napájania jadra (Vccp), a ak sú hodnoty rovnako sa nepoužívajú hodnoty sieťového napätia Vccs. To znamená, že v závislosti od typu procesora (od úrovne napätia na príslušnej nohe procesora) nastavuje stabilizátor na základnej doske požadované napätie.

Stôl 1. Identifikácia napájacieho napätia
VID Napätie, V VID Napätie, V
01111 1.30 11111 žiadny procesor
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 sa používa iba vo verzii SEPP / SECC (Slot1), preto je možné napätie na základných doskách pre Socket 370 zvýšiť len do 2,05 V. Pre prácu so všetkými procesormi Intel je potrebná podpora hodnôt vyznačených tučným písmom; sú označené podčiarknuté napájacie napätia pre FCPGA procesory.

Tabuľka 2 Napájanie niektorých procesorov
CPU Vccp, jadro, V Vccs, hotovosť, 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 má dve modifikácie určené pre rôzne napätia)

Fyzicky (0) znamená, že noha je spojená so zemou (GND alebo Vss) a (1) že kolík je voľný, to znamená, že nie je s ničím spojený (na nohe musí byť potenciál logickej jednotky ).

Je teda možné, aby výstup regulátora nebol štandardný 2 V pre Celeron (budeme o nich hovoriť neskôr), ale viac-menej (zaujímavé je, že v niektorých prípadoch bolo pozorované zlepšenie stability prevádzky pri zníženom napätí) .

Na obrázku sú piny pre procesory soketov. Pre procesory vyrábané v dizajne Slot 1 sú za identifikáciu napájacieho zdroja zodpovedné nasledujúce závery:

VID0 VID1 VID2 VID3 VID4
B120 A120 A119 B119 A121

Ak napríklad prilepíte VID, VID, VID, dostaneme napätie 2,2 V. To by malo stačiť každému milovníkovi pretaktovania a zároveň je celkom prijateľné, aby procesor pracoval dostatočne dlho s dobrým ochladzovanie :) To znamená, že je dosť ľahké získať určité úrovne stresu, na ktoré potrebujete izolovať iba niektoré nohy. Napríklad pre PPGA a SEPP (Slot1):

Príklady napájacích napätí procesora
Napätie, V Aké nohy je potrebné prilepiť Odporúčania
1.80 VID Ak nie ste priaznivcom pretaktovania, tak toto napätie sa dá využiť na zníženie teploty procesora pri prevádzke alebo na úsporu energie :) (Celeron má spotrebu 10-20 W v závislosti od nominálnej frekvencie a z toho vychádza 10% úspory :))
1.90 VID Vo všeobecnosti platí to isté ako pre napätie 1,8 V
2.00 Štandardné napätie Zobrazené ako príklad
2.20 VID; VID; VID Procesor by mal fungovať bez problémov, až na to, že sa bude zahrievať.
2.40 VID; VID; VID Môže to fungovať, možno nie :) (ale skôr to prvé), a ešte viac sa zahriať
2.60 VID; VID Riziko je dosť vysoké, ale nadšenci to môžu skúsiť (ak chcú procesor naozaj čo najviac pretaktovať).
2.80 VID; VID; VID A neskúšajte - uvádza sa len ako príklad.

Zvyšné hodnoty je ťažšie získať, pretože je potrebný silnejší vplyv na procesor - budete musieť pripojiť príslušný kontakt procesora alebo konektora k zemi (GND). Takže napríklad spojením pinov slotu (alebo socketu) VID a GND na zadnej strane základnej dosky pomocou kabeláže a spájkovania dostaneme napätie 2,05 V. Ide však o riskantnú operáciu, keďže v prípade chyba alebo nepresné spájkovanie, napätie I/O obvodov (3, 3 B) môže zasiahnuť jadro, čo povedie k smutné následky... Ale týmto spôsobom môžete získať akékoľvek napätie z tabuľky 1 na jadre procesora.

Vlastne o tom, ako lepiť nohy. Možností je viacero. Najprv ich môžete izolovať nanesením odolného laku. Táto metóda funguje normálne iba so skutočne silným lakom, pretože pri inštalácii do pätice nohy procesora zažívajú veľkú fyzickú námahu, čo môže viesť k zničeniu izolačnej vrstvy, a preto môže do jadra vstúpiť neplánovaná úroveň napätia. (napríklad 2,6 namiesto 2,2 V v prípade porušenia izolácie vodiča VID). Po druhé, môžete ich jednoducho odhryznúť so socketovým procesorom a so slotovým procesorom odrezať príslušné vodiče, ale táto metóda nenecháva žiadnu šancu na ústup (ak sa dá odrezaný vodič ešte prispájkovať, potom je spájkovanie odhryznutej nohy dosť veľké problematické).

Najrealistickejšia je zrejme možnosť s lepením nôh procesora. V prípade balenia SEPP / SECC môžete použiť pásku, starostlivo narezanú na tvar kontaktnej podložky. Na procesorovej doske sú nápisy, pomocou ktorých môžete navigovať, kde sa ktorý kolík nachádza. V prípade PPGA a FCPGA môžete použiť túto metódu. Z fluoroplastovej alebo polyetylénovej fólie (aká sa používa na výrobu vrecúšok) sa vyreže kruh s priemerom asi 5 mm. Je umiestnený tak, aby jeho stred bol presne nad kontaktom, ktorý sa má izolovať. Potom pomocou ihly na šitie sa okraje kruhu znížia medzi vodidlá.

Počas inštalácie zvyčajne nevznikajú žiadne problémy, problém však môže nastať pri vyberaní procesora zo zásuvky: fólia zostáva vo vnútri a nie je tak ľahké ju vybrať (v krajnom prípade je možné zásuvku rozobrať a všetko zbytočné odtiaľ odstránené :))

Na fotografii je noha VID "pripravená"

S náležitou starostlivosťou a pozornosťou je celkom ľahké vykonať potrebné operácie.

Rovnaké metódy sú vhodné aj na zvýšenie alebo zníženie napájacieho napätia v Pentiu II a Pentiu III, a to ako vo verziách pre Slot 1, tak aj pre FCPGA (samozrejme so zodpovedajúcimi zmenami napäťových úrovní). Malo by sa pamätať na to, že v prípade procesorov s jadrami Klamath a Coppermine bude na zvýšenie napájacieho napätia potrebné použiť spájkovačku: v takom prípade to nebude možné bez uzavretia niektorých kontaktov k zemi (na rozdiel od jadier navrhnutých pre napätie 2,0 V).

Tiež nezabudnite, že nie všetky regulátory napätia nainštalované na základných doskách podporujú absolútne všetky úrovne. Príslušný mikroobvod sa zvyčajne nachádza v blízkosti zásuvky procesora. Podľa jeho označenia môžete zistiť výrobcu čipu a tým aj jeho vlastnosti. Tu sú adresy niektorých spoločností, ktoré vyrábajú regulátory napätia:

V článku boli použité materiály z knihy od Michaila Hooka „Pentium II, Pentium Pro a jednoducho procesory Pentium“ od vydavateľstva „Peter“, ako aj oficiálna dokumentácia Intelu o procesoroch Celeron

Úvod

Nadšenci pozorne sledujú možnosti pretaktovania procesorov. Trávia veľa času hľadaním odpovedí na nasledujúce otázky: Ako rýchlo sa dá ten či onen procesor pretaktovať? Aká je požadovaná úroveň napätia? Aké je najlepšie riešenie chladenia?

Pretaktovanie umožňuje zvýšiť výkon CPU na úroveň drahších modelov procesorov, no možný je aj opačný smer. Zvyčajne môžete znížiť napätie procesora, aby ste zlepšili prevádzkovú efektivitu bez ovplyvnenia výkonu.

Napätie, frekvencia hodín a spotreba energie

Rýchlosť hodín je jedným z najdôležitejších parametrov ovplyvňujúcich výkon a na dosiahnutie vysokých rýchlostí hodín je zvyčajne potrebné zvýšenie napätia. Ak vezmeme do úvahy všetko stiahnuté, je to práve napätie, ktoré hrá v konečnej spotrebe energie najdôležitejšiu úlohu a úloha taktovacej frekvencie je zatiaľ druhoradá. Zvyšovanie alebo znižovanie frekvencie hodín ovplyvňuje spotrebu energie takmer priamoúmerne a závislosť od napätia je kvadratická. Práve z tohto dôvodu má zvýšenie napätia vždy výraznejší vplyv na spotrebu energie ako zvýšenie taktovacej frekvencie.

Znižovanie prevádzkového napätia samozrejme výrazne ovplyvňuje aj spotrebu energie, preto sme sa rozhodli túto problematiku preskúmať hlbšie.

Podpäťové procesory

Mnohé mobilné procesory sú mierne upravené verzie bežných CPU so zníženým napätím. Vezmite si napríklad mobilné procesory Intel Core 2... Vyznačujú sa optimalizovanou spotrebou energie, no v porovnateľných podmienkach budú pracovať s rovnakým výkonom a spotrebujú toľko energie ako ich stolné náprotivky. Rad Core 2 Duo T má maximálnu spotrebu energie 35 W, rad P je obmedzený na 25 W TDP atď.

Existujú však aj lacné procesory pre stolné počítače. AMD ponúka procesory s optimalizovaným výkonom s príponou „e“ (Phenom II X4 900e, 905e a Phenom X4 9350e). Intel uvádza na trh rad procesorov Core 2 Quad "S" ktoré poskytujú výkon na úrovni štandardných modelov, no zostávajú v rámci 65W tepelného balíka namiesto 95W. Ekonomické verzie sú síce drahšie, no veľmi nás zaujali tým, že poskytujú nižšiu spotrebu energie pri nečinnosti a záťaži.

Urob si sám?

Je možné premeniť procesor na ekonomickú verziu vlastnými rukami? Pretaktovanie a prepätie sa stalo veľmi populárnym, ale čo podpätie? Vzali sme dve základné dosky MSI, ktoré sme mali: P45D3 Neo, v ktorej sme použili Nájdenie optimálneho pretaktovania pre Core 2 Duo ale tentoraz spárovaný s procesorom Core 2 Extreme QX9650, ako aj s modelom 790FX-GD70 pre benchmarky AMD Phenom II X4 955.

Platformy: AMD 790FX a Intel P45

Na vyšetrenie podpätia Phenom II X4 955 sme vzali základnú dosku MSI 790FX-GD70. Táto doska je top model MSI pre Socket AM3, využíva čipset AMD 790FX, ktorý podporuje všetky najnovšie procesory AMD; doska je vybavená technológiou ATI CrossFireX (vďaka štyrom x16 PCI Express 2.0 slotom) a množstvom funkcií užitočných pre nadšencov. Výrobca sa rozhodol dosku vybaviť funkciou hardvérového pretaktovania, regulátorom napätia so 4 + 1 fázami s dynamickým spínaním, ako aj veľkým (nie však prehnane) chladiacim systémom na tepelných trubiciach pre čipset a regulátormi napätia. BIOS umožňuje nastavenie frekvencie pamätí DDR3 až na 2133 MT/s. RAID je podporovaný na všetkých šiestich portoch SATA 3Gb/s cez južný most SB750; sú tu ďalšie porty SATA, FireWire 400 a dve 1Gbps Ethernet zásuvky, nehovoriac o 192kHz HD audio kodeku.

Tentoraz však takýto súbor funkcií pravdepodobne nebudeme potrebovať, keďže cieľom projektu bola úspora energie. Päťfázový regulátor napätia musí byť účinný a samotná doska pre nadšencov je nabitá kvalitnými komponentmi schopnými uspokojiť naše ambície. Stále nás však trochu sklamalo, že napätie čipsetu a pamätí by sa nemalo znížiť pod nominálnu hodnotu. Možno by MSI mala pridať túto funkciu v ďalších revíziách systému BIOS.



Pre procesor Core 2 Quad na Socket 775 (použili sme Core 2 Extreme QX9650) sme vzali základnú dosku P45D3 Neo, ktorá fungovala dobre v našom Optimálne testy pretaktovania pre Core 2 Duo... Doska je postavená na čipsete P45, ale toto nie je produkt pre nadšencov: musíte sa uspokojiť s tromi fázami regulátora napätia, nie je tu žiadny zložitý chladiaci systém založený na tepelných trubiciach, ale štandardné funkciečipset je doplnený len niekoľkými možnosťami. Viac informácií o doske nájdete v článku " Intel Core 2 Duo: Analýza pretaktovania, výkonu a účinnosti„Túto dosku sme však stále používali pre náš projekt zníženia napätia, pretože iné produkty (vrátane Gigabyte X48T-DQ6 a Asus P5Q Deluxe) tiež neposkytovali možnosti zníženia napätia pre iné komponenty ako procesor.


Ako správne znížiť stres?

Skúsení overclockeri môžu túto časť preskočiť, ale všetkým ostatným odporúčame, aby ste sa oboznámili s niektorými zvláštnosťami spojenými so znižovaním napätia procesora.

Ovisnuté

Prvá vec, ktorú treba vedieť: napätie procesora, ktoré je nastavené v systéme BIOS (automaticky alebo používateľom), nemusí zodpovedať napätiu Vcore, pri ktorom bude procesor pracovať. V skutočnosti BIOS definuje maximálne napätie procesora a efektívne napätie je zvyčajne nižšie. Môže sa dokonca meniť v závislosti od prevádzkových podmienok procesora (napríklad teploty), ktoré sa menia pri prechode procesora z režimu nečinnosti do režimu zaťaženia a naopak.

Toto správanie je celkom opodstatnené, pretože vodivosť matrice sa zlepšuje, keď sa CPU zahrieva pri zaťažení. Ak sa napätie nezmení, prúd sa zvýši, to znamená, že prúd a teplota sa navzájom zvýšia. Špeciálny klesajúci mechanizmus mierne znižuje napätie CPU pri zaťažení, aby sa CPU udržal v elektrických špecifikáciách.

Ak na čítanie efektívneho napätia CPU používate nástroje ako CPU-Z, skúste skontrolovať cieľové napätie pomocou CoreTemp – a všimnete si, že tieto dve hodnoty sa líšia. Rozdiel medzi nastaveným a efektívnym napätím v režime nečinnosti sa nazýva "offset" (Voffset) a rozdiel napätia medzi režimom nečinnosti a špičkovou záťažou sa nazýva "klesanie" (Vdroop).

Vyšetrenie

Procesor dosahuje svoje špičkové napätie pri prechode zo stavu záťaže do stavu nečinnosti, pretože napätie nikdy neprejde presne z jednej úrovne do druhej, ale úroveň „preskočí“ a následne sa vyrovná. Práve v tomto „skoku“ procesor dosiahne určené špičkové napätie.

Z toho istého dôvodu je celkom jednoduché skontrolovať, či podpäťový procesor bude stabilne pracovať pri špičkovom zaťažení: zavedie Vdroop a zníži prevádzkové napätie pod špecifikované napätie. Použili sme Prime95, skvelý nástroj na využitie CPU. Po 30 minútach prevádzky pri špičkovom zaťažení bez prekmitu sme dospeli k záveru, že podpäťový systém bol pri zaťažení stabilný. To zvyčajne znamená, že prevádzka bude stabilná aj v režime nečinnosti, pretože vtedy sa používa mierne vyššie napätie. To však neplatí pre režimy úspory energie, ako je Intel SpeedStep, ktoré ďalej znižujú frekvenciu (násobič) a napätie. Všetky testy podpätia sme vykonali s aktívnou technológiou SpeedStep, ale pre technológiu AMD Cool "n" Quiet to nebolo potrebné, pretože pri nečinnosti používa nominálne napätia a frekvencie.

Ako obvykle, naše výsledky pretaktovania alebo zníženia napätia by sa nemali považovať za konečnú pravdu. Všetko závisí od vás: musíte buď vykonať rozšírenú sadu testov, alebo akceptovať riziko, že systém nemusí byť vždy stabilný. Áno, a vaše výsledky môžu byť úplne iné - možno bude lepšie vrátiť sa ku konzervatívnejším nastaveniam (to znamená trochu zvýšiť napätie), aby ste boli na bezpečnej strane. V každom prípade bude potenciál energetických úspor stále značný.


CPU AMD Phenom II X4 955 zostáva vlajkovým modelom spoločnosti od svojho ohlásenia v apríli 2009. Vďaka podpore pamätí DDR3 a taktovaniu 3,2 GHz dokázalo AMD v niektorých testoch konkurovať Intel Core 2 Quad, pričom procesor aj platforma sú lacnejšie. Výkon Core i7 je však stále ďaleko od neho.

Modely Phenom II X4 sú dostupné vo frekvenciách medzi 2,5 a 3,2 GHz (pozri. na webovej stránke AMD). Linka 800 má 4x 512 KB L2 cache na jadro a 4 MB zdieľanej L3 cache, zatiaľ čo linka 900 má o 50% viac L3 cache. Všetky procesory Phenom II sú vyrábané v továrňach Globalfoundries pomocou 45nm DSL SOI procesu pre nízku spotrebu energie a dobré možnosti pretaktovania. Bude zaujímavé sledovať, o koľko sa nám podarí znížiť napätie.

Automatické nastavenia BIOSu umožnili Phenom II X4 955 pracovať od 1,32 V podľa CPU-Z. Zároveň bola maximálna spotreba systému 216 wattov pri plnom zaťažení CPU. Je úplne jasné, že výsledkom je, že je čo zlepšovať.

Všetky procesory AMD s aktívnou technológiou Cool "n" Quiet sa dokážu v nečinnosti prepnúť na 800 MHz, pričom nominálne napätie jadra klesne na 0,96 V. Ako môžete vidieť zo súhrnnej tabuľky nižšie, procesor Phenom II sa pri Cool prepne na 0,96 V "n" Tichý režim bez ohľadu na to, aké napätie CPU je nastavené v BIOSe. Spotreba energie systému v režime nečinnosti bola preto vždy rovnaká: 99 W. V tomto prípade nie je čo zlepšovať, pokiaľ BIOS nezačne povoľovať zmeny napätia v režime nečinnosti.

Vyskúšali sme nastaviť niekoľko úrovní napätia (pozri tabuľku nižšie) a testovali sme na nich záťaž pomocou benchmarku Prime95 aspoň 30 minút. Ukázalo sa, že menovité napätie 1,32 V je možné znížiť až o 12 % na 1,1175 V. Zároveň sme znížili spotrebu systému z 216 na 179 W, čo je pokles o 17,2 %. . Nie zlé.

Súhrnná tabuľka

AMD Phenom II X4 955
Napätie systému BIOS Bodnutie.
Automat 0,96 V * 99 wattov 1,32 V 216 wattov Áno
1,3125 0,96 V * 99 wattov 1,288 V 205 wattov Áno
1,2875 0,96 V * 99 wattov 1,264 V 199 wattov Áno
1,2625 0,96 V * 99 wattov 1,24 V 196 wattov Áno
1,2375 0,96 V * 99 wattov 1,216 V 192 wattov Áno
1,2125 0,96 V * 99 wattov 1,192 V 186 wattov Áno
1,1875 0,96 V * 99 wattov 1,168 V 181 wattov Áno
1,175 0,96 V * 99 wattov 1,152 V 179 wattov Áno
1,1625 0,96 V * 99 wattov 1,136 V 177 wattov nie

* vystavil Cool "n" Quiet.


Teraz je čas zvážiť Intel Core 2 Quad. Použili sme procesor Core 2 Extreme QX9650, keďže sme nemali k dispozícii bežný Core 2 Quad.

Rad Core 2 Quad naďalej poskytuje solídny výkon pri prijateľných úrovniach výkonu. Rad Q8000 a Q9000 je postavený na 45nm dizajne Yorkfield. Q8000 používa 4 MB vyrovnávacej pamäte L2, zatiaľ čo Q9000 má 6 MB alebo dokonca 12 MB vyrovnávacej pamäte L2.

Všetky štvorjadrové procesory Core 2 Quad sú zostavené z dvoch 45nm dvojjadrových lisovníc Wolfdale.

Keď sme v BIOSe nastavili napätie na „Automatic“, dostali sme z Core 2 Extreme QX9650 1,256 V, v dôsledku čoho systém spotreboval 185 wattov pri plnom zaťažení.

Kľudové napätie sa nedá priamo zmeniť, vždy sa určí v závislosti od napätia CPU, ktoré určíte. Pri predvolenom nastavení BIOSu sme po povolení technológie SpeedStep dostali 1,192 V, čím sa násobič znížil na 6x a takt jadra bol 2,0 GHz. Výsledná spotreba energie pri nečinnosti 94 W (pozri tabuľku nižšie) je stále pod spotrebou energie systému AMD len 0,96 V a frekvenciou CPU 800 MHz, čo je zvláštne.

Najnižšie stabilné napätie bolo 1,072 V, čo sme dosiahli s nastavením BIOSu 1,0785 V. Pri plnom zaťažení to viedlo k celkovej spotrebe systému iba 148 W, čiže sme dosiahli 20% zníženie spotreby energie o 16,3 %. pokles napätia jadra.procesor. Ďalším krokom malo byť 1,0655 V, pri ktorom sme už strácali stabilitu. Našťastie to viedlo k rovnakým výsledkom zlyhania pri zaťažení a v režime nečinnosti, vďaka čomu bolo ďalšie znižovanie napätia zbytočné.

Napätie pri nečinnosti vyplývajúce z napätia 1,0785 V nášho procesora bolo 0,1008 V, čo viedlo k spotrebe energie pri nečinnosti systému 87 W. Zlepšenie je necelých 11 %, no dostalo to zadarmo, systém v testoch fungoval stabilne.

Intel Core 2 Extreme QX9650
Napätie systému BIOS Efektívne napätie (chýbajúce) Efektívna spotreba energie (nie.) Efektívne napätie (záťaž) Efektívna spotreba energie (naložiť) Bodnutie.
Automat 1,192 V 94 wattov 1,25 V 185 wattov Áno
1,1955 V 1,128 V 93 wattov 1,184 V 172 wattov Áno
1,1695 V 1,104 V 92 wattov 1,16 V 166 hmotn Áno
1,1435 V 1,008 V 91 wattov 1,136 V 162 wattov Áno
1,175 V 1,048 V 90 wattov 1,104 V 158 hmotn Áno
1,0915 V 1,016 V 88 wattov 1,08 V 151 wattov Áno
1,0785 V 1,008 V 87 wattov 1,072 V 148 wattov Áno
1,0655 V 0,992 V 87 wattov 1,056 V 148 wattov nie


Hardvér systému
CPU AMD AMD Phenom II X4 955 (45nm, 3,2 GHz, 4x 512K L2 a 6MB L3 cache, TDP 125W, Rev. C2)
CPU Intel Intel Core 2 Extreme QX9650 (45nm, 3,0 GHz, 12 MB vyrovnávacia pamäť L2, TDP 130 W, Rev. D0)
Základná doska (Socket 775) MSI P45D3 Neo-F (Rev. 1.0), Čipset: Intel P45, ICH10R, BIOS: 4.2 (18.02.2009)
Základná doska (Socket AM3) MSI 790FX-GD70 (Rev. 1.0), Čipset: AMD 790FX, SB750, BIOS: 1.3 (04/01/2009)
Pamäť DDR3 2 x 2 GB DDR3-1600 (Corsair TR3X6G-1600C8D 8-8-8-24)
Grafická karta Zotac Geforce GTX 260², GPU: GeForce GTX 260 (576 MHz), Video pamäť: 896 MB DDR3 (1998 MHz), 216 stream procesorov, Shader Clock 1242 MHz
HDD Western Digital VelociRaptor, 300 GB (WD3000HLFS) 10 000 RPM, SATA / 300, vyrovnávacia pamäť 16 MB
Blu-ray mechanika LG GGW-H20L, SATA / 150
Zdroj PC napájanie a chladenie, tlmič hluku 750EPS12V 750W
Systémový softvér a ovládače
Operačný systém Windows Vista Enterprise Verzia 6.0 x64 Service Pack 2 (zostava 6000)
Ovládač čipovej sady AMD Katalyzátor 9.4
Ovládač Nvidia GeForce GeForce 185,85
Ovládač čipovej sady Intel Pomôcka na inštaláciu čipsetu Ver. 9.1.0.1012
Ovládače Intel Storage Drivers Ovládače maticového úložiska Ver. 8.8.0.1009


Testy a nastavenia

Testy a nastavenia
PCMark Vantage Verzia: 1.00
PCMark Benchmark
Prvý 95 Verzia: 25.7
Veľké FFT na mieste

Výsledky testu

Nemáme graf zobrazujúci spotrebu energie pri nečinnosti AMD Phenom II X4 955, pretože napätie procesorov AMD sa nemení. Po aktivácii funkcie Cool „n“ Quiet beží procesor v nečinnosti vždy na frekvencii 800 MHz pri 0,96 V (aspoň na našej základnej doske MSI 790FX-GD70). Systém AMD teda v nečinnom režime vždy spotreboval 99W.

Graf zobrazuje spotrebu energie pri nečinnosti Core 2 Extreme QX9650 pri všetkých testovaných úrovniach napätia. Pri 1,008 V je možné dosiahnuť spotrebu energie 87 W, zatiaľ čo pri 1,192 V je predvolená spotreba energie 94 W.


Úspora energie zo zníženia napätia v prípade vlajkového procesora AMD sa ukázala byť pomerne výrazná. Začali sme s nominálnym napätím 1,32 V, čo dalo systému špičkovú spotrebu energie 216 W, po ktorej sme pri zaťažení dostali len 179 W pri napätí 1,175 V. Úspora energie bola 37 W alebo 17,2 % - dosť významné keďže ušetrená energia postačí na napájanie napríklad 20" moderného displeja!

Dokáže systém Intel prekonať 17,2 % úsporu energie pri špičkovom zaťažení? Možno: v tomto prípade bolo minimálne stabilné napätie pri záťaži 1,078 V namiesto 1,255 V a spotreba energie celého systému bola 148 W namiesto 185 W – zníženie o 20 %.

Spotreba energie a účinnosť PCMark

Merali sme výkon a spotrebu PCMark Vantage pri predvolených nastaveniach a optimalizovaných napätiach pre systémy AMD a Intel.


V prípade Phenom II X4 955 sa priemerná spotreba energie znížila zo 157 wattov na 141 wattov, čo predstavuje zlepšenie o 10,2 %. Systém Core 2 Extreme QX9650 dokázal znížiť spotrebu energie zo 135 W na 117 W, čo je pôsobivé vzhľadom na výkon spracovania, ktorý prekonáva špičkový procesor AMD, ktorý sme použili. Systém Intel znížil priemernú spotrebu energie o 13,1 %.


V dôsledku toho sa znížila aj celková energia (vo watthodinách) vynaložená na beh: o 11,4 % pre systém AMD a o 12,4 % pre systém Intel. Nie zlé!


Nakoniec sme korelovali výsledky PCMark Vantage s priemernou spotrebou energie dvoch systémov (výkonové body na watt). Pamätajte, že dva stroje poskytujú rovnaký výkon po optimalizácii stresu. Systém AMD Phenom II X4 955 bol schopný poskytnúť 11,6% zlepšenie energetickej účinnosti v benchmarku PCMark Vantage. Systém Intel zlepšil skóre efektívnosti o 13,8 %.

Záver

Testovali sme dva špičkové procesory od AMD a Intel na moderných základných doskách MSI, aby sme analyzovali potenciálne úspory energie, ktoré možno dosiahnuť znížením napätia procesora. Samozrejme sme tiež zamýšľali znížiť napätie na pamäti alebo čipových súpravách, aby sme získali ďalšie úspory, ale žiadna z recenzovaných základných dosiek nám neumožnila upraviť napätie komponentov. Recenzovali sme základné dosky Asus P6T a Rampage II Gene, Gigabyte MA790FXT-UD5P a X48T-DQ6, ale nakoniec sme sa rozhodli pre MSI 790FX-GD70 pre Socket AM3 a P45D3 Neo pre Socket LGA775.

AMD Phenom II X4: o 17 % nižšia spotreba energie, o 11,6 % vyššia účinnosť

Špičková spotreba energie pri záťaži klesla až o 17 % pri minimálnom stabilnom napätí, ktoré sme našli na Phenom II X4 955. Keďže výkon zostal nezmenený, v benchmarku PCMark Vantage sme získali 11,6 % zvýšenie účinnosti (výkon na watt). Technológia Cool "n" Quiet od AMD trochu brzdila naše snahy o zníženie napätia, pretože sa pri nečinnosti vždy prepínala späť do normálneho režimu, bez ohľadu na nastavenie napätia. A spotreba pri nečinnosti bola vždy 99W.

Intel Core 2 Extreme: o 20 % nižšia spotreba energie, o 13,8 % vyššia účinnosť

Výsledky boli ešte výraznejšie v našom testovacom systéme Core 2 Extreme QX9650, kde sa spotreba energie pri špičkovej záťaži znížila o pôsobivých 20 % bez straty výkonu. Tým sa zlepšil výkon PCMark Vantage na watt až o 13,8 %. Keďže napätie procesora Intel v úspornom režime SpeedStep závisí od nastaveného napätia jadra, výrazne sa zníži aj spotreba energie v nečinnom režime – iba na 1,008 V. V nečinnom režime sa tak ušetrí 8 %.

Oplatí sa šetriť energiou?

Boli sme ohromení relatívne širokými toleranciami poklesu napätia, pretože sme očakávali, že problémy začnú oveľa skôr. Ale systémy AMD a Intel ukázali, že moderné procesory dokážu pracovať pri výrazne nižších napätiach. Podarilo sa nám použiť o 16 % nižšie napätie na procesor AMD Phenom II X4 a o 16,6 % nižšie napätie na procesor Intel Core 2 Extreme. To všetko umožnilo u oboch systémov úsporu 17 – 20 % pri špičkovom zaťažení.

Musíte však zabezpečiť, aby vaše nastavenia podpätia poskytovali spoľahlivú prevádzku, preto vám odporúčame pristupovať k tomuto procesu opatrne. Nepotrebujete však dosiahnuť zníženie napätia o 16 % – dokonca aj zníženie o 10 % vám umožní bezplatne znížiť spotrebu energie systému bez akéhokoľvek vplyvu na výkon.

V moderných desktopových a (predovšetkým) mobilných procesoroch sa používa množstvo technológií šetriacich energiu: ODCM, CxE, EIST atď. Dnes nás bude zaujímať azda najvyššia z nich: flexibilné riadenie frekvencie a napätia jadro procesora počas prevádzky - Cool "n "Quiet, PowerNow! od AMD a Vylepšený SpeedStep(EIST) od spoločnosti Intel.

Používateľ počítača alebo prenosného počítača najčastejšie potrebuje povoliť (začiarknuť políčko) podporu konkrétnej technológie v systéme BIOS a / alebo operačnom systéme - zvyčajne sa neposkytuje žiadne jemné ladenie, hoci, ako ukazuje prax, môže byť veľmi užitočné. V tomto článku budem hovoriť o tom, ako môžete ovládať prevádzkové napätie jadra procesora z operačného systému (napríklad Intel Pentium M a FreeBSD) a prečo ho možno budete potrebovať.

Napriek veľkému množstvu návodov málokedy nájdete podrobný popis technológie Enhanced SpeedStep z pohľadu operačného systému (a nie koncového používateľa), najmä v ruštine, preto je značná časť článku venovaná implementácii podrobnosti a má do istej miery teoretickú povahu.

Dúfam, že tento článok bude užitočný nielen pre používateľov FreeBSD: trochu sa dotkneme aj GNU / Linuxu, Windows a Mac OS X. V tomto prípade je však konkrétny operačný systém až druhoradý.

Predslov

Minulý rok som upgradoval procesor v mojom starom notebooku: nainštaloval som Pentium M 780 namiesto štandardného 735, dokončil som ho takpovediac na maximum. Notebook sa začal viac zahrievať pri záťaži (v dôsledku odvodu tepla zvýšený o 10 W); Nevenoval som tomu veľkú pozornosť (okrem toho, že som pre každý prípad vyčistil a premazal chladič), ale jedného krásneho dňa, počas dlhej kompilácie, sa počítač ... jednoducho vypol (teplota dosiahla kritických sto stupňov) . Do podnosu som priniesol hodnotu systémovej premennej hw.acpi.thermal.tz0.temperature za účelom sledovania teploty a prípadne včasného prerušenia „ťažkej“ úlohy. Ale po chvíli som stratil ostražitosť (teplota vždy zostala v normálnych medziach) a všetko sa opakovalo. V tom momente som sa rozhodol, že sa už nechcem neustále báť núdzového vypnutia pri dlhej záťaži CPU a držať ruku na Ctrl-C, či nútiť procesor.

Zvyčajne zmena nominálneho napätia znamená jeho zvýšenie, aby sa zabezpečil stabilný chod procesora pri pretaktovaní (t.j. pri zvýšenej frekvencii). Zhruba povedané, každá hodnota napätia zodpovedá určitému frekvenčnému rozsahu, v ktorom môže fungovať, a úlohou pretaktovania je nájsť maximálnu frekvenciu, na ktorej procesor ešte nie je „zabugovaný“. V našom prípade je úloha trochu symetrická: pre známu frekvenciu (presnejšie, ako čoskoro zistíme, súbor frekvencií), nájdite najnižšie napätie, ktoré zaisťuje stabilnú prevádzku CPU. Nechcem znižovať prevádzkovú frekvenciu, aby som nestrácal na výkone - notebook už má ďaleko od top-endu. Tiež znížte napätie výnosnejšie.

Trochu teórie

Ako viete, odvod tepla procesora je úmerný jeho kapacite, frekvencii a námestie napätie (koho by zaujímalo, prečo je to tak, môže si skúsiť odvodiť závislosť sám, pričom procesor považuje za súbor elementárnych CMOS invertorov (logické negatíva), alebo postupovať podľa odkazov: jeden, dva, tri).

Moderné mobilné procesory môžu spotrebovať až 50-70 wattov, ktoré sa v konečnom dôsledku rozptýlia do tepla. To je veľa (spomeňte si na žiarovky), najmä na notebook, ktorý v samostatnom režime pod záťažou bude „žrať“ batériu ako tie prasačie pomaranče. V podmienkach obmedzeného priestoru bude potrebné teplo s najväčšou pravdepodobnosťou aktívne odvádzať, čo znamená dodatočnú spotrebu energie na otáčanie ventilátora chladiča (možno niekoľkých).

Tento stav samozrejme nikomu nevyhovoval a výrobcovia procesorov začali uvažovať o tom, ako optimalizovať spotrebu energie (a teda aj prenos tepla) a zároveň zabrániť prehrievaniu procesora. Záujemcom odporúčam prečítať si množstvo výborných článkov od Dmitrija Besedina a ja sa zatiaľ pustím do práce.

Trochu histórie

Prvýkrát sa technológia SpeedStep (verzia 1.1) objavila v druhej generácii tretích Pentií (vyrobených podľa 18-mikrónovej mobilnej procesnej technológie Coppermine pre notebooky, 2000), ktoré v závislosti od záťaže alebo zdroja napájania počítača - siete alebo batéria - môže prepínať medzi vysokými a nízkymi frekvenciami v dôsledku premenlivého faktora. V ekonomickom režime procesor spotreboval približne polovicu energie.

S prechodom na 13-mikrónový technický proces dostáva technológia číslo verzie 2.1 a stáva sa „vylepšenou“ – teraz dokáže procesor znížiť nielen frekvenciu, ale aj napätie. Verzia 2.2 je adaptáciou pre architektúru NetBurst a od tretej verzie (platforma Centrino) sa technológia bude oficiálne nazývať Enhanced Intel SpeedStep (EIST).

Verzia 3.1 (2003) je prvýkrát použitá v prvej a druhej generácii procesorov Pentium M (jadrá Banias a Dothan). Frekvencia sa menila (najskôr len prepínala medzi dvoma hodnotami) od 40 % do 100 % základnej, s krokom 100 MHz (pre Banias) alebo 133 MHz (pre Dothan, náš prípad). Intel zároveň zavádza dynamickú správu vyrovnávacej pamäte L2 s cieľom ďalej optimalizovať spotrebu energie. Verzia 3.2 (Enhanced EIST) - prispôsobenie pre viacjadrové procesory so zdieľanou vyrovnávacou pamäťou L2. (Malé často kladené otázky od spoločnosti Intel o technológii SpeedStep.)

Teraz, namiesto toho, aby ste slepo nasledovali početné návody a návody, stiahnite si pdf a skúste prísť na to, ako EST funguje (budem naďalej používať túto skratku, pretože je univerzálnejšia a kratšia).

Ako funguje EST

EST vám teda umožňuje riadiť výkon a spotrebu energie procesora a dynamicky, počas svojej práce. Na rozdiel od skorších implementácií, ktoré vyžadovali hardvérovú podporu (v čipsete) na zmenu prevádzkových parametrov procesora, EST umožňuje programovo, t.j. pomocou systému BIOS alebo operačného systému zmeňte násobiteľ (pomer frekvencie procesora k frekvencii zbernice) a napätie jadra (V cc) v závislosti od zaťaženia, typu napájania počítača, teploty procesora a / alebo nastavení OS (zásady).

Procesor sa počas prevádzky nachádza v jednom z niekoľkých stavov (stavy výkonu): T (plyn), S (spánok), C (nečinnosť), P (výkon), pričom sa medzi nimi prepína podľa určitých pravidiel (str. 386 ACPI špecifikácia 5.0).

Každý procesor prítomný v systéme musí byť popísaný v tabuľke DSDT, najčastejšie v mennom priestore \ _PR, a zvyčajne poskytuje množstvo metód, prostredníctvom ktorých dochádza k interakcii s operačným systémom (ovládač PM) a ktoré popisujú možnosti procesora. (_PDC, _PPC), podporované stavy (_CST, _TSS, _PSS) a ich riadenie (_PTC, _PCT). Požadované hodnoty pre každý procesor (ak je súčasťou tzv. balíka podpory CPU) určuje BIOS „základnej dosky, ktorý vypĺňa príslušné tabuľky a metódy ACPI (s. 11 pdf“), keď stroj je spustený.

EST riadi chod procesora v P-stave (P-stave), budú nás zaujímať. Napríklad Pentium M podporuje šesť P-stavov (pozri obr. 1.1 a tabuľku 1.6 pdf "ki), ktoré sa líšia napätím a frekvenciou:

Vo všeobecnosti platí, že keď procesor nie je vopred známy, jedinou viac či menej spoľahlivou (a Intelom odporúčanou) metódou práce s ním je ACPI. S konkrétnym procesorom môžete interagovať priamo, obísť ACPI, prostredníctvom registrov MSR (Model-Specific Register), a to aj priamo z príkazového riadku: od verzie 7.2 na to FreeBSD používa obslužný program cpucontrol (8).

Či váš procesor podporuje EST zistíte pohľadom na 16. bit v registri IA_32_MISC_ENABLE (0x1A0), mal by byť nastavený:

# kldload cpuctl # cpucontrol -m 0x1a0 / dev / cpuctl0 | (čítaj _ msr ahoj lo; echo $ ((lo >> 16 & 1))) 1
Podobný príkaz pre GNU / Linux (vyžaduje sa balík msr-tools):

# modprobe msr # echo $ ((`rdmsr -c 0x1a0` >> 16 & 1)) 1
Prechod medzi stavmi nastáva pri zápise do registra IA32_PERF_CTL (0x199). Aktuálny prevádzkový režim zistíte prečítaním registra IA32_PERF_STATUS (0x198), ktorý sa dynamicky aktualizuje (tab. 1.4 pdf "ki). V budúcnosti pre stručnosť vynechám predponu IA32_.

# cpucontrol -m 0x198 / dev / cpuctl0 MSR 0x198: 0x0612112b 0x06000c20
Z dokumentácie vyplýva, že aktuálny stav je zakódovaný v spodných 16 bitoch (ak vykonáte príkaz viackrát, ich hodnota sa môže zmeniť - to znamená, že EST funguje). Ak sa bližšie pozriete na ostatné kúsky, zjavne to tiež nie sú odpadky. Vygoogliním môžete zistiť, čo znamenajú.

Štruktúra registra PERF_STATUS

Dáta načítané z PERF_STATUS sú reprezentované nasledujúcou štruktúrou (za predpokladu, že dáta sú uložené ako little-endian):

Štruktúra msr_perf_status (nepodpísaný curr_psv: 16; / * Aktuálny PSV * / nepodpísaný stav: 8; / * Príznaky stavu * / nepodpísaný min_mult: 8; / * Minimálny násobiteľ * / nepodpísaný max_psv: 16; / * Maximálny PSV * / nepodpísaný init_psv 16; / * PSV pri zapnutí * /);
Tri 16-bitové polia sú takzvané hodnoty stavu výkonu (PSV), ich štruktúru zvážime nižšie: aktuálna hodnota PSV, maximálna (závisí od procesora) a hodnota pri štarte systému (keď zapnutý). Aktuálna hodnota (curr_psv) sa samozrejme mení pri zmene prevádzkového režimu, maximum (max_psv) zvyčajne zostáva konštantné, počiatočná hodnota (init_psv) sa nemení: spravidla sa rovná maximálnej hodnote pre desktopy a servery, ale minimum pre mobilné CPU. Minimálny multiplikátor (min_mult) pre procesory Intel je takmer vždy šesť. Stavové pole obsahuje hodnotu niektorých príznakov, napríklad keď nastanú udalosti EST alebo THERM (to znamená, keď sa zmení stav P alebo sa prehreje procesor).

Teraz, keď poznáme účel všetkých 64 bitov registra PERF_STATUS, môžeme dešifrovať vyššie uvedené slovo: 0x0612 112b 0x06 00 0c20⇒ PSV na začiatku 0x0612, maximálna hodnota 0x112b, minimálny multiplikátor 6 (podľa očakávania), príznaky vymazané, aktuálna hodnota PSV = 0x0c20. Čo presne znamená týchto 16 bitov?

Štruktúra hodnoty stavu výkonu (PSV).

Je veľmi dôležité vedieť a pochopiť, čo je PSV, pretože práve v tejto forme sú nastavené prevádzkové režimy procesora.

Štruktúra psv (bez znamienka vid: 6; / * Identifikátor napätia * / bez znamienka _vyhradené1: 2; frekvencia bez znamienka: 5; / * Identifikátor frekvencie * / bez znamienka _rezervované2: 1; bez znamienka: 1; / * Neceločíselný pomer zbernice * / bez znamienka slfm: 1; / * Dynamická frekvencia FSB (Super-LFM) * /);
Dynamické prepínanie frekvencie FSB špecifikuje preskočenie každých druhých hodín FSB, t.j. znížiť prevádzkovú frekvenciu na polovicu; Táto funkcia bola prvýkrát implementovaná v procesoroch Core 2 Duo (jadro Merom) a netýka sa nás, rovnako ako Non-integer bus ratio - špeciálny režim podporovaný niektorými procesormi, ktorý umožňuje, ako už názov napovedá, jemnejšie riadiť ich frekvenciu. .

So samotnou technológiou EST súvisia dve polia – frekvenčné identifikátory (Fid), čo sa číselne rovná multiplikátoru, a napätie (Voltage Identifier, Vid), ktoré zodpovedá napäťovej úrovni (ktorá je zvyčajne najmenej dokumentovaná).

Identifikátor napätia

Intel veľmi nerád zverejňuje informácie (zvyčajne sa vyžaduje NDA) o tom, ako presne je zakódované ID napätia pre každý procesor. Ale pre väčšinu populárnych CPU je tento vzorec našťastie známy; konkrétne pre naše Pentium M (a mnoho ďalších): V cc = Vid 0 + (Vid × V krok), kde V cc je aktuálne (skutočné) napätie, Vid 0 je základné napätie (keď Vid == 0) , V krok - krok. Tabuľka pre niektoré populárne procesory (všetky hodnoty v milivoltoch):
CPU Vid 0 V krok V topánka V min V max
Pentium M 700,0 16,0 xxxx, x xxx, x xxxx, x
E6000, E4000 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
Násobiteľ (t.j. Fid) je zapísaný v PSV posunutý o 8 bitov doľava, najmenej významných šesť bitov zaberá Vid. Pretože v našom prípade možno zvyšok bitov zanedbať, potom PSV, frekvencia procesora, systémová zbernica a fyzické napätie sú spojené jednoduchým vzorcom (pre Pentium M):
Teraz sa pozrime na riadiaci register (PERF_CTL). Zápis do neho by mal prebiehať nasledovne: najprv sa načíta aktuálna hodnota (celé 64-bitové slovo), zmenia sa v nej potrebné bity a zapíšu sa späť do registra (tzv. čítanie-upravovanie-zápis) .

Štruktúra registra PERF_CTL

struct msr_perf_ctl (nepodpísané psv: 16; / * Požadované PSV * / nepodpísané _vyhradené1: 16; nepodpísané ida_diseng: 1; / * Odpojenie IDA * / nepodpísané _vyhradené2: 31;);
Bit odpojenia IDA (Intel Dynamic Acceleration) umožňuje dočasne zakázať príležitostné riadenie frekvencie na procesoroch Intel Core 2 Duo T7700 a novších – opäť nás to nezaujíma. Nízkych 16 bitov (PSV) – režim, v ktorom „žiadame“ ​​procesor o prepnutie.

_PSS tabuľka

Tabuľka _PSS je pole stavov ( Balíček v terminológii ACPI) alebo metóda, ktorá vracia takéto pole; každý P-stav je definovaný nasledujúcou štruktúrou (str. 409 špecifikácie ACPI):

Struct Pstate (nepodpísaná CoreFrequency; / * Prevádzková frekvencia jadrového CPU, MHz * / unsigned Power; / * Maximálny stratový výkon, mW * / nepodpísaná latencia; / * Najhorší prípad latencie nedostupnosti CPU počas prechodu, µs * / nepodpísaná BusMasterLatency; / * Oneskorenie v najhoršom prípade, keď mastery zbernice nemajú prístup k pamäti, µs * / unsigned Control; / * Hodnota, ktorá sa má zapísať do PERF_CTL, aby sa prepol do tohto stavu * / unsigned Status; / * Hodnota (mala by sa rovnať hodnote načítanej od PERF_STATUS) * /);
Každý P-stav je teda charakterizovaný nejakou prevádzkovou frekvenciou jadra, maximálnym rozptýleným výkonom, oneskorením prechodu (v skutočnosti je to čas prechodu medzi stavmi, počas ktorých sú CPU a pamäť nedostupné), nakoniec to najzaujímavejšie: PSV , ktorý zodpovedá tomuto stavu a ktorý musí byť zapísaný do PERF_CTL, aby sa dostal do tohto stavu (Control). Ak chcete overiť, či procesor úspešne vstúpil do nového stavu, prečítajte si register PERF_STATUS a porovnajte ho s hodnotou zapísanou v poli Status.

O niektorých procesoroch môže „vieť“ ovládač EST operačného systému, tzn. budú môcť spravovať bez podpory ACPI. Ale to je zriedkavé, najmä v dnešnej dobe (aj keď pre podceňovanie "a na Linuxe ste niekde pred 2.6.20 museli opravovať tabuľky v ovládači a v roku 2011 bola táto metóda úplne bežná).

Treba poznamenať, že ovládač EST môže fungovať aj pri absencii tabuľky _PSS a neznámeho procesora, pretože maximálne a minimálne hodnoty možno nájsť z PERF_STATUS (v tomto prípade sa počet P-stavov samozrejme zvrhne na dva).

Dosť bolo teórie. Čo s tým všetkým robiť?

Teraz, keď poznáme 1) účel všetkých bitov v správne slová MSR, 2) ako presne je kódované PSV pre náš procesor a 3) kde v DSDT hľadať potrebné nastavenia, je čas zostaviť tabuľku frekvencií a napätí predvolená... Vyklopme DSDT a hľadajme tam tabuľku _PSS. Pre Pentium M 780 by to malo vyzerať asi takto:

Predvolené hodnoty _PSS

Názov (_PSS, Package (0x06) (// Celkovo je definovaných 6 stavov (P-stavy) Package (0x06) (0x000008DB, // 2267 MHz (porov. Fid × FSB hodiny) 0x00006978, // 27000 mW 0x000 // 10 µs (spĺňa špecifikáciu) 0x0000000A, // 10 µs 0x0000112B, // 0x11 = 17 (násobič, Fid), 0x2b = 43 (Vid) 0x0000112B, Balíček (0800112B), Balíček (08% 0808) z maxima) 0x000059D8, // 23000 mW 0x0000000A, 0x0000000A, 0x00000E25, // Fid = 14, Vid = 37 0x00000E25, 000000000025, Balík (07% 06) 08000 (0/07006)000000 0x0000000A, 0x0000000A, 0x00000C20, // Fid = 12, Vid = 32 0x00000C20), balíček (0x06) (0x00000535, // 1333 MHz (59% maxima) 0x00004650, // 18000 mW 0x0000000A, 0x0000000A, 0x00000A1C, // Fid = 10, Vid = 28 0x00000A1C), Balík (0x06) (0x0000042B, // 1067 MHz (47 % maxima) 0x00003E80, // 16000 mW 0x0000000A, 0000000A, 0000000A, 0000000A, 00x07,00800,01x07,0Balík (0x06) (0x0 0000320, // 800 MHz (35 % maxima) 0x000032C8, // 13000 mW 0x0000000A, 0x0000000A, 0x00000612, // Fid = 6, Vidx012) 1)


Takže poznáme predvolené Vid pre každú úroveň P: 43, 37, 32, 28, 23, 18, čo zodpovedá napätiam od 1388 mV do 988 mV. Podstata undervoltingu je v tom, že tieto napätia sú pravdepodobne o niečo vyššie, ako je skutočne potrebné pre stabilnú prevádzku procesora.Pokúsme sa určiť "hranice toho, čo je dovolené."

Napísal som na to jednoduchý shell skript, ktorý postupne znižuje Vid a vykonáva jednoduchú slučku (napájaný (8) démon musí byť, samozrejme, pribitý predtým). Takto som určil napätia, ktoré umožňujú procesoru aspoň nevisieť, potom som spustil test Super Pi a niekoľkokrát prerobil jadro; neskôr som zvýšil hodnotu Vid pre dve maximálne frekvencie ešte o jeden bod, inak gcc občas padalo kvôli nelegálnej chybe inštrukcie. Ako výsledok všetkých experimentov počas niekoľkých dní sme dostali nasledujúci súbor „stabilných“ Vid: 30, 18, 12, 7, 2, 0.

Analýza výsledkov

Teraz, keď sme empiricky určili minimálne bezpečné napätia, je zaujímavé porovnať ich s pôvodnými:
Zníženie maximálneho napätia dokonca o 15 % prinieslo celkom hmatateľné výsledky: nielenže dlhodobé zaťaženie už nevedie k prehrievaniu procesora a núdzovému vypnutiu, ale teplota vo všeobecnosti už takmer nikdy neprekročí 80 °C. Predpokladaná výdrž batérie v „kancelárskom“ režime, súdiac podľa acpiconf -i 0, sa zvýšila z 1 h. 40 m. Batériu som nemenil, odkedy som si kúpil laptop pred siedmimi rokmi.)

Teraz sa musíme uistiť, že nastavenia sa aplikujú automaticky. Môžete napríklad upraviť ovládač cpufreq (4) tak, aby sa hodnoty PSV preberali z jeho vlastnej tabuľky, a nie cez ACPI. Je to však nepohodlné, už len preto, že pri aktualizácii systému musíte pamätať na opravu ovládača a vo všeobecnosti - vyzerá to skôr ako špinavý hack ako riešenie. Pravdepodobne stále môžete nejakým spôsobom opraviť napájanie (8), čo je zlé z približne rovnakých dôvodov. Môžete jednoducho spustiť skript, znížiť napätie priamym zápisom do MSR (čo som v skutočnosti urobil, aby som určil „stabilné“ napätia), ale potom si musíte pamätať a samostatne zvládnuť prechody medzi stavmi (nielen P -uvádza vo všeobecnosti akékoľvek, napríklad keď sa notebook prebudí zo spánku). Ani toto nie je tento prípad.

Ak získame hodnoty PSV prostredníctvom ACPI, potom je najlogickejšie zmeniť tabuľku _PSS v DSDT. Našťastie sa na to nemusíte hrabať v BIOSe: FreeBSD dokáže načítať DSDT zo súboru (o úprave tabuliek ACPI už na Habré, takže sa tomu teraz nebudeme podrobne venovať). Nahraďte povinné polia v DSDT:

Podtrhujúca záplata pre _PSS

@@ -7.385,8 7385,8 @@ 0x00006978, 0x0000000A, 0x0000000A, - 0x0000112B, - 0x0000112B + 0x0000111D, + 0x0000111D), balíček (0x06) @@ -7.395,8 7395,8 @@ 0x000059D8, 0x0000000A, 0x0000000A, - 0x00000E25, - 0x00000E25 + 0x00000E12, + 0x00000E12), balíček (0x06) @@ -7.405,8 7405,8 @@ 0x00005208, 0x0000000A, 0x0000000A, - 0x00000C20, - 0x00000C00C + 0x00000) 0x06) @@ -7.415,8 7415,8 @@ 0x00004650, 0x0000000A, 0x0000000A, - 0x00000A1C , - 0x00000A1C + 0x00000A07, + 0x00000A07), balíček (0x06) @@ -7.425,8 7425,8 @@ 0x00003E80 0x0000000A, 0x0000000A, - 0x00000817, - 0x00000817 + 0x00000802, + 0x00000802), balíček (0x06) @@ -7.435,8 7435,8 @ @ 0x000032C8, 0x0000000A, 0x0000000A, - 0x00000612, + 0x00000612))


Zostavte nový súbor AML (bajtový kód ACPI) a upravte /boot/loader.conf tak, aby FreeBSD načítalo náš upravený DSDT namiesto predvoleného:

Acpi_dsdt_load = "ÁNO" acpi_dsdt_name = "/ root / undervolt.aml"
To je vo všeobecnosti všetko. Ak zmeníte procesor, nezabudnite zakomentovať tieto dva riadky v /boot/loader.conf.

Aj keď sa nechystáte znižovať nominálne napätia, môže prísť vhod možnosť vyladiť správu stavov procesora (nielen stavov P). Často sa totiž stáva, že „krivka“ BIOSu vyplní tabuľky nesprávne, neúplne alebo ich nevyplní vôbec (napríklad preto, že Celeron nepodporuje EST a výrobca oficiálne nezabezpečuje jeho výmenu). V tomto prípade budete musieť urobiť všetku prácu sami. Upozorňujeme, že samotné pridanie tabuľky _PSS nemusí stačiť; napríklad C-stavy sú špecifikované tabuľkou _CST a okrem toho možno budete musieť opísať samotné riadiace procedúry (Performance Control, _PCT). Našťastie je to jednoduché a pomerne podrobné, s príkladmi popísanými v ôsmej kapitole špecifikácie ACPI.

Podvádzanie v GNU / Linux

Aby som bol úprimný, najprv som si myslel, že si budem musieť prečítať Gentoo Undervolting Guide a prispôsobiť ho pre FreeBSD. Ukázalo sa, že to nie je také ľahké, pretože dokument sa ukázal byť mimoriadne hlúpy (čo je pre Gentoo Wiki vlastne zvláštne). Žiaľ, na ich novej stránke som nič podobné nenašiel, musel som sa uspokojiť so starou kópiou; a hoci chápem, že tento návod stratil veľa zo svojej aktuálnosti, predsa len ho budem trochu kritizovať. :-)

Z nejakého dôvodu, z nejakého dôvodu, okamžite, bez vyhlásenia vojny, sa im ponúkne oprava jadra (vo FreeBSD na chvíľu nemáme žiadny systém kód nebolo potrebné upravovať). Aby bolo možné vraziť do ovládačov alebo zapísať do niektorých init-scriptov hodnoty niektorých „bezpečných“ napätí, nie je jasné, kto a ako ich získal, zo špeciálnej tabuľky (v ktorej je Pentium M 780 posmešne zastúpené riadok pozostávajúci iba z otáznikov). Riaďte sa radami, z ktorých niektoré píšu ľudia, ktorí zjavne nerozumejú tomu, o čom hovoria. A čo je najdôležitejšie, je úplne nejasné, prečo a ako presne tieto magické zámeny niektorých čísel za iné fungujú; neexistuje spôsob, ako sa "dotknúť" EST pred záplatou a prestavbou jadra, nikdy sa nezmieňovať o registroch MSR a práci s nimi z príkazového riadku. Úprava tabuliek ACPI sa nepovažuje za alternatívnu a preferovanú možnosť.

Makos pomerne úzko spolupracuje s ACPI (a očakáva, že bude fungovať správne) a úprava tabuliek je jednou z hlavných metód konfigurácie pre konkrétny hardvér. Preto prvá vec, ktorá vám príde na myseľ, je vypísať a opraviť DSDT rovnakým spôsobom. Alternatívna metóda: google: //IntelEnhancedSpeedStep.kext ako jeden, dva, tri.

Ďalšia „úžasná“ pomôcka (našťastie už zastaraná) ponúka kúpiť za 10 dolárov možnosť meniť napätie a frekvenciu. :-)

Na internete diskutovať o veľmi zaujímavom programe s názvom RMClock. Predtým som sa s programom už niekoľkokrát stretol, ale na prvý pohľad nejasné nastavenia a absencia akejkoľvek dokumentácie spôsobujú odmietnutie a odrádzajú od akejkoľvek túžby zaoberať sa touto pomôckou. Napriek tomu je program veľmi zaujímavý a zaslúži si pozornosť. Teraz vám poviem prečo a ako to môže prilákať priemerného majiteľa notebooku.

Vývojár RightMark

Veľkosť súboru na stiahnutie 463 kb

Účel programu

Malá utilita, ktorá v reálnom čase monitoruje takt, throttling, záťaž procesora, napätie a teplotu jadra procesora. Dokáže tiež spravovať výkon a spotrebu energie procesorov, ktoré podporujú funkcie správy napájania. V režime automatické ovládanie nepretržite monitoruje využitie CPU a automaticky upravuje rýchlosť hodín, napätie jadra a/alebo úroveň škrtenia v súlade s koncepciou „výkonu na požiadanie“.

Prínos pre bežného užívateľa

Znížte tak napätie dodávané do centrálneho procesora znížiť spotrebu energie, znížiť tvorbu tepla a zvýšiť autonómiu.

Bez toho, aby sme zachádzali do technických detailov, myšlienka je celkom jednoduchá – znížiť spotrebu energie centrálnej procesorovej jednotky (CPU). Metóda nie je univerzálna a nie je 100%, pretože každý procesor má jedinečné fyzikálne vlastnosti a je vysoká pravdepodobnosť, že pri rovnakej rýchlosti hodín vyžaduje menej energie, ako je predvolené nastavenie pre všetky procesory tohto typu... Ako veľmi môžete znížiť spotrebu energie, závisí od šťastia a vášho CPU. Mal som šťastie, že výsledky boli veľmi odhaľujúce.

Inštalácia

Postupujte podľa pokynov a nič viac. Len majte na pamäti, že program sa automaticky načíta pri spustení a stáva sa štandardným softvérom na správu profilov spotreby energie. Ak ste teda nainštalovali iný softvér (proprietárne nástroje v spoločnostiach Acer, ASUS), musíte ich úplne vypnúť, aby sa predišlo konfliktom.

Prispôsobenie

nastavenie

V tejto záložke je potrebné zaškrtnúť dve položky v bloku Začiatokmožnosti... Aby sa aplikácia spustila automaticky pri spustení systému Windows.

Zvládanie

Všetko tiež necháme štandardne a skontrolujeme, či položka PovoliťOSmoczvládanieintegrácia aktivovaný.

Profily

Tu začína zábava. Pre stavy AC napájanie (prevádzka zo siete) a Batéria (prevádzka na batériu) nastavte požadované profily. Pri práci na sieť odporúčam nastaviť na dopyt (výkon podľa potreby) a pri prevádzke na batériu Moc Ukladanie.

Bezprostredne pod profilmi sú zobrazené všetky možné stavy procesora (násobiče, FID) a tiež napätie (VID) aplikované na CPU v tomto stave. Frekvencia hodín, s ktorou procesor pracuje, závisí od aktuálneho stavu; schopnosť meniť frekvenciu je určená na zníženie spotreby energie v momentoch malého zaťaženia alebo nečinnosti.

Teraz je našou úlohou nastaviť nižšie napätie pre každý multiplikátor. Dlho som neexperimentoval a nastavil som minimálne napätie pre každý násobič. Okamžite odpovedám na otázku o škodlivosti takéhoto konania - vášmu procesoru sa nič nestane, v najhoršom prípade systém zamrzne. V mojom prípade všetko fungovalo dobre, ale ak máte nejaké problémy, skúste znížiť napätie po malých krokoch na minimálnu hodnotu, pri ktorej bude systém stabilne fungovať.

Teraz musíte nakonfigurovať profily Výkon na požiadanie a Úspora energie. Ak to chcete urobiť, vyberte príslušné položky. V oboch prípadoch začiarknite políčko Použite P- štát prechody ( PST), profil, v ktorom sa práve nachádzate. Navyše pre profil na dopyt, vyberte všetky faktory zo zoznamu a pre profil Moc Ukladanie len ten prvý (to znamená, že pri napájaní z batérie bude procesor vždy pracovať na minimálnej frekvencii, samozrejme si môžete zvoliť iný násobič, čím zvýšite maximálnu povolenú frekvenciu). Ostatné možnosti nechajte neaktívne.

Práca

To je všetko. Teraz musíte aktivovať profil napájania RMClock Power Management. Ak to chcete urobiť, kliknite ľavým tlačidlom myši na batériu v zásobníku a vyberte požadovaný profil. Ak tam nie je, musíte kliknúť na Extra možnosti spotreba energie a vyberte si to tam. Teraz pri pripájaní napájania notebook použije profil na dopyt , a pri napájaní z batérie - Moc ukladanie, pomocou nastavení, ktoré sme vykonali predtým. Zároveň sme znížili spotrebu procesora a zreagovali ho na nastavenia programu (pri použití štandardného ovládacieho programu môže frekvencia skákať hore a dole aj v nečinnosti a mení sa aj napätie).

Kontrola

Ak ste urobili všetko správne, potom na karte Monitorovanie môžete vidieť výsledok práce. Graf FID-VID zobrazuje aktuálny multiplikátor a napätie. Skontrolujte tieto hodnoty pre sieťovú a batériovú prevádzku, musia sa zhodovať s nastavenými hodnotami v profile.

Teraz je vhodné otestovať všetky nastavenia nejakým programom, napríklad Prime95. Výzvou je uistiť sa, že CPU beží hladko pri nami zvolenom nastavení napätia.

Testovanie

Teoreticky je všetko v pohode ako vždy, ale ako tieto akcie ovplyvňujú skutočnú prácu?

Testovací systém: Terra 1220 (Intel Core 2 Duo T7300)

Otestoval som oba režimy prevádzky a porovnal som ich s podobnými režimami štandardného programu na správu napájania.

VyváženýVS Výkon na požiadanie

Autonómia bola testovaná s BatteryEater v režime maximálneho zaťaženia (Classic). Bezdrôtové rozhrania sú vypnuté, jas obrazovky je nastavený na maximum.

Ako vidíte, prevádzkový čas sa vôbec nezmenil a dosiahol 88 minút. Každý test bol vedený dvakrát, aby sa potvrdili výsledky. Takže v mojom konkrétnom prípade zníženie napätia neovplyvnilo čas autonómna práca... Zaujímavé sú ale hodnoty teploty, maximálna teplota počas testu pri použití RMClock klesla o 23 °C! Proste výborný výsledok, ktorý pre koncového užívateľa znamená banálne zníženie teploty skrine notebooku, ako aj zníženie hlučnosti (ventilátor sa nezapne na plné otáčky).

Výkon v PCMarku sa tiež nezmenil, rozdiel v meraniach je v rámci chyby. Ale s teplotou pozorujeme rovnaký obrázok - maximálna teplota sa znížila o 17 °C.

Úspora energieVSMocUkladanie

Tu sa situácia zopakovala. Výdrž batérie sa neznížila, no výrazne klesla teplota. To má pozitívny vplyv na pohodlie pri práci.

V moderných desktopových a (predovšetkým) mobilných procesoroch sa používa množstvo technológií šetriacich energiu: ODCM, CxE, EIST atď. Dnes nás bude zaujímať azda najvyššia z nich: flexibilné riadenie frekvencie a napätia jadro procesora počas prevádzky - Cool "n "Quiet, PowerNow! od AMD a Enhanced SpeedStep (EIST) od Intelu.

Používateľ počítača alebo prenosného počítača najčastejšie potrebuje povoliť (začiarknuť políčko) podporu konkrétnej technológie v systéme BIOS a / alebo operačnom systéme - zvyčajne sa neposkytuje žiadne jemné ladenie, hoci, ako ukazuje prax, môže byť veľmi užitočné. V tomto článku budem hovoriť o tom, ako môžete ovládať prevádzkové napätie jadra procesora z operačného systému (napríklad Intel Pentium M a FreeBSD) a prečo ho možno budete potrebovať.

Napriek veľkému množstvu návodov málokedy nájdete podrobný popis technológie Enhanced SpeedStep z pohľadu operačného systému (a nie koncového používateľa), najmä v ruštine, preto je značná časť článku venovaná implementácii podrobnosti a má do istej miery teoretickú povahu.

Dúfam, že tento článok bude užitočný nielen pre používateľov FreeBSD: trochu sa dotkneme aj GNU / Linuxu, Windows a Mac OS X. V tomto prípade je však konkrétny operačný systém až druhoradý.

Predslov

Minulý rok som upgradoval procesor v mojom starom notebooku: nainštaloval som Pentium M 780 namiesto štandardného 735, dokončil som ho takpovediac na maximum. Notebook sa začal viac zahrievať pri záťaži (v dôsledku odvodu tepla zvýšený o 10 W); Nevenoval som tomu veľkú pozornosť (okrem toho, že som pre každý prípad vyčistil a premazal chladič), ale jedného krásneho dňa, počas dlhej kompilácie, sa počítač ... jednoducho vypol (teplota dosiahla kritických sto stupňov) . Do podnosu som priniesol hodnotu systémovej premennej hw.acpi.thermal.tz0.temperature za účelom sledovania teploty a prípadne včasného prerušenia „ťažkej“ úlohy. Ale po chvíli som stratil ostražitosť (teplota vždy zostala v normálnych medziach) a všetko sa opakovalo. V tom momente som sa rozhodol, že sa už nechcem neustále báť núdzového vypnutia pri dlhej záťaži CPU a držať ruku na Ctrl-C, či nútiť procesor.

Zvyčajne zmena nominálneho napätia znamená jeho zvýšenie, aby sa zabezpečil stabilný chod procesora pri pretaktovaní (t.j. pri zvýšenej frekvencii). Zhruba povedané, každá hodnota napätia zodpovedá určitému frekvenčnému rozsahu, v ktorom môže fungovať, a úlohou pretaktovania je nájsť maximálnu frekvenciu, na ktorej procesor ešte nie je „zabugovaný“. V našom prípade je úloha trochu symetrická: pre známu frekvenciu (presnejšie, ako čoskoro zistíme, súbor frekvencií), nájdite najnižšie napätie, ktoré zaisťuje stabilnú prevádzku CPU. Nechcem znižovať prevádzkovú frekvenciu, aby som nestrácal na výkone - notebook už má ďaleko od top-endu. Tiež znížte napätie výnosnejšie.

Trochu teórie

Ako viete, odvod tepla procesora je úmerný jeho kapacite, frekvencii a námestie napätie (koho by zaujímalo, prečo je to tak, môže si skúsiť odvodiť závislosť sám, pričom procesor považuje za súbor elementárnych CMOS invertorov (logické negatíva), alebo postupovať podľa odkazov: jeden, dva, tri).

Moderné mobilné procesory môžu spotrebovať až 50-70 wattov, ktoré sa v konečnom dôsledku rozptýlia do tepla. To je veľa (spomeňte si na žiarovky), najmä na notebook, ktorý v samostatnom režime pod záťažou bude „žrať“ batériu ako tie prasačie pomaranče. V podmienkach obmedzeného priestoru bude potrebné teplo s najväčšou pravdepodobnosťou aktívne odvádzať, čo znamená dodatočnú spotrebu energie na otáčanie ventilátora chladiča (možno niekoľkých).

Tento stav samozrejme nikomu nevyhovoval a výrobcovia procesorov začali uvažovať o tom, ako optimalizovať spotrebu energie (a teda aj prenos tepla) a zároveň zabrániť prehrievaniu procesora. Záujemcom odporúčam prečítať si množstvo výborných článkov od Dmitrija Besedina a ja sa zatiaľ pustím do práce.

Trochu histórie

Prvýkrát sa technológia SpeedStep (verzia 1.1) objavila v druhej generácii tretích Pentií (vyrobených podľa 18-mikrónovej mobilnej procesnej technológie Coppermine pre notebooky, 2000), ktoré v závislosti od záťaže alebo zdroja napájania počítača - siete alebo batéria - môže prepínať medzi vysokými a nízkymi frekvenciami v dôsledku premenlivého faktora. V ekonomickom režime procesor spotreboval približne polovicu energie.

S prechodom na 13-mikrónový technický proces dostáva technológia číslo verzie 2.1 a stáva sa „vylepšenou“ – teraz dokáže procesor znížiť nielen frekvenciu, ale aj napätie. Verzia 2.2 je adaptáciou pre architektúru NetBurst a od tretej verzie (platforma Centrino) sa technológia bude oficiálne nazývať Enhanced Intel SpeedStep (EIST).

Verzia 3.1 (2003) je prvýkrát použitá v prvej a druhej generácii procesorov Pentium M (jadrá Banias a Dothan). Frekvencia sa menila (najskôr len prepínala medzi dvoma hodnotami) od 40 % do 100 % základnej, s krokom 100 MHz (pre Banias) alebo 133 MHz (pre Dothan, náš prípad). Intel zároveň zavádza dynamickú správu vyrovnávacej pamäte L2 s cieľom ďalej optimalizovať spotrebu energie. Verzia 3.2 (Enhanced EIST) - prispôsobenie pre viacjadrové procesory so zdieľanou vyrovnávacou pamäťou L2. (Malé často kladené otázky od spoločnosti Intel o technológii SpeedStep.)

Teraz, namiesto toho, aby ste slepo nasledovali početné návody a návody, stiahnite si pdf a skúste prísť na to, ako EST funguje (budem naďalej používať túto skratku, pretože je univerzálnejšia a kratšia).

Ako funguje EST

EST vám teda umožňuje riadiť výkon a spotrebu energie procesora a dynamicky, počas svojej práce. Na rozdiel od skorších implementácií, ktoré vyžadovali hardvérovú podporu (v čipsete) na zmenu prevádzkových parametrov procesora, EST umožňuje programovo, t.j. pomocou systému BIOS alebo operačného systému zmeňte násobiteľ (pomer frekvencie procesora k frekvencii zbernice) a napätie jadra (V cc) v závislosti od zaťaženia, typu napájania počítača, teploty procesora a / alebo nastavení OS (zásady).

Procesor sa počas prevádzky nachádza v jednom z niekoľkých stavov (stavy výkonu): T (plyn), S (spánok), C (nečinnosť), P (výkon), pričom sa medzi nimi prepína podľa určitých pravidiel (str. 386 ACPI špecifikácia 5.0).

Každý procesor prítomný v systéme musí byť popísaný v tabuľke DSDT, najčastejšie v mennom priestore \ _PR, a zvyčajne poskytuje množstvo metód, prostredníctvom ktorých dochádza k interakcii s operačným systémom (ovládač PM) a ktoré popisujú možnosti procesora. (_PDC, _PPC), podporované stavy (_CST, _TSS, _PSS) a ich riadenie (_PTC, _PCT). Požadované hodnoty pre každý procesor (ak je súčasťou tzv. balíka podpory CPU) určuje BIOS „základnej dosky, ktorý vypĺňa príslušné tabuľky a metódy ACPI (s. 11 pdf“), keď stroj je spustený.

EST riadi chod procesora v P-stave (P-stave), budú nás zaujímať. Napríklad Pentium M podporuje šesť P-stavov (pozri obr. 1.1 a tabuľku 1.6 pdf "ki), ktoré sa líšia napätím a frekvenciou:

Vo všeobecnosti platí, že keď procesor nie je vopred známy, jedinou viac či menej spoľahlivou (a Intelom odporúčanou) metódou práce s ním je ACPI. S konkrétnym procesorom môžete interagovať priamo, obísť ACPI, prostredníctvom registrov MSR (Model-Specific Register), a to aj priamo z príkazového riadku: od verzie 7.2 na to FreeBSD používa obslužný program cpucontrol (8).

Či váš procesor podporuje EST zistíte pohľadom na 16. bit v registri IA_32_MISC_ENABLE (0x1A0), mal by byť nastavený:

# kldload cpuctl # cpucontrol -m 0x1a0 / dev / cpuctl0 | (čítaj _ msr ahoj lo; echo $ ((lo >> 16 & 1))) 1
Podobný príkaz pre GNU / Linux (vyžaduje sa balík msr-tools):

# modprobe msr # echo $ ((`rdmsr -c 0x1a0` >> 16 & 1)) 1
Prechod medzi stavmi nastáva pri zápise do registra IA32_PERF_CTL (0x199). Aktuálny prevádzkový režim zistíte prečítaním registra IA32_PERF_STATUS (0x198), ktorý sa dynamicky aktualizuje (tab. 1.4 pdf "ki). V budúcnosti pre stručnosť vynechám predponu IA32_.

# cpucontrol -m 0x198 / dev / cpuctl0 MSR 0x198: 0x0612112b 0x06000c20
Z dokumentácie vyplýva, že aktuálny stav je zakódovaný v spodných 16 bitoch (ak vykonáte príkaz viackrát, ich hodnota sa môže zmeniť - to znamená, že EST funguje). Ak sa bližšie pozriete na ostatné kúsky, zjavne to tiež nie sú odpadky. Vygoogliním môžete zistiť, čo znamenajú.

Štruktúra registra PERF_STATUS

Dáta načítané z PERF_STATUS sú reprezentované nasledujúcou štruktúrou (za predpokladu, že dáta sú uložené ako little-endian):

Štruktúra msr_perf_status (nepodpísaný curr_psv: 16; / * Aktuálny PSV * / nepodpísaný stav: 8; / * Príznaky stavu * / nepodpísaný min_mult: 8; / * Minimálny násobiteľ * / nepodpísaný max_psv: 16; / * Maximálny PSV * / nepodpísaný init_psv 16; / * PSV pri zapnutí * /);
Tri 16-bitové polia sú takzvané hodnoty stavu výkonu (PSV), ich štruktúru zvážime nižšie: aktuálna hodnota PSV, maximálna (závisí od procesora) a hodnota pri štarte systému (keď zapnutý). Aktuálna hodnota (curr_psv) sa samozrejme mení pri zmene prevádzkového režimu, maximum (max_psv) zvyčajne zostáva konštantné, počiatočná hodnota (init_psv) sa nemení: spravidla sa rovná maximálnej hodnote pre desktopy a servery, ale minimum pre mobilné CPU. Minimálny multiplikátor (min_mult) pre procesory Intel je takmer vždy šesť. Stavové pole obsahuje hodnotu niektorých príznakov, napríklad keď nastanú udalosti EST alebo THERM (to znamená, keď sa zmení stav P alebo sa prehreje procesor).

Teraz, keď poznáme účel všetkých 64 bitov registra PERF_STATUS, môžeme dešifrovať vyššie uvedené slovo: 0x0612 112b 0x06 00 0c20⇒ PSV na začiatku 0x0612, maximálna hodnota 0x112b, minimálny multiplikátor 6 (podľa očakávania), príznaky vymazané, aktuálna hodnota PSV = 0x0c20. Čo presne znamená týchto 16 bitov?

Štruktúra hodnoty stavu výkonu (PSV).

Je veľmi dôležité vedieť a pochopiť, čo je PSV, pretože práve v tejto forme sú nastavené prevádzkové režimy procesora.

Štruktúra psv (bez znamienka vid: 6; / * Identifikátor napätia * / bez znamienka _vyhradené1: 2; frekvencia bez znamienka: 5; / * Identifikátor frekvencie * / bez znamienka _rezervované2: 1; bez znamienka: 1; / * Neceločíselný pomer zbernice * / bez znamienka slfm: 1; / * Dynamická frekvencia FSB (Super-LFM) * /);
Dynamické prepínanie frekvencie FSB špecifikuje preskočenie každých druhých hodín FSB, t.j. znížiť prevádzkovú frekvenciu na polovicu; Táto funkcia bola prvýkrát implementovaná v procesoroch Core 2 Duo (jadro Merom) a netýka sa nás, rovnako ako Non-integer bus ratio - špeciálny režim podporovaný niektorými procesormi, ktorý umožňuje, ako už názov napovedá, jemnejšie riadiť ich frekvenciu. .

So samotnou technológiou EST súvisia dve polia – frekvenčné identifikátory (Fid), čo sa číselne rovná multiplikátoru, a napätie (Voltage Identifier, Vid), ktoré zodpovedá napäťovej úrovni (ktorá je zvyčajne najmenej dokumentovaná).

Identifikátor napätia

Intel veľmi nerád zverejňuje informácie (zvyčajne sa vyžaduje NDA) o tom, ako presne je zakódované ID napätia pre každý procesor. Ale pre väčšinu populárnych CPU je tento vzorec našťastie známy; konkrétne pre naše Pentium M (a mnoho ďalších): V cc = Vid 0 + (Vid × V krok), kde V cc je aktuálne (skutočné) napätie, Vid 0 je základné napätie (keď Vid == 0) , V krok - krok. Tabuľka pre niektoré populárne procesory (všetky hodnoty v milivoltoch):
CPU Vid 0 V krok V topánka V min V max
Pentium M 700,0 16,0 xxxx, x xxx, x xxxx, x
E6000, E4000 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
Násobiteľ (t.j. Fid) je zapísaný v PSV posunutý o 8 bitov doľava, najmenej významných šesť bitov zaberá Vid. Pretože v našom prípade možno zvyšok bitov zanedbať, potom PSV, frekvencia procesora, systémová zbernica a fyzické napätie sú spojené jednoduchým vzorcom (pre Pentium M):
Teraz sa pozrime na riadiaci register (PERF_CTL). Zápis do neho by mal prebiehať nasledovne: najprv sa načíta aktuálna hodnota (celé 64-bitové slovo), zmenia sa v nej potrebné bity a zapíšu sa späť do registra (tzv. čítanie-upravovanie-zápis) .

Štruktúra registra PERF_CTL

struct msr_perf_ctl (nepodpísané psv: 16; / * Požadované PSV * / nepodpísané _vyhradené1: 16; nepodpísané ida_diseng: 1; / * Odpojenie IDA * / nepodpísané _vyhradené2: 31;);
Bit odpojenia IDA (Intel Dynamic Acceleration) umožňuje dočasne zakázať príležitostné riadenie frekvencie na procesoroch Intel Core 2 Duo T7700 a novších – opäť nás to nezaujíma. Nízkych 16 bitov (PSV) – režim, v ktorom „žiadame“ ​​procesor o prepnutie.

_PSS tabuľka

Tabuľka _PSS je pole stavov ( Balíček v terminológii ACPI) alebo metóda, ktorá vracia takéto pole; každý P-stav je definovaný nasledujúcou štruktúrou (str. 409 špecifikácie ACPI):

Struct Pstate (nepodpísaná CoreFrequency; / * Prevádzková frekvencia jadrového CPU, MHz * / unsigned Power; / * Maximálny stratový výkon, mW * / nepodpísaná latencia; / * Najhorší prípad latencie nedostupnosti CPU počas prechodu, µs * / nepodpísaná BusMasterLatency; / * Oneskorenie v najhoršom prípade, keď mastery zbernice nemajú prístup k pamäti, µs * / unsigned Control; / * Hodnota, ktorá sa má zapísať do PERF_CTL, aby sa prepol do tohto stavu * / unsigned Status; / * Hodnota (mala by sa rovnať hodnote načítanej od PERF_STATUS) * /);
Každý P-stav je teda charakterizovaný nejakou prevádzkovou frekvenciou jadra, maximálnym rozptýleným výkonom, oneskorením prechodu (v skutočnosti je to čas prechodu medzi stavmi, počas ktorých sú CPU a pamäť nedostupné), nakoniec to najzaujímavejšie: PSV , ktorý zodpovedá tomuto stavu a ktorý musí byť zapísaný do PERF_CTL, aby sa dostal do tohto stavu (Control). Ak chcete overiť, či procesor úspešne vstúpil do nového stavu, prečítajte si register PERF_STATUS a porovnajte ho s hodnotou zapísanou v poli Status.

O niektorých procesoroch môže „vieť“ ovládač EST operačného systému, tzn. budú môcť spravovať bez podpory ACPI. Ale to je zriedkavé, najmä v dnešnej dobe (aj keď pre podceňovanie "a na Linuxe ste niekde pred 2.6.20 museli opravovať tabuľky v ovládači a v roku 2011 bola táto metóda úplne bežná).

Treba poznamenať, že ovládač EST môže fungovať aj pri absencii tabuľky _PSS a neznámeho procesora, pretože maximálne a minimálne hodnoty možno nájsť z PERF_STATUS (v tomto prípade sa počet P-stavov samozrejme zvrhne na dva).

Dosť bolo teórie. Čo s tým všetkým robiť?

Teraz, keď vieme, 1) účel všetkých bitov v potrebných slovách MSR, 2) ako presne je kódovaný PSV pre náš procesor a 3) kde v DSDT hľadať potrebné nastavenia, je čas vytvoriť tabuľku frekvencií a napätia predvolená... Vyklopme DSDT a hľadajme tam tabuľku _PSS. Pre Pentium M 780 by to malo vyzerať asi takto:

Predvolené hodnoty _PSS

Názov (_PSS, Package (0x06) (// Celkovo je definovaných 6 stavov (P-stavy) Package (0x06) (0x000008DB, // 2267 MHz (porov. Fid × FSB hodiny) 0x00006978, // 27000 mW 0x000 // 10 µs (spĺňa špecifikáciu) 0x0000000A, // 10 µs 0x0000112B, // 0x11 = 17 (násobič, Fid), 0x2b = 43 (Vid) 0x0000112B, Balíček (0800112B), Balíček (08% 0808) z maxima) 0x000059D8, // 23000 mW 0x0000000A, 0x0000000A, 0x00000E25, // Fid = 14, Vid = 37 0x00000E25, 000000000025, Balík (07% 06) 08000 (0/07006)000000 0x0000000A, 0x0000000A, 0x00000C20, // Fid = 12, Vid = 32 0x00000C20), balíček (0x06) (0x00000535, // 1333 MHz (59% maxima) 0x00004650, // 18000 mW 0x0000000A, 0x0000000A, 0x00000A1C, // Fid = 10, Vid = 28 0x00000A1C), Balík (0x06) (0x0000042B, // 1067 MHz (47 % maxima) 0x00003E80, // 16000 mW 0x0000000A, 0000000A, 0000000A, 0000000A, 00x07,00800,01x07,0Balík (0x06) (0x0 0000320, // 800 MHz (35 % maxima) 0x000032C8, // 13000 mW 0x0000000A, 0x0000000A, 0x00000612, // Fid = 6, Vidx012) 1)


Takže poznáme predvolené Vid pre každú úroveň P: 43, 37, 32, 28, 23, 18, čo zodpovedá napätiam od 1388 mV do 988 mV. Podstata undervoltingu je v tom, že tieto napätia sú pravdepodobne o niečo vyššie, ako je skutočne potrebné pre stabilnú prevádzku procesora.Pokúsme sa určiť "hranice toho, čo je dovolené."

Napísal som na to jednoduchý shell skript, ktorý postupne znižuje Vid a vykonáva jednoduchú slučku (napájaný (8) démon musí byť, samozrejme, pribitý predtým). Takto som určil napätia, ktoré umožňujú procesoru aspoň nevisieť, potom som spustil test Super Pi a niekoľkokrát prerobil jadro; neskôr som zvýšil hodnotu Vid pre dve maximálne frekvencie ešte o jeden bod, inak gcc občas padalo kvôli nelegálnej chybe inštrukcie. Ako výsledok všetkých experimentov počas niekoľkých dní sme dostali nasledujúci súbor „stabilných“ Vid: 30, 18, 12, 7, 2, 0.

Analýza výsledkov

Teraz, keď sme empiricky určili minimálne bezpečné napätia, je zaujímavé porovnať ich s pôvodnými:
Zníženie maximálneho napätia dokonca o 15 % prinieslo celkom hmatateľné výsledky: nielenže dlhodobé zaťaženie už nevedie k prehrievaniu procesora a núdzovému vypnutiu, ale teplota vo všeobecnosti už takmer nikdy neprekročí 80 °C. Predpokladaná výdrž batérie v „kancelárskom“ režime, súdiac podľa acpiconf -i 0, sa zvýšila z 1 h. 40 m. Batériu som nemenil, odkedy som si kúpil laptop pred siedmimi rokmi.)

Teraz sa musíme uistiť, že nastavenia sa aplikujú automaticky. Môžete napríklad upraviť ovládač cpufreq (4) tak, aby sa hodnoty PSV preberali z jeho vlastnej tabuľky, a nie cez ACPI. Je to však nepohodlné, už len preto, že pri aktualizácii systému musíte pamätať na opravu ovládača a vo všeobecnosti - vyzerá to skôr ako špinavý hack ako riešenie. Pravdepodobne stále môžete nejakým spôsobom opraviť napájanie (8), čo je zlé z približne rovnakých dôvodov. Môžete jednoducho spustiť skript, znížiť napätie priamym zápisom do MSR (čo som v skutočnosti urobil, aby som určil „stabilné“ napätia), ale potom si musíte pamätať a samostatne zvládnuť prechody medzi stavmi (nielen P -uvádza vo všeobecnosti akékoľvek, napríklad keď sa notebook prebudí zo spánku). Ani toto nie je tento prípad.

Ak získame hodnoty PSV prostredníctvom ACPI, potom je najlogickejšie zmeniť tabuľku _PSS v DSDT. Našťastie sa na to nemusíte hrabať v BIOSe: FreeBSD je schopné načítať DSDT zo súboru (o úprave ACPI tabuliek na Habré sme už písali viackrát, takže sa tým nebudeme podrobne zaoberať teraz). Nahraďte povinné polia v DSDT:

Podtrhujúca záplata pre _PSS

@@ -7.385,8 7385,8 @@ 0x00006978, 0x0000000A, 0x0000000A, - 0x0000112B, - 0x0000112B + 0x0000111D, + 0x0000111D), balíček (0x06) @@ -7.395,8 7395,8 @@ 0x000059D8, 0x0000000A, 0x0000000A, - 0x00000E25, - 0x00000E25 + 0x00000E12, + 0x00000E12), balíček (0x06) @@ -7.405,8 7405,8 @@ 0x00005208, 0x0000000A, 0x0000000A, - 0x00000C20, - 0x00000C00C + 0x00000) 0x06) @@ -7.415,8 7415,8 @@ 0x00004650, 0x0000000A, 0x0000000A, - 0x00000A1C , - 0x00000A1C + 0x00000A07, + 0x00000A07), balíček (0x06) @@ -7.425,8 7425,8 @@ 0x00003E80 0x0000000A, 0x0000000A, - 0x00000817, - 0x00000817 + 0x00000802, + 0x00000802), balíček (0x06) @@ -7.435,8 7435,8 @ @ 0x000032C8, 0x0000000A, 0x0000000A, - 0x00000612, + 0x00000612))


Zostavte nový súbor AML (bajtový kód ACPI) a upravte /boot/loader.conf tak, aby FreeBSD načítalo náš upravený DSDT namiesto predvoleného:

Acpi_dsdt_load = "ÁNO" acpi_dsdt_name = "/ root / undervolt.aml"
To je vo všeobecnosti všetko. Ak zmeníte procesor, nezabudnite zakomentovať tieto dva riadky v /boot/loader.conf.

Aj keď sa nechystáte znižovať nominálne napätia, môže prísť vhod možnosť vyladiť správu stavov procesora (nielen stavov P). Často sa totiž stáva, že „krivka“ BIOSu vyplní tabuľky nesprávne, neúplne alebo ich nevyplní vôbec (napríklad preto, že Celeron nepodporuje EST a výrobca oficiálne nezabezpečuje jeho výmenu). V tomto prípade budete musieť urobiť všetku prácu sami. Upozorňujeme, že samotné pridanie tabuľky _PSS nemusí stačiť; napríklad C-stavy sú špecifikované tabuľkou _CST a okrem toho možno budete musieť opísať samotné riadiace procedúry (Performance Control, _PCT). Našťastie je to jednoduché a pomerne podrobné, s príkladmi popísanými v ôsmej kapitole špecifikácie ACPI.

Podvádzanie v GNU / Linux

Aby som bol úprimný, najprv som si myslel, že si budem musieť prečítať Gentoo Undervolting Guide a prispôsobiť ho pre FreeBSD. Ukázalo sa, že to nie je také ľahké, pretože dokument sa ukázal byť mimoriadne hlúpy (čo je pre Gentoo Wiki vlastne zvláštne). Žiaľ, na ich novej stránke som nič podobné nenašiel, musel som sa uspokojiť so starou kópiou; a hoci chápem, že tento návod stratil veľa zo svojej aktuálnosti, predsa len ho budem trochu kritizovať. :-)

Z nejakého dôvodu, z nejakého dôvodu, okamžite, bez vyhlásenia vojny, sa im ponúkne oprava jadra (vo FreeBSD na chvíľu nemáme žiadny systém kód nebolo potrebné upravovať). Aby bolo možné vraziť do ovládačov alebo zapísať do niektorých init-scriptov hodnoty niektorých „bezpečných“ napätí, nie je jasné, kto a ako ich získal, zo špeciálnej tabuľky (v ktorej je Pentium M 780 posmešne zastúpené riadok pozostávajúci iba z otáznikov). Riaďte sa radami, z ktorých niektoré píšu ľudia, ktorí zjavne nerozumejú tomu, o čom hovoria. A čo je najdôležitejšie, je úplne nejasné, prečo a ako presne tieto magické zámeny niektorých čísel za iné fungujú; neexistuje spôsob, ako sa "dotknúť" EST pred záplatou a prestavbou jadra, nikdy sa nezmieňovať o registroch MSR a práci s nimi z príkazového riadku. Úprava tabuliek ACPI sa nepovažuje za alternatívnu a preferovanú možnosť.

Makos pomerne úzko spolupracuje s ACPI (a očakáva, že bude fungovať správne) a úprava tabuliek je jednou z hlavných metód konfigurácie pre konkrétny hardvér. Preto prvá vec, ktorá vám príde na myseľ, je vypísať a opraviť DSDT rovnakým spôsobom. Alternatívna metóda: google: //IntelEnhancedSpeedStep.kext ako jeden, dva, tri.

Ďalšia „úžasná“ pomôcka (našťastie už zastaraná) ponúka kúpiť za 10 dolárov možnosť meniť napätie a frekvenciu. :-)

Zdieľajte to