Řízené přetaktování Smartfounu s procesorem OMAP

Pro Windows Mobile Smartphone
Dnes se pokusíme o alternativní a poněkud chytřejší přístup ke zvýšení výkonu procesorů rodiny Omap. Jak jsem v nedávno vydaném článku zaměřeném právě na zvyšování výkonu přetaktováním procesoru na jeho konci zmínil, není samotné použití aplikace OmapClock zcela ideálním a už vůbec ne finálním řešením. Umožňuje nám sice jednoduše změnit taktovací frekvenci a tím i rychlost procesoru, ale má i svá omezení. I proto bych vám dnes rád představil nástroj, kterým lze některá tato omezení eliminovat, a který umožňuje „řídit“ taktovací frekvenci poněkud sofistikovaněji.

Malá rekapitulace
Nastavíme-li vyšší frekvenci pomocí OmapClocku je u mnoha zařízení automaticky obnovena výchozí frekvence (nastavena zpět systémem) po vypršení doby podsvětlení displeje.
Jako optimální jsem navrhoval použít OmapClock s parametry příkazové řádky. Tak je spuštěn daný program a nastavena vyšší frekvence po dobu běhu tohoto programu. I tak je, bohužel, nutno hlídat zhasnutí displeje, protože tím se stejně frekvence automaticky nastaví na výchozí, jak už bylo výše zmíněno. Na Internetu se objevilo i pár jiných pokusů o řešení této situace. Například aplikace OMAPXcalar, který využívá OmapClock a umožňuje průběžně a automaticky měnit rychlost procesoru dle přednastavených hodnot v INI souboru. Některým tato aplikace fungovala a vyhovovala, jiným až tak né, a některým dokonce způsobila hard-reset zařízení. Informací o této aplikaci je velmi pomálu a tak, pokud máte zájem, můžete se něco málo dočíst na stránkách Shadowork.Net, kde můžete tuto aplikaci i stáhnout.
Naštěstí existuje i méně problémové a bezpečnější řešení. Jde o aplikaci, které bych se dnes rád věnoval, jako nástroji pro řízené přetaktovaní procesoru. Ta aplikace se jmenuje …

Tornado PowerControl (dále jen TPC)
Tato freeware aplikace, která je k dispozici pouze v anglické verzi, přináší ve své poslední verzi (aktuálně 2.0 Beta 4) nástroj pro řízení taktovací frekvence. Proto se budu zabývat jen verzí 2 a nikoliv verzí předchozí (1.x), která ještě touto možností nedisponovala. Bohužel jde stále o Beta verzi, která navíc již více než dva měsíce nebyla aktualizována – škoda. Tak trochu jsem vyčkával s tímto článkem na novější verzi, ale prd. Nicméně i tato rozpracovaná verze umožňuje solidní využítí a pro mnohé tak může být klidně i verzí zcela vyhovující. Aplikace je určena pro Smartfouny s Windows Mobile, zřejmě jen WM2005, jelikož o WM2003(SE) není ani zmínky, které jsou osazeny procesorem OMAP. Ke svému běhu vyžaduje aplikace také nainstalovaný .NET CompactFramework 2.0. Ten je sám o sobě dosti objemný a tak jej mám (i přes počáteční problémy) instalován na paměťové kartě. Odkazy a možnost stažení této aplikace najdete na konci tohoto článku.

