Lightning Gaming Portsは「ひと目でわかる」のが最大の利点
まずLGPはASRock製マザーボードの中でもゲーマー向けの「Phantom Gaming(PG)」を冠したモデル、さらに「Taichi」や「LiveMixer」「Challenger」を冠した一部モデルに搭載されている。LGPを搭載するマザーボードでは、背面パネルのUSBポートのうち、特定の2ポートが色分けされて実装されている。やや古い製品の場合は背面パネルに文字で書かれていることもあるが、その場合はマニュアルを読んで識別しよう。

ASRockが最適な配置と工夫が施されているため、製品ごとにUSBポートの構成に違いがある点は留意いただきたい
今回テストに使用している「B850M Challenger WiFi White」の場合、LGPは黄色いポートになっている。この黄色いポートにマウスとキーボードを「直接、ハブを介さずに」装着しよう。B850M Challenger WiFi Whiteの場合マウスを上(下図における⑦)、キーボードを下(⑧)に装着するのがオススメだ(理由は後述)。

LGPは2ポート用意されているが、ポートの上下(上図における⑦と⑧)で物理的に異なるUSBコントローラーに接続されていることが保証されている。これがLGPポートを使う最大の意義だ。物理的に異なるコントローラーに接続することで、マウスとキーボードのデータが互いに干渉する心配はない、ということだ(本当に干渉するのかは後ほど検証しよう)。

USBの上下関係を正確に把握するには「USB Device Tree Viewer」、通称USBTreeViewというツールが役に立つ。このツールでB850M Challenger WiFi WhiteのUSBデバイスツリーの情報を引き出し確認すると、⑦の上流はCPU、⑧の上流はチップセット(B850)内部のUSBコントローラーであることがわかる。この「上流が違う」ことが、ひと目でわかるように工夫されているのがLGPの真髄なのである。


B850M Challenger WiFi Whiteに搭載されたLGPのポテンシャルを最大限活かすなら、マウスはLGPの上(⑦)に装着すべきという理由は上の図が示す通りだ。⑧はフロントUSBやBluetoothなどのデバイスとも接続されているコントローラーで動いているので、理論上競合が多い。
マウスのように絶妙な動きのトレースが重要なデバイスは、競合の少ない⑦が有利だ。さらに、キーボードはマウスよりもレポートを吐き出す絶対量が少ない。どんなに超人的なキーボード使いでも、ボタンを押すというワンアクションがある以上レポートの絶対量はマウスより格段に小さくなる(ラピッドトリガーであっても、である)。よって⑦はキーボードよりもマウスに使ってもらうのがベストだ。
ちなみに⑦は⑥と同一のコントローラーで動いているが、⑥は使ってはいけないという意味ではない。⑥を使いたいなら利用頻度の低いマクロパッド的デバイス、あるいはUSB 3.0接続のデバイスだけにするのがオススメだ。詳細は省くが、USB 3.0と2.0の通信経路は別であるため、レポートのジッター問題は出にくいからだ。
同様に⑧と競合する可能性のある④についても、USB 3.0であれば気にせず使える。②はそもそもUSB 2.0だが、Webカメラやキャプチャーデバイスなど、アイソクロナス転送をするものは避けよう。これも⑥同様にマクロパッド的デバイス用がオススメだ。
長々と書いてきたが、LGPの中身を知ろうとすると結構複雑で大変だ。だからマザーボードのUSBポートの内部設計を解析せずとも、LGPと書かれたUSBポートにマウスを接続すれば常に最良の結果が得られる、というのがASRockの狙いだ。ポートの色だけ見ていればよいので、これほど楽なものはない。
マウスの敵はアイソクロナス転送デバイス
ここからはなぜ特定のUSBポートにマウスを接続することが重要なのか?を、さらに深く探ってみよう。USB 2.0(480Mbps)で接続されるデバイスに関して解説する。USB 3.0は通信方法からして異なるため、ここでは取り扱わない。
USB 2.0では、PC本体(USBコントローラー)に接続されたUSB 2.0デバイスに対し、「送るべきデータはあるか?」と一定間隔で順番に問いかける(ポーリングと呼ぶ)。この問い合わせを受信したデバイスは、「レポート(データ)」を送り返す。USBコントローラーがレポートを受信して、これをOSが解釈する……これがUSB 2.0デバイスの基本動作だ。
USB 2.0でデータを送信するタイミングは「マイクロフレーム」と呼ばれる細かい時間で厳密にスケジュールされている。1マイクロフレームは125マイクロ秒(0.000125秒)ごとにやってくるが、その際マウスが「毎回応答すれば」毎秒8000回ものレポートが送信される(1÷0.000125=8000)。この時ポーリングレートは8000Hzになるというわけだ。もうピンと来たと思うが、ポーリングレート8001Hz以上、例えば10000Hzや20000Hzのマウスが存在しない理由もここで、1マイクロフレームの枠はUSB 2.0の規格で決められているからだ。
ここで、USBコントローラーにマウスのみが接続されている場合を考えてみる。その場合マウスの応答を妨げるものは何もない。125マイクロ秒ごとにキッチリとレポートを送出することができるので、タイミングの完璧なデータとしてUSBコントローラーに届く。つまり「ジッターのないデータ」になるわけだ。
ちなみに、マウスレポートはデータ量としてはとても小さい。マウスの場合XYの相対移動量、ボタンやホイールの操作といったデータが含まれるが、今回検証に使用したCorsair製マウスの場合レポート本体は11バイトの固定長(実際にはヘッダーとかでもう少し増える)、通信時間は1マイクロ秒で済む。
ここで問題になるのは同じUSB 2.0コントローラーにマウス以外のデバイスが存在する場合だ。3つのデバイスがUSB 2.0コントローラーに接続されていれば、125マイクロ秒の枠内で1台ずつ、順番にデータを送信することになる。ここでマウスにとって最悪なのはアイソクロナス(等時性)転送を行うUSBキャプチャーやWebカメラだ。
なぜアイソクロナス転送デバイスが最悪なのかというと、アイソクロナス転送デバイスは動いているだけで優先的に125マイクロ秒枠の先頭部分を割り当てられるためだ。つまり常にマウスやキーボードのレポートはアイソクロナス転送デバイスの後に回されることになる。
さらに悪いことに、アイソクロナス転送デバイスが流すデータ量は毎回微妙に違う(Webカメラだと毎フレーム圧縮度合いが違う)ため、マウスのレポートが送られるタイミングは微妙に前後することになる。つまり「ジッターのあるデータ」に変わってしまうのだ。

