首页 / 专利库 / 计算机网络 / 对等网络 / Method for using universal serial but (usb) as peer-to- peer network

Method for using universal serial but (usb) as peer-to- peer network

阅读:283发布:2022-07-07

专利汇可以提供Method for using universal serial but (usb) as peer-to- peer network专利检索,专利查询,专利分析的服务。并且PROBLEM TO BE SOLVED: To provide a method and a system for peer-to-peer communication between devices connected to a USB. SOLUTION: A host computer attaches a header in front of a message and a host message handler recognizes the header. A plurality of devices respectively provided with a device message handler respectively attaches a header in front of a message and the device message handler recognizes the header. This system is also provided with a router which is linked with the host processor and constructed so as to directly route a message between the host computer and an optional device among the plurality of the devices linked with the host processor through a USB.,下面是Method for using universal serial but (usb) as peer-to- peer network专利的具体信息内容。

【特許請求の範囲】
  • 【請求項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)に直接伝送するステップと、を含む、方法。
  • 说明书全文

    【発明の詳細な説明】

    【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

    高效检索全球专利

    专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

    我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

    申请试用

    分析报告

    专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

    申请试用

    QQ群二维码
    意见反馈