Instalace a spuštění
K dispozici je CAB instalátor, takže instalace je plně automatická a jednoduchá a aplikaci je možno nainstalovat i na paměťovou kartu. Instalace vytvoří i zástupce v menu Start a odsud ji také můžete spustit. Nevytvoří ale zástupce ve složce StartUp, takže pokud budete chtít aplikaci spouštět automaticky po startu, je nutno takového zástupce do složky StartUp přidat ručně.
Po spuštění vás uvítá hlavní obrazovka s informacemi o stavu aplikace a procesoru. Nutno buhužel podotknout, že aplikace „neumí“ běžet na pozadí a její hlavní okno je tedy vždy viditelné a opruzuje v seznamu spuštěných aplikací. A to i tehdy, použijete-li parametr „hide“ v příkazové řádce tj. „TornadoPowerControl.exe hide“. Dojde pouze k minimalizaci aplikace, hlavní okno tak sejde z očí, bohužel ne z mysli. A samozřejmě, že aplikace TPC musí být stále spuštěná aby fungovalo vše, co dále v článku popisuji. Nějak to nechápu, vždyť je tak primitivní udělat, aby aplikace běžela „na pozadí“ a navíc není důvod, aby po nastavení všech parametrů bylo hlavní okno stále viditelné – spíš naopak, čekal bych skrytý běh této aplikace. Je to nechutné, dá se s tím ale žít nebo to alespoň obejít, ale snad se to v některé příští verzi změní.

Nastavení – první možnost
tpc1
Řídit frekvenci procesoru umožňuje tato aplikace v podstatě dvěma způsoby. I když je možné oba dále zmíněné principy kombinovat, netroufám si odhadnout nakolik je to legitimní a funkční, jelikož do chování programu (bez zdrojových textů) příliš nevidím. V reálu ale asi vždy vystačíte buď s jedním či druhým principem.
První možností, která zde byla již před verzí 2.x, je možnost nastavit vlastní akci při změnách podsvětlení displeje. To vám umožňuje spouštět prakticky libovolnou aplikaci, jakmile dojde ke změně stavu podsvětlení. Asi tušíte, že tou spouštěnou aplikací bude právě OmapClock, který může být spuštěn s parametrem určujícím novou frekvenci procesoru. Pro tyto účely, najdete v instalačním adresáři „TornadoPowerControl“ tři soubory s příponou *.lnk, což jsou zástupci vámi definovaných akcí – programů. TPC definuje tyto tři soubory (názvy nesmí být změněny):
• Power_On.lnk – displej je plně podsvícen
• Power_BacklightOff.lnk – displej je ztlumený (ale svítí)
• Power_UserIdle.lnk – displej je zcela vypnutý (zhaslý)

TPC spouští tyto zástupce vždy, když dojde ke změně podsvětlení např. když stisknete nějakou klávesu při zhaslém displeji, displej se rozsvítí, je spuštěn Power_On.lnk. Pak displej potemní, je spuštěn Power_BacklightOff.lnk a nakonec zcela zhasne a spuštěn je Power_UserIdle.lnk.
Tyto soubory jsou po instalaci prázdné a mohou být také odstraněny, pokud tuto možnost (spouštět aplikace při změně stavu displeje) nevyužijete. Pokud ale chcete, je nutno obsah souborů upravit tak, aby obsahovaly platný odkaz na aplikaci, která má být spouštěna. Pro naše účely budeme, jak už jsem naznačil, spouštět aplikaci OmapClock (je rovněž součástí instalace TPC) s různými parametry tedy s různými frekvencemi procesoru, jež chceme nastavit u jednotlivých událostí displeje. Pro inspiraci nějaký ten příklad, vždy soubor a za ním jeho obsah:
• Power_On.lnk – „73#“\Storage Card\Program Files\OverClock\OmapClock.exe“ -clock 240″
• Power_BacklightOff.lnk – „73#“\Storage Card\Program Files\OverClock\OmapClock.exe“ -clock 204″
• Power_UserIdle.lnk – „73#“\Storage Card\Program Files\OverClock\OmapClock.exe“ -clock 156″
Zkontrolujte nastavení TPC tj. v menu Settings -> CPUSpeed nesmí být položka „Automatic CPU Speed“ zapnutá – na hlavní obrazovce bude pod tučným nápisem „CPU Speed“ napsáno „Manual…“ je-li vypnutá. Tím je vše potřebné nastaveno. TPC nyní bude automaticky nastavovat frekvenci procesoru (voláním aplikace OmapClock) při změně podsvětlení displeje z maximálních 240MHz při plném podsvícení do 156MHz při displeji vypnutém. Samozřejmě si hodnoty musíte upravit dle svého gusta a také podle vašeho zařízení tj. podle výchozí frekvence procesoru. Mnou uváděné příklady jsou pro Qtek 8310.
Závěrem tohoto bodu snad jen vzpomenu možnost přímého zadání frekvence. V menu Settings -> CPUSpeed můžete jednu z předdefinovaných frekvencí nastavit kdykoliv (ne v automatickém módu) přímo např. zvolením „Normal (180MHz)“. Bohužel předdefinované hodnoty jsou určeny spíše slabším procesorům a tak nejvyšší frekvence je zde „Ultra Fast (228MHz)“.

