レビュー
“ゲーム用LANカード”に効果はあるのか
Leadtek WinFast Killer Xeno Pro
今回取り上げるのは,KillerシリーズのLANコントローラ「Killer Xeno Pro」と搭載してLeadtek Researchから国内正規流通品として登場した,その名もズバリ「WinFast Killer Xeno Pro」だ。コントローラ自体は2009年の製品で,Bigfoot Networksは上位モデルとなる「Killer 2100」も発表済みだが,今回はあくまでも,1万円前後の価格で購入可能な国内新製品として,WinFast Killer Xeno Proを評価してみたいと思う。
そもそもKiller Xeno Proとは何なのか
ネットワークスタックとは,ゲームなどのアプリケーションから渡されたデータをネットワークに送信できる形に変換してLANカードなどのインタフェースに渡したり,その逆に,インタフェースから受け取ったデータをアプリケーションが解釈できる形に変えてアプリケーションに渡したりといった仕事をしている部分のこと。CPUがネットワークスタックの処理から解放されると,その分だけCPU負荷が低くなり,いきおい,より多くのCPUパワーをゲームの処理に使えるようになるという理屈だ。
Bigfoot Networksはこれを「NPU」(Network Processing Unit」と呼んでいるが,その正体はFreescale Semiconductor製の「MPC8314」。「PowerPC e300」コアを内蔵し,「PowerQUICC II Pro」と呼ばれる製品ファミリーに属する組み込み用プロセッサで,主にNAS(Network Attached Storage,ネットワーク接続ストレージ)や無線LANアクセスポイント,ネットワークプリンタなどネットワーク製品向けに用いられるものだ。MPC8314自体は,Serial ATAやPCI Expressといった豊富なインタフェースを内蔵するが,Killer Xeno Proにおいてはネットワークインタフェースのみを利用してLANコントローラ代わりに使うという,なかなか贅沢な仕様となっている。
MPC8314のすぐ近くにはSpansion製のフラッシュメモリチップ「GL064」と,Samsung Electronics製のDDR2 SDRAMチップ「K4T51163QG-HCE6」2枚が見えるが,前者はおそらくファームウェア用。512Mbit品2枚で合計128MBとなる後者はMPC8314のメインメモリだろう。このデバイス構成はまるでNAS製品のような印象で,組み込み用OSが普通に動いてしまう程度のハードウェアには仕上がっているといえる。Windowsのネットワークスタックを肩代わりするくらいなら十分にできそうだ。
USBとミニピンについては付属のマニュアルに記述がほとんどないのだが,Leadtek Researchの日本法人であるリードテックジャパンの製品紹介ページによれば,前者はファームウェアアップデート用とのこと。一般的なUSBホストアダプタとして使うためのものではないようだ。実際,PCにカードを差しても,USBホストアダプタとしては認識されない。
後者もやはり単体のサウンド機能としては認識されないのだが,こちらがすごいのは「Bigfoot Networksの対応待ち」になっていること。冒頭で紹介したとおり,世界市場では2009年から販売が始まっているのだが,2010年夏をもっても機能は無効化されたままで,どういう意図で設けられたのかはさっぱり分からない。
カードを差してPCを起動すると,ひとまずPowerPCプロセッサが認識される |
製品ボックスには簡易マニュアルと古いバージョンのドライバが収録されたCD-ROMが付属。素直にBigfoot Networksから最新ドライバを落としましょう,ということで |
Killer Xeno Pro自体は,ネットワークインタフェースとしてではなく,「PowerPCプロセッサ」として認識される。それが,ドライバソフトウェアをインストールすることで,LANカードに“化ける”仕様である。
そのドライバは,Bigfoot Networksが熱心にアップデートをし続けており,製品ボックスに付属のCD-ROMに収録されているバージョンと,テスト時点における最新版「Version 6.0 Windows 7 32 bit - Xeno Pro Software Suite」(以下,6.0版ドライバ)では,UIや使い方にかなりの違いがあった。今後も頻繁にアップデートのかかる可能性はあるので,この点は注意してほしい。
ネットワーク帯域制御と
ファイアウォール機能を装備
- ネットワーク帯域幅制御
- ファイアウォール
また,Network Managerの「アプリケーション」メニューからは,その上限値を最大として,アプリケーションごとに使用できる帯域幅の上限値を,スライダーから個別に設定可能。さらに,プログラムの優先度を「最高」「高い」「標準」「低」の4段階で設定でき,「最高」にしておくと,ネットワーク帯域幅制御設定から除外され,帯域幅を優先的に使えるようになる。既知のゲームタイトルは自動的に「最高」へ設定されることになっているが,日本で展開されているようなオンラインゲームだと漏れるケースも少なくないので,ゲームをセットアップしたら,一度確認しておくのが安全なようだ。
こういった機能を「QoS」(Quality of Service)と呼ぶが,ではここまでの細かな設定項目がゲーム用途で必要かというと,個人的には微妙に思う。「ゲームを最高優先度にしておき,ゲームプレイに関係ないバックグラウンドプロセスの帯域幅を絞るか優先度を下げる」以外の使い方は考えられないので,ゲーム用途では,そういったワンクリックのオン/オフ機能を用意すべきだったのではなかろうか。
もっとも,兼用ゲームサーバーのLANカードとして用いる場合には,「ゲームサーバーの帯域幅を絞ってほかの作業への影響を抑える」という使い方もあるだろう。タイトルにもよるが,ゲームサーバーは帯域幅を絞ってもpingの悪化は少ないことが多いため,QoSにより,無闇に帯域幅を喰われないよう調整できる可能性は考えられる。
なお,「ネットワーク」メニューにある「LAN例外を許可」−「ローカルネットワークのトラフィックをスロットルしない、外部インターネット通信のみ」にチェックを入れておくと,LAN内の通信はQoSの適用外になる。ローカルのPC間ファイル転送まで遅くなってしまうということはない。
ゲームとあまり関係のない機能ではあるが,「正体不明なプログラムがネットワークを使おうとするのを拒否する」といった,ごくごく一般的なファイアウォール的には使える機能といえるだろう。
後者は「ICMP」と「UDP」のpingを表示する項目とされている。
ICMP(Internet Control Message Protocol)は,ネットワーク上でホストやルーター同士が制御情報をやり取りするプロトコルで,「ICMP Echo Message」という種類の制御情報がサーバーとの“ネットワーク的距離”を測るために使われているのだが,ゲームで直接的に用いられるものではない。
一方のUDP(User Datagram Protocol)は,ネットワークを利用するアプリケーション同士がデータをやり取りする形式(トランスポートプロトコル)の1つだ。トランスポートプロトコルにはエラー訂正を伴う「TCP」(Transmission Control Protocol)と略式のUDPとがあり,前者は信頼性が要求される通信,例えばWebブラウジングやメールなどで使われている。
それに対してUDPは,エラー訂正機能などを持たない簡易なプロトコルで,「とにかく速く遅延を少なくデータを送り届けたい」とき――具体的にはビデオや音声といったメディア系,そしてネットワークゲームで広く利用されている。
話を「PCモニタ」の「ピン」に戻すと,ここで示されるグラフはICMPとUDPで,どこかのサーバーとのやり取りにかかる時間を表示してくれているようだ。通信相手のサーバーは,先ほどの速度測定時と同じく,Bigfoot Networksが用意しているもののようである。
ゲーム中に表示されるpingとはかけ離れた値が表示され続けるので,それほど役に立つ指標とはいえないような気もするが,大ざっぱなネットワークの混雑具合は分かるかもしれない。
ゲーム用LANカードに効果はあるのか
マルチプレイFPSで定番のLANコントローラと比較
さて,ここからは本題ともいえる「Killer Xeno Proの効果」測定ということになるが,検証はなかなか難しい。サーバーと通信しない限りKiller Xeno Proは効果を発揮しないわけだが,サーバー側の動作も含め,デモのように決まった動作を繰り返せるゲームは見当たらなかった。
そこで今回は,「ゲームサーバーにログインし,SPECTした状態でフレームレートを見る」という方法をとることにした。SPECT状態でもサーバーとは激しい通信が行われているので,Killer Xeno Proがネットワーク処理を“軽く”してくれるなら,フレームレートの違いという形で効果が出てくるだろうと考えた次第である。
言うまでもないことだが,Botは提携動作を繰り返してくれたりはしないので,テストごとにフレームレートは増減してしまう。そこで今回は,Frapsを使って5分間の平均フレームレートを取り,さらにそれを3セット,合計15分の平均を取ることにした。計測時間を長くすることで,平均の揺らぎを少なくしようというわけだ。
テストに用いたクライアントPCとサーバーは表1,2のとおり。ゲームの世代に合わせて,前者はやや古めのハードウェア構成をとっている。このテスト環境で,Killer Xeno Proと,マザーボードが搭載するオンボードのRealtek Semiconductor製LANコントローラで,PCI Express x1接続の「RTL8111C」とを比較してみたい。
効果がない……わけではない?
ただ,メリットは極めて限定的
というわけで,テスト結果を見てみよう。800×600&1600×1200ドットの2条件で,LANコントローラとしてKiller Xeno ProとRTL8111Cとを使ったときの平均フレームレートを比較した結果がグラフ1だ。ここで注目したいのは,1600×1200ドット設定時だと誤差程度の違いしかないのに対し,800×600ドット設定時は約11%というスコア差が生じている点である。
この差はどこから生じているのか。グラフ1の時点における平均CPU負荷率を,Network Managerのログ機能から取得した結果がグラフ2になる。
800×600ドット設定時のCPU負荷率に着目してみると,Killer Xeno ProとRTL8111Cの差はほとんどない。厳正を期せば0.004%ほどの違いはあるものの,これは誤差の範囲であろう。
リードテックジャパンのWebサイトでは,Killer Xeno Proの“効能”として,フレームレートの変動が抑えられるとも謳われている。ネットワーク負荷が低くなり,その分だけフレームレートが安定すると言いたいのではないかと思われる。
では実際のところ,フレームレートの推移は安定しているのか。グラフ3,4は,解像度別に,先ほどの5分×3セット検証とは別に,フレームレート推移を追うためだけに5分間の試行を行って得たデータになる。平均フレームレート計測とこのテストを分けた理由は「フレームレートの推移の記録が平均フレームレートに影響を及ぼすのを恐れたから」だが,結果の平均を取ると,先の平均フレームレートとさほど変わらない結果になっている。
先に述べたとおり,Botがいつも同じ動きをするわけではないため,グラフの波は相似形にならない。そのため,フレームレートの振れ幅がKiller Xeno Proで小さくなっているかどうかがポイントになるが,振れ幅自体は大きく変わらないようだ。
ただ,800×600ドットでは落ち込みが多少減る傾向も見て取れ,これが先ほどのオンボードコントローラ比で1割ほど高いフレームレートにつながっている可能性を指摘できそうである。
ただ,10%ものフレームレート向上が得られるとは筆者も思っていなかったので,正直なところ驚いている。おそらくその要因は「割り込みの負荷低減」にあるのではなかろうか。
RTL8111シリーズに代表される一般的な1000BASE-T LANコントローラは,「メインメモリにバッファを確保して受信データを格納し,バッファに一定のデータがたまるとCPUに割り込みをかけて処理させる」といった動作をする。割り込みが発生すると,CPUは他の仕事を棚上げしてデータを取り込み,あれこれと処理しなければならない。
その点,Killer Xene Proは単体でデータを取り込み,処理したあとのデータをCPUに渡すので,割り込みの頻度が低くなるほか,割り込み時の処理量も小さくなるはずだ。今回のテストにおいては,フレームレートが極端に高くなる低解像度で,割り込み時に存在する負荷の差が,無視できない形で現れたと考えるのが自然だろう。
もっとも,Killer Xeno ProとオンボードLANコントローラとの間に,体感的な違いをまったく感じられなかったのも事実だが。
ところで,「Killer Xeno Proを利用するとpingが低くなるのでは?」と期待する人もいると思う。事実,Bigfoot Networksは,最新機種であるKiller 2100で,専用のテストサーバー&クライアントを使った場合に,pingが5ms以上よくなるかのように読める“検証結果”レポートを公開していたりする。
実際のところはどうなのか。pingを継続的にロギングできるゲームタイトルというのが思い当たらないので,データとしてはっきりしたところはお見せできないが,ETQWで調べたところだと,Killer Xeno ProとRTL8111Cとの間にping値の大きな違いはない。どちらも9〜15msあたりをフラフラという感じだ(Killer Xene Proのほうがpingの揺らぎは小さい気もするのだが,継続的なデータが取れない以上,断言はできない)。
なお,誤解のないように断言しておくと,LANカードによってping値が大きく変わるなどということはまずもってあり得ない。ゲームにおけるpingは,ネットワーク経路の遅延,そしてサーバーがレスポンスを返す時間で大半を占める。目的のゲームサーバーまでの間にはインターネット上で複数のサーバーを経由するが,1つ経由するごとにミリ秒単位で時間を使うのだ。対して,Killer Xeno Proが肩代わりするネットワークスタックの処理時間は,長くかかってもせいぜいマイクロ秒オーダーに過ぎないからである。
なら,Bigfoot Networksが示している検証結果は何なのかという話になるが,テストに使われているのが実ゲームではない,比較対象のオンボードLANコントローラが何か分からないなど,実際のPC環境を反映していない可能性がある。
いずれにせよ,日本からアメリカまで飛行機で行くのに,自宅から最寄り駅までダッシュで走って時間を短縮したとしても,総所要時間にはほとんど何の影響もないのと同じ理屈で,「Killer Xeno Proがサーバーまでのネットワーク遅延や混雑を減らす」などといった“魔法”は期待できない。10〜100ms程度が標準的なオンラインマルチプレイで,仮にpingの低減効果がわずかにあったとしても,それは無視できるレベルと断言できる。
オカルトでは決してないが……
「パフォーマンス向上,最後の手段」的存在か
定量的なテストを行えないという理由で実施していないが,オンラインRPGで,とにかくプレイヤーが集まっているような,CPU負荷の高いシーンでも,似たような結果が得られる可能性はある。
ただ,CPUの高性能化が進み,ネットワークスタックの処理は,CPUにとってごく軽いものになってきている。とくに,少しでも高く安定したフレームレートが必要となるマルチプレイFPSの場合,先ほど紹介した“軽い”UDPがデータ転送のプロトコルに用いられることが多いため,十分な性能を持ったCPUを組み合わせる今日(こんにち)的なゲームPCにとって,Killer Xeno Proの効果は薄いと言わざるを得ない。
なら,古い世代のCPUやGPUを搭載したシステムのユーザーにとって本製品が有効かというと,もし当てはまるユーザーなら,LANカードより先に買うべきものがあるはずだ。
……以上のように考えていくと,Killer Xeno Proというのは,CPUやGPUに資金をつぎ込み,もはや両面とも強化する余地はもはやないというお大尽なプレイヤーが,最後に手を出すべきアイテムだと結論づけられるのではないかと思う。効果は薄いが皆無ではないため,文字どおり究極のゲームマシン構築を目指す場合に限っては,導入の意味がある,といったところである。
※2010年7月26日15:30追記
読者からpingに関する質問がありましたので,「Killer Xeno Proの利用によってpingが改善するのか」について説明を追記しました。
- この記事のURL: