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

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

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

特許6558008転送装置、転送システムおよびプログラム
<>
  • 特許6558008-転送装置、転送システムおよびプログラム 図000002
  • 特許6558008-転送装置、転送システムおよびプログラム 図000003
  • 特許6558008-転送装置、転送システムおよびプログラム 図000004
  • 特許6558008-転送装置、転送システムおよびプログラム 図000005
  • 特許6558008-転送装置、転送システムおよびプログラム 図000006
  • 特許6558008-転送装置、転送システムおよびプログラム 図000007
  • 特許6558008-転送装置、転送システムおよびプログラム 図000008
  • 特許6558008-転送装置、転送システムおよびプログラム 図000009
  • 特許6558008-転送装置、転送システムおよびプログラム 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6558008
(24)【登録日】2019年7月26日
(45)【発行日】2019年8月14日
(54)【発明の名称】転送装置、転送システムおよびプログラム
(51)【国際特許分類】
   G06F 13/36 20060101AFI20190805BHJP
【FI】
   G06F13/36 310E
   G06F13/36 520D
【請求項の数】3
【全頁数】12
(21)【出願番号】特願2015-59372(P2015-59372)
(22)【出願日】2015年3月23日
(65)【公開番号】特開2016-177751(P2016-177751A)
(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)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/36
(57)【特許請求の範囲】
【請求項1】
共有メモリ内の複数に区分された領域のうち、指定された領域に対して読み書きを行うメモリコントローラと通信する第1通信路と、
一以上の演算装置からの要求を調停して、該要求に基づいて前記メモリコントローラに対して前記共有メモリ内の領域を指定して読み書きの要求をする調停装置と通信する第2通信路と、
要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、
前記調停装置から前記メモリコントローラに対して出力された要求を監視して、該要求で指定された領域への書き込み処理が完了していない場合に、該領域を登録する登録手段と、
前記要求装置の要求が、前記登録手段により登録された領域に対するものでない場合に、前記第1通信路経由で前記メモリコントローラから前記データを取得し、該要求が該領域に対するものである場合に、前記第2通信路経由で前記調停装置から前記データを取得する取得手段と、
前記取得したデータを前記要求装置に転送する転送手段と、
を有し、
前記登録手段は、前記要求が読み出し処理のための要求であり、かつ、該要求で指定された領域が登録されていない場合に、該領域を登録し、該要求が書き込み処理のための要求である場合に、該要求で指定された領域への書き込み処理の回数を計数し、該回数が閾値に達した場合に、書き込み処理が完了したものとして、該領域を解放する
ことを特徴とする転送装置。
【請求項2】
求項1に記載の転送装置と、
前記転送装置と前記第1通信路経由で通信し、共有メモリ内の指定された領域に対して読み書きを行うメモリコントローラと、
装置間の要求を調停する装置であって、前記転送装置と前記第2通信路経由で通信し、一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の領域を指定して読み書きの要求をする調停装置と、
前記転送装置に対して前記共有メモリに格納されたデータの要求を送る要求装置と、
を有する転送システム。
【請求項3】
有メモリ内の複数に区分された領域のうち、指定された領域に対して読み書きを行うメモリコントローラと通信する第1通信路と、
一以上の演算装置からの要求を調停して、該要求に基づいて前記メモリコントローラに対して前記共有メモリ内の領域を指定して読み書きの要求をする調停装置と通信する第2通信路と、
を有するコンピュータを、
要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、
前記調停装置から前記メモリコントローラに対して出力された要求を監視して、該要求で指定された領域への書き込み処理が完了していない場合に、該領域を登録する登録手段と、
前記要求装置の要求が、前記登録手段により登録された領域に対するものでない場合に、前記第1通信路経由で前記メモリコントローラから前記データを取得し、該要求が該領域に対するものである場合に、前記第2通信路経由で前記調停装置から前記データを取得する取得手段と、
前記取得したデータを前記要求装置に転送する転送手段
として機能させるとともに、
前記登録手段が、前記要求が読み出し処理のための要求であり、かつ、該要求で指定された領域が登録されていない場合に、該領域を登録し、該要求が書き込み処理のための要求である場合に、該要求で指定された領域への書き込み処理の回数を計数し、該回数が閾値に達した場合に、書き込み処理が完了したものとして、該領域を解放するように、前記コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、転送装置、転送システムおよびプログラムに関する。
【背景技術】
【0002】
特許文献1には、キャッシュとメインメモリ間のデータ転送を監視して、アクセスされたメインメモリのアドレスを判定し、データ転送の経路を選択する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2008−140078号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、複数の装置に共有される記憶内容の一貫性の維持と、これらの装置の処理速度の向上とを両立させることを目的とする。
【課題を解決するための手段】
【0005】
本発明の請求項1に係る転送装置は、共有メモリ内の複数に区分された領域のうち、指定された領域に対して読み書きを行うメモリコントローラと通信する第1通信路と、一以上の演算装置からの要求を調停して、該要求に基づいて前記メモリコントローラに対して前記共有メモリ内の領域を指定して読み書きの要求をする調停装置と通信する第2通信路と、要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、前記調停装置から前記メモリコントローラに対して出力された要求を監視して、該要求で指定された領域への書き込み処理が完了していない場合に、該領域を登録する登録手段と、前記要求装置の要求が、前記登録手段により登録された領域に対するものでない場合に、前記第1通信路経由で前記メモリコントローラから前記データを取得し、該要求が該領域に対するものである場合に、前記第2通信路経由で前記調停装置から前記データを取得する取得手段と、前記取得したデータを前記要求装置に転送する転送手段と、を有し、前記登録手段は、前記要求が読み出し処理のための要求であり、かつ、該要求で指定された領域が登録されていない場合に、該領域を登録し、該要求が書き込み処理のための要求である場合に、該要求で指定された領域への書き込み処理の回数を計数し、該回数が閾値に達した場合に、書き込み処理が完了したものとして、該領域を解放することを特徴とする。
【0007】
本発明の請求項に係る転送システムは、上述の転送装置と、前記転送装置と前記第1通信路経由で通信し、共有メモリ内の指定された領域に対して読み書きを行うメモリコントローラと、装置間の要求を調停する装置であって、前記転送装置と前記第2通信路経由で通信し、一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の領域を指定して読み書きの要求をする調停装置と、前記転送装置に対して前記共有メモリに格納されたデータの要求を送る要求装置と、を有する。
【0008】
本発明の請求項に係るプログラムは、共有メモリ内の複数に区分された領域のうち、指定された領域に対して読み書きを行うメモリコントローラと通信する第1通信路と、一以上の演算装置からの要求を調停して、該要求に基づいて前記メモリコントローラに対して前記共有メモリ内の領域を指定して読み書きの要求をする調停装置と通信する第2通信路と、を有するコンピュータを、要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、前記調停装置から前記メモリコントローラに対して出力された要求を監視して、該要求で指定された領域への書き込み処理が完了していない場合に、該領域を登録する登録手段と、前記要求装置の要求が、前記登録手段により登録された領域に対するものでない場合に、前記第1通信路経由で前記メモリコントローラから前記データを取得し、該要求が該領域に対するものである場合に、前記第2通信路経由で前記調停装置から前記データを取得する取得手段と、前記取得したデータを前記要求装置に転送する転送手段として機能させるとともに、前記登録手段が、前記要求が読み出し処理のための要求であり、かつ、該要求で指定された領域が登録されていない場合に、該領域を登録し、該要求が書き込み処理のための要求である場合に、該要求で指定された領域への書き込み処理の回数を計数し、該回数が閾値に達した場合に、書き込み処理が完了したものとして、該領域を解放するように、前記コンピュータを機能させるためのプログラムである。
【発明の効果】
【0009】
請求項1−3に係る発明によれば、複数の装置に共有される記憶内容の一貫性の維持と、これらの装置の処理速度の向上とを両立させることができる。
また、請求項1−3に係る発明によれば、書き込み回数を計数しない場合に比べて、登録される領域の数が抑制される。
【図面の簡単な説明】
【0010】
図1】本実施形態に係る転送システムの全体構成を示す図。
図2】転送装置の機能的構成を示す図。
図3】管理表の例を示す図。
図4】共有メモリを説明するための図。
図5】転送システムの動作を示すシーケンス図。
図6】転送装置における登録処理の動作を示すフロー図。
図7】変形例における管理表の例を示す図。
図8】変形例における共有メモリを説明するための図。
図9】変形例における転送装置の登録処理の動作を示すフロー図。
【発明を実施するための形態】
【0011】
1.実施形態
1−1.転送システムの全体構成
図1は、本実施形態に係る転送システム9の全体構成を示す図である。図1に示すように、転送システム9は、転送装置1と、メモリコントローラ3と、調停バス5と、要求装置7とを有する。また、転送システム9は、共有メモリ2と、一以上の演算装置4と、内部バス6と、を有する。
【0012】
共有メモリ2は、転送システム9を構成する装置間で共有されるメモリであって、メモリコントローラ3によって読み書きが行われるメモリである。共有メモリ2の記憶容量は、例えば8ギガバイトである。共有メモリ2は、決められたデータ量ごとに複数のエリア(領域)に予め区分されている。
【0013】
メモリコントローラ3は、共有メモリ2内の指定されたエリアに対して読み書きを行う制御装置である。メモリコントローラ3は、転送装置1と第1通信路P1経由で通信する。また、メモリコントローラ3は、調停バス5から読み書きの要求を受ける。この要求は転送装置1により監視される。
【0014】
調停バス5は、キャッシュ・コヒーレント・インターコネクト(CCI)バスなどと呼ばれるものであり、演算装置4の要求を調停する装置(調停装置)として機能する。ここで「調停」とは、複数の要求を受けて、それらの要求に対して、対象となるデータの所在を特定したり、処理する順序を割当てて各要求の要求元をその要求の処理が実行されるまで待機させたりすることをいう。
【0015】
調停バス5は、転送装置1と第2通信路P2経由で通信し、一以上の演算装置4からの要求に基づいてメモリコントローラ3に対して共有メモリ2内のエリアを指定して読み書きの要求をする。調停バス5は、共有メモリ2内に記憶されているデータと、共有メモリ2から演算装置4のキャッシュメモリに読み出されたデータとの一貫性(コヒーレンシ)を維持するように動作する。
【0016】
調停バス5は、一以上の演算装置4からの要求に加えて転送装置1からの要求も受付けるため、これらの要求の処理を管理する待ち行列を記憶する一時記憶領域を有する。要求の発生量に要求の処理速度が追いつかなくなると待ち行列が渋滞し、要求した処理が実行されるまでに時間がかかる場合がある。
【0017】
演算装置4は、調停バス5を介してメモリコントローラ3に対して共有メモリ2内のエリアを指定して読み書きの要求をする装置である。図1に示す演算装置4は、2つであり、演算に用いる一時的な記憶領域としてそれぞれキャッシュメモリ41が備えられている。キャッシュメモリ41の記憶容量は、例えば1メガバイトである。
【0018】
要求装置7は、ダイレクト・メモリ・アクセス(DMA)などと呼ばれる装置であり、転送装置1に対して共有メモリ2に格納されたデータの読み出し要求を送る装置である。
転送装置1は、要求装置7からの要求の内容に応じてデータの要求先を決めてそのデータを取得し、取得したそのデータを要求装置7に転送する装置である。
内部バス6は、要求装置7と転送装置1との情報伝達を中継するバスである。
【0019】
1−2.転送装置の構成
転送装置1は、演算処理装置や、ROM(Read Only Memory)、RAM(Random Access Memory)などの記憶装置を必要に応じて備える。
【0020】
図2は、転送装置1の機能的構成を示す図である。転送装置1は、受付部11、登録部12、取得部13、転送部14、監視部15、および記憶部16として機能する。
【0021】
監視部15は、調停バス5からメモリコントローラ3へ伝えられた演算装置4の要求を監視する。
登録部12は、監視部15により監視された要求で指定されたエリアへの書き込み処理が完了しているか否かを調べ、完了していない場合に、このエリアを記憶部16の管理表161に登録する。
【0022】
記憶部16は、上述したROMやRAMなどの記憶装置を含み、管理表161を記憶する。
【0023】
図3は、管理表161の例を示す図である。管理表161は、監視部15によって監視された要求で指定されたエリアへの書き込み処理が完了していない場合に、その要求で指定されたエリアを登録する表である。図3(a)に示す通り、読み出しのための要求で指定された共有メモリ2内のエリアは、それぞれ固有の番号が付され、そのエリアの開始位置(SP)と書き込み回数(CT)とを含むレコードで記述される。書き込み回数とは、演算装置4が指定したエリアにデータを書き込んだ回数を示す。
【0024】
演算装置4は、キャッシュメモリ41から共有メモリ2へデータを書き出す要求をするとき、指定したエリアの開始位置から書き込み処理を開始し、次にそのエリアへの書き込み処理を再開するときには、そのエリアに対して前回、書き込み処理がされた位置に続けて書き込むように要求する。したがって、書き込み処理はエリア内の開始位置ではない途中から開始されることはなく、エリア内で書き込み処理が完了した部分が2箇所以上に分離、遍在することはない。ただし、或るエリアに対する書き込み処理の途中で、他のエリアに対する書き込み処理が割り込まれることはあってもよい。管理表161に記述されるレコードの上限はn個である。
【0025】
なお、エリアを示すレコードは、開始位置と書き込み回数との組合せで記述されるとは限らず、例えば、図3(b)に示す通り、開始位置(SP)と完了位置(EP)との組合せにより記述されてもよい。完了位置とは、監視部15によって要求が監視されたときまでに書き出されたデータ量の累計を開始位置に加算した値で示される。したがって、完了位置は、エリアへの書き込み処理の回数に応じた値の一例である。エリアに対する読み出し処理が行われた後、書き込み処理が行われていない場合、そのレコードの完了位置には、例えば開始位置と共通の位置が記入されるか、利用不可の値を示す「N/A」が記入される。
【0026】
また、図3に破線で示す通り、各レコードには、エリアに対応付けられた通信路の識別情報を記述するフィールドが設けられていてもよい。これは、レコードが示すエリアに対するデータの要求が要求装置7から送られたときに、いずれの通信路を経由してデータを取得すべきかを示すフィールドである。このフィールドには、レコードが示すエリアへの書き込み処理が完了した場合であれば第1通信路P1が、それ以外の場合であれば第2通信路P2が、それぞれ登録部12により記述される。
【0027】
例えば、転送装置1は、或るエリアに対する書き込み回数が決められた閾値に達すると、書き込み処理が完了したと判断して上記のフィールドに第1通信路P1を記述し、それ以外の場合には、書き込み処理が完了していないと判断して上記のフィールドに第2通信路P2を記述する。
【0028】
或るエリアに対する書き込み回数が決められた閾値に達してから、そのエリアを示すレコードが管理表161から削除されるまで、すなわち、そのエリアが管理表161において解放されるまでの期間に、要求装置7からの要求がない場合、または、その要求が待機させられる場合には、このフィールドはなくてもよい。
【0029】
図4は、共有メモリ2を説明するための図である。図4の一行目は共有メモリの全体を示している。上述した通り共有メモリ2は、決められたデータ量ごとに複数のエリアに区分されている。図4に示す共有メモリ2は、番号「1」から「m」までが割当てられたm個のエリアに区分されている。
【0030】
なお、管理表161のレコードの上限nは、共有メモリ2のエリアの数m以下である(m≧n)。調停バス5における割り込みの上限が定められている場合、管理表161のレコードの上限nは、その割り込みの上限に応じて定められていてもよい。
【0031】
図4の2行目は1つのエリアを示している。1つのエリアは決められた数の最小単位を含む。1つのエリアは、演算装置4のキャッシュメモリ41に相当する記憶容量を有するように構成されてもよい。
【0032】
図4に示すエリアは、「0」から「k−1」までの「k」個の最小単位を含む。図4に示すエリアのうち、斜線を付した部分は、書き込み処理が完了した範囲を示す。したがって、図4に示す番号「2」のエリアは、書き込み回数が3回であり、開始位置から3つ分の最小単位について書き込み処理が完了している。
【0033】
図4の3行目は1つの最小単位を示している。最小単位とは、メモリコントローラ3による一回の書き込み処理で、演算装置4のキャッシュメモリ41から共有メモリ2へ書き出されるデータであり、そのデータ量は例えば16バイトである。したがって、1つの最小単位内のデータは、全て書き込み処理が完了しているか、完了していないかのいずれかであり、1つの最小単位内で書き込み処理が完了しているデータと、完了していないデータとが共存するということはない。なお、共有メモリ2内のデータの位置は、バイト単位で記述される。
【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から要求されたデータを第1通信路P1経由でメモリコントローラ3から取得するように設定されている。
【0038】
いずれかの演算装置4から要求を受けた調停バス5は、その要求に基づいてメモリコントローラ3に対して共有メモリ2内のエリアを指定して読み書きの要求をする(ステップS001)。転送装置1は、ステップS001のこの要求を監視する(ステップ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からのメモリコントローラ3に対する読み出し処理または書き込み処理の要求を検出したか否か判断する(ステップS101)。これらの要求を検出していないと判断する場合(ステップS101;NO)、転送装置1は、この判断を続ける。
【0041】
一方、調停バス5からメモリコントローラ3への読み出し処理または書き込み処理の要求を検出したと判断する場合(ステップS101;YES)、転送装置1は、検出された要求で指定されたエリアを特定する(ステップS102)。そして、転送装置1は、この要求が読み出し処理のためのものであるか否かを判断し(ステップS103)、読み出し処理のためのものであると判断する場合には(ステップS103;YES)ステップS104へ、読み出し処理のためのものでない(すなわち、書き出し処理のためのものである)と判断する場合には(ステップS103;NO)ステップS106へ、それぞれ処理を進める。
【0042】
ステップS104において、転送装置1は、ステップS102で特定したエリアが管理表161に登録されていない、つまり、新規のエリア(新規エリアという)であるか否か判断する(ステップS104)。特定した上述のエリアが新規エリアであると判断する場合(ステップS104;YES)、転送装置1は、このエリアを管理表161に登録する。これにより、この新規エリアは、要求装置7に要求されたときに第2通信路P2経由で調停バス5からデータを取得すべきエリアとして設定される。
【0043】
一方、特定した上述のエリアが新規エリアでないと判断する場合(ステップS104;NO)、転送装置1は、ステップS105の登録を行わずに処理をステップS101に戻す。
【0044】
ステップS106において、転送装置1は、ステップS102で特定したエリアを管理表161から探し出し、このエリアが記述されたレコードの書き込み回数に「1」を加算する(ステップS106)。すなわち、転送装置1は、監視部15により書き込み処理の要求が監視されたときに、その要求で指定されたエリアへの書き込み処理の回数を計数する。
【0045】
そして、転送装置1は、「1」が加算された後の書き込み回数に基づいて書き込み処理が完了したか否かを判断する(ステップS107)。この判断は、例えば、書き込み回数が決められた閾値に達しているか否かによって行われる。この決められた閾値とは、例えば、エリアのデータ量を最小単位で除算した値などであり、つまり、1つのエリアを全て上書きするために必要な書き込み処理の回数である。なお、図3におけるこの閾値は、16進数で「0xFFFF」と、10進数で「65535」と表記される数値である。
【0046】
書き込み処理が完了したと判断する場合(ステップS107;YES)、転送装置1は、上述のエリアを解放して(ステップS108)、処理をステップS101に戻す。すなわち、転送装置1は、書き込み回数が決められた閾値に達した場合に、書き込み処理が完了したものとして、そのエリアを解放する。
【0047】
一方、書き込み処理が完了していないと判断する場合(ステップS107;NO)、転送装置1は、そのまま処理をステップS101に戻す。
【0048】
以上、説明した動作により、転送装置1は、演算装置4が読み出し処理のための要求で指定したエリアを記憶部16の管理表161に登録し、そのエリアに対する書き込み処理の回数に基づいて、書き込み処理が完了したか否かを判断して、書き込み処理が完了している場合に、登録されたそのエリアを解放する。
【0049】
そして、転送装置1は、管理表161に登録されているエリアに対して、要求装置7からデータの要求があった場合、要求されたそのデータを第2通信路P2経由で調停バス5から取得し、それ以外のエリアに対して要求があった場合、要求されたそのデータを第1通信路P1経由でメモリコントローラ3から取得して、それぞれ要求装置7に転送する。
【0050】
管理表161に登録されているエリアは、演算装置4が読み出し処理の要求をしたエリアであって、書き込み処理が完了していないエリアであるから、そのエリアに書き出されるべき最新のデータは未だ演算装置4のキャッシュメモリ41上にある可能性が高い。
【0051】
したがって、転送装置1は、要求装置7が要求するデータが演算装置4のキャッシュメモリ41にある可能性が高い場合に、調停バス5からデータを取得して転送するため、共有メモリ2の一貫性が維持される。また、要求装置7が要求するデータが演算装置4のキャッシュメモリ41にある可能性がない場合にはメモリコントローラ3からデータを取得して転送するため、調停バス5からデータを取得する場合に比べて、データの転送速度が向上する。
【0052】
2.変形例
以上が実施形態の説明であるが、この実施形態の内容は以下のように変形し得る。また、以下の変形例を組合せてもよい。
【0053】
2−1.変形例1
上述した実施形態において、転送装置1は、管理表161においてエリアに対応付けられた書き込み回数を、書き込み処理が検知される度にインクリメントし、この書き込み回数が決められた閾値に達しているか否かで、このエリアに対する書き込み処理が完了しているか否かを判定していたが、転送装置1は、書き込み回数を計数しなくてもよい。
【0054】
図7は、この変形例における管理表161の例を示す図である。また、図8は、この変形例における共有メモリ2を説明するための図である。この変形例において、共有メモリ2は、決められたデータ量ごとに複数のエリアに区分されており、そのデータ量は、最小単位のデータ量である。したがって、各エリアは最小単位で構成される。
【0055】
この場合、図7で示したとおり管理表161には、読み出し処理のための要求が検出された各エリアについて、図3で示した書き込み回数を対応付けて記憶する必要がない。一回の書き込み処理により書き込まれるデータ量は最小単位のデータ量であるから、最小単位で構成されたエリアに対する書き込み処理には、その処理の「途中」が存在しないためである。したがって、読み出し処理のための要求が検出されたときに、その要求で指定されたエリアが管理表161に登録され、書き込み処理のための要求が検出されたときに、その要求で指定されたエリアが管理表161から解放される。
【0056】
図9は、この変形例における転送装置1の登録処理の動作を示すフロー図である。この変形例において、転送装置1は、図5図6にステップS100で示した登録処理に代えて、図9にステップS110で示した登録処理を実行する。
【0057】
転送装置1は、調停バス5からメモリコントローラ3に対して出力された要求を監視して、演算装置4からのメモリコントローラ3に対する読み出し処理または書き込み処理の要求を検出したか否か判断する(ステップS111)。これらの要求を検出していないと判断する場合(ステップS111;NO)、転送装置1は、この判断を続ける。
【0058】
一方、調停バス5からメモリコントローラ3への読み出し処理または書き込み処理の要求を検出したと判断する場合(ステップS111;YES)、転送装置1は、検出された要求で指定されたエリアを特定する(ステップS112)。そして、転送装置1は、この要求が読み出し処理のためのものであるか否かを判断し(ステップS113)、読み出し処理のためのものであると判断する場合には(ステップS113;YES)ステップS114へ、読み出し処理のためのものでないと判断する場合には(ステップS113;NO)ステップS118へ、それぞれ処理を進める。
【0059】
ステップS114において、転送装置1は、ステップS112で特定したエリアが新規エリアであるか否か判断する(ステップS114)。特定した上述のエリアが新規エリアであると判断する場合(ステップS114;YES)、転送装置1は、このエリアを管理表161に登録する。一方、特定した上述のエリアが新規エリアでないと判断する場合(ステップS114;NO)、転送装置1は、ステップS115の登録を行わずに処理をステップS111に戻す。
【0060】
ステップS118において、転送装置1は、ステップS112で特定したエリアが書き込み処理のための要求で指定されたものであり、その書き込み処理が実行されることによって、書き込み処理が完了したとして、このエリアを解放し(ステップS118)、処理をステップS111に戻す。
【0061】
この変形例においても、転送装置1は、要求装置7が要求するデータが演算装置4のキャッシュメモリ41にある可能性が高い場合に、調停バス5からデータを取得して転送するため、共有メモリ2の一貫性が維持される。また、要求装置7が要求するデータが演算装置4のキャッシュメモリ41にある可能性がない場合にはメモリコントローラ3からデータを取得して転送するため、調停バス5からデータを取得する場合に比べて、データの転送速度が向上する。
【0062】
なお、この変形例では、エリアが最小単位で構成されるため、書き込み回数や完了位置などをエリアごとに記憶する必要がない代わりに、管理表161に登録されるレコードの数が、実施形態で示した場合に比べて多くなる。調停バス5によって読み出されてから書き込まれるまでの期間に、並行してアクセスされる共有メモリ2のエリアの数が多くなると、管理表161を記憶する記憶容量を大きくする必要がある。
【0063】
一方、実施形態で示した通り、共有メモリ2を構成する複数のエリアが、それぞれ複数の最小単位から構成されていると、この変形例に示した場合に比べて管理表161に登録されるレコードの数が抑制される。
【0064】
2−2.変形例2
転送装置1を制御するためのプログラムは、磁気テープや磁気ディスクなどの磁気記録媒体、光ディスクなどの光記録媒体、光磁気記録媒体、半導体メモリなどの、コンピュータ装置が読み取り可能な記録媒体に記憶された状態で提供し得る。また、これらのプログラムを、インターネットなどを経由してダウンロードさせることも可能である。なお、上記の転送装置1の演算処理装置としては種々の装置が適用される場合があり、例えば、専用のプロセッサなどが用いられる。
【符号の説明】
【0065】
1…転送装置、11…受付部、12…登録部、13…取得部、14…転送部、15…監視部、16…記憶部、161…管理表、2…共有メモリ、3…メモリコントローラ、4…演算装置、41…キャッシュメモリ、5…調停バス、6…内部バス、7…要求装置、9…転送システム、P1…第1通信路、P2…第2通信路。
図1
図2
図3
図4
図5
図6
図7
図8
図9