W-ZERO3のクロックアップをいろいろ試してみる!

*クロックアップはメーカー保証外の行為となります。ZERO3本体が故障する恐れもあります。
*掲載したデータは管理人の環境下での結果であり、動作限界は個々の製品によって異なる可能性があります。
*PocketHackMasterはシェアウェアです。レジストせずに試用期間10日が過ぎると大部分の機能が使えなくなります。
*以下の内容を試す際は、必ず全て自己責任にて行ってください。



・Advanced/W-ZERO3[es]のクロックアップ

 W-ZERO3[es]は華麗にヌルーしましたが、Adesの薄さには勝てずに購入・・・ ちょうどLOOX Uとイーモバを買ったところだったので、一緒に持ち歩くには小さくて良い感じです。
 早速カスタマイズしながら携帯機種板のソフトスレを見ていたところ、xclkcfgを改良してUPして下さった方が! そういや昔クロックアップのサイト作ったなと思い出し、繋いでみたらまだ残ってました。
 と言うわけで、こっそりとAdesのベンチを載っけてみたりします。とはいえ今更PocketHackMasterを使うのもアレなので、TCPMPのベンチだけの比較になっちゃいますが。

 ところで、Adesでは初代(WS003SH)と違い、CPUがアイドル状態になると変更したクロックが元に戻ってしまうという問題があるようです。起こるのはどうやら[es]からのようですが、そのままでは正確なベンチマークを取ることが出来ません。これを防ぐためには、CPUがアイドル状態にならないように常時若干の負荷をかけるソフトを常駐させるのが手っ取り早いでしょう。

 今回は以下のサイトで公開されているMobile TaskManagerを常駐させ、常にCPU使用率を測定することでCPUがアイドル状態に陥るのを防いでいます。

Homepage von Silvio Iaccarino
http://www.iaccarino.de/silvio/


 以下が測定結果です。 なお、「常駐無し」と特記してある項目以外ではMobile TaskManagerが常駐しています。
 TCPMPのベンチマークを3回行い、その平均値を持ってスコアとしました。

CPUクロック

バスクロック

メモリクロック LCDクロック TCPMP(XQ) 位置ブレ

520(標準)
常駐無し

208 104 104 123.97
124.03 124.00
124.00
起こらず
520(標準) 208 104 104 123.82
123.84 123.77
123.65
起こらず
416
(初代標準)
208 104 104 105.97
105.25 105.47
105.19
起こらず
624 208 104 104 132.91
132.96 132.94
132.94
起こらず
552.5 221 110 55.3 132.70
132.84 132.68
132.51
起こらず
585 234 117 58.5 140.66
140.79 140.80
140.94
起こらず
617 247 123 61.8 148.22
148.65 148.44
148.46
起こらず
650 260 130 65 156.92
156.78 156.76
156.58
起こらず
682.5 273 136 136.5 正常動作せず 正常動作せず

 まず、Mobile TaskManagerが常駐することによるパフォーマンスへの影響ですが、常駐有りは無しと比べてほんの僅かですがスコアが低下しています。とはいえこの程度は測定誤差の範囲内とも考えられ、つまり常駐による影響はほぼ無いと言って良いでしょう。

 さて、結果を初代と見比べると限界クロックが大幅に伸びていますが、これは同じPXA270でもデフォルトのクロックによって駆動電圧が違うためと考えられます。デフォルトが416MHzのPXA270は1.35V駆動ですが、520MHzでは1.45V駆動です。デフォルトが520MHzの場合は416MHzと比べて倍率が高く設定されているので、同じバスクロックでも高いCPUクロックで駆動します。
 もちろん限界クロックには個体差があるはずですが、うちの環境ではCPU=650MHz、バス=260MHzまで安定動作しました。

 TCPMPのバージョンや常駐ソフトなどの条件が完全に同じではないため、単純な比較はしづらいですが、同じ動作クロックの初代と比べてもほぼ同等のスコアが出るようです。テストに用いた動画は解像度がVGAで、ワイド化した部分を描画に使わないので当然かもしれません。
 絶対的なスコアでは初代を上回っているので、初代を動画再生マシンとして使っていた方も移行する価値があると言えます。画面の物理的なサイズが縮んでしまったので、大画面を重視する方には向かないかもしれませんが・・・

 スコアの上昇率については初代と同じ傾向で、単にCPUクロックだけを上げるよりもバスを含めたシステム全体のクロックを上げる方が遙かに効果があります。しかしこれはTCPMPによる動画再生がバスやメモリを酷使するためと考えられるので、単にCPUの演算性能のみを必要とするアプリであれば、CPUだけのクロックアップで事足りるかもしれません。

 また、初代では発生していたタッチスクリーンの位置ブレは殆ど発生しないようです。とはいえ、初代でもバスクロック=260MHzまでは発生しなかったので、単にバスクロックの上限が下がったために起こらなくなったとも言えます。

 初代ではバスクロックの上昇に伴ってLCDクロックが上限を超えると正常動作しないため、LCDクロックだけを通常時の1/2に設定して使っていましたが、これはAdesでも必要になるようです。この際LCDクロックが大幅に下がると画面のちらつきが発生していましたが、Adesでも同様に発生するようです。動画であれば目立ちませんが、ブラウジングなどを主に使う場合はCPUクロックだけを上げた方が無難かもしれません。
 ちなみにこれに関して一つ気になる点があり、管理人が入手したバージョンのxclkcfg_a03esでは、バスクロック=273MHz以降でLCDクロックが1/2に設定されず、デフォルトの104MHzをオーバーしてしまいます。この設定でTCPMPを走らせると画面の色が正常に表示されない等の不具合が発生します。恐らくxclkcfg側のパラメタ設定ミスだと思われますが、これが改善されればもう少しのクロック向上が見込めるかもしれません。

 なお、Adesではクロック変更でハングアップした場合、端末が自動的にフォーマットされてしまうことがあるようです。管理人の端末でも一回発生しました。 クロックを変更する前には必ずSpriteBackupでバックアップを取り、更に重要なデータを扱うときはクロックアップを控えた方が良いでしょう。

