テストレポート
特徴を徹底的に掘り下げるLynnfield基礎テスト。キモは「Turbo Boost」だ
より多くのPCゲーマーにとって,ミドルクラス市場をカバーするCore i7-800&i5-700番台が,ハイエンド市場向けのCore i7-900番台よりも重要な存在になることは疑いようがない。そんな新製品がゲームにおいてどれだけのパフォーマンスを持っているのかは,これまた別途お伝えしているが,本稿ではゲームから少し離れて,“Lynnfield”と呼ばれてきたプロセッサが,どういう特徴を持った製品なのかを,ねちねちと調べてみることにしたい。
なお,繰り返しになるが,製品概要はニュース記事を,ゲームパフォーマンスはレビュー記事を参考にしてもらえれば幸いだ。
→[製品概要紹介]“Lynnfield”正式発表。新製品「Core i7-800&i5-700番台」をキーワードで理解する
→[レビュー]「Core i7-870&i5-750」レビュー。Core 2環境から移行する価値はあるか?
MSIの最上位モデル「P55-GD80」を用いて検証
「DrMOS」フル装備で,安定度はすこぶる高い
というわけで,さっそくテストのセットアップに入ろう。用いるCPUは,発表時点の最上位モデル「Core i7-870/2.93GHz」(以下,i7-870)。マザーボードは,MSI,そして同社の日本法人であるエムエスアイコンピュータージャパンの協力で入手した。「Intel P55 Express」(以下,P55)搭載マザーボード「P55-GD80」を利用する。
CPU周りの8+2フェーズ電源回路 |
Driver-MOSFETはルネサス テクノロジ製 |
軍拡競争のような多フェーズ化合戦が行われているマザーボード市場にあって,P55-GD80の電源周りは非常にシンプルだが,そもそも電源部は,十分に安定した供給ができるのなら,少なければ少ないほうがいい(※数が多ければ,それだけデバイスの発熱量が増え,また“分母”が増えるため,故障率も上がる)。すでに十分な実績のあるDrMOSで統一してきたのは,理にかなっているといえるだろう。
なお,CPU周りの8フェーズは,「APS」(Active Phase Switching)という機能により,負荷状況に応じて動的に切り替わるようになっている。
また,ATX電源コネクタの近くには,Vcoreやメモリ電圧を計測する端子まで用意されている。これを使えば,オーバークロック設定時に,外部の測定器を使った物理的な計測が可能になるのだ。
以上,ギミック盛りだくさんのマザーボードだが,今回は,テストの性格上,オーバークロック関連の機能は一切使っていない。もう一つ,今回のマザーボードは,製品評価に足るレベルのものであるとMSIから説明を受けているが,BIOSは全世界のレビュワー向けとされるカスタマイズがなされており,製品版と100%同じではないので,この点はあらかじめお断りしておきたい。
このほか,テスト環境は表2のとおり。比較対象のCPUとしては,Core i7-900番台から「Core i7-965 Extreme Edition/3.20GHz」(以下,i7-965)と,“前世代”から,「Core 2 Quad QX9650/3GHz」(以下,QX9650)をそれぞれ用意した。i7-965との比較を中心に,一部,QX9650を交える感じだ。
なお,“Lynnfield”の大きなポイントは製品概要紹介記事のとおりだが,本稿では,
- CPUの基本性能
- Core i7-900番台比で1チャネル減り,デュアルチャネルアクセス対応となった内蔵メモリコントローラ周り
- 「Intel Turbo Boost Technology」周り
を見ていく。
PCMark Vantageで
上位モデルやCore 2と比較する
さて,テストの一発めは,オフィスアプリケーションやマルチメディア系など,一般的なPCの利用におけるパフォーマンス指標を得られる総合ベンチマークソフト,「PCMark Vantage」(Build 1.0.0)である。ここでは,「従来製品と,どんな違いがあるのか」を大まかに見てみることにしよう。
まずは,i7-870とi7-965,QX9650を,定格動作させたときの比較から。Core i7-870&965では,Intel Turbo Boost Technology(以下 Turbo Boost,ただしグラフ中はTBとも表記),「Intel Hyper-Threading Technology」(以下,HTT)はともに有効化している。今回,QX9650はDDR3メモリ対応の「Intel P45 Express」(以下,P45)マザーボードを利用しているため,メモリ設定はi7-965とP45(=QX9650)がデュアルチャネルDDR3-1333,i7-965がトリプルチャネルDDR3-1066。CPUクーラーは,いずれも製品ボックスに付属のものだ。
そのときのスコアをまとめたのがグラフ1で,ご覧のとおり,総合スコア「PCMark」の値は,i7-870,i7-965と続き,QX9650はそこから大きく離されている。QX9650は,PCMark Vantageでゲームパフォーマンスの指標とされる「Gaming」のスコアが極端に低い。Gamingのスコアは,HDDパフォーマンスと,CPUのマルチスレッド性能,そしてGPU性能から求められる(関連記事)ため,実際のゲームアプリケーションを必ずしも反映していない点は注意が必要だが,逆説的に「マルチスレッド化の進んだアプリケーションでは,Core i7がCore 2より優位にある,とはいえるだろう。
一方,規定の動作クロックでi7-965よりも270MHz低いi7-870が,“マルチスレッドテスト”の性格が強いGamingでi7-965に置いて行かれながら,総合スコアで逆転している点は実に興味深い。これは,Turbo Boostの動作クロック引き上げが,従来の“規定倍率+2段階”から,“規定倍率+5段階”に変更されたことが効いていると見るべきかもしれないが,このあたりは後ほど,あらためて検証する。
続いては,i7-965の動作クロックを,i7-870と同じ2.93GHzに揃えた状態で,両者と比較してみよう。
Core i7/i5プロセッサのTurbo Boostは,「Enhanced Intel SpeedStep Technology」(以下,EIST)の拡張仕様となっている関係で,動作倍率を手動変更すると,EISTといっしょにTurbo Boostも無効化される。そのため,ここではTurbo Boostを無効化しているので注意してほしい。
i7-965については,i7-870と同じ,デュアルチャネルDDR3-1333メモリアクセス時のスコアも取得する(※CPUの仕様からするとオーバークロックだが,今回のテスト環境では定格電圧のまま正常で動作した)ことをお断りしつつ,テスト結果をまとめたのがグラフ2だ。
ここでは,仕様に反した動作をさせているi7-965@2.93GHzデュアルチャネル動作のスコアがやや特殊なのを除くと,i7-870のデュアルチャネルDDR3-1333メモリアクセスと,i7-965のトリプルチャネルDDR3-1066メモリアクセスで,Gamingを除き,それほど大きな違いがない点に注目してほしい。同一動作クロックで比較する限り,i7-870とi7-965に,大きな違いはなさそうである。
なお,Gamingのスコアだけ高い理由は,これだけではなんともいえないので,Gamingスコアの詳細データを表2にまとめてみた。これを見る限り,Uncore部にPCI Expressインタフェースを統合したのが有効に機能した……というよりも,むしろメモリ周りのほうが効いている可能性が高そうだ。
Sandra 2009 SP4で
メモリ周りの違いを明らかにする
続いては,メモリ周りを調べてみよう。テストに用いるのは,システム情報表示ツール兼ベンチマークツールの定番,「Sandra 2009 SP4」(Version 9.15.124,以下 Sandra 2009)。メモリ周りだけを比較したいので,Core i7-965の動作クロックは2.93GHzに落としている。もちろん,Turbo Boost,EISTはいずれも無効だ。QX9650のみ,動作クロックが70MHzほど高い点は,念のため記憶に留めておいてほしい。
さて,グラフ3に示したSandra 2009の「Memory Bandwidth」は,整数命令およびSSE命令を用いて,メモリ帯域幅を計測するテストになる。メモリコントローラをCPUに内蔵しない(=P45チップセットに内蔵する)QX9650が著しく低いスコアを出しているが,これはi7-965が登場したときに分かっていたこと。「メモリコントローラをCPUに統合しているかいないかで,大きな差になる」点を,おさらいしておけば十分だろう。
むしろ,ここで注目すべきはCore i7のスコアで,i7-870とi7-965の間には,ほとんど誤差レベルの違いしかない。
グラフ4は,「Memory Latency」のテスト結果である。以前から知られていたように,Nehalemアーキテクチャの共有L3キャッシュはCore 2世代の共有L2キャッシュと比べるとレイテンシが大きい。それはここでも,「1MB Range」と「4MB Range」で確認できる。
また,キャッシュに収まる範囲でCore i7同士で比較すると,グラフはほとんど重なってしまった。厳密に比較すると,デュアルチャネルDDR3-1066動作させたi7-965@2.93GHzのレイテンシが多少低いが,これがどういう意味を持つかを断言するのは難しいところだ。
キャッシュから外れる「16MB Range」「64MB Range」でCore i7間を比較すると,i7-870のスコアが最も悪いが,とはいえ,その差は最大でも約12ns,9%程度だ。マザーボードやBIOS設定の違いで説明できるレベルといえ,少なくとも,デュアルチャネル対応に当たって,Lynnfieldのメモリコントローラに,チャネル数の削減に合わせた最適化が行われたとか,削減によるオーバーヘッドが生じたなどという結論は,この結果からは導けない,というのが筆者の見解である。
グラフ5は,メモリブロックのサイズを変えながら帯域幅を取る「Cache and Memory」のスコアだ。ここにおいて,Core i7のスコアは,見事なまでに重なってしまう。よく見れば違いを認めることもできるが,何かを言えるような差ではない。要するに,トリプルチャネルかデュアルチャネルかという違いは,1333MHz動作か1066MHzかという動作クロックの違いでほとんど吸収できてしまうというわけだ。
まとめると,Core i7-800番台のデュアルチャネルDDR3-1333メモリコントローラと,Core i7-900番台のトリプルチャネルDDR3-1066メモリコントローラのパフォーマンスギャップは,極めて小さい。グラフ1〜2の結果も踏まえると,高度にマルチスレッド化の進んだプログラムはさておき,ゲームや一般PCユーザー向けのアプリケーションで,メモリコントローラの違いが,パフォーマンスに大きな影響と与えるとは,ちょっと考えづらい印象である。
そもそもどう動いているのか?
Turbo Boostの仕組みを理解する
以上から,グラフ1〜2でベンチマークスコアの違いを生んでいるのは,Turbo Boostではないかという推測が成り立つが,それを調べるには,「そもそもTurbo Boostはどのように動作しているのか」を知る必要がある。
製品概要紹介記事では,Intelの説明をある程度かみ砕いて,「シングルタスクのアプリケーションなど,4コアすべてを使った処理を必要としない場合,使うコアだけ動作クロックを自動的に引き上げることでパフォーマンスを向上させる機能」と説明しているが,実際にゲームなどのアプリケーションを動作させているとき,Turbo Boostはどのような挙動を見せるのだろうか?
ややテクニカルな話になるが,NehalemアーキテクチャのCPU――より正確を期すと,「Intel HD Boost Technology」をサポートしたノートPC向けCore 2プロセッサも含まれるが――では,従来型のCPUクロックモニタリング技法が使えない。
従来のIntel製CPUでは,動作クロックに同期している内部パフォーマンスカウンタを,「RDTSC」命令を使って取得することにより,例えば「1秒間のカウント数」などから,動作クロック(=クロック周波数)を得ることができた。しかし,Core i7では,Turbo BoostやEISTがどのような動作状態にあっても,内部パフォーマンスカウンタは,必ず規定のクロックでカウントアップする仕様に切り替えられた。その結果,従来の方法を使うクロック計測ソフトを起動すると,TBが利いていても規定クロックしか得られなくなったのだ。これが,Core i7のクロックモニタリングツールが(少なくとも筆者の知る限り)ほとんど存在しないことの理由である。
ではどうするのかだが,Intelは,Nehalemアーキテクチャのプロセッサにおける動作クロックを計測法を,「Intel Turbo Boost Technology in Intel Core Microarchitecture(Nehalem) Based Processors」というドキュメントで公開している(※リンクをクリックするとpdfファイルのダウンロードが始まります)。そこで今回は,このドキュメントに従い,1秒に1回のペースで動作クロックを計り,ログとして計測できるツールを自作することにした。プログラムの知識があれば制作はそれほど難しくないので,興味のある人には,一度ドキュメントに目を通すことをお勧めしておきたい。
そんなこんなで,「それ自体がTurbo Boostの挙動に影響を与えることのない自作ツール」を使って,Turbo Boostの動作状況を確認したいと思うのだが,テストスケジュールの都合上,ツールにはいくつかの制限がある。最大のものは,仕様上「1秒間の平均クロック」しか出せないこと。Turbo BoostやEISTは,筆者が調べた限り,1ms以下のタイミングで動作クロックを変更できるようになっているため,今回の自作ツールでは,必ずしもベースクロック(=133.33333……MHz)で割り切れる値は出てこない。もっというと,動作クロックが上がり切った状態であっても,i7-870で3.60GHz,i7-965で3.46GHzといったキレイな数字は得られない。
また,スレッド単位で独立して動作クロックを計測する都合上,HTTを有効化した状態では,コア単位のクロックが取れないうえ,計測間隔は,スレッドごとに若干のズレが生じてしまうため,最大8スレッドを100%同じタイミングでは計れない。HTTを有効化した状態では,二つのスレッドが同じ動作クロックで動作するはずなのだが,グラフに,そのようなデータは出てこないのだ。
以上の制限があっても,コアごとの動作クロック遷移自体は分かるので問題ない,というのが今回のテストにおける筆者の判断だが,厳密なデータではないという点は,グラフを見るに当たって留意してほしいと思う。
自家製ツールの動作確認
動作確認を兼ねて,Turbo Boostにより,Intelの主張どおりに動作クロックが上下するのかを確認してみよう。MP3トランスコードソフト「午後のこ〜だ」に用意されたCPUベンチマークモード「午後べんち」と,Windowsに標準で用意されている負荷切り替え機能とを用いて,「まず1コアに負荷をかけ,続いて2コア,3コア,4コア」と,段階的に負荷をかけてみることにする。
午後べんちの場合,HTTは無効化したほうが段階的な負荷をかけやすい(※有効化すると,コア単位の切り替えが難しい)ため,ここではHTTはオフになっている。つまり,1スレッド=1コアになるわけだ。
以上を踏まえて,Turbo Boostを有効化したi7-965のクロック変化をまとめたグラフ6を見てほしい。グラフは横軸が経過時間,縦軸が動作クロック。手動なのでアバウトだが,おおよそ5秒経過時点で1スレッドに負荷をかけ,25秒経過時点で2スレッド,40秒過ぎに3スレッド,50秒過ぎに4スレッドといった具合で負荷を変え,1分過ぎにいったんテストを終えて,最後に,反応の早さを見るべく,4コアに負荷をかけたものになっている。
面白いのは,1スレッドにしか負荷がかかっていない状況では,「thread0」が跳ね上がっているのに対し,2スレッド以上では,ずっと1段階アップの3
.33GHzに留まっていることだ。最後のクロックの切り替わりだが,EISTが効いてクロックが2GHzを割り込んだ状態から,3.33GHzまでの復帰に,3秒程度しかかかっていない。
i7-870では,5秒で1コア,25秒で2コア,40秒で3コア,1分過ぎに4コア。1分25秒でテストを終了させ,最後に1コアだけ負荷をかけて反応を見るというテストを行った。その結果がグラフ7だ。
1コアの反応は,i7-965と同じだが,違うのは2コアから。2コアに負荷がかかった状態では,2コアのみが4段階引き上げられた3.46GHz動作となり,3コアおよび4コアに負荷がかかると,2段階アップの3.20GHz付近に落ち着くのだ。2段階が5段階になったのだから当たり前といえば当たり前だが,負荷のかかるスレッドが少ない状況で,動作クロックの大きく引き上げられるコアの数が増えたわけである。
なお,EISTからの復帰所要時間は,こちらも約3秒だった。
もう少し細かくTurbo Boostの挙動を見る
高いクロックには高性能CPUクーラーが有効
Intelが主張するとおりの挙動が見られたところで,HTTのオン/オフがどういった違いを生むかも含め,もう少し突っ込んでTurbo Boostをチェックしてみたい。
Intelは以前から,CPU負荷とTDP(Thermal Design Power,熱設計消費電力),電流の兼ね合いで,Turbo Boostのクロックは上下する仕様になっていると説明している。HTTを有効化すると,遊んでいる演算ユニットが減り,いきおいTDPと電流は上昇するはずで,となると「HTTが有効だと,Turbo Boostは効きづらい」という仮説が成り立つが,果たして実際のところはどうなのか。
テストに用いるのは,再びPCMark Vantage。今回は,グラフ1,2でHTTの影響が大きかったGamingテストのみを行うことにする。Gamingには,3種類のテストスイートが用意されているのだが,これらを通しで実行したときの動作クロック変化をまとめることにした。
まずは,i7-965から。グラフ8は,HTT無効時のテスト結果だ。
続いて,HTT有効時がグラフ9だが,ご覧のとおり,HTTのオフ/オンで,Turbo Boostにおける「最大クロックの入り方」はほとんど変わらない。Gamingスイートは6分程度で終わってしまうテストなので,4時間5時間と繰り返したとき,熱の影響でどうなるかまでは言及できないが,少なくとも,ここにおいて「HTTを有効化すると,Turbo Boostの効きが悪くなる」という傾向は出ていない。
次にi7-870。HTT無効時のテスト結果がグラフ10となる。
そして,グラフ11がHTT有効時。明らかな違いに気づいただろうか。とくに顕著なのが「Game 3」――グラフで4分40秒過ぎ――で,ここでは4コア8スレッドにまんべんなく負荷がかかるのだが,HTTを無効化した状態では,2段階アップの3.20GHzをキープしているのに対し,HTT有効だと,平均クロックは,定格と1段階アップの間に収まっているのである。
グラフ10,11を見る限り,最大で5段階アップとなるCore i7-800番台においては,HTTを無効化したほうが,Turbo Boostの効きは良くなる(=Turbo Boost有効時のクロックは高くなる)。アプリケーションによっては,HTTを有効化したほうがいいものも,もちろんあるだろうが,ゲームをプレイする前提なら,HTTを無効化したほうがパフォーマンス面でのメリットは大きいはずだ。
結論からいうと,HTTオフだと,グラフ10と変わらず。ただし,HTTをオンにすると,違いが出てきた。それを示したのがグラフ12で,Game 3における動作クロックが,グラフ11より高くなっている。1分40秒くらいまでの「Game 1」で,「thread 1」の動作クロックが跳ね上がっている点も要注目だ。
HTTを併用する場合は,より良好な冷却性能を持つCPUクーラーを使ったほうが,Turbo Boostの効果は高くなる。
なお,グラフ6〜12を俯瞰的に眺めてみると,Turbo Boostを有効にしたときの平均的な動作クロックは,i7-870とi7-965で,ほとんど変わらないのも見て取れよう。序盤で示した「一般的なPCアプリケーションを想定したベンチマークテストで,i7-870とi7-965のスコアがほとんど変わらない」理由は,このあたりにあると判断してよさそうだ。
Turbo BoostとHTTの関係を
i7-870で検証する
最後に,i7-870のTurbo Boost(&EIST)とHTTの有効/無効を切り替えながら,これらがスコアにどの程度の影響を与えるかも見ておこう。
グラフ13は,HTTをオンにした状態で,Turbo BoostとEISTの有効/無効を切り替えた結果だ。総合スコアは,やはりというかなんというか,Turbo Boostを有効化した状態が最も高い。Turbo Boostを無効化した状態で,EISTだけ有効化するとスコアが低くなるのは,HDDアクセスなど,CPU負荷が低い状態で,CPUの動作クロックが大きく引き下げられるからだと思われる。
次にグラフ14は,Turbo BoostとEISTをセットに扱ったうえで,Turbo BoostとHTTの有効/無効が,スコアに与える影響を見たものだ。総合スコアでは,Turbo Boost,HTTともに有効にした状態が最も高く,僅差でTurbo Boost有効,HTT無効が続いている。マルチスレッドのほうが効くテストではHTT有効が優位,クロックのほうが効くテストではHTT無効が優位なので,ここでも,先ほど示した「大多数のゲームでは,HTTを無効化したほうがいい」ことを確認できる。
最後は,(テストスケジュールの都合により,どうしてもHTTオン/オフの2パターンではスコアを取れなかったため)おまけの参考資料という扱いにさせてほしいのだが,Turbo Boost有効,HTT有効時に,Freezerを搭載するとどうなるかをまとめたものだ(グラフ15)。Gamingで,スコアが大きく伸びており「Turbo BoostとHTTを両方とも有効化したとき,リテールCPUクーラーで発生する可能性のあるスコアの伸び悩み」が解消しているのが分かる。「Productivity」のスコアが低くなっているのはナゾだが,取り直す時間がなかったことをお詫びしたい。
「マルチコアの限界を突破するTurbo Boost」
――Intelの言い分は大げさでない
長い記事になった本稿をまとめながら,筆者は2009年6月のCOMPUTEX TAIPEI 2009でIntelのFrancois Piednoel(フランソワ・ピエノエル)氏が語っていた「Turbo BoostはマルチコアCPUにとってのブレイクスルー」というセリフを思い出していた。この発言を聞いたときには,なんとなくTurbo Boostが効きづらい印象のCore i7-900番台を思い浮かべていたため,「こういうセールストークも,まあ,ありかな」くらいに受け止めていたのだが,実際にCore i7-800番台の効き具合を見ると,Piednoel氏の発言が,必ずしも大げさとは言い切れないように思えてきたからだ。
実際,最大で5段階のクロックアップというのは,従来の同2段階と比べて,目に見える効果がある。Core i7-800番台(とCore i5-500番台)のキモはTurbo Boostにあり,というのが,本稿の結論だ。
これから“Lynnfieldマシン”を組むのであれば,以下に挙げる二つのポイントを,心に留めておくといいかもしれない。
- マルチスレッド対応の甘い,大多数のゲームタイトルでは,HTTはオフにしたほうが,Turbo Boostによる動作クロックは上がりやすく,CPUボトルネックを防げる可能性が上がる
- Turbo BoostとHTTを併用する場合は,高性能なCPUクーラーを使うといい
環境によって性能が変わるという,やや生き物めいたCPUともいえそうだが,いずれにせよ,GPUを除くと,熱源はほとんどCPUのみになったので,対策しやすくなった,とはいえるのではなかろうか。
→[製品概要紹介]“Lynnfield”正式発表。新製品「Core i7-800&i5-700番台」をキーワードで理解する
- 関連タイトル:
Core i7&i5(LGA1156,クアッドコア)
- この記事のURL: