(57)【要約】【課題】ＩＯ間アクセスが可能で、エンドポイント（ＥＰ）のリソース管理ができるＰＣＩｅ（ＰＣＩ  Ｅｘｐｒｅｓｓ）システムにおいて、複数の上位装置からの要求を到着順に処理するのではなく、優先度制御できるようにする。【解決手段】ＰＣＩｅシステムにおけるスイッチは、上位装置により利用されるリソースを所有するエンドポイントのリソース管理を行う。また、当該スイッチは、上位装置及びエンドポイントの各々とデータを送受信する。また、当該スイッチは、複数の送信元からデータを受信した場合、送信元からのデータを分配して送信元毎のＦＩＦＯに格納し、優先度が高く設定されたＦＩＦＯのデータを優先的に転送先へ転送する。【選択図】図１
2013097718.tif 000002
【特許請求の範囲】
【請求項１】
上位装置と、
前記上位装置により利用されるリソースを所有するエンドポイントと、
前記エンドポイントのリソース管理を行い、前記上位装置及び前記エンドポイントの各々とデータを送受信し、複数の送信元からデータを受信した場合、送信元からのデータを分配して送信元毎のＦＩＦＯに格納し、優先度が高く設定されたＦＩＦＯのデータを優先的に転送先へ転送するスイッチと
を含む
優先度制御システム。
【請求項２】
請求項１に記載の優先度制御システムであって、
前記スイッチは、前記上位装置が実装された場合に、転送先として前記エンドポイントが所有するリソースを設定し、前記上位装置と前記エンドポイントとの間のデータ転送を行う際に、前記エンドポイントを有効利用したデータ転送を実施する
優先度制御システム。
【請求項３】
請求項１又は２に記載の優先度制御システムであって、
前記スイッチは、エンドポイント間通信の際、送信元のエンドポイントからのデータを分配してエンドポイント毎のＦＩＦＯに格納し、優先度が高く設定されたＦＩＦＯのデータを優先的に転送先のエンドポイントへ転送する
優先度制御システム。
【請求項４】
上位装置により利用されるリソースを所有するエンドポイントのリソース管理を行う手段と、
前記上位装置及び前記エンドポイントの各々とデータを送受信する手段と、
複数の送信元からデータを受信した場合、送信元からのデータを分配して送信元毎のＦＩＦＯに格納し、優先度が高く設定されたＦＩＦＯのデータを優先的に転送先へ転送する手段と
を具備する
スイッチ。
【請求項５】
請求項４に記載のスイッチであって、
前記上位装置が実装された場合に、転送先として前記エンドポイントが所有するリソースを設定し、前記上位装置と前記エンドポイントとの間のデータ転送を行う際に、前記エンドポイントを有効利用したデータ転送を実施する手段
を更に具備する
スイッチ。
【請求項６】
請求項４又は５に記載のスイッチであって、
エンドポイント間通信の際、送信元のエンドポイントからのデータを分配してエンドポイント毎のＦＩＦＯに格納し、優先度が高く設定されたＦＩＦＯのデータを優先的に転送先のエンドポイントへ転送する手段
を更に具備する
スイッチ。
【請求項７】
スイッチにより実施される優先度制御方法であって、
上位装置により利用されるリソースを所有するエンドポイントのリソース管理を行うことと、
前記上位装置及び前記エンドポイントの各々とデータを送受信することと、
複数の送信元からデータを受信した場合、送信元からのデータを分配して送信元毎のＦＩＦＯに格納し、優先度が高く設定されたＦＩＦＯのデータを優先的に転送先へ転送することと
を含む
優先度制御方法。
【請求項８】
上位装置により利用されるリソースを所有するエンドポイントのリソース管理を行うステップと、
前記上位装置及び前記エンドポイントの各々とデータを送受信するステップと、
複数の送信元からデータを受信した場合、送信元からのデータを分配して送信元毎のＦＩＦＯに格納し、優先度が高く設定されたＦＩＦＯのデータを優先的に転送先へ転送するステップと
をスイッチに実行させるための
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、優先度制御システムに関し、特にＰＣＩｅ（ＰＣＩ  Ｅｘｐｒｅｓｓ）システムにおける優先度制御システムに関する。
【背景技術】
【０００２】
ＰＣＩｅ（ＰＣＩ  Ｅｘｐｒｅｓｓ）システムでは、ルートに相当する部分（ＣＰＵ等）を「ルートコンプレックス」、ノードに相当する部分（ＩＯデバイス等）を「エンドポイント」と呼ぶ。
【０００３】
図１を参照して、従来のＰＣＩｅシステムについて説明する。
【０００４】
図１に示すＰＣＩｅスイッチは、ルートコンプレックス（ＲＣ：Ｒｏｏｔ  Ｃｏｍｐｌｅｘ）からのデータ（送信パケット）をエンドポイント（ＥＰ：Ｅｎｄ  Ｐｏｉｎｔ）に転送する機能のみ持つ。
【０００５】
しかしながら、従来のＰＣＩｅシステムにおいては、次のような課題がある。
【０００６】
第１の課題は、従来のＰＣＩｅシステムでは、エンドポイント（ＥＰ）のリソース管理をしているデバイスが存在しないため、余っているリソースの利用ができないということである。
【０００７】
第２の課題は、従来のＰＣＩｅシステムでは、複数の機能を一つのエンドポイント（ＥＰ）に割り当てることができないということである。
【０００８】
上記の課題を克服するために、エンドポイント（ＥＰ）のリソース管理をする機能を追加し、エンドポイント（ＥＰ）間通信を可能とするＰＣＩｅスイッチが考えられている。
【０００９】
しかし、第３の課題は、上記のようなＰＣＩｅスイッチは、複数の上位装置からのデータ転送を、順番（早い者勝ち）で転送する機能しかなく、優先度を付与／設定することができないことである。
【００１０】
関連する技術として、特許文献１（特開２０１０−２１８３５１号公報）にデータ転送システムが開示されている。このデータ転送システムは、マスターデバイスと当該マスターデバイスにデータを転送可能なターゲットデバイスとから構成されるデータ転送システムである。マスターデバイスは、ターゲットデバイスに、当該マスターデバイスが受信可能なデータ量を示す情報を送信後、データ転送リクエストを送信する送信手段とを具備する。ターゲットデバイスは、マスターデバイスの送信手段から送信されたデータ転送リクエストに基づいて、データ転送レートを計測する計測手段と、計測手段によって計測されたデータ転送レートの値が所定値以上である場合、データ転送リクエストの量を制限する制限リクエストをマスターデバイスに送信する送信手段とを具備する。
【００１１】
また、特許文献２（特開２０１１−０５９９７９号公報）にデータ転送装置が開示されている。このデータ転送装置は、リードマスタと、ライトマスタと、調停手段と、バーストライト転送制御手段とを備えている。リードマスタは、リード要求を発行する。ライトマスタは、ライト要求を発行する。調停手段は、ライトマスタから発行されたライト要求とリードマスタから発行されたリード要求を調停してスプリットトランザクションの伝送路を経由させて該ライト要求と該リード要求を対向デバイスに転送するとともに、ライト要求に係るライトデータをバーストライト転送する。バーストライト転送制御手段は、バーストライト転送中に、該バーストライト転送のライト要求よりも優先度の高いリード要求がリードマスタから発行されると、該バーストライト転送を分割して中断させ、該リード要求を転送させた後、中断した該バーストライト転送の後続データのバーストライト転送を再開させる。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０１０−２１８３５１号公報
【特許文献２】特開２０１１−０５９９７９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
従来技術では、エンドポイント（ＥＰ）間通信ができ、リソースの柔軟な割付ができても、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）制御ができていない。各デバイスではＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ，Ｆｉｒｓｔ−Ｏｕｔ：先入れ先出し）やディスクリプタといった既存の技術を使うことによって順序整理ができるが、リソースの割付が複数の上位装置にまたがる場合、複数の上位装置に対してＲＴＩ（Ｒｏｕｔｉｎｇ  ｔｏ  ｉｎｓｉｄｅ）／ＲＴＯ（Ｒｏｕｔｉｎｇ  ｔｏ  ｏｕｔｓｉｄｅ）の送信部、受信部が一つしかないため、処理の重い（送信データの大きい）要求待ちが発生してしまう。
【００１４】
本発明の目的は、エンドポイント（ＥＰ）のリソース管理をする機能を追加し、エンドポイント（ＥＰ）間通信を可能とするＰＣＩｅシステムにおいて、複数の上位装置からのデータ転送に優先度をつける優先度制御システムを提供することである。
【課題を解決するための手段】
【００１５】
本発明に係る優先度制御システムは、上位装置と、上位装置により利用されるリソースを所有するエンドポイントと、エンドポイントのリソース管理を行い、上位装置及びエンドポイントの各々とデータを送受信し、複数の送信元からデータを受信した場合、送信元からのデータを分配して送信元毎のＦＩＦＯに格納し、優先度が高く設定されたＦＩＦＯのデータを優先的に転送先へ転送するスイッチとを含む。
【００１６】
本発明に係るスイッチは、上位装置により利用されるリソースを所有するエンドポイントのリソース管理を行う手段と、上位装置及びエンドポイントの各々とデータを送受信する手段と、複数の送信元からデータを受信した場合、送信元からのデータを分配して送信元毎のＦＩＦＯに格納し、優先度が高く設定されたＦＩＦＯのデータを優先的に転送先へ転送する手段とを具備する。
【００１７】
本発明に係る優先度制御方法は、スイッチにより実施される優先度制御方法であって、上位装置により利用されるリソースを所有するエンドポイントのリソース管理を行うことと、上位装置及びエンドポイントの各々とデータを送受信することと、複数の送信元からデータを受信した場合、送信元からのデータを分配して送信元毎のＦＩＦＯに格納し、優先度が高く設定されたＦＩＦＯのデータを優先的に転送先へ転送することとを含む。
【００１８】
本発明に係るプログラムは、上位装置により利用されるリソースを所有するエンドポイントのリソース管理を行うステップと、上位装置及びエンドポイントの各々とデータを送受信するステップと、複数の送信元からデータを受信した場合、送信元からのデータを分配して送信元毎のＦＩＦＯに格納し、優先度が高く設定されたＦＩＦＯのデータを優先的に転送先へ転送するステップとをスイッチに実行させるためのプログラムである。なお、本発明に係るプログラムは、記憶装置や記憶媒体に格納することが可能である。
【発明の効果】
【００１９】
ＩＯ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ：入出力）間アクセスが可能で、エンドポイント（ＥＰ）のリソース管理ができるＰＣＩｅシステムにおいて、複数の上位装置からの要求を到着順に処理するのではなく、優先度制御できるようにしたことで、システムとしての拡張性や処理能力の向上が期待できる。
【図面の簡単な説明】
【００２０】
【図１】従来のＰＣＩｅシステムについて説明するための図である。
【図２】本発明の第１実施形態に係る優先度制御システムの構成例について説明するための図である。
【図３】スイッチ（ｅ２ｅＳＷ３）の構成例について説明するための図である。
【図４】受信部の構成例について説明するための図である。
【図５】振り分けテーブルの構成例について説明するための図である。
【図６】送信許可テーブルの構成例について説明するための図である。
【図７】優先度テーブルの構成例について説明するための図である。
【図８】リソース管理テーブルの構成例について説明するための図である。
【図９】分岐テーブルの構成例について説明するための図である。
【図１０】エンドポイント（ＥＰ）の構成例について説明するための図である。
【図１１】優先度制御情報設定の動作について説明するための図である。
【図１２】データ転送の動作について説明するための図である。
【図１３】本発明の第２実施形態に係る優先度制御システムの構成例について説明するための図である。
【発明を実施するための形態】
【００２１】
＜第１実施形態＞
以下に、本発明の第１実施形態について添付図面を参照して説明する。
【００２２】
［優先度制御システムの構成］
図２を参照して、本発明に係る優先度制御システムの構成例について説明する。
【００２３】
本発明に係る優先度制御システムは、エンドポイント（ＥＰ：Ｅｎｄ  Ｐｏｉｎｔ）のリソース管理をする機能を追加し、エンドポイント（ＥＰ）間通信を可能とする、エンドポイント（ＥＰ）リソース共有マルチホストＰＣＩｅ（ＰＣＩ  Ｅｘｐｒｅｓｓ）システムにおける優先度制御システムである。
【００２４】
本発明に係る優先度制御システムは、スイッチ（ｅ２ｅＳＷ３）１０と、エンドポイント（ＥＰ：Ｅｎｄ  Ｐｏｉｎｔ）２０と、プロセッサ（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０と、ルートコンプレックス（ＲＣ：Ｒｏｏｔ  Ｃｏｍｐｌｅｘ）４０と、メモリ（Ｍｅｍ：Ｍｅｍｏｒｙ）５０を含む。
【００２５】
スイッチ（ｅ２ｅＳＷ３）１０は、上位装置からのデータ（送信パケット）の優先度制御を行う。ここでは、スイッチ（ｅ２ｅＳＷ３）１０は、ルートコンプレックス（ＲＣ）４０を介して、上位装置であるプロセッサ（ＣＰＵ）３０からのデータを受信する。また、スイッチ（ｅ２ｅＳＷ３）１０は、当該データの優先度制御を行い、当該データをエンドポイント（ＥＰ）２０に転送する。
【００２６】
エンドポイント（ＥＰ）２０は、スイッチ（ｅ２ｅＳＷ３）１０との間でデータの送受信を行う。
【００２７】
プロセッサ（ＣＰＵ）３０は、ルートコンプレックス（ＲＣ）４０を介して、スイッチ（ｅ２ｅＳＷ３）１０又はメモリ（Ｍｅｍ）５０との間でデータの送受信を行う。ここでは、プロセッサ（ＣＰＵ）３０は、スイッチ（ｅ２ｅＳＷ３）１０の上位装置に該当する。なお、ＣＰＵは一例に過ぎない。実際には、マイクロプロセッサ（ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ）、マイクロコントローラ、或いは、専用の機能を有する半導体集積回路（ＩＣ：Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等でも良い。
【００２８】
ルートコンプレックス（ＲＣ）４０は、プロセッサ（ＣＰＵ）３０からのデータをスイッチ（ｅ２ｅＳＷ３）１０又はメモリ（Ｍｅｍ）５０に転送する。
【００２９】
メモリ（Ｍｅｍ）５０は、データを記憶／蓄積する。メモリ（Ｍｅｍ）５０の例として、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ等の半導体記憶装置、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の補助記憶装置、又は、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）等のリムーバブルディスクや、ＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）等の記憶媒体（メディア）等が考えられる。また、ＤＡＳ（Ｄｉｒｅｃｔ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）、ＦＣ−ＳＡＮ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  −  Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＮＡＳ（Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）、ＩＰ−ＳＡＮ（ＩＰ  −  Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）等を用いたストレージ装置でも良い。
【００３０】
なお、プロセッサ（ＣＰＵ）３０及びメモリ（Ｍｅｍ）５０は、一体化していても良い。例えば、近年では、マイコン等の１チップ化が進んでいる。従って、電子機器等に搭載される１チップマイコンが、プロセッサ（ＣＰＵ）３０及びメモリ（Ｍｅｍ）５０を備えている事例が考えられる。
【００３１】
また、スイッチ（ｅ２ｅＳＷ３）１０、エンドポイント（ＥＰ）２０、プロセッサ（ＣＰＵ）３０、ルートコンプレックス（ＲＣ）４０、及びメモリ（Ｍｅｍ）５０の各々は、複数でも良い。
【００３２】
［スイッチ（ｅ２ｅＳＷ３）の構成］
図３を参照して、スイッチ（ｅ２ｅＳＷ３）１０の構成例について説明する。
【００３３】
スイッチ（ｅ２ｅＳＷ３）１０は、分岐制御部（ＶＲＣ）１１と、ＲＴＩ（Ｒｏｕｔｉｎｇ  ｔｏ  ｉｎｓｉｄｅ）機能部１２と、ＲＴＯ（Ｒｏｕｔｉｎｇ  ｔｏ  ｏｕｔｓｉｄｅ）機能部１３と、ＰＣＩｅポート（ＰＣＩｅ  Ｐｏｒｔ）１４と、ＩＯポート（Ｐｏｒｔ）１５と、リソース管理テーブル１６を備える。
【００３４】
分岐制御部（ＶＲＣ）１１は、スイッチ（ｅ２ｅＳＷ３）１０内の各部と接続されており、データの分岐を総合的に制御するための機能部（機能ブロック）である。分岐制御部（ＶＲＣ）１１は、エンドポイント（ＥＰ）２０として実装されているデバイスと、ＢＤＦ番号やリソースの残数、リソースの使用率等を管理することによって、新しく上位装置が実装された場合に、転送先のデバイスが所有するリソースを設定する。これにより、分岐制御部（ＶＲＣ）１１は、上位装置であるプロセッサ（ＣＰＵ）３０とエンドポイント（ＥＰ）２０との間のデータ転送を行う際に、エンドポイント（ＥＰ）２０を有効利用（考慮）したデータ転送を実施することができる。
【００３５】
ＲＴＩ機能部１２は、送信部１２１と、受信部１２２と、分岐テーブル１２３と、メモリ１２４を備える。
【００３６】
送信部１２１は、受信部１２２が受け取ったエンドポイント（ＥＰ）２０からのデータをメモリ１２４から読み出し、エンドポイント（ＥＰ）２０毎のＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ，Ｆｉｒｓｔ−Ｏｕｔ）に格納し、優先度が高く設定されたＦＩＦＯのデータを優先的に上位装置であるプロセッサ（ＣＰＵ）３０に送信する。一般的に、ＦＩＦＯは、キュー（ｑｕｅｕｅ）と呼ばれるデータ構造により実現され、先に入力したデータが先に出力されるという特徴を持つ。
【００３７】
受信部１２２は、エンドポイント（ＥＰ）２０からデータを受信し、受信したデータを分配して、エンドポイント（ＥＰ）２０毎のＦＩＦＯに格納し、優先度が高く設定されたＦＩＦＯのデータを優先的に、ＲＴＩ機能部１２又はＲＴＯ機能部１３のメモリに送信して格納する。
【００３８】
分岐テーブル１２３は、上位装置であるプロセッサ（ＣＰＵ）３０から送信されてきたデータを、どのエンドポイント（ＥＰ）２０に送付するべきかを判定するために利用されるテーブルである。例えば、ＲＴＩ機能部１２の送信部１２１は、分岐テーブル１２３を参照することで、該当のデバイス（上位装置）に対して、データ転送を実施する。ＲＴＯ機能部１３の送信部１３１は、分岐テーブル１３３を参照することで、該当のデバイス（リソース）に対して、データ転送を実施する。
【００３９】
メモリ１２４は、受信部１２２が受信したデータを格納しておく記憶装置／記憶領域であり、送信部１２１が送信すべきデータを読み出す記憶装置／記憶領域である。
【００４０】
ＲＴＯ機能部１３は、送信部１３１と、受信部１３２と、分岐テーブル１３３と、メモリ１３４を備える。
【００４１】
送信部１３１は、受信部１２２が受け取った上位装置であるプロセッサ（ＣＰＵ）３０からのデータをメモリ１３４から読み出し、プロセッサ（ＣＰＵ）３０毎のＦＩＦＯに格納し、優先度が高く設定されたＦＩＦＯのデータを優先的にエンドポイント（ＥＰ）２０に送信する。
【００４２】
受信部１３２は、上位装置であるプロセッサ（ＣＰＵ）３０からデータを受信し、受信したデータを分配して、プロセッサ（ＣＰＵ）３０毎のＦＩＦＯに格納し、優先度が高く設定されたＦＩＦＯのデータを優先的にメモリ１３４に送信して格納する。
【００４３】
分岐テーブル１３３は、エンドポイント（ＥＰ）２０から送信されてきたデータを、どのプロセッサ（ＣＰＵ）３０に送付するべきかを判定するのに利用されるテーブルである。
【００４４】
メモリ１３４は、受信部１３２が受信したデータを格納しておく記憶装置／記憶領域であり、送信部１３１が送信すべきデータを読み出す記憶装置／記憶領域である。
【００４５】
このように、ＲＴＩ機能部１２とＲＴＯ機能部１３は、用途及びデータの送信元／転送先に違いはあるが、基本的に同様の構成である。
【００４６】
ＰＣＩｅポート（ＰＣＩｅ  Ｐｏｒｔ）１４は、ＰＣＩｅ（ＰＣＩ  Ｅｘｐｒｅｓｓ）規格で、ルートコンプレックス（ＲＣ）４０に接続するためのポートである。
【００４７】
ＩＯポート（Ｐｏｒｔ）１５は、エンドポイント（ＥＰ）２０に接続するためのポートである。
【００４８】
リソース管理テーブル１６は、エンドポイント（ＥＰ）２０が所有するリソースを管理するためのテーブルである。
【００４９】
［受信部の構成］
図４を参照して、受信部１２２の構成例について説明する。
【００５０】
受信部１２２は、ＦＩＦＯ振り分け部１２２１と、ＦＩＦＯ部１２２２と、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）制御部１２２３と、メモリ送信部１２２４と、振り分けテーブル１２２５と、送信許可テーブル１２２６と、優先度テーブル１２２７を備える。
【００５１】
ＦＩＦＯ振り分け部１２２１は、分岐制御部（ＶＲＣ）１１からの指示に従い、ＦＩＦＯ部１２２２のどの番地（アドレス）にデータを書き込むかを制御する機能部であり、入ってくるデータを逐次転送する。また、ＦＩＦＯ振り分け部１２２１は、振り分けテーブル１２２５を基に、ＦＩＦＯ部１２２２へのデータ書き込みを実行する。
【００５２】
ＦＩＦＯ部１２２２は、所定の容量を持ったメモリ領域（レジスタ）であり、ＦＩＦＯ振り分け部１２２１からのデータをＦＩＦＯに格納する。ＦＩＦＯ部１２２２は、複数のＦＩＦＯを持つ。ＦＩＦＯ数は可変である。また、ＦＩＦＯ部１２２２は、送信許可テーブル１２２６を実装しており、送信許可テーブル１２２６を参照して、自分に送信許可権があるかどうかをチェック（確認）し、許可があれば指定サイズ分のデータをメモリ送信部１２２４へ転送する。
【００５３】
ＱｏＳ制御部１２２３は、ＦＩＦＯ部１２２２からメモリ送信部１２２４への転送指示を行う機能部であり、優先度テーブルの設定値に連続して動作する。また、ＱｏＳ制御部１２２３は、送信許可テーブル１２２６を高速に更新し続ける。例えば、ＱｏＳ制御部１２２３は、優先度テーブル１２２７を実装しており、優先度テーブル１２２７を参照して、ＦＩＦＯ部１２２２内のＦＩＦＯのうち、優先度の高いＦＩＦＯから使用するように、許可を与える割合を調整する。
【００５４】
メモリ送信部１２２４は、ＦＩＦＯ部１２２２から転送されてきたデータを逐次、メモリ１２４又はメモリ１３４へ転送する。
【００５５】
振り分けテーブル１２２５は、ＦＩＦＯ振り分け部１２２１が参照するテーブルであり、ＦＩＦＯ部１２２２の転送先番地情報として、次に書き込む番地を示すポインタや、各ＦＩＦＯの先頭と末尾を示す番地情報を保持する。
【００５６】
送信許可テーブル１２２６は、ＦＩＦＯ部１２２２が参照するテーブルであり、転送指示許可を示すビット（Ｂｉｔ）／フラグ（Ｆｌａｇ）や、送信サイズを示す情報を保持する。ここでは、分岐制御部（ＶＲＣ）１１は、上位装置であるプロセッサ（ＣＰＵ）３０からの指示に従い、コンフィグレーション（設定）時に、送信許可テーブル１２２６の更新を実行する。ＱｏＳ制御部１２２３は、転送指示許可を示すビット／フラグを更新する。例えば、転送指示許可を示すビット／フラグに、許可を示す「１」を上書き（Ｗｒｉｔｅ）する。ＦＩＦＯ部１２２２は、送信許可テーブル１２２６を参照して、データの転送可否を判断し、転送が許可されている場合、指示された送信サイズで転送する。送信サイズとしては、１度の転送許可で転送できるサイズを示している。ＦＩＦＯ部１２２２は、データの送信完了と同時に、転送指示許可を示すビット／フラグを更新する。例えば、転送指示許可を示すビット／フラグに、不許可を示す「０」を上書き（Ｗｒｉｔｅ）する。
【００５７】
優先度テーブル１２２７は、ＱｏＳ制御部１２２３が参照するテーブルであり、ＦＩＦＯ部１２２２内のＦＩＦＯの各々に対する優先度の順位付けや、割合を示す情報を保持する。ここでは、分岐制御部（ＶＲＣ）１１が、優先度テーブル１２２７を更新する。優先度の順位付けは、１から順（昇順）に割り当てられており、１が最高の優先度である。また、割合は、転送許可が与えられる割合（例えば１００回のうち何回か）を示す。
【００５８】
なお、図示しないが、受信部１３２の構成も、受信部１２２の構成と同様である。
【００５９】
［振り分けテーブルの構成］
図５を参照して、振り分けテーブル１２２５の構成例について説明する。
【００６０】
振り分けテーブル１２２５は、送信元上位装置と、書き込み先ＦＩＦＯ先頭アドレスと、書き込み先ＦＩＦＯ最終アドレスと、ポインタと、に関する情報を記憶するための領域（フィールド）を有する。
【００６１】
送信元上位装置は、データの送信元である上位装置の識別情報を示す。
【００６２】
書き込み先ＦＩＦＯ先頭アドレスは、書き込み先となるＦＩＦＯ部１２２２内のＦＩＦＯの先頭の番地を示す。
【００６３】
書き込み先ＦＩＦＯ最終アドレスは、書き込み先となるＦＩＦＯ部１２２２内のＦＩＦＯの末尾の番地を示す。
【００６４】
ポインタは、ＦＩＦＯ部１２２２内のＦＩＦＯの転送先番地情報として、次に書き込む番地を示す。
【００６５】
［送信許可テーブルの構成］
図６を参照して、送信許可テーブル１２２６の構成例について説明する。
【００６６】
送信許可テーブル１２２６は、ＦＩＦＯ部１２２２内のＦＩＦＯの各々について、送信サイズと、送信許可権と、に関する情報を記憶するための領域を有する。
【００６７】
［優先度テーブルの構成］
図７を参照して、優先度テーブル１２２７の構成例について説明する。
【００６８】
優先度テーブル１２２７は、ＦＩＦＯ部１２２２内のＦＩＦＯの各々について、優先度と、割合と、に関する情報を記憶するための領域を有する。
【００６９】
優先度は、ＦＩＦＯ部１２２２内のＦＩＦＯの各々の優先順位を示す。
【００７０】
割合は、ＦＩＦＯ部１２２２内のＦＩＦＯの各々に転送許可が与えられる割合を示す。
【００７１】
例えば、ＱｏＳ制御部１２２３は、ＦＩＦＯ部１２２２に「１００回」転送許可指示を出すアクセスをする際、優先度テーブル１２２７を参照し、優先度が一番高い「ＦＩＦＯ＿１」に対しては「６０回」許可指示を出し、次に優先度の高い「ＦＩＦＯ＿２」に対しては「３０回」許可指示を出し、優先度が一番低い「ＦＩＦＯ＿Ｎ」に対しては「１０回」許可指示を出すといったように、順繰りに転送許可をすることで、優先度の高いものは転送許可が多く得られる仕組みとなる。
【００７２】
［リソース管理テーブルの構成］
図８を参照して、リソース管理テーブル１６の構成例について説明する。
【００７３】
リソース管理テーブル１６は、送信元アドレスと、転送先アドレスと、送信元ＢＤＦと、転送先ＢＤＦと、リソース残数と、リソース使用率と、デバイスと、に関する情報を記憶するための領域を有する。
【００７４】
［分岐テーブルの構成］
図９を参照して、分岐テーブル１２３の構成例について説明する。なお、図示しないが、分岐テーブル１３３の構成も同様である。
【００７５】
分岐テーブル１２３は、送信元アドレスと、転送先アドレスと、送信元ＢＤＦと、転送先ＢＤＦと、リソース分岐先と、デバイスと、に関する情報を記憶するための領域を有する。
【００７６】
送信元アドレスは、データの送信元の所在情報を示す。例えば、ＭＡＣアドレスやＩＰアドレス（又はドメイン名）等が考えられる。
【００７７】
転送先アドレスは、データの転送先の所在情報を示す。例えば、ＭＡＣアドレスやＩＰアドレス（又はドメイン名）等が考えられる。
【００７８】
送信元ＢＤＦは、データの送信元のＢＤＦ番号を示す。ＢＤＦ番号とは、バス番号（Ｂｕｓ  Ｎｕｍｂｅｒ）、デバイス番号（Ｄｅｖｉｃｅ  Ｎｕｍｂｅｒ）、関数番号（Ｆｕｎｃｔｉｏｎ  Ｎｕｍｂｅｒ）等を指す。
【００７９】
転送先ＢＤＦは、データの転送先のＢＤＦ番号を示す。
【００８０】
リソース残数は、リソースの残数を示す。
【００８１】
リソース使用率は、リソースの使用率を示す。
【００８２】
リソース分岐先は、分岐先となるリソースの識別情報を示す。
【００８３】
デバイスは、リソースを所有しているデバイスの識別情報を示す。
【００８４】
［本発明に係るテーブルについての補足］
なお、本発明に係るテーブルは、記憶装置又は記憶媒体に格納されているものとする。
【００８５】
［エンドポイント（ＥＰ）の構成］
図１０を参照して、エンドポイント（ＥＰ）２０の構成例について説明する。
【００８６】
エンドポイント（ＥＰ）２０は、指示部（ＶＥＰ）２１と、クラスタ（Ｃｌｕｓｔｅｒ）２２と、ＩＯポート（Ｐｏｒｔ）２３を備える。
【００８７】
指示部（ＶＥＰ）２１は、分岐制御部（ＶＲＣ）１１と情報をやり取りし、自デバイスであるエンドポイント（ＥＰ）２０が所有するリソース情報を提供する。
【００８８】
クラスタ（Ｃｌｕｓｔｅｒ）２２は、上位装置であるプロセッサ（ＣＰＵ）３０の都合によって、エンドポイント（ＥＰ）２０が所有するリソースを割り振られたリソース群を示す。クラスタ（Ｃｌｕｓｔｅｒ）２２は、複数でも良い。ここでは、クラスタ（Ｃｌｕｓｔｅｒ）２２は、リソース２２１を少なくとも１つ含む。リソース２２１は、エンドポイント（ＥＰ）２０が所有するリソースである。例えば、エンドポイント（ＥＰ）２０がネットワークプロセッサ（ＮＰ：Ｎｅｔｗｏｒｋ  Ｐｒｏｃｅｓｓｏｒ）等であれば、リソース２２１としてマイクロエンジン（ＭＥ：Ｍｉｃｒｏ  Ｅｎｇｉｎｅ）等が考えられる。
【００８９】
ＩＯポート（Ｐｏｒｔ）２３は、スイッチ（ｅ２ｅＳＷ３）１０に接続するためのポートである。
【００９０】
［優先度制御情報設定］
図１１に示すシーケンス図を参照して、優先度制御情報設定の動作について説明する。
【００９１】
図中では、「ｅ２ｅＳＷ３」は、スイッチ（ｅ２ｅＳＷ３）１０を示す。「Ｄｅｖｉｃｅ＃１」及び「Ｄｅｖｉｃｅ＃２」は、エンドポイント（ＥＰ）２０を示す。「ＣＰＵ１」及び「ＣＰＵ２」は、プロセッサ（ＣＰＵ）３０を示す。
【００９２】
（１）ステップＳ１０１
スイッチ（ｅ２ｅＳＷ３）１０の分岐制御部（ＶＲＣ）１１は、エンドポイント（ＥＰ）２０に対して、デバイスのリソース確認を行い、リソース管理テーブル１６を作成する。
【００９３】
（２）ステップＳ１０２
スイッチ（ｅ２ｅＳＷ３）１０の分岐制御部（ＶＲＣ）１１は、上位装置であるプロセッサ（ＣＰＵ）３０からの必要リソース及び優先度に関する情報を確認し、ＲＴＩ機能部１２に対し、分岐テーブル１２３の作成と同時に、受信部１２２のテーブル類の設定を行う。受信部１２２のテーブル類とは、振り分けテーブル１２２５、送信許可テーブル１２２６、及び優先度テーブル１２２７を指す。受信部１２２は、データを受信した際、受信部１２２のテーブル類を参照することにより、エンドポイント（ＥＰ）２０へのデータ転送を可能にする。同様に、スイッチ（ｅ２ｅＳＷ３）１０の分岐制御部（ＶＲＣ）１１は、ＲＴＯ機能部１３に対し、分岐テーブル１３３の作成と同時に、受信部１３２のテーブル類の設定を行う。
【００９４】
（３）ステップＳ１０３
スイッチ（ｅ２ｅＳＷ３）１０の分岐制御部（ＶＲＣ）１１は、上位装置であるプロセッサ（ＣＰＵ）３０からの指示に従い、エンドポイント（ＥＰ）２０に対して、上位装置であるプロセッサ（ＣＰＵ）３０が必要とするコードをロードする。例えば、分岐制御部（ＶＲＣ）１１は、プロセッサ（ＣＰＵ）３０から当該コードを受け付け、エンドポイント（ＥＰ）２０にロードする。
【００９５】
（４）ステップＳ１０４
スイッチ（ｅ２ｅＳＷ３）１０の分岐制御部（ＶＲＣ）１１は、上位装置であるプロセッサ（ＣＰＵ）３０と制御データを共有する。
【００９６】
（５）ステップＳ１０５
スイッチ（ｅ２ｅＳＷ３）１０の分岐制御部（ＶＲＣ）１１は、複数のエンドポイント（ＥＰ）２０間でのＥ２Ｅの通信が可能となり、各エンドポイント（ＥＰ）２０のリソースの接続を行う。
【００９７】
（６）ステップＳ１０６
また、スイッチ（ｅ２ｅＳＷ３）１０の分岐制御部（ＶＲＣ）１１は、随時、上位装置であるプロセッサ（ＣＰＵ）３０から優先度制御指示を受け付け、ＲＴＩ機能部１２に対し、分岐テーブル１２３や、受信部１２２のテーブル類を更新する。ここでは、上位装置であるプロセッサ（ＣＰＵ）３０は、分岐テーブル１２３や、受信部１２２のテーブル類を更新するためのアクセスを随時実行する。スイッチ（ｅ２ｅＳＷ３）１０の分岐制御部（ＶＲＣ）１１は、上位装置であるプロセッサ（ＣＰＵ）３０からのデータのパケット情報の特定のフラグ（優先度設定情報を含むことを示す）を監視しており、該当するデータが到達したときに、データに格納されている優先度情報を基に、分岐テーブル１２３や、受信部１２２のテーブル類に対して更新処理を行う。同様に、スイッチ（ｅ２ｅＳＷ３）１０の分岐制御部（ＶＲＣ）１１は、随時、上位装置であるプロセッサ（ＣＰＵ）３０から優先度制御指示を受け付け、ＲＴＯ機能部１３に対し、分岐テーブル１３３や、受信部１３２のテーブル類を更新する。
【００９８】
［データ転送］
図１２に示すシーケンス図を参照して、データ転送の動作について説明する。
【００９９】
図中では、「ｅ２ｅＳＷ３」は、スイッチ（ｅ２ｅＳＷ３）１０を示す。「Ｄｅｖｉｃｅ＃１」及び「Ｄｅｖｉｃｅ＃２」は、エンドポイント（ＥＰ）２０を示す。「ＣＰＵ１」及び「ＣＰＵ２」は、プロセッサ（ＣＰＵ）３０を示す。
【０１００】
（１）ステップＳ２０１
スイッチ（ｅ２ｅＳＷ３）１０のＲＴＯ機能部１３の受信部１３３は、上位装置であるプロセッサ（ＣＰＵ）３０から、エンドポイント（ＥＰ）２０のリソースを利用するためのアクセス命令を受け付ける。
【０１０１】
（２）ステップＳ２０２
スイッチ（ｅ２ｅＳＷ３）１０のＲＴＯ機能部１３の受信部１３２は、分岐テーブル１３３や、受信部１３２のテーブル類を参照して、転送先のエンドポイント（ＥＰ）２０を選択し、データを転送する。
【０１０２】
（３）ステップＳ２０３
スイッチ（ｅ２ｅＳＷ３）１０のＲＴＯ機能部１３の受信部１３２は、エンドポイント（ＥＰ）２０での処理が完了した後、エンドポイント（ＥＰ）２０から処理結果の返信を受け取り、メモリ１３４に格納する。スイッチ（ｅ２ｅＳＷ３）１０のＲＴＯ機能部１３の送信部１３１は、その処理結果をメモリ１３４から読み出し、分岐テーブル１３３を参照して、上位装置であるプロセッサ（ＣＰＵ）３０に転送する。
【０１０３】
（４）ステップＳ２０４
スイッチ（ｅ２ｅＳＷ３）１０のＲＴＩ機能部１２及びＲＴＯ機能部１３は、あるエンドポイント（ＥＰ）２０から、他のエンドポイント（ＥＰ）２０へアクセスを行うための転送リクエストを中継することで、複数のエンドポイント（ＥＰ）２０間のリソースの接続を維持する。このとき、スイッチ（ｅ２ｅＳＷ３）１０のＲＴＩ機能部１２の受信部１２２は、あるエンドポイント（ＥＰ）２０からのデータをＲＴＯ機能部１３のメモリ１３４に格納する。ＲＴＯ機能部１３の送信部１３１は、メモリ１２４から読み出し、エンドポイント（ＥＰ）２０毎のＦＩＦＯに格納し、優先度が高く設定されたＦＩＦＯのデータを優先的に、他のエンドポイント（ＥＰ）２０に送信する。
【０１０４】
（５）ステップＳ２０５
スイッチ（ｅ２ｅＳＷ３）１０のＲＴＯ機能部１３の受信部１３２は、エンドポイント（ＥＰ）２０での処理が完了した後、エンドポイント（ＥＰ）２０から処理結果の返信を受け取り、メモリ１３４に格納する。スイッチ（ｅ２ｅＳＷ３）１０のＲＴＯ機能部１３の送信部１３１は、その処理結果をメモリ１３４から読み出し、分岐テーブル１３３を参照して、上位装置であるプロセッサ（ＣＰＵ）３０に転送する。
【０１０５】
＜第２実施形態＞
以下に、本発明の第２実施形態について説明する。
【０１０６】
本実施形態では、スイッチ（ｅ２ｅＳＷ３）１０に対して優先度制御をする機能・装置を外部に設けることにより、優先度制御をする。
【０１０７】
［優先度制御システムの構成］
図１３を参照して、本実施形態における優先度制御システムの構成例について説明する。
【０１０８】
本発明に係る優先度制御システムは、スイッチ（ｅ２ｅＳＷ３）１０と、エンドポイント（ＥＰ）２０と、プロセッサ（ＣＰＵ）３０と、ルートコンプレックス（ＲＣ）４０と、メモリ（Ｍｅｍ）５０と、優先度制御装置６０を含む。
【０１０９】
スイッチ（ｅ２ｅＳＷ３）１０は、優先度制御装置６０と連携可能であり、エンドポイント（ＥＰ）間通信を可能とするＰＣＩｅスイッチであれば良い。スイッチ（ｅ２ｅＳＷ３）１０の構成は、第１実施形態と同様でも良いが、必須ではない。
【０１１０】
エンドポイント（ＥＰ）２０、プロセッサ（ＣＰＵ）３０、ルートコンプレックス（ＲＣ）４０、及びメモリ（Ｍｅｍ）５０については、基本的に、第１実施形態と同様である。
【０１１１】
優先度制御装置６０は、個々のスイッチ（ｅ２ｅＳＷ３）１０と連携しており、第１実施形態に示すスイッチ（ｅ２ｅＳＷ３）１０における優先度制御を一元的に行う。
【０１１２】
図示しないが、優先度制御装置６０は、第１実施形態に示すスイッチ（ｅ２ｅＳＷ３）１０と同様に、分岐制御部（ＶＲＣ）１１と、ＲＴＩ（Ｒｏｕｔｉｎｇ  ｔｏ  ｉｎｓｉｄｅ）機能部１２と、ＲＴＯ（Ｒｏｕｔｉｎｇ  ｔｏ  ｏｕｔｓｉｄｅ）機能部１３と、リソース管理テーブル１６を備える。
【０１１３】
また、優先度制御装置６０は、個々のスイッチ（ｅ２ｅＳＷ３）１０と通信するために、ＰＣＩｅポート（ＰＣＩｅ  Ｐｏｒｔ）１４及びＩＯポート（Ｐｏｒｔ）１５のうち、少なくとも１つを備える。
【０１１４】
分岐制御部（ＶＲＣ）１１、ＲＴＩ（Ｒｏｕｔｉｎｇ  ｔｏ  ｉｎｓｉｄｅ）機能部１２、ＲＴＯ（Ｒｏｕｔｉｎｇ  ｔｏ  ｏｕｔｓｉｄｅ）機能部１３、ＰＣＩｅポート（ＰＣＩｅ  Ｐｏｒｔ）１４、ＩＯポート（Ｐｏｒｔ）１５、及びリソース管理テーブル１６については、基本的に、第１実施形態と同様である。
【０１１５】
このように、本実施形態では、優先度制御をする機能・装置を外部に設けるので、優先度制御対応となっていない上位装置でも、優先度制御ができる。
【０１１６】
＜各実施形態の関係＞
なお、上記の各実施形態は、組み合わせて実施することも可能である。
【０１１７】
＜本発明の特徴＞
以上のように、本発明に係る優先度制御システムは、ＩＯ間アクセスが可能で、エンドポイント（ＥＰ）のリソース管理ができるＰＣＩｅシステムにおいて、複数の上位装置からの要求を到着順に処理するのではなく、優先度制御をできるようにしたことを特徴としている。
【０１１８】
本発明に係る優先度制御システムでは、スイッチ（ｅ２ｅＳＷ３）が優先度制御をしているので、例えば複数の上位装置が同時にアクセスした際にスイッチ（ｅ２ｅＳＷ３）で処理待ち状態とするのではなく、優先度を高く設定された上位装置からのアクセスを優先的にエンドポイント（ＥＰ）へ転送する動作を取ることができる。その結果、システムとしての拡張性や処理能力の向上が期待できる。
【０１１９】
また、本発明に係る優先度制御システムでは、ＰＣＩｅスイッチが、ＱｏＳ制御できるように、送信部、受信部に複数のＦＩＦＯを持ち、優先度が設定されたＦＩＦＯに到着データを分配し、格納するようにする。これにより、システムとしてＱｏＳ制御ができ、実行処理の重いホスト側の要求に待たされることなく、別の処理が進行することができるようになる。
【０１２０】
本発明に係る優先度制御システムでは、優先度の制御ができるので、上位装置のニーズに合わせた通信処理をすることができる。
【０１２１】
また、本発明に係る優先度制御システムでは、複数のＦＩＦＯを持つことができる（ＦＩＦＯ数は可変）とすることで、上位装置の数に縛られることなく、受信部でのデータ処理を実施することができる。
【０１２２】
＜備考＞
以上、本発明の実施形態を詳述してきたが、実際には、上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【符号の説明】
【０１２３】
１０…  スイッチ（ｅ２ｅＳＷ３）
１１…  分岐制御部（ＶＲＣ）
１２…  ＲＴＩ（Ｒｏｕｔｉｎｇ  ｔｏ  ｉｎｓｉｄｅ）機能部
１３…  ＲＴＯ（Ｒｏｕｔｉｎｇ  ｔｏ  ｏｕｔｓｉｄｅ）機能部
１２１、１３１…  送信部
１２２、１３２…  受信部
１２２１…  ＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ，Ｆｉｒｓｔ−Ｏｕｔ）振り分け部
１２２２…  ＦＩＦＯ部
１２２３…  ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）制御部
１２２４…  メモリ送信部
１２２５…  振り分けテーブル
１２２６…  送信許可テーブル
１２２７…  優先度テーブル
１２３、１３３…  分岐テーブル
１２４、１３４…  メモリ
１４…  ＰＣＩｅポート（ＰＣＩｅ  Ｐｏｒｔ）
１５…  ＩＯポート（Ｐｏｒｔ）
１６…  リソース管理テーブル
２０…  エンドポイント（ＥＰ）
２１…  指示部（ＶＥＰ）
２２…  クラスタ（Ｃｌｕｓｔｅｒ）
２２１…  リソース
２３…  ＩＯポート（Ｐｏｒｔ）
３０…  プロセッサ（ＣＰＵ）
４０…  ルートコンプレックス（ＲＣ）
５０…  メモリ（Ｍｅｍ）
６０…  優先度制御装置
【図１】
2013097718.tif 000003
【図２】
2013097718.tif 000004
【図３】
2013097718.tif 000005
【図４】
2013097718.tif 000006
【図５】
2013097718.tif 000007
【図６】
2013097718.tif 000008
【図７】
2013097718.tif 000009
【図８】
2013097718.tif 000010
【図９】
2013097718.tif 000011
【図１０】
2013097718.tif 000012
【図１１】
2013097718.tif 000013
【図１２】
2013097718.tif 000014
【図１３】
2013097718.tif 000015