ITmedia NEWS >

USBが誕生したのは「奥さんのプリンタをつなげる手間にキレたから」 USBの設計当時を振り返る“PC”あるいは“Personal Computer”と呼ばれるもの、その変遷を辿る(5/6 ページ)

» 2021年06月23日 16時42分 公開
[大原雄介ITmedia]

 この背景には、USBが複雑な動きをすることが挙げられる。USBはPlug & Playを実現する必要があり、このためには、

  • 動的に接続/切断できる仕組みをハードウェアとソフトウェアでカバーする
  • 接続されたデバイスが何かを認識して、それに合わせてドライバをダイナミックにロード/アンロードできる

が必要である。

 おまけに、カスタマイズできる余地を残さないと差別化が出来ない。これをソフトウェア的に実現するため、ドライバは図1のように三層構造となった。最下位のハードウェア層は物理的にハードウェアであって、その真上にあるのがBus Driverである。ここはハードウェアを直接制御する部分で、USBのPlug/UnPlugとかデータの送受信など、純粋に物理的なアクセス管理を行う。この部分はハードウェアベンダーが提供するもので、UHCIならIntelなりVIAが、OHCIはそのコントローラーのベンダーがドライバを用意する。

photo 図1

 その上位に位置するのがClass Driverである。USBではさまざまな「クラス」が用意されている。例えばキーボードとかマウスならHID(Human Interface Device) Classだし、USBスピーカーならAudio Classというように、製品カテゴリー別にClassを用意し、この中で「基本的な動作」をカバーする。例えばHIDなら、キーを押されたらそのキーコードを伝えるとか、マウスの動作に応じてその移動量を通知するとか左右ボタンが押されたことを通知するといったものだ。

 基本的な動作はこのClass Driverが担ってくれるおかげで、A社のマウスをB社のものに置き換えても、取りあえず使う分には問題なく動作するというわけだ。

Copyright © ITmedia, Inc. All Rights Reserved.