Nastavení – možnost druhá
tpc2
Druhou možností, jež jako novinku přináší právě verze 2.x, je nechat TPC automaticky řídit frekvenci procesoru podle aktuálního vytížení procesoru. Může to znít jako kýžené dosažení mety, kdy je frekvence řízena automaticky a navíc dle zátěže, ale ne všem musí tato možnost vyhovovat – přiznám se již dopředu, mi ne. Pro nastavení je nutno jít do menu Settings -> CPUSpeed a dále zvolit „Automatic CPU Speed“. Na hlavní obrazovce bude pod tučným nápisem „CPU Speed“ napsáno „Automatic…“ je-li zapnutá a uvidíte zde i aktuálně (automaticky) nastavenou frekvenci procesoru. Jelikož předefinované hodnoty frekvence procesoru jsou určeny (opět) spíše slabším kouskům, určitě budete muset přistoupit k jejich změně. V menu Settings -> CPUSpeed zvolte „CPU Settings“. Zde je možno nastavit tři frekvence, používané pro automatické řízení. Bohužel opět zde najdeme jen hodnoty určené slabším procesorům, kdy maximální frekvence končí na 228 MHz. pro vyzkoušení to však stačí a o tom, jak se tohoto omezení zbavit, si povíme o něco později. Pro správné pochopení je totiž vhodné vědět něco víc o principech automatického řízení, a tak mrkneme trochu pod pokličku …

Co za tím vězí
Pro potřeby automatického řízení frekvence definuje TPC tři frekvence, které jsou používání v závislosti na vytížení procesoru. Řízení podle vytížení samo o sobě nese vyšší nároky na výpočetní výkon a tedy i spotřebu energie. TPC počítá a detekuje vytížení 4 krát za sekundu, aby mohl rychle reagovat na změnu ve vytížení. Nicméně mnohým se tento princip může jevit jako optimální řešení. Ostatně aktuální vytížení pocesoru je možno zjistit z menu Settings -> „Debug Info“ – jen zřejmě autor z nějakých důvodů do kalkulací nezapočítává právě vlastní procesy – procesy aplikace TPC.
Takže jak jsem nakousnul definuje TPC tři frekvence, pro potřeby automatického řízení. V menu Settings -> CPUSpeed -> „CPU Settings“ jsou označeny jako Slow, Normal a Fast tedy Pomalu, Normálně a Rychle. My je označme CPUAuto1, CPUAuto2 a CPUAuto3, protože takto jsou označeny interně v programu TPC. Algoritmus změny frekvence se řídí těmito dvěma, relativně jednoduchými, pravidly:
• Frekvence CPUAuto1 je nastavena, je-li zátěž procesoru nižší než 33% po dobu (minimálně) 10-ti sekund
• Frekvence CPUAuto3 je nastavena, jakmile zátěž procesoru přesáhne 66%
V ostatních případech je „aktivní“ frekvence CPUAuto2. Navíc, snížování neprobíhá okamžitě, ale s asi desetisekundovým zpožděním – zvyšování naopak proběhne vždy co nejrychleji je to možné. Frekvence 180MHz je stanovena interně jako mezistupeň a interně nastavována programem pro zvýšení stability (změna např. z 156 na 240MHz tedy neproběhne přímo, ale nejdříve je nastaveno 180MHz a až pak 240MHz). Principiálně jednoduché a účinné řešení, avšak i zde se dají nalézt nedostatky (více v závěru článku).
tpc3
Tyto tři frekvence je tedy možno v programu nastavit (menu Settings -> CPUSpeed -> „CPU Settings“), ale jak již víme, jsou předdefinované hodnoty mnohdy nedostatečné a tak např. 240MHz zde nelze nastavit. Lze to ale naštěstí úpravou v registrech. Sice tyto hodnoty nebudou ve výše zmíněném dialogu nastavení zobrazeny správně, ale program je bude správně používat – a to stačí. Takže pokud potřebujete (či chcete) sami ručně tyto tři (mezní) frekvence pro automatiku změnit, upravte hodnoty „CPUAuto1“, „CPUAuto2“ a „CPUAuto3“ pod klíčem „HKEY_LOCAL_MACHINE\ Software\ TornadoPowerControl“ podle vašich požadavků.

