JP2001358733A - ユニバーサルシリアルバス(usb)をピアツーピアネットワークとして用いる方法 - Google Patents

ユニバーサルシリアルバス(usb)をピアツーピアネットワークとして用いる方法

Info

Publication number
JP2001358733A
JP2001358733A JP2001108265A JP2001108265A JP2001358733A JP 2001358733 A JP2001358733 A JP 2001358733A JP 2001108265 A JP2001108265 A JP 2001108265A JP 2001108265 A JP2001108265 A JP 2001108265A JP 2001358733 A JP2001358733 A JP 2001358733A
Authority
JP
Japan
Prior art keywords
message
usb
sinc
peer
header
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2001108265A
Other languages
English (en)
Other versions
JP4422359B2 (ja
JP2001358733A5 (ja
Inventor
H Boucher Paul
ポール・エイチ・ブーシェアー
E Gilbert Ronald Jr
ロナルド・イー・ギルバート・ジュニア
Cober Christine
クリスチーヌ・コーバー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
HP Inc
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JP2001358733A publication Critical patent/JP2001358733A/ja
Publication of JP2001358733A5 publication Critical patent/JP2001358733A5/ja
Application granted granted Critical
Publication of JP4422359B2 publication Critical patent/JP4422359B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)

Abstract

(57)【要約】 【課題】ユニバーサルシリアルバス(USB)をピアツ
ーピアネットワークとして用いる。 【解決手段】ホストプロセッサはメッセージの前にヘッ
ダを付加し、ホストメッセージハンドラが該ヘッダを認
識する。各自デバイスメッセージハンドラを備える複数
のデバイスはそれぞれ、メッセージの前にヘッダを付加
し、デバイスメッセージハンドラが該ヘッダを認識す
る。ホストプロセッサと、ホストプロッサに連係された
複数のデバイスのうちの任意のデバイス間で直接、US
Bを介してメッセージをルーティングするよう構成され
た、ホストプロセッサに連係されたルータも備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、概して、コンピュ
ータネットワーキングに関し、特に、ユニバーサルシリ
アルバスをピアツーピアネットワークとして用いる方法
およびシステムに関する。
【0002】
【従来の技術】ピアツーピアネットワークは、各コンピ
ュータがネットワーク上の任意の他のコンピュータへの
メッセージ送信を開始でき、またネットワーク上の任意
の他のコンピュータからのメッセージ送信を受信するこ
とが可能なように、電子ネットワークで接続された複数
のコンピュータと定義される。ローカルエリアネットワ
ーク(LAN)は、ピアツーピアネットワークの一例で
ある。
【0003】ユニバーサルシリアルバス(USB)は、
一般に、パケットまたはメッセージの交換によってホス
トからデバイスへの通信を可能にするコンピューティン
グデバイスに関連する通信バスアーキテクチャである。
USBメッセージは、通常、ヘッダ情報と、データとを
含む。例えば、パーソナルコンピュータについていえ
ば、コンピュータプロセッサをホストと考え、マウス、
キーボード、プリンタ、ジョイスティック、ディスクド
ライブ等をホストと通信するデバイスと考えることがで
きる。従来のUSBプロトコルでは、すべての通信メッ
セージがUSBホストと該ホストに取り付けられたデバ
イス間で転送されるよう条件付けられている。統合され
たUSBデバイスインタフェースを含む、競争力のある
価格が付けられたマイクロプロセッサが利用しやすいた
めに、USBアーキテクチャを採用することは経済的で
ある。
【0004】従来のUSBプロトコルは、また、広い帯
域幅、およびプロセッサモジュールを「ホットスワップ
(hotswap)」する能力が重要な通信に対しても有用で
ある。「ホットスワップ」という用語は、システムの電
源を切ることなく、USBデバイスを動作中のコンピュ
ータシステムからはずし、別のプロセッサと取り替える
状況を指す。
【0005】
【発明が解決しようとする課題】不都合なことに、この
従来のプロトコルでは、USBに接続されるデバイス間
の通信がすべてホスト−デバイス間通信を介して行われ
るよう要請されるために、「ピアツーピア」通信とも呼
ばれるデバイス間の直接通信を行うことができない。
【0006】したがって、システムの電源を切ることな
く、プロセッサモジュールの取り外しおよび置換が可能
であり、かつ通信バスに接続されたデバイス間でのピア
ツーピア通信が可能な高帯域幅通信プロトコルおよびバ
スが必要とされている。
【0007】
【課題を解決するための手段】本発明は、USBに接続
されたデバイス間でのピアツーピア通信のための方法お
よびシステムを提供する。
【0008】本発明は、USBをピアツーピアネットワ
ークとして用いる方法として概念化することができ、本
方法は、ルータを備えるホストプロセッサをUSBに接
続するステップと、それぞれ互いに対して、かつホスト
プロセッサに対してピアである複数のデバイスをUSB
に接続するステップと、を含む。本方法はまた、複数の
デバイスまたはホストプロセッサのうちの1つにおい
て、メッセージを形成するステップと、該メッセージの
前にヘッダを付加するステップと、ルータおよびUSB
を介して、該メッセージをデバイスのうちの1つから他
の任意のデバイス、またはホストプロセッサに直接伝送
するステップと、含む。
【0009】アーキテクチャにおいて、本発明は、US
Bをピアツーピアネットワークとして用いるためのシス
テムであり、メッセージハンドラを含むホストプロセッ
サを備える。ホストプロセッサは、メッセージの前にヘ
ッダを付加するよう構成され、ホストメッセージハンド
ラは、該ヘッダを認識するよう構成される。本システム
はまた、それぞれデバイスメッセージハンドラを含む、
ホストプロセッサに連係された複数のデバイスも備え
る。複数のデバイスはそれぞれ、メッセージの前にヘッ
ダを付加するよう構成される。デバイスメッセージハン
ドラはまた、ヘッダを認識するよう構成される。本シス
テムは、ホストプロセッサと、ホストプロッサに連係さ
れた複数のデバイスのうちの任意のデバイス間で直接、
USBを介してメッセージをルーティングするよう構成
された、ホストプロセッサに連係されたルータも備え
る。
【0010】特許請求の範囲において定義付けられる本
発明について、添付図面を参照することでより良好に理
解することができる。図面内の構成要素は、必ずしも互
いに対して一定の縮尺ではなく、本発明の原理を明白に
示す部分を強調している。
【0011】
【発明の実施の形態】USBをピアツーピアネットワー
クとして用いる方法およびシステムの好ましい実施形態
について、サーバコンピュータシステムを制御するため
に、USBを用いて互いに対話する多数のマイクロプロ
セッサ駆動式デバイスを例として説明するが、本発明
は、多数のデバイスがUSBを介して通信するあらゆる
状況において適用可能である。
【0012】USBをピアツーピアネットワークとして
用いる方法およびシステムは、ハードウェア、ソフトウ
ェア、ファームウェア、またはそれらの組み合わせにお
いて実施することができる。好ましい実施形態におい
て、本発明は、ハードウェアと、ソフトウェアまたはフ
ァームウェアとの組み合わせにおいて実施される。ハー
ドウェアまたはファームウェアはメモリに格納し、適し
た命令実行システムで実行することができる。代替の実
施形態におけるように、ハードウェアにおいて実施され
る場合、本発明は当技術分野で周知の次の技術、すなわ
ち、データ信号に対して論理関数処理を行う論理ゲート
を有する離散論理回路、適切な組み合わせ論理ゲートを
備えた特定用途向け集積回路(ASIC)、プログラマ
ブル・ゲートアレイ(PGA)、フィールド・プログラ
マブル・ゲートアレイ(FPGA)等のいずれか一つ、
あるいはそれらの組み合わせを用いて実施することがで
きる。
【0013】USBをピアツーピアネットワークとして
用いる方法およびシステムのソフトウェア部分は、論理
関数処理を行うための実行可能命令の順序付きリストを
含み、コンピュータベースのシステム、プロセッサ包含
システム、または媒体から命令をフェッチして実行する
ことのできる他のシステム等のような、命令実行システ
ム、装置、またはデバイスによって、またはこれらと併
せて用いるため、任意のコンピュータ読み取り可能媒体
において実施することができる。本明細書において、
「コンピュータ読み取り可能媒体」とは、命令実行シス
テム、装置、またはデバイスによって、またはこれらと
併せて用いるため、プログラムを包含、格納、通信、伝
搬、または搬送することが可能な任意の手段でありう
る。コンピュータ読み取り媒体は、例えば、電気、磁
気、光学、電磁、赤外線、または半導体のシステム、装
置、デバイス、または伝搬媒体でありうるが、これらに
制限されない。コンピュータ読み取り媒体のより具体的
な例(非網羅的リスト)としては、以下が挙げられる。
すなわち、1本または複数本のワイヤを有する電気接続
(電気)、ポータブルコンピュータディスケット(磁
気)、ランダムアクセスメモリ(RAM)(電気)、読
み取り専用メモリ(ROM)(電気)、消去可能プログ
ラマブル読み取り専用メモリ(EPROMまたはフラッ
シュメモリ)(電気)、光ファイバ(光学)、およびポ
ータブルコンパクトディスク読み取り専用メモリ(CD
−ROM)(光学)である。なお、コンピュータ読み取
り可能媒体は、紙またはプログラムを印刷可能な別の適
した媒体であってもよいことに留意する。これは、例え
ば光学スキャン等により紙または他の媒体上のプログラ
ムを電子的に取り込んでから、必要であればコンパイ
ル、解釈するか、そうでなければ適宜処理し、コンピュ
ータメモリに格納することができるためである。
【0014】次に、図面に目を向けて、図1は、本発明
の概念を示すために用いられる、サーバシステム11を
示すブロック図である。なお、サーバシステム11とし
て図示されるが、USBをピアツーピアネットワークと
して用いる方法およびシステムは、それぞれUSBイン
タフェースを有する複数のプロセッサデバイスがピアツ
ーピア構成でUSBを介して通信する任意のシステムに
適用可能であることに留意されたい。サーバシステム1
1は、多数のキャビネットに分割してもよい。例えば、
説明のために、サーバ11は、時にキャビネット27お
よび28と呼ばれるノードに分割される。キャビネット
27は、メモリ要素12と、プロセッサ14とを備え
る。キャビネット28は、メモリ要素36と、プロセッ
サ37とを備える。各キャビネット27および28はま
た、メモリ要素12および36と、プロセッサ14およ
び37をそれぞれ制御し、監視するユーティリティサブ
システム50および30もそれぞれ備える。
【0015】ユーティリティサブシステム50は、US
B20に接続され、USB20を介して通信する多数の
プロセッサデバイスを備え、本明細書では、キャビネッ
トレベルユーティリティ(CLU)デバイス60と、パ
ワーモニタ3(PM3)デバイス70と、システム抽象
レイヤインタフェースネットワークコントローラ(SI
NC)デバイス100と、サービスプロセッサ200
と、を備えるものとして図示される。通常の適用におい
ては、各ユーティリティサブシステム50および30
は、CLUデバイス、PM3デバイス、およびSINC
デバイスの組を繰り返し多数含むと共に、追加のプロセ
ッサおよび制御デバイスを備える。そのため、複数のユ
ーティリティサブシステム50および30が図示されて
いる。しかし、簡略化のために、それぞれCLUデバイ
ス、PM3デバイス、SINCデバイスを一組ずつ備え
る二組のユーティリティサブシステムのみが図示されて
いる。ユーティリティサブシステム50の場合には、そ
れらに加えてサービスプロセッサ200を備える。しか
し、サーバ11に連係されるサービスプロセッサ200
は(ユーティリティサブシステム50に配置される)一
つのみであることに留意されたい。本発明の一形態にお
いては、サービスプロセッサ200はホストプロセッサ
として機能する。USBプロトコルは一つのホストしか
許容しないため、ユーティリティプロセッサおよび関連
デバイスの数に関係なく、サービスプロセッサ200は
一つだけである。本発明の一形態において重要なこと
は、各ユーティリティサブシステム50および30内の
各デバイスがUSB20を介して通信するということで
ある。
【0016】SINCデバイス100は、接続21を介
して、メモリ12およびプロセッサ14と通信し、これ
らを制御する。CLUデバイス60は、接続22を介し
て、バックプレーン要素16と通信してこれを制御し、
PM3デバイス70は、接続24を介して、電源および
ファンモジュール18と通信し、これらを制御する。同
様に、SINCデバイス31は、接続41を介して、メ
モリ36およびプロセッサ37と通信し、これらを制御
する。CLUデバイス32は、接続42を介して、バッ
クプレーン要素38と通信してこれを制御し、PM3デ
バイス34は、接続44を介して、電源およびファンモ
ジュール39と通信し、これらを制御する。
【0017】図2は、図1のユーティリティサブシステ
ム50を示すブロック図である。ユーティリティサブシ
ステム50は、USB20を介して、SINCデバイス
100、CLUデバイス60、およびPM3デバイス7
0と通信するサービスプロセッサ200を備える。サー
ビスプロセッサ200は、協働して、ユーティリティサ
ブシステム50の動作を制御するハードウェア要素とソ
フトウェア要素の双方で構成される。サービスプロセッ
サ200は、USBホストコントローラ226およびU
SBホストドライバ224を用いて、USB20を介し
て通信する。USBホストコントローラ226は、ハー
ドウェア要素(USBコントローラチップ)であり、U
SBホストドライバ224は、それに対応した、USB
通信の制御に用いられるソフトウェアドライバである。
【0018】サービスプロセッサ200はまた、サービ
スプロセッサ200の動作を制御するソフトウェア要素
である、オペレーティングシステム221を備える。サ
ービスプロセッサ200はまた、USBルータ218も
含む。USBルータ218は、サービスプロセッサ20
0と、ユーティリティサブシステム50内の各デバイス
60、70、および100との間に論理接続を提供す
る、デバイスドライバ220を介して、オペレーティン
グシステム221と通信する。デバイスドライバ220
については後にさらに詳細に説明される。
【0019】サービスプロセッサ200はまた、各種機
能性をサーバシステム11に提供する多数のソフトウェ
アモジュールも備える。例えば、サービスプロセッサ2
00は、スキャンサポートモジュール208、ファーム
ウェア更新モジュール211、ならびにサーバシステム
11の全体設計の一部であり、かつ他のUSB接続され
たマイクロプロセッサと通信を行い動作する他のモジュ
ールを備える。基本的に、サービスプロセッサ200
は、サーバシステム11が適切に機能できるようにす
る、ユーティリティサブシステム50内の様々な制御機
能を提供する。
【0020】なお図2を参照して、ユーティリティサブ
システム50は、SINCデバイス100と、CLUデ
バイス60と、PM3デバイス70と、をさらに備え
る。これらデバイスはそれぞれ、互いに対してピアと見
なされる。同様に、サービスプロセッサもまた、各デバ
イス60、70、および100に対してピアである。例
えば、後に詳細に説明される本発明によれば、各デバイ
ス(SINC100、CLU60、およびPM370)
は、USB20をピアツーピアネットワークとして用い
ることで、互いに対して、かつサービスプロセッサ20
0と双方向通信することができる。この例においては、
USBはLANであると考えることができる。
【0021】本発明の一形態によれば、SINCデバイ
ス100、CLUデバイス60、およびPM3デバイス
70内に含まれるメッセージロジック150は、デバイ
スと協働して、各デバイスが特別な(unique)通信プロ
トコルヘッダをデータブロックの前に付加することがで
きるようにし、これによってUSBに接続された別のデ
バイスに直接アドレス指定される通信メッセージを形成
する。特別通信プロトコルヘッダおよびデータ(すなわ
ち、通信メッセージ)は、次に、標準USBヘッダおよ
びトレーラで収容され、USBを介して転送される。特
別通信プロトコルヘッダにより、各デバイスがまるでピ
アツーピアネットワークに接続されているかのように、
各デバイスが他のデバイスと互いに通信することが可能
になる。
【0022】SINCデバイス100は、エグゼクティ
ブ101、メッセージロジック150、USBドライバ
102、ハードウェアインタフェース104、およびU
SBデバイスコントローラ106を備える。USBデバ
イスコントローラ106は、USB20を介してメッセ
ージを通信するために、USBデバイスインタフェース
チップおよびUSBドライバ102とのインタフェース
を備えたハードウェア要素である。ハードウェアインタ
フェース104により、エグゼクティブ101は、SI
NCデバイス100に存在する他のハードウェア要素
(図示せず)と通信可能になる。メッセージロジック1
50(後により詳細に説明する)は、エグゼクティブ1
01と協働して、SINCデバイス100が、上述した
特別通信プロトコルヘッダを生成し、該ヘッダをデバイ
スが送信したいと望むデータの前に付加することによっ
て、USB20に接続された任意の他のデバイスにメッ
セージを送信できるようにする。
【0023】従来の使用方法では、USBでは、ホスト
と遠隔的に接続された個々のデバイスとの間のメッセー
ジ通信しかできない。例えば、パーソナルコンピュータ
(PC)環境において、USBは、プロセッサと、プリ
ンタ、マウス、およびキーボード等遠隔的に接続される
周辺装置との間のメッセージ通信に用いられる。例え
ば、マウスがプリンタと通信する方法はない(理由もな
い)。従来の適用において、USBではホスト−デバイ
ス間の通信しかできなかった。
【0024】本発明の一形態によると、メッセージロジ
ック150は、USBルータ218と協働して、特別通
信プロトコルヘッダを解析し、USB20に接続された
任意のデバイス間のピアツーピア通信を可能にする。そ
れによって、USB20はピアツーピアネットワークと
して機能できるようになる。
【0025】CLUデバイス60は、エグゼクティブ6
1、メッセージロジック150、USBドライバ62、
ハードウェアインタフェース64、スキャンインタフェ
ース67、およびUSBデバイスコントローラ66を備
える。同様に、PM3デバイス70は、エグゼクティブ
71、メッセージロジック150、USBドライバ7
2、ハードウェアインタフェース74、およびUSBデ
バイスコントローラ76を備える。エグゼクティブ61
と71、USBドライバ62と72、ハードウェアイン
タフェース64と74、およびUSBデバイスコントロ
ーラ66と76はすべて、SINCデバイス100にお
ける各デバイスと同様に動作する。
【0026】簡略化のために図2からは省略されている
が、サービスプロセッサ200、SINCデバイス10
0、CLUデバイス60、およびPM3デバイス70は
それぞれ、本発明のソフトウェア部分の実行に必要なプ
ロセッサ、メモリ(ランダムアクセスメモリ(RAM)
および読み出し専用メモリ(ROM)を含む)、インタ
フェース、および接続を備える。
【0027】本発明のプロトコルスタック概観 図3は、本発明の一形態によるプロトコルスタック30
0を示す概略図である。サービスプロセッサ200は、
USBホストコントローラ226、USBホストドライ
バ224、およびUSBルータ218を備える。
【0028】SINCデバイス100は、USBデバイ
スコントローラ106、USBデバイスドライバ10
2、およびメッセージロジック150を備える。図3に
示すように、USBホストコントローラ226は、物理
的接続(USB)20を介して、USBデバイスコント
ローラ106と通信する。USBホストドライバ224
は、論理接続321を介して、USBデバイスドライバ
102と論理的に通信する。USBルータ218は、本
発明に関連する通信プロトコルを用い、パイプ111、
112および114を介して、メッセージロジック15
0と論理的に通信する。
【0029】図4は、本発明による、メッセージフォー
マット330を示す概略図である。メッセージフォーマ
ット330は、USBヘッダ331、通信プロトコルヘ
ッダ355、データ360、およびUSBトレーラ33
2を含む。本発明の一形態によれば、任意のデバイス、
例えば上述したSINCデバイス100、CLUデバイ
ス60、PM3デバイス70、およびサービスプロセッ
サ200によって、通信プロトコルヘッダ355(後に
より詳細に説明される)がデータ360の前に付加され
(前に取り付けられ)、その結果通信メッセージ350
が形成される。通信メッセージ350は、標準USBヘ
ッダ331およびトレーラ332によって収容される。
このようにして、USB20に接続された個々の任意の
デバイスが、一意に識別されるメッセージを、USB2
0に接続された他の任意のデバイスに送信することがで
きる。
【0030】システム動作 図5は、図2のサービスプロセッサ200とSINCデ
バイス100間の接続性を示すブロック図である。図5
には、1つのみのデバイス(すなわち、SINCデバイ
ス100)をUSB20を介してサービスプロセッサ2
00に接続して図示するが、かかる多くのデバイスがサ
ービスプロセッサ200に接続されるものと意図され
る。本発明の動作を説明するために、かつ例として、フ
ァームウェア更新モジュール211(図2におけるいか
なるモジュールもメッセージを送信可能であるが)が、
接続266を介して、通信メッセージをUSBルータ2
18に送信する。接続266を介して送信されるメッセ
ージは、通信プロトコルヘッダ355およびデータ36
0を含み、このメッセージは、USBルータ218によ
って受信される。通信プロトコルヘッダ355およびデ
ータ360については、後に図7に関してより詳細に説
明する。USBルータ218は、接続266を介して受
信したメッセージを検査し、添付された通信プロトコル
ヘッダ355を解析することで、メッセージをどこに送
信すべきかを決定する。例えば、ファームウェア更新モ
ジュール211からのメッセージは、例えば、SINC
デバイス100、CLUデバイス60、およびPM3デ
バイス70等(これらに制限されない)、USBに接続
された他の任意のデバイスを宛先とすることができる。
USBルータ218は、複数のデバイスドライバ25
1、252、および254に接続される。デバイスドラ
イバ251は、SINCデバイス100と関連付けられ
る。デバイスドライバ252は、CLUデバイス60に
関連付けられ、デバイスドライバ254はPM3デバイ
ス70に関連付けられる。各デバイスタイプ毎にデバイ
スドライバを設けることで、異なるデバイスタイプに行
くメッセージに優先順位を付けることが可能になる。し
かし、デバイスドライバは一つだけでもすべてのデバイ
スタイプに対応することができる。好ましい実施形態に
おいては、接続されたデバイスタイプ(すなわち、SI
NCデバイス100、CLUデバイス60、およびPM
3デバイス70)それぞれに関連したデバイスドライバ
が一つずつサービスプロセッサ200に備えられる。こ
れらのデバイスドライバ251、252、および254
は、例としてのみ図示されるものである。
【0031】接続266を介して受信したメッセージの
宛先に応じて、USBルータ218は、メッセージがS
INCデバイス100、CLUデバイス60、またはP
M3デバイス70に宛先付けられている場合には、その
メッセージを適切なデバイスドライバ251、252、
または254に提供し、サービスプロセッサ200に宛
先付けられている場合には、サービスプロセッサ200
における別のエンティティに提供する。例として、図5
は、SINCデバイス100を備え、これは、あくまで
例を示すためのものとして、接続266を介して受信し
たメッセージがアドレス指定されるデバイスであると仮
定する。USBルータ218は、接続266を介して受
信したメッセージが、SINCデバイス100に宛先付
けられていることを認識し、該メッセージをデバイスド
ライバ251に送る。メッセージがSINCデバイス1
00からサービスプロセッサ200において受信される
と、該メッセージもまたデバイスドライバ251に現れ
る。このような場合、受信したメッセージは、USBル
ータ218に転送され、USBルータ218は、本発明
の一形態により、該メッセージの前に付加された通信プ
ロトコルヘッダを解析し、該メッセージをどこに送信す
べきかを決定する。例えば、もしSINCデバイス10
0がメッセージをCLUデバイス60に送信すると、メ
ッセージはデバイスドライバ251に現れ、USBルー
タ218に転送される。次に、USBルータ218は、
該メッセージをCLUデバイス60に関連付けられたデ
バイスドライバ252に送る。SINC100から受信
したメッセージがサービスプロセッサ200に宛先付け
られていた場合、USBルータ218は、デバイスドラ
イバ251から受信したメッセージを受け入れ、接続2
62を介して、該メッセージをサービスプロセッサ入力
メッセージハンドラ250に転送する。サービスプロセ
ッサ入力メッセージハンドラ250は、通信プロトコル
ヘッダ355を除去し、データ360を適切なモジュー
ル、本例では、ファームウェア更新モジュール211に
接続264を介して転送する。あるいはまた、サービス
プロセッサ入力メッセージハンドラ250は、データ3
60を接続267を介して、他のアプリケーションモジ
ュール268として表される任意適切な他のアプリケー
ションモジュールに転送する。
【0032】ここで再び、ファームウェア更新モジュー
ル211からSINCデバイス100に送信されるメッ
セージについての考察に戻ると、USBルータ218
は、メッセージをデバイスドライバ251に入れ、該デ
バイスドライバ251は、次に、メッセージをキュー2
56に入れる。図5のデバイスドライバ251、25
2、および254は、図2のデバイスドライバ220を
示し、かつこれに対応する。例示のために説明される本
例では、上記タイプ(SINC、PM3、およびCL
U)毎に1つのデバイスがあるものと仮定される。実際
には、デバイスタイプ毎に複数のデバイスがありうる。
同一のデバイスタイプのデバイスはそれぞれ、そのデバ
イスタイプ用のデバイスドライバ内に、各自専用のキュ
ーを有する。したがって、それぞれドライバの対応する
デバイスタイプの特定のデバイスに対応する複数のキュ
ーセットを処理することによって、一台のデバイスドラ
イバで各自のデバイスタイプのデバイスを複数扱うこと
ができる。
【0033】本発明によれば、論理接続が、サービスプ
ロセッサ200と、SINCデバイス100等の遠隔的
に接続されたデバイスとの間に確立される。サービスプ
ロセッサ200およびSINCデバイス100の双方に
示される矢印111、112、および114は、サービ
スプロセッサ200とSINCデバイス100の間に存
在する論理接続を表す、「パイプ」の概念を示してい
る。矢印111は、バルクアウトパイプを表し、矢印1
12は、割り込みパイプを表し、矢印114は、バルク
インパイプを表す。パイプの概念は、USBバス通信シ
ステムの分野において周知であり、伝送制御プロトコル
/インターネットプロトコル(TCP/IP)ネットワ
ークスタックにおける接続ソケットの概念に対応する。
【0034】入力メッセージ動作例 本発明の一形態によれば、USBホストコントローラ2
26およびサービスプロセッサ200は、SINCデバ
イス100内のUSBデバイスコントローラ106を介
して、割り込みパイプ112を定期的にポーリングす
る。SINCデバイス100が、サービスプロセッサ2
00あるいはUSB20に接続された別のデバイスのい
ずれかに送信したいデータを有する場合、デバイスによ
りデータ360の前に付加された通信プロトコルヘッダ
355がキュー156に入れられる。キュー156は、
デバイス出力メッセージハンドラ152内にあり、デバ
イス出力メッセージハンドラ152は、通信プロトコル
ヘッダ355を割り込みパイプ112に入れる。USB
ホストコントローラ226は、割り込みパイプ112を
ポーリングすると、割り込みパイプにおける通信プロト
コルヘッダ355の存在を認識し、それによって、SI
NCデバイス100が送信したい情報を有していること
を知らせる。次に、通信プロトコルヘッダ355が、デ
バイス出力メッセージハンドラ152から割り込みパイ
プ112を介してSINCデバイスドライバ251に転
送される。USB業界規格用語において、通信プロトコ
ルヘッダ355は、割り込みデータパケットと呼ばれ
る。
【0035】SINCデバイスドライバ251は、ヘッ
ダ355の長さフィールド(図7において後述するバイ
ト6および7)を読み出すことで、通信プロトコルヘッ
ダ355にデータフィールド360を足した長さを読み
出す。SINCデバイスドライバ251は、SINCデ
バイス100が送信データをさらに有しているか否かを
判断する。これは、通信プロトコルヘッダ355内の特
定フィールドを解析することで達成され、これについて
は、後に図7に関して詳細に説明する。SINCデバイ
スドライバ251が、SINCデバイス100が送信す
る情報をさらに有していると判断した場合、SINCデ
バイスドライバ251は、「USBバルク読み出し」コ
マンドをSINCデバイス100に送信する。この結
果、デバイス出力メッセージハンドラ152からキュー
158を通して、次にバルクインパイプ114を通して
サービスプロセッサ200に転送される通信メッセージ
(すなわち、データ360)の平衡が保たれる。転送は
パイプ111、112、および114を介して行われる
ものとして説明したが、重要なことは、パイプは論理接
続であり、情報の転送は、実際にはUSB20を介して
行われることであることに留意されたい。
【0036】本発明の本形態において、上記のメッセー
ジ交換が行われた場合、デバイス出力メッセージハンド
ラ152は、SINC100上のいくつかのソフトウェ
アモジュール(例えば、新メッセージブロック126、
ファームウェア更新ルーチン119、またはリセットル
ーチン118)のうちの1つからメッセージを受信した
ものと考えられる。メッセージを発するモジュールは、
通信プロトコルヘッダ355をデータ360の前に付加
したものと考えられる。デバイス出力メッセージハンド
ラ152は、次に、通信プロトコルヘッダ355をキュ
ー156に入れ、データ360をキュー158に入れた
と考えられる。リセットルーチン118、ファームウェ
ア更新ルーチン119、および新メッセージブロック1
26を用いて説明されたが、SINCデバイス100か
ら送信されるメッセージは、SINCデバイス100上
に存在するが図示されていない種々多数のメッセージ源
のうちのいずれから発せられてもよい。
【0037】本発明の一形態によれば、デバイスドライ
バ251は、「読み出し」呼び出しを用いることで、割
り込みパイプ112から読み出しを行う。呼び出しの概
念は当業者には周知である。割り込みパイプ112にメ
ッセージがない場合、呼び出しは保留される。USBホ
ストドライバ224が、割り込みパイプ112において
通信プロトコルヘッダ355を検出した場合、呼び出し
が戻される。次に、デバイスドライバ251は、通信プ
ロトコルヘッダ355を割り込みパイプ112から除去
する。そして、通信プロトコルヘッダ355が、付随す
るデータ360があることを示す場合には、デバイスド
ライバ251は、読み出し呼び出しをバルクインパイプ
114に出す。この読み出し呼び出しは、読み出しが完
了するまで保留される。
【0038】出力メッセージ動作例 出力メッセージ(すなわち、サービスプロセッサ200
からSINCデバイス100等の遠隔デバイスに送信さ
れるメッセージ)の転送について、次に説明する。サー
ビスプロセッサ200によって処理されるメッセージ
は、サービスプロセッサ200から発せられるか、ある
いはUSB20に接続された別のデバイス(SINCデ
バイス100等)から発せられる。本発明によれば、U
SBルータ218は、出力メッセージをキュー256、
257、または258のうち、メッセージがアドレス指
定されているデバイスに関連する1つに入れる。本例に
おいて、USBルータ218は、メッセージをデバイス
ドライバ251に渡し、デバイスドライバ251は、最
終的にSINCデバイス100に伝送するために、キュ
ー256にメッセージを入れる。現在SINCデバイス
100に送信処理中のメッセージがない場合には、デバ
イスドライバ251は、すぐにキュー256からメッセ
ージを抽出して、該メッセージをSINCデバイス10
0に送信する。送信中の前の出力メッセージがある場合
には、新しいメッセージはキュー256に保持され、前
のメッセージに対する「送信完了」割り込みが発生する
と、取り出されてSINCデバイス100に送信され
る。USBルータ218からバルクパイプ111を通し
て送信されたメッセージは、次に、デバイス入力メッセ
ージハンドラ151に受信され、キュー154に入れら
れる。当技術分野で周知の「関数呼び出し」を用いて、
エグゼクティブ101は、接続109を介して、デバイ
ス入力メッセージハンドラ151を定期的に呼び出し、
すなわちポーリングし、キュー154にメッセージがあ
るか否かを判断する。エグゼクティブ101はまた、同
様に他の関数呼び出しも行う。例えば、エグゼクティブ
101は、接続103を介して定期的にハードウェアイ
ンタフェース104を呼び出し、SINCデバイス10
0におけるハードウェアの状態を判断する。ハードウェ
アインタフェース104は、USB20に接続された他
の任意のデバイスに送信する情報を有している場合に
は、接続108を介してメッセージロジック150と通
信することができる。デバイス入力メッセージハンドラ
151がキュー154に情報を有している場合、エグゼ
クティブ101にポーリングされると、デバイス入力メ
ッセージハンドラ151は、キュー154に存在するメ
ッセージを実行するために、適切な関数呼び出しを生成
する。
【0039】例えば、ファームウェア更新モジュール2
11が、USB20を介してファームウェア更新メッセ
ージをSINCデバイス100に送信したものと仮定し
た場合、デバイス入力メッセージハンドラ151は、こ
のメッセージをキュー154において検出すると、接続
117を介して適切な関数呼び出しを実行して、ファー
ムウェア更新ルーチン119を実行する。このファーム
ウェア更新は、例示目的のためにのみ示されるものであ
る。他のメッセージならば、異なるルーチンを呼び出
す。デバイス入力メッセージハンドラ151がファーム
ウェア更新のメッセージの代わりにリセットコマンドを
受信したならば、リセットルーチン118に対して接続
116を介して関数呼び出しを実行し、リセットルーチ
ン118が、接続127を介して、リセットコマンドを
リセットハードウェア128に送信する。
【0040】SINCデバイス100がメッセージをU
SB20に配置された別のデバイスまたはサービスプロ
セッサ200に送信するには、種々多数のシナリオがあ
る。例えば、ファームウェア更新モジュール211から
受信したファームウェア更新メッセージに応答して、フ
ァームウェア更新ルーチン119を実行すると、ファー
ムウェア更新ルーチン119は、メッセージの受信承認
と、メッセージにおいて要求されたアクションの成功ま
たは失敗を示すメッセージの双方またはいずれかを送信
することができる。これは、図7および図8に関して説
明する通信プロトコルヘッダ355によって達成するこ
とができる。あるいは、非送信請求状態更新メッセージ
をSINCデバイス100から新メッセージブロック1
26を介して送信することもできる。別の例として、新
メッセージブロック126は、メッセージをパワーモニ
タであるPM3デバイス70に送信し、SINCが必要
とする電力を知らせる。
【0041】メッセージを与えられる方法に関わりな
く、デバイス出力メッセージハンドラ152は、通信プ
ロトコルヘッダ355およびデータ360を含むメッセ
ージを解析し、ヘッダ355をキュー156に入れ、デ
ータ360をキュー158に入れる。本発明において、
通信プロトコルヘッダ355は、メッセージを送信した
デバイスによって、データ360の前に付加される。例
えば、ファームウェア更新ルーチン119が、ファーム
ウェア更新モジュール211から受信したメッセージに
対して返信するよう命令された場合、ファームウェア更
新ルーチン119は、以下の説明に従って、メッセージ
の前に通信プロトコルヘッダ355を付加し、ヘッダお
よびメッセージをデバイス出力メッセージハンドラ15
2に送信する。ファームウェア更新ルーチン119によ
って前に付加された通信プロトコルヘッダ355は、メ
ッセージの宛先としてサービスプロセッサ200を識別
する。ファームウェア更新モジュール211は、ファー
ムウェア更新ルーチン119が現在応答しているメッセ
ージを送信する際、ヘッダのプライベートエリア(図7
において後に説明されるバイト8〜11)に特別な番号
を挿入している。この特別な番号は、ファームウェア更
新ルーチン119には認識されないが、サービスプロセ
ッサ入力メッセージハンドラ250がファームウェア更
新モジュール211を応答メッセージの所期の受信先と
して識別できるようにするための識別子である。ファー
ムウェア更新ルーチン119が応答メッセージを作成す
る際、要求メッセージから応答メッセージにプライベー
トバイト362、364、366、および367(図
7)をコピーする。メッセージヘッダのプライベートエ
リアの使用については、図7に関して後に説明される。
【0042】デバイス出力メッセージハンドラ152
は、通信プロトコルヘッダ355を、キュー156に対
応する割り込みパイプ112に入れ、もし存在すれば、
データ360をキュー158に関連するバルクインパイ
プ114に入れる。キュー156は、二重バッファキュ
ーであり、二重バッファされるUSBデバイスコントロ
ーラ106に対応する。
【0043】図6は、図5におけるキューとして与えら
れる図3のパイプを示す略図である。図示のように、ル
ータ218およびSINCデバイス100は、バルクア
ウトパイプ111、割り込みパイプ112、およびバル
クインパイプ114を介して接続される。図6は、メッ
セージが交換される個々の経路としてパイプを示してい
る。なお、図6には三本の個々のパイプとして示される
が、パイプはすべてUSB20に存在することに留意さ
れたい。
【0044】メッセージヘッダフォーマット 図7は、図4のメッセージフォーマット330の通信メ
ッセージ350の一例を示す概略図である。通信メッセ
ージ350は、通信プロトコルヘッダ355およびデー
タ360を含む。通信プロトコルヘッダ355は、12
バイトの情報を含む。該バイトは、必ずしも図示した順
序である必要はない。宛先キャビネット番号351(バ
イト0)は、宛先キャビネット番号に関する情報を含
む。
【0045】宛先アドレス352(バイト1)は、メッ
セージが宛先付けられたデバイスのキャビネット内のア
ドレスである。特別なデバイス番号をUSB20に接続
された各デバイスに割り当てることによって、キャビネ
ット番号と宛先アドレス352(バイト1)を合わせ
て、デバイス(すなわち、SINCデバイス100、C
LUデバイス60、およびPM3デバイス70)が識別
される。
【0046】ソースキャビネット番号354(バイト
2)は、ソースキャビネット番号(すなわち、メッセー
ジを発したデバイスを含むキャビネットの番号)であ
り、ソースアドレス356(バイト3)は、メッセージ
を送信した、デバイスのキャビネット内のアドレスであ
る。キャビネット内の宛先アドレスおよびソースアドレ
スを以下の表1に示す。
【0047】
【表1】
【0048】表1に見られるアドレスは、他とは異なる
任意の値を用いることができるという点において、自由
に決めることのできるものである。名称の欄はあらかじ
め定義されており、デバイスに自由に名称をつけること
はできない。デバイスが自身の名称(アドレス)および
通信先のデバイスの名称(アドレス)を知ることができ
るように、全般的なネーミング方式を予め決めておくこ
とが望ましい。あるいは、ディレクトリサービスがその
ようなネーミング方式にとってかわってもよい。
【0049】コマンドバイト357(バイト4)は、受
信モジュールにメッセージの処理の方法を指示する。好
ましい実施形態において用いられるコマンドおよび値の
いくつかの具体例を以下に示す。
【0050】 BusboyCmmdExecStatus =0×00 BusboyCmmdUnsolicitedStatus =0×01、/*CLU/SINC/PM3/PDI to SUB */ BusboyCmmdBootNormal =0×02、/*SUB to SINC */ BusboyCmmdBootType1 =0×03、/*SUB to SINC */ BusboyCmmdTocCell =0×04、/*SUB to SINC */ BusboyCmmdResetCell =0×05、/*SUB to SINC */ BusboyCmmdResetYourself =0×06、/*SUB to CLU/SINC/PM3/PDI */ BusboyHdrIdIcmHdrResponse =0×f3、/*SINC to SUB */ コマンドの意味および値は、本発明に従って構築された
システムの実施の詳細によって決定される。
【0051】フラグバイト358(バイト5)は、フラ
グを表す。フラグについては、後に図8に関してより詳
細に説明される。メッセージ長359(バイト6)は、
メッセージ長(最下位バイト)を表し、メッセージ長3
61(バイト7)は、メッセージ長(最上位バイト)を
表す。メッセージ長は、メッセージにおけるバイトの数
であり、メッセージヘッダ355の12バイトを含む。
入力メッセージハンドラは、メッセージ長が12バイト
よりも大きいか否かをチェックすることで、メッセージ
350のデータ部分360があるか否かを判断すること
ができる。
【0052】バイト8 362からバイト11 367
は、応答を要する要求を発したソフトウェアモジュール
(本例ではファームウェア更新モジュール211)を識
別するプライベートデータを表す。メッセージを送信す
る相手のデバイス(例えば、SINCデバイス100)
に送信メッセージに対する返信を期待する場合、送信側
のデバイスにおけるモジュール(例えば、サービスプロ
セッサ200におけるファームウェア更新モジュール2
11)は、識別子をバイト362、364、366、3
67におけるヘッダのプライベートエリアに挿入するこ
とによって、自身の宛て先を知らせる。応答側デバイス
における応答モジュール(例えば、SINCデバイス1
00におけるファームウェア更新ルーチン119)は、
プライベートエリアの内容を返信メッセージにコピーす
るよう要求される。
【0053】プライベートエリアにおける識別子は、発
信デバイス上の入力メッセージハンドラ(例えば、サー
ビスプロセッサ200上のサービスプロセッサ入力メッ
セージハンドラ250)が、返信先モジュール(例え
ば、ファームウェア更新モジュール211応答キュー)
として認識することができる値である。識別子は、例え
ば、元の要求を送信したモジュールにおいて呼び出す関
数についての応答キューの識別子、またはアドレスであ
りうる。サービスプロセッサ入力メッセージハンドラ2
50は、プライベートエリア(ヘッダ355におけるバ
イト8からバイト11)の内容に基づいて、すべての返
信を指定されたモジュールに送信する。
【0054】アドレス指定を説明するために、図7に示
す発信元および宛先バイト351、352、354、3
56は、デバイスを識別指定するものとする。メッセー
ジが(あるモジュールによって発せられた)コマンドで
あり、かつ宛先デバイスに2つ以上のコマンド処理モジ
ュールがある場合、コマンドバイト357(バイト4)
の内容によって、所与のコマンドを処理する、デバイス
内の特定のモジュールを識別することができる。メッセ
ージが(先に受信したコマンドに応答して発せされた)
返信メッセージである場合、コマンドバイト357(バ
イト4)の内容は、プライベートエリアバイト362、
364、366、および367(バイト8〜バイト1
1)の内容と合わせて、返信メッセージを渡すべきモジ
ュールを指定する。コマンドバイト357(バイト4)
の内容はまた、プライベートエリアバイト362、36
4、366、および367(バイト8〜バイト11)の
内容と合わせて、異なるデバイスに対する複数の未処理
要求を有するモジュールが、各デバイスからの返信メッ
セージを未処理の要求と結びつけることができるように
する。
【0055】メッセージフォーマット350はまた、メ
ッセージフォーマット350のオプションコマンドデー
タバイト368および369(バイト12からバイト長
+11まで)を含む、データ360も含む。オプション
コマンドデータは、オプションデータを含む。データ3
60は、0バイト以上のデータを含む可変長フィールド
である。このデータは、コマンドバイト357(バイト
4)における特定のコマンドに関連するものである。例
えば、コマンドが「EPROMセクタプログラム」であ
る場合には、パケットのデータ部分は、EPROMセク
タにプログラムされるデータである。コマンドが「状態
応答」であり、かつパケットが先の「状態照会」メッセ
ージの結果として送信される場合には、データ部分は、
実際のデバイス状態である。
【0056】図8は、図7のフラグバイト358(バイ
ト5)を示す概略図である。図示のように、このフォー
マットにおいては、フラグバイト358のビット4〜ビ
ット7はメッセージ識別情報を含む。ビット0およびビ
ット1は、USB20に接続されたSINC100等、
個々のデバイスに要求する応答に応じてセットすること
ができる。例えば、最下位ビット(LSB)0がロジッ
ク「0」にセットされる場合は、図5のSINCデバイ
ス100は、送信されたメッセージの受信の確認通知を
する必要がないことを示す。LSB0がロジック「1」
にセットされる場合は、受信デバイス(すなわち、図5
に関して先に説明した例では、SINCデバイス10
0)はメッセージの受信の確認通知をしなければならな
いことを示す。同様に、フラグバイト358(バイト
5)のビット1がロジック「0」にセットされる場合
は、メッセージに含まれるコマンドの処理が成功したか
失敗したかについて、メッセージの発信元に報告する必
要がないことを示す。同様に、ビット1がロジック
「1」にセットされる場合は、メッセージに含まれるコ
マンドの処理が成功したか失敗したかについて、発信デ
バイスに報告しなければならないことを示す。
【0057】初期化 再度、図5を参照して、標準USB初期化の一部とし
て、USBホストドライバ224は、デバイスがバスに
接続されるときに、各デバイス(すなわち、SINCデ
バイス100、CLUデバイス60等)を列挙する(ア
ドレスを割り当てる)。(なお、これは物理レイヤアド
レスであり、表1に示す論理レイヤアドレスとは異なる
ことに留意する)。その際、デバイスは、デバイス記述
子をホストに戻す。デバイス記述子によって、デバイス
のタイプが識別される。これは、USB通信の分野にお
ける当業者に良く知られている。このとき、好ましい実
施形態におけるデバイスは、それが、例えば、PM3デ
バイス70、CLUデバイス60、またはSINCデバ
イス100であると報告する。デバイスはまた、表1に
示す符号化を用いて、自身の固有のアドレス(例えば、
キャビネット0におけるSINC100、SINC番号
2)も報告する。これにより、USBホストドライバ2
24は、この特定のデバイスに適したキュー(例えば、
キュー256と、パイプ112および114)を初期化
することができる。
【0058】表1に示されるデバイスのアドレスは、デ
バイスの名称と同義であり固定されたものである。これ
に対して、デバイスタイプおよび番号のアドレスを固定
せず、動的に割り当てる方式を考えることもできる。諸
タイプのデバイスの組み合わせをより柔軟に行う必要が
ある場合に、このような方式の方が望ましいことがあ
る。もしそのようなシステムが設計されたとしても、他
のエンティティがそのデバイスをアドレス指定すること
ができるように、なお一つのデバイスごとに一つの「名
称」を持たせておくべきである。しかし、このような場
合は、任意のデバイスが名称に対応するアドレスを得ら
れるように、ディレクトリサービスを設けることが望ま
しい。ディレクトリサービスの概念は、ネットワーキン
グの分野における当業者には周知である。
【0059】この発明は例として次の実施形態を含む。
【0060】(1) ユニバーサルシリアルバス(US
B)(20)をピアツーピアネットワークとして用いる
方法であって、ルータ(218)を備えるホストプロセ
ッサ(200)をUSB(20)に接続するステップ
と、それぞれ互いに対して、かつ前記ホストプロセッサ
(200)に対してピアである複数のデバイス(60、
70、100)を前記USB(20)に接続するステッ
プと、前記複数のデバイス(60、70、100)また
は前記ホストプロセッサ(200)のうちの1つにおい
て、メッセージ(360)を形成するステップと、前記
メッセージ(360)の前にヘッダ(355)を付加す
るステップと、前記ルータ(218)および前記USB
(20)を介して、前記メッセージ(360)を前記デ
バイス(60、70、100)のうちの1つから他の任
意のデバイスに、または前記ホストプロセッサ(20
0)に直接伝送するステップと、を含む、方法。
【0061】(2) 前記ヘッダ(355)は、前記デ
バイス(60、70、100)のうちの一つを識別する
複数のフィールドをさらに含む、上記(1)記載の方
法。
【0062】(3) 前記デバイス(60、70、10
0)はそれぞれ、前記複数のフィールドを認識するよう
構成されたロジック(150)をさらに備える、上記
(1)記載の方法。
【0063】(4) 前記ホストプロセッサ(200)
は、前記ルータ(218)に関連する第1のデバイスド
ライバ(251)をさらに備え、前記デバイス(60、
70、100)はそれぞれ、前記ルータ(218)にお
ける前記第1のデバイスドライバ(251)に対応する
第2のデバイスドライバ(102)をさらに備え、前記
第1のデバイスドライバ(251)および第2のデバイ
スドライバ(102)は、前記ルータ(218)と前記
デバイス(60、70、100)それぞれの間に論理接
続(321)を確立するよう構成された、上記(1)記
載の方法。
【0064】(5) 前記論理接続(321)は、割り
込みパイプ(112)と、バルクインパイプ(114)
と、バルクアウトパイプ(111)と、を含む、上記
(4)記載の方法。
【0065】(6) ユニバーサルシリアルバス(US
B)(20)をピアツーピアネットワークを用いるシス
テムであって、ホストメッセージハンドラ(250)を
含み、メッセージ(360)の前にヘッダ(355)を
付加するよう構成され、該ホストメッセージハンドラ
(250)は、該ヘッダ(355)を認識するよう構成
された、ホストプロセッサ(200)と、前記ホストプ
ロセッサ(200)に連係され、それぞれデバイスメッ
セージハンドラ(150)を含み、前記メッセージ(3
60)の前に前記ヘッダ(355)を付加するよう構成
された複数のデバイス(60、70、100)であっ
て、前記デバイスメッセージハンドラ(150)もま
た、前記ヘッダ(355)を認識するよう構成された、
複数のデバイス(60、70、100)と、前記ホスト
プロッサ(200)に連係された前記複数のデバイス
(60、70、100)のうちの任意のデバイスと前記
ホストプロセッサ(200)間で、ユニバーサルシリア
ルバス(USB)(20)を介して前記メッセージ(3
60)を直接ルーティングするよう構成された、前記ホ
ストプロセッサ(200)に連係されたルータ(21
8)と、を備える、システム。
【0066】(7) 前記ヘッダ(355)は、前記デ
バイス(60、70、100)のうちの一つを識別する
複数のフィールドをさらに含む、上記(6)記載のシス
テム。
【0067】(8) 前記ホストプロセッサ(200)
は、前記ルータ(218)に関連する第1のデバイスド
ライバ(251)をさらに備え、前記デバイス(60、
70、100)はそれぞれ、前記ルータ(218)にお
ける前記第1のデバイスドライバ(251)に対応する
第2のデバイスドライバ(102)をさらに備え、前記
第1のデバイスドライバ(251)および第2のデバイ
スドライバ(102)は、前記ルータ(218)と前記
デバイス(60、70、100)それぞれの間に論理接
続(321)を確立するよう構成された、上記(6)記
載のシステム。
【0068】(9) 前記論理接続(321)は、割り
込みパイプ(112)と、バルクインパイプ(114)
と、バルクアウトパイプ(111)と、を含む、上記
(8)記載のシステム。
【0069】(10) 前記デバイスメッセージハンド
ラ(150)は、前記メッセージ(360)を前記バル
クアウトパイプ(111)から受信するよう構成された
入力メッセージハンドラ(151)と、前記ヘッダ(3
55)を前記割り込みパイプ(112)に挿入するとと
もに、前記メッセージ(360)に関連するデータを前
記バルクインパイプ(114)に挿入するよう構成され
た出力メッセージハンドラ(152)と、をさらに備え
る、上記(9)記載のシステム。
【0070】本発明の原理から本質的に逸脱せずに、本
発明の好ましい実施形態に、多くの変更および変形を行
いうることが、当業者には理解されよう。例えば、多数
のデバイスがUSBを介して通信する任意のシステムに
おいて、本発明を用いることができる。このような変更
および変形はすべて、特許請求の範囲に規定される本発
明の範囲に包含される。
【図面の簡単な説明】
【図1】 本発明の概念を示すために用いられる、サー
バシステムを示すブロック図。
【図2】 図1のユーティリティサブシステムを示すブ
ロック図。
【図3】 本発明の一態様によるプロトコルスタック3
00を示す概略図。
【図4】 本発明によるメッセージフォーマットを示す
概略図。
【図5】 図2のサービスプロセッサと、システム抽象
レイヤインタフェースネットワークコントローラ(SI
NC)デバイス間の接続性を示すブロック図。
【図6】 図5においてキューとして実施される、図3
のパイプを示す略図。
【図7】 図4のメッセージフォーマットの通信メッセ
ージの一例を示す概略図。
【図8】 図7の通信プロトコルフラグバイトを示す概
略図。
【符号の説明】
20 ユニバーサルシリアルバス 60、70、100 デバイス 102 第2のデバイスドライバ 111 バルクアウトパイプ 112 割り込みパイプ 114 バルクインパイプ 150 ロジック、デバイスメッセージハンドラ 151 入力メッセージハンドラ 152 出力メッセージハンドラ 200 ホストプロセッサ 218 ルータ 250 ホストメッセージハンドラ 251 第1のデバイスドライバ 321 論理接続 355 ヘッダ 360 メッセージ
フロントページの続き (72)発明者 ロナルド・イー・ギルバート・ジュニア アメリカ合衆国75093テキサス州プラノ、 ミスティ・ヘヴン・レーン 2017 (72)発明者 クリスチーヌ・コーバー アメリカ合衆国75287テキサス州ダラス、 ホライゾン・エヌ・パークウェイ 4341、 ナンバー 131 Fターム(参考) 5B014 GC01 5K032 AA09 BA04 CC01 CD01 DA01 DB26

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 ユニバーサルシリアルバス(USB)
    (20)をピアツーピアネットワークとして用いる方法
    であって、 ルータ(218)を備えるホストプロセッサ(200)
    をUSB(20)に接続するステップと、 それぞれ互いに対して、かつ前記ホストプロセッサ(2
    00)に対してピアである複数のデバイス(60、7
    0、100)を前記USB(20)に接続するステップ
    と、 前記複数のデバイス(60、70、100)または前記
    ホストプロセッサ(200)のうちの1つにおいて、メ
    ッセージ(360)を形成するステップと、 前記メッセージ(360)の前にヘッダ(355)を付
    加するステップと、 前記ルータ(218)および前記USB(20)を介し
    て、前記メッセージ(360)を前記デバイス(60、
    70、100)のうちの1つから他の任意のデバイス
    に、または前記ホストプロセッサ(200)に直接伝送
    するステップと、を含む、方法。
JP2001108265A 2000-04-13 2001-04-06 ユニバーサルシリアルバス(usb)をピアツーピアネットワークとして用いる方法 Expired - Fee Related JP4422359B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/549124 2000-04-13
US09/549,124 US6839771B1 (en) 2000-04-13 2000-04-13 Method and system for using a universal serial bus (USB) as a peer-to-peer network

Publications (3)

Publication Number Publication Date
JP2001358733A true JP2001358733A (ja) 2001-12-26
JP2001358733A5 JP2001358733A5 (ja) 2006-11-30
JP4422359B2 JP4422359B2 (ja) 2010-02-24

Family

ID=24191766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001108265A Expired - Fee Related JP4422359B2 (ja) 2000-04-13 2001-04-06 ユニバーサルシリアルバス(usb)をピアツーピアネットワークとして用いる方法

Country Status (3)

Country Link
US (1) US6839771B1 (ja)
JP (1) JP4422359B2 (ja)
TW (1) TW515166B (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005520258A (ja) * 2002-04-02 2005-07-07 インターナショナル・ビジネス・マシーンズ・コーポレーション データ記憶装置のインタフェースを変換するアダプタ、変換済みデータ記憶装置、および変換済みデータ記憶装置の操作方法
EP1650913A1 (en) * 2004-10-20 2006-04-26 Samsung Electronics Co., Ltd. Method and apparatus for transmitting and receiving data via wireless universal serial bus (USB)
US7359996B2 (en) 2002-04-19 2008-04-15 Seiko Epson Corporation Data transfer control device, electronic equipment, and data transfer control method
JP2011508563A (ja) * 2007-12-26 2011-03-10 インテル コーポレイション 統一コネクタアーキテクチャ
US8700821B2 (en) 2008-08-22 2014-04-15 Intel Corporation Unified multi-transport medium connector architecture
US8775713B2 (en) 2011-12-27 2014-07-08 Intel Corporation Multi-protocol tunneling over an I/O interconnect
US8782321B2 (en) 2012-02-08 2014-07-15 Intel Corporation PCI express tunneling over a multi-protocol I/O interconnect
US8856420B2 (en) 2011-12-27 2014-10-07 Intel Corporation Multi-protocol I/O interconnect flow control
US8953644B2 (en) 2011-12-27 2015-02-10 Intel Corporation Multi-protocol I/O interconnect time synchronization
US9252970B2 (en) 2011-12-27 2016-02-02 Intel Corporation Multi-protocol I/O interconnect architecture
US9565132B2 (en) 2011-12-27 2017-02-07 Intel Corporation Multi-protocol I/O interconnect including a switching fabric
US9600060B2 (en) 2012-03-29 2017-03-21 Intel Corporation Link power management in an I/O interconnect
US9697159B2 (en) 2011-12-27 2017-07-04 Intel Corporation Multi-protocol I/O interconnect time synchronization

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11467856B2 (en) 2002-12-12 2022-10-11 Flexiworld Technologies, Inc. Portable USB device for internet access service
US9948644B2 (en) 2001-03-26 2018-04-17 Salesforce.Com, Inc. Routing messages between applications
US7689711B2 (en) 2001-03-26 2010-03-30 Salesforce.Com, Inc. System and method for routing messages between applications
US7788399B2 (en) * 2001-03-26 2010-08-31 Salesforce.Com, Inc. System and method for mapping of services
GB2374259B (en) * 2001-04-06 2004-04-21 Nokia Corp Universal serial bus circuit
US10360685B2 (en) * 2007-05-24 2019-07-23 Pillar Vision Corporation Stereoscopic image capture with performance outcome prediction in sporting environments
US8409024B2 (en) 2001-09-12 2013-04-02 Pillar Vision, Inc. Trajectory detection and feedback system for golf
US8617008B2 (en) 2001-09-12 2013-12-31 Pillar Vision, Inc. Training devices for trajectory-based sports
US7094164B2 (en) * 2001-09-12 2006-08-22 Pillar Vision Corporation Trajectory detection and feedback system
US7376713B2 (en) * 2002-06-27 2008-05-20 International Business Machines Corporation Apparatus, system and method of distributing block data on a private network without using TCP/IP
US7908401B2 (en) 2002-12-12 2011-03-15 Flexiworld Technology, Inc. Method and device for wireless communication between computing devices
US7441708B2 (en) * 2003-03-28 2008-10-28 Peter Arthur Schade Memory card socket using a dual-ported USB interface
US7216195B1 (en) 2003-03-29 2007-05-08 Emc Corporation Architecture for managing disk drives
WO2004093149A2 (en) * 2003-04-11 2004-10-28 Flexiworld Technologies, Inc. Autorun for integrated circuit memory component
US7284081B2 (en) * 2004-01-27 2007-10-16 Atmel Corporation Method and system for routing data between USB ports
JP2006072432A (ja) * 2004-08-31 2006-03-16 Onkyo Corp ピアツーピア型コンテンツ配信システム
US20080071950A1 (en) * 2006-09-19 2008-03-20 Ithaca Technologies, Llc Thin client implementation based on redirection of virtual i/o devices
US20080200287A1 (en) * 2007-01-10 2008-08-21 Pillar Vision Corporation Trajectory detection and feedfack system for tennis
US8408982B2 (en) 2007-05-24 2013-04-02 Pillar Vision, Inc. Method and apparatus for video game simulations using motion capture
US7913030B2 (en) * 2007-12-28 2011-03-22 Sandisk Il Ltd. Storage device with transaction logging capability
US7979662B2 (en) * 2007-12-28 2011-07-12 Sandisk Il Ltd. Storage device with transaction indexing capability
US8566934B2 (en) 2011-01-21 2013-10-22 Gigavation, Inc. Apparatus and method for enhancing security of data on a host computing device and a peripheral device
KR102039113B1 (ko) 2011-08-10 2019-10-31 기타 스리바스타바 호스트 컴퓨팅 디바이스와 주변기기의 데이터의 보안을 강화하기 위한 장치 및 방법
CN103902461A (zh) * 2012-12-27 2014-07-02 中兴通讯股份有限公司 不同Nand闪存兼容方法及装置
US8948457B2 (en) 2013-04-03 2015-02-03 Pillar Vision, Inc. True space tracking of axisymmetric object flight using diameter measurement

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5913045A (en) * 1995-12-20 1999-06-15 Intel Corporation Programmable PCI interrupt routing mechanism
US5854910A (en) * 1996-10-21 1998-12-29 Advanced Micro Devices, Inc. Method for accessing control and status registers across a peer-peer bus
US6219736B1 (en) * 1997-04-24 2001-04-17 Edwin E. Klingman Universal serial bus (USB) RAM architecture for use with microcomputers via an interface optimized for integrated services device network (ISDN)
US5958027A (en) * 1997-08-05 1999-09-28 Advanced Micro Devices, Inc. Method and system for optimizing the flow of isochronous data and clock rate information
US6061794A (en) * 1997-09-30 2000-05-09 Compaq Computer Corp. System and method for performing secure device communications in a peer-to-peer bus architecture
US6233640B1 (en) * 1999-03-19 2001-05-15 In-System Design, Inc. Universal serial bus peripheral bridge with sequencer
JP3711432B2 (ja) * 1998-04-15 2005-11-02 セイコーエプソン株式会社 周辺処理装置およびその制御方法
US6499079B1 (en) * 1998-11-23 2002-12-24 Advanced Micro Devices, Inc. Subordinate bridge structure for a point-to-point computer interconnection bus
US6237057B1 (en) * 1998-12-16 2001-05-22 International Business Machines Corporation Method and system for PCI slot expansion via electrical isolation
US6529963B1 (en) * 1998-12-29 2003-03-04 Lsi Logic Corporation Methods and apparatus for interconnecting independent fibre channel fabrics
US6725281B1 (en) * 1999-06-11 2004-04-20 Microsoft Corporation Synchronization of controlled device state using state table and eventing in data-driven remote device control model
US6594771B1 (en) * 2000-04-13 2003-07-15 Hewlett-Packard Development Company, L.P. Method and apparatus for managing power in an electronic device
US6618788B1 (en) * 2000-09-27 2003-09-09 Cypress Semiconductor, Inc. ATA device control via a packet-based interface
US6732218B2 (en) * 2002-07-26 2004-05-04 Motorola, Inc. Dual-role compatible USB hub device and method

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005520258A (ja) * 2002-04-02 2005-07-07 インターナショナル・ビジネス・マシーンズ・コーポレーション データ記憶装置のインタフェースを変換するアダプタ、変換済みデータ記憶装置、および変換済みデータ記憶装置の操作方法
US7359996B2 (en) 2002-04-19 2008-04-15 Seiko Epson Corporation Data transfer control device, electronic equipment, and data transfer control method
EP1650913A1 (en) * 2004-10-20 2006-04-26 Samsung Electronics Co., Ltd. Method and apparatus for transmitting and receiving data via wireless universal serial bus (USB)
JP2011508563A (ja) * 2007-12-26 2011-03-10 インテル コーポレイション 統一コネクタアーキテクチャ
US8407367B2 (en) 2007-12-26 2013-03-26 Intel Corporation Unified connector architecture
US9047222B2 (en) 2008-08-22 2015-06-02 Intel Corporation Unified multi-transport medium connector architecture
US8700821B2 (en) 2008-08-22 2014-04-15 Intel Corporation Unified multi-transport medium connector architecture
US9164535B2 (en) 2011-12-27 2015-10-20 Intel Corporation Multi-protocol I/O interconnect time synchronization
US9565132B2 (en) 2011-12-27 2017-02-07 Intel Corporation Multi-protocol I/O interconnect including a switching fabric
US8953644B2 (en) 2011-12-27 2015-02-10 Intel Corporation Multi-protocol I/O interconnect time synchronization
US11044196B2 (en) 2011-12-27 2021-06-22 Intel Corporation Multi-protocol I/O interconnect including a switching fabric
US9141132B2 (en) 2011-12-27 2015-09-22 Intel Corporation Multi-protocol I/O interconnect time synchronization
US8775713B2 (en) 2011-12-27 2014-07-08 Intel Corporation Multi-protocol tunneling over an I/O interconnect
US9252970B2 (en) 2011-12-27 2016-02-02 Intel Corporation Multi-protocol I/O interconnect architecture
US10110480B2 (en) 2011-12-27 2018-10-23 Intel Corporation Multi-protocol I/O interconnect including a switching fabric
US9430435B2 (en) 2011-12-27 2016-08-30 Intel Corporation Multi-protocol tunneling over an I/O interconnect
US8856420B2 (en) 2011-12-27 2014-10-07 Intel Corporation Multi-protocol I/O interconnect flow control
US9697159B2 (en) 2011-12-27 2017-07-04 Intel Corporation Multi-protocol I/O interconnect time synchronization
US9934181B2 (en) 2012-02-08 2018-04-03 Intel Corporation PCI express tunneling over a multi-protocol I/O interconnect
US9396151B2 (en) 2012-02-08 2016-07-19 Intel Corporation PCI express tunneling over a multi-protocol I/O interconnect
US10387348B2 (en) 2012-02-08 2019-08-20 Intel Corporation PCI express tunneling over a multi-protocol I/O interconnect
US10884965B2 (en) 2012-02-08 2021-01-05 Intel Corporation PCI express tunneling over a multi-protocol I/O interconnect
US8782321B2 (en) 2012-02-08 2014-07-15 Intel Corporation PCI express tunneling over a multi-protocol I/O interconnect
US9600060B2 (en) 2012-03-29 2017-03-21 Intel Corporation Link power management in an I/O interconnect

Also Published As

Publication number Publication date
TW515166B (en) 2002-12-21
JP4422359B2 (ja) 2010-02-24
US6839771B1 (en) 2005-01-04

Similar Documents

Publication Publication Date Title
JP2001358733A (ja) ユニバーサルシリアルバス(usb)をピアツーピアネットワークとして用いる方法
EP2047370B1 (en) Method and apparatus for distributing usb hub functions across a network
US7949816B2 (en) Method and apparatus for enhancing universal serial bus applications
US6704819B1 (en) Method and apparatus for device sharing and arbitration
JP3629513B2 (ja) データ処理システム及び方法
US8161220B2 (en) Method and apparatus for enhancing universal serial bus applications
JPH07105110A (ja) 通信モード選択方法
US20030070028A1 (en) Method and apparatus for utilizing extended AV/C command frames including status inquiry, notify inquiry and control inquiry command types
EP1516261B1 (en) Bus system, station for use in a bus system, and bus interface
US6742075B1 (en) Arrangement for instigating work in a channel adapter based on received address information and stored context information
WO2024045742A1 (zh) 一种计算设备
US7058747B2 (en) Bus system and bus interface for connection to a bus
US7043589B2 (en) Bus system and bus interface
US6366590B2 (en) Unified interface between an IEEE 1394-1995 serial bus transaction layer and corresponding applications
JP3006187B2 (ja) 分散処理システム
KR20050057635A (ko) Dma를 지원하는지를 나타내는 정보를 전송하는 수단을구비하는 디바이스
JP2003023471A (ja) パケット送受信処理回路
JP2000209252A (ja) 通信処理装置、その上位装置、通信処理システム、通信処理システムネットワ―ク、通信処理方法
JPH07162483A (ja) 通信ネットワ−クシステム
JPH01236349A (ja) シリアルインタフェースの初期設定方式

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061013

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061013

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090717

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090717

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091117

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091204

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121211

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121211

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121211

Year of fee payment: 3

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121211

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121211

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121211

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131211

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

LAPS Cancellation because of no payment of annual fees
R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350