テスト環境

 Advanced/W-ZERO3 [es] (WS011SH) 発売日(2007/07/19)購入。
 xclkcfg_a03es (w-zero3.org Uploader UP0372)
 TCPMP 0.72RC1

 常駐ソフト
 Battery Monitor 1.17
 Mobile TaskManager 1.4.5
 

*以下は初代W-ZERO3(WS003SH)向けの内容です

*以下の前置きはxclkcfg_03のVer.0.01に関する記述です。現行のxclkcfg_03では問題なく性能が上がります。

 W-ZERO3が発売された当時、クロックアップに関する需要は高く、程なくして実際にツール「xclkcfg_03」が公開されました。ところがこれによってクロックを上げても性能があまり向上せず、あまつさえ下がってしまうケースも多かったため、ZERO3においてクロックアップは効果が薄いと考えられ、いつしかクロックアップを話題に出す人も殆どいなくなって今日に至ります。
 しかし実のところ、性能が向上しなかったのはxclkcfg_03のクロック設定に起因する問題であり、正しくクロックを設定してやればZERO3でも十分体感できる性能向上が得られる事が分かったので、ここにその旨を簡単に纏めたいと思います。

・何故xclkcfg_03で性能が向上しなかったのか
・新しいxclkcfg_03を使ってみる(追記:06/07/15)
・ソフトを変えてみる
・試行錯誤してみる
・実際に上げてみる
・クロックを使い分ける
・試用期間が切れたら・・・?
・テスト環境
・更新履歴

・DL:xclkcfg_03v010.zip

・PocketHackMaster公式

・何故xclkcfg_03で性能が向上しなかったのか

 *以下はxclkcfg_03のVer.0.01に関する記述です。現行のxclkcfg_03では問題なく性能が上がります。

 PocketPCにおいて通常表記されるクロックは「CPUクロック」ですが、それとは別に「バスクロック」「メモリクロック」「LCDクロック」がそれぞれ存在します。例えばW-ZERO3の場合、標準状態でのCPUクロックは416MHzで、その際バスクロックは208MHz、メモリクロックは104MHz、LCDクロックも104MHzになっています。
 xclkcfg_03を用いてクロックを変更するとCPUクロックは確かに向上しますが、その他一部のクロックが標準状態の半分に設定されてしまいます。詳細は以下の通りです。

  CPUクロック バスクロック メモリクロック LCDクロック
