「USB コントローラ・リソースが足りません」というエラーについて

原文(2015年9月8日投稿): Not Enough USB Controller Resources? by Joshua Henry

もしあなたが私と同じようなタイプなら、いずれかの時点で自分のPCに接続した USB 機器の数が多くなりすぎることでしょう。ここ数年の間に、USB ユニバーサル・ドッキングステーションや USB ハブを使っている人は非常に多くなりました。このような機器のおかげで、必要なら何も抜き差しすることなく、一ダースものUSB機器を一台のパソコンにつなぐことも簡単にできるようになったのです。ただし、その幸せは悲しいかな、下記のような致命的なエラーが Windows のシステム・トレイアイコンに表示されるまでの間しか続きません。

「USB コントローラ・リソースが不足しています。
コントローラには、この追加デバイス用の十分なリソースがありません。」

resources

このエラーを見て、あなたはこう思うでしょう。「一体これは何のこと?私のパソコンにはこれ以上の USB 機器を追加できないっていう意味?」 実際、不幸なことに、USB 2.0 から USB 3.0 にアップグレードするとパフォーマンスはよくなりますが、その代償として一台のパソコンに同時に接続できる USB 機器の最大数が減ってしまうのです。そしてこの制限は外付け USB 機器だけでなく、PC に搭載されている USB ホスト・コントローラに接続されている、すべての機器が対象となる点が更なる不幸なのです。

これから、私たちにわかっていることについてお知らせしましょう。この制限によって一番影響を受けるであろうユーザは、Microsoft Surface Pro のように 1 つしか USB 3.0 ポートを持っていないシステムに対して、多くの外部機器を接続しようとするような方々です。(英語ですが、こちらの記事もご参照ください。) 通常の場合、システムに1、2 台程度の USB ハブを接続するのに心配する必要はほぼありません。しかし、Surface タブレットのような機器の場合は、WiFi や Bluetooth、オーディオ、前後のカメラ、タッチ・スクリーン、スタイラスペン入力、SD カード・リーダなど ほとんどすべての内部機器が、実は Intel USB 3.0 XHCI ホスト・コントローラに接続されており、その限りある USB 資源(エンドポイント)のほとんどを使い尽くしてしまいます。状況をより複雑にしているのは、これらの USB 資源(エンドポイント)数というのは、接続されている USB 機器の数に自体には比例しておらず、それぞれの機器がどれだけのエンドポイント数を使用する(している)のか、が問題だという点です。この数は USB 機器によって様々なのですが、最大で 入力と出力それぞれで 16、合計 32 となっています。もしあなたのお使いの機器のいくつかがこの最大 32 エンドポイントを消費すると仮定すると、システムの「USB コントローラ・リソース」はあっという間に枯渇してしまいます。

この制限事項についてはすでに Intel コミュニティでいくつかの議論がされてきました。Intel 8 シリーズの USB 3.0 XHCI ホスト・コントローラは、96 エンドポイントしかサポートしていないという報告がありますし、実際の使用に際しては、あっという間にこの数に上限に達してしまうというのです。さらなる検証で、いくつかのシステム上の BIOS によっては、追加のエンドポイントを処理するための十分なメモリ・アドレス空間を持っていない場合もあると指摘されています。現時点ではこの点についてはっきりとした関係性がわかっていませんが、追加で検証テストをしていこうと考えています。今はっきりとしているのは、USB 3.0 対応の比較的新しい PC は、USB 2.0 のみ対応していた古い PC に比べると、接続することができる USB 機器の数がはるかに少ない、ということです。

