(57)【特許請求の範囲】
【請求項１】
複数のマスタと、
複数のスレーブと、
バッファを含み、前記複数のマスタが前記複数のスレーブにアクセスする場合に送信中継と返信中継を実行する中継部と、
複数のチップと、を備え、
前記複数のマスタのそれぞれは、前記複数のスレーブに対してアクセスする際に経由するチップ数が異なり、
前記複数のチップには、前記複数のマスタ及び前記中継部を備えているが、前記複数のスレーブを備えていないチップが含まれており、
前記送信中継において、前記中継部は、
前記複数のマスタから送信されてきたリードリクエストを中継する際に、当該リードリクエストを特定する第１の情報、当該リードリクエストを送信したマスタを特定する第２の情報、当該マスタが送信したリードリクエストの中で当該リードリクエストが送信されてきた順番を特定する第３の情報を対応付けた送信中継情報を記憶する処理を、前記複数のマスタから送信されてきたリードリクエストの順に実行し、
前記返信中継において、前記中継部は、
(ａ)前記複数のスレーブからリードリクエストに応じて返信されてきた前記第１の情報を有する返信データを中継する際に、当該返信データを前記バッファに格納し、(ｂ)同じマスタに返信する返信データであって対応するリードリクエストの順番が先である返信データを中継していれば、前記(ａ)の返信データを中継し、(ｃ)前記順番が先である返信データを中継していなければ、前記(ａ)の返信データを前記バッファで保持し、前記順番が先である返信データの中継をした後、前記バッファに保持されている前記(ａ)の返信データを中継する処理を、前記送信中継情報を基にして前記複数のスレーブから返信されてきた返信データの順に実行する情報処理装置。
【請求項２】
前記中継部は、前記複数のチップのうち、前記複数のスレーブから返信されてきた返信データが前記複数のマスタへ分流する箇所を有するチップに設けられている請求項１に記載の情報処理装置。
【請求項３】
前記複数のチップ間のインターフェースはＰＣＩエキスプレスである請求項１又は２に記載の情報処理装置。
【請求項４】
前記ＰＣＩエキスプレスのトランザクションのパケットのＩＤを、前記第１の情報とする請求項３に記載の情報処理装置。
【請求項５】
前記送信中継において、前記中継部は、
前記送信されてきたリードリクエストに前記第１の情報を付加して中継し、
前記返信中継において、前記中継部は、
前記返信されてきた返信データに付加されている前記第１の情報と前記送信中継情報とを用いて、前記返信されてきた返信データを保持するか又は中継するかを選択する請求項１〜３のいずれか一項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は複数のマスタが複数のスレーブに対してアクセス可能な情報処理装置に関する。
【背景技術】
【０００２】
複数のマスタ(マルチマスタ)が複数のスレーブ(マルチスレーブ)に対してアクセス可能なシステム(以下、マルチマスタ-マルチスレーブ)が提供されている。マスタとは制御する側のデバイスであり、ＣＰＵ(Central Processing Unit)、ＤＭＡ(Direct Memory Access)コントローラ等を指している。スレーブとは制御される側のデバイスであり、メモリ、Ｉ／Ｏ(Input/Output)デバイス等を指している。
【０００３】
マルチマスタ-マルチスレーブとして、共有バスを介して接続される複数のＣＰＵと複数のメモリまたはＩ／Ｏデバイスとをバスを介して接続したシステムコントローラであって、新たな命令を発行したＣＰＵ と、その命令の転送先と、転送保留中の命令を発行したＣＰＵとを識別する識別情報を保持する保持手段と、リード命令の転送とそのリード命令に対するリターンデータの転送とが独立して実行される転送手段と、リード時に、保持手段の保持内容に基づいて、リターンデータが転送命令の発行順と入れ替わらないように、転送手段を制御する順序制御手段と、を備えたものが提案されている(例えば特許文献１参照)。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１２６６７８号公報
【０００５】
マルチマスタ-マルチスレーブに適用できるインターフェースとして、ＰＣＩエキスプレス(Peripheral Component Interconnect Express)がある。ＰＣＩエキスプレスはシリアル転送インターフェースであり、ＰＣＩのようなパラレルインターフェースの欠点を改良し、高速データ転送を可能とする。ＰＣＩエキスプレスは複数のチップどうしの間及びチップとＣＰＵとの間のインターフェースとして用いることができる。ＰＣＩエキスプレスを使用したシステムはチップの長寿命化、開発コストの削減、拡張性及び汎用性に関して有効である。
【０００６】
ＰＣＩエキスプレスではトランザクション層でパケットをやり取りする。トランザクションとしてメモリリクエスト、Ｉ／Ｏリクエスト、コンプリーション等がある。
【０００７】
メモリリクエストとはメモリに対するリード・ライトリクエストである。Ｉ／ＯリクエストとはＩ／Ｏデバイスに対するリード・ライトリクエストである。コンプリーションとはリクエストに対する応答であり、リードリクエストの場合にはデータが含まれる。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
マルチマスタ-マルチスレーブでは、マスタからスレーブまでに経由するチップ数の差、リクエスト内容による処理時間の差、スレーブの応答時間の差等の理由で、リードリクエストの順番とリードリクエストに応じて返信されてきた返信データ(例えばコンプリーションデータ)の順番とが異なることが不可避的に発生する。各マスタにバッファを設けて、返信データの順番を正しく並び変える態様が考えられる。しかし、この態様では順番を並び替えるためのバッファを各マスタに設ける必要があるので、非効率である。
【０００９】
本発明はリードリクエストに応じて複数のスレーブから返信されてきた返信データの順番を並び替えるためのバッファを各マスタに設ける必要がない情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成する本発明の一の局面に係る情報処理装置は、複数のマスタと、複数のスレーブと、前記複数のマスタが前記複数のスレーブにアクセスする場合に送信中継と返信中継を実行する中継部と、を備え、前記送信中継において、前記中継部は、前記複数のマスタから送信されてきたリードリクエストを中継する際に、当該リードリクエストを特定する第１の情報、当該リードリクエストを送信したマスタを特定する第２の情報、当該マスタが送信したリードリクエストの中で当該リードリクエストが送信されてきた順番を特定する第３の情報を対応付けた送信中継情報を記憶する処理を、前記複数のマスタから送信されてきたリードリクエストの順に実行し、前記返信中継において、前記中継部は、前記複数のスレーブからリードリクエストに応じて返信されてきた前記第１の情報を有する返信データを中継する際に、同じマスタに返信する返信データであって対応するリードリクエストの順番が先である返信データを中継していれば、前記返信されてきた返信データを中継し、前記順番が先である返信データを中継していなければ、前記順番が先である返信データを中継するまで前記返信されてきた返信データを保持する処理を、前記送信中継情報を基にして前記複数のスレーブから返信されてきた返信データの順に実行する。
【００１１】
本発明によれば、中継部は、同じマスタに返信する返信データであって対応するリードリクエストの順番が先である返信データを中継していれば、返信されてきた返信データを中継し、順番が先である返信データを中継していなければ、順番が先である返信データを中継するまで返信されてきた返信データを保持する処理を実行する。従って、中継部は、同じマスタに返信する返信データの順番がリードリクエストの順番と異なっていれば、返信データの順番をリードリクエストの順番に合うように順番を変更して中継する。よって、本発明によれば、返信データの順番がリードリクエストの順番と異なる場合に、返信データを正しい順番に並び替えるためのバッファを各マスタに設ける必要がなくなる。
【００１２】
なお、本発明において、複数のマスタが複数のスレーブに対してアクセスするとは、複数のマスタの少なくとも一つが複数のスレーブに対してアクセスすることである。従って、残りのマスタについては複数のスレーブに対してアクセスしてもよいし、一つのスレーブに対してアクセスしてもよい。
【００１３】
上記構成の前記送信中継において、前記中継部は、前記送信されてきたリードリクエストに前記第１の情報を付加して中継し、前記返信中継において、前記中継部は、前記返信されてきた返信データに付加されている前記第１の情報と前記送信中継情報とを用いて、前記返信されてきた返信データを保持するか又は中継するかを選択する。
【００１４】
この構成は第１の情報を、リードリクエストに含まれる情報(例えばパケットＩＤ)ではなく、リードリクエストに含まれない情報にした場合の態様である。
【００１５】
上記構成において、複数のチップ(チップセット)を備え、前記複数のマスタの少なくとも１つは、前記複数のスレーブに対してアクセスする際に経由するチップ(チップセット)数が異なる。
【００１６】
マスタがスレーブにアクセスする際に経由するチップ(チップセット)数が異なれば、返信データの順番がリードリクエストの順番と異なることが発生しやすい。従って、複数のマスタの少なくとも１つが、複数のスレーブに対してアクセスする際に経由するチップ(チップセット)数が異なる場合に本発明は好適である。
【００１７】
上記構成において、前記中継部は、前記複数のチップ(チップセット)のうち、前記複数のスレーブから返信されてきた返信データが前記複数のマスタへ分流する箇所を有するチップ(チップセット)に設けられている。
【００１８】
この構成によれば、中継部が複数のマスタの近くに配置されるので、中継部で正しい順番に変更された返信データについて再び順番が変更されてしまう可能性を低くすることができる。
【００１９】
上記構成において、前記複数のチップ(チップセット)間のインターフェースはＰＣＩエキスプレスである。
【００２０】
この構成によれば、リードリクエスト及び返信データの転送を高速化できる。
本発明の他の局面に係る情報処理装置は、複数のマスタと、複数のスレーブと、バッファを含み、前記複数のマスタが前記複数のスレーブにアクセスする場合に送信中継と返信中継を実行する中継部と、複数のチップと、を備え、前記複数のマスタのそれぞれは、前記複数のスレーブに対してアクセスする際に経由するチップ数が異なり、前記複数のチップには、前記複数のマスタ及び前記中継部を備えているが、前記複数のスレーブを備えていないチップが含まれており、前記送信中継において、前記中継部は、前記複数のマスタから送信されてきたリードリクエストを中継する際に、当該リードリクエストを特定する第１の情報、当該リードリクエストを送信したマスタを特定する第２の情報、当該マスタが送信したリードリクエストの中で当該リードリクエストが送信されてきた順番を特定する第３の情報を対応付けた送信中継情報を記憶する処理を、前記複数のマスタから送信されてきたリードリクエストの順に実行し、前記返信中継において、前記中継部は、(ａ)前記複数のスレーブからリードリクエストに応じて返信されてきた前記第１の情報を有する返信データを中継する際に、当該返信データを前記バッファに格納し、(ｂ)同じマスタに返信する返信データであって対応するリードリクエストの順番が先である返信データを中継していれば、前記(ａ)の返信データを中継し、(ｃ)前記順番が先である返信データを中継していなければ、前記(ａ)の返信データを前記バッファで保持し、前記順番が先である返信データの中継をした後、前記バッファに保持されている前記(ａ)の返信データを中継する処理を、前記送信中継情報を基にして前記複数のスレーブから返信されてきた返信データの順に実行する。
【発明の効果】
【００２１】
本発明によれば、リードリクエストに応じて複数のスレーブから返信されてきた返信データの順番を並び替えるためのバッファを各マスタに設ける必要がなくなる。
【図面の簡単な説明】
【００２２】
【図１】本実施形態に係る情報処理装置の構成を示すブロック図である。
【図２】リードリクエスト及びコンプリーションデータが流れる経路を示す図である。
【図３】リードリクエストの送信中継を説明する図である。
【図４】送信中継情報を表で示した図である。
【図５】コンプリーションデータの返信中継を説明する図である。
【図６】返信中継でのバッファと送信中継情報との関係を示す図である。
【発明を実施するための形態】
【００２３】
以下、図面に基づいて本発明の実施形態について図を用いて詳細に説明する。図１は本実施形態に係る情報処理装置１の構成を示すブロック図である。情報処理装置１は例えば画像形成装置に適用でき、３つのチップ１１，１３，１５と２つのメモリＸ，Ｙとを備えている。複数のマスタＡ，Ｂは複数のチップ１１，１３，１５を経由して複数のメモリ(スレーブの一例)Ｘ，Ｙにアクセスする。
【００２４】
チップ１１はＣＰＵ２１、メモリコントローラ２３、ルートコンプレックス２５，２７及びこれらを接続する内部バス２９を備える。ＣＰＵ２１は情報処理装置１の全体を統括制御する。メモリコントローラ２３はメモリＹをコントロールする。ルートコンプレックス２５，２７はＰＣＩエキスプレスにおける階層の最上層であり、ホストとして機能する。
【００２５】
チップ１３はエンドポイント３１、２つのマスタＡ，Ｂ、中継部３３及び内部バス３５を備える。エンドポイント３１はＰＣＩエキスプレスに準拠しないデバイスのために、トランザクションのリクエスタ(要求を出す側)又はコンプリータ(完了させる側)となるデバイスである。エンドポイント３１とルートコンプレックス２５との間、言い換えればチップ１１，１３間のインターフェース３７はＰＣＩエキスプレスである。
【００２６】
マスタＡ，ＢはＤＭＡコントローラであり、内部バス３５と接続されている。
【００２７】
中継部３３はエンドポイント３１と内部バス３５とを接続する。マスタＡ，ＢがそれぞれメモリＸ，Ｙにアクセスする際に送信中継と返信中継を実行する。これらの中継については後で説明する。
【００２８】
チップ１５はエンドポイント４１、メモリコントローラ４３及びこれらを接続する内部バス４５を備える。エンドポイント４１はエンドポイント３１と同様の機能を有する。エンドポイント４１とルートコンプレックス２７との間、言い換えればチップ１１，１５間のインターフェース４７はＰＣＩエキスプレスである。メモリコントローラ４３はメモリＸをコントロールする。
【００２９】
本実施形態に係る情報処理装置１によるリードリクエストの送信について説明する。図２はリードリクエスト及びコンプリーションデータが流れる経路を示す図である。図３はリードリクエストの送信中継を説明する図である。コンプリーションデータはリードリクエストに応じて返信されてきた返信データの一例である。
【００３０】
３つのリードリクエストＲ−Ａ１，Ｒ−Ａ２，Ｒ−Ｂ１を例に説明する。リードリクエストＲ−Ａ１はマスタＡがメモリＸに対して発行したリードリクエストである。リードリクエストＲ−Ａ２はマスタＡがメモリＹに対して発行したリードリクエストである。リードリクエストＲ−Ｂ１はマスタＢがメモリＹに対して発行したリードリクエストである。
【００３１】
リードリクエストＲ−Ａ１，Ｒ−Ａ２，Ｒ−Ｂ１の順番で中継部３３に到達したとする。中継部３３は、マスタＡ，Ｂから送信されてきたリードリクエストＲ−Ａ１，Ｒ−Ａ２，Ｒ−Ｂ１を中継する場合に、そのリードリクエストを特定する第１の情報、そのリードリクエストを送信したマスタを特定する第２の情報及びそのマスタが送信したリードリクエストの中でそのリードリクエストが送信されてきた順番を特定する第３の情報を対応付けた送信中継情報を記憶する処理をマスタＡ，Ｂから送信されてきたリードリクエストＲ−Ａ１，Ｒ−Ａ２，Ｒ−Ｂ１の順に実行する。
【００３２】
これを具体的に説明する。図４は送信中継情報を表で示した図である。送信中継情報は中継部３３に備えられる記憶部５１に記憶される。タグはリードリクエストを特定する第１の情報である。タグは「１」から始まる連続番号が予め用意されている。
【００３３】
中継部３３は、最初に到達したリードリクエストＲ−Ａ１について、タグ「１」を割り当て、送信したマスタを特定する第２の情報として「Ａ」を記憶し、マスタＡが送信したリードリクエストＲ−Ａ１，Ｒ−Ａ２の中でそのリードリクエストＲ−Ａ１が送信されてきた順番を特定する第３の情報として「１」を記憶する。そして、図３に示すように、中継部３３はリードリクエストＲ−Ａ１にタグ「１」を付加して中継する。タグは例えばトランザクション層のパケットのヘッダに設けられたリザーブ領域に付加する。
【００３４】
中継部３３は、次に到達したリードリクエストＲ−Ａ２について、タグ「２」を割り当て、送信したマスタを特定する第２の情報として「Ａ」を記憶し、マスタＡが送信したリードリクエストＲ−Ａ１，Ｒ−Ａ２の中でそのリードリクエストＲ−Ａ２が送信されてきた順番を特定する第３の情報として「２」を記憶する。そして、中継部３３はリードリクエストＲ−Ａ２にタグ「２」を付加して中継する。
【００３５】
中継部３３は、三番目に到達したリードリクエストＲ−Ｂ１について、タグ「３」を割り当て、送信したマスタを特定する第２の情報として「Ｂ」を記憶し、マスタＢが送信したリードリクエストＲ−Ｂ１の中でそのリードリクエストＲ−Ｂ１が送信されてきた順番を特定する第３の情報として「１」を記憶する。そして、中継部３３はリードリクエストＲ−Ｂ１にタグ「３」を付加して中継する。
【００３６】
次に、本実施形態に係る情報処理装置１によるコンプリーションデータ(返信データの一例)の返信について図２、図５及び図６を用いて説明する。図５はコンプリーションデータの返信中継を説明する図である。図６は返信中継でのバッファと送信中継情報との関係を示す図である。
【００３７】
図５に示すように、コンプリーションデータＣ−Ａ１はリードリクエストＲ−Ａ１に対する応答であり、メモリＸからマスタＡに返信される。コンプリーションデータＣ−Ａ２はリードリクエストＲ−Ａ２に対する応答であり、メモリＹからマスタＡに返信される。コンプリーションデータＣ−Ｂ１はリードリクエストＲ−Ｂ１に対する応答であり、メモリＹからマスタＢに返信される。
【００３８】
コンプリーションデータＣ−Ａ２，Ｃ−Ｂ１，Ｃ−Ａ１の順にルートコンプレックス２５に到達し、この順番で中継部３３に到達したとする。中継部３３はコンプリーションデータを記憶するバッファ５３を備える。
【００３９】
中継部３３は、複数のメモリＸ，Ｙから返信されてきたコンプリーションデータＣ−Ａ２，Ｃ−Ｂ１，Ｃ−Ａ１を中継する際に、同じマスタに返信するコンプリーションデータであって対応するリードリクエストの順番が先であるコンプリーションデータを中継していれば、返信されてきたコンプリーションデータを中継し、順番が先であるコンプリーションデータを中継していなければ、順番が先であるコンプリーションデータを中継するまで返信されてきたコンプリーションデータを保持する処理を、送信中継情報を基にして複数のメモリＸ，Ｙから返信されてきたコンプリーションデータＣ−Ａ２，Ｃ−Ｂ１，Ｃ−Ａ１の順に実行する。これを具体的に説明する。
【００４０】
中継部３３は、最初に到達したコンプリーションデータＣ−Ａ２をバッファ５３に格納する。図６(Ａ)に示すように、中継部３３は記憶部５１に記憶されている送信中継情報を参照して、コンプリーションデータＣ−Ａ２に付加されているタグ「２」と同じ番号のタグの欄において、順番が「１」であるか判断する。タグ「２」では順番が「２」である。これは、「１」に対応するコンプリーションデータＣ−Ａ１がマスタＡにまだ返信されていないこと示す。コンプリーションデータＣ−Ａ２はリードリクエストＲ−Ａ２に対する応答である。マスタＡに先に返信すべきデータはリードリクエストＲ−Ａ１に対する応答であるコンプリーションデータＣ−Ａ１である。従って、中継部３３はコンプリーションデータＣ−Ａ２をバッファ５３で保持する。  
【００４１】
中継部３３は、次に到達したコンプリーションデータＣ−Ｂ１をバッファ５３に格納する。図６(Ｂ)に示すように、中継部３３は送信中継情報を参照して、コンプリーションデータＣ−Ｂ１に付加されているタグ「３」と同じ番号のタグの欄において、順番が「１」であるか判断する。タグ「３」では順番が「１」である。これはマスタＢにとってバッファ５３で保持せずに中継すべきデータであることを示している。従って、中継部３３はコンプリーションデータからタグ「３」を削除して、マスタＢへ返信する中継を実行する。
【００４２】
中継部３３は、３番目に到達したコンプリーションデータＣ−Ａ１をバッファ５３に格納する。図６(Ｃ)に示すように、中継部３３は送信中継情報を参照して、コンプリーションデータＣ−Ａ１に付加されているタグ「１」と同じ番号のタグの欄において、順番が「１」であるか判断する。タグ「１」では順番が「１」である。これはマスタＡにとってバッファ５３で保持せずに中継すべきデータであることを示している。従って、中継部３３はコンプリーションデータＣ−Ａ１からタグ「１」を削除して、マスタＡへ返信する中継を実行する。また、中継部３３は送信中継情報において、マスタＡについての順番を繰り上げる処理をする。ここでは、タグ「２」の欄において、順番を「２」から「１」に繰り上げる。
【００４３】
中継部３３は、コンプリーションデータＣ−Ａ１の中継後、バッファ５３で保持されているコンプリーションデータＣ−Ａ２について、図６(Ｄ)に示すように送信中継情報を参照して、コンプリーションデータＣ−Ａ２に付加されているタグ「２」と同じ番号のタグの欄において、順番が「１」であるか判断する。タグ「２」では順番が「１」である。これはバッファ５３に保持せずにマスタＡに返信すべきデータであることを示している。従って、図５に示すように中継部３３はコンプリーションデータＣ−Ａ２からタグ「２」を削除して、マスタＡへ返信する中継を実行する。
【００４４】
本実施形態の主な効果を説明する。本実施形態によれば、中継部３３は、マスタＡ，Ｂから送信されてきたリードリクエストＲ−Ａ１，Ｒ−Ａ２，Ｒ−Ｂ１を送信中継する際に、送信中継情報を作成して記憶すると共にリードリクエストＲ−Ａ１，Ｒ−Ａ２，Ｒ−Ｂ１にタグ「１」、「２」、「３」を付加して中継する。中継部３３は、メモリＸ，Ｙから返信されてきたコンプリーションデータＣ−Ａ１，Ｃ−Ａ２，Ｃ−Ｂ１を返信中継する際に、送信中継情報とタグを用いて、以下の処理をする。同じマスタに返信するコンプリーションデータであって対応するリードリクエストの順番が先であるコンプリーションデータを中継していれば、返信されてきたコンプリーションデータを中継し、順番が先であるコンプリーションデータを中継していなければ、順番が先であるコンプリーションデータを中継するまで返信されてきたコンプリーションデータをバッファ５３で保持する。
【００４５】
従って、中継部３３は、同じマスタに返信するコンプリーションデータの順番がリードリクエストの順番と異なっていれば、コンプリーションデータの順番をリードリクエストの順番に合うように順番を変更して中継する。よって、コンプリーションデータの順番がリードリクエストの順番と異なる場合に、コンプリーションデータを正しい順番に変更するためのバッファをマスタＡ，Ｂのそれぞれに設ける必要がなくなる。
【００４６】
以上より、本実施形態によれば、複数のマスタＡ，Ｂが複数のメモリＸ，Ｙに対してアクセスする場合に、コンプリーションデータの順番を並び替えるためのバッファを各マスタＡ，Ｂに設ける必要がなくなる。
【００４７】
また、本実施形態によれば、リードレイテンシを小さくすることができる。詳細に説明すると、中継装置３３のバッファ５３に複数のメモリＸ，Ｙから返信されてきたコンプリーションデータの全部を記憶させ、コンプリーションデータの順番を正しく並び替えて、各メモリＸ，Ｙに返信する態様が考えられる。しかし、この態様ではコンプリーションデータの全部をバッファ５３に一度記憶させる結果、全てのリードリクエストに対応するコンプリーションデータが返信された後でなければ、各マスタＡ，Ｂがコンプリーションデータを受信できないので、リードレイテンシが大きくなる可能性がある。
【００４８】
これに対して、本実施形態では、中継部３３が返信中継において返信されてきたコンプリーションデータを保持する処理を同じマスタに返信するコンプリーションデータに対して実行するので、異なるマスタＡ，Ｂに返信するコンプリーションデータについては、返信されてきたコンプリーションデータの順番に中継される。よって、マスタＢにとってはリードレイテンシを小さくできる。
【００４９】
さらに、本実施形態によれば、複数のマスタＡ，Ｂが複数のチップ１１，１３，１５を経由して複数のメモリＸ，Ｙにアクセスする情報処理装置１に中継部３３を備えている。そして、複数のマスタＡ，Ｂの少なくとも１つ(マスタＡ)は、複数のメモリＸ，Ｙに対してアクセスする際に経由するチップ数が異なる。マスタがメモリにアクセスする際に経由するチップ数が異なれば、コンプリーションデータの順番がリードリクエストの順番と異なることが発生しやすいので、本実施形態は特に有効となる。
【００５０】
本実施形態によれば、図１に示すように中継部３３をチップ１３に設けている。チップ１３は複数のチップ１１，１３，１５のうち、複数のメモリＸ，Ｙから返信されてきたコンプリーションデータが複数のマスタＡ，Ｂへ分流する箇所(内部バス３５)を有するチップである。中継部３３をチップ１３に設けることにより、中継部３３が複数のマスタＡ，Ｂの近くに配置されるので、中継部３３で正しい順番に変更されたコンプリーションデータについて再び順番が変更されてしまう可能性を低くすることができる。なお、中継部３３は複数のメモリＸ，Ｙから返信されてきたコンプリーションデータが合流する箇所(内部バス２９)から、複数のマスタＡ，Ｂへ分流する箇所(内部バス３５)までの間に設けることができる。
【００５１】
本実施形態によれば、複数のチップ１１，１３，１５間のインターフェース３７，４７はＰＣＩエキスプレスである。従って、リードリクエスト及びコンプリーションデータの転送を高速化できる。
【００５２】
なお、本実施形態では複数のマスタが複数のスレーブに対してアクセスする態様として、マスタＡがメモリＸ，Ｙにアクセスし、マスタＢがメモリＹにアクセスする態様で説明した。これ以外に、マスタＡがメモリＸ，Ｙにアクセスし、マスタＢがメモリＸ，Ｙにアクセスする態様でもよい。
【００５３】
本実施形態ではリードリクエストを特定する第１の情報としてタグを用いており、リードリクエストに第１の情報を付加して中継しているが、トランザクションのパケットのＩＤ等を第１の情報としてリードリクエストを特定してもよい。これによれば、第１の情報をリードリクエストに付加する処理が不要となる。
【００５４】
複数のチップで説明したが複数のチップセットでも本実施形態を適用できる。
【符号の説明】
【００５５】
１  情報処理装置
１１，１３，１５  チップ
３３  中継部
５１  記憶部
５３  バッファ
【図１】
0005613517.tif 000002
【図２】
0005613517.tif 000003
【図３】
0005613517.tif 000004
【図４】
0005613517.tif 000005
【図５】
0005613517.tif 000006
【図６】
0005613517.tif 000007