標準 416 208 104 104
xclkcfg=312MHz 312 104 52 104
xclkcfg=416MHz 416 104 52 104
xclkcfg=520MHz 520 130 65 65
xclkcfg=624MHz

動作せず

動作せず 動作せず 動作せず

・xclkcfgで520MHzに設定したときのCPUモニタ


 つまり、xclkcfg_03を使ってクロックを変えた状態では、バスやメモリのクロックが大幅に下がってしまうため、全体のパフォーマンスが落ちてしまっていた訳です。CPUの演算速度だけ向上しても、そこにデータを送り込むバスやデータ自体を保存しておくメモリが遅ければどうにもなりません。


・新しいxclkcfg_03を使ってみる(追記:06/07/15)


 最初にこの纏めを書いてから数日、xclkcfg_03の作者である275さんが新しいバージョンをリリースして下さいました。
 ここも読んで頂いたそうで、微力ながら参考になったのなら嬉しいです。

 xclkcfg_03のVer.0.02以降では、前述したバスクロックやメモリクロックが半分になってしまう症状が改善され、リニアにパフォーマンスが伸びるようになっています。 ベンチも取ってみましたが、PocketHackMasterでクロックアップしたときとほぼ同じスコアが得られました。問題点は完全に解決されたと考えて良いでしょう。
 なお、うちの環境下では限界クロックもPocketHackMasterの場合と変わらなかったので、下記の「・実際に上げてみる」を参照して下さい。位置ブレも同様に起こるようです。

 また、7/15に公開されたVer.0.10では、今まで無効にされていた、サスペンドや電源OFFからの復帰時に自動でクロックを上げなおす機能が有効になっています。これにより、CPU負荷や使用アプリケーションによって動的にクロックを変更する機能を除いては、ほぼPocketHackMasterの機能と並んだと言えるでしょう。細かい設定では及ばない部分もありますが、常駐する必要が無いという点ではxclkcfg_03が遙かに優れています。
 なお、電源を入れ直してからクロックが戻るまでには数秒のタイムラグがあるようです。実用上は全く問題無いと言えますが、電源ONから数秒後にクロック変更に伴うちらつきが発生します。

 それと、Ver.0.02ではメモリクロックとバスクロックが同値で表示されていましたが、これも正しく修正されています。 比べるとメモリクロックの表示が下がっていますが、元々が誤記だったようで、性能にも変化はありません。
 後はLCDクロックの表示がちょっと変。。。かな?
 

・ xclkcfg_03 Ver.0.10のメイン画面



 もちろんxclkcfg_03はフリーソフトですので、 「ちょっとクロックアップを試してみたいけど・・・」という方にはお勧めです。520MHzまでであれば目立った副作用は出ないかと思います。
  また、電源を切ってもクロック設定が維持されるようになったので、クロックアップ状態で常用したい方もOKです。

 今回転載許可を頂きましたので、欲しい方は下記リンクからDLして下さい。くれぐれも自己責任でお願いします。

・DL:xclkcfg_03v010.zip
・DL:xclkcfg_03v002.zip(旧バージョン)
・DL:xclkcfg_03v001.zip (旧バージョン)


 275さん、そして元ソフトであるxclkcfgの作者Y.Nagamidoriさんに深く感謝いたします。


・ソフトを変えてみる

*以下は、xclkcfg_03で正常にクロックアップができなかった頃の文章になります。

 そこで、別のソフトを使ってのクロックアップを検討してみます。PocketPC用のクロックアップツールと言えば「XCPUScalar」と「PocketHackMaster」がメジャーだと思いますので、この二つを試してみました。(他に良いソフトがあれば教えて。。。)
 実は管理人自身クロックアップに期待していたクチで、ZERO3を発売日に購入してすぐにこの二つのソフトも試してみました。しかしその当時は両ソフトともWindowsMobile5.0に対応しておらず、程なくしてXCPUScalarのWM5.0対応版がリリースされたものの、ZERO3では全く起動しないという有様で諦めざるを得ませんでした。

  そして先日、ようやく両ソフト共にZERO3で動作するバージョンが公開されました。
 まず、XCPUScalarを使用してみましたが、クロックを上げると即フリーズしてしまい使いものになりません。 続いてPocketHackMasterも試してみましたが、こちらもデフォルトの設定では同じくクロックを上げた途端フリーズしてしまいます。
 どうやら、どちらもそのままでは使用できないようです。

