(57)【要約】【課題】バスの使用権取得の待ち期間を短縮し、データの転送時間を短縮するデータ転送装置および情報処理システムを提供すること。【解決手段】データ転送処理部１５２は、管理テーブル１４１とＣＰＵボード２−１〜２−３の要求によりキャッシュメモリ１３のヒット判定を行い、キャッシュメモリ１３に要求されたデータが存在しない場合、タイムテーブル１４２の最適パケット長分のパケット毎に共有メモリ１２から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに送信すべきパケットを読み出す並列処理による読出し・送信を行うとともに、パケットの転送時間を計測し、パケット長最適化処理部１５３は、計測されたパケット転送時間およびタイムテーブル１４２に登録された情報に基づいてパケット転送時間とパケット読出し時間との差が小さくなるように最適パケット長を変更する。【選択図】        図２
2008234059.tif 000002
【特許請求の範囲】
【請求項１】
各種処理を実行する複数の処理モジュールとバスによって接続され、前記処理モジュールが処理に要するデータを記憶する記憶手段を備え、前記処理モジュールからの要求によって前記記憶手段に記憶されているデータを要求元の処理モジュールに転送するデータ転送装置において、
前記処理モジュールからの要求を受けると、要求されたデータを最適パケット長分のパケット毎に前記記憶手段から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに送信すべきパケットを前記記憶手段から読み出す並列処理による読出し・送信を行うとともに、パケットの転送時間に応じて新たな最適パケット長を選択する制御手段、
を備えることを特徴とするデータ転送装置。
【請求項２】
予め定められた複数のパケット長毎に当該パケット長に関連付けて記憶手段から当該パケット長のデータであるパケットを前記記憶手段から読み出すパケット読出し時間と、過去に前記記憶手段から要求されたデータの読み出しを開始してから送信が終了するまでの処理に要した時間である過去トータル時間と、データ送信に用いるパケットのパケット長である最適パケット長と、該最適パケット長のパケットによって要求されるデータを送信するために必要なパケット転送回数とが登録されるタイムテーブルを記憶する制御情報記憶手段、
をさらに備え、
前記制御手段は、
前記タイムテーブルの最適パケット長分のパケット毎に前記記憶手段から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに転送すべきパケットを前記記憶手段から読み出す並列処理による読出し・送信を行うとともに、パケットの送信開始から送信終了までのパケット転送時間を計測するデータ転送処理手段と、
前記最適パケット長が示すパケット長に関連付けられてタイムテーブルに登録されているパケット読出し時間およびパケット転送回数と、前記データ転送処理手段によって計測されたパケット転送時間に基づいてトータル転送時間を算出し、算出したトータル転送時間が前記タイムテーブルに登録された過去トータル時間より小さい場合に、前記パケット読出し時間と計測したパケット転送時間との差が小さくなるように前記タイムテーブルに登録された最適パケット長を変更するパケット長最適化処理手段と、
を備えることを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
前記パケット長最適化処理手段は、
前記パケット読出し時間が前記パケット転送時間よりも大きい場合には、前記パケット読出し時間に前記パケット転送回数を乗算した値に前記パケットの転送時間を加算した値を前記トータル時間とし、現在の最適パケット長を予め定められた定数で除算した値を前記タイムテーブルの最適パケット長に登録し、前記パケット転送時間が前記パケット読出し時間よりも大きい場合には、前記パケット転送時間に前記パケット転送回数を乗算した値に前記パケットの読出し時間を加算した値を前記トータル時間とし、現在の最適パケット長に予め定められた定数を乗算した値を前記タイムテーブルの最適パケット長に登録し、登録した最適パケット長による転送回数をタイムテーブルのパケット転送回数に登録すること、
を特徴とする請求項２に記載のデータ転送装置。
【請求項４】
各種処理を実行する複数の処理モジュールと、前記処理モジュールが処理に要するデータを記憶する記憶手段を備え、前記処理モジュールからの要求によって前記記憶手段に記憶されているデータを要求元の処理モジュールに転送するデータ転送装置とがバスによって接続される情報処理システムにおいて、
前記データ転送装置は、
前記処理モジュールからの要求を受けると、要求されたデータを最適パケット長分のパケット毎に前記記憶手段から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに転送すべきパケットを前記記憶手段から読み出す並列処理による読出し・送信を行うとともに、パケットの転送時間に応じて新たな最適パケット長を選択する制御手段、
を備えることを特徴とする情報処理システム。
【請求項５】
前記記憶手段は、
前記前記処理モジュールが処理に要する全てのデータを記憶する共有メモリと、
前記共有メモリが記憶するデータの一部を記憶するキャッシュメモリと、
を備え、
前記制御手段は、
前記処理モジュールから要求されたデータが前記キャッシュメモリに記憶されているか否かを判定するヒット判定を行い、処理モジュールから要求されたデータが前記キャッシュメモリに記憶されている場合には前記キャッシュメモリからパケット毎にデータを読み出して順次送信し、前記処理モジュールから要求されたデータが前記キャッシュメモリに記憶されていない場合には受け付けた要求を一時保持し、保持している要求の中で最も古い要求から順に実行する際に、実行する要求に対して再度ヒット判定を行い、処理モジュールから要求されたデータが前記キャッシュメモリに記憶されている場合には前記キャッシュメモリからパケット毎にデータを読み出して順次送信し、処理モジュールから要求されたデータが前記キャッシュメモリに記憶されていない場合には前記共有メモリからパケット毎にデータを読み出して順次送信すること、
を特徴とする請求項４に記載の情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理におけるデータ転送に関し、特に、マルチプロセッサ構成のシステムにおいて要求されたデータを記憶手段から読み出して転送するデータ転送装置、および情報処理システムに関するものである。
【背景技術】
【０００２】
近年の情報処理においては、特に、音声や動画など膨大なデータを扱う場合その処理の高速化が要求される。そのため、ＣＰＵが搭載され所望の処理を行なう複数のＣＰＵボードと、これらのＣＰＵボードと共有バスによって接続されそれぞれのＣＰＵがアクセス可能な共有メモリが搭載されるメモリボードとで構成されるマルチプロセッサによる情報処理システムが用いられることが多い。
【０００３】
このようなマルチプロセッサによる情報処理システムにおいては、共有メモリにアクセスする際にＣＰＵボードがバスを専有する。そのため、他のＣＰＵボードはバス権を取得するまで待ち状態となり、システムの処理能力が低下してしまうという問題があった。
【０００４】
このような問題を改善するために、従来から種々の技術が考えられている。たとえば、特許文献１には、中央制御装置から記憶装置に発行される入出力要求に基づいて、シーケンシャルアクセスの比率が高いのか、ランダムアクセスの比率が高いのかを判定することでデータ転送量に基づくバス負荷特性を予測し、データ転送能力重視のバス利用方法またはランダムアクセス能力重視のバス利用方法を自動的にチューニングしてデータ転送量を変更するバス制御方法に関する技術が開示されている。
【０００５】
また、特許文献２には、アクセスすべきデータがプロセッサに対応した分散メモリにあるのか、他の分散メモリにあるのかを判定し、その判定に基づいてアクセスのデータ転送量を変化させる、すなわち転送バスへのデータ転送量をメモリバスへのデータ転送量に比べて小さくするデータ転送量可変プロセッサに関する技術が開示されている。
【０００６】
【特許文献１】特開平７−２２５７３７号公報
【特許文献２】特開平７−２８２０２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記特許文献１に記載の従来技術では、データ転送量に応じてデータ転送能力重視のバス利用法、またはランダムアクセス能力重視のバス利用法を自動的にチューニングするようにしているため、運用形態が変化した場合でも効率よくバスを使用することが可能となり、システムの処理能力を向上することができる。
【０００８】
また、上記特許文献２に記載の従来技術では、転送バスの１回あたりの使用時間を短縮することで転送バスの使用率を下げてシステム全体の高速処理を実現し、システムの処理能力を向上している。
【０００９】
ここで、１回のデータ転送について考える。マルチプロセッサの情報処理システムでは、共有メモリから読み出したデータを要求元であるＣＰＵボードに転送し終えるまでの時間は、各ＣＰＵボードの処理の輻輳状態によって変動する。そのため、１回のデータ転送において固定長のパケット単位でデータを転送すると、他のＣＰＵボードがバスを専有している間に発生した他のＣＰＵボードからの共有メモリへのアクセス要求は、大幅な待ち合わせ時間が生じてしまい、転送時間が増加してしまうという問題があった。
【００１０】
しかしながら、上記特許文献１および２の従来技術では、１回のデータ転送、すなわち１回のアクセス要求におけるデータ転送時の転送パケットは固定長であるため、メモリからのデータ読出し・および転送時間を短縮することはできない。そのため、要求元の処理の輻輳状態によって変動するバスの専有による大幅な待ち時間を短縮することはできず、それによる転送時間の増加を防止することはできない。
【００１１】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、データ転送におけるパケット長を最適化することでバスの使用権を取得するための待ち期間を短縮し、データの転送時間を短縮することができるデータ転送装置および情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するため、請求項１の発明にかかるデータ転送装置は、各種処理を実行する複数の処理モジュールとバスによって接続され、前記処理モジュールが処理に要するデータを記憶する記憶手段を備え、前記処理モジュールからの要求によって前記記憶手段に記憶されているデータを要求元の処理モジュールに転送するデータ転送装置において、前記処理モジュールからの要求を受けると、要求されたデータを最適パケット長分のパケット毎に前記記憶手段から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに送信すべきパケットを前記記憶手段から読み出す並列処理による読出し・送信を行うとともに、パケットの転送時間に応じて新たな最適パケット長を選択する制御手段、を備えることを特徴とする。
【００１３】
また、請求項２の発明にかかるデータ転送装置は、請求項１の発明において、予め定められた複数のパケット長毎に当該パケット長に関連付けて記憶手段から当該パケット長のデータであるパケットを前記記憶手段から読み出すパケット読出し時間と、過去に前記記憶手段から要求されたデータの読み出しを開始してから送信が終了するまでの処理に要した時間である過去トータル時間と、データ送信に用いるパケットのパケット長である最適パケット長と、該最適パケット長のパケットによって要求されるデータを送信するために必要なパケット転送回数とが登録されるタイムテーブルを記憶する制御情報記憶手段、をさらに備え、前記制御手段は、前記タイムテーブルの最適パケット長分のパケット毎に前記記憶手段から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに転送すべきパケットを前記記憶手段から読み出す並列処理による読出し・送信を行うとともに、パケットの送信開始から送信終了までのパケット転送時間を計測するデータ転送処理手段と、前記最適パケット長が示すパケット長に関連付けられてタイムテーブルに登録されているパケット読出し時間およびパケット転送回数と、前記データ転送処理手段によって計測されたパケット転送時間に基づいてトータル転送時間を算出し、算出したトータル転送時間が前記タイムテーブルに登録された過去トータル時間より小さい場合に、前記パケット読出し時間と計測したパケット転送時間との差が小さくなるように前記タイムテーブルに登録された最適パケット長を変更するパケット長最適化処理手段と、を備えることを特徴とする。
【００１４】
また、請求項３の発明にかかるデータ転送装置は、請求項２の発明において、前記パケット長最適化処理手段は、前記パケット読出し時間が前記パケット転送時間よりも大きい場合には、前記パケット読出し時間に前記パケット転送回数を乗算した値に前記パケットの転送時間を加算した値を前記トータル時間とし、現在の最適パケット長を予め定められた定数で除算した値を前記タイムテーブルの最適パケット長に登録し、前記パケット転送時間が前記パケット読出し時間よりも大きい場合には、前記パケット転送時間に前記パケット転送回数を乗算した値に前記パケットの読出し時間を加算した値を前記トータル時間とし、現在の最適パケット長に予め定められた定数を乗算した値を前記タイムテーブルの最適パケット長に登録し、登録した最適パケット長による転送回数をタイムテーブルのパケット転送回数に登録すること、を特徴とする。
【００１５】
また、請求項４にかかる情報処理システムは、各種処理を実行する複数の処理モジュールと、前記処理モジュールが処理に要するデータを記憶する記憶手段を備え、前記処理モジュールからの要求によって前記記憶手段に記憶されているデータを要求元の処理モジュールに転送するデータ転送装置とがバスによって接続される情報処理システムにおいて、前記データ転送装置は、前記処理モジュールからの要求を受けると、要求されたデータを最適パケット長分のパケット毎に前記記憶手段から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに転送すべきパケットを前記記憶手段から読み出す並列処理による読出し・送信を行うとともに、パケットの転送時間に応じて新たな最適パケット長を選択する制御手段、を備えることを特徴とする。
【００１６】
また、請求項５にかかる情報処理システムは、請求項４の発明において、前記記憶手段は、前記前記処理モジュールが処理に要する全てのデータを記憶する共有メモリと、前記共有メモリが記憶するデータの一部を記憶するキャッシュメモリと、を備え、前記制御手段は、前記処理モジュールから要求されたデータが前記キャッシュメモリに記憶されているか否かを判定するヒット判定を行い、処理モジュールから要求されたデータが前記キャッシュメモリに記憶されている場合には前記キャッシュメモリからパケット毎にデータを読み出して順次送信し、前記処理モジュールから要求されたデータが前記キャッシュメモリに記憶されていない場合には受け付けた要求を一時保持し、保持している要求の中で最も古い要求から順に実行する際に、実行する要求に対して再度ヒット判定を行い、処理モジュールから要求されたデータが前記キャッシュメモリに記憶されている場合には前記キャッシュメモリからパケット毎にデータを読み出して順次送信し、処理モジュールから要求されたデータが前記キャッシュメモリに記憶されていない場合には前記共有メモリからパケット毎にデータを読み出して順次送信すること、を特徴とする。
【発明の効果】
【００１７】
請求項１の発明によれば、処理モジュールから要求されたデータを最適パケット長分のパケット毎に処理モジュールが処理に要するデータを記憶する記憶手段から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに送信すべきパケットを記憶手段から読み出す並列処理による読出し・送信を行うとともに、パケットの転送時間に応じて新たな最適パケット長を選択するようにしているため、データ転送におけるパケット長を最適化することでバスの使用権を取得するための待ち期間を短縮することができる。
【００１８】
また、請求項２に発明によれば、予め定められた複数のパケット長毎に当該パケット長に関連付けて記憶手段から当該パケット長のデータであるパケットを記憶手段から読み出すパケット読出し時間と、過去に記憶手段から要求されたデータの読み出しを開始してから送信が終了するまでの処理に要した時間である過去トータル時間と、データ送信に用いるパケットのパケット長である最適パケット長と、該最適パケット長のパケットによって要求されるデータを送信するために必要なパケット転送回数とが登録されるタイムテーブルを記憶する制御情報記憶手段を備え、タイムテーブルの最適パケット長分のパケット毎に記憶手段から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに転送すべきパケットを記憶手段から読み出す並列処理による読出し・送信を行うとともに、パケットの送信開始から送信終了までのパケット転送時間を計測し、最適パケット長が示すパケット長に関連付けられてタイムテーブルに登録されているパケット読出し時間およびパケット転送回数と、データ転送処理手段によって計測されたパケット転送時間に基づいてトータル転送時間を算出し、算出したトータル転送時間がタイムテーブルに登録された過去トータル時間より小さい場合に、パケット読出し時間と計測したパケット転送時間との差が小さくなるようにタイムテーブルに登録された最適パケット長を変更するようにしているため、データ転送におけるパケット長を最適化することでバスの使用権を取得するための待ち期間を短縮することができる。
【００１９】
また、請求項３の発明によれば、パケット読出し時間がパケット転送時間よりも大きい場合には、パケット読出し時間にパケット転送回数を乗算した値にパケットの転送時間を加算した値をトータル時間とし、現在の最適パケット長を予め定められた定数で除算した値をタイムテーブルの最適パケット長に登録し、パケット転送時間がパケット読出し時間よりも大きい場合には、パケット転送時間にパケット転送回数を乗算した値にパケットの読出し時間を加算した値をトータル時間とし、現在の最適パケット長に予め定められた定数を乗算した値をタイムテーブルの最適パケット長に登録し、登録した最適パケット長による転送回数をタイムテーブルのパケット転送回数に登録するようにしているため、データ転送におけるパケット長を最適化することでバスの使用権を取得するための待ち期間を短縮することができる。
【００２０】
また、請求項４の発明によれば、処理モジュールから要求されたデータを最適パケット長分のパケット毎に処理モジュールが処理に要するデータを記憶する記憶手段から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに送信すべきパケットを記憶手段から読み出す並列処理による読出し・送信を行うとともに、パケットの転送時間に応じて新たな最適パケット長を選択するようにしているため、データ転送におけるパケット長を最適化することでバスの使用権を取得するための待ち期間を短縮することができる。
【００２１】
また、請求項５の発明によれば、記憶手段として処理モジュールが処理に要する全てのデータを記憶する共有メモリと共有メモリが記憶するデータの一部を記憶するキャッシュメモリとで構成し、処理モジュールから要求されたデータがキャッシュメモリに記憶されているか否かを判定するヒット判定を行い、処理モジュールから要求されたデータがキャッシュメモリに記憶されている場合にはキャッシュメモリからパケット毎にデータを読み出して順次送信し、処理モジュールから要求されたデータがキャッシュメモリに記憶されていない場合には受け付けた要求を一時保持し、保持している要求の中で最も古い要求から順に実行する際に、実行する要求に対して再度ヒット判定を行い、処理モジュールから要求されたデータがキャッシュメモリに記憶されている場合にはキャッシュメモリからパケット毎にデータを読み出して順次送信し、処理モジュールから要求されたデータがキャッシュメモリに記憶されていない場合には共有メモリからパケット毎にデータを読み出して順次送信するようにしているため、データ転送におけるパケット長を最適化だけでなく、異なる処理モジュールから同一のデータの読み出しを要求された場合には、最初に実行する処理モジュールの要求時のみ共有メモリからデータを読み出せばよく、以後の要求に対してはキャッシュメモリからデータを読み出すことが可能となり、データの読出し時間を削減しバスの使用権を取得するための待ち期間を短縮することができる。
【発明を実施するための最良の形態】
【００２２】
以下に添付図面を参照して、この発明に係るデータ転送装置および情報処理システムの好適な実施の形態を詳細に説明する。
【実施例】
【００２３】
図１〜図８を用いてこの発明にかかるデータ転送装置の実施例を説明する。まず、図１を参照して、本発明のデータ転送装置のデータ転送およびパケット長最適化の概念についてについて説明する。従来のデータ転送では、ｘ（ｘは自然数）バイトのデータをメモリから読み出してデータを転送する場合、ｘバイトのデータをメモリから読み出し、読み出したデータを転送する。よって、ｘバイトのデータ読出し時間をｔ１とし、ｘバイトのデータ転送時間をｔ２とすると、データ読出し・転送時間ｔは、「ｔ＝ｔ１＋ｔ２」となる。
【００２４】
これに対して、本発明のデータ転送装置のデータ転送は、送信すべきデータｘバイトをメモリから１度に読み出すのではなく、データをａ（ａ≦ｘ，ａは自然数）バイトのパケットに分割して読出し、読み出したパケットを転送している間に、つぎのパケットをメモリから読み出す。すなわち、メモリからのデータ（パケット）の読出しと、パケットの転送を同時に実行する並列処理を行う。
【００２５】
ここで、パケット長がａバイトのパケットのメモリからの読出し時間をｔａとし、パケットの転送時間をｔｂとすると、「読出し時間Ｔａ＞転送時間ｔｂ」の場合のデータ読出し・転送時間Ｔは、
Ｔ＝（ｔａ×パケット転送回数）＋ｔｂ      ・・・  （式１）
で表すことができる。また、「読出し時間ｔａ＜転送時間Ｔｂ」の場合のデータ読出し・転送時間Ｔは、
Ｔ＝ｔａ＋（ｔｂ×パケット転送回数）      ・・・  （式２）
で表すことができる。
【００２６】
上記（式１）および（式２）からわかるように、データ読出し・転送時間Ｔは、読出し時間ｔａと転送時間ｔｂとで長い方の処理時間にパケット転送回数を乗算した値に、読出し時間ｔａと転送時間ｔｂとで短い方の処理時間を加算した値となる。したがって、読出し時間ｔａと転送時間ｔｂとが一致する場合にデータ読出し・転送時間Ｔが最も短くなる。この点に着目して、本発明のデータ転送装置は、パケットの読出し時間と転送時間とが一致または近づくようにパケット長を変化させてパケット長を最適化するようにするものである。
【００２７】
図２は、本発明のデータ転送装置が適用される情報処理システムの構成を示す図である。図２において、情報処理システムは、データ転送装置であるメモリボード１と、複数（この場合は３つ）のＣＰＵボード２−１〜２−３とが、バス３によって接続されている。
【００２８】
メモリボード１は、インターフェース部（以下、Ｉ／Ｆ部という）１１、共有メモリ１２、キャッシュメモリ１３、制御情報記憶部１４、および制御部１５とを備えている。
【００２９】
Ｉ／Ｆ部１１は、バス３を介してＣＰＵボード２−１〜２−３と接続するインターフェース機能を備えている。共有メモリ１２はＣＰＵボード２−１〜２−３の処理に要するデータを記憶する。キャッシュメモリ１３は、共有メモリ１２に記憶されているデータの一部を記憶する。
【００３０】
制御情報記憶部１４は、共有メモリ１２およびキャッシュメモリ１３に記録されているデータの読出しおよび転送の制御に必要な制御情報が登録される記憶手段であり、管理テーブル１４１とタイムテーブル１４２とを記憶する。管理テーブル１４１には、共有メモリ１２に記憶されているデータについての記憶位置を示すメモリアドレス、データの状態等の情報、キャッシュメモリ１３に記憶されているデータについての記憶位置を示すメモリアドレス、データの状態等の情報等の各種情報が登録される。なお、キャッシュメモリ１３に記録するデータは、ＣＰＵボード２−１〜２−３毎に区分してデータを記録する様にしてもよい。
【００３１】
タイムテーブル１４２には、パケットの最適化に必要な情報およびパケットの転送に必要な情報が登録される。具体的には、タイムテーブル１４２の登録項目として、パケット読出し時間、パケット転送時間、トータル時間（データ読出し・転送時間）、過去トータル時間、最適パケット長、およびパケット転送回数が挙げられる。
【００３２】
パケット読出し時間には、共有メモリ１２からパケット長のデータ読出し時間が登録される。パケット転送時間には、共有メモリ１２からパケット長分のデータをＣＰＵボード２−１〜２−３に転送するために必要な時間が登録される。トータル時間には、データ要求に対する１番目のパケットを共有メモリ１２から読み出してからＣＰＵボード２−１〜２−３に対して最後のパケットを転送し終わるまでに要するトータル時間が登録される。過去トータル時間には、過去のトータル時間が登録される。最適パケット長には、パケット最適化による現在のパケット長が登録される。パケット転送回数には、データ要求によって要求されたデータ長分のデータをパケットによって転送するための転送回数、すなわち、「データ長／パケット長」の値が登録される。
【００３３】
なお、パケット読出し時間、パケット転送時間、トータル時間、および過去トータル時間については、予め定められた複数のパケット長毎に当該パケット長に関連付けて登録される。複数のパケット長は、データ読出し要求によって要求されるデータ長を最大パケット長とし、最大パケット長を予め定められた定数ｍ（１＜ｍ，ｍは整数）で除算していった値となる。具体的には、定数ｍを「２」とし、最大パケット長が「５１２バイト」とすると、パケット長は、「５１２バイト」、「２５６バイト」、「１２８バイト」、「６４バイト」、・・・、となり、これらのパケット長毎に、パケット読出し時間、パケット転送時間、トータル時間、および過去トータル時間が登録される。
【００３４】
また、管理テーブル１４１およびタイムテーブル１４２の各登録項目の値は、システム起動時やリセット後の初期動作時に、予め定められた値が登録されるが、図示しない入力手段を用いてシステム管理者などが任意の値を設定するようにしてもよい。
【００３５】
制御部１５は、管理テーブル１４１およびタイムテーブル１４２に基づいてＣＰＵボード２−１〜２−３からのアクセス命令（データ書き込み要求またはデータ読出し要求）に基づいて共有メモリ１２またはキャッシュメモリ１３にアクセスし、共有メモリ１２またはキャッシュメモリ１３にデータの書き込みや読出し、データ転送を行う。また、データ転送においてパケット長最適化処理を行う。
【００３６】
制御部１５は、レジスタ１５１と、データ転送処理部１５２と、パケット長最適化処理部１５３とを備えている。レジスタ１５１は、ＦＩＦＯ（First In First Out）形式のレジスタであって、ＣＰＵボード２−１〜２−３からのアクセスに基づく命令をキューとして保持する。
【００３７】
データ転送処理部１５２は、レジスタ１５１が保持している命令を保持した順に実行する。データ転送処理部１５２は、実行すべき命令がデータ読出し要求である場合、管理テーブル１４１に基づいて共有メモリ１２からデータを読み出すのか、キャッシュメモリ１３からデータを読み出すのかを選択する。データ転送処理部１５２は、共有メモリ１２からデータを読み出すことを選択した場合には、タイムテーブル１４２の最適パケット長に登録されているパケット長分のデータを読出し・転送のパケットとして読出しおよび送信の並列処理を行う。データ転送処理部１５２は、データ転送処理部１５２は、キャッシュメモリ１３からデータを読み出すことを選択した場合には、キャッシュメモリ１３からデータ読出し要求によるデータ長のデータをキャッシュメモリ１３から読み出し、詠み出したデータをＣＰＵボード２−１〜２−３に送信する。
【００３８】
パケット長最適化処理部１５３は、データ転送処理部１５２によって転送される現在の最適パケット長のパケットの転送時間および管理テーブル１４１に基づいて、共有メモリ１２からのパケットの読出し時間とパケットの転送時間との差が最小となるようにパケット長を最適化する。
【００３９】
ＣＰＵボード２−１〜２−３は、所望の処理を実行する処理装置であって、ＣＰＵ（図示せず）とこのＣＰＵが実行するプログラムが格納される記憶手段（図示せず）とを有する制御部２２と、バス３を介してメモリボード１と接続するＩ／Ｆ部２１とを備えている。
【００４０】
つぎに、図３および図４のフローチャートを参照して、情報処理システムの動作について説明する。なお、この発明におけるデータ転送装置および情報処理システムの特徴は、共有メモリ１２からデータを読み出して要求元であるＣＰＵボード２−１〜２−３にデータを転送する動作と、データ転送におけるパケット長の最適化にあり、ＣＰＵボード２−１〜２−３から共有メモリ１２またはキャッシュメモリ１３へのデータ書き込みについては、一般的な従来処理と同様であるため、ここでは、ＣＰＵボード２−１〜２−３がメモリボード１に対してデータを要求した場合、すなわちデータ読出し要求に関する動作のみ説明する。
【００４１】
この発明におけるデータ転送装置のデータ読出し要求に関する動作は、ＣＰＵボード２−１〜２−３からのデータ読出し要求に基づいて共有メモリ１２またはキャッシュメモリ１３からデータを読み出して要求元であるＣＰＵボード２−１〜２−３に送信するするデータ転送処理と、共有メモリ１２からデータを読み出す際のパケット長を最適化するパケット長最適化処理とがある。まず、図３のフローチャートを参照して、データ転送処理の動作について説明する。
【００４２】
ＣＰＵボード２−１〜２−３の制御部２２は、メモリボード１の共有メモリ１２に記憶されているデータに対するアクセス（この場合は、データ読出し）を要する場合、メモリボード１に対するアクセスとして、必要なデータの送信を要求するデータ読出し要求をＩ／Ｆ部２１を介して送信する。データ読出し要求がＣＰＵボード２−１〜２−３からメモリボード１へ転送される間、要求元であるＣＰＵボード２−１〜２−３は、バス３を専有する。
【００４３】
メモリボード１のデータ転送処理部１５２は、Ｉ／Ｆ部１１を介してＣＰＵボード２−１〜２−３からのデータ読出し要求を受け付ける（ステップＳ１０１）。データ転送処理部１５２は、受け付けたデータ読出し要求および管理テーブル１４１に登録されている情報に基づいて、読出し要求によって要求されたデータがキャッシュメモリ１３に記憶されているか否かを判定する（ステップＳ１０２）。
【００４４】
具体的には、データ転送処理部１５２は、管理テーブル１４１を参照することにより、キャッシュメモリ１３に記憶されているデータと、該データを記憶している共有メモリ１２のアドレスとの関係、およびデータ読出し要求によって要求されているデータと、該データを記憶している共有メモリ１２のメモリアドレスとの関係を認識することができる。データ転送処理部１５２は、それぞれのメモリアドレスを比較することにより、要求されたデータがキャッシュメモリ１３に記憶されているかの判定、すなわちヒット判定を行う。
【００４５】
まず、データ転送処理部１５２は、キャッシュメモリ１３に記憶されているデータが共有メモリ１２の上限アドレスから下限アドレスが示す領域のデータであるのかを認識する。認識した領域内にデータ読出し要求によって要求された上限アドレスから下限アドレスが示す領域が全て含まれている場合、データ転送処理部１５２は、キャッシュメモリ１３に要求されたデータが記録されている、すなわちヒットしたと判定する。認識した領域内にデータ読出し要求によって要求された上限アドレスから下限アドレスが示す領域が全て含まれていない場合、データ転送処理部１５２は、キャッシュメモリ１３に要求されたデータが記録されていない、すなわちミスヒットと判定する。
【００４６】
要求されたデータがキャッシュメモリ１３に記憶されていると判定した場合（ステップＳ１０２，Ｙｅｓ）、データ転送処理部１５２は、キャッシュメモリ１３からデータ読出し要求によって要求されたデータをキャッシュメモリ１３から抽出し（ステップＳ１０３）、抽出したデータをＩ／Ｆ部１１を介して要求元であるＣＰＵボード２−１〜２−３に送信する（ステップＳ１０４）。なお、データ読出し要求を受信してからヒット判定が行われている間、バス３は開放され、メモリボード１から要求元であるＣＰＵボード２−１〜２−３にデータを転送している間、要求元であるＣＰＵボード２−１〜２−３がバス３を再度専有する。
【００４７】
要求元であるＣＰＵボード２−１〜２−３の制御部２２は、Ｉ／Ｆ部２１によってデータを受信し、受信したデータに基づく処理を実行する。
【００４８】
要求されたデータがキャッシュメモリ１３に記憶されていないと判定した場合（ステップＳ１０２，Ｎｏ）、データ転送処理部１５２は、受け付けたデータ読出し要求に基づく命令をキューとしてレジスタ１５１に保持させる（ステップＳ１０５）。レジスタ１５１に保持された命令は、保持した順にデータ転送処理部１５２に読み出されて実行される。
【００４９】
データ転送処理部１５２は、レジスタ１５１に保持されたデータ読出し要求に基づく命令を読出し（ステップＳ１０６）、読み出したデータ読出し要求が要求するデータがキャッシュメモリ１３に記憶されているか否かを再度判定する（ステップＳ１０７）。すなわち、レジスタ１５１に保持してから読み出されるまでの間に実行された命令によって、新たに共有メモリ１２からキャッシュメモリ１３にデータが記録されることがある。そのため、命令実行前に再度ヒット判定を行う。
【００５０】
要求されたデータがキャッシュメモリ１３に記憶されていると判定した場合（ステップＳ１０７，Ｙｅｓ）、データ転送処理部１５２は、キャッシュメモリ１３からデータ読出し要求によって要求されたデータをキャッシュメモリ１３から抽出し（ステップＳ１０３）、抽出したデータをＩ／Ｆ部１１を介して要求元であるＣＰＵボード２−１〜２−３に送信する（ステップＳ１０４）。
【００５１】
要求元であるＣＰＵボード２−１〜２−３の制御部２２は、Ｉ／Ｆ部２１によってデータを受信し、受信したデータに基づく処理を実行する。
【００５２】
要求されたデータがキャッシュメモリ１３に記憶されていないと判定した場合（ステップＳ１０７，Ｎｏ）、データ転送処理部１５２は、タイムテーブル１４２に登録されている最適パケット長およびパケット転送回数を読み出す（ステップＳ１０８）。データ転送処理部１５２は、転送カウンタ（図示せず）のカウント値を初期化（この場合は「１」に）する（ステップＳ１０９）。
【００５３】
データ転送処理部１５２は、共有メモリ１２から最適パケット長分のデータを抽出する（ステップＳ１１０）。具体的には、データ転送処理部１５２は、データ読出し要求によって要求されたデータの先頭を示すアドレスを最初の読出しアドレスとし、読出しアドレスから最適パケット長分のデータを抽出する。その後、データを抽出する度に、読出しアドレスから最適パケット長分のデータを加算または減算してつぎに読み出すべきデータの先頭アドレスを算出し、算出した先頭アドレスを読出しアドレスとする。
【００５４】
データ転送処理部１５２は、読み出したパケット長分のデータ（パケット）をＩ／Ｆ部１１を介して要求元であるＣＰＵボード２−１〜２−３に送信を開始する（ステップＳ１１１）。
【００５５】
データ転送処理部１５２は、パケットの送信を実行するとともに、キャッシュメモリ１３にパケットとして送信したデータを記憶させる（ステップＳ１１２）。また、データ転送処理部１５２は、転送カウンタをインクリメントし（ステップＳ１１３）、転送カウンタの転送カウント値とパケット転送回数とを比較する（ステップＳ１１４）。転送カウント値がパケット転送回数以下の場合（ステップＳ１１４，Ｎｏ）、データ転送処理部１５２は、読出しアドレスに基づいて共有メモリ１２から最適パケット長分のデータ（パケット）を抽出する（ステップＳ１１０）。
【００５６】
データ転送処理部１５２は、抽出したパケットの送信を開始する（ステップＳ１１１）。なお、データ転送処理部１５２は、２回目以降のパケット送信においては、前回抽出したパケットの送信が終了しているか否かを判定し、パケットの送信が終了していない場合には、送信が終了した後に抽出したパケットの転送を開始する。すなわち、２回目以降のパケットの抽出および送信しているパケットのキャッシュメモリ１３に記憶させるデータ書き込み処理は、前回抽出したパケットを送信している間に並列処理として実行する。
【００５７】
転送カウント値がパケット転送回数より大きい場合（ステップＳ１１４，Ｙｅｓ）、データ転送処理部１５２は、データ読出し要求によって要求されたデータを全て抽出して送信したと認識し、キャッシュメモリ１３に記憶された内容を反映させて管理テーブル１４１を更新する（ステップＳ１１５）。
【００５８】
つぎに、図４のフローチャートを参照して、パケット長最適化処理の動作について説明する。このパケット長最適化処理は、共有メモリ１２からパケット長分のデータ（パケット）を読み出して送信するデータ転送処理が実行される際に、主にパケット長最適化処理部１５３によって実行される。
【００５９】
パケット長最適化処理部１５３は、タイムテーブル１４２から現在の最適パケットによる共有メモリ１２からの読出し時間を取得する（ステップＳ２０１）。具体的には、パケット長最適化処理部１５３は、タイムテーブル１４２の最適パケット長に登録されているパケット長を読み出し、読み出したパケット長に関連付けられてタイムテーブル１４２のパケット読出し時間に登録されているデータ読出し時間（パケット読出し時間）を読み出す。たとえば、最適パケット長に登録されているパケット長が５１２バイトであれば、５１２バイトのパケット長に関連付けられたパケット読出し時間を読み出し、最適パケット長に登録されているパケット長が２５６バイトであれば、２５６バイトのパケット長に関連付けられたパケット読出し時間を読み出す。
【００６０】
一方、データ転送処理を実行しているデータ転送処理部１５２は、パケットの転送時間を計測し（ステップＳ２０２）、計測した転送時間を最適パケット長のパケット長に関連付けられたパケット転送時間に登録する。具体的には、データ転送処理部１５２は、上述したパケット転送処理において、転送カウンタのカウント値が予め定められた値になった時のパケットの送信開始から送信終了までの時間を計測し、計測した転送時間を最適パケット長のパケット長に関連付けられたパケット転送時間に登録する。
【００６１】
タイムテーブル１４２のパケット転送時間に転送時間が登録された後、パケット長最適化処理部１５３は、タイムテーブル１４２に登録されたパケット転送時間を読み出し、読み出したパケット転送時間と、ステップＳ２０１によって取得したパケット読み出し時間とを比較する（ステップＳ２０３）。パケット読み出し時間がパケット転送時間より大きい場合（ステップＳ２０３，Ｙｅｓ）、パケット長最適化処理部１５３は、上記（式１）によってトータル時間を算出する（ステップＳ２０４）。すなわち、パケット長最適化処理部１５３は、タイムテーブル１４２に登録されているパケット転送回数と、タイムテーブル１４２の最適パケット長に登録されているパケット長に関連付けられたパケット読み出し時間およびパケット転送時間を用いて、「｛（パケット読出し時間）×（パケット転送回数）｝＋（パケット転送時間）」を算出し、算出した値をトータル時間とする。
【００６２】
パケット長最適化処理部１５３は、タイムテーブル１４２の最適パケット長に登録されているパケット長に関連付けられた過去トータル時間を読み出し、読み出した過去トータル時間と算出したトータル時間とを比較する（ステップＳ２０５）。過去トータル時間が算出したトータル時間以下の場合（ステップＳ２０５，Ｎｏ）、パケット長最適化処理部１５３は、過去に現在と同じ時間または短い時間でデータ読出し・転送が行われたと判断し、最適パケット長を更新することなく処理を終了する。
【００６３】
過去トータル時間が算出したトータル時間より大きい場合（ステップＳ２０５，Ｙｅｓ）、パケット長最適化処理部１５３は、現在の方が過去よりも短い時間でデータの読出し・転送を行うことができると判断し、タイムテーブル１４２の最適パケット長に登録されたパケット長に関連付けられた過去トータル時間に算出したトータル時間を登録する（ステップＳ２０６）。
【００６４】
パケット長最適化処理部１５３は、新たなパケット長を算出する（ステップＳ２０７）。具体的には、パケットの読出し時間がパケットの転送時間よりも大きいので、パケット長最適化処理部１５３は、予め定められた定数ｍで現在の最適パケット長を除算した値を新たなパケット長とする。
【００６５】
パケット長最適化処理部１５３は、算出した新たなパケット長をタイムテーブル１４２の最適パケット長に登録する（ステップＳ２０８）。また、算出したパケット長によって要求されたデータを転送する際のパケット転送回数を算出し、算出したパケット転送回数をタイムテーブル１４２のパケット転送回数に登録し、ステップＳ２０１の処理に戻る。
【００６６】
一方、パケット読み出し時間がパケット転送時間以下の場合（ステップＳ２０３，Ｎｏ）、パケット長最適化処理部１５３は、パケット転送時間がパケット読出し時間より大きいか否かを判定する（ステップＳ２０９）。パケット転送時間がパケット読出し時間以下の場合（上述したステップＳ２０３の判定から、この場合はパケット転送時間とパケット読出し時間とが等しい場合となる）、パケット長最適化処理部１５３は、現在の最適パケット長が最も短時間でデータが転送できると判断し、最適パケット長を更新することなく処理を終了する。
【００６７】
パケット転送時間がパケット読出し時間より大きい場合、パケット長最適化処理部１５３は、パケット長最適化処理部１５３は、上記（式２）によってトータル時間を算出する（ステップＳ２１０）。すなわち、パケット長最適化処理部１５３は、タイムテーブル１４２に登録されているパケット転送回数と、タイムテーブル１４２の最適パケット長に登録されているパケット長に関連付けられたパケット読み出し時間およびパケット転送時間を用いて、「（パケット読出し時間）＋｛（パケット転送時間）×（パケット転送回数）｝」を算出し、算出した値をトータル時間とする。
【００６８】
パケット長最適化処理部１５３は、タイムテーブル１４２の最適パケット長に登録されているパケット長に関連付けられた過去トータル時間を読み出し、読み出した過去トータル時間と算出したトータル時間とを比較する（ステップＳ２１１）。過去トータル時間が算出したトータル時間以下の場合、パケット長最適化処理部１５３は、過去に現在と同じ時間または短い時間でデータ読出し・転送が行われたと判断し、最適パケット長を更新することなく処理を終了する。
【００６９】
過去トータル時間が算出したトータル時間より小さい場合、パケット長最適化処理部１５３は、現在の方は過去よりも短い時間でデータの読出し・転送を行うことができると判断し、タイムテーブル１４２の最適パケット長に登録されたパケット長に関連付けられた過去トータル時間に算出したトータル時間を登録する（ステップＳ２１２）。
【００７０】
パケット長最適化処理部１５３は、新たなパケット長を算出する（ステップＳ２１３）。具体的には、パケットの転送時間がパケットの読出し時間よりも大きいので、パケット長最適化処理部１５３は、予め定められた定数ｍを現在の最適パケット長に乗算した値を新たなパケット長とする。パケット長最適化処理部１５３は、算出した新たなパケット長をタイムテーブル１４２の最適パケット長に登録する（ステップＳ２１４）。また、算出したパケット長によって要求されたデータを転送する際のパケット転送回数を算出し、算出したパケット転送回数をタイムテーブル１４２のパケット転送回数に登録し、ステップＳ２０１の処理に戻る。
【００７１】
なお、図３のフローチャートを参照して説明したデータ転送処理、および図４のフローチャートを参照して説明したパケット長最適化処理は、その説明を簡単にするために、共有メモリ１２からのデータ読出しおよび送信のみ最適パケット長を用いる場合について説明したが、キャッシュメモリ１３からのデータ読出しおよび送信についても最適パケット長を用いた転送を行うようにしてもよい。
【００７２】
この場合、共有メモリ１２に対するタイムテーブル１４２とキャッシュメモリ１３に対するタイムテーブル１４２とを備え、共有メモリ１２へのアクセス時には共有メモリ１２に対応するタイムテーブル１４２を用いてデータ転送処理およびパケット長最適化処理を行ない、キャッシュメモリ１３へのアクセス時にはキャッシュメモリ１３に対するタイムテーブル１４２を用いてデータ転送処理およびパケット長最適化処理を行なうようにすればよい。
【００７３】
つぎに、図５〜図８を参照して、異なるＣＰＵボードから同一アドレスの共有メモリ１２からの５１２バイトのデータ読出し要求を受けた場合を例に挙げて、従来のデータ転送による情報処理システムによるデータ転送と、本発明の情報処理システムによるデータ転送を比較する。
【００７４】
まず、図５を参照して従来の情報処理システムの構成を説明する。図５において、従来の情報処理システムは、メモリボード１０００と、複数（この場合は３つ）のＣＰＵボード２０００−１〜２０００−３とが、バス３０００によって接続されている。
【００７５】
メモリボード１０００は、バス３０００を介してＣＰＵボード２０００−１〜２０００−３と接続するインターフェース機能を有するインターフェース部（以下、Ｉ／Ｆ部という）１１００と、ＣＰＵボード２０００−１〜２０００−３の処理に要するデータを記憶する共有メモリ１３００と、ＣＰＵボード２０００−１〜２０００−３からの要求に応じて共有メモリ１３００にアクセスしてデータの書き込み・読み出し、読み出したデータをＩ／Ｆ部１１００を介して要求元のＣＰＵボード２０００−１〜２０００−３に送信する制御部１２００とを備えている。制御部１２００は予め定められたデータ長、すなわち固定長のパケットで要求元のＣＰＵボード２０００−１〜２０００−３にデータを送信する。
【００７６】
ＣＰＵボード２０００−１〜２０００−３は、バス３０００を介してメモリボード１０００と接続するＩ／Ｆ部２１００、メモリボード１０００に搭載されている共有メモリ１３００に記憶されているデータの一部を記憶するキャッシュメモリ２４００、共有メモリ１３００に記憶されているデータについての記憶位置を示すメモリアドレス、データの状態等の情報、自身に搭載されているキャッシュメモリ２４００に記憶されているデータについての記憶位置を示すメモリアドレス、データの状態等の情報等の各種情報が登録される管理テーブル２３００、およびＣＰＵ（図示せず）とこのＣＰＵが実行するプログラムが格納される記憶手段（図示せず）とを有し所望の処理を実行するとともに、管理テーブル２３００に基づいてキャッシュメモリ２４００のヒット判定を行って共有メモリ１３００にアクセス要求を行うか否かを選択する制御部２２００とを備えている。
【００７７】
つぎに、図６を参照して従来の情報処理システムの動作を説明する。共有メモリ１３００に記憶されているデータにアクセスを要する場合、ＣＰＵボード２０００−１の制御部２２００は、管理テーブル２３００に基づいてキャッシュメモリ２４００に必要なデータが記憶されているか否かを判定する。ここでは、該当データがキャッシュメモリ２４００に記憶されていないため、制御部２２００は、メモリボード１０００にデータ読出し要求を送信する。
【００７８】
データ読出し要求を受けるとメモリボード１０００の制御部１２００が共有メモリ１３００にアクセスして６．５ＭＢ／ｓｅｃでデータを読み出す。制御部１２００は、読み出したデータを２０ＭＨｚでＣＰＵボード２０００−１に送信する。
【００７９】
一方、共有メモリ１３００に記憶されているデータにアクセスを要する場合、ＣＰＵボード２０００−２の制御部２２００は、管理テーブル２３００に基づいてキャッシュメモリ２４００に必要なデータが記憶されているか否かを判定する。キャッシュメモリに記憶されていない場合、メモリボード１０００にデータ読出し要求を送信する。ここでは、該当データがキャッシュメモリ２４００に記憶されていないため、制御部２２００は、メモリボード１０００にデータ読出し要求を送信する。しかし、ＣＰＵボード２０００−１がメモリボード１０００にデータ読出し要求を送信してから要求したデータを受信するまでの間、ＣＰＵボード２０００−１がバス３０００を専有しており、ＣＰＵボード２０００−２はバス権を取得することができず、待ち合わせ時間が発生する。
【００８０】
ＣＰＵボード２０００−２は、バス権を取得するとデータ読出し要求をメモリボード１０００に送信する。データ読出し要求を受けるとメモリボード１０００の制御部１２００が共有メモリ１３００にアクセスして６．５ＭＢ／ｓｅｃでデータを読み出す。すなわち、ＣＰＵボード２０００−１からの要求されたデータと同一のデータを再度共有メモリ１３００から読み出す。制御部１２００は、読み出したデータを２０ＭＨｚでＣＰＵボード２０００−２に送信する。
【００８１】
これに対して、図７を参照して本発明の情報処理システムの動作を説明する。本発明の情報処理システムでは、ＣＰＵボード２−１が共有メモリ１２のデータを読み出したい場合、データ読出し要求をメモリボード１に送信する。メモリボード１の制御部１５は、ヒット判定を行いミスヒットであると判定した場合、共有メモリ１２にアクセスして最適パケット長分のデータを読み出してキャッシュメモリ１３に記憶させるとともに最適パケット長分のデータをＣＰＵボード２−１に送信するデータ転送処理を行なうとともに、パケット長最適化処理を行なう。
【００８２】
一方、ＣＰＵボード２−２が共有メモリ１２のデータを読み出したい場合、メモリボード１の制御部１５がヒット判定を行っている間バス３は開放されており、ＣＰＵボード２−２からのデータ読出し要求を受け付けることが可能であり、その要求を保持する。
【００８３】
メモリボード１のキャッシュメモリ１３には、ＣＰＵボード２−１へのデータの送信が終了した際には送信したデータが記憶され、管理テーブル１４１も更新されている。よって、保持していたＣＰＵボード２−２からのデータ読出し要求によって要求されたデータがＣＰＵボード２−１からのデータ読出し要求によって要求されたデータと同一データの場合、保持していたＣＰＵボード２−２からのデータ読出し要求によって要求されたデータはヒット判定によってヒットとなる。したがって、制御部１５は、共有メモリ１２にアクセスすることなく、キャッシュメモリ１３にアクセスしてデータを読み出して転送する。
【００８４】
このように、従来の情報処理システムでは、異なるＣＰＵボード２０００−１〜２０００−３から同一のデータを要求するデータ読出し要求が送信された場合でも、データ読出し要求毎に共有メモリ１３００にアクセスしてデータを読出して送信しなければならないが、本発明の情報処理システムでは、最初のデータ読出し要求を実行する場合のみ共有メモリ１２にアクセスしてデータを読出して送信し、その後のデータ読出し要求を実行する場合にはキャッシュメモリ１３にアクセスしてデータを読出し送信することができる。すなわち、共有メモリ１２からの再読み出しが不要となる。一般的に、共有メモリ１２へのアクセス時間よりもキャッシュメモリ１３へのアクセス時間のほうが短い。よって、データ読出し要求毎に共有メモリ１２にアクセスする従来の情報処理システムよりもデータ読出し要求に対する処理時間を短縮することが可能となる。
【００８５】
つぎに、図８を参照して、従来の情報処理システムと本発明の情報処理システムとをデータ読出し要求による処理時間に着目して比較する。従来の情報処理システムでは、最初のデータ読出し要求（先の図６におけるＣＰＵボード２０００−１からのデータ読出し要求）によって共有メモリ１３００から５１２バイトのデータを６．５ＭＢｙｔｅ／ｓｅｃで読み出しており、データの読出し時間は約７８．７７μｓｅｃを要している。その後、読み出したデータの転送に約３０μｓｅｃを要している。つぎのデータ読出し要求（先の図６におけるＣＰＵボード２０００−２からのデータ読出し要求）によって再度共有メモリ１３００から５１２バイトのデータを６．５ＭＢｙｔｅ／ｓｅｃで読み出しており、データの読出し時間は約７８．７７μｓｅｃを要している。その後、読み出したデータの転送に約３０μｓｅｃを要している。よって、異なるＣＰＵボード２０００−１，２０００−２からの同一アドレスのデータ読出し要求によるデータの読出しおよび転送に約２１７．５４μｓｅｃを要している。
【００８６】
これに対して、本発明の情報処理システムでは、最適パケット長を１６バイトとし、パケット転送時間がパケット転送時間より大きいとすると、最初のデータ読出し要求（先の図７におけるＣＰＵボード２−１からのデータ読出し要求）によって共有メモリ１２から５１２バイトのデータを読み出して転送するトータル時間は、パケット読出し時間をａとし、パケット転送時間をｂとすると、「ａ×３２＋ｂ」となる。ここで、パケット読出し時間ａを約２．４６μｓｅｃとし、パケット転送時間ｂを約１．７５μｓｅｃとすると、トータル時間は、約８０．４７μｓｅｃであり、トータルのデータ読出し時間は「ａ×３２」となり従来の情報処理システムによる共有メモリからのデータ読出し時間とほぼ等しくなる。よって、最初のデータ読出し要求によって「３０μｓｅｃ−ｂ」、すなわち約２８．２５μｓｅｃ短縮されている。
【００８７】
さらにつぎのデータ読出し要求（先の図７におけるＣＰＵボード２−２からのデータ読出し要求）は、共有メモリ１２にアクセスすることなくキャッシュメモリ１３からデータを読み出して転送する。共有メモリ１２からアクセスと比較してキャッシュメモリ１３へのアクセス時間はきわめて短く、従来の情報処理システムと同様の転送を行っても約３０μｓｅｃで転送することが可能である。よって、異なるＣＰＵボードからの同一アドレスのデータ読出し要求によるデータの読出しおよび転送の時間は約１１０．５２μｓｅｃとなり、従来の情報処理システムと比較して約４９％短縮している。
【００８８】
以上説明したように、この実施例においては、メモリボード１は、予め定められた複数のパケット長毎に当該パケット長に関連付けて共有メモリ１２から当該パケット長のデータであるパケットを共有メモリ１２から読み出すパケット読出し時間と、過去に共有メモリ１２から要求されたデータの読み出しを開始してから送信が終了するまでの処理に要した時間である過去トータル時間と、データ送信に用いるパケットのパケット長である最適パケット長と、この最適パケット長のパケットによって要求されるデータを送信するために必要なパケット転送回数とが登録されるタイムテーブル１４２を記憶する制御情報記憶部１４を備え、データ転送処理部１５２は、タイムテーブル１４２の最適パケット長分のパケット毎に共有メモリ１２から読み出して順次送信する際に、前回読み出したパケットを送信すると同時につぎに転送すべきパケットを共有メモリ１２から読み出す並列処理による読出し・送信を行うとともに、パケットの送信開始から送信終了までのパケット転送時間を計測し、パケット長最適化処理部１５３は、パケット読出し時間がパケット転送時間よりも大きい場合には、パケット読出し時間にパケット転送回数を乗算した値にパケットの転送時間を加算した値をトータル時間とし、現在の最適パケット長を予め定められた定数で除算した値をタイムテーブル１４２の最適パケット長に登録し、パケット転送時間がパケット読出し時間よりも大きい場合には、パケット転送時間にパケット転送回数を乗算した値にパケットの読出し時間を加算した値をトータル時間とし、現在の最適パケット長に予め定められた定数を乗算した値をタイムテーブル１４２の最適パケット長に登録し、登録した最適パケット長による転送回数をタイムテーブル１４２のパケット転送回数に登録する。すなわち、並列処理されるパケット読出し時間とパケット転送時間との差が小さくなるようにパケット長を変更するようにしている。
【００８９】
これにより、共有メモリ１２からのデータの読出しおよびデータ送信の時間が短縮されることによりバスの使用時間が短縮されるため、ＣＰＵボード２−１〜２−３がバスの使用権を取得するための待ち期間を短縮することができる。
【００９０】
また、この実施例においては、メモリボード１が共有メモリ１２とキャッシュメモリ１３とを備え、ＣＰＵボード２−１〜２−３から要求されたデータがキャッシュメモリ１３に記憶されているか否かを判定するヒット判定をメモリボード１で行い、ＣＰＵボード２−１〜２−３から要求されたデータがキャッシュメモリ１３に記憶されている場合にはキャッシュメモリ１３からパケット毎にデータを読み出して順次送信し、ＣＰＵボード２−１〜２−３から要求されたデータがキャッシュメモリ１３に記憶されていない場合には受け付けた要求を一時保持し、保持している要求の中で最も古い要求から順に実行する際に、実行する要求に対して再度ヒット判定を行い、要求されたデータがキャッシュメモリ１３に記憶されている場合にはキャッシュメモリ１３からパケット毎にデータを読み出して順次送信し、ＣＰＵボード２−１〜２−３から要求されたデータがキャッシュメモリ１３に記憶されていない場合には共有メモリ１２からパケット毎にデータを読み出して順次送信するようにしているため、データ転送におけるパケット長を最適化だけでなく、異なるＣＰＵボード２−１〜２−３から同一のデータの読み出しを要求された場合には、最初に実行するＣＰＵボード２−１〜２−３の要求時のみ共有メモリ１２からデータを読み出せばよく、以後の要求に対してはキャッシュメモリ１３からデータを読み出すことが可能となり、データの読出し時間を削減しバスの使用権を取得するための待ち期間を短縮することができる。
【００９１】
なお、この実施例においては、タイムテーブル１４２を共有メモリ１２に対して１つとして説明したが、各ＣＰＵボード２−１〜２−３毎に共有メモリ１２に対するタイムテーブル１４２を備えるようにしてもよい。この場合、データ転送処理およびパケット長最適化処理において、要求元であるＣＰＵボード２−１〜２−３に対応するタイムテーブル１４２を用いるようにすればよい。
【００９２】
また、この実施例においては、パス型のトポロジーによってメモリボード１とＣＰＵボード２−１〜２−３を接続する構成に付いて説明したが、メモリボード１とＣＰＵボード２−１〜２−３との接続はこれに限るものではなく、スター型のトポロジーなど様々な形態に展開した構成によってメモリボード１とＣＰＵボード２−１〜２−３を接続するようにもよい。
【００９３】
さらに、この実施例では、メモリボード１にキャッシュメモリ１３を備える構成としたが、従来の情報処理システムと同様にＣＰＵボードにそれぞれキャッシュメモリを備えた場合でも、メモリボード１の共有メモリ１２からのデータ転送において本発明のデータ転送処理およびパケット長最適化処理を用いるようにしてもよい。この場合、先の図３を参照して説明したデータ転送処理におけるステップＳ１０１〜Ｓ１０７のキャッシュメモリ１３に関するビット判定処理および読出し・転送処理がなくなり、共有メモリ１２からの最適パケット長によるパケット単位での読出しおよび送信処理のみを行なえばよい。
【産業上の利用可能性】
【００９４】
以上のように、本発明にかかるデータ転送装置および情報処理システムは、データ転送におけるパケット長を最適化することでバスの使用権を取得するための待ち期間を短縮し、データの転送時間を短縮することができるデータ転送装置および情報処理システムに有用である。
【図面の簡単な説明】
【００９５】
【図１】本発明のデータ転送装置のデータ転送およびパケット長最適化の概念を説明するための図である。
【図２】本発明のデータ転送装置が適用される情報処理システムの構成を示す図である。
【図３】データ転送装置のデータ転送処理の動作を説明するためのフローチャートである。
【図４】データ転送装置のパケット長最適化処理の動作を説明するためのフローチャートである。
【図５】従来の情報処理システムの構成を示す図である。
【図６】従来の情報処理システムの動作を説明するための図である。
【図７】本発明の情報処理システムの動作を説明するための図である。
【図８】従来の情報処理システムと本発明の情報処理システムの処理時間を示す図である。
【符号の説明】
【００９６】
１，１０００    メモリボード
２−１，２−２，２−３，２０００−１，２０００−２，２０００−３  ＣＰＵボード
３，３０００    バス
１１，２１，１１００，２１００    Ｉ／Ｆ部
１２，１３００    共有メモリ
１３，２４００    キャッシュメモリ
１４    制御情報記憶部
１５，２２，２２００  制御部
１４１，２３００    管理テーブル
１４２    タイムテーブル
１５１    レジスタ
１５２  データ転送処理部
１５３  パケット長最適化処理部
【図１】
2008234059.tif 000003
【図２】
2008234059.tif 000004
【図３】
2008234059.tif 000005
【図４】
2008234059.tif 000006
【図５】
2008234059.tif 000007
【図６】
2008234059.tif 000008
【図７】
2008234059.tif 000009
【図８】
2008234059.tif 000010