(57)【要約】【課題】各シリアルインターフェイスを通過するデータのレイテンシのばらつきを減少させること。【解決手段】記憶装置から読み出されるデータを処理装置に転送する転送装置において、前記転送装置は、保持部が有する複数のエントリのいずれかに保持され、前記処理装置に送信される送信データ又は送信済みの送信データのうち、前記エントリの位置を示す位置情報に基づいた送信予定の送信データの情報を示す送信予定データ情報と、前記エントリの位置を示す位置情報に基づいた前記処理装置への到着が未確認である送信データの情報を示す送達未確認データ情報とをそれぞれ生成するとともに、前記送信予定データ情報または前記送達未確認データ情報が所定の条件を満たすかについての判定結果に基づき、停止要求をそれぞれ出力する複数の送受信部と、前記停止要求が前記送受信部から入力された場合、入力された前記停止要求の出力元の送受信部に対し、前記記憶装置から受信したデータの振り分けを停止する振分部とを有する。【選択図】図１０
2015198278.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する記憶装置と、前記記憶装置にリクエストを送信する処理装置と、前記記憶装置から読み出されるデータを前記処理装置に転送する転送装置とを備える情報処理装置において、
前記転送装置は、
保持部が有する複数のエントリのいずれかに保持され、前記処理装置に送信される送信データ又は送信済みの送信データのうち、前記エントリの位置を示す位置情報に基づいた送信予定の送信データの情報を示す送信予定データ情報と、前記エントリの位置を示す位置情報に基づいた前記処理装置への到着が未確認である送信データの情報を示す送達未確認データ情報とをそれぞれ生成するとともに、前記送信予定データ情報または前記送達未確認データ情報が所定の条件を満たすかについての判定結果に基づき、停止要求をそれぞれ出力する複数の送受信部と、
前記停止要求が前記送受信部から入力された場合、入力された前記停止要求の出力元の送受信部に対し、前記記憶装置から受信したデータの振り分けを停止する振分部とを有することを特徴とする情報処理装置。
【請求項２】
前記転送装置は、前記停止要求の数に応じて、所定時間内の前記リクエストの送信の回数を減らすことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記送信予定データ情報は、前記送信予定の送信データの合計サイズを示す送信予定サイズであり、
前記送達未確認データ情報は、前記処理装置への到着が未確認である送信データの合計サイズを示す送達未確認サイズであり、
前記複数の送受信部のそれぞれは、
前記送信予定サイズが第１の閾値より大きいまたは前記送達未確認サイズが第２の閾値より大きい場合に前記停止要求を出力し、
前記送信予定サイズが前記第１の閾値より小さい第３の閾値以下、且つ前記送達未確認サイズが前記第２の閾値以下である場合に前記停止要求の出力を停止することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記振分部は、前記停止要求が入力されてから一定時間後に、前記記憶装置から受信したデータの振り分けを停止し、
前記一定時間は、前記転送装置が前記記憶装置に前記リクエストを送信してから前記リクエストに対する応答を前記振分部が受信するまでの時間であることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記複数の送受信部のそれぞれは、
データの書き込み位置を示す書き込み位置情報と、データの読み出し位置を示す読み出し位置情報と、前記処理装置への到着が確認されたデータの位置を示す送達確認位置情報と、を有し、
前記書き込み位置情報から前記読み出し位置情報を減算することで前記送信予定サイズを算出し、
前記書き込み位置情報から前記送達確認位置情報を減算することで前記送達未確認サイズを算出することを特徴とする請求項３に記載の情報処理装置。
【請求項６】
データを記憶する記憶装置と、前記記憶装置にリクエストを送信する処理装置とに接続され、前記記憶装置から読み出されるデータを前記処理装置に転送する転送装置において、
保持部が有する複数のエントリのいずれかに保持され、前記処理装置に送信される送信データ又は送信済みの送信データのうち、前記エントリの位置を示す位置情報に基づいた送信予定の送信データの情報を示す送信予定データ情報と、前記エントリの位置を示す位置情報に基づいた前記処理装置への到着が未確認である送信データの情報を示す送達未確認データ情報とをそれぞれ生成するとともに、前記送信予定データ情報または前記送達未確認データ情報が所定の条件を満たすかについての判定結果に基づき、停止要求をそれぞれ出力する複数の送受信部と、
前記停止要求が前記送受信部から入力された場合、入力された前記停止要求の出力元の送受信部に対し、前記記憶装置から受信したデータの振り分けを停止する振分部とを有することを特徴とする転送装置。
【請求項７】
データを記憶する記憶装置と、前記記憶装置にリクエストを送信する処理装置と、前記記憶装置から読み出されるデータを前記処理装置に転送する転送装置とを備える情報処理装置の制御方法において、
前記情報処理装置が有する複数の送受信部が、保持部が有する複数のエントリのいずれかに保持され、前記処理装置に送信される送信データ又は送信済みの送信データのうち、前記エントリの位置を示す位置情報に基づいた送信予定の送信データの情報を示す送信予定データ情報と、前記エントリの位置を示す位置情報に基づいた前記処理装置への到着が未確認である送信データの情報を示す送達未確認データ情報とをそれぞれ生成し、
前記複数の送受信部が、前記送信予定データ情報または前記送達未確認データ情報が所定の条件を満たすかについての判定結果に基づき、停止要求をそれぞれ出力し、
前記情報処理装置が有する振分部が、前記停止要求が前記送受信部から入力された場合、入力された前記停止要求の出力元の送受信部に対し、前記記憶装置から受信したデータの振り分けを停止することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、転送装置、および制御方法に関する。
【背景技術】
【０００２】
サーバ等の情報処理装置において、メモリから読み出されたパラレルデータは、シリアルデータに変換され、演算処理装置としてのCentral Processing Unit（ＣＰＵ）に送信される。
【０００３】
図１は、従来のサーバの構成図である。
サーバ２１０１は、Central Processing Unit(ＣＰＵ)２２０１、プロトコル変換チップ２３０１、およびメモリ２４０１−ｉ（ｉ＝１、２）を備える。
【０００４】
ＣＰＵ２２０１は、データのリクエストをプロトコル変換チップ２３０１に送信し、メモリ２４０１からＬＳＩ（Large Scale Integrating circuit）により実現されるプロトコル変換チップ２３０１を介してデータを受信する。
【０００５】
ＣＰＵ２２０１は、シリアルインターフェイス２２１１−ｊ（ｊ＝１〜３）を有する。
シリアルインターフェイス２２１１−ｊは、プロトコル変換チップ２３０１のシリアルインターフェイス２３２１−ｊとシリアルバスを介して接続し、シリアルデータを送受信する。シリアルインターフェイス２２１１−ｉは、シリアルデータとパラレルデータを相互に変換する。
【０００６】
プロトコル変換チップ２３０１は、ＣＰＵ２２０１からリクエストを受信し、メモリ２４０１に該リクエストを送信し、メモリ２４０１から受信したパラレルデータをシリアルデータに変換し、ＣＰＵ２２０１に送信する。
【０００７】
プロトコル変換チップ２３０１は、パラレルインターフェイス２３１１−ｉ（ｉ＝１、２）、シリアルインターフェイス２３２１−ｊ（ｊ＝１〜３）、およびプロトコル変換部２３３１を備える。
【０００８】
パラレルインターフェイス２３１１−ｉは、メモリ２４０１−ｉとパラレルバスを介して接続し、パラレルデータを送受信する。
【０００９】
シリアルインターフェイス２３２１−ｊは、シリアルインターフェイス２２１１−ｊとシリアルバスを介して接続し、シリアルデータを送受信する。また、以下の説明または図面において、シリアルインターフェイス２３２１−ｊは、シリアルインターフェイス＃ｊと表記する場合がある。
【００１０】
プロトコル変換部２３３１は、メモリ２４０１へのリクエストの送信やシリアルインターフェイス２３２１−ｊへのパケットの振り分けなどを行う。
【００１１】
メモリ２４０１−ｉは、データを格納する記憶装置である。メモリ２４０１−ｉは、リクエストを受信すると、リクエストに対応するデータをパラレルインターフェイス２３１１−ｉに出力する。尚、以下の説明または図面において、メモリ２４０１−ｉは、メモリ＃ｉと表記する場合がある。
【００１２】
図２は、従来のプロトコル変換チップのシリアルインターフェイスの構成図である。
シリアルインターフェイス２３２１−ｊは、再送バッファ２３２２−ｊ、再送バッファ制御部２３２３−ｊ、および受信部２３２４−ｊを備える。
【００１３】
再送バッファ２３２２−ｊは、プロトコル変換部２３３１からＣＰＵ２２０１に送信するパケットを受信して格納する。尚、以下の説明または図面において、再送バッファ２３２２−ｊは、再送バッファ＃ｊと表記する場合がある。再送バッファ２３２２−ｊは、リングバッファとして動作する。
【００１４】
再送バッファ制御部２３２３−ｊは、再送バッファ２３２２−ｊへのパケットの書き込み、再送バッファ２３２２−ｊからのパケットの読み出し、およびＣＰＵ２２０１へのパケットの送信を行う。再送バッファ制御部２３２３−ｊは、ＣＰＵ２２０１へのパケットの送信を行う場合、該パケットが格納されていたアドレス（すなわち、バッファ読み出しポインタ２３２６−ｊが示すアドレス）をパケットに付加して送信する。ＣＰＵ２２０１は、パケットを正常に受信すると、該パケットに付加されていたアドレスを送達確認パケットに含めて、送達確認パケットを受信部２３２４−ｊに送信する。このように、送達確認パケットは、再送バッファ２３２２−ｊに格納されているパケットのうち、どこまでのアドレスのパケットがＣＰＵ２２０１に正常に到着したかを示す。尚、ＣＰＵ２２０１は、パケットを正常に受信できなかった場合、エラーを示す情報と該パケットに付加されていたアドレスとを送達確認パケットに含めて、送達確認パケットを受信部２３２４−ｊに送信する。
【００１５】
再送バッファ制御部２３２３−ｊは、バッファ書き込みポインタ２３２５−ｊ、バッファ読み出しポインタ２３２６−ｊ、および送達確認ポインタ２３２７−ｊを格納する。再送バッファ制御部２３２３−ｊは、バッファ書き込みポインタ２３２５−ｊ、バッファ読み出しポインタ２３２６−ｊ、および送達確認ポインタ２３２７−ｊの書き換えをおこなう。
【００１６】
バッファ書き込みポインタ２３２５−ｊは、再送バッファ２３２２−ｊが受信したパケットを書き込むアドレスを示す。バッファ書き込みポインタ２３２５−ｊは、パケットの書き込みが終了するとインクリメントされる。
【００１７】
バッファ読み出しポインタ２３２６−ｊは、再送バッファ２３２２−ｊに格納されているパケットのうち、読み出す（送信する）パケットのアドレスを示す。バッファ読み出しポインタ２３２６−ｊは、パケットの読み出しが終了するとインクリメントされる。
【００１８】
送達確認ポインタ２３２７−ｊは、再送バッファ２３２２−ｊに格納されているパケットのうち、最後に送達が確認されたパケットのアドレスを示す。尚、送達確認パケットを一度も受信していない場合は、最初に送信したパケットのアドレスを示す。
【００１９】
再送バッファ制御部２３２３−ｊは、バッファ書き込みポインタ２３２５−ｊから送達確認ポインタ２３２７−ｊを減算することで送達未確認サイズを算出し、送達未確認サイズをプロトコル変換部２３３１に送信する。送達未確認サイズは、再送バッファ２３２２−ｊに格納されているパケットのうち、ＣＰＵ２２０１への到着が確認されていないパケットの合計のサイズを示す。
【００２０】
受信部２３２４−ｊは、ＣＰＵ２２０１から、送達確認パケットやデータ読み出しのリクエストを受信する。受信部２３２４−ｊは、リクエストを受信した場合、リクエストをプロトコル変換部２３３１に送信する。受信部２３２４−ｊは、送達確認パケットを受信した場合、送達確認パケットを再送バッファ制御部２３２３−ｊに送信する。再送バッファ制御部２３２３−ｊは、送達確認パケットを受信すると、送達確認ポインタ２３２７−ｊが示すアドレスを該送達確認パケットに含まれるアドレスに変更する。
【００２１】
ＦＩＦＯの本数を増やすこと無く、簡単な制御機能により短いフレームを連続して受信できる通信制御装置が知られている（例えば、特許文献１参照）。
【００２２】
また、受信ＦＩＦＯ、送信ＦＩＦＯのスレッシュ・ホールドに対して、更にアンダーラン及びオーバラン状態になる直前のポイントに、新たにスレッシュ・ホールドを設け、これらのスレッシュ・ホールドの組み合わせに応じて、送受信のデータ転送を混合して行う技術が知られている（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【００２３】
【特許文献１】特開平４−２４３３４７号公報
【特許文献２】特開平１０−１６４１４６号公報
【発明の概要】
【発明が解決しようとする課題】
【００２４】
ここで、プロトコル変換チップ２３０１が図３に示すようなパケット０〜パケットＮ＋２をパケット０から順にＣＰＵ２２０１に送信するとする。
【００２５】
プロトコル変換部２３３１がシリアルインターフェイス＃ｊにパケット０〜パケットＮ＋２をシリアルインターフェイス＃１から順に振り分けて、シリアルインターフェイス＃ｊがＣＰＵ２２０１に送信すると、再送バッファ＃ｊと各ポインタの状態は図４に示すような状態となる。
【００２６】
ここで、シリアルインターフェイス＃１がエラーを示す送達確認パケットを受信し、シリアルインターフェイス＃１で再送が発生したとする。
【００２７】
すると、再送バッファ＃ｊと各ポインタの状態は図５に示すような状態となる。図５に示すように、シリアルインターフェイス＃１のバッファ読み出しポインタはパケット０を指す。
【００２８】
そして、プロトコル変換チップ２３０１が図６に示すようなパケットＮ＋３〜パケットＮ＋８をパケットＮ＋３から順に追加してＣＰＵ２２０１に送信するとする。
【００２９】
図５に示す状態において、プロトコル変換部２３３１がシリアルインターフェイス＃ｊにパケットＮ＋３〜パケットＮ＋８をシリアルインターフェイス＃１から順に振り分けて、再送バッファ＃ｊが振り分けられたパケットを格納すると、再送バッファ＃ｊと各ポインタの状態は図７に示すような状態となる。
【００３０】
再送の発生していない再送バッファ＃２のパケットＮ＋４とパケットＮ＋７、および再送の発生していない再送バッファ＃３のパケットＮ＋５とパケットＮ＋８は、すぐに送信される。
【００３１】
一方、再送の発生した再送バッファ＃１に格納されたパケットＮ＋３とパケットＮ＋６は、パケット０、パケット３、・・・、およびパケットＮの再送後に送信される。このように、再送が発生した再送バッファ＃１を通過するパケットは、再送が発生していない再送バッファ＃２、＃３を通過するパケットと比べてレイテンシ（通過時間）が大きくなり、パケット間のレイテンシのばらつきが大きくなるという問題がある。
【００３２】
また、伝送路のエラーや他のパケットの転送処理のために、送達確認パケットが到着するのが遅くなる場合がある。その場合、あるシリアルインターフェイス２３２２−ｊの送達未確認サイズは大きく、他のシリアルインターフェイス２３２２−ｊの送達未確認サイズは小さくなる場合がある。
【００３３】
例えば、上述と同様に、プロトコル変換部２３３１がシリアルインターフェイス＃ｊに図３で示すようなパケット０〜パケットＮ＋２をシリアルインターフェイス＃１から順に振り分けて、シリアルインターフェイス＃ｊがＣＰＵ２２０１に送信したとする。
【００３４】
ここで、シリアルインターフェイス＃２、＃３は、それぞれパケット１０、１１に対する送達確認パケットを受信し、シリアルインターフェイス＃１は送達確認パケットを受信していないとする。この場合、図８に示すように、シリアルインターフェイス＃１の送達確認パケットは更新されず、シリアルインターフェイス＃１の送達未確認サイズは大きいままとなる。
【００３５】
プロトコル変換部２３３１において、シリアルインターフェイス＃１の送達未確認サイズに基づいて、オーバーフローを防ぐためにメモリ２４０１へのリクエストを停止した場合には、送達未確認サイズが小さい再送バッファ＃２、＃３も使用しなくなるため、シリアルインターフェイスを効率的に使用できないケースが発生する。
【００３６】
１つの側面において、本発明の課題は、各シリアルインターフェイスを通過するデータのレイテンシのばらつきを減少させることである。
【課題を解決するための手段】
【００３７】
実施の形態の情報処理装置は、データを記憶する記憶装置と、前記記憶装置にリクエストを送信する処理装置と、前記記憶装置から読み出されるデータを前記処理装置に転送する転送装置と、を備える。
【００３８】
前記転送装置は、複数の送受信部と、振分部と、を有する。
前記複数の送受信部は、保持部が有する複数のエントリのいずれかに保持され、前記処理装置に送信される送信データ又は送信済みの送信データのうち、前記エントリの位置を示す位置情報に基づいた送信予定の送信データの情報を示す送信予定データ情報と、前記エントリの位置を示す位置情報に基づいた前記処理装置への到着が未確認である送信データの情報を示す送達未確認データ情報とをそれぞれ生成するとともに、前記送信予定データ情報または前記送達未確認データ情報が所定の条件を満たすかについての判定結果に基づき、停止要求をそれぞれ出力する。
【００３９】
前記振分部は、前記停止要求が前記送受信部から入力された場合、入力された前記停止要求の出力元の送受信部に対し、前記記憶装置から受信したデータの振り分けを停止する。
【発明の効果】
【００４０】
実施の形態の情報処理装置によれば、各シリアルインターフェイスを通過するデータのレイテンシのばらつきを減少させることができる。
【図面の簡単な説明】
【００４１】
【図１】従来のサーバの構成図である。
【図２】従来のプロトコル変換チップのシリアルインターフェイスの構成図である。
【図３】送信されるパケットを示す図である。
【図４】再送バッファおよび各ポインタの状態を示す図である。
【図５】再送発生時の再送バッファおよび各ポインタの状態を示す図である。
【図６】追加で送信されるパケットを示す図である。
【図７】追加のパケットが格納された時の再送バッファおよび各ポインタの状態を示す図である。
【図８】再送バッファ＃１が送達確認パケットを受信できなかった場合の再送バッファおよび各ポインタの状態を示す図である。
【図９】実施の形態に係るサーバの構成図である。
【図１０】実施の形態に係るプロトコル変換チップの詳細な構成図である。
【図１１】実施の形態に係るプロトコル変換チップのシリアルインターフェイスの構成図である。
【図１２】実施の形態に係るリクエストポート部の構成図である。
【図１３】実施の形態に係るプロトコル変換チップの制御方法のフローチャートである。
【図１４】実施の形態に係るサーバの制御処理のタイムチャートである。
【図１５】実施の形態に係るサーバのハードウェア構成図である。
【発明を実施するための形態】
【００４２】
以下、図面を参照しながら実施の形態について説明する。
図９は、実施の形態に係るサーバの構成図である。
【００４３】
サーバ１０１は、Central Processing Unit(ＣＰＵ)２０１、プロトコル変換チップ３０１、およびメモリ４０１−ｉ（ｉ＝１、２）を備える。
【００４４】
サーバ１０１は、情報処理装置の一例である。
ＣＰＵ２０１は、データのリクエストをプロトコル変換チップ３０１に送信し、メモリ４０１からプロトコル変換チップ３０１を介してデータを受信する。
【００４５】
ＣＰＵ２０１は、シリアルインターフェイス２１１−ｊ（ｊ＝１〜３）を有する。
シリアルインターフェイス２１１−ｊは、プロトコル変換チップ３０１のシリアルインターフェイス３２１−ｊとシリアルバスを介して接続し、シリアルデータを送受信する。シリアルインターフェイス２１１−ｉは、シリアルデータとパラレルデータを相互に変換する。
【００４６】
プロトコル変換チップ３０１は、ＣＰＵ２０１からリクエストを受信し、メモリ４０１にリクエストを送信する。プロトコル変換チップ３０１は、メモリ４０１から受信したパラレルデータをシリアルデータに変換し、ＣＰＵ２０１に送信する。プロトコル変換チップ３０１は、例えば、半導体集積回路である。プロトコル変換チップ３０１は、転送装置の一例である。
【００４７】
プロトコル変換チップ３０１は、パラレルインターフェイス３１１−ｉ（ｉ＝１、２）、シリアルインターフェイス３２１−ｊ（ｊ＝１〜３）、およびプロトコル変換部３３１を備える。
【００４８】
パラレルインターフェイス３１１−ｉは、メモリ４０１−ｉとパラレルバスを介して接続し、パラレルデータを送受信する。
【００４９】
シリアルインターフェイス３２１−ｊは、シリアルインターフェイス２１１−ｊとシリアルバスを介して接続し、シリアルデータを送受信する。尚、実施の形態においてシリアルインターフェイス３２１の数は３個であるが、これに限られず、２以上の任意の数でよい。また、以下の説明または図面において、シリアルインターフェイス３２１−ｊは、シリアルインターフェイス＃ｊと表記する場合がある。
【００５０】
プロトコル変換部３３１は、メモリ４０１へのリクエストの送信やシリアルインターフェイス３２１へのパケットの振り分けなどを行う。
【００５１】
メモリ４０１−ｉは、データを格納する記憶装置である。メモリ４０１−ｉは、例えば、Random Access Memory（ＲＡＭ）である。尚、以下の説明または図面において、メモリ４０１−ｉは、メモリ＃ｉと表記する場合がある。
【００５２】
メモリ４０１−ｉは、リクエストを受信すると、該リクエストに対応するデータをパラレルインターフェイス３１１−ｉに出力する。
【００５３】
尚、実施の形態においてメモリ４０１の数は２個であるが、これに限られず、任意の数でよい。
【００５４】
図１０は、実施の形態に係るプロトコル変換チップの詳細な構成図である。
シリアルインターフェイス３２１−ｊは、再送バッファ３２２−ｊ、再送バッファ制御部３２３−ｊ、および受信部３２４−ｊを備える。
【００５５】
シリアルインターフェイス３２１−ｊの詳細については後述する。
プロトコル変換部３３１は、パケット振り分け部３４１、閾値判定部３５１−ｊ、およびリクエストポート部３６１を備える。
【００５６】
パケット振り分け部３４１は、パラレルインターフェイス３１１からパケットを受信し、リクエストポート部３６１から供給停止指示＃ｊを受信する。
【００５７】
パケット振り分け部３４１は、受信したパケットをシリアルインターフェイス３２１−ｊに順番に振り分ける。パケット振り分け部３４１は、供給停止指示＃ｊを受信した場合、シリアルインターフェイス３２１−ｊには、パケットを振り分けない。すなわち、パケット振り分け部３４１は、受信した供給停止指示＃ｊに対応するシリアルインターフェイス３２１−ｊ以外のシリアルインターフェイス３２１−ｊに順番にパケットを振り分ける。
【００５８】
閾値判定部３５１−ｊは、再送バッファ制御部３２３−ｊから送達未確認サイズおよび送信予定サイズを受信する。送達未確認サイズは、再送バッファ３２２−ｊに格納されているパケットのうち、ＣＰＵ２０１への到着が確認されていないパケットの合計のサイズを示す。言い換えれば、送達未確認サイズは、ＣＰＵ２０１への到着が確認されていないパケットを格納している再送バッファ３２２−ｊの領域のサイズを示す。送信予定サイズは、再送バッファ３２２−ｊに格納されているパケットのうち、現在以降に送信する予定のパケットの合計のサイズを示す。言い換えれば、送信予定サイズは、現在以降に送信する予定のパケットを格納している再送バッファ３２２−ｊの領域のサイズを示す。
【００５９】
閾値判定部３５１−ｊは、送信予定サイズが閾値Ａより大きい場合または送達未確認サイズが閾値Ｂより大きい場合、リクエスト停止要求＃ｊをリクエストポート３６１に出力する。すなわち、閾値判定部３５１−ｊは、リクエスト停止要求＃ｊをオン（＝１）にする。
【００６０】
ここで、閾値Ａ＝（リクエストポート部３６１がメモリ４０１にリクエストを送信してから該リクエストに対する応答をパケット振り分け部３４１が受信するまでの間に再送バッファ３２２−ｊが送出可能なデータサイズ）＋（一定期間Ｄの間に再送バッファ３２２−ｊが送出可能なデータサイズ）とする。尚、一定期間Ｄは、予め定められている。また、リクエストポート部３６１がメモリ４０１にリクエストを送信してから該リクエストに対する応答をパケット振り分け部３４１が受信するまでの時間は、予め分かっているものとする。
【００６１】
また、閾値Ｂ＝（再送バッファ３２２−ｊの容量）−（リクエストポート部３６１がメモリ４０１にリクエストを送信してから該リクエストに対する応答をパケット振り分け部３４１が受信するまでの間に再送バッファ３２２−ｊが送出可能なデータサイズ）とする。
【００６２】
閾値判定部３５１−ｊは、リクエスト停止要求＃ｊの出力後、送信予定サイズが閾値Ｃ以下且つ送達未確認サイズが閾値Ｂ以下となった場合、リクエスト停止要求＃ｊの出力を停止する。すなわち、閾値判定部３５１−ｊは、リクエスト停止要求＃ｊをオフ（＝０）にする。
【００６３】
ここで、閾値Ｃは、リクエストポート部３６１がメモリ４０１にリクエストを送信してから該リクエストに対する応答をパケット振り分け部３４１が受信するまでの間に再送バッファ３２２−ｊが送出可能なデータサイズである。
【００６４】
例えば、シリアルインターフェイス３２１−ｊのクロック周波数の周期がx(ナノ秒)、メモリインターフェイス用クロックの周波数の周期がy(ナノ秒)、リクエストポート部３６１からリクエストを出力してからパケット振り分け部３４１が応答を受信するまでの時間をz(ナノ秒)、再送バッファ３２２−ｊのバス幅を16バイト、深さを512、一定期間Ｄをt(ナノ秒)とすると閾値の算出に使用される値は、以下のように計算される。尚、メモリインターフェイス用クロックは、パラレルインターフェイス３１１およびプロトコル変換部３３１のクロック信号である。
リクエストポート部３６１がメモリ４０１にリクエストを送信してから該リクエストに対する応答をパケット振り分け部３４１が受信するまでの間に再送バッファ３２２−ｊが送出可能なデータサイズ = 16バイト * z/x
一定期間Ｄの間に再送バッファ３２２−ｊが送出可能なデータサイズ = 16バイト * t/x
再送バッファ３２２−ｊの容量 = 16バイト * 512
【００６５】
リクエストポート部３６１は、リクエスト停止要求＃ｊに基づいて、供給停止指示＃ｊをパケット振り分け部３４１に出力する。
【００６６】
リクエストポート部３６１は、リクエスト停止要求＃ｊに基づいて、一定期間Ｄの間、メモリ４０１に対する所定時間（所定のサイクル数）当たりのリクエストの送信回数を制御する。
【００６７】
リクエストポート部３６１の詳細については、後述する。
次に、プロトコル変換チップ３０１のシリアルインターフェイス３２１の詳細について説明する。
【００６８】
図１１は、実施の形態に係るプロトコル変換チップのシリアルインターフェイスの構成図である。
【００６９】
シリアルインターフェイス３２１−ｊは、再送バッファ３２２−ｊ、再送バッファ制御部３２３−ｊ、および受信部３２４−ｊを備える。
【００７０】
再送バッファ３２２−ｊは、パケット振り分け部３４１からＣＰＵ２０１に送信するパケットを受信して格納する。
【００７１】
再送バッファ３２２−ｊは、リングバッファとして動作する。再送バッファ３２２−ｊは、FIFO（First In, First Out）であり、複数のエントリ（領域）を有する。また、各エントリは、所定のサイズ（例えば、１６バイト）を有する。再送バッファ３２２−ｊが受信したパケットは、エントリに順に格納されていく。
【００７２】
再送バッファ制御部３２３−ｊは、再送バッファ３２２−ｊへのパケットの書き込み、再送バッファ３２２−ｊからのパケットの読み出し、およびＣＰＵ２０１へのパケットの送信を行う。再送バッファ制御部３２３−ｊは、ＣＰＵ２０１へのパケットの送信を行う場合、該パケットが格納されていたアドレス（すなわち、バッファ読み出しポインタ３２６−ｊが示すアドレス）をパケットに付加して送信する。ＣＰＵ２０１は、パケットを正常に受信すると、該パケットに付加されていたアドレスを送達確認パケットに含めて、送達確認パケットを受信部３２４−ｊに送信する。このように、送達確認パケットは、再送バッファ３２２−ｊに格納されているパケットのうち、どこまでのアドレスのパケットがＣＰＵ２０１に正常に到着したかを示す。尚、ＣＰＵ２０１は、パケットを正常に受信できなかった場合、エラーを示す情報と該パケットに付加されていたアドレスとを送達確認パケットに含めて、送達確認パケットを受信部３２４−ｊに送信する。
【００７３】
再送バッファ制御部３２３−ｊは、バッファ書き込みポインタ３２５−ｊ、バッファ読み出しポインタ３２６−ｊ、および送達確認ポインタ３２７−ｊを格納する。再送バッファ制御部３２３−ｊは、バッファ書き込みポインタ３２５−ｊ、バッファ読み出しポインタ３２６−ｊ、および送達確認ポインタ３２７−ｊの書き換えをおこなう。バッファ書き込みポインタ３２５−ｊ、バッファ読み出しポインタ３２６−ｊ、および送達確認ポインタ３２７−ｊは、再送バッファ３２２−ｊのエントリの位置を示す位置情報の一例である。
【００７４】
バッファ書き込みポインタ３２５−ｊは、再送バッファ３２２−ｊが受信したパケットを書き込むアドレスを示す。すなわち、バッファ書き込みポインタ３２５−ｊは、再送バッファ３２２−ｊが受信したパケットを書き込むエントリの位置を示す。バッファ書き込みポインタ３２５−ｊは、パケットの書き込みが終了するとインクリメントされる。
【００７５】
バッファ読み出しポインタ３２６−ｊは、再送バッファ３２２−ｊに格納されているパケットのうち、読み出す（送信する）パケットのアドレスを示す。すなわち、バッファ読み出しポインタ３２６−ｊは、再送バッファ３２２−ｊに格納されているパケットのうち、読み出すパケットが格納されているエントリの位置を示す。バッファ読み出しポインタ３２６−ｊは、パケットの読み出しが終了するとインクリメントされる。
【００７６】
送達確認ポインタ３２７−ｊは、再送バッファ３２２−ｊに格納されているパケットのうち、最後に送達が確認されたパケットのアドレスを示す。すなわち、送達確認ポインタ３２７−ｊは、再送バッファ３２２−ｊに格納されているパケットのうち、最後に送達が確認されたパケットが格納されているエントリの位置を示す。
【００７７】
再送バッファ制御部３２３−ｊは、バッファ書き込みポインタ３２５−ｊから送達確認ポインタ３２７−ｊを減算することで送達未確認サイズを算出し、送達未確認サイズを閾値判定部３５１−ｊに送信する。詳細には、再送バッファ制御部３２３−ｊは、バッファ書き込みポインタ３２５−ｊから送達確認ポインタ３２７−ｊを減算した差分値（送達未確認ポインタ差分）にエントリのサイズを乗算して、送達未確認サイズを算出する。送達未確認サイズおよび送達未確認ポインタ差分は、送達未確認データ情報の一例である。
【００７８】
再送バッファ制御部３２３−ｊは、バッファ書き込みポインタ３２５−ｊからバッファ読み出しポインタ３２６−ｊを減算することで送信予定サイズを算出し、送信予定サイズを閾値判定部３５１−ｊに送信する。詳細には、再送バッファ制御部３２３−ｊは、バッファ書き込みポインタ３２５−ｊからバッファ読み出しポインタ３２６−ｊを減算した差分値（送信予定ポインタ差分）にエントリのサイズを乗算して、送信予定サイズを算出する。送信予定サイズおよび送信予定ポインタ差分は、送信予定データ情報の一例である。
【００７９】
また、再送バッファ制御部３２３−ｊは、送達未確認サイズの代わりに送達未確認ポインタ差分を閾値判定部３５１−ｊに送信し、送信予定サイズの代わりに送信予定ポインタ差分を閾値判定部３５１−ｊに送信してもよい。再送バッファ制御部３２３−ｊが送達未確認ポインタ差分および送信予定ポインタ差分を送信する場合、閾値判定部３５１−ｊは、送達未確認サイズの代わりに送達未確認ポインタ差分、送信予定サイズの代わりに送信予定ポインタ差分を用いて、リクエスト停止要求＃ｊの出力の制御を行う。このとき、閾値Ａ、Ｂ、およびＣは、上述の閾値Ａ、Ｂ、およびＣをそれぞれエントリのサイズで除算した値となる。
【００８０】
受信部３２４−ｊは、ＣＰＵ２０１から、送達確認パケットやデータ読み出しのリクエストを受信する。
【００８１】
受信部３２４−ｊは、リクエストを受信した場合、リクエストをリクエストポート部３６１に送信する。
【００８２】
受信部３２４−ｊは、送達確認パケットを受信した場合、送達確認パケットを再送バッファ制御部３２３−ｊに送信する。再送バッファ制御部３２３−ｊは、送達確認パケットを受信すると、送達確認ポインタ３２７−ｊが示すアドレスを該送達確認パケットに含まれるアドレスに変更する。再送バッファ制御部３２３−ｊは、送達確認ポインタ３２７−ｊが示すアドレスより前の再送バッファ３２２−ｊの領域を開放する。
【００８３】
図１２は、実施の形態に係るリクエストポート部の構成図である。
リクエストポート部３６１は、入力されたリクエスト停止要求＃ｊを一定時間遅延させ、供給停止指示＃ｊとして出力する。
【００８４】
リクエストポート部３６１は、シフトレジスタ３６２−ｊ、リクエスト制限部３６３、およびリクエストポート３６４−ｉを備える。
【００８５】
シフトレジスタ３６２−ｊは、リクエスト停止要求＃ｊが入力され、供給停止指示＃ｊをパケット振り分け部３４１に出力する。リクエスト停止要求＃ｊは、シフトレジスタ３６２−ｊに入力されると、シフトレジスタ３６２−ｊを通過し、入力されてから一定時間後に供給停止指示＃ｊとして出力される。すなわち、供給停止指示＃ｊは、一定時間前のリクエスト停止要求＃ｊである。
【００８６】
上記一定時間、すなわちシフトレジスタ３６２−ｊの通過時間は、リクエストポート部３６１がメモリ４０１にリクエストを送信してから該リクエストに対する応答をパケット振り分け部３４１が受信するまでの時間と同じである。シフトレジスタ３６２−ｊの通過時間がリクエストポート部３６１がメモリ４０１にリクエストを送信してから該リクエストに対する応答をパケット振り分け部３４１が受信するまでの時間と同じとなるように、シフトレジスタ３６２−ｊの段数は設定される。例えば、メモリインターフェイス用クロック周波数の周期がy（ナノ秒）、リクエストポート部３６１からリクエストを出力してからパケット振り分け部３４１が応答を受信するまでの時間をz(ナノ秒)とすると、シフトレジスタ３６２−ｊの段数=z/yとなる。このように、シフトレジスタ３６２−ｊの段数を設定することで、リクエストの送信を制限した場合に、パケット振り分け部３４１は、制限したリクエストに対する応答データを受信したときに、供給停止指示＃ｊに対応するシリアルインターフェイス＃ｊに応答データの振り分けを停止することができる。
【００８７】
リクエスト制限部３６３は、リクエスト停止要求＃ｊを受信し、リクエスト停止要求＃ｊに基づいてリクエスト投入制限信号を生成し、リクエスト投入制限信号をリクエストポート３６４−ｊに送信する。
【００８８】
リクエスト投入制限信号は、リクエストの制限がされていないとき（通常時）と比較して、どの程度、所定時間（所定のサイクル数）当たりのリクエストの送信回数を減らすかを示す。
【００８９】
リクエスト制限部３６３は、状態がオン（＝１）あるリクエスト停止要求＃ｊの数をカウントする。シリアルインターフェイス＃ｊの数からカウントした数を減算し、減算した値をシリアルインターフェイス＃ｊの数で除算し、リクエスト投入制限信号を生成する。
【００９０】
例えば、リクエスト停止要求＃１がオン、リクエスト停止要求＃２、３がオフの場合は、リクエスト投入制限信号は、２／３（＝（３−１）／３）を示す。これにより、リクエストポート３６４−ｉは、一定期間Ｄ、通常時と比較して、所定時間（所定のサイクル数）当たりのリクエストの送信回数を２／３に制限する。
【００９１】
リクエストポート３６４−ｉは、受信部３２４−ｊからデータの読み出しを要求するリクエスト受信し、データ格納しているメモリ４０１−ｉに該リクエストを送信する。
【００９２】
リクエストポート３６４−ｉは、リクエスト投入制限信号をチェックし、リクエスト投入制限信号に基づいて、一定期間Ｄ、リクエストの送信を制限する。一定期間Ｄの終了後、リクエストポート３６４−ｉは、リクエスト投入制限信号をチェックし、リクエスト投入制限信号に基づいて、一定期間Ｄ、リクエストの送信を制限する処理を繰り返す。
【００９３】
例えば、リクエストポート３６４−ｉは、通常時に９サイクルで３回リクエストを送信し、リクエスト投入制限信号は２／３を示すとする。リクエストポート３６４−ｉは、リクエスト投入制限信号を受信すると、一定期間Ｄ、９サイクルで２回リクエストを送信するようにする。一定期間Ｄの終了後、リクエストポート３６４−ｉは、リクエスト投入制限信号をチェックし、リクエスト投入制限信号が２／３を示す場合は、再度、一定期間Ｄ、９サイクルで２回リクエストを送信するようにする。リクエスト投入制限信号がオフの場合は、リクエストポート３６４−ｉは、通常通りに９サイクルで３回リクエストを送信する。
【００９４】
図１３は、実施の形態に係るプロトコル変換チップの制御方法のフローチャートである。
【００９５】
ステップＳ５０１において、閾値判定部３５１−ｊは、入力された送信予定サイズが閾値Ａより大きいか否か判定する。送信予定サイズが閾値Ａより大きい場合、閾値判定部３５１−ｊは、リクエスト停止要求＃ｊを出力し、制御はステップＳ５０３に進む。送信予定サイズが閾値Ａ以下の場合、制御はステップＳ５０２に進む。
【００９６】
ステップＳ５０２において、閾値判定部３５１−ｊは、入力された送信未確認サイズが閾値Ｂより大きいか否か判定する。送信予定サイズが閾値Ｂより大きい場合、閾値判定部３５１−ｊは、リクエスト停止要求＃ｊを出力し、制御はステップＳ５０３に進む。送信予定サイズが閾値Ｂ以下の場合、処理は終了する。
【００９７】
ステップＳ５０３において、リクエスト制限部３６３は、リクエスト停止要求＃ｊを受信し、リクエスト停止要求＃ｊに基づいてリクエスト投入制限信号を生成し、リクエスト投入制限信号をリクエストポート３６４−ｊに送信する。
【００９８】
リクエストポート３６４は、リクエスト投入制限信号に基づいて、一定期間Ｄの間、リクエストの送信を制限する。
【００９９】
また、リクエスト停止要求＃ｊは、シフトレジスタ３６２−ｊに入力され、シフトレジスタ３６２−ｊを通過し、入力されてから一定時間後に供給停止指示＃ｊとして出力される。
【０１００】
パケット振り分け部３４１は、供給停止指示＃ｊに対応するシリアルインターフェイス３２１−ｊに対するパケットの供給を停止する。すなわち、パケット振り分け部３４１は、供給停止指示が示すシリアルインターフェイス３２１−ｊ以外のシリアルインターフェイス３２１−ｊにパケットを順に振り分ける。
【０１０１】
ステップＳ５０４において、閾値判定部３５１−ｊは、入力された送信予定サイズが閾値Ｃより大きいか否か判定する。送信予定サイズが閾値Ｃより大きい場合、制御はステップＳ５０３に戻り。送信予定サイズが閾値Ｃ以下の場合、制御はステップＳ５０５に進む。
【０１０２】
ステップＳ５０５において、閾値判定部３５１−ｊは、入力された送信未確認サイズが閾値Ｂより大きいか否か判定する。送信予定サイズが閾値Ｂより大きい場合、制御はステップＳ５０３に戻り、送信予定サイズが閾値Ｂ以下の場合、リクエスト停止要求＃ｊをオフとし、処理は終了する。
【０１０３】
図１４は、実施の形態に係るサーバの制御処理のタイムチャートである。
図１４のタイムチャートは、サイクル０からサイクル５５までの信号またはデータを示し、上から順に、リクエスト停止要求＃１、リクエスト停止要求＃２、リクエスト停止要求＃３、供給停止指示＃１、供給停止指示＃２、供給停止指示＃３、リクエスト投入制限信号、メモリ＃１へのリクエスト、メモリ＃２へのリクエスト、メモリ＃１からの応答、メモリ＃２からの応答、シリアルインターフェイス＃１への応答、シリアルインターフェイス＃２への応答、シリアルインターフェイス＃３への応答を示す。
【０１０４】
リクエスト停止要求＃１は、サイクル０からサイクル１３までオフ、サイクル１４からサイクル３１までオン、サイクル３２からサイクル５５まででオフとなる。
【０１０５】
リクエスト停止要求＃２、＃３は、サイクル０からサイクル５５までの間、オフである。
【０１０６】
供給停止指示＃１は、サイクル２６でオンとなり、サイクル４４でオフとなる。メモリ４０１にリクエストを送信してから応答を受信するまで１２サイクルかかるので、供給停止指示＃１はリクエスト停止要求＃１と比べて１２サイクル分シフト（遅延）している。
【０１０７】
供給停止指示＃２、＃３は、サイクル０からサイクル５５までの間、オフである。
上述のように３つのリクエスト停止要求＃１〜＃３のうちリクエスト停止要求＃１がサイクル１４でオンとなっている。そのため、リクエスト投入制限信号は、サイクル１４で、リクエストの回数を２／３とすることを示す信号となる。また、リクエスト停止要求＃１は、サイクル３２でオフとなるので、リクエスト投入制限信号もサイクル３２でオフとなる。
【０１０８】
メモリ＃１、＃２へのリクエストは、サイクル０からサイクル１５まで（通常時）は、３サイクルに１回の割合で送信されている。すなわち、メモリ＃１、＃２へのリクエストは、９サイクルの間に３回送信されている。サイクル１４において、リクエスト投入制限信号がリクエストの回数を２／３とすることを示す信号となったため、次のリクエストの送信から一定期間Ｄの間、リクエストの送信は９サイクルの間に２回送信に制限される。ここでは、一定期間Ｄを９サイクル分の時間とする。すなわち、サイクル１６から２４の間で、リクエストは２回送信される。図１４に示すように、サイクル１６からサイクル２４の間で、サイクル１６ではリクエストは送信されず、サイクル１９、２２でリクエストが送信される。
【０１０９】
サイクル１６から一定期間Ｄ後、すなわち９サイクル後のサイクル２５において、リクエスト投入制限信号は、依然としてリクエストの回数を２／３とすることを示す信号であるため、再度一定期間Ｄの間、リクエストの送信は９サイクルの間に２回送信に制限される。すなわち、サイクル２５からサイクル３３の間で、リクエストは２回送信される。図１４に示すように、サイクル２５からサイクル３３の間で、サイクル２５ではリクエストは送信されず、サイクル２８、３１でリクエストが送信される。
【０１１０】
リクエスト投入制限信号はサイクル３２でオフとなるため、サイクル３３以降において、メモリ＃１、＃２へのリクエストは３サイクルに１回の割合で送信されている。
【０１１１】
メモリ＃１、＃２からの応答は、リクエストの制限を行ったため、サイクル２８〜３０、３７〜３９の間はオフとなっている。
【０１１２】
供給停止指示＃１がサイクル２６でオン、サイクル４４でオフとなったため、サイクル２８からサイクル４５までの間、シリアルインターフェイス＃１へのパケットの振り分けが行われず、シリアルインターフェイス＃１への応答は、オフとなる。尚、シリアルインターフェイス＃ｊへのパケットの振り分けは、３サイクル単位で行われるため、供給停止指示＃１がサイクル２６でオンとなっても、すぐにシリアルインターフェイス＃１へのパケットＢ８の振り分けは停止せずに、パケットＢ８の振り分け終了後のサイクル２８からシリアルインターフェイス＃１へのパケット振り分けが停止される。
【０１１３】
シリアルインターフェイス＃２、＃３への応答、すなわちシリアルインターフェイス＃２、＃３へのパケットの振り分けは、供給停止指示＃２、＃３が常にオフであるので、通常通り行われる。
【０１１４】
図１５は、実施の形態に係るサーバのハードウェア構成図である。
サーバ１１０１は、ＣＰＵ１２０１、プロトコル変換チップ１３０１、およびメモリ１４０１−ｉ（ｉ＝１、２）を備える。
【０１１５】
ＣＰＵ１２０１およびメモリ１４０１−ｉは、それぞれ上述のＣＰＵ２０１およびメモリ４０１−ｉに対応する。
【０１１６】
プロトコル変換チップ１３０１は、パラレルインターフェイス１３１１−ｉ（ｉ＝１、２）、シリアルインターフェイス１３２１−ｊ（ｊ＝１〜３）、プロトコル変換部１３３１、およびクロック乗り換え回路１３７１−ｊ、１３７２−ｊを備える。
【０１１７】
パラレルインターフェイス１３１１−ｉは、上述のパラレルインターフェイス３１１−ｉに対応する。
【０１１８】
シリアルインターフェイス１３２１−ｊは、再送バッファ１３２２−ｊ、受信部１３２４−ｊ、およびシリアライザ１３２５−ｊを備える。
【０１１９】
再送バッファ１３２２−ｊは、上述の再送バッファ３２２−ｊおよび再送バッファ制御部３２３−ｊに対応する。
【０１２０】
受信部１３２４−ｊは、上述の受信部３２４−ｊに対応する。
シリアライザ１３２５−ｊは、再送バッファ１３２２−ｊから受信したパラレルデータをシリアルデータに変換し、シリアルデータをＣＰＵ１２０１に送信する。
【０１２１】
プロトコル変換部１３３１は、パケット振り分け部１３４１、閾値判定部１３５１−ｊ、およびリクエストポート部１３６１を備える。
【０１２２】
パケット振り分け部１３４１、閾値判定部１３５１−ｊ、およびリクエストポート部１３６１は、それぞれ上述のパケット振り分け部３４１、閾値判定部３５１−ｊ、およびリクエストポート部３６１に対応する。
【０１２３】
図１５のプロトコル変換チップ１３０１において、パラレルインターフェイス１３１１−ｊとプロトコル変換部１３３１はメモリインターフェイス用クロックで動作し、シリアルインターフェイス１３２１−ｊはシリアルインターフェイス用クロックで動作する。そのため、クロック乗り換え回路１３７１−ｊ、１３７２−ｊを用いて、プロトコル変換部１３３１とシリアルインターフェイス１３２１−ｊとの間でクロックの乗り換えを行う。
【０１２４】
クロック乗り換え回路１３７１−ｊは、パケット振り分け部１３４１−ｊからデータをメモリインターフェイス用クロックを用いて受信し、再送バッファ１３２２−ｊにデータをシリアルインターフェイス用クロックを用いて送信する。
【０１２５】
クロック乗り換え回路１３７２−ｊは、再送バッファ１３２２−ｊからデータをシリアルインターフェイス用クロックを用いて受信し、リクエストポート１３６１にデータをメモリインターフェイス用クロックを用いて送信する。
【０１２６】
クロック乗り換え回路１３７１−ｊ、１３７２−ｊは、例えば、バッファである。
実施の形態のプロトコル変換チップによれば、送信されるパケットまたは送達未確認のパケットを多く格納しているシリアルインターフェイスにパケットを振り分けないことで、パケット間のレイテンシのばらつきを減少させることができる。
【０１２７】
また、実施の形態のプロトコル変換チップによれば、メモリへのリクエストを必要以上に制限しないので、シリアルインターフェイスを効率よく使用することができる。
【０１２８】
以上の実施の形態に関し、さらに以下の付記を開示する。
（付記１）
データを記憶する記憶装置と、前記記憶装置にリクエストを送信する処理装置と、前記記憶装置から読み出されるデータを前記処理装置に転送する転送装置とを備える情報処理装置において、
前記転送装置は、
保持部が有する複数のエントリのいずれかに保持され、前記処理装置に送信される送信データ又は送信済みの送信データのうち、前記エントリの位置を示す位置情報に基づいた送信予定の送信データの情報を示す送信予定データ情報と、前記エントリの位置を示す位置情報に基づいた前記処理装置への到着が未確認である送信データの情報を示す送達未確認データ情報とをそれぞれ生成するとともに、前記送信予定データ情報または前記送達未確認データ情報が所定の条件を満たすかについての判定結果に基づき、停止要求をそれぞれ出力する複数の送受信部と、
前記停止要求が前記送受信部から入力された場合、入力された前記停止要求の出力元の送受信部に対し、前記記憶装置から受信したデータの振り分けを停止する振分部とを有することを特徴とする情報処理装置。
（付記２）
前記転送装置は、前記停止要求の数に応じて、所定時間内の前記リクエストの送信の回数を減らすことを特徴とする付記１記載の情報処理装置。
（付記３）
前記送信予定データ情報は、前記送信予定の送信データの合計サイズを示す送信予定サイズであり、
前記送達未確認データ情報は、前記処理装置への到着が未確認である送信データの合計サイズを示す送達未確認サイズであり、
前記複数の送受信部のそれぞれは、
前記送信予定サイズが第１の閾値より大きいまたは前記送達未確認サイズが第２の閾値より大きい場合に前記停止要求を出力し、
前記送信予定サイズが前記第１の閾値より小さい第３の閾値以下、且つ前記送達未確認サイズが前記第２の閾値以下である場合に前記停止要求の出力を停止することを特徴とする付記１または２に記載の情報処理装置。
（付記４）
前記振分部は、前記停止要求が入力されてから一定時間後に、前記記憶装置から受信したデータの振り分けを停止し、
前記一定時間は、前記転送装置が前記記憶装置に前記リクエストを送信してから前記リクエストに対する応答を前記振分部が受信するまでの時間であることを特徴とする付記１乃至３のいずれか１項に記載の情報処理装置。
（付記５）
前記複数の送受信部のそれぞれは、
データの書き込み位置を示す書き込み位置情報と、データの読み出し位置を示す読み出し位置情報と、前記処理装置への到着が確認されたデータの位置を示す送達確認位置情報と、を有し、
前記書き込み位置情報から前記読み出し位置情報を減算することで前記送信予定サイズを算出し、
前記書き込み位置情報から前記送達確認位置情報を減算することで前記送達未確認サイズを算出することを特徴とする付記３または４に記載の情報処理装置。
（付記６）
データを記憶する記憶装置と、前記記憶装置にリクエストを送信する処理装置とに接続され、前記記憶装置から読み出されるデータを前記処理装置に転送する転送装置において、
保持部が有する複数のエントリのいずれかに保持され、前記処理装置に送信される送信データ又は送信済みの送信データのうち、前記エントリの位置を示す位置情報に基づいた送信予定の送信データの情報を示す送信予定データ情報と、前記エントリの位置を示す位置情報に基づいた前記処理装置への到着が未確認である送信データの情報を示す送達未確認データ情報とをそれぞれ生成するとともに、前記送信予定データ情報または前記送達未確認データ情報が所定の条件を満たすかについての判定結果に基づき、停止要求をそれぞれ出力する複数の送受信部と、
前記停止要求が前記送受信部から入力された場合、入力された前記停止要求の出力元の送受信部に対し、前記記憶装置から受信したデータの振り分けを停止する振分部とを有することを特徴とする転送装置。
（付記７）
前記転送装置は、前記停止要求の数に応じて、所定時間内の前記リクエストの送信の回数を減らすことを特徴とする６記載の転送装置。
（付記８）
前記送信予定データ情報は、前記送信予定の送信データの合計サイズを示す送信予定サイズであり、
前記送達未確認データ情報は、前記処理装置への到着が未確認である送信データの合計サイズを示す送達未確認サイズであり、
前記複数の送受信部のそれぞれは、
前記送信予定サイズが第１の閾値より大きいまたは前記送達未確認サイズが第２の閾値より大きい場合に前記停止要求を出力し、
前記送信予定サイズが前記第１の閾値より小さい第３の閾値以下、且つ前記送達未確認サイズが前記第２の閾値以下である場合に前記停止要求の出力を停止することを特徴とする付記６または７に記載の転送装置。
（付記９）
前記振分部は、前記停止要求が入力されてから一定時間後に、前記記憶装置から受信したデータの振り分けを停止し、
前記一定時間は、前記転送装置が前記記憶装置に前記リクエストを送信してから前記リクエストに対する応答を前記振り分け部が受信するまでの時間であることを特徴とする付記６乃至８のいずれか１項に記載の転送装置。
（付記１０）
前記複数の送受信部のそれぞれは、
データの書き込み位置を示す書き込み位置情報と、データの読み出し位置を示す読み出し位置情報と、前記処理装置への到着が確認されたデータの位置を示す送達確認位置情報と、を有し、
前記書き込み位置情報から前記読み出し位置情報を減算することで前記送信予定サイズを算出し、
前記書き込み位置情報から前記送達確認位置情報を減算することで前記送達未確認サイズを算出することを特徴とする付記８または９に記載の転送装置。
（付記１１）
データを記憶する記憶装置と、前記記憶装置にリクエストを送信する処理装置と、前記記憶装置から読み出されるデータを前記処理装置に転送する転送装置とを備える情報処理装置の制御方法において、
前記情報処理装置が有する複数の送受信部が、保持部が有する複数のエントリのいずれかに保持され、前記処理装置に送信される送信データ又は送信済みの送信データのうち、前記エントリの位置を示す位置情報に基づいた送信予定の送信データの情報を示す送信予定データ情報と、前記エントリの位置を示す位置情報に基づいた前記処理装置への到着が未確認である送信データの情報を示す送達未確認データ情報とをそれぞれ生成し、
前記複数の送受信部が、前記送信予定データ情報または前記送達未確認データ情報が所定の条件を満たすかについての判定結果に基づき、停止要求をそれぞれ出力し、
前記情報処理装置が有する振分部が、前記停止要求が前記送受信部から入力された場合、入力された前記停止要求の出力元の送受信部に対し、前記記憶装置から受信したデータの振り分けを停止することを特徴とする制御方法。
（付記１２）
前記転送装置が前記記憶装置に前記リクエストを送信する処理をさらに備え、
前記リクエストを送信する処理において、前記リクエスト停止要求の数に応じて、所定時間内の前記リクエストの送信の回数を減らすことを特徴とする付記１１記載の制御方法。
（付記１３）
前記送信予定データ情報は、前記送信予定の送信データの合計サイズを示す送信予定サイズであり、
前記送達未確認データ情報は、前記処理装置への到着が未確認である送信データの合計サイズを示す送達未確認サイズであり、
前記停止要求を出力する処理は、
前記送信予定サイズが第１の閾値より大きいまたは前記送達未確認サイズが第２の閾値より大きい場合に前記停止要求を出力し、
前記送信予定サイズが前記第１の閾値より小さい第３の閾値以下、且つ前記送達未確認サイズが前記第２の閾値以下である場合に前記停止要求の出力を停止することを特徴とする付記１１または１２に記載の制御方法。
（付記１４）
前記データの振り分けを停止する処理は、前記停止要求が入力されてから一定時間後に、前記記憶装置から受信したデータの振り分けを停止し、
前記一定時間は、前記転送装置が前記記憶装置に前記リクエストを送信してから前記リクエストに対する応答を前記振分部が受信するまでの時間であることを特徴とする付記１１乃至１３のいずれか１項に記載の制御方法。
（付記１５）
前記停止要求を出力する処理において、前記データの書き込み位置を示す書き込み位置情報からデータの読み出し位置を示す読み出し位置情報を減算することで前記送信予定サイズを算出し、前記書き込み位置情報から前記処理装置への到着が確認されたデータの位置を示す送達確認位置情報を減算することで前記送達未確認サイズを算出することを特徴とする付記１３または１４に記載の制御方法。
【符号の説明】
【０１２９】
１０１    サーバ
２０１    ＣＰＵ
２１１    シリアルインターフェイス
３０１    プロトコル変換チップ
３１１    パラレルインターフェイス
３２１    シリアルインターフェイス
３２２    再送バッファ
３２３    再送バッファ制御部
３２４    受信部
３３１    プロトコル変換部
３４１    パケット振り分け部
３５１    閾値判定部
３６１    リクエストポート部
３６２    シフトレジスタ
３６３    リクエスト制限部
３６４    リクエストポート
４０１    メモリ
【図１】
2015198278.tif 000003
【図２】
2015198278.tif 000004
【図３】
2015198278.tif 000005
【図６】
2015198278.tif 000006
【図９】
2015198278.tif 000007
【図１０】
2015198278.tif 000008
【図１１】
2015198278.tif 000009
【図１２】
2015198278.tif 000010
【図１３】
2015198278.tif 000011
【図１４】
2015198278.tif 000012
【図１５】
2015198278.tif 000013
【図４】
2015198278.tif 000014
【図５】
2015198278.tif 000015
【図７】
2015198278.tif 000016
【図８】
2015198278.tif 000017