・試行錯誤してみる

 PocketHackMasterには、デフォルトの周波数設定の他に、各周波数をいろいろ組み合わせた拡張設定があります。と言うわけで、このモードを利用して動作する組み合わせを調査してみました。
 また、PocketHackMasterは設定を適用する際に、動作可か判定するために簡単な負荷テストを行います。これは性能向上の目安になるため、各設定ごとにSI、MIPS、MEMORYのスコアを併記しました。なお、MIPSではCPUの整数演算性能を、MEMORYではメモリの転送速度を、SI(System Index)ではCPUとメモリを含めた総合性能をそれぞれ測定しているようです。

CPUクロック 倍率N

バスクロック

メモリクロック LCDクロック SI MIPS MEMORY
364 4.0 182 91 91 275 153 396
455 5.0 182 91 91 304 191 416
390 4.0 195 98 98 294 164 424
488 5.0 195 98 98 動作せず 動作せず 動作せず
416(標準) 4.0 208 104 104 319 175 463
520 5.0 208 104 104 動作せず 動作せず 動作せず
442 4.0 221 111 55 342 186 499
553 5.0 221 111 55 動作せず 動作せず 動作せず
494 4.0 247 124 62 384 208 560
618 5.0 247 124 62 動作せず 動作せず 動作せず

 色々と試しているうち、漠然とですが一つの経験則のようなものが見えてきました。 どうやらバスクロックやメモリクロックなどが標準に近いかそれ以上のとき、バスクロックを変えずにCPUクロックだけを上げると固まってしまうようです。
  PXA270のクロックは、L、N、A、Bなどの値を組み合わせることで決定されています。バスクロックを変えずにCPUクロックだけを変えると言うことは、ベースクロックLに対する倍率Nを変更している訳です。なお、XCPUScalar、PocketHackMaster共に、倍率Nを上げる方法でCPUクロックを上げていると思われます。
 以上より、固まらずにCPUクロックを上げるには二つの方法が考えられます。

1.バスクロックを下げ、倍率を上げる
2.倍率は変えず、バスクロックを上げる。

 しかし、バスクロックの低下は性能の低下を招くため、出来れば下げたくないところです。よって前者は避け、後者の方法でのクロックアップを試してみます。


・実際に上げてみる

 PocketHackMasterを起動し、一番左上の「Speed configuration」をダブルタップして選択します。するとPXA270標準のクロック一覧が出てきますが、これはすべて倍率Nを変更するクロック設定なので、クロックアップには使えません。クロックダウンであれば動作するので、電池の持ち時間を延ばしたい時には使えそうですが。
 ここで適当なところをタップ&ホールドし、出てきたメニューから「Filter→Generic→Extended」を選択すると、拡張クロック設定を呼び出すことが出来ます。



 拡張クロック設定には、バスクロックが異なる設定が多数含まれているので、その中から倍率Nが4.0のものを選択すれば良い訳です。
 具体的には以下の設定となります。なお、クロックを適用した際の付加テストの値とTCPMPのベンチマーク結果も併記しました。

 また、クロックを上げていくとタップ&ホールドした際に細かくタップ位置がぶれる現象が発生します。今のところ原因は不明ですが、同様にPXA270を搭載したLinuxZaurusでも発生するようなので、ZERO3特有の現象では無いと思われます。この位置ブレの発生についても表に併記しました。

CPUクロック

バスクロック

