(57)【特許請求の範囲】
【請求項１】
共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと通信する第１通信路と、
装置間の要求を調停する装置であって一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と通信する第２通信路と、
要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、
前記演算装置が書き出しのために指定した範囲を前記調停装置から検出して登録する登録手段と、
前記要求装置からの要求が登録された範囲に対するものである場合に、前記第１通信路経由で前記メモリコントローラから前記データを取得し、該要求が登録されていない範囲に対するものである場合に、前記第２通信路経由で前記調停装置から前記データを取得する取得手段と、
前記取得したデータを前記要求装置に転送する転送手段と、
を有し、
前記登録手段は、前記調停装置から検出した第１範囲が、登録されている第２範囲の少なくとも一部と重複するか、または該第２範囲と隣接する場合、該第１範囲と該第２範囲とを統合して連続した一の範囲として登録する
ことを特徴とする転送装置。
【請求項２】
前記登録手段は、
前記調停装置から検出した第１範囲が、登録されている複数の第２範囲のいずれとも重複せず、隣接せず、かつ、複数の該第２範囲の数が閾値を超える場合に、複数の該第２範囲のそれぞれに対して、予め決められた評価に基づく評価値を特定し、該評価値が最も低いものを削除して、該第１範囲を登録する
ことを特徴とする請求項１に記載の転送装置。
【請求項３】
前記登録手段は、
前記調停装置から検出した第１範囲が、登録されている複数の第２範囲のいずれとも重複せず、隣接せず、かつ、複数の該第２範囲の数が閾値を超える場合に、該第１範囲および複数の該第２範囲のそれぞれに対して、予め決められた評価に基づく評価値を特定し、該第１範囲に対する評価値が複数の前記第２範囲に対する評価値よりも低い場合に、該第１範囲を登録しない
ことを特徴とする請求項１に記載の転送装置。
【請求項４】
前記登録手段は、前記範囲が示すデータ量に応じた値を前記範囲の評価値として特定し、該データ量が小さいものほど該評価値を低くする
ことを特徴とする請求項２または３に記載の転送装置。
【請求項５】
前記登録手段は、他の範囲までの最短距離に応じた値を前記範囲の評価値として特定し、該最短距離が長いものほど該評価値を低くする
ことを特徴とする請求項２または３に記載の転送装置。
【請求項６】
共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと通信する第１通信路と、
装置間の要求を調停する装置であって一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と通信する第２通信路と、
要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、
前記演算装置が読み出しのために指定した範囲を前記調停装置から検出して登録する登録手段と、
前記要求装置からの要求が登録されていない範囲に対するものである場合に、前記第１通信路経由で前記メモリコントローラから前記データを取得し、該要求が登録された範囲に対するものである場合に、前記第２通信路経由で前記調停装置から前記データを取得する取得手段と、
前記取得したデータを前記要求装置に転送する転送手段と、
を有し、
前記登録手段は、前記調停装置から検出した第１範囲が、登録されている第２範囲の少なくとも一部と重複するか、または該第２範囲と隣接する場合、該第１範囲と該第２範囲とを統合して連続した一の範囲として登録し、
前記調停装置から検出した第１範囲が、登録されている複数の第２範囲のいずれとも重複せず、隣接せず、かつ、複数の該第２範囲の数が閾値を超える場合に、複数の該第２範囲のうち、該第１範囲との距離が最も近いものを該第１範囲と統合して連続した一の範囲として登録する
ことを特徴とする転送装置。
【請求項７】
共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと通信する第１通信路と、
装置間の要求を調停する装置であって一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と通信する第２通信路と、
要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、
前記演算装置が読み出しのために指定した範囲を前記調停装置から検出して登録する登録手段と、
前記要求装置からの要求が登録されていない範囲に対するものである場合に、前記第１通信路経由で前記メモリコントローラから前記データを取得し、該要求が登録された範囲に対するものである場合に、前記第２通信路経由で前記調停装置から前記データを取得する取得手段と、
前記取得したデータを前記要求装置に転送する転送手段と、
を有し、
前記登録手段は、前記調停装置から検出した第１範囲が、登録されている第２範囲の少なくとも一部と重複するか、または該第２範囲と隣接する場合、該第１範囲と該第２範囲とを統合して連続した一の範囲として登録し、
前記調停装置から検出した第１範囲が、登録されている複数の第２範囲のいずれとも重複せず、隣接せず、かつ、複数の該第２範囲の数が閾値を超える場合に、該第１範囲を登録するとともに、複数の該第２範囲のうち、互いの距離が最も近い二つの範囲を統合して連続した一の範囲として登録する
ことを特徴とする転送装置。
【請求項８】
請求項１から７のいずれか１項に記載の転送装置と、
前記転送装置と前記第１通信路経由で通信し、共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと、
装置間の要求を調停する装置であって、前記転送装置と前記第２通信路経由で通信し、一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と、
前記転送装置に対して前記共有メモリに格納されたデータの要求を送る要求装置と、
を有する転送システム。
【請求項９】
共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと通信する第１通信路と、
装置間の要求を調停する装置であって一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と通信する第２通信路と、
を有するコンピュータを、
要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、
前記演算装置が書き出しのために指定した範囲を前記調停装置から検出して登録する登録手段と、
前記要求装置からの要求が登録された範囲に対するものである場合に、前記第１通信路経由で前記メモリコントローラから前記データを取得し、該要求が登録されていない範囲に対するものである場合に、前記第２通信路経由で前記調停装置から前記データを取得する取得手段と、
前記取得したデータを前記要求装置に転送する転送手段、  として機能させるとともに、
前記調停装置から検出した第１範囲が、登録されている第２範囲の少なくとも一部と重複するか、または該第２範囲と隣接する場合、該第１範囲と該第２範囲とを統合して連続した一の範囲として登録するように、前記登録手段を機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、転送装置、転送システムおよびプログラムに関する。
【背景技術】
【０００２】
特許文献１には、キャッシュとメインメモリ間のデータ転送を監視して、アクセスされたメインメモリのアドレスを判定し、データ転送の経路を選択する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１４００７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、複数の装置に共有される記憶内容の一貫性の維持と、これらの装置の処理速度の向上とを両立させることを目的とする。
【課題を解決するための手段】
【０００５】
本発明の請求項１に係る転送装置は、共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと通信する第１通信路と、装置間の要求を調停する装置であって一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と通信する第２通信路と、要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、前記演算装置が書き出しのために指定した範囲を前記調停装置から検出して登録する登録手段と、前記要求装置からの要求が登録された範囲に対するものである場合に、前記第１通信路経由で前記メモリコントローラから前記データを取得し、該要求が登録されていない範囲に対するものである場合に、前記第２通信路経由で前記調停装置から前記データを取得する取得手段と、前記取得したデータを前記要求装置に転送する転送手段と、を有し、前記登録手段は、前記調停装置から検出した第１範囲が、登録されている第２範囲の少なくとも一部と重複するか、または該第２範囲と隣接する場合、該第１範囲と該第２範囲とを統合して連続した一の範囲として登録することを特徴とする。
【０００６】
本発明の請求項２に係る転送装置は、請求項１に記載の態様において、前記登録手段は、前記調停装置から検出した第１範囲が、登録されている複数の第２範囲のいずれとも重複せず、隣接せず、かつ、複数の該第２範囲の数が閾値を超える場合に、複数の該第２範囲のそれぞれに対して、予め決められた評価に基づく評価値を特定し、該評価値が最も低いものを削除して、該第１範囲を登録することを特徴とする。
【０００７】
本発明の請求項３に係る転送装置は、請求項１に記載の態様において、前記登録手段は、前記調停装置から検出した第１範囲が、登録されている複数の第２範囲のいずれとも重複せず、隣接せず、かつ、複数の該第２範囲の数が閾値を超える場合に、該第１範囲および複数の該第２範囲のそれぞれに対して、予め決められた評価に基づく評価値を特定し、該第１範囲に対する評価値が複数の前記第２範囲に対する評価値よりも低い場合に、該第１範囲を登録しないことを特徴とする。
【０００８】
本発明の請求項４に係る転送装置は、請求項２または３に記載の態様において、前記登録手段は、前記範囲が示すデータ量に応じた値を前記範囲の評価値として特定し、該データ量が小さいものほど該評価値を低くすることを特徴とする。
【０００９】
本発明の請求項５に係る転送装置は、請求項２または３に記載の態様において、前記登録手段は、他の範囲までの最短距離に応じた値を前記範囲の評価値として特定し、該最短距離が長いものほど該評価値を低くすることを特徴とする。
【００１０】
本発明の請求項６に係る転送装置は、共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと通信する第１通信路と、装置間の要求を調停する装置であって一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と通信する第２通信路と、要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、前記演算装置が読み出しのために指定した範囲を前記調停装置から検出して登録する登録手段と、前記要求装置からの要求が登録されていない範囲に対するものである場合に、前記第１通信路経由で前記メモリコントローラから前記データを取得し、該要求が登録された範囲に対するものである場合に、前記第２通信路経由で前記調停装置から前記データを取得する取得手段と、前記取得したデータを前記要求装置に転送する転送手段と、を有し、前記登録手段は、前記調停装置から検出した第１範囲が、登録されている第２範囲の少なくとも一部と重複するか、または該第２範囲と隣接する場合、該第１範囲と該第２範囲とを統合して連続した一の範囲として登録し、前記調停装置から検出した第１範囲が、登録されている複数の第２範囲のいずれとも重複せず、隣接せず、かつ、複数の該第２範囲の数が閾値を超える場合に、複数の該第２範囲のうち、該第１範囲との距離が最も近いものを該第１範囲と統合して連続した一の範囲として登録することを特徴とする。
【００１２】
本発明の請求項７に係る転送装置は、共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと通信する第１通信路と、装置間の要求を調停する装置であって一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と通信する第２通信路と、要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、前記演算装置が読み出しのために指定した範囲を前記調停装置から検出して登録する登録手段と、前記要求装置からの要求が登録されていない範囲に対するものである場合に、前記第１通信路経由で前記メモリコントローラから前記データを取得し、該要求が登録された範囲に対するものである場合に、前記第２通信路経由で前記調停装置から前記データを取得する取得手段と、前記取得したデータを前記要求装置に転送する転送手段と、を有し、前記登録手段は、前記調停装置から検出した第１範囲が、登録されている第２範囲の少なくとも一部と重複するか、または該第２範囲と隣接する場合、該第１範囲と該第２範囲とを統合して連続した一の範囲として登録し、前記調停装置から検出した第１範囲が、登録されている複数の第２範囲のいずれとも重複せず、隣接せず、かつ、複数の該第２範囲の数が閾値を超える場合に、該第１範囲を登録するとともに、複数の該第２範囲のうち、互いの距離が最も近い二つの範囲を統合して連続した一の範囲として登録することを特徴とする。
【００１３】
本発明の請求項８に係る転送システムは、上述の転送装置と、前記転送装置と前記第１通信路経由で通信し、共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと、装置間の要求を調停する装置であって、前記転送装置と前記第２通信路経由で通信し、一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と、前記転送装置に対して前記共有メモリに格納されたデータの要求を送る要求装置と、を有する。
【００１４】
本発明の請求項９に係るプログラムは、共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと通信する第１通信路と、装置間の要求を調停する装置であって一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と通信する第２通信路と、を有するコンピュータを、要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、前記演算装置が書き出しのために指定した範囲を前記調停装置から検出して登録する登録手段と、前記要求装置からの要求が登録された範囲に対するものである場合に、前記第１通信路経由で前記メモリコントローラから前記データを取得し、該要求が登録されていない範囲に対するものである場合に、前記第２通信路経由で前記調停装置から前記データを取得する取得手段と、前記取得したデータを前記要求装置に転送する転送手段、として機能させるとともに、前記登録手段が、前記調停装置から検出した第１範囲が、登録されている第２範囲の少なくとも一部と重複するか、または該第２範囲と隣接する場合、該第１範囲と該第２範囲とを統合して連続した一の範囲として登録するように機能させるためのプログラムである。
【発明の効果】
【００１５】
請求項１、８、９に係る発明によれば、複数の装置に共有される記憶内容の一貫性の維持と、これらの装置の処理速度の向上とを両立させることができる。
請求項２に係る発明によれば、演算装置が書き出しのために指定した範囲を登録する数が閾値を超えない。
請求項３に係る発明によれば、調停装置から検出した範囲の方が既に登録されている範囲よりも評価が低いときに、既に登録した範囲を削除する必要がない。
請求項４に係る発明によれば、要求装置から要求される可能性が低い範囲が削除される。
請求項５に係る発明によれば、調停装置から検出した範囲と統合される可能性が低い範囲が削除される。
請求項６、７に係る発明によれば、登録された範囲を削除する必要がない。
【図面の簡単な説明】
【００１６】
【図１】本実施形態に係る転送システムの全体構成を示す図。
【図２】転送装置の機能的構成を示す図。
【図３】管理表の例を示す図。
【図４】範囲の特定に必要な情報を説明するための図。
【図５】転送システムの動作を示すシーケンス図。
【図６】転送装置における登録処理の動作を示すフロー図。
【図７】第１範囲と第２範囲とが隣接・重複しない場合を示す図。
【図８】第１範囲と第２範囲とが重複する場合を示す図。
【図９】抑制処理の動作を示すフロー図。
【図１０】変形例における抑制処理の動作を示すフロー図。
【図１１】変形例における抑制処理の動作を示すフロー図。
【図１２】変形例における統合を説明するための図。
【発明を実施するための形態】
【００１７】
１．実施形態
１−１．転送システムの全体構成
図１は、本実施形態に係る転送システム９の全体構成を示す図である。図１に示すように、転送システム９は、転送装置１と、メモリコントローラ３と、調停バス５と、要求装置７とを有する。また、転送システム９は、共有メモリ２と、一以上の演算装置４と、内部バス６と、を有する。
【００１８】
メモリコントローラ３は、共有メモリ２内の指定された範囲に対して読み書きを行う制御装置である。メモリコントローラ３は、転送装置１と第１通信路Ｐ１経由で通信する。また、メモリコントローラ３は、調停バス５から読み書きの要求を受ける。この要求は転送装置１により監視される。
【００１９】
調停バス５は、キャッシュ・コヒーレント・インターコネクト（ＣＣＩ）バスなどと呼ばれるものであり、装置間の要求を調停する装置（調停装置）として機能する。調停バス５は、転送装置１と第２通信路Ｐ２経由で通信し、一以上の演算装置４からの要求に基づいてメモリコントローラ３に対して共有メモリ２内の範囲を指定して読み書きの要求をするバスである。調停バス５は、共有メモリ２内に記憶されているデータと、共有メモリ２から演算装置４のキャッシュメモリ４１に読み出されたデータとの一貫性（コヒーレンシ）を維持するように動作する。
【００２０】
調停バス５は、一以上の演算装置４からの要求に加えて転送装置１からの要求も受付けるため、これらの要求の処理を管理する待ち行列を記憶する一時記憶領域を有する。要求の発生量に要求の処理速度が追いつかなくなると待ち行列が渋滞し、要求した処理が実行されるまでに時間がかかる場合がある。
【００２１】
要求装置７は、ダイレクト・メモリ・アクセス（ＤＭＡ）などと呼ばれる装置であり、転送装置１に対して共有メモリ２に格納されたデータの読み出し要求を送る装置である。
転送装置１は、要求装置７からの要求の内容に応じてデータの要求先を決めてそのデータを取得し、取得したそのデータを要求装置７に転送する装置である。
【００２２】
共有メモリ２は、システムを構成する装置間で共有されるメモリであって、メモリコントローラ３によって読み書きが行われるメモリである。共有メモリ２の記憶容量は、例えば８ギガバイトである。
【００２３】
演算装置４は、調停バス５を介してメモリコントローラ３に対して共有メモリ２内の範囲を指定して読み書きの要求をする装置である。図１に示す演算装置４は、二つであり、演算に用いる一時的な記憶領域としてそれぞれキャッシュメモリ４１が備えられている。キャッシュメモリ４１の記憶容量は、例えば１メガバイトである。
内部バス６は、要求装置７と転送装置１との情報伝達を中継するバスである。
【００２４】
１−２．転送装置の構成
転送装置１は、演算処理装置や、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）などの記憶装置を必要に応じて備える。
【００２５】
図２は、転送装置１の機能的構成を示す図である。転送装置１は、受付部１１、登録部１２、取得部１３、転送部１４、検出部１５、および記憶部１６として機能する。
【００２６】
検出部１５は、調停バス５からメモリコントローラ３へ伝えられた演算装置４の要求を監視して、演算装置４が書き出しのために指定した共有メモリ２の範囲を検出する。検出部１５が検出する範囲は連続した範囲であり、演算装置４が連続しない２箇所以上の範囲をそれぞれ要求した場合には、検出部１５は、それらを別々の範囲として検出する。
【００２７】
なお、複数回にわたって書き出しが行われても、一回ごとにそれぞれ書き出される範囲がその前後の回に書き出される範囲と連続している場合、検出部１５は、この複数回にわたって要求された範囲をまとめて連続した一の範囲として検出してもよい。
【００２８】
登録部１２は、検出部１５により検出された共有メモリ２の範囲を記憶部１６の管理表１６１に登録する。
【００２９】
記憶部１６は、上述したＲＯＭやＲＡＭなどの記憶装置を含み、管理表１６１を記憶する。
【００３０】
図３は、管理表１６１の例を示す図である。管理表１６１は、検出部１５によって検出された共有メモリ２内の連続した範囲をその範囲ごとに記憶する表である。図３（ａ）に示す通り、共有メモリ２内の連続した範囲は、それぞれ固有の番号が付され、その範囲の開始位置（ＳＰ）とデータ量（ＳＺ）とを含むレコードで記述される。
【００３１】
なお、範囲を示すレコードは、開始位置とデータ量との組合せで記述されるとは限らず、例えば、図３（ｂ）に示す通り、開始位置（ＳＰ）と終了位置（ＥＰ）との組合せにより記述されてもよい。また、以下に示す例において、記憶部１６は、管理表１６１に登録されるレコードの上限数を示す閾値を予め記憶している。
【００３２】
図４は、範囲の特定に必要な情報を説明するための図である。開始位置ＳＰは、範囲の冒頭のアドレスを示す情報である。データ量ＳＺは、範囲の大きさを示す情報である。終了位置ＥＰは、例えば、範囲の末尾のアドレスに最小記憶単位を加算したアドレスを示す情報である。ここで最小記憶単位とは、一度に読み書きされるデータのうち最も小さいデータのデータ量であり、例えば１６バイトなどである。
【００３３】
開始位置ＳＰ、データ量ＳＺ、および終了位置ＥＰのうち、いずれか二つが特定されていれば、これらにより図４に斜線で示した範囲が特定される。
【００３４】
受付部１１は、内部バス６を介して要求装置７から共有メモリ２に格納されたデータの要求を受付ける。受付部１１は、このデータの要求を受付けると、その要求を取得部１３に渡す。
【００３５】
取得部１３は、受付部１１が受付けた範囲を管理表１６１に登録された範囲と比較して、要求装置からの要求が登録された範囲に対するものであるか否かを判断する。そして、取得部１３は、その判断結果に応じて調停バス５およびメモリコントローラ３のいずれか一方をデータの要求先として選択し、選択したその要求先からデータを取得する。
【００３６】
取得部１３は、判断の結果、要求装置７からの要求が管理表１６１に登録された範囲に対するものである場合に、第１通信路Ｐ１経由でメモリコントローラ３からデータを取得する。一方、取得部１３は、要求装置７からの要求が管理表１６１に登録されていない範囲に対するものである場合に、第２通信路Ｐ２経由で調停バス５からデータを取得する。
転送部１４は、取得部１３が取得したデータを、内部バス６経由で要求装置７に転送する。
【００３７】
１−３．転送システムの動作
図５は、転送システム９の動作を示すシーケンス図である。転送装置１は、電源が供給された直後の初期状態において、要求装置７から要求された範囲をメモリコントローラ３から取得するように設定されている。そして、演算装置４が読み出しのために指定した範囲を調停バス５から初めて検出したときに、転送装置１は、初期状態を脱して、要求装置７から要求された範囲を調停バス５から取得するように再設定される。演算装置４が調停バス５を介して読み出しを続け、読み出しの量がキャッシュメモリ４１の記憶容量を超えると、演算装置４は、キャッシュメモリ４１のうち、既に演算を終了して記憶する必要がなくなった記憶内容を共有メモリ２に書き出すため調停バス５を介してメモリコントローラ３へ要求する。
【００３８】
いずれかの演算装置４から要求を受けた調停バス５は、その要求に基づいてメモリコントローラ３に対して共有メモリ２内の範囲を指定して読み書きの要求をする（ステップＳ００１）。転送装置１は、ステップＳ００１のこの要求を監視しており、調停バス５からメモリコントローラ３への書き出しのための要求があったときに、その要求に示される共有メモリ２内の指定された範囲を検出する（ステップＳ００２）。そして、転送装置１は、検出した範囲を登録する（ステップＳ１００）。この登録処理については後述する。
【００３９】
次に、要求装置７が転送装置１に対して、共有メモリ２内のいずれかの範囲を指定してデータの読み出しを要求すると（ステップＳ０１１）、この要求を受付けた転送装置１は、この要求の内容と、ステップＳ１００で登録した内容とに応じて、データの要求先を選択し（ステップＳ０１２）、メモリコントローラ３または調停バス５のいずれかから（図５に実線で示す例ではメモリコントローラ３から）、要求装置７が要求した範囲のデータを取得する（ステップＳ０１３）。そして、転送装置１は、取得したデータを要求装置７に転送する（ステップＳ０１４）。
【００４０】
１−４．転送装置の動作
（１）登録処理の動作
図６は、転送装置１における登録処理の動作を示すフロー図である。転送装置１は、調停バス５からメモリコントローラ３への要求を監視することにより、演算装置４が書き出しのために指定した範囲を検出したか否か判断する（ステップＳ１０１）。演算装置４が書き出しのために指定した範囲を検出していないと判断する場合（ステップＳ１０１；ＮＯ）、転送装置１は、この判断を続ける。
【００４１】
一方、上記の範囲を検出したと判断する場合（ステップＳ１０１；ＹＥＳ）、転送装置１は、検出された範囲を特定する（ステップＳ１０２）。そして、転送装置１は、特定した範囲と、記憶部１６の管理表１６１に登録された範囲とを比較して（ステップＳ１０３）、これらが隣接または重複するか否かを判断する（ステップＳ１０４）。
【００４２】
特定した範囲と、記憶部１６の管理表１６１に登録された範囲とが隣接または重複すると判断する場合、すなわち、調停バス５から検出した範囲（第１範囲という）が、管理表１６１に登録されている範囲（第２範囲という）と隣接するか、少なくとも一部と重複すると判断する場合（ステップＳ１０４；ＹＥＳ）、転送装置１は、これらの範囲を統合して連続した一の範囲として登録する（ステップＳ１０５）。
【００４３】
図７は、第１範囲と第２範囲とが隣接・重複しない場合を示す図である。管理表１６１には図７に示す第２範囲Ｒ２の開始位置ＳＰ２と、データ量ＳＺ２とが記述されている。そして、図７（ａ）に示す例では、調停バス５から検出した第１範囲Ｒ１は、第２範囲Ｒ２と離れており、隣接も重複もしていない。したがって、図７（ｂ）に示す通り、第１範囲Ｒ１は、登録されたレコード数が閾値を超えない限りにおいて、第２範囲Ｒ２とは区別される領域として、管理表１６１に登録される。
【００４４】
図８は、第１範囲と第２範囲とが重複する場合を示す図である。図８（ａ）に示す通り、第２範囲Ｒ２の開始位置ＳＰ２が、第１範囲Ｒ１内に入り込んでいるため、第１範囲Ｒ１は、第２範囲Ｒ２と重複する。図８（ｂ）に示す塗り潰した領域は第１範囲Ｒ１と第２範囲Ｒ２とが重複する領域である。
【００４５】
重複する領域が存在しているため、転送装置１は、図８（ｃ）に示す通り、第１範囲Ｒ１と第２範囲Ｒ２とを統合して、連続した一の範囲である第３範囲Ｒ３として管理表１６１に登録する。したがって、この場合、管理表１６１において、開始位置の項目にＳＰ２が記述され、データ量の項目にＳＺ２が記述されたレコードは、開始位置の項目に第３範囲Ｒ３の開始位置であるＳＰ３が、データ量の項目に第３範囲Ｒ３のデータ量であるＳＺ３が、それぞれ記述された新たなレコードとして上書きされる。
【００４６】
なお、第１範囲Ｒ１と第２範囲Ｒ２とに重複する領域が存在していなくても、これらが隣接している場合、つまり、間にこれら以外のデータが挟まれていない場合であれば、転送装置１は、これら第１範囲Ｒ１と第２範囲Ｒ２とを統合して、連続した一の範囲である第３範囲Ｒ３として管理表１６１に登録する。
【００４７】
図６に示す通り、第１範囲が、第２範囲と隣接しておらず、また、第２範囲のどの部分とも重複していないと判断する場合（ステップＳ１０４；ＮＯ）、転送装置１は、新たに第１範囲を登録することによって、管理表１６１に登録されるレコードの数が予め決められた閾値を超過するか否か判断する（ステップＳ１０６）。
【００４８】
新たに第１範囲を登録することによって、管理表１６１に登録されるレコードの数が予め決められた閾値を超過すると判断する場合（ステップＳ１０６；ＹＥＳ）、転送装置１は、管理表１６１に登録されるレコードの数を抑制する抑制処理を実行する（ステップＳ２００）。一方、管理表１６１に登録されるレコードの数が閾値を超過しないと判断する場合（ステップＳ１０６；ＮＯ）、転送装置１は、第１範囲を管理表１６１に追加して登録する（ステップＳ１０７）。
【００４９】
（２）抑制処理の動作
図９は、上述した抑制処理の動作を示すフロー図である。ステップＳ２００において、転送装置１は、管理表１６１に登録されている範囲（すなわち、第２範囲）のそれぞれについて予め決められた評価を行い、その評価に基づく評価値を特定する（ステップＳ２０１）。そして、転送装置１は、特定した評価値を相互に比較して、管理表１６１に登録されているレコードの中から最も評価の低いものを選択し（ステップＳ２０２）、選択したそのレコードを削除する（ステップＳ２０３）。
【００５０】
この例において、評価値とは、管理表１６１に登録される範囲のデータ量に応じた値である。転送装置１は、管理表１６１に登録される範囲を、その範囲のデータ量によって評価し、そのデータ量が小さいものほど、低い評価値を割り当てればよい。これにより、管理表１６１に登録された範囲が閾値を超えた場合には、それらの範囲のうち、最も小さいものが削除される。削除される範囲が小さければ小さいほど、その範囲が、要求装置７の要求する範囲に含まれる可能性が低くなる。つまり、要求装置７から要求される可能性が低い範囲から優先して削除される。
【００５１】
管理表１６１から上述したレコードを削除した後、転送装置１は、第１範囲を管理表１６１に追加して登録する（ステップＳ２０４）。この動作により、管理表１６１は第１範囲を示すレコードの追加登録に先立って一つのレコードを削除するので、管理表１６１に登録されているレコードの数は変化せず、レコード数の増加は抑制される。
【００５２】
以上、説明した動作により、転送装置１は、演算装置４が書き出しのために指定した範囲を検出して登録し、要求装置７からの要求が既に登録したその範囲に対するものである場合に、対応するデータをメモリコントローラ３から取得する。
【００５３】
要求装置７からの読み出しの要求が、演算装置４が書き出しのために指定した範囲に対するものであるとは、要求装置７が読み出しを要求した範囲のデータが、演算装置４によって既に最新情報として書き出されていることを意味している。したがって、転送装置１は、データをメモリコントローラ３に要求し、最新情報が格納されている共有メモリ２からデータを直接、取得して要求装置７に転送する。
【００５４】
一方、要求装置７が読み出しの要求が、演算装置４が書き出しのために指定した範囲に対するものでない場合、要求装置７が要求した範囲の最新情報は、未だ演算装置４のキャッシュメモリ４１に存在する可能性がある。したがって、転送装置１は、メモリコントローラ３からではなく、調停バス５からその範囲のデータを取得する。
【００５５】
つまり、本発明に係る転送装置１は、要求装置７が要求した範囲の最新情報が演算装置４により処理中である可能性がある場合に、時間がかかっても調停バス５からデータを取得して転送する。これにより、上書きされる可能性が高い共有メモリ２上のデータを要求装置７に転送する可能性が低減される。一方、要求装置７が要求した範囲の最新情報が演算装置４により既に書き出されており、処理中である可能性がない場合には、転送装置１は、メモリコントローラ３から直接データを取得するので、要求装置７に向けてデータを転送する速度が上がり、処理時間の短縮が図られる。
【００５６】
なお、管理表１６１に記述された範囲が全て統合され、共有メモリ２の全体に相当する範囲になったとき、転送装置１は、例えば管理表１６１の記憶内容を破棄して、要求装置７から要求された範囲をメモリコントローラ３から取得するように設定してもよい。
【００５７】
２．変形例
以上が実施形態の説明であるが、この実施形態の内容は以下のように変形し得る。また、以下の変形例を組合せてもよい。
【００５８】
２−１．変形例１
上述した実施形態において、転送装置１は、新たに第１範囲を登録することによって、管理表１６１に登録されるレコードの数が予め決められた閾値を超過するか否か判断していたが、この判断は行わなくてもよい。この場合、管理表１６１に登録されるレコード数に上限を設けなくてもよい。例えば、管理表１６１に登録されるレコード数が或る数を超えないように、演算装置４の要求が調整されるように構成されていればよい。
【００５９】
２−２．変形例２
上述した実施形態のステップＳ２０１において、転送装置１は、管理表１６１に登録されている第２範囲のそれぞれについて予め決められた評価を行い、その評価に基づく評価値を特定していたが、第１範囲についても評価値を特定し比較する対象に含めてもよい。
【００６０】
この場合、第１範囲および第２範囲のそれぞれに対して評価値を特定し、最も評価値が低い範囲が第２範囲である場合、転送装置１は、上述した通りその第２範囲を削除して、第１範囲を新たに登録すればよい。一方、第１範囲および第２範囲のそれぞれに対して評価値を特定し、最も評価値が低い範囲が第１範囲である場合、転送装置１は、その第１範囲を新たに登録しなければよい。
【００６１】
図１０は、この変形例における抑制処理の動作を示すフロー図である。この変形例で転送装置１は、図６に示すフロー図のうち、ステップＳ２００に代えて、図１０に示すステップＳ２１０を実行する。
【００６２】
ステップＳ２１０において、転送装置１は、調停バス５から検出した第１範囲、および管理表１６１に登録されている第２範囲のそれぞれに対して、予め決められた評価を行い、その評価に基づく評価値を特定する（ステップＳ２１１）。そして、転送装置１は、特定した評価値を相互に比較して、管理表１６１に登録されているレコードの中から最も評価の低いものを選択する（ステップＳ２１２）。転送装置１は、選択したそのレコードが、追加する予定の範囲、つまり第１範囲のレコードであるか否か判断し（ステップＳ２１３）、選択したそのレコードが第１範囲のレコードであると判断すると（ステップＳ２１３；ＹＥＳ）、その第１範囲を追加せずに（ステップＳ２１４）、処理を終了する。
【００６３】
一方、選択したそのレコードが第１範囲のレコードでないと判断すると（ステップＳ２１３；ＮＯ）、転送装置１は、選択したそのレコードを削除する（ステップＳ２１５）。
管理表１６１から上述したレコードを削除した後、転送装置１は、第１範囲を管理表１６１に追加して登録する（ステップＳ２１６）。
【００６４】
この動作により、管理表１６１は第１範囲を示すレコードがどの第２範囲よりも評価が低い場合に第１範囲の追加を中止する。一方、それ以外の場合、第１範囲の追加登録に先立って一つの第２範囲にかかるレコードを削除するので、管理表１６１に登録されているレコードの数は変化せず、レコード数の増加は抑制される。
【００６５】
２−３．変形例３
上述した実施形態において、評価値とは、管理表１６１に登録される範囲のデータ量に応じた値であったが、管理表１６１に登録される範囲の他の属性に応じた値であってもよい。例えば、評価値は、管理表１６１に登録される範囲の、他の範囲までの最短距離に応じた値であってもよい。この場合、他の範囲までの最短距離が長いものほど、その範囲に対する評価値を低くすればよい。この構成によれば、調停バス５から検出した範囲と統合される可能性が低い範囲から優先して削除される。
【００６６】
なお、評価値は、検出された時期に応じた値であってもよい。この場合、例えば、検出された時期が古いものほど、その範囲に対する評価値を低くしてもよい。この構成では、演算装置４が書き出しのために範囲を指定した時期が古いほど、管理表１６１から削除され易くなる。
【００６７】
２−４．変形例４
上述した実施形態において、転送装置１の検出部１５は、調停バス５からメモリコントローラ３へ伝えられた演算装置４の要求を監視して、演算装置４が書き出しのために指定した共有メモリ２の範囲を検出していたが、演算装置４が読み出しのために指定した共有メモリ２の範囲を検出してもよい。
【００６８】
この変形例において、転送装置１の取得部１３は、要求装置７からの要求が記憶部１６の管理表１６１に登録されていない範囲に対するものである場合に、第１通信路Ｐ１経由でメモリコントローラ３からデータを取得する。一方、要求装置７からの要求が管理表１６１に登録された範囲に対するものである場合に、取得部１３は、第２通信路Ｐ２経由で調停バス５からデータを取得する。
【００６９】
要求装置７からの読み出しの要求が、演算装置４が読み出しのために指定した範囲に対するものであるとは、要求装置７が読み出しを要求した範囲のデータが、演算装置４によって既に読み出されて、演算によって将来更新される可能性があることを意味している。したがって、転送装置１は、データをメモリコントローラ３ではなく調停バス５に要求し、調停バス５にその範囲の最新情報が格納されている記憶領域を特定させた上でデータを取得して要求装置７に転送する。これによりデータ転送の安全性が向上する。
【００７０】
一方、要求装置７が読み出しの要求が、演算装置４が読み出しのために指定した範囲に対するものでない場合、要求装置７が要求した範囲の最新情報は、未だ演算装置４のキャッシュメモリ４１に読み出されておらず、共有メモリ２に記憶されている。したがって、転送装置１は、調停バス５からではなく、メモリコントローラ３からその範囲のデータを直接、取得する。これにより処理速度が向上する。
【００７１】
２−５．変形例５
上述した実施形態において、転送装置１は、抑制処理をする際に、管理表１６１に登録されている第２範囲に対してそれぞれ特定した評価値を相互に比較して、その中から最も評価の低いものを選択して削除していたが、上述した変形例４においては、それらの評価値に基づいて、管理表１６１に登録されている第２範囲のレコードのうち、一つを選択し、選択した範囲と第１範囲とを統合して連続した一の範囲として再登録してもよい。
【００７２】
図１１は、この変形例における抑制処理の動作を示すフロー図である。この変形例で転送装置１は、図６に示すフロー図のうち、ステップＳ２００に代えて、図１１に示すステップＳ２２０を実行する。
【００７３】
ステップＳ２２０において、転送装置１は、管理表１６１に登録されている第２範囲のそれぞれに対して、予め決められた評価を行い、その評価に基づく評価値を特定する（ステップＳ２２１）。そして、転送装置１は、特定した評価値を比較して、管理表１６１に登録されている第２範囲の中から最も評価の低いものを選択し（ステップＳ２２２）、選択した第２範囲と、調停バス５から検出した第１範囲とを統合して連続した一の範囲として登録する（ステップＳ２２３）。
【００７４】
評価値は、例えば第１範囲との距離に応じた値であってもよい。この場合、第１範囲との距離が最も近い第２範囲が選択され、選択された第２範囲と第１範囲とは統合されて、新たに連続した一の範囲として登録される。図１２は、この変形例における統合を説明するための図である。図１２（ａ）に示すように、第１範囲Ｒ１が検出されると、管理表１６１に記述された第２範囲Ｒ２はそれぞれ第１範囲Ｒ１との距離で評価される。
【００７５】
例えば、第１範囲Ｒ１と隣り合う二つの第２範囲Ｒ２ａ、Ｒ２ｂは、図１２（ｂ）において塗りつぶした領域で示される、第１範囲Ｒ１との距離でそれぞれ評価される。この場合、第１範囲Ｒ１との距離は、第２範囲Ｒ２ｂの方が、第２範囲Ｒ２ａよりも短いため、第２範囲Ｒ２ｂが選択される。
【００７６】
転送装置１は、第１範囲Ｒ１と第２範囲Ｒ２ｂとを統合し、統合したこの範囲を図１２（ｃ）に示す連続した一の範囲である第３範囲Ｒ３を管理表１６１に登録する。この場合であっても、管理表１６１に登録されているレコードの数は変化しないから、レコード数の増加は抑制される。
【００７７】
また、上述した変形例４においては、管理表１６１から第２範囲を削除すると、要求装置７が要求する範囲にその削除された範囲が含まれる場合がある。このとき転送装置１は、既に共有メモリ２から演算装置４のキャッシュメモリ４１に読み出されている範囲についても、メモリコントローラ３からデータを取得して要求装置７に転送することがあり、最新情報ではないデータが要求装置７に転送される場合がある。一方、この変形例においては、登録された範囲の削除を行わず、統合をするので、転送装置１が、最新情報ではないデータを要求装置７に転送することがない。
【００７８】
２−６．変形例６
上述した変形例５では、評価値を特定する対象は、第２範囲のみであったが、第１範囲についても評価値を特定してもよい。そして、それらの評価値に基づいて第１範囲および第２範囲の中から二つの範囲を選択して、選択したその二つの範囲を統合して登録してもよい。この場合、評価値は、他の範囲との最短距離に応じた値であってもよい。
【００７９】
２−７．変形例７
また、上述した変形例５では、選択した一つの第２範囲と第１範囲とを統合していたが、第１範囲を登録するとともに、二つの第２範囲を選択して、選択したこれら二つの第２範囲を統合してもよい。すなわち、転送装置１は、管理表１６１に登録されている第２範囲のそれぞれに対して、予め決められた評価を行い、その評価に基づく評価値を特定する。そして、転送装置１は、それらの評価値に基づいて、管理表１６１に登録されている第２範囲のレコードのうち、二つを選択し、選択したこれら二つの第２範囲を統合して連続した一の範囲として再登録してもよい。
【００８０】
この場合、評価値は、第２範囲同士の距離に応じた値であってもよい。つまり、調停バス５から検出された第１範囲が、管理表１６１に登録されている複数の第２範囲のいずれとも重複せず、隣接せず、かつ、複数の該第２範囲の数が閾値を超える場合に、登録部１２は、この第１範囲を管理表１６１に登録するとともに、複数の該第２範囲のうち、互いの距離が最も近い二つの範囲を統合して連続した一の範囲として登録する。この場合であっても、管理表１６１に登録されているレコードの数は変化しないから、レコード数の増加は抑制される。
【００８１】
２−８．変形例８
転送装置１を制御するためのプログラムは、磁気テープや磁気ディスクなどの磁気記録媒体、光ディスクなどの光記録媒体、光磁気記録媒体、半導体メモリなどの、コンピュータ装置が読み取り可能な記録媒体に記憶された状態で提供し得る。また、これらのプログラムを、インターネットなどを経由してダウンロードさせることも可能である。なお、上記の転送装置１の演算処理装置としては種々の装置が適用される場合があり、例えば、専用のプロセッサなどが用いられる。
【符号の説明】
【００８２】
１…転送装置、１１…受付部、１２…登録部、１３…取得部、１４…転送部、１５…検出部、１６…記憶部、１６１…管理表、２…共有メモリ、３…メモリコントローラ、４…演算装置、４１…キャッシュメモリ、５…調停バス、６…内部バス、７…要求装置、９…転送システム。
【図１】
0006558009.tif 000002
【図２】
0006558009.tif 000003
【図３】
0006558009.tif 000004
【図４】
0006558009.tif 000005
【図５】
0006558009.tif 000006
【図６】
0006558009.tif 000007
【図７】
0006558009.tif 000008
【図８】
0006558009.tif 000009
【図９】
0006558009.tif 000010
【図１０】
0006558009.tif 000011
【図１１】
0006558009.tif 000012
【図１２】
0006558009.tif 000013