さて話をUSB 1.1に戻す。USB 1.1では最高速が概ね1Gbpsに引き上げられたほか、省電力モードやテストモードの追加、変わったところではNFC(Near Field Communication)のサポートが追加されているのが目に付く(Photo24)。面白いのはDevice Power Management(Photo25)。各Device毎の対応であるが、USB Hostとは無関係に省電力モードを実行できるようになっている。まずIdle時だが、従来であればDBP(Device Beaconing Period)の合間であっても、DRP(Distributed Reservation Period)のハンドリングを行っていた(Photo25)が、Wireless USB 1.1ではDeep Sleepを採用し、無駄なDRPをハンドリングしないようになっている。ただ、もっと積極的に省電力を行うためには、やはりHost側の関与が必要になってくる(Photo27)。

Photo24:NFCの代表例は、非接触型ICカード。要するに近づけると通信できるというもの。Wireless USBの場合、機器同士の認証にこのNFCを使う予定との事。

Photo25:このDevice Disconnectが煩雑に発生すると、ちょっと使い勝手に影響が出そう。なので、これを実装しないDeviceも出てきそうだ。

Photo26:DRPは定期的にどんなDeviceが存在するかを確認するためのもので、これに反応しないとDeviceがDisconnectされたと認識されてしまうので対応は必須。問題はこのBeaconの間に定期的に同期転送のスロットがやってくること。Wireless USB 1.0ではここを従来のUSB同様にインプリメントしていたが、何も作業がないのにわざわざ処理をするのは消費電力の無駄である。そこでこの間はDRPのハンドリングも行わない形になった。ちなみにDRPはUSBの同期転送のための予約を行うためのもので、例えばUSBマウスなどは同期転送を使うことで一定のレスポンスを確保している。

Photo27:ちょっと状態遷移図がつぶれてしまっているが、色が濃い部分が起動中、薄い部分がSleep Stateである。注目すべきはSleep Notificationというサイクルから出るDNTSと呼ばれるHostへの出力で、GTS(Going to Sleep:Sleep状態に入ることの通知)/WTS(Want to Sleep:Sleep状態に入ることの許可)である。前者はHost側の管理テーブルへの反映となるし、後者はそのデバイスの利用中に、勝手にSleepに入られて作業が中断しないための配慮と思われる。

要するに、あるDeviceを使いたいと思ったときに、そのDeviceがSleep Stateに入っていた場合、

  • Deviceが自身でSleepから脱するのを待つ
  • DeviceにRemote Wakeupを掛ける

のどちらかが必要になるからだ(Photo28)。前者はアプリケーションのレイテンシに関係してくるし、後者はそうした機能が必要になる。このあたりをちゃんとインプリメントできると、理論的にはもっとSleep期間を延ばすことも可能になる(Photo29)という事だ。

Photo28:とりあえずDeep Sleepに関しては最大長をBeaconing Periodにすることで、デバイスが勝手に(Host側の管理テーブルから)消えることを防止するのは理にかなっているとは言えるが、これだと限界がある。そこで明示的にHostに通知することで、さらに長時間のSleepに入ることで、より省電力性を高めたいと考えているようだ。

Photo29:Aggressive Sleepではこんな事も可能、という実例。ただ、Zigbeeとかでセンサー繋ぐならともかく、普通に使うUSB Deviceでこうした事が可能なDeviceというのがちょっと思いつかないのだが。このあたりは将来のApplicationに備えた拡張ということかもしれない。

もう一つの話はセキュリティと認証である。セキュリティに関してはAES-128 CCM(IEEE802.16-2004で標準化されている)を使うことで通信の秘匿化を行っているが、この前提として認証が必要になる。現在は一度ケーブルで接続するか、パスコードを打ち込む事で認証を行う(Photo30)が、NFCではこれがやや簡略化される(Photo31)。

Photo30:ケーブルを使って新規デバイスを登録するときの手順。まず"Plug device into host"というイベントが発生し、ここでUSBのエミュレーションが動き、認証手順が開始される。下から2番目の"Optional UI Confirmation"は「このデバイスを登録してよいですか? Y/N」の様な確認画面で、オプションだから存在しない(無条件で登録する)場合もある。

Photo31:NFCを使うことで、最初のケーブル接続の手順が代替されることが判る。

まぁこれは別に必須ではない。例えばちょっと大きめのインクジェットプリンタとか複合機をNFCで認証させるのには、かなりの労力と苦痛が伴うだろう。NFCは他にもWi-Fiなどでも採用が予定されており、別に不思議ではない。ただ数字とかに比べるとNFCの機構搭載分、確実にコストが上がるので、このあたりをどう吸収するかが今後の課題となりそうだ。

ところでちょっと話を戻す。Photo24には1Gbpsの話が出ていないが、プレス向けのプレゼンテーションには6GHz以上の帯域の利用と1Gbpsという数字がはっきりと示されている(Photo32)。ただ気になるのは、法制度に絡む問題だがRavencraft氏によれば「問題なのは中国とカナダだ。この2国は法制度が非常に厳しい。ただその他の国、例えば日本は昨年に既に認可が下りている。こうしたところでは問題はないだろう」と非常に楽観的な見通しであった。Wireless USB 1.1についても、Specificationの完成は来年前半を予定しているが、どこまでこれらのFeatureが盛り込まれるのかはちょっと気になる部分だ。

Photo32:Technical Sessionの資料に6GHz帯以上の利用とか1Gbpsの数字が出てこないのは、まだこれがFixしてないためかもしれない。あくまでもこれは方針であって、実際にどうなるかはまた別の話、という可能性もある。