メモリクロック LCDクロック SI MIPS MEMORY TCPMP(XQ) 位置ブレ
416(標準) 208 104 104 319 175 463 103.47 起こらず
442 221 111 55 342 186 499 112.73 起こらず
494 247 124 62 384 208 560 127.33 起こらず
520 260 130 65 408 219 598 134.32 起こらず
546 273 137 68 429 230 628 141.75 少し発生
572 286 143 72 448 241 655 途中でフリーズ かなり発生
598 299 149 75 動作せず 動作せず 動作せず 動作せず 動作せず


 どうやらうちの環境では限界クロックがCPU=572MHz、バス=286MHzのようです。しかし、このクロックでは高負荷時にフリーズする事が多いため、実際にはCPU=546MHz、バス=273MHzまでが実用範囲だと言えます。単純計算で1.3倍ほど伸びた事になります。
 ただし、546MHzではタップ&ホールドで位置ブレが発生するため、タップに精度を要求するソフトの使用時は520MHzまでにした方が良さそうです。

 クロックの向上に合わせて、各スコアやTCPMPのベンチマークスコアもリニアに伸びており、全体のパフォーマンスが上がっている事が分かります。特に、MemoryやTCPMPはクロックの上昇分以上にスコアが上がりました。これはCPUだけでなく、バスやメモリを含めた全体のクロックが上がったためだと思われます。
 クロックアップした状態では、標準状態でコマ落ちが起こっていた動画がスムーズに見られたり、Operaのレンダリングやスクロールが高速になるなど、速度の向上が明らかに体感できます。

 電池の持ちについてはまだ調査中ですが、クロックアップした状態で常用しても大幅に短くなることは無いようです。
 半導体の消費電力は、クロック周波数に比例し、コア電圧の二乗にも比例します。このクロックアップ方法ではコア電圧をいじらないため、消費電力は単純にクロックアップ率の分増加すると考えられます。液晶や通信部分も電池を食いますし、CPUの消費電力が多少増えても全体には大して影響しないのかもしれません。
 さらに、実際に使うとすれば、必要な時だけクロックを上げる方法が主流になると思いますので、影響はさらに小さくなりそうです。

 また、クロックアップした状態では端末のカメラに影響があります。
 いろいろ検証してみましたが、どうやらPocketHackMasterを常駐させてクロックアップした状態で、電源を切るかサスペンドさせ、復帰後に自動的にクロックを戻す機能が働くと発生するようです。カメラで撮影される映像が大きく乱れると共に、色もおかしくなるためまともに撮影できません。クロックアップで即発生する訳では無いのが面白いところです。
 PocketHackMasterを常駐させていない場合、復帰後にクロックが戻りますので、この症状は発生しません。
 発生した場合は、PocketHackMasterを終了させた状態で電源を切るかサスペンドさせれば治るようです。


 なお、2chの携帯機種板にある「W-ZERO3 総合スレッド」によると、CPUクロックが572MHzで安定動作している方もいるようです。この辺りは個体差ということになりますが、製造ロットとの関連性などについても情報が得られれば掲載したいと思います。


・546MHz動作をTCPMPにて確認


 なお、使えるクロックはタップ&ホールドメニューから「Favorite→set」と登録することで、「Set device speed」や「Application sppeds」やTODAY等から簡単に選択することが出来ます。




・クロックを使い分ける

 以上の設定でクロックアップは完了ですが、クロックアップした状態では機器に負荷がかかりますし、電池の持ちも短くなります。そこで、必要に応じて動的にクロックを変更する設定を行った方が良いでしょう。PocketHackMasterの場合、以下の三つの設定が便利だと思われます。

1.CPU負荷に応じてクロックを切り替える
2.使用アプリケーションに応じてクロックを切り替える
3.TODAYメニューから手動でクロックを切り替える

 まず1ですが、トップメニュー右上の「Scale configuration」から設定を行います。登録されている中で、動的に変更したいクロック設定のチェックボックスをチェックし、下のプルダウンメニューから「PHM v2004 simple」「AVGN」を選択してください。なお、 予め使いたいクロックをFavoriteにSetしておく必要があります。
 どの程度のCPU負荷でクロックを変えるかは、トップ画面下のメニューの「Edit→Setting」内の「PHM v2004 Simple」タブで設定できます。

 ただし、バスクロック変更に際してはLCDクロックも変更されるため、切り替わる時に一瞬液晶のちらつきが発生します。これで前述のクロックアップを行うと、切り替わりのタイミングが多いため、液晶のちらつきが頻発する可能性があります。これが気になる人は使わない方が良いでしょう。
 また、使用率が低い時は逆にクロックダウンさせることも可能なので、電池の持ちを伸ばすことも出来そうです。

