特許第6558009号(P6558009)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士ゼロックス株式会社の特許一覧

特許6558009転送装置、転送システムおよびプログラム
<>
  • 特許6558009-転送装置、転送システムおよびプログラム 図000002
  • 特許6558009-転送装置、転送システムおよびプログラム 図000003
  • 特許6558009-転送装置、転送システムおよびプログラム 図000004
  • 特許6558009-転送装置、転送システムおよびプログラム 図000005
  • 特許6558009-転送装置、転送システムおよびプログラム 図000006
  • 特許6558009-転送装置、転送システムおよびプログラム 図000007
  • 特許6558009-転送装置、転送システムおよびプログラム 図000008
  • 特許6558009-転送装置、転送システムおよびプログラム 図000009
  • 特許6558009-転送装置、転送システムおよびプログラム 図000010
  • 特許6558009-転送装置、転送システムおよびプログラム 図000011
  • 特許6558009-転送装置、転送システムおよびプログラム 図000012
  • 特許6558009-転送装置、転送システムおよびプログラム 図000013
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6558009
(24)【登録日】2019年7月26日
(45)【発行日】2019年8月14日
(54)【発明の名称】転送装置、転送システムおよびプログラム
(51)【国際特許分類】
   G06F 13/28 20060101AFI20190805BHJP
【FI】
   G06F13/28 310M