ちなみに、マウスやキーボードのようなデバイスは「インタラプト転送」を使用している。キーボードなら打鍵時、マウスなら移動したと判断できる最低距離を移動した時や、ボタン類の操作時だけレポートを送る。レポートサイズは機種によって異なる可能性があるが、今回検証に使用した機材では以下の通りとなった(計測方法は後述する)。
| デバイス | 転送種別 | 1レポート長 | スループット | 占有時間 |
| Corsair 「SABRE RGB PRO CHAMPION」 | インタラプト | 11B | 0.088 MB/s | 約1µs |
| Corsair 「K70 RGB TKL CHAMPION」 | インタラプト | 16B+64B (+1024B) | 約0.005 MB/s (64打鍵/sの場合) | 64Bで約1.6µs (時間平均0.006%) |
| クリエイティブ 「Sound Blaster G8」 | アイソクロナス | 平均36B | 0.288 MB/s | 約0.6µs |
| ロジクール 「HD Webcam C525」 | アイソクロナス | 平均1,538B | 18.47 MB/s | 平均25.6µs(20.5%) 最大40.1µs |




マウス(SABRE RGB PRO)とキーボード(K70 RGB TKL)を比較すると、マウスは圧倒的にレポートサイズが小さい(11B:Bはバイトの略)が、センサーが反応する以上の速度で動かしている間はレポートを出し続けるので秒あたりのデータ量は大きくなる。
キーボードは16B+64Bという構成になっているが、16Bは互換性確保のため、64Bは全キー同時押し(NKRO)対応のデータだ。1レポートは大きいが秒間64打鍵という超高速連打をしても、レポート全体のサイズは桁違いに小さい。K70からはまれに1024Bのレポートが出てくるが、これはRGB LED等独自機能の制御用と思われる。
一方、アイソクロナス転送のDAC(Sound Blaster G8)とWebカメラ(C525)を比較すると、DACのデータの方が圧倒的に小さい(CD相当の音源再生時)。C525も1280×720ドットの30fpsというかなり古い仕様のものだが、15年落ちのWebカメラですら平均してマウスの140倍大きいデータを送り、125マイクロ秒の枠のうち20%程度を占有する点に注目だ。
最後に言及しておきたいのはUSB 2.0接続のUSBマスストレージデバイス(低速なUSBメモリーや光学ドライブなど)だ。これらはバルク転送と呼ばれる方式を使うが、アイソクロナス転送が枠の先頭部分を優先的に使うのに対し、バルク転送はマウスなどの後に回される。つまりアイソクロナス転送よりバルク転送の方が原理的にジッターを引き起こしにくい(ただ転送負荷による原因のジッターはあるかもしれない)。

コメント