Co říci na závěr
Jak jsem naznačil, je zde možnost oba výše zmíněné principy regulace výkonu procesoru kombinovat, ačkoliv opravdu netuším, jak to interně v takovém případě funguje. Který z obou principů má vyšší prioritu. Napřiklad dojde-li k vypnutí podvětlení displeje a aktivní akce „Power_UserIdle.lnk“ nastaví frekvenci 156MHz ale dojde také ke snížení zátěže a je nastavena frekvence definovaná jako CPUAuto1 např. 140MHz. Jaká frekvence bude tedy ve finále nastavena a platná ? 156 nebo 140MHz ? Opravdu netuším.
Navíc pro některé účely nemusí být nastavování podle zátěže optimální. Dolní hranice automatiky je celkem dost vysoko tj. 33% výkonu, což například není běžnou prací často po dobu 10-ti sekund přesahováno. Pokud bych chtěl zrychlit např. odezvy systému tj. grafického rozhraní či běžnou práci s kalendářem, musím tedy použít první možnost a ne automatickou regulaci podle zátěže. Nebo jiný příklad: procesor není téměř vytížen, displej je zhasnutý a telefon připojený přes USB a ActiveSync. Budu-li „vzdáleně“ s telefonem pracovat (hledat v registrech přes PC), displej se vůbec nerozsvítí, frekvence zůstane nastavena jako „minimální“ a na rychlosti je to pěkně znát. Uvítal bych možnost sám si nastavit parametry automatiky tedy včetně „zlomových bodů“ tj. % vytížení procesoru a délku trvání takového vytížení atd. Prostě, je tu ještě pár much a drobností k dotažení, kterých se snad dočkáme – nebo se nervnu a napíšu to sám …
Jinak jde ale dle mého názoru o zdařilou, funkční a stabilní aplikaci (a to i v Beta verzi), která umí i pár jiných věcí jako je nastavení podsvětlení displeje (možno spouštět jako parametr při startu). Jen škoda, že, zdá se, autor na další vývoj kašle.

Podívat se na originální anglickou diskuzi o TPC můžete na serveru MoDaCo.
Jelikož z tohoto místa není možno aplikaci stáhnout bez předchozí registrace můžete si aplikaci Tornado PowerControl stáhnout zde.

3 komentáře Řízené přetaktování Smartfounu s procesorem OMAP

  • kubisz

    TPC je podle me vyborna aplikace a ten mod se zastupci je velmi pouzitelny…nekdy ovsem dochazi k nevysledovatelnemu prepinani frekvenci zpet na puvodni hodnoty 🙁 TPC se take bez problemu necha shodit tim prikazem na uvolneni pameti a proste obcas zmizi, grrr…

  • tomcat

    Prosím o radu. Co přesně mám napsat do souborů Power_xxx.lnk. OmapClock mám nainstalovaný v \Program Files\TornadoPowerControl\OmapClock.exe? Když opíšu víše zmíněný příklad, tak mi TPC napíše: Failed to start process Power_xxx.lnk Děkuji, odpovědi prosím do mejlu tomcat.master(zavináč)gmail.com

  • Např.

    73#“\Program Files\TornadoPowerControl\OmapClock.exe“ -clock 240

Napsat komentář

Můžete použít tyto HTML tagy

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>