この問題に関して決定的な回答を見つけることができるまでの間採ることができるので、下記のような対処方法だと考えられます。

  1. お使いの USB 3.0 システムで上記の「コントローラ・リソース不足」になってしまった場合に、いくつかのシステムでは USB 3.0(XHCI)コントローラを無効化することで、USB 2.0(ECHI)コントローラを使用するようにできます。この対処方法は、 システムのBIOS がそれを許している場合に選択することができます。
  2. 上記ができない場合には、USB 3.0 の高速スピードを必要としない機器を、USB 2.0 ハブを追加してそちらに接続することです。そうすれば少なくともハブが使用していたエンドポイントと、それ以外に消費されていた分を減らすことができるでしょう。
  3. もしあなたが、非常に多くの USB 機器を接続する必要がある場合(例えば USB Thin クライアントや、USB カメラ・アレー等を使用するなど)には、旧式の USB 2.0 のみをサポートする PC を使うしかないかもしれません。
  4. 上記のリンクを使用するかまたは直接、Microsoft 社や Intel 社に連絡をして、ご自身の環境に関する情報を伝えてください。(オリジナルのブログ・ポストに投稿していただいても結構です。)この制限事項について話題になればなるほど、この制限事項に関する理解が深まり、何らかの解決策をより早く導き出せるはずです。

どのような USB 機器がどれだけのエンドポイントを消費するかについておおまかな概要をご理解いただくために、我々は Plugable 社製の USB 機器についてエンドポイント数のリストを作成しました。下記をご参照ください。

Plugable 社製品エンドポイント表

標準的な機器:

  • Plugable PL2303-DB9 USB to RS-232 DB9 Serial Adapter = 3 endpoints
  • Plugable PSS-DD1 USB 3.0 Dual 2.5″ SATA Drive Dock with Cloning = 2 endpoints
  • Plugable PSS-SDC1 USB 3.0 2.5″ SATA Drive Dock with 3-Port USB Charger = 2 endpoints
  • Plugable UGA-165 USB 2.0 HDMI/DVI/VGA Adapter for Multiple Monitors up to 1920×1080 = 3 endpoints
  • Plugable UGA-2K-A USB 2.0 HDMI/DVI/VGA Adapter for Multiple Monitors up to 2048×1152 = 3 endpoints
  • Plugable UGA-3000 USB 3.0 HDMI/DVI/VGA Adapter for Multiple Monitors = 4 endpoints
  • Plugable UGA-4KDP USB 3.0 4K DisplayPort Adapter for Multiple Monitors = 6 endpoints
  • Plugable USB-AUDIO USB Audio Adapter = 3 endpoints
  • Plugable USB-BT4LE USB 2.0 Bluetooth Adapter = 17 endpoints
  • Plugable USB-EASY-TRAN Windows Transfer Cable = 3 endpoints
  • Plugable USB-HDMI-DVI USB 3.0 HDMI/DVI Adapter for Multiple Monitors = 6 endpoints
  • Plugable USB-KBM1 Keyboard and Mouse Bundle = 3 endpoints (2 for the keyboard, 1 for the mouse)
  • Plugable USB-OTGTF USB 2.0 Micro SD Card Reader = 2 endpoints
  • Plugable USB-VGA-165 USB 2.0 VGA Adapter for Multiple Monitors = 3 endpoints
  • Plugable USB-WIFINT USB 2.0 802.11n Wireless Adapter = 4 endpoints
  • Plugable USB2-CARDRAM3 USB 2.0 Memory Card Reader = 2 endpoints
  • Plugable USB2-E100 USB 2.0 10/100 Ethernet Adapter = 3 endpoints
  • Plugable USB2-E1000 USB 2.0 10/100/1000 Gigabit Ethernet Adapter = 3 endpoints
  • Plugable USB2-MICRO-200X USB 2.0 Microscope = 9 endpoints
  • Plugable USB2-OTGE100 OTG USB 2.0 10/100 Ethernet Adapter = 3 endpoints
  • Plugable USB3-3900DHE USB 3.0 Dual Display Adapter for Multiple Monitors with Gigabit Ethernet= 10 endpoints
  • Plugable USB3-CARD6A Aluminum 6-Slot Memory Card Reader = 2 endpoints
  • Plugable USB3-E1000 USB 3.0 10/100/1000 Gigabit Ethernet Adapter = 3 endpoints
  • Plugable USB3-FLASH3 USB 3.0 Memory Card Reader = 2 endpoints
  • Plugable USB3-SATA-U3 USB 3.0 SATA Vertical Hard Drive Dock = 2 endpoints
  • Plugable USB3-SATA-UASP1 USB 3.0 SATA Lay Flat Hard Drive Dock = 2 endpoints
  • Plugable USB3-VGA USB 3.0 VGA Adapter for Multiple Monitors = 4 endpoints