【請求項の数】9
【全頁数】17
(21)【出願番号】特願2015-59374(P2015-59374)
(22)【出願日】2015年3月23日
(65)【公開番号】特開2016-177752(P2016-177752A)
(43)【公開日】2016年10月6日
【審査請求日】2018年2月28日
(73)【特許権者】
【識別番号】000005496
【氏名又は名称】富士ゼロックス株式会社
(74)【代理人】
【識別番号】110000752
【氏名又は名称】特許業務法人朝日特許事務所
(72)【発明者】
【氏名】橋本 貴之
(72)【発明者】
【氏名】三角 晃
(72)【発明者】
【氏名】杉山 雄一
【審査官】 打出 義尚
(56)【参考文献】
【文献】 特開2008−140065(JP,A)
【文献】 特開2008−140078(JP,A)
【文献】 特開2000−003302(JP,A)
【文献】 特開昭63−285649(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/28
(57)【特許請求の範囲】
【請求項1】
共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと通信する第1通信路と、
装置間の要求を調停する装置であって一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と通信する第2通信路と、
要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、
前記演算装置が書き出しのために指定した範囲を前記調停装置から検出して登録する登録手段と、
前記要求装置からの要求が登録された範囲に対するものである場合に、前記第1通信路経由で前記メモリコントローラから前記データを取得し、該要求が登録されていない範囲に対するものである場合に、前記第2通信路経由で前記調停装置から前記データを取得する取得手段と、
前記取得したデータを前記要求装置に転送する転送手段と、
を有し、
前記登録手段は、前記調停装置から検出した第1範囲が、登録されている第2範囲の少なくとも一部と重複するか、または該第2範囲と隣接する場合、該第1範囲と該第2範囲とを統合して連続した一の範囲として登録する
ことを特徴とする転送装置。
【請求項2】
前記登録手段は、
前記調停装置から検出した第1範囲が、登録されている複数の第2範囲のいずれとも重複せず、隣接せず、かつ、複数の該第2範囲の数が閾値を超える場合に、複数の該第2範囲のそれぞれに対して、予め決められた評価に基づく評価値を特定し、該評価値が最も低いものを削除して、該第1範囲を登録する
ことを特徴とする請求項1に記載の転送装置。
【請求項3】
前記登録手段は、
前記調停装置から検出した第1範囲が、登録されている複数の第2範囲のいずれとも重複せず、隣接せず、かつ、複数の該第2範囲の数が閾値を超える場合に、該第1範囲および複数の該第2範囲のそれぞれに対して、予め決められた評価に基づく評価値を特定し、該第1範囲に対する評価値が複数の前記第2範囲に対する評価値よりも低い場合に、該第1範囲を登録しない
ことを特徴とする請求項1に記載の転送装置。
【請求項4】
前記登録手段は、前記範囲が示すデータ量に応じた値を前記範囲の評価値として特定し、該データ量が小さいものほど該評価値を低くする
ことを特徴とする請求項2または3に記載の転送装置。
【請求項5】
前記登録手段は、他の範囲までの最短距離に応じた値を前記範囲の評価値として特定し、該最短距離が長いものほど該評価値を低くする
ことを特徴とする請求項2または3に記載の転送装置。
【請求項6】
共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと通信する第1通信路と、
装置間の要求を調停する装置であって一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と通信する第2通信路と、
要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、
前記演算装置が読み出しのために指定した範囲を前記調停装置から検出して登録する登録手段と、
前記要求装置からの要求が登録されていない範囲に対するものである場合に、前記第1通信路経由で前記メモリコントローラから前記データを取得し、該要求が登録された範囲に対するものである場合に、前記第2通信路経由で前記調停装置から前記データを取得する取得手段と、
前記取得したデータを前記要求装置に転送する転送手段と、
を有し、
前記登録手段は、前記調停装置から検出した第1範囲が、登録されている第2範囲の少なくとも一部と重複するか、または該第2範囲と隣接する場合、該第1範囲と該第2範囲とを統合して連続した一の範囲として登録し、
前記調停装置から検出した第1範囲が、登録されている複数の第2範囲のいずれとも重複せず、隣接せず、かつ、複数の該第2範囲の数が閾値を超える場合に、複数の該第2範囲のうち、該第1範囲との距離が最も近いものを該第1範囲と統合して連続した一の範囲として登録する
ことを特徴とする転送装置。
【請求項7】
共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと通信する第1通信路と、
装置間の要求を調停する装置であって一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と通信する第2通信路と、
要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、
前記演算装置が読み出しのために指定した範囲を前記調停装置から検出して登録する登録手段と、
前記要求装置からの要求が登録されていない範囲に対するものである場合に、前記第1通信路経由で前記メモリコントローラから前記データを取得し、該要求が登録された範囲に対するものである場合に、前記第2通信路経由で前記調停装置から前記データを取得する取得手段と、
前記取得したデータを前記要求装置に転送する転送手段と、
を有し、
前記登録手段は、前記調停装置から検出した第1範囲が、登録されている第2範囲の少なくとも一部と重複するか、または該第2範囲と隣接する場合、該第1範囲と該第2範囲とを統合して連続した一の範囲として登録し、
前記調停装置から検出した第1範囲が、登録されている複数の第2範囲のいずれとも重複せず、隣接せず、かつ、複数の該第2範囲の数が閾値を超える場合に、該第1範囲を登録するとともに、複数の該第2範囲のうち、互いの距離が最も近い二つの範囲を統合して連続した一の範囲として登録する
ことを特徴とする転送装置。
【請求項8】
請求項1からのいずれか1項に記載の転送装置と、
前記転送装置と前記第1通信路経由で通信し、共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと、
装置間の要求を調停する装置であって、前記転送装置と前記第2通信路経由で通信し、一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と、
前記転送装置に対して前記共有メモリに格納されたデータの要求を送る要求装置と、
を有する転送システム。
【請求項9】
共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと通信する第1通信路と、
装置間の要求を調停する装置であって一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と通信する第2通信路と、
を有するコンピュータを、
要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、
前記演算装置が書き出しのために指定した範囲を前記調停装置から検出して登録する登録手段と、
前記要求装置からの要求が登録された範囲に対するものである場合に、前記第1通信路経由で前記メモリコントローラから前記データを取得し、該要求が登録されていない範囲に対するものである場合に、前記第2通信路経由で前記調停装置から前記データを取得する取得手段と、
前記取得したデータを前記要求装置に転送する転送手段、 として機能させるとともに、
前記調停装置から検出した第1範囲が、登録されている第2範囲の少なくとも一部と重複するか、または該第2範囲と隣接する場合、該第1範囲と該第2範囲とを統合して連続した一の範囲として登録するように、前記登録手段を機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、転送装置、転送システムおよびプログラムに関する。
【背景技術】
【0002】
特許文献1には、キャッシュとメインメモリ間のデータ転送を監視して、アクセスされたメインメモリのアドレスを判定し、データ転送の経路を選択する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−140078号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、複数の装置に共有される記憶内容の一貫性の維持と、これらの装置の処理速度の向上とを両立させることを目的とする。
【課題を解決するための手段】
【0005】
本発明の請求項1に係る転送装置は、共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと通信する第1通信路と、装置間の要求を調停する装置であって一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と通信する第2通信路と、要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、前記演算装置が書き出しのために指定した範囲を前記調停装置から検出して登録する登録手段と、前記要求装置からの要求が登録された範囲に対するものである場合に、前記第1通信路経由で前記メモリコントローラから前記データを取得し、該要求が登録されていない範囲に対するものである場合に、前記第2通信路経由で前記調停装置から前記データを取得する取得手段と、前記取得したデータを前記要求装置に転送する転送手段と、を有し、前記登録手段は、前記調停装置から検出した第1範囲が、登録されている第2範囲の少なくとも一部と重複するか、または該第2範囲と隣接する場合、該第1範囲と該第2範囲とを統合して連続した一の範囲として登録することを特徴とする。
【0006】
本発明の請求項2に係る転送装置は、請求項1に記載の態様において、前記登録手段は、前記調停装置から検出した第1範囲が、登録されている複数の第2範囲のいずれとも重複せず、隣接せず、かつ、複数の該第2範囲の数が閾値を超える場合に、複数の該第2範囲のそれぞれに対して、予め決められた評価に基づく評価値を特定し、該評価値が最も低いものを削除して、該第1範囲を登録することを特徴とする。
【0007】
本発明の請求項3に係る転送装置は、請求項1に記載の態様において、前記登録手段は、前記調停装置から検出した第1範囲が、登録されている複数の第2範囲のいずれとも重複せず、隣接せず、かつ、複数の該第2範囲の数が閾値を超える場合に、該第1範囲および複数の該第2範囲のそれぞれに対して、予め決められた評価に基づく評価値を特定し、該第1範囲に対する評価値が複数の前記第2範囲に対する評価値よりも低い場合に、該第1範囲を登録しないことを特徴とする。
【0008】
本発明の請求項4に係る転送装置は、請求項2または3に記載の態様において、前記登録手段は、前記範囲が示すデータ量に応じた値を前記範囲の評価値として特定し、該データ量が小さいものほど該評価値を低くすることを特徴とする。
【0009】
本発明の請求項5に係る転送装置は、請求項2または3に記載の態様において、前記登録手段は、他の範囲までの最短距離に応じた値を前記範囲の評価値として特定し、該最短距離が長いものほど該評価値を低くすることを特徴とする。
【0010】
本発明の請求項6に係る転送装置は、共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと通信する第1通信路と、装置間の要求を調停する装置であって一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と通信する第2通信路と、要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、前記演算装置が読み出しのために指定した範囲を前記調停装置から検出して登録する登録手段と、前記要求装置からの要求が登録されていない範囲に対するものである場合に、前記第1通信路経由で前記メモリコントローラから前記データを取得し、該要求が登録された範囲に対するものである場合に、前記第2通信路経由で前記調停装置から前記データを取得する取得手段と、前記取得したデータを前記要求装置に転送する転送手段と、を有し、前記登録手段は、前記調停装置から検出した第1範囲が、登録されている第2範囲の少なくとも一部と重複するか、または該第2範囲と隣接する場合、該第1範囲と該第2範囲とを統合して連続した一の範囲として登録し、前記調停装置から検出した第1範囲が、登録されている複数の第2範囲のいずれとも重複せず、隣接せず、かつ、複数の該第2範囲の数が閾値を超える場合に、複数の該第2範囲のうち、該第1範囲との距離が最も近いものを該第1範囲と統合して連続した一の範囲として登録することを特徴とする。
【0012】
本発明の請求項に係る転送装置は、共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと通信する第1通信路と、装置間の要求を調停する装置であって一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と通信する第2通信路と、要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、前記演算装置が読み出しのために指定した範囲を前記調停装置から検出して登録する登録手段と、前記要求装置からの要求が登録されていない範囲に対するものである場合に、前記第1通信路経由で前記メモリコントローラから前記データを取得し、該要求が登録された範囲に対するものである場合に、前記第2通信路経由で前記調停装置から前記データを取得する取得手段と、前記取得したデータを前記要求装置に転送する転送手段と、を有し、前記登録手段は、前記調停装置から検出した第1範囲が、登録されている第2範囲の少なくとも一部と重複するか、または該第2範囲と隣接する場合、該第1範囲と該第2範囲とを統合して連続した一の範囲として登録し、前記調停装置から検出した第1範囲が、登録されている複数の第2範囲のいずれとも重複せず、隣接せず、かつ、複数の該第2範囲の数が閾値を超える場合に、該第1範囲を登録するとともに、複数の該第2範囲のうち、互いの距離が最も近い二つの範囲を統合して連続した一の範囲として登録することを特徴とする。
【0013】
本発明の請求項に係る転送システムは、上述の転送装置と、前記転送装置と前記第1通信路経由で通信し、共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと、装置間の要求を調停する装置であって、前記転送装置と前記第2通信路経由で通信し、一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と、前記転送装置に対して前記共有メモリに格納されたデータの要求を送る要求装置と、を有する。
【0014】
本発明の請求項に係るプログラムは、共有メモリ内の指定された範囲に対して読み書きを行うメモリコントローラと通信する第1通信路と、装置間の要求を調停する装置であって一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の範囲を指定して読み書きの要求をする調停装置と通信する第2通信路と、を有するコンピュータを、要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、前記演算装置が書き出しのために指定した範囲を前記調停装置から検出して登録する登録手段と、前記要求装置からの要求が登録された範囲に対するものである場合に、前記第1通信路経由で前記メモリコントローラから前記データを取得し、該要求が登録されていない範囲に対するものである場合に、前記第2通信路経由で前記調停装置から前記データを取得する取得手段と、前記取得したデータを前記要求装置に転送する転送手段、として機能させるとともに、前記登録手段が、前記調停装置から検出した第1範囲が、登録されている第2範囲の少なくとも一部と重複するか、または該第2範囲と隣接する場合、該第1範囲と該第2範囲とを統合して連続した一の範囲として登録するように機能させるためのプログラムである。
【発明の効果】
【0015】
請求項1、、9係る発明によれば、複数の装置に共有される記憶内容の一貫性の維持と、これらの装置の処理速度の向上とを両立させることができる。
請求項2に係る発明によれば、演算装置が書き出しのために指定した範囲を登録する数が閾値を超えない。
請求項3に係る発明によれば、調停装置から検出した範囲の方が既に登録されている範囲よりも評価が低いときに、既に登録した範囲を削除する必要がない。
請求項4に係る発明によれば、要求装置から要求される可能性が低い範囲が削除される。
請求項5に係る発明によれば、調停装置から検出した範囲と統合される可能性が低い範囲が削除される。
請求項6、7に係る発明によれば、登録された範囲を削除する必要がない。
【図面の簡単な説明】
【0016】
図1】本実施形態に係る転送システムの全体構成を示す図。
図2】転送装置の機能的構成を示す図。
図3】管理表の例を示す図。
図4】範囲の特定に必要な情報を説明するための図。
図5】転送システムの動作を示すシーケンス図。
図6】転送装置における登録処理の動作を示すフロー図。
図7】第1範囲と第2範囲とが隣接・重複しない場合を示す図。
図8】第1範囲と第2範囲とが重複する場合を示す図。
図9】抑制処理の動作を示すフロー図。
図10】変形例における抑制処理の動作を示すフロー図。
図11】変形例における抑制処理の動作を示すフロー図。
図12】変形例における統合を説明するための図。
【発明を実施するための形態】
【0017】
1.実施形態
1−1.転送システムの全体構成
図1は、本実施形態に係る転送システム9の全体構成を示す図である。図1に示すように、転送システム9は、転送装置1と、メモリコントローラ3と、調停バス5と、要求装置7とを有する。また、転送システム9は、共有メモリ2と、一以上の演算装置4と、内部バス6と、を有する。
【0018】
メモリコントローラ3は、共有メモリ2内の指定された範囲に対して読み書きを行う制御装置である。メモリコントローラ3は、転送装置1と第1通信路P1経由で通信する。また、メモリコントローラ3は、調停バス5から読み書きの要求を受ける。この要求は転送装置1により監視される。
【0019】
調停バス5は、キャッシュ・コヒーレント・インターコネクト(CCI)バスなどと呼ばれるものであり、装置間の要求を調停する装置(調停装置)として機能する。調停バス5は、転送装置1と第2通信路P2経由で通信し、一以上の演算装置4からの要求に基づいてメモリコントローラ3に対して共有メモリ2内の範囲を指定して読み書きの要求をするバスである。調停バス5は、共有メモリ2内に記憶されているデータと、共有メモリ2から演算装置4のキャッシュメモリ41に読み出されたデータとの一貫性(コヒーレンシ)を維持するように動作する。
【0020】
調停バス5は、一以上の演算装置4からの要求に加えて転送装置1からの要求も受付けるため、これらの要求の処理を管理する待ち行列を記憶する一時記憶領域を有する。要求の発生量に要求の処理速度が追いつかなくなると待ち行列が渋滞し、要求した処理が実行されるまでに時間がかかる場合がある。
【0021】
要求装置7は、ダイレクト・メモリ・アクセス(DMA)などと呼ばれる装置であり、転送装置1に対して共有メモリ2に格納されたデータの読み出し要求を送る装置である。
転送装置1は、要求装置7からの要求の内容に応じてデータの要求先を決めてそのデータを取得し、取得したそのデータを要求装置7に転送する装置である。
【0022】
共有メモリ2は、システムを構成する装置間で共有されるメモリであって、メモリコントローラ3によって読み書きが行われるメモリである。共有メモリ2の記憶容量は、例えば8ギガバイトである。
【0023】
演算装置4は、調停バス5を介してメモリコントローラ3に対して共有メモリ2内の範囲を指定して読み書きの要求をする装置である。図1に示す演算装置4は、二つであり、演算に用いる一時的な記憶領域としてそれぞれキャッシュメモリ41が備えられている。キャッシュメモリ41の記憶容量は、例えば1メガバイトである。
内部バス6は、要求装置7と転送装置1との情報伝達を中継するバスである。
【0024】
1−2.転送装置の構成
転送装置1は、演算処理装置や、ROM(Read Only Memory)、RAM(Random Access Memory)などの記憶装置を必要に応じて備える。
【0025】
図2は、転送装置1の機能的構成を示す図である。転送装置1は、受付部11、登録部12、取得部13、転送部14、検出部15、および記憶部16として機能する。
【0026】
検出部15は、調停バス5からメモリコントローラ3へ伝えられた演算装置4の要求を監視して、演算装置4が書き出しのために指定した共有メモリ2の範囲を検出する。検出部15が検出する範囲は連続した範囲であり、演算装置4が連続しない2箇所以上の範囲をそれぞれ要求した場合には、検出部15は、それらを別々の範囲として検出する。
【0027】
なお、複数回にわたって書き出しが行われても、一回ごとにそれぞれ書き出される範囲がその前後の回に書き出される範囲と連続している場合、検出部15は、この複数回にわたって要求された範囲をまとめて連続した一の範囲として検出してもよい。
【0028】
登録部12は、検出部15により検出された共有メモリ2の範囲を記憶部16の管理表161に登録する。
【0029】
記憶部16は、上述したROMやRAMなどの記憶装置を含み、管理表161を記憶する。
【0030】
図3は、管理表161の例を示す図である。管理表161は、検出部15によって検出された共有メモリ2内の連続した範囲をその範囲ごとに記憶する表である。図3(a)に示す通り、共有メモリ2内の連続した範囲は、それぞれ固有の番号が付され、その範囲の開始位置(SP)とデータ量(SZ)とを含むレコードで記述される。
【0031】
なお、範囲を示すレコードは、開始位置とデータ量との組合せで記述されるとは限らず、例えば、図3(b)に示す通り、開始位置(SP)と終了位置(EP)との組合せにより記述されてもよい。また、以下に示す例において、記憶部16は、管理表161に登録されるレコードの上限数を示す閾値を予め記憶している。
【0032】
図4は、範囲の特定に必要な情報を説明するための図である。開始位置SPは、範囲の冒頭のアドレスを示す情報である。データ量SZは、範囲の大きさを示す情報である。終了位置EPは、例えば、範囲の末尾のアドレスに最小記憶単位を加算したアドレスを示す情報である。ここで最小記憶単位とは、一度に読み書きされるデータのうち最も小さいデータのデータ量であり、例えば16バイトなどである。
【0033】
開始位置SP、データ量SZ、および終了位置EPのうち、いずれか二つが特定されていれば、これらにより図4に斜線で示した範囲が特定される。
【0034】
受付部11は、内部バス6を介して要求装置7から共有メモリ2に格納されたデータの要求を受付ける。受付部11は、このデータの要求を受付けると、その要求を取得部13に渡す。
【0035】
取得部13は、受付部11が受付けた範囲を管理表161に登録された範囲と比較して、要求装置からの要求が登録された範囲に対するものであるか否かを判断する。そして、取得部13は、その判断結果に応じて調停バス5およびメモリコントローラ3のいずれか一方をデータの要求先として選択し、選択したその要求先からデータを取得する。
【0036】
取得部13は、判断の結果、要求装置7からの要求が管理表161に登録された範囲に対するものである場合に、第1通信路P1経由でメモリコントローラ3からデータを取得する。一方、取得部13は、要求装置7からの要求が管理表161に登録されていない範囲に対するものである場合に、第2通信路P2経由で調停バス5からデータを取得する。
転送部14は、取得部13が取得したデータを、内部バス6経由で要求装置7に転送する。
【0037】
1−3.転送システムの動作
図5は、転送システム9の動作を示すシーケンス図である。転送装置1は、電源が供給された直後の初期状態において、要求装置7から要求された範囲をメモリコントローラ3から取得するように設定されている。そして、演算装置4が読み出しのために指定した範囲を調停バス5から初めて検出したときに、転送装置1は、初期状態を脱して、要求装置7から要求された範囲を調停バス5から取得するように再設定される。演算装置4が調停バス5を介して読み出しを続け、読み出しの量がキャッシュメモリ41の記憶容量を超えると、演算装置4は、キャッシュメモリ41のうち、既に演算を終了して記憶する必要がなくなった記憶内容を共有メモリ2に書き出すため調停バス5を介してメモリコントローラ3へ要求する。
【0038】
いずれかの演算装置4から要求を受けた調停バス5は、その要求に基づいてメモリコントローラ3に対して共有メモリ2内の範囲を指定して読み書きの要求をする(ステップS001)。転送装置1は、ステップS001のこの要求を監視しており、調停バス5からメモリコントローラ3への書き出しのための要求があったときに、その要求に示される共有メモリ2内の指定された範囲を検出する(ステップS002)。そして、転送装置1は、検出した範囲を登録する(ステップS100)。この登録処理については後述する。
【0039】
次に、要求装置7が転送装置1に対して、共有メモリ2内のいずれかの範囲を指定してデータの読み出しを要求すると(ステップS011)、この要求を受付けた転送装置1は、この要求の内容と、ステップS100で登録した内容とに応じて、データの要求先を選択し(ステップS012)、メモリコントローラ3または調停バス5のいずれかから(図5に実線で示す例ではメモリコントローラ3から)、要求装置7が要求した範囲のデータを取得する(ステップS013)。そして、転送装置1は、取得したデータを要求装置7に転送する(ステップS014)。
【0040】
1−4.転送装置の動作
(1)登録処理の動作
図6は、転送装置1における登録処理の動作を示すフロー図である。転送装置1は、調停バス5からメモリコントローラ3への要求を監視することにより、演算装置4が書き出しのために指定した範囲を検出したか否か判断する(ステップS101)。演算装置4が書き出しのために指定した範囲を検出していないと判断する場合(ステップS101;NO)、転送装置1は、この判断を続ける。
【0041】
一方、上記の範囲を検出したと判断する場合(ステップS101;YES)、転送装置1は、検出された範囲を特定する(ステップS102)。そして、転送装置1は、特定した範囲と、記憶部16の管理表161に登録された範囲とを比較して(ステップS103)、これらが隣接または重複するか否かを判断する(ステップS104)。
【0042】
特定した範囲と、記憶部16の管理表161に登録された範囲とが隣接または重複すると判断する場合、すなわち、調停バス5から検出した範囲(第1範囲という)が、管理表161に登録されている範囲(第2範囲という)と隣接するか、少なくとも一部と重複すると判断する場合(ステップS104;YES)、転送装置1は、これらの範囲を統合して連続した一の範囲として登録する(ステップS105)。
【0043】
図7は、第1範囲と第2範囲とが隣接・重複しない場合を示す図である。管理表161には図7に示す第2範囲R2の開始位置SP2と、データ量SZ2とが記述されている。そして、図7(a)に示す例では、調停バス5から検出した第1範囲R1は、第2範囲R2と離れており、隣接も重複もしていない。したがって、図7(b)に示す通り、第1範囲R1は、登録されたレコード数が閾値を超えない限りにおいて、第2範囲R2とは区別される領域として、管理表161に登録される。
【0044】
図8は、第1範囲と第2範囲とが重複する場合を示す図である。図8(a)に示す通り、第2範囲R2の開始位置SP2が、第1範囲R1内に入り込んでいるため、第1範囲R1は、第2範囲R2と重複する。図8(b)に示す塗り潰した領域は第1範囲R1と第2範囲R2とが重複する領域である。
【0045】
重複する領域が存在しているため、転送装置1は、図8(c)に示す通り、第1範囲R1と第2範囲R2とを統合して、連続した一の範囲である第3範囲R3として管理表161に登録する。したがって、この場合、管理表161において、開始位置の項目にSP2が記述され、データ量の項目にSZ2が記述されたレコードは、開始位置の項目に第3範囲R3の開始位置であるSP3が、データ量の項目に第3範囲R3のデータ量であるSZ3が、それぞれ記述された新たなレコードとして上書きされる。
【0046】
なお、第1範囲R1と第2範囲R2とに重複する領域が存在していなくても、これらが隣接している場合、つまり、間にこれら以外のデータが挟まれていない場合であれば、転送装置1は、これら第1範囲R1と第2範囲R2とを統合して、連続した一の範囲である第3範囲R3として管理表161に登録する。
【0047】
図6に示す通り、第1範囲が、第2範囲と隣接しておらず、また、第2範囲のどの部分とも重複していないと判断する場合(ステップS104;NO)、転送装置1は、新たに第1範囲を登録することによって、管理表161に登録されるレコードの数が予め決められた閾値を超過するか否か判断する(ステップS106)。
【0048】
新たに第1範囲を登録することによって、管理表161に登録されるレコードの数が予め決められた閾値を超過すると判断する場合(ステップS106;YES)、転送装置1は、管理表161に登録されるレコードの数を抑制する抑制処理を実行する(ステップS200)。一方、管理表161に登録されるレコードの数が閾値を超過しないと判断する場合(ステップS106;NO)、転送装置1は、第1範囲を管理表161に追加して登録する(ステップS107)。
【0049】
(2)抑制処理の動作
図9は、上述した抑制処理の動作を示すフロー図である。ステップS200において、転送装置1は、管理表161に登録されている範囲(すなわち、第2範囲)のそれぞれについて予め決められた評価を行い、その評価に基づく評価値を特定する(ステップS201)。そして、転送装置1は、特定した評価値を相互に比較して、管理表161に登録されているレコードの中から最も評価の低いものを選択し(ステップS202)、選択したそのレコードを削除する(ステップS203)。
【0050】
この例において、評価値とは、管理表161に登録される範囲のデータ量に応じた値である。転送装置1は、管理表161に登録される範囲を、その範囲のデータ量によって評価し、そのデータ量が小さいものほど、低い評価値を割り当てればよい。これにより、管理表161に登録された範囲が閾値を超えた場合には、それらの範囲のうち、最も小さいものが削除される。削除される範囲が小さければ小さいほど、その範囲が、要求装置7の要求する範囲に含まれる可能性が低くなる。つまり、要求装置7から要求される可能性が低い範囲から優先して削除される。
【0051】
管理表161から上述したレコードを削除した後、転送装置1は、第1範囲を管理表161に追加して登録する(ステップS204)。この動作により、管理表161は第1範囲を示すレコードの追加登録に先立って一つのレコードを削除するので、管理表161に登録されているレコードの数は変化せず、レコード数の増加は抑制される。
【0052】
以上、説明した動作により、転送装置1は、演算装置4が書き出しのために指定した範囲を検出して登録し、要求装置7からの要求が既に登録したその範囲に対するものである場合に、対応するデータをメモリコントローラ3から取得する。
【0053】
要求装置7からの読み出しの要求が、演算装置4が書き出しのために指定した範囲に対するものであるとは、要求装置7が読み出しを要求した範囲のデータが、演算装置4によって既に最新情報として書き出されていることを意味している。したがって、転送装置1は、データをメモリコントローラ3に要求し、最新情報が格納されている共有メモリ2からデータを直接、取得して要求装置7に転送する。
【0054】
一方、要求装置7が読み出しの要求が、演算装置4が書き出しのために指定した範囲に対するものでない場合、要求装置7が要求した範囲の最新情報は、未だ演算装置4のキャッシュメモリ41に存在する可能性がある。したがって、転送装置1は、メモリコントローラ3からではなく、調停バス5からその範囲のデータを取得する。
【0055】
つまり、本発明に係る転送装置1は、要求装置7が要求した範囲の最新情報が演算装置4により処理中である可能性がある場合に、時間がかかっても調停バス5からデータを取得して転送する。これにより、上書きされる可能性が高い共有メモリ2上のデータを要求装置7に転送する可能性が低減される。一方、要求装置7が要求した範囲の最新情報が演算装置4により既に書き出されており、処理中である可能性がない場合には、転送装置1は、メモリコントローラ3から直接データを取得するので、要求装置7に向けてデータを転送する速度が上がり、処理時間の短縮が図られる。
【0056】
なお、管理表161に記述された範囲が全て統合され、共有メモリ2の全体に相当する範囲になったとき、転送装置1は、例えば管理表161の記憶内容を破棄して、要求装置7から要求された範囲をメモリコントローラ3から取得するように設定してもよい。
【0057】
2.変形例
以上が実施形態の説明であるが、この実施形態の内容は以下のように変形し得る。また、以下の変形例を組合せてもよい。
【0058】
2−1.変形例1
上述した実施形態において、転送装置1は、新たに第1範囲を登録することによって、管理表161に登録されるレコードの数が予め決められた閾値を超過するか否か判断していたが、この判断は行わなくてもよい。この場合、管理表161に登録されるレコード数に上限を設けなくてもよい。例えば、管理表161に登録されるレコード数が或る数を超えないように、演算装置4の要求が調整されるように構成されていればよい。
【0059】
2−2.変形例2
上述した実施形態のステップS201において、転送装置1は、管理表161に登録されている第2範囲のそれぞれについて予め決められた評価を行い、その評価に基づく評価値を特定していたが、第1範囲についても評価値を特定し比較する対象に含めてもよい。
【0060】
この場合、第1範囲および第2範囲のそれぞれに対して評価値を特定し、最も評価値が低い範囲が第2範囲である場合、転送装置1は、上述した通りその第2範囲を削除して、第1範囲を新たに登録すればよい。一方、第1範囲および第2範囲のそれぞれに対して評価値を特定し、最も評価値が低い範囲が第1範囲である場合、転送装置1は、その第1範囲を新たに登録しなければよい。
【0061】
図10は、この変形例における抑制処理の動作を示すフロー図である。この変形例で転送装置1は、図6に示すフロー図のうち、ステップS200に代えて、図10に示すステップS210を実行する。
【0062】
ステップS210において、転送装置1は、調停バス5から検出した第1範囲、および管理表161に登録されている第2範囲のそれぞれに対して、予め決められた評価を行い、その評価に基づく評価値を特定する(ステップS211)。そして、転送装置1は、特定した評価値を相互に比較して、管理表161に登録されているレコードの中から最も評価の低いものを選択する(ステップS212)。転送装置1は、選択したそのレコードが、追加する予定の範囲、つまり第1範囲のレコードであるか否か判断し(ステップS213)、選択したそのレコードが第1範囲のレコードであると判断すると(ステップS213;YES)、その第1範囲を追加せずに(ステップS214)、処理を終了する。
【0063】
一方、選択したそのレコードが第1範囲のレコードでないと判断すると(ステップS213;NO)、転送装置1は、選択したそのレコードを削除する(ステップS215)。
管理表161から上述したレコードを削除した後、転送装置1は、第1範囲を管理表161に追加して登録する(ステップS216)。
【0064】
この動作により、管理表161は第1範囲を示すレコードがどの第2範囲よりも評価が低い場合に第1範囲の追加を中止する。一方、それ以外の場合、第1範囲の追加登録に先立って一つの第2範囲にかかるレコードを削除するので、管理表161に登録されているレコードの数は変化せず、レコード数の増加は抑制される。
【0065】
2−3.変形例3
上述した実施形態において、評価値とは、管理表161に登録される範囲のデータ量に応じた値であったが、管理表161に登録される範囲の他の属性に応じた値であってもよい。例えば、評価値は、管理表161に登録される範囲の、他の範囲までの最短距離に応じた値であってもよい。この場合、他の範囲までの最短距離が長いものほど、その範囲に対する評価値を低くすればよい。この構成によれば、調停バス5から検出した範囲と統合される可能性が低い範囲から優先して削除される。
【0066】
なお、評価値は、検出された時期に応じた値であってもよい。この場合、例えば、検出された時期が古いものほど、その範囲に対する評価値を低くしてもよい。この構成では、演算装置4が書き出しのために範囲を指定した時期が古いほど、管理表161から削除され易くなる。
【0067】
2−4.変形例4
上述した実施形態において、転送装置1の検出部15は、調停バス5からメモリコントローラ3へ伝えられた演算装置4の要求を監視して、演算装置4が書き出しのために指定した共有メモリ2の範囲を検出していたが、演算装置4が読み出しのために指定した共有メモリ2の範囲を検出してもよい。
【0068】
この変形例において、転送装置1の取得部13は、要求装置7からの要求が記憶部16の管理表161に登録されていない範囲に対するものである場合に、第1通信路P1経由でメモリコントローラ3からデータを取得する。一方、要求装置7からの要求が管理表161に登録された範囲に対するものである場合に、取得部13は、第2通信路P2経由で調停バス5からデータを取得する。
【0069】
要求装置7からの読み出しの要求が、演算装置4が読み出しのために指定した範囲に対するものであるとは、要求装置7が読み出しを要求した範囲のデータが、演算装置4によって既に読み出されて、演算によって将来更新される可能性があることを意味している。したがって、転送装置1は、データをメモリコントローラ3ではなく調停バス5に要求し、調停バス5にその範囲の最新情報が格納されている記憶領域を特定させた上でデータを取得して要求装置7に転送する。これによりデータ転送の安全性が向上する。
【0070】
一方、要求装置7が読み出しの要求が、演算装置4が読み出しのために指定した範囲に対するものでない場合、要求装置7が要求した範囲の最新情報は、未だ演算装置4のキャッシュメモリ41に読み出されておらず、共有メモリ2に記憶されている。したがって、転送装置1は、調停バス5からではなく、メモリコントローラ3からその範囲のデータを直接、取得する。これにより処理速度が向上する。
【0071】
2−5.変形例5
上述した実施形態において、転送装置1は、抑制処理をする際に、管理表161に登録されている第2範囲に対してそれぞれ特定した評価値を相互に比較して、その中から最も評価の低いものを選択して削除していたが、上述した変形例4においては、それらの評価値に基づいて、管理表161に登録されている第2範囲のレコードのうち、一つを選択し、選択した範囲と第1範囲とを統合して連続した一の範囲として再登録してもよい。
【0072】
図11は、この変形例における抑制処理の動作を示すフロー図である。この変形例で転送装置1は、図6に示すフロー図のうち、ステップS200に代えて、図11に示すステップS220を実行する。
【0073】
ステップS220において、転送装置1は、管理表161に登録されている第2範囲のそれぞれに対して、予め決められた評価を行い、その評価に基づく評価値を特定する(ステップS221)。そして、転送装置1は、特定した評価値を比較して、管理表161に登録されている第2範囲の中から最も評価の低いものを選択し(ステップS222)、選択した第2範囲と、調停バス5から検出した第1範囲とを統合して連続した一の範囲として登録する(ステップS223)。
【0074】
評価値は、例えば第1範囲との距離に応じた値であってもよい。この場合、第1範囲との距離が最も近い第2範囲が選択され、選択された第2範囲と第1範囲とは統合されて、新たに連続した一の範囲として登録される。図12は、この変形例における統合を説明するための図である。図12(a)に示すように、第1範囲R1が検出されると、管理表161に記述された第2範囲R2はそれぞれ第1範囲R1との距離で評価される。
【0075】
例えば、第1範囲R1と隣り合う二つの第2範囲R2a、R2bは、図12(b)において塗りつぶした領域で示される、第1範囲R1との距離でそれぞれ評価される。この場合、第1範囲R1との距離は、第2範囲R2bの方が、第2範囲R2aよりも短いため、第2範囲R2bが選択される。
【0076】
転送装置1は、第1範囲R1と第2範囲R2bとを統合し、統合したこの範囲を図12(c)に示す連続した一の範囲である第3範囲R3を管理表161に登録する。この場合であっても、管理表161に登録されているレコードの数は変化しないから、レコード数の増加は抑制される。
【0077】
また、上述した変形例4においては、管理表161から第2範囲を削除すると、要求装置7が要求する範囲にその削除された範囲が含まれる場合がある。このとき転送装置1は、既に共有メモリ2から演算装置4のキャッシュメモリ41に読み出されている範囲についても、メモリコントローラ3からデータを取得して要求装置7に転送することがあり、最新情報ではないデータが要求装置7に転送される場合がある。一方、この変形例においては、登録された範囲の削除を行わず、統合をするので、転送装置1が、最新情報ではないデータを要求装置7に転送することがない。
【0078】
2−6.変形例6
上述した変形例5では、評価値を特定する対象は、第2範囲のみであったが、第1範囲についても評価値を特定してもよい。そして、それらの評価値に基づいて第1範囲および第2範囲の中から二つの範囲を選択して、選択したその二つの範囲を統合して登録してもよい。この場合、評価値は、他の範囲との最短距離に応じた値であってもよい。
【0079】
2−7.変形例7
また、上述した変形例5では、選択した一つの第2範囲と第1範囲とを統合していたが、第1範囲を登録するとともに、二つの第2範囲を選択して、選択したこれら二つの第2範囲を統合してもよい。すなわち、転送装置1は、管理表161に登録されている第2範囲のそれぞれに対して、予め決められた評価を行い、その評価に基づく評価値を特定する。そして、転送装置1は、それらの評価値に基づいて、管理表161に登録されている第2範囲のレコードのうち、二つを選択し、選択したこれら二つの第2範囲を統合して連続した一の範囲として再登録してもよい。
【0080】
この場合、評価値は、第2範囲同士の距離に応じた値であってもよい。つまり、調停バス5から検出された第1範囲が、管理表161に登録されている複数の第2範囲のいずれとも重複せず、隣接せず、かつ、複数の該第2範囲の数が閾値を超える場合に、登録部12は、この第1範囲を管理表161に登録するとともに、複数の該第2範囲のうち、互いの距離が最も近い二つの範囲を統合して連続した一の範囲として登録する。この場合であっても、管理表161に登録されているレコードの数は変化しないから、レコード数の増加は抑制される。
【0081】
2−8.変形例8
転送装置1を制御するためのプログラムは、磁気テープや磁気ディスクなどの磁気記録媒体、光ディスクなどの光記録媒体、光磁気記録媒体、半導体メモリなどの、コンピュータ装置が読み取り可能な記録媒体に記憶された状態で提供し得る。また、これらのプログラムを、インターネットなどを経由してダウンロードさせることも可能である。なお、上記の転送装置1の演算処理装置としては種々の装置が適用される場合があり、例えば、専用のプロセッサなどが用いられる。
【符号の説明】
【0082】
1…転送装置、11…受付部、12…登録部、13…取得部、14…転送部、15…検出部、16…記憶部、161…管理表、2…共有メモリ、3…メモリコントローラ、4…演算装置、41…キャッシュメモリ、5…調停バス、6…内部バス、7…要求装置、9…転送システム。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12