2014年8月16日土曜日

誰も書かなかった入力デバイスの話(USB/DPP/パラレル)

はじめに 

多分、ゲーマー向けの記事で真面目に取り上げるのは国内初です。
ニッチ過ぎて海外のゲーマー向け記事ですら見たことがない。



対象とする読者

1.一流を自負できるゲーマー
2.物事には経験則だけでなく根拠や裏付けも重要だと考える人


結論

デジタルなゲームパッドならパラレル
キーボードやマウスはパラレル不可なのでUSB

と言っても、世界大会レベルでも大きな差が出るとは "思えない" レベルの違い。


注意事項

1.今回の記事は、難易度高めです。
2.入力デバイスで本記事の内容を持ち出す95%の人間は"言い掛かり"か"言い訳"です。
  無視しましょう。
3.少なくとも筆者より反射神経の悪い人が拘る必要ありません。
  

反射神経テスト

シンプルな反射神経テストです。
20代前半の反射神経は、約0.2秒です。

遅い人は格闘ゲームやFPSは向いていません。
パラレルは不要です。

reaction time trainer

http://www.spikything.com/games/reaction/


筆者の平均は"0.175秒"

※備考…Windows7(64bit) + 5年前(2009モデル)の液晶ディスプレイ + ゲーミングマウス

多少の慣れも必要なので何度か試してタイムの平均を測ります。

ここで重要なのが、平均からの誤差が少ないかどうかです。
60fpsの場合、約0.016秒が1フレームです。

平均タイムから上下で1フレーム以上タイムに開きのあるものは、
反射神経ではなく勘や運に頼ったものなので参考になりません。

最上位ゲーマーのタイムは平均"0.170"未満かつ、誤差"±0.016"以内です。

生まれ持った天武の才と努力、そして環境の全てが揃わないとなれません。

以前の記事で書きましたが、XPは7より応答が速いので有利です。
CRTモニタも液晶より有利です。



筆者もゲームが好きで遊んでます。そして、一部ユーザに辟易したので言います。
XP+DPP+CRTのセットに拘る人は筆者より1/3フレーム以上速い
平均"0.170"以下誤差"±0.016"以内を出して当然。
出せないのは新規ユーザーの参入障壁であり迷惑な老害






入力デバイスの違い ー 目次 ー


 ①USBの規格と限界

 ②パラレル規格とは



① USBの規格と限界

USBパッドのレスポンスは、いつかDPP(パラレル)に追い付くのではないか

よく話題に挙がる話題です。・・・が、規格上100%無理です。
USBとは、様々なデバイスが一度に127個同時接続できる汎用シリアルインターフェースです。
シリアルインタフェースとは、データの送信と受信に各1本の線しか使いません。
USBデバイスの情報がCPUに届くまではかなり複雑です。
これによって、PC側と入力デバイス側の各々のUSBチップの性能が大きく影響します。


全部書くと長過ぎるのでPC内部に届くまでの10項目で概要を書きます。

<USB入力デバイスの通信概要>

1.USBのドライバ指定によって取得間隔を設定する。
  USBドライバによってマチマチ。基本的に1ms以上。遅いものは10ms超える。

~~送信要求(USBコントローラ)側処理~~
2.取得間隔ごとに、USBコントローラからデバイスの状態を要求します。
3.要求を受信したUSBデバイスは、センサーの最新の状態を取得して送信処理を開始します。 
~~送信要求側処理~~

~~送信(USBデバイス)側処理~~ 
4.全てのUSBデバイスは、1本の線で通信するためにデータのシリアライズ(データの直列化)が行われます。
5.USBコントローラとUSBデバイス間は、パケット通信方式によってデータが細切れにされます。

~~送信側処理~~

~~通信処理~~
6.パケット通信なので、通信の開始や停止などの制御パケットも流れます。
7.1つのデータパケットには、必ず32bitの情報(同期や伝送誤り制御等)が付きます。
  1回分のデータの区切りごとに2bitの情報が更に追加されるのでゲームパッドの
  場合は毎回34bit余計な制御情報が増えます。データとは全く別に計算しています。
~~通信処理~~

~~受信(USBコントローラ)側処理~~
8.受信確認後、電気信号に問題がないか確認します。
  転送モードによってはデータ再送要求も行います。
9.届いたパケットがデータ的に正常であるか確認します。
10.パケットからデータを取り出してCPUは読み取り可能な状態になります。
~~受信側処理~~



② パラレル規格とは

この規格の元祖は40年前に作られたものです。 よってとんでもなくシンプルです。

1.ゲームパッドの情報を電気的にそのままパラレルインタフェースに送信します。
2.受信した信号は1Byte(8bit)最大2Mhz周期で通信します。
  つまり、僅かな誤差はありますがパラレルの1回の周期は最速500ナノ秒です。

  この速度になると、ゲームパッド側の信号の上下速度も影響します。
  しかし、パラレル側の信号の立ち上がりと立下りには5ナノ秒で対応しています。

3.電気的に流れた瞬間から、CPUは読み取り可能な状態になります。

まとめ

ゲームパッドのレスポンスはUSBよりパラレル接続が2000倍以上速いです。

しかし、20代前半の反射神経は0.2秒であり、筆者はゲームの入力デバイスで対戦結果に
影響が出るとは全く考えていません。

接続方式で差が出る可能性があるのは本当の一流ゲーマーだけです。