Intel Dynamic Acceleration

今回の改良の中に、少々マニアックで面白い「Intel Dynamic Acceleration」という機能がある。

ご存じのように、デュアルコアプロセッサといえども、2つのコアがフル稼働する状況はさほど多くはない。シングルスレッド(シングルプロセス)のアプリケーションソフトを利用している状態では片側のコアが遊んでしまう状態も十分に起こりえる。

一方、熱設計(TDP)は2つのコアが稼働する条件で設定されているので、片側のコアが遊んでいる状態では、熱的には余裕があると言って良いだろう。

そこで、新Core 2 Duoでは片方のコアが遊んでいるとき、一方のコアのクロックを200MHzだけ自動的に引き上げる「Turbo Mode」と呼ばれる動作モードが組み込まれた。いわば「公認の自動オーバークロックモード」というわけである。

問題は、どのようなタイミングでTurbo Modeになるのかだが、インテルによると片側のCPUコアがC3ステートに落ちたときに一方のコアがTurbo Modeに移るという。

C3ステート(Deep Sleep)というと、PCを放置してスリープ寸前の状態だ。シングルコアCPUの場合、PCを放置しておけばC3ステートに落ちる可能性があるが、デュアルコアのCPUでは、どのようなタイミングでC3ステートに落ちるかはOS側の制御によるはずで、はっきりとしたことは公開されていないようだ。

だが、前出の2点とは異なり実機での検証が可能そうな機能ではある。今回、試用したのはCore 2 Duo T7700(2.4GHz)のCPUを搭載したSanta Rosa機である。

搭載されているCPUはCore 2 DUo T7700(2.4GHz動作)

Turbo Modeに移行すれば2.6GHzにクロックが上昇するだろう。だが、通常の使用状態でコアクロックが2.6GHzに上昇するケースは確認できなかった。

そこで、RDTSC命令を使ってクロックを計り続けるプログラム作成して、それを走らせ続けて放置する、というテストを行ってみた。プログラムのプライオリティは最高レベル(リアルタイム)に設定、当然シングルスレッドのプログラムだ。このプログラムが走行している間、片側のコアは遊んだ状態になるはずで、うまい具合にC3ステートに落ちてくれればクロックの上昇が見られるはずである。

RDTSC命令を使い延々とクロックを計測し続けたが…

だが、結果から言うと2.6GHzへの以降は観測できなかった。実行中の様子は画面の通りだが、いくら走らせ続けても2.6GHzという値が画面に表示されることはなかったのである。やや残念だが、逆に言うとTurbo Modeが威力を発揮するケースは非常にまれだろうということはいえる。面白い機能ではあるが、実際のオペレーションの場面で、この機能が役に立つかどうかは微妙といえそうだ。