・CPU負荷に応じて208MHz〜416MHzにクロックを変更する設定。

 2の方法は左下の「Application sppeds」から設定します。空欄をタップ&ホールドし、出てくるメニューから「Add new」を選び、「Browse」でクロックを変えたいアプリケーションを選択します。次にSpeed settingの「Change」で、そのアプリケーションに使いたいクロック設定を選択します。予め使いたいクロック設定をFavoriteにSetしておいて下さい。
 「Force Speeds Setting」のチェックボックスは、指定したアプリケーション側でクロック設定の機能を持っていた場合、それに優先してクロックを変更する設定のようです。「Forground activation only」は文字通り、ウィンドウがアクティブの場合のみクロックを変更する設定です。
最後に下の「Enable application specific speeds」にチェックを入れてokを押せば有効になります。

・TCPMPを表示している時、クロックを546MHzにする設定

 3の方法は特に設定不要です。Favoriteに使いたいクロック設定をsetしてある状態で、Todayに表示されてるアイコンをタップし、「Change speed」でクロック設定を選べば好きなクロックにいつでも変更できます。



 また、これらの動的設定を使うにはPocketHackMasterを常駐させる必要があります。若干とはいえメモリを食いますので、気になる人は一端クロックを変更したら終了させると良いでしょう。ただし、常駐していない状態では終話ボタンで電源を切ったり、サスペンドモードに入ったりするとクロック設定が元に戻ってしまうようですので注意してください。


・試用期間が切れたら・・・?

 10日間の試用期間が切れると、以下のようにメニューにN/Aと表示され、ダブルタップしても反応が無くなります。




 一見すると全く使用できないように見えますが、実はこの状態でも上の「クロックを使い分ける」の3番目で解説した、TODAYのアイコンからクロックを変更する方法は問題なく使えることが分かりました。
 ただし、クロックをセットするメニューなどが全て使えなくなってしまうため、試用期間が切れる前にクロック設定をFavoriteにSetしておく必要があります。
 単純にクロックを変えるだけであれば、レジストせずに試用期間が切れてしまっても使えることになります。 ただし、電源を切ったりサスペンドさせるとクロックがリセットされるようになるので、利便性という意味では大分劣りますが。
 まぁ、 シェアウェアなので当たり前っちゃ当たり前です。むしろ使える機能を残してくれていることに感謝です。

 もし事前に設定しておくのを忘れてしまった場合、もしくはどうしても設定を変更したい場合は、TREなどのレジストリエディタを使って「HKEY_LOCAL_MACHINE\software\Anton Tomov\Pocket Hack Master」のキーをいじったりすると変更できるかもしれませんが、特にクロック設定などはバイナリ値で記録されているため、どういじればいいのかはさっぱり分かりません。

 ちょっと灰色な事を書いてみると、PHMは試用期間の判断をインストール日時にて行っているようなので、設定をしたいときだけ時計をゴニョれば良いって話もありますが。

 えーと、使い倒したい人は素直にレジストしてください。


・テスト環境

W-ZERO3(WS003SH) 発売日(2005/12/14)購入 1.04aアップデータ適用済み
xclkcfg_03 Ver0.01/Ver.0.02/Ver.0.10
PocketHackMaster2006 Ver.3.33.000

常駐ソフト
PocketHackMaster、W-ZERO3 UtilityPlus、Magic Button、bLaunch


管理人 tak
blog
mail


・更新履歴

07/07/24
Advanced/W-ZERO3[es]のクロックアップについて記載。
BBSを削除。

06/07/15
xclkcfg_03のVer.0.10を転載。
それに伴いxclkcfg_03の解説文を加筆。

06/07/10
xclkcfg_03のVer.0.02について加筆。

06/07/09
試用期間が切れた後の機能についてちょっと加筆。
カメラへの影響について加筆。

06/07/08
試用期間が切れた後の機能について加筆。

06/07/02
タップの位置ブレ、消費電力などについて加筆。
個体差についてちょこっとだけ加筆。
「Scale configuration」が動かなかったのは設定ミスが原因だったので、設定し直して加筆。

06/07/01
公開。
細かいところをいろいろ修正 。