(57)【要約】      （修正有）【課題】転送効率が向上可能な情報処理システム及び情報処理方法を提供する。【解決手段】情報処理システムは、転送先デバイスで論理アドレスが連続する領域に格納されるデータを前記転送先デバイスに転送するために第１パケットと、少なくとも１つの第２パケットとを連続して転送する。前記第１パケットは第１ヘッダを含む。前記少なくとも１つの第２パケットは前記第１ヘッダよりサイズが小さい第２ヘッダを含む。【選択図】図６
2019164486.tif 000002
【特許請求の範囲】
【請求項１】
転送先デバイスで論理アドレスが連続する領域に格納されるデータに関する第１パケットと少なくとも１つの第２パケットとを連続して前記転送先デバイスに転送する情報処理システムであって、
前記第１パケットは第１ヘッダを含み、
前記少なくとも１つの第２パケットは前記第１ヘッダよりサイズが小さい第２ヘッダを含む情報処理システム。
【請求項２】
前記第１ヘッダは第１部分と第２部分を含み、
前記第２ヘッダは前記第１部分を含み、前記第２部分を含まず、
前記第１部分は前記第１ヘッダ又は前記第２ヘッダを識別する第１情報と、前記第１パケット又は前記第２パケットのデータ長を示す第２情報を含み、
前記第２部分はライトアドレスを示す第３情報を含む請求項１記載の情報処理システム。
【請求項３】
前記第１部分はデータの送信デバイスを示す第４情報をさらに含む請求項２記載の情報処理システム。
【請求項４】
前記第１パケットは、第１データと、前記第１ヘッダと前記第１データから計算されたエラーチェックコードをさらに含み、
前記第２パケットは、第２データと、前記第２ヘッダと前記第２データから計算されたエラーチェックコードをさらに含む請求項２又は請求項３記載の情報処理システム。
【請求項５】
前記第１パケットと前記第２パケットを含む第１送信データを送信する第１送信デバイスと、
前記第１パケットと前記第２パケットを含む第２送信データを送信する第２送信デバイスと、
前記第１送信デバイスと前記第２送信デバイスに接続され、前記第１送信デバイスからの前記第１送信データと前記第２送信デバイスからの前記第２送信データを受信した順番通りに１つのバスに出力するスイッチと、
を具備し、
前記スイッチは受信するデータの送信デバイスが切り替わった後に受信する前記第２パケットの前記第２ヘッダを前記第１ヘッダに変換する請求項４記載の情報処理システム。
【請求項６】
前記第１パケットと前記第２パケットを含む第１送信データを送信する第１送信デバイスと、
前記第１パケットと前記第２パケットを含む第２送信データを送信する第２送信デバイスと、
前記第１送信デバイスと前記第２送信デバイスに接続され、前記第１送信デバイスからの前記第１送信データと前記第２送信デバイスからの前記第２送信データを１つのバスに出力するスイッチと、
を具備し、
前記スイッチは、
前記第１送信データを受信すると、前記第１送信データを出力し、
前記第１送信データの出力中に前記第２送信データを受信すると、前記第２送信データをバッファに格納し、
前記第１送信データの出力が完了すると、前記バッファ内の前記第２送信データを出力する請求項４記載の情報処理システム。
【請求項７】
前記第１パケットと少なくとも１つの前記第２パケットをＰＣＩｅｘｐｒｅｓｓ規格に従って前記転送先デバイスに転送する請求項１記載の情報処理システム。
【請求項８】
転送先デバイスで論理アドレスが連続する領域に格納されるデータに関する第１ヘッダを含む第１パケットと、前記第１ヘッダよりサイズが小さい第２ヘッダをそれぞれ含む少なくとも１つの第２パケットとを前記転送先デバイスに転送する情報処理方法。
【請求項９】
前記第１ヘッダは第１部分と第２部分を含み、
前記第２ヘッダは前記第１部分を含み、前記第２部分を含まず、
前記第１部分は前記第１ヘッダ又は前記第２ヘッダを識別する第１情報と、前記第１パケット又は前記第２パケットのデータ長を示す第２情報を含み、
前記第２部分はライトアドレスを示す第３情報を含む請求項８記載の情報処理方法。
【請求項１０】
前記第１部分はデータの送信デバイスを示す第４情報をさらに含む請求項９記載の情報処理方法。
【請求項１１】
前記第１パケットは、第１データと、前記第１ヘッダと前記第１データから計算されたエラーチェックコードをさらに含み、
前記第２パケットは、第２データと、前記第２ヘッダと前記第２データから計算されたエラーチェックコードをさらに含む請求項９又は請求項１０記載の情報処理方法。
【請求項１２】
第１送信デバイスは、前記第１パケットと前記第２パケットを含む第１送信データを送信し、
第２送信デバイスは、前記第１パケットと前記第２パケットを含む第２送信データを送信し、
前記第１送信デバイスと前記第２送信デバイスに接続されるスイッチは、前記第１送信デバイスからの前記第１送信データと前記第２送信デバイスからの前記第２送信データを受信した順番通りに１つのバスに出力し、
前記スイッチは、受信するデータの送信デバイスが切り替わった後に受信する前記第２パケットの前記第２ヘッダを前記第１ヘッダに変換する請求項１１記載の情報処理方法。
【請求項１３】
第１送信デバイスは、前記第１パケットと前記第２パケットを含む第１送信データを送信し、
第２送信デバイスは、前記第１パケットと前記第２パケットを含む第２送信データを送信し、
前記第１送信デバイスと前記第２送信デバイスに接続されるスイッチは、前記第１送信デバイスからの前記第１送信データと前記第２送信デバイスからの前記第２送信データを混合し１つのバスに出力し、
前記スイッチは、
前記第１送信データを受信すると、前記第１送信データを出力し、
前記第１送信データの出力中に前記第２送信データを受信すると、前記第２送信データをバッファに格納し、
前記第１送信データの出力が完了すると、前記バッファ内の前記第２送信データを出力する請求項１１記載の情報処理方法。
【請求項１４】
前記第１パケットと少なくとも１つの前記第２パケットをＰＣＩｅｘｐｒｅｓｓ規格に従って前記転送先デバイスに転送する請求項８記載の情報処理方法。
【請求項１５】
不揮発性半導体メモリを具備する記憶装置と、
前記記憶装置に接続されるホストメモリ内の論理アドレスが連続する１つの領域にデータを転送するために第１パケットと、少なくとも１つの第２パケットとを前記ホストメモリに連続して転送するコントローラと、を具備し、
前記第１パケットは第１ヘッダを含み、
前記少なくとも１つの第２パケットは前記第１ヘッダよりサイズが小さい第２ヘッダを含むメモリシステム。
【請求項１６】
前記第１ヘッダは第１部分と第２部分を含み、
前記第２ヘッダは前記第１部分を含み、前記第２部分を含まず、
前記第１部分は前記第１ヘッダ又は前記第２ヘッダを識別する第１情報と、前記第１パケット又は前記第２パケットのデータ長を示す第２情報を含み、
前記第２部分はライトアドレスを示す第３情報を含む請求項１５記載のメモリシステム。
【請求項１７】
前記第１部分はデータの送信デバイスを示す第４情報をさらに含む請求項１６記載のメモリシステム。
【請求項１８】
前記第１パケットは、第１データと、前記第１ヘッダと前記第１データから計算されたエラーチェックコードをさらに含み、
前記第２パケットは、第２データと、前記第２ヘッダと前記第２データから計算されたエラーチェックコードをさらに含む請求項１６又は請求項１７記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は情報処理システムにおけるデータ転送に関する。
【背景技術】
【０００２】
ＣＰＵ（Central Processing Unit）とＩ／Ｏ（Input/Output）デバイスとの間の信号転送方式として、ＰＣＩｅｘｐｒｅｓｓ（登録商標）（以下、ＰＣＩｅ（登録商標）とも称する）が提案されている。ＰＣＩｅ規格では階層構造が採用されており、トランザクション層において各パケットにはヘッダが付加される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許出願公開第２０１６／０３３５２０９号明細書
【特許文献２】米国特許出願公開第２０１７／００５２９１６号明細書
【特許文献３】米国特許第９６１２９８９号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のＰＣＩｅ規格では多数のデータを連続して転送する場合でも、各パケットに同一サイズのヘッダが付加される。このようなヘッダはデータ転送に対するオーバヘッドとなり、転送効率を低下させる。
【０００５】
実施形態の目的はデータ転送効率の向上が可能な情報処理システム、情報処理方法及びメモリシステムを提供することである。
【課題を解決するための手段】
【０００６】
実施形態によれば、情報処理システムは、転送先デバイスで論理アドレスが連続する領域に格納されるデータを前記転送先デバイスに転送するために第１パケットと、少なくとも１つの第２パケットを連続して転送する。前記第１パケットは第１ヘッダを含む。前記少なくとも１つの第２パケットは前記第１ヘッダよりサイズが小さい第２ヘッダを含む。
【図面の簡単な説明】
【０００７】
【図１】第１実施形態に係る情報処理システムの構成の一例を示すブロック図である。
【図２】第１実施形態に係る情報処理システムで転送されるＴＬＰの一例を示す図である。
【図３】図２に示すＴＬＰに含まれるヘッダの一例を示す図である。
【図４】図３に示すヘッダに含まれるフォーマットを説明するための図である。
【図５】図３に示すヘッダに含まれるタイプを説明するための図である。
【図６】第１実施形態においてＰＣＩｅエンドポイントからＰＣＩｅルートポートへ転送されるライトＴＬＰに含まれるヘッダの一例を示す図である。
【図７】第１実施形態のデータ転送により転送効率が向上する例を示す図である。
【図８】第２実施形態に係る情報処理システムの構成の一例を示すブロック図である。
【図９】第２実施形態におけるヒストリテーブルの一例を示す図である。
【図１０】第２実施形態においてＰＣＩｅエンドポイントからＰＣＩｅルートポートへ転送されるライトＴＬＰに含まれるヘッダの一例を示す図である。
【図１１】第３実施形態においてＰＣＩｅエンドポイントからＰＣＩｅルートポートへ転送されるライトＴＬＰに含まれるヘッダの一例を示す図である。
【図１２】第４実施形態におけるライトＴＬＰに含まれるヘッダの一例を示す図である。
【図１３】第４実施形態のデータ転送により転送効率が向上する例を示す図である。
【発明を実施するための形態】
【０００８】
以下、実施の形態について図面を参照して説明する。なお、開示はあくまで一例にすぎず、以下の実施形態に記載した内容により発明が限定されるものではない。当業者が容易に想到し得る変形は、当然に開示の範囲に含まれる。説明をより明確にするため、図面において、各部分のサイズ、形状等を実際の実施態様に対して変更して模式的に表す場合もある。複数の図面において、対応する要素には同じ参照数字を付して、詳細な説明を省略する場合もある。
【０００９】
［第１実施形態］  
［システム構成例］  
図１は第１実施形態に係る情報処理システムの構成の一例を示すブロック図である。バスライン１６にＣＰＵ１０とＤＲＡＭ１２とＰＣＩｅルートコンプレックス（以下、ルートコンプレックスとも称する）１４が接続される。ルートコンプレックス１４はＣＰＵ１０、ＤＲＡＭ１２とＩ／Ｏデバイスとの間のＰＣＩｅ規格に基づくデータ転送を制御するデバイスである。ルートコンプレックス１４はＰＣＩｅルートポート（以下、ルートポートとも称する）２２を備える。Ｉ／ＯデバイスとしてのＳＳＤ（Solid State Drive）３０が１つのルートポート２２に接続される。ＳＳＤ３０は記憶部としての不揮発性半導体メモリ３６とＳＳＤコントローラ３２を含み、メモリシステムとも称する。不揮発性半導体メモリ３６は、例えばＮＡＮＤ型フラッシュメモリからなる。以下、不揮発性半導体メモリ３６をフラッシュメモリ３６と称する。ＳＳＤコントローラ３２がＰＣＩｅエンドポイント（以下、エンドポイントとも称する）３４を含む。ＳＳＤコントローラ３２は、System-on-a-chip（ＳｏＣ）のような回路によって実現され得る。ＳＳＤコントローラ３２は、Toggle DDR、Open NAND Flash Interface（ＯＮＦＩ）のようなＮＡＮＤインタフェースを介して、フラッシュメモリ３６に電気的に接続されている。ＳＳＤコントローラ３２は、フラッシュメモリ３６を制御するように構成されたメモリコントローラとして機能する。エンドポイント３４はルートコンプレックス１４との間でＰＣＩｅ規格に基づくデータ転送を制御するデバイスである。この情報処理システムにおいて、ＣＰＵ１０とＤＲＡＭ１２はホストデバイスであり、ＤＲＡＭ１２をホストメモリとも称する。この情報処理システムでは、ＳＳＤ３０とＤＲＡＭ１２との間でデータが転送される。エンドポイント３４はバスライン２０を介してルートコンプレックス１４に接続される。ルートコンプレックス１４は複数のルートポート２２を備えてもよい。ルートコンプレックス１４に接続されるエンドポイントの数は１つに限らず、複数でもよい。バスライン１６の帯域幅はバスライン２０の帯域幅より広くてもよい。
【００１０】
ＰＣＩｅ規格は、トランザクション層、データリンク層、物理層からなる階層構造を有する。上位のソフトウェア層からのデータは、トランザクション層、データリンク層、物理層を順番に介して下位の記憶媒体や転送媒体に流れ、記憶媒体や転送媒体からのデータは、物理層、データリンク層、トランザクション層を順番に介してソフトウェア層に流れる。各層は、データを下位層に渡す際に、必要な情報を付加し、データを上位層に渡す際に、必要な情報を取り出す。
【００１１】
［パケット］  
ＰＣＩｅ規格では数種類のパケットが定義されており、その１つにトランザクション層パケットＴＬＰ（Transaction Layer Packet）がある。ＴＬＰの構成の一例を図２に示す。ＴＬＰは図２（ａ）に示すように、４バイトのトークン、１６バイトのヘッダ、１２８バイトのデータ・ペイロード（以下、データと略称する）、４バイトのLink CRC（ＬＣＲＣと称する）からなる。転送途中のパケットの少なくとも一部の消失を検出できるように、トークン、ヘッダ、データを合わせたものに対して４バイトのＣＲＣが計算され、計算されたＣＲＣがＬＣＲＣとしてデータの後ろに付加される。受信デバイスはＬＣＲＣにエラーが無いか否かをチェックする。問題がなければAcknowledge（Ａｃｋと称する）が送信デバイスに返送され、問題があればNegative Acknowledge（Ｎａｋと称する）が送信デバイスに返送され、ＴＬＰの再送が要求される。
【００１２】
図２（ｂ）はトークンの一例を示す。トークンのバイト０のビット７〜４にTLP Lengthのビット３〜０が、バイト０のビット３〜０に１１１１ｂが、バイト１のビット７にTLP Lengthの保護に使用されるFrame Parity（ＦＰと称する）が、バイト１のビット６〜９にTLP Lengthのビット１０〜４が、バイト２のビット７〜４にTLP Lengthの保護に使用されるFrame CRC（ＦＣＲＣと称する）が、バイト２のビット３からバイト３のビット０までにＴＬＰシーケンス番号が配置される。図２には示していないが、データに対して４バイトのＥＣＲＣ（End-to-end CRC: Cyclic Redundancy Check）が付加されてもよい。ＥＣＲＣは、付加される場合は、ＬＣＲＣの最後に付加される。
【００１３】
トランザクションとはデータのリードやライトなどを行うための一連の処理である。トランザクションはリクエスタとコンプリータとの間のデータの転送であり、４つのアドレス空間が定義されている。ＴＬＰは、フラッシュメモリ３６がマッピングされたアドレス空間に対するリード／ライトを要求するメモリリクエスト、Ｉ／Ｏデバイスがマッピングされたアドレス空間に対するリード／ライトを要求するＩ／Ｏリクエスト、コンフィグレーション空間に対するリード／ライトを要求するコンフィグレーションリクエスト、リクエストパケットに対する応答であるコンプリッション、及び割り込みやパワーマネジメントリクエストなどのメッセージ等を含む。メモリがマッピングされたアドレス空間にデータを転送することをリードと言い、メモリがマッピングされたアドレス空間からデータを転送することをライトと言う。同様に、Ｉ／Ｏデバイスがマッピングされたアドレス空間にデータを転送することをリードと言い、Ｉ／Ｏデバイスがマッピングされたアドレス空間からデータを転送することをライトと言う。
【００１４】
［ＴＬＰヘッダ］  
図３はメモリリクエストとしてのＴＬＰのヘッダの一例を示す。図３（ａ）は通常ヘッダ（第１ヘッダとも称する）の一例を示し、図３（ｂ）はフラッシュメモリ３６のデータをＤＲＡＭ１２の連続した論理アドレス空間へ転送する際に使用されるシーケンシャルヘッダ（第２ヘッダとも称する）の一例を示す。
【００１５】
通常ヘッダは４ＤＷ（Double Word；１ＤＷ＝４バイト）又は３ＤＷからなる。アドレスが３２ビットの場合は、通常ヘッダは３ＤＷであり、アドレスが６４ビットの場合は、通常ヘッダは４ＤＷである。ＤＷ０は、全てのトランザクションで共通である。
【００１６】
通常ヘッダのバイト０のビット７〜５にフォーマット（Ｆｍｔ）が、バイト０のビット４〜０にトランザクション種別（Ｔｙｐｅ）が、バイト１のビット７にＲが、バイト１のビット６〜４にトラフィッククラス（ＴＣ）が、バイト１のビット３にＲが、バイト１のビット２にアトリビュート（Ａｔｔｒ）の中のビット２が、バイト１のビット１にLight weight Notification（ＬＮと称する）が、バイト１のビット０にTLP Processing Hints（ＴＨと称する）が、バイト２のビット７にＴＬＰダイジェスト（ＴＤ）が、バイト２のビット６にパリティ（ＥＰ）が、バイト２のビット５、４にＡｔｔｒの中のビット１、０が、バイト２のビット３、２にアドレスタイプ（ＡＴ）が、バイト２のビット１〜バイト３のビット０までにデータ長（Ｌｅｎｇｔｈ）が配置される。Ｒは予約（reversed）を示す。ＤＷ１は、１６ビットのリクエスタＩＤ（Ｒｅｑｕｅｓｔｅｒ  ＩＤ）、８ビットのタグ（Ｔａｇ）、４ビットのラストＤＷバイトイネーブル（Ｌａｓｔ  ＤＷ  ＢＥ）、４ビットのファーストＤＷバイトイネーブル（１ｓｔ  ＤＷ  ＢＥ）を含む。アドレスが６４ビットの場合、アドレス（Ａｄｄｒｅｓｓ）はＤＷ２とＤＷ３に記述される。アドレスが３２ビットの場合、アドレス（Ａｄｄｒｅｓｓ）は３番目のＤＷ２に記述される。なお、ＰＣＩｅでは４バイト単位の転送なので、アドレスの［１：０］ビットは必ず０であるので、記述しない。ＤＷ３でアドレスが記述されない残りの２ビットにはＰＨ（Processing Hint)が記述される。
【００１７】
フォーマットはヘッダの種別を示す。トランザクション種別はリクエストの種別を示す。トラフィッククラスはパケットの優先度を示す。ＴＬＰダイジェストはＥＣＲＣの有無を示す。パリティはパケットが正常に受信されたかどうかを検出するために用いられる。データ長はパケットのデータ長を示し、ＤＷの単位で記載される。リクエスタＩＤとはＰＣＩｅによるトランザクションを発行する送信デバイス（リクエスタ）をユニークに示すＩＤである。タグはリード管理用のタグ番号を示す。ラストＤＷバイトイネーブルは３２ビット単位の最後のデータがバイトイネーブルであるか否かを示す。ファーストＤＷバイトイネーブルは３２ビット単位の最初のデータがバイトイネーブルであるか否かを示す。
【００１８】
シーケンシャルヘッダは通常ヘッダの先頭の１ＤＷからなり、通常ヘッダの２番目から４番目のＤＷが省略されている。すなわち、シーケンシャルヘッダはリクエスタＩＤやアドレスを含まない。
【００１９】
［フォーマット（Ｆｍｔ）］
図４はＴＬＰヘッダ内のフォーマット（Ｆｍｔ）の一例を示す。例えば、  
Ｆｍｔが０００ｂの場合、このヘッダはヘッダ長が３ＤＷであり、データを含まない、リードリクエスト等のＴＬＰの通常ヘッダであることを示し、  
Ｆｍｔが００１ｂの場合、このヘッダはヘッダ長が４ＤＷであり、データを含まない、リードリクエスト等のＴＬＰの通常ヘッダであることを示し、  
Ｆｍｔが０１０ｂの場合、このヘッダはヘッダ長が３ＤＷであり、データを含む、ライトリクエスト等のＴＬＰの通常ヘッダであることを示し、  
Ｆｍｔが０１１ｂの場合、このヘッダはヘッダ長が４ＤＷであり、データを含む、ライトリクエスト等のＴＬＰの通常ヘッダであることを示し、  
Ｆｍｔが１００ｂの場合、このヘッダはＴＬＰプリフィックス（Prefix）を含むＴＬＰの通常ヘッダであることを示し、  
Ｆｍｔが１０１ｂの場合、このヘッダはシーケンシャルヘッダであることを示す。
【００２０】
Ｆｍｔの１１０ｂ〜１１１ｂは予約されている。なお、ヘッダがシーケンシャルヘッダであることを示すＦｍｔは１０１ｂに限らず、１１０ｂ〜１１１ｂのいずれかでもよい。ＴＬＰプリフィックスはヘッダの前にオプションで付加される。
【００２１】
ＴＬＰヘッダを受け取ったデバイス、例えば、ルートコンプレックス１４、エンドポイント３４はこのフォーマットに基づいてヘッダの種別を識別することができる。ルートコンプレックス１４又はエンドポイント３４はヘッダがシーケンシャルヘッダであると判断した場合、直前に受信したヘッダのデータ長（Length）とアドレス（Address）とからシーケンシャルヘッダにおいて省略されているアドレス（Address）を求めることができる。
【００２２】
［ＴＬＰ種別］  
ＴＬＰヘッダを受け取ったデバイスはこのフォーマット（Ｆｍｔ）とトランザクション種別（Ｔｙｐｅ）の組み合わせによりＴＬＰの種別を識別することができる。図５にＴＬＰ種別とフォーマットとトランザクション種別タイプとの関係の一例を示す。例えば、  
Ｆｍｔが０００ｂ又は００１ｂであり、Ｔｙｐｅが００００１ｂである場合、ＴＬＰ種別はメモリリードリクエストＭＲｄであることを示し、  
Ｆｍｔが０１０ｂ又は０１１ｂであり、Ｔｙｐｅが０００００ｂである場合、ＴＬＰ種別はメモリライトリクエストＭＷｒであることを示し、  
Ｆｍｔが０００ｂであり、Ｔｙｐｅが０００１０ｂである場合、ＴＬＰ種別はＩ／ＯリードリクエストＩＯＲｄであることを示し、  
Ｆｍｔが０１０ｂであり、Ｔｙｐｅが０００１０ｂである場合、ＴＬＰ種別はＩ／ＯライトリクエストＩＯＷｒであることを示し、  
Ｆｍｔが０００ｂであり、Ｔｙｐｅが００１００ｂである場合、ＴＬＰ種別はコンフィグレーションリードリクエスト（タイプ０）ＣｆｇＲｄ０であることを示し、  
Ｆｍｔが０１０ｂであり、Ｔｙｐｅが００１００ｂである場合、ＴＬＰ種別はコンフィグレーションライトリクエスト（タイプ０）ＣｆｇＷｒ０であることを示し、  
Ｆｍｔが０００ｂであり、Ｔｙｐｅが００１０１ｂである場合、ＴＬＰ種別はコンフィグレーションリードリクエスト（タイプ１）ＣｆｇＲｄ１であることを示し、  
Ｆｍｔが０１０ｂであり、Ｔｙｐｅが００１０１ｂである場合、ＴＬＰ種別はコンフィグレーションライトリクエスト（タイプ１）ＣｆｇＷｒ１であることを示す。
【００２３】
［ＴＬＰの転送］
ＳＳＤ３０はＣＰＵ１０へ、ＤＲＡＭ１２に格納されているデータをフラッシュメモリ３６へ転送すること（ＳＳＤライトとも称する）と、フラッシュメモリ３６に格納されているデータをＤＲＡＭ１２へ転送すること（ＳＳＤリードとも称する）とを要求することができる。ＳＳＤライトを要求する場合、エンドポイント３４はルートコンプレックス１４へリードＴＬＰを送信し、ＳＳＤリードを要求する場合、エンドポイント３４はルートコンプレックス１４へライトＴＬＰを送信する。
【００２４】
ＳＳＤライトの際に転送されるリードＴＬＰはアドレスを含むが、データを含まない。アドレスは、エンドポイント３４が要求するデータが格納されている、ＤＲＡＭ１２の論理アドレス空間の領域の先頭アドレス（リードアドレスとも称する）である。リードＴＬＰのヘッダとして図３（ａ）に示す通常ヘッダが用いられる。リードＴＬＰのパケットサイズは比較的小さいので、小さいサイズのシーケンシャルヘッダを用いても、パケットの総転送量の減少率は小さく、シーケンシャルヘッダを用いるメリットが小さい。ルートコンプレックス１４はリードＴＬＰを受信すると、ＴＬＰで指定された論理アドレスに基づいてＤＲＡＭ１２からデータをリードし、リードしたデータをコンプリーションＴＬＰに含めてエンドポイント３４に転送する。ＳＳＤライト要求はリードＴＬＰの送信とコンプリーションＴＬＰの受信で完了する。
【００２５】
ＳＳＤリードの際に転送されるライトＴＬＰはアドレスとデータを含む。アドレスは、転送するデータを格納する、ＤＲＡＭ１２の論理アドレス空間の領域の先頭アドレス（ライトアドレスとも称する）である。転送するデータが１パケットに収まらない場合、サイズに応じた複数のライトＴＬＰが連続して転送される。先頭のパケットのヘッダとして図３（ａ）に示す通常ヘッダが用いられるが、それ以外のパケットのヘッダとして図３（ｂ）に示すシーケンシャルヘッダが用いられる。ライトＴＬＰのパケットサイズはリードＴＬＰのパケットサイズより大きいので、小さいサイズのシーケンシャルヘッダを用いると、パケットの総転送量の減少率が大きく、シーケンシャルヘッダを用いるメリットが大きい。ルートコンプレックス１４はライトＴＬＰを受信すると、転送されてきたデータをＴＬＰで指定された論理アドレスに基づいてＤＲＡＭ１２にライトする。
【００２６】
図６はＳＳＤリードの際にルートコンプレックス１４に連続して転送される複数のライトＴＬＰのヘッダのみを示す。連続して転送される複数のライトＴＬＰの送信デバイスは同じエンドポイント３４であるので、２番目以降のライトＴＬＰにおいてリクエスタＩＤは不要である。そのため、エンドポイント３４は１番目のＴＬＰのヘッダとして通常ヘッダＨ１を用い、２番目以降のＴＬＰのヘッダとしてシーケンシャルヘッダＨ２、Ｈ３、Ｈ４、…を用いる。通常ヘッダはデータ長とアドレスを含み、シーケンシャルヘッダはデータ長を含むが、アドレスを含まない。
【００２７】
ルートコンプレックス１４は、１番目のライトＴＬＰを受け取ると、通常ヘッダＨ１に基づいて、１番目のライトＴＬＰに含まれるデータをＤＲＡＭ１２の論理アドレスＸ〜Ｘ＋Ｎ−１の領域にライトする。ルートコンプレックス１４は２番目のライトＴＬＰを受け取ると、１番目のライトＴＬＰの通常ヘッダＨ１に含まれているデータ長ＮとアドレスＸに基づいて２番目のライトＴＬＰのシーケンシャルヘッダＨ２に含まれていないアドレス（＝Ｘ＋Ｎ）を求めることができる。すなわち、ルートコンプレックス１４はシーケンシャルヘッダＨ２から通常ヘッダを復元することができる。ルートコンプレックス１４は、２番目のライトＴＬＰを受け取ると、シーケンシャルヘッダＨ２に含まれるデータ長Ｎと、１番目のライトＴＬＰに含まれている通常ヘッダＨ１のアドレスＸとデータ長Ｎとに基づいて、２番目のライトＴＬＰに含まれるデータをＤＲＡＭ１２の論理アドレスＸ＋Ｎ〜Ｘ＋２Ｎ−１の領域にライトする。
【００２８】
以下、同様に、ルートコンプレックス１４は、ｉ（ｉは３以上の整数）番目のライトＴＬＰを受けとると、シーケンシャルヘッダを通常ヘッダに復元し、データをＤＲＡＭ１２の論理アドレスＸ＋（ｉ−１）Ｎ〜Ｘ＋ｉ＊Ｎ−１の領域にライトする。これにより、ＳＳＤ３０のデータがＤＲＡＭ１２の単純にインクリメントする論理アドレス空間の領域に転送される。
【００２９】
［メモリライトリクエストの転送効率の比較］  
図７は１ＭＢのデータをＳＳＤ３４からＤＲＡＭ１２に転送する（ＳＳＤリード）際のライトＴＬＰの転送の一例を示す。図７（ａ）は比較例の転送例を示し、図７（ｂ）は実施形態の転送例を示す。比較例では全てのライトＴＬＰは１６バイトの通常ヘッダを含み、実施形態では最初のライトＴＬＰのみ通常ヘッダを含み、それ以降のライトＴＬＰはシーケンシャルヘッダを含む。データ長を１２８バイトとし、８１９２個のライトＴＬＰでデータを転送するとする。比較例では、１個のライトＴＬＰは１５２バイトであり、８１９２個のライトＴＬＰの総転送量は１，２４５，１８４（＝１５２×８１９２）バイトである。実施形態では、１番目のライトＴＬＰは１５２バイトであるが、２番目以降のライトＴＬＰは１４０バイトであり、８１９２個のライトＴＬＰの総転送量は１，１４６，８９２（＝１５２＋１４０×８１９１）バイトである。実施形態は比較例に比べて約８％（＝１，１４６，８９２÷１，２４５，１８４）の転送効率が向上される。
【００３０】
なお、ＴＬＰがＥＣＲＣを含む場合、ＥＣＲＣは転送途中で付け替えが許されていないため、一部のＤＷが省略されたシーケンシャルヘッダではＥＣＲＣはチェックできない。受信デバイス（ＰＣＩｅルートコンプレクッス１４）はシーケンシャルヘッダを受け取った場合、シーケンシャルヘッダから通常ヘッダを復元した後に、ＥＣＲＣのチェックを行う。
【００３１】
第１実施形態によれば、ＳＳＤ３０からＤＲＡＭ１２にデータを連続的に転送するために、エンドポイント３４がルートコンプレックス１４に複数のライトＴＬＰを連続して転送する際、最初のライトＴＬＰのヘッダには第１ヘッダ（通常ヘッダ）を用い、２番目以降のライトＴＬＰのヘッダには第１ヘッダの一部が欠落している第２ヘッダ（シーケンシャルヘッダ）を用いることにより、ヘッダのオーバヘッドが削減され、データの連続転送の際の転送効率が向上される。連続して転送されるデータを格納するＤＲＡＭ１２の領域の論理アドレスは単純にインクリメントするアドレスであるので、ルートコンプレックス１４で第２ヘッダにおいて省略されている情報であるアドレスを求め、シーケンシャルヘッダから通常ヘッダを復元することができる。これにより、全て通常ヘッダを含む複数のライトＴＬＰをエンドポイント３４からルートコンプレックス１４に転送しなくても、ルートコンプレックス１４は複数のライトＴＬＰで転送されてきたデータを連続する論理アドレスに対応するＤＲＡＭ１２内の領域に格納することができる。
【００３２】
［第２実施形態］  
［システム構成例］  
図８は第２の実施形態に係る情報処理システムの一例を示すブロック図である。第１実施形態では１つのルートポート２２には１つのエンドポイント３４が接続されている（ルートポートとエンドポイントが１対１接続）が、第２の実施形態では複数のエンドポイントが１つのルートポート２２に接続される。そのため、ルートポート２２にバスライン２４を介してＰＣＩｅスイッチ（以下、単にスイッチと称する）４０が接続され、スイッチ４０は複数（ここでは２つ）のダウンストリームポート（図示しない）を備える。スイッチ４０の２つのダウンストリームポートにバスライン２６を介して第１エンドポイント３４、第２エンドポイント４６がそれぞれ接続される。第１エンドポイント３４は第１実施形態のエンドポイント３４と同じであり、ＳＳＤ３０に含まれる。第２エンドポイント４６はグラフィックボード４８に接続される。スイッチ４０はルートコンプレックス１４から転送されたメモリリードリクエストをヘッダに含まれるアドレスに応じて第１、第２エンドポイント３４、４６のいずかに転送する。スイッチ４０は第１、第２エンドポイント３４、４６から転送されたライトＴＬＰをルートコンプレックス１４へ転送する。スイッチ４０のアップストリーム側のバスライン２４の帯域幅は、ルートコンプレックス１４とＣＰＵ１０、ＤＲＡＭ１２との間のバスライン１６の帯域幅と等しくてもよく、スイッチ４０のダウンストリーム側のバスライン２６の帯域幅より広くてもよい。
【００３３】
［メモリライトリクエストの転送］  
シーケンシャルヘッダは送信デバイスを判別するためのリクエスタＩＤを含まないため、複数の送信デバイスからライトＴＬＰが転送され、それらが混在した状態でルートコンプレックス１４に転送された場合、ルートコンプレックス１４は複数のライトＴＬＰリクエストの連続性を判別できない。すなわち、ルートコンプレックス１４は複数のライトＴＬＰが連続性を有することを判別できれば、第１実施形態と同様にシーケンシャルヘッダにおいて省略されているアドレスを復元することができるが、ある送信デバイスからの複数のライトＴＬＰの途中に他の送信デバイスからのライトＴＬＰが挿入されると、ルートコンプレックス１４は複数のライトＴＬＰが連続性を有することを判別できず、シーケンシャルヘッダにおいて省略されているアドレスを復元することができない。そのため、ルートコンプレックス１４の代わりにスイッチ４０は複数のエンドポイント３４、４６からのライトＴＬＰの連続性を監視する。スイッチ４０は、転送されてきたライトＴＬＰの送信デバイスが切り替わった場合、切り替わり直後に受信したライトＴＬＰがシーケンシャルヘッダを含む場合、シーケンシャルヘッダを通常ヘッダに変換する。第１実施形態では、ルートコンプレックス１４がシーケンシャルヘッダを通常ヘッダに変換したが、第２実施形態では、エンドポイント３４、４６とルートコンプレックス１４との間に設けられたスイッチがシーケンシャルヘッダを通常ヘッダに変換する。
【００３４】
この変換のために、スイッチ４０は、第１のヒストリテーブル４２（図９（ａ））と第２のヒストリテーブル４４（図９（ｂ））を含む。第１ヒストリテーブル４２は第１エンドポイント３４からのライトＴＬＰのヘッダに含まれるアドレスとデータ長を格納する。第２のヒストリテーブル４４は第２エンドポイント４６からのライトＴＬＰのヘッダに含まれるアドレスとデータ長を格納する。スイッチ４０は、通常ヘッダを含むライトＴＬＰを受信すると、ヘッダ内のアドレスとデータ長を第１ヒストリテーブル４２、又は第２のヒストリテーブル４４に書き込む。スイッチ４０は、シーケンシャルヘッダを含むメモリライトリクエストを受信すると、ヘッダ内のデータ長を第１ヒストリテーブル４２、又は第２のヒストリテーブル４４に書き込むとともに、直前のＴＬＰに関するアドレスとデータ長とを加算して当該リクエストに関するアドレスを求め、当該アドレスを第１ヒストリテーブル４２、または第２のヒストリテーブル４４に書き込む。
【００３５】
図１０を参照して第２実施形態のライトＴＬＰの転送例を説明する。図１０でもヘッダのみを示し、トークン、データ、ＬＣＲＣは図示省略する。ＳＳＤ３４から転送されるデータはＤＲＡＭ１２の論理アドレスＸから始まりアドレスが単純にインクリメントする論理アドレス空間の領域に格納され、グラフィックボード４８から転送されるデータはＤＲＡＭ１２の論理アドレスＹから始まりアドレスが単純にインクリメントする論理アドレス空間の領域に格納される場合を説明する。
【００３６】
第１エンドポイント３４、第２エンドポイント４６それぞれは複数のライトＴＬＰをスイッチ４０に転送する。ＳＳＤ３０内の第１エンドポイント３４は複数のライトＴＬＰをスイッチ４０に連続して転送する。第１エンドポイント３４は１番目のライトＴＬＰのヘッダとして通常ヘッダＨ１１を用いてスイッチ４０に転送する。通常ヘッダＨ１１はデータ長ＮとアドレスＸを含む。第１エンドポイント３４は２番目以降のライトＴＬＰのヘッダとしてシーケンシャルヘッダＨ１２、Ｈ１３、Ｈ１４、…を用いてスイッチ４０に転送する。シーケンシャルヘッダＨ１２、Ｈ１３、Ｈ１４、…はデータ長Ｎを含むが、アドレスは含まない。各ライトＴＬＰのデータ長は同一としているが、ＴＬＰ毎に異なっていてもよい。
【００３７】
グラフィックボード４８内の第２エンドポイント４６も複数のライトＴＬＰをスイッチ４０に連続して転送する。第２エンドポイント４６は１番目のライトＴＬＰのヘッダとして通常ヘッダＨ２１を用いてスイッチ４０に転送する。通常ヘッダＨ２１はデータ長ＭとアドレスＹを含む。第２エンドポイント４６は２番目以降のライトＴＬＰのヘッダとしてシーケンシャルヘッダＨ２２、…を用いてスイッチ４０に転送する。シーケンシャルヘッダＨ２２、…はデータ長Ｍを含むが、アドレスは含まない。各ライトＴＬＰのデータ長は同一としているが、ＴＬＰ毎に異なっていてもよい。
【００３８】
スイッチ４０は、ライトＴＬＰを第１エンドポイント３４と第２エンドポイント４６から送信された順番で受信する。例えば、スイッチ４０は、(1)第１エンドポイント３４から送信され、通常ヘッダＨ１１を含むライトＴＬＰ、(2)第１エンドポイント３４から送信され、シーケンシャルヘッダＨ１２を含むライトＴＬＰ、(3)第２エンドポイント４６から送信され、通常ヘッダＨ２１を含むライトＴＬＰ、(4)第１エンドポイント３４から送信され、シーケンシャルヘッダＨ１３を含むライトＴＬＰ、(5)第２エンドポイント４６から送信され、シーケンシャルヘッダＨ２２を含むライトＴＬＰ、(6)第１エンドポイント３４から送信され、シーケンシャルヘッダＨ１４を含むライトＴＬＰをこの順番で受信する。
【００３９】
スイッチ４０は、ライトＴＬＰをエンドポイント３４、４６から受信した順番でルートコンプレックス１４に送信する。このため、ルートコンプレックス１４が受信するライトＴＬＰでは、第１エンドポイント３４から送信されたライトＴＬＰの途中に第２エンドポイント４６から送信されたライトＴＬＰが混入される可能性がある。その結果、ルートコンプレックス１４は複数のライトＴＬＰの連続性を正しく判別できず、シーケンシャルヘッダにおいて省略されているアドレスを復元することができない場合がある。
【００４０】
これを解決するために、スイッチ４０はメモリライトリクエストの送信デバイス（エンドポイント）が切り替わった否かを検知し、切り替わりを検知後シーケンシャルヘッダを含むライトＴＬＰを受信すると、ヒストリテーブル４２、４４を参照して、シーケンシャルヘッダを通常ヘッダに変換してから、ルートコンプレックス１４へライトＴＬＰを転送する。例えば、図１０に示すようにシーケンシャルヘッダＨ１３、Ｈ２２、Ｈ１４が通常ヘッダＨ１３ａ、Ｈ２２ａ、Ｈ１４ａに変換される。この結果、ルートコンプレックス１４は、(1)第１エンドポイント３４から送信され、通常ヘッダＨ１１を含むライトＴＬＰ、(2)第１エンドポイント３４から送信され、シーケンシャルヘッダＨ１２を含むライトＴＬＰ、(3)第２エンドポイント４６から送信され、通常ヘッダＨ２１を含むライトＴＬＰ、(4)第１エンドポイント３４から送信され、通常ヘッダＨ１３ａを含むライトＴＬＰ、(5)第２エンドポイント４６から送信され、通常ヘッダＨ２２ａを含むライトＴＬＰ、(6)第１エンドポイント３４から送信され、通常ヘッダＨ１４ａを含むライトＴＬＰをこの順番で受信する。これにより、ルートコンプレックス１４は受信したライトＴＬＰの連続性を正しく認識し、ＳＳＤ３４から転送されるデータをＤＲＡＭ１２の論理アドレスＸから始まりアドレスが単純にインクリメントする論理アドレス空間の領域にライトし、グラフィックボード４８から転送されるデータをＤＲＡＭ１２の論理アドレスＹから始まりアドレスが単純にインクリメントする論理アドレス空間の領域にライトすることができる。
【００４１】
第２実施形態はいくつかのライトＴＬＰのシーケンシャルヘッダが通常ヘッダに置き換えられているので、スイッチ４０からルートコンプレックス１４へのライトＴＬＰの転送効率が悪くなる可能性がある。しかし、エンドポイント３４、４６からスイッチ４０への転送の効率が向上する。スイッチ４０のアップストリーム側のバスライン２４の帯域がスイッチ４０のダウンストリーム側のバスライン２６の帯域より広い場合、エンドポイント３４、４６からスイッチ４０への転送の効率が向上すれば、システム全体の転送効率が向上する。
【００４２】
［第３実施形態］  
第２実施形態と同様に第３実施形態でも、複数の送信デバイスが１つの受信デバイスに接続される。第２実施形態のスイッチ４０は、複数の送信デバイスから送信されたライトＴＬＰの連続性を監視し、送信デバイスが切り替わるとシーケンシャルヘッダを通常ヘッダに変換することにより、ライトＴＬＰの連続性を維持する。第３実施形態のスイッチ４０ａは複数の送信デバイスからのライトＴＬＰをルートコンプレックス１４に転送する際の順番を制御（ルーティング）することにより、ライトＴＬＰの連続性を維持する。第３実施形態では、スイッチ４０のアップストリーム側のバスライン２４の帯域幅とスイッチ４０のダウンストリーム側のバスライン２６の帯域幅は等しくてもよい。第３実施形態の情報処理システムのブロック図は上記以外は図８に示した第２実施形態のブロック図と同じであるので、図示省略する。
【００４３】
図１１を参照して第３実施形態の転送例を説明する。第２実施形態と同様に、第１エンドポイント３４は複数のライトＴＬＰをスイッチ４０ａに連続して転送する。第１エンドポイント３４は１番目のライトＴＬＰのヘッダとして通常ヘッダＨ１１を用いてスイッチ４０ａに転送する。通常ヘッダＨ１１はデータ長ＮとアドレスＸを含む。第１エンドポイント３４は２番目以降のライトＴＬＰのヘッダとしてシーケンシャルヘッダＨ１２、Ｈ１３、…を用いてスイッチ４０ａに転送する。シーケンシャルヘッダＨ１２、Ｈ１３、…はデータ長Ｎを含むが、アドレスは含まない。
【００４４】
第２エンドポイント４６も複数のライトＴＬＰをスイッチ４０ａに連続して転送する。第２エンドポイント４６は１番目のライトＴＬＰのヘッダとして通常ヘッダＨ２１を用いてスイッチ４０ａに転送する。通常ヘッダＨ２１はデータ長ＭとアドレスＹを含む。第２エンドポイント４６は２番目以降のライトＴＬＰのヘッダとしてシーケンシャルヘッダＨ２２、…を用いてスイッチ４０ａに転送する。シーケンシャルヘッダＨ２２、…はデータ長Ｍを含むが、アドレスは含まない。
【００４５】
スイッチ４０は、第１、第２エンドポイント３４、４６の一方からのライトＴＬＰをルートコンプレックス１４へ転送開始すると、第１、第２エンドポイント３４、４６の他方からのライトＴＬＰを図示しないスイッチ４０ａ内のバッファメモリに格納する。このバッファメモリへの格納は、第１、第２エンドポイント３４、４６の一方からの全てのライトＴＬＰをルートコンプレックス１４に転送し終わるまで、続けられる。
【００４６】
これにより、スイッチ４０ａは、例えば、第１エンドポイント３４からの全ライトＴＬＰを、受信した順番通りルートコンプレックス１４へ転送する間、第２エンドポイント４６からの全ライトリＴＬＰをバッファメモリに格納する。スイッチ４０ａからルートコンプレックス１４への第１エンドポイント３４からの全ライトＴＬＰの転送が完了すると、スイッチ４０ａは、バッファメモリに格納されている第２エンドポイント４６からの全ライトＴＬＰを、受信した順番通りルートコンプレックス１４へ転送する。すなわち、スイッチ４０ａは、第１エンドポイント３４と第２エンドポイント４６からどのようなタイミングで、かつどのような順番でライトＴＬＰを受信しても、第１エンドポイント３４、又は第２エンドポイント４６からの全ライトＴＬＰを受信した順番通りの順番で連続してルートコンプレックス１４に転送する。ルートコンプレックス１４は第１エンドポイント３４、又は第２エンドポイント４６からのライトＴＬＰを連続して受信するので、シーケンシャルヘッダを通常ヘッダに変換することができる。
【００４７】
このため、第３実施形態では、スイッチ４０ａからルートコンプレックス１４へ転送されるライトＴＬＰにおいてシーケンシャルヘッダを通常ヘッダに変換する必要が無く、第２実施形態に比べて転送効率を向上することができる。さらに、第３実施形態によれば、第２実施形態のようにヒストリテーブルを用いて、複数のエンドポイントから転送されたライトＴＬＰの送受信の関係の連続性を監視する必要がないので、構成が簡単である。
【００４８】
［第４実施形態］  
第２、第３実施形態と同様に第４実施形態でも、複数のエンドポイントが１つのルートコンプレックスに接続される。上述の実施形態のシーケンシャルヘッダは通常ヘッダの最初のＤＷ０のみからなり、送信デバイスを特定するリクエスタＩＤを含まないので、複数のエンドポイントからＴＬＰが送信される場合、第２、第３実施形態のような対応が必要であった。第４実施形態では、シーケンシャルヘッダを変更し、リクエスタＩＤを含むようにする。このため、ヒストリテーブル４２、４４は不要である。第４実施形態の情報処理システムのブロック図は上記以外は図８に示した第２実施形態のブロック図と同じであるので、図示省略する。
【００４９】
図１２は、第４実施形態のライトＴＬＰのヘッダの一例を示す。図１２（ａ）は通常ヘッダの一例を示し、図１２（ｂ）はシーケンシャルヘッダの一例を示す。図１２（ａ）に示す通常ヘッダは図３（ａ）に示す通常ヘッダと同じである。図１２（ｂ）に示すシーケンシャルヘッダは通常ヘッダの先頭の２ＤＷからなり、通常ヘッダのＤＷ２、ＤＷ３が省略されている。すなわち、シーケンシャルヘッダは、リクエスタＩＤを含む。
【００５０】
第４実施形態でも、第２、第３実施形態と同様に、ＳＳＤ３０内のエンドポイント３４とグラフィックボード４８内のエンドポイント４６それぞれからスイッチ４０を介してルートコンプレックス４１４に複数のライトＴＬＰが連続して転送されるとする。エンドポイント３４、４６は１番目のＴＬＰのヘッダとして通常ヘッダを用い、２番目以降のＴＬＰのヘッダとしてシーケンシャルヘッダを用いる。第２、第３実施形態と異なる点は、シーケンシャルヘッダの内容である。
【００５１】
スイッチ４０は、第１エンドポイント３４からライトＴＬＰを受信すると、そのままルートコンプレックス１４へ転送し、第２エンドポイント４６からライトＴＬＰを受信しても、そのままルートコンプレックス１４へ転送する。すなわち、図１０に示す第２実施形態と同様に、ルートコンプレックス１４は第１エンドポイント３４から送信されたライトＴＬＰの途中に第２エンドポイント４６から送信されたライトＴＬＰが混入した状態で、第１エンドポイント３４、第２エンドポイント４６から送信されたライトＴＬＰを受信する可能性がある。しかし、全てのライトＴＬＰのヘッダは送信デバイスを示すリクエスタＩＤを含んでいるので、ルートコンプレックス１４は各メモリライトリクエストの送信デバイスが分かるので、シーケンシャルヘッダを通常ヘッダに変換することができる。
【００５２】
図１３は１ＭＢのデータをＳＳＤ３４からＤＲＡＭ１２に転送する（ＳＳＤリード）際のライトＴＬＰの転送の一例を示す。図１３（ａ）は比較例の転送例を示し、図１３（ｂ）は第４実施形態の転送例を示す。比較例では全てのライトＴＬＰは１６バイトの通常ヘッダを含み、第４実施形態では最初のライトＴＬＰのみ通常ヘッダを含み、２番目以降のライトＴＬＰは２ＤＷ（＝８バイト）のシーケンシャルヘッダを含む。データ長を１２８バイトとし、８１９２個のライトＴＬＰでデータを転送するとする。比較例では、１個のライトＴＬＰは１５２バイトであり、８１９２個のライトＴＬＰの総転送量は１，２４５，１８４（＝１５２×８１９２）バイトである。第４実施形態では、１番目のライトＴＬＰは１５２バイトであるが、２番目以降のＴＬＰは１４４バイトであり、８１９２個のライトＴＬＰの総転送量タは１，１７９，６５６（＝１５２＋１４４×８１９１）バイトである。第４実施形態は比較例に比べて約５％（＝１，１７９，６５６÷１，２４５，１８４）の転送効率が向上される。
【００５３】
第４実施形態によれば、第２実施形態のように、ＰＣＩｅスイッチ４０はヒストリテーブル４２、４４を用いて、複数の送信デバイスから転送されたライトＴＬＰの送受信の関係の連続性を監視する必要がないので、構成が簡単であるとともに、ＰＣＩｅスイッチ４０はシーケンシャルヘッダを通常ヘッダに変換して、シーケンシャルヘッダの代わりに通常ヘッダを含むライトＴＬＰをルートコンプレックス１４に転送することをしないので、第２実施形態に比べて転送効率を向上することができる。さらに、第３実施形態のように特定のポート以外のポートの転送を止めることもないので、どのエンドポイント３０、４８からのデータも遅延なくルートコンプレックス１４へ転送することができる。
【００５４】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００５５】
１４…ＰＣＩｅルートコンプレックス、２２…ＰＣＩｅルートポート、３０…ＳＳＤ、３２…ＳＳＤコントローラ、３４…ＰＣＩｅエンドポイント、３６…フラッシュメモリ。
【図１】
2019164486.tif 000003
【図２】
2019164486.tif 000004
【図３】
2019164486.tif 000005
【図４】
2019164486.tif 000006
【図５】
2019164486.tif 000007
【図６】
2019164486.tif 000008
【図７】
2019164486.tif 000009
【図８】
2019164486.tif 000010
【図９】
2019164486.tif 000011
【図１０】
2019164486.tif 000012
【図１１】
2019164486.tif 000013
【図１２】
2019164486.tif 000014
【図１３】
2019164486.tif 000015