USB 2.0 ハブ

  • Plugable USB2-HUB4BC 4-Port USB 2.0 Hub with one USB 2.0 hub chipset (Terminus FE1.1S Rev B) = 1 endpoint
  • Plugable USB2-HUB-AG7 7-Port USB 2.0 Hub with one USB 2.0 hub chipset (Terminus FE2.1) = 2 endpoints
  • Plugable USB2-HUB10C2 10-Port USB 2.0 Hub with two USB 2.0 hub chipsets (Terminus FE2.1 & FE1.1S Rev B) = 3 endpoints
  • Plugable USB2-HUB10S 10-Port USB 2.0 Hub with two USB 2.0 hub chipsets (Terminus FE2.1 & FE1.1S) = 3 endpoints
  • Plugable USB2-HUB7BC 7-Port USB 2.0 Hub with two USB 2.0 hub chipsets (Terminus FE1.1S Rev B) = 2 endpoints

USB 3.0 ハブ:

  • Plugable USB3-HUB10C2 10-Port USB 3.0 Hub with three USB 3.0 hub chipsets (VIA VL812 B2) = 6 endpoints
  • Plugable USB3-HUB4M 4-Port USB 3.0 Hub with one USB 3.0 hub chipset (VIA VL812 B2) = 2 endpoints
  • Plugable USB3-HUB7-81X 7-Port USB 3.0 Hub with two USB 3.0 hub chipsets (VIA VL812 B2) = 4 endpoints
  • Plugable USB3-HUB7BC 7-Port USB 3.0 Hub with two USB 3.0 hub chipsets (VIA VL811+) = 4 endpoints
  • Plugable USB3-HUB81X4 4-Port USB 3.0 Hub with one USB 3.0 hub chipset (VIA VL811+) = 2 endpoints

複合機器

  • Plugable PSS-SDH1 USB 3.0 2.5″ SATA Drive Dock with USB 3.0 3-Port Hub = 4 endpoints (2 for the USB 3.0 hub, 2 for the USB to SATA bridge)
  • Plugable DC-125 USB 2.0 Thin Client = 7 (1 for the USB 2.0 hub, 3 for the DisplayLink chipset, 3 for the audio adapter)
  • Plugable UD-160-A Universal USB 2.0 Single Display Docking Station = 9 (2 for the USB 2.0 hub, 3 for the DisplayLink chipset, 3 for the Ethernet adapter, 3 for the audio adapter)
  • Plugable UD-160-M USB 2.0 Thin Client Full HD = 9 (2 for the USB 2.0 hub, 3 for the DisplayLink chipset, 3 for the Ethernet adapter, 3 for the audio adapter)
  • Plugable UD-3000 Universal USB 3.0 Single Display Docking Station = 7 endpoints (2 for the USB 3.0 hub, 1 for the USB 2.0 hub, 4 for the DisplayLink chipset)
  • Plugable UD-3900 Universal USB 3.0 Dual Display Docking Station = 13 endpoints (2 for the USB 3.0 hub, 1 for the USB 2.0 hub, 10 for the DisplayLink chipset)
  • Plugable UD-PRO8 Docking Station for Tablets like the Dell Venue 8 Pro = 9 (2 for the USB 2.0 hub, 3 for the DisplayLink chipset, 3 for the Ethernet adapter, 3 for the audio adapter)
  • Plugable USB3-HUB3ME USB 3.0 3-Port Bus Powered Hub with Gigabit Ethernet = 5 endpoints (2 for the USB 3.0 hub, 3 for the Ethernet adapter)

「USB 3.0 システム1 台に、何台の USB 機器が接続できますか?」という問いは、非常に多くのケースが考えら得るために回答するのが難しい質問です。今後さらに情報が集まり次第、またこの場でお知らせしていきたいと考えています。

Plugable Technologies
ジョシュア・ヘンリー