(57)【特許請求の範囲】
【請求項１】
共有メモリ内の複数に区分された領域のうち、指定された領域に対して読み書きを行うメモリコントローラと通信する第１通信路と、
一以上の演算装置からの要求を調停して、該要求に基づいて前記メモリコントローラに対して前記共有メモリ内の領域を指定して読み書きの要求をする調停装置と通信する第２通信路と、
要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、
前記調停装置から前記メモリコントローラに対して出力された要求を監視して、該要求で指定された領域への書き込み処理が完了していない場合に、該領域を登録する登録手段と、
前記要求装置の要求が、前記登録手段により登録された領域に対するものでない場合に、前記第１通信路経由で前記メモリコントローラから前記データを取得し、該要求が該領域に対するものである場合に、前記第２通信路経由で前記調停装置から前記データを取得する取得手段と、
前記取得したデータを前記要求装置に転送する転送手段と、
を有し、
前記登録手段は、前記要求が読み出し処理のための要求であり、かつ、該要求で指定された領域が登録されていない場合に、該領域を登録し、該要求が書き込み処理のための要求である場合に、該要求で指定された領域への書き込み処理の回数を計数し、該回数が閾値に達した場合に、書き込み処理が完了したものとして、該領域を解放する
ことを特徴とする転送装置。
【請求項２】
請求項１に記載の転送装置と、
前記転送装置と前記第１通信路経由で通信し、共有メモリ内の指定された領域に対して読み書きを行うメモリコントローラと、
装置間の要求を調停する装置であって、前記転送装置と前記第２通信路経由で通信し、一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の領域を指定して読み書きの要求をする調停装置と、
前記転送装置に対して前記共有メモリに格納されたデータの要求を送る要求装置と、
を有する転送システム。
【請求項３】
共有メモリ内の複数に区分された領域のうち、指定された領域に対して読み書きを行うメモリコントローラと通信する第１通信路と、
一以上の演算装置からの要求を調停して、該要求に基づいて前記メモリコントローラに対して前記共有メモリ内の領域を指定して読み書きの要求をする調停装置と通信する第２通信路と、
を有するコンピュータを、
要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、
前記調停装置から前記メモリコントローラに対して出力された要求を監視して、該要求で指定された領域への書き込み処理が完了していない場合に、該領域を登録する登録手段と、
前記要求装置の要求が、前記登録手段により登録された領域に対するものでない場合に、前記第１通信路経由で前記メモリコントローラから前記データを取得し、該要求が該領域に対するものである場合に、前記第２通信路経由で前記調停装置から前記データを取得する取得手段と、
前記取得したデータを前記要求装置に転送する転送手段
として機能させるとともに、
前記登録手段が、前記要求が読み出し処理のための要求であり、かつ、該要求で指定された領域が登録されていない場合に、該領域を登録し、該要求が書き込み処理のための要求である場合に、該要求で指定された領域への書き込み処理の回数を計数し、該回数が閾値に達した場合に、書き込み処理が完了したものとして、該領域を解放するように、前記コンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、転送装置、転送システムおよびプログラムに関する。
【背景技術】
【０００２】
特許文献１には、キャッシュとメインメモリ間のデータ転送を監視して、アクセスされたメインメモリのアドレスを判定し、データ転送の経路を選択する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１４００７８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、複数の装置に共有される記憶内容の一貫性の維持と、これらの装置の処理速度の向上とを両立させることを目的とする。
【課題を解決するための手段】
【０００５】
本発明の請求項１に係る転送装置は、共有メモリ内の複数に区分された領域のうち、指定された領域に対して読み書きを行うメモリコントローラと通信する第１通信路と、一以上の演算装置からの要求を調停して、該要求に基づいて前記メモリコントローラに対して前記共有メモリ内の領域を指定して読み書きの要求をする調停装置と通信する第２通信路と、要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、前記調停装置から前記メモリコントローラに対して出力された要求を監視して、該要求で指定された領域への書き込み処理が完了していない場合に、該領域を登録する登録手段と、前記要求装置の要求が、前記登録手段により登録された領域に対するものでない場合に、前記第１通信路経由で前記メモリコントローラから前記データを取得し、該要求が該領域に対するものである場合に、前記第２通信路経由で前記調停装置から前記データを取得する取得手段と、前記取得したデータを前記要求装置に転送する転送手段と、を有し、前記登録手段は、前記要求が読み出し処理のための要求であり、かつ、該要求で指定された領域が登録されていない場合に、該領域を登録し、該要求が書き込み処理のための要求である場合に、該要求で指定された領域への書き込み処理の回数を計数し、該回数が閾値に達した場合に、書き込み処理が完了したものとして、該領域を解放することを特徴とする。
【０００７】
本発明の請求項２に係る転送システムは、上述の転送装置と、前記転送装置と前記第１通信路経由で通信し、共有メモリ内の指定された領域に対して読み書きを行うメモリコントローラと、装置間の要求を調停する装置であって、前記転送装置と前記第２通信路経由で通信し、一以上の演算装置からの要求に基づいて前記メモリコントローラに対して前記共有メモリ内の領域を指定して読み書きの要求をする調停装置と、前記転送装置に対して前記共有メモリに格納されたデータの要求を送る要求装置と、を有する。
【０００８】
本発明の請求項３に係るプログラムは、共有メモリ内の複数に区分された領域のうち、指定された領域に対して読み書きを行うメモリコントローラと通信する第１通信路と、一以上の演算装置からの要求を調停して、該要求に基づいて前記メモリコントローラに対して前記共有メモリ内の領域を指定して読み書きの要求をする調停装置と通信する第２通信路と、を有するコンピュータを、要求装置から前記共有メモリに格納されたデータの要求を受付ける受付手段と、前記調停装置から前記メモリコントローラに対して出力された要求を監視して、該要求で指定された領域への書き込み処理が完了していない場合に、該領域を登録する登録手段と、前記要求装置の要求が、前記登録手段により登録された領域に対するものでない場合に、前記第１通信路経由で前記メモリコントローラから前記データを取得し、該要求が該領域に対するものである場合に、前記第２通信路経由で前記調停装置から前記データを取得する取得手段と、前記取得したデータを前記要求装置に転送する転送手段として機能させるとともに、前記登録手段が、前記要求が読み出し処理のための要求であり、かつ、該要求で指定された領域が登録されていない場合に、該領域を登録し、該要求が書き込み処理のための要求である場合に、該要求で指定された領域への書き込み処理の回数を計数し、該回数が閾値に達した場合に、書き込み処理が完了したものとして、該領域を解放するように、前記コンピュータを機能させるためのプログラムである。
【発明の効果】
【０００９】
請求項１−３に係る発明によれば、複数の装置に共有される記憶内容の一貫性の維持と、これらの装置の処理速度の向上とを両立させることができる。
また、請求項１−３に係る発明によれば、書き込み回数を計数しない場合に比べて、登録される領域の数が抑制される。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係る転送システムの全体構成を示す図。
【図２】転送装置の機能的構成を示す図。
【図３】管理表の例を示す図。
【図４】共有メモリを説明するための図。
【図５】転送システムの動作を示すシーケンス図。
【図６】転送装置における登録処理の動作を示すフロー図。
【図７】変形例における管理表の例を示す図。
【図８】変形例における共有メモリを説明するための図。
【図９】変形例における転送装置の登録処理の動作を示すフロー図。
【発明を実施するための形態】
【００１１】
１．実施形態
１−１．転送システムの全体構成
図１は、本実施形態に係る転送システム９の全体構成を示す図である。図１に示すように、転送システム９は、転送装置１と、メモリコントローラ３と、調停バス５と、要求装置７とを有する。また、転送システム９は、共有メモリ２と、一以上の演算装置４と、内部バス６と、を有する。
【００１２】
共有メモリ２は、転送システム９を構成する装置間で共有されるメモリであって、メモリコントローラ３によって読み書きが行われるメモリである。共有メモリ２の記憶容量は、例えば８ギガバイトである。共有メモリ２は、決められたデータ量ごとに複数のエリア（領域）に予め区分されている。
【００１３】
メモリコントローラ３は、共有メモリ２内の指定されたエリアに対して読み書きを行う制御装置である。メモリコントローラ３は、転送装置１と第１通信路Ｐ１経由で通信する。また、メモリコントローラ３は、調停バス５から読み書きの要求を受ける。この要求は転送装置１により監視される。
【００１４】
調停バス５は、キャッシュ・コヒーレント・インターコネクト（ＣＣＩ）バスなどと呼ばれるものであり、演算装置４の要求を調停する装置（調停装置）として機能する。ここで「調停」とは、複数の要求を受けて、それらの要求に対して、対象となるデータの所在を特定したり、処理する順序を割当てて各要求の要求元をその要求の処理が実行されるまで待機させたりすることをいう。
【００１５】
調停バス５は、転送装置１と第２通信路Ｐ２経由で通信し、一以上の演算装置４からの要求に基づいてメモリコントローラ３に対して共有メモリ２内のエリアを指定して読み書きの要求をする。調停バス５は、共有メモリ２内に記憶されているデータと、共有メモリ２から演算装置４のキャッシュメモリに読み出されたデータとの一貫性（コヒーレンシ）を維持するように動作する。
【００１６】
調停バス５は、一以上の演算装置４からの要求に加えて転送装置１からの要求も受付けるため、これらの要求の処理を管理する待ち行列を記憶する一時記憶領域を有する。要求の発生量に要求の処理速度が追いつかなくなると待ち行列が渋滞し、要求した処理が実行されるまでに時間がかかる場合がある。
【００１７】
演算装置４は、調停バス５を介してメモリコントローラ３に対して共有メモリ２内のエリアを指定して読み書きの要求をする装置である。図１に示す演算装置４は、２つであり、演算に用いる一時的な記憶領域としてそれぞれキャッシュメモリ４１が備えられている。キャッシュメモリ４１の記憶容量は、例えば１メガバイトである。
【００１８】
要求装置７は、ダイレクト・メモリ・アクセス（ＤＭＡ）などと呼ばれる装置であり、転送装置１に対して共有メモリ２に格納されたデータの読み出し要求を送る装置である。
転送装置１は、要求装置７からの要求の内容に応じてデータの要求先を決めてそのデータを取得し、取得したそのデータを要求装置７に転送する装置である。
内部バス６は、要求装置７と転送装置１との情報伝達を中継するバスである。
【００１９】
１−２．転送装置の構成
転送装置１は、演算処理装置や、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）などの記憶装置を必要に応じて備える。
【００２０】
図２は、転送装置１の機能的構成を示す図である。転送装置１は、受付部１１、登録部１２、取得部１３、転送部１４、監視部１５、および記憶部１６として機能する。
【００２１】
監視部１５は、調停バス５からメモリコントローラ３へ伝えられた演算装置４の要求を監視する。
登録部１２は、監視部１５により監視された要求で指定されたエリアへの書き込み処理が完了しているか否かを調べ、完了していない場合に、このエリアを記憶部１６の管理表１６１に登録する。
【００２２】
記憶部１６は、上述したＲＯＭやＲＡＭなどの記憶装置を含み、管理表１６１を記憶する。
【００２３】
図３は、管理表１６１の例を示す図である。管理表１６１は、監視部１５によって監視された要求で指定されたエリアへの書き込み処理が完了していない場合に、その要求で指定されたエリアを登録する表である。図３（ａ）に示す通り、読み出しのための要求で指定された共有メモリ２内のエリアは、それぞれ固有の番号が付され、そのエリアの開始位置（ＳＰ）と書き込み回数（ＣＴ）とを含むレコードで記述される。書き込み回数とは、演算装置４が指定したエリアにデータを書き込んだ回数を示す。
【００２４】
演算装置４は、キャッシュメモリ４１から共有メモリ２へデータを書き出す要求をするとき、指定したエリアの開始位置から書き込み処理を開始し、次にそのエリアへの書き込み処理を再開するときには、そのエリアに対して前回、書き込み処理がされた位置に続けて書き込むように要求する。したがって、書き込み処理はエリア内の開始位置ではない途中から開始されることはなく、エリア内で書き込み処理が完了した部分が２箇所以上に分離、遍在することはない。ただし、或るエリアに対する書き込み処理の途中で、他のエリアに対する書き込み処理が割り込まれることはあってもよい。管理表１６１に記述されるレコードの上限はｎ個である。
【００２５】
なお、エリアを示すレコードは、開始位置と書き込み回数との組合せで記述されるとは限らず、例えば、図３（ｂ）に示す通り、開始位置（ＳＰ）と完了位置（ＥＰ）との組合せにより記述されてもよい。完了位置とは、監視部１５によって要求が監視されたときまでに書き出されたデータ量の累計を開始位置に加算した値で示される。したがって、完了位置は、エリアへの書き込み処理の回数に応じた値の一例である。エリアに対する読み出し処理が行われた後、書き込み処理が行われていない場合、そのレコードの完了位置には、例えば開始位置と共通の位置が記入されるか、利用不可の値を示す「Ｎ／Ａ」が記入される。
【００２６】
また、図３に破線で示す通り、各レコードには、エリアに対応付けられた通信路の識別情報を記述するフィールドが設けられていてもよい。これは、レコードが示すエリアに対するデータの要求が要求装置７から送られたときに、いずれの通信路を経由してデータを取得すべきかを示すフィールドである。このフィールドには、レコードが示すエリアへの書き込み処理が完了した場合であれば第１通信路Ｐ１が、それ以外の場合であれば第２通信路Ｐ２が、それぞれ登録部１２により記述される。
【００２７】
例えば、転送装置１は、或るエリアに対する書き込み回数が決められた閾値に達すると、書き込み処理が完了したと判断して上記のフィールドに第１通信路Ｐ１を記述し、それ以外の場合には、書き込み処理が完了していないと判断して上記のフィールドに第２通信路Ｐ２を記述する。
【００２８】
或るエリアに対する書き込み回数が決められた閾値に達してから、そのエリアを示すレコードが管理表１６１から削除されるまで、すなわち、そのエリアが管理表１６１において解放されるまでの期間に、要求装置７からの要求がない場合、または、その要求が待機させられる場合には、このフィールドはなくてもよい。
【００２９】
図４は、共有メモリ２を説明するための図である。図４の一行目は共有メモリの全体を示している。上述した通り共有メモリ２は、決められたデータ量ごとに複数のエリアに区分されている。図４に示す共有メモリ２は、番号「１」から「ｍ」までが割当てられたｍ個のエリアに区分されている。
【００３０】
なお、管理表１６１のレコードの上限ｎは、共有メモリ２のエリアの数ｍ以下である（ｍ≧ｎ）。調停バス５における割り込みの上限が定められている場合、管理表１６１のレコードの上限ｎは、その割り込みの上限に応じて定められていてもよい。
【００３１】
図４の２行目は１つのエリアを示している。１つのエリアは決められた数の最小単位を含む。１つのエリアは、演算装置４のキャッシュメモリ４１に相当する記憶容量を有するように構成されてもよい。
【００３２】
図４に示すエリアは、「０」から「ｋ−１」までの「ｋ」個の最小単位を含む。図４に示すエリアのうち、斜線を付した部分は、書き込み処理が完了した範囲を示す。したがって、図４に示す番号「２」のエリアは、書き込み回数が３回であり、開始位置から３つ分の最小単位について書き込み処理が完了している。
【００３３】
図４の３行目は１つの最小単位を示している。最小単位とは、メモリコントローラ３による一回の書き込み処理で、演算装置４のキャッシュメモリ４１から共有メモリ２へ書き出されるデータであり、そのデータ量は例えば１６バイトである。したがって、１つの最小単位内のデータは、全て書き込み処理が完了しているか、完了していないかのいずれかであり、１つの最小単位内で書き込み処理が完了しているデータと、完了していないデータとが共存するということはない。なお、共有メモリ２内のデータの位置は、バイト単位で記述される。
【００３４】
受付部１１は、内部バス６を介して要求装置７から共有メモリ２に格納されたデータの要求を受付ける。受付部１１は、このデータの要求を受付けると、その要求を取得部１３に渡す。
【００３５】
取得部１３は、受付部１１が受付けた要求と、管理表１６１の登録内容とに基づいて、要求装置からの要求が登録されたエリアに対するものであるか否かを判断する。そして、取得部１３は、その判断結果に応じて調停バス５およびメモリコントローラ３のいずれか一方をデータの要求先として選択し、選択したその要求先からデータを取得する。
【００３６】
取得部１３は、判断の結果、要求装置７からの要求が管理表１６１に登録されたエリアに対するものでないと判断する場合に、第１通信路Ｐ１経由でメモリコントローラ３からデータを取得する。一方、取得部１３は、要求装置７からの要求が管理表１６１に登録されたエリアに対するものであると判断する場合に、第２通信路Ｐ２経由で調停バス５からデータを取得する。
転送部１４は、取得部１３が取得したデータを、内部バス６経由で要求装置７に転送する。
【００３７】
１−３．転送システムの動作
図５は、転送システム９の動作を示すシーケンス図である。転送装置１は、電源が供給された直後の初期状態において、要求装置７から要求されたデータを第１通信路Ｐ１経由でメモリコントローラ３から取得するように設定されている。
【００３８】
いずれかの演算装置４から要求を受けた調停バス５は、その要求に基づいてメモリコントローラ３に対して共有メモリ２内のエリアを指定して読み書きの要求をする（ステップＳ００１）。転送装置１は、ステップＳ００１のこの要求を監視する（ステップＳ００２）。そして、転送装置１は、この要求で指定されたエリアへの書き込み処理が完了していない場合に、このエリアを登録する（ステップＳ１００）。この登録処理については後述する。
【００３９】
次に、要求装置７が転送装置１に対して、共有メモリ２内のいずれかのエリアを指定してデータの読み出しを要求すると（ステップＳ０１１）、この要求を受付けた転送装置１は、この要求の内容と、ステップＳ１００で登録した内容とに応じて、データの要求先を選択し（ステップＳ０１２）、メモリコントローラ３または調停バス５のいずれかから（図５に実線で示す例ではメモリコントローラ３から）、要求装置７が要求したエリアのデータを取得する（ステップＳ０１３）。そして、転送装置１は、取得したデータを要求装置７に転送する（ステップＳ０１４）。
【００４０】
１−４．転送装置の動作
（１）登録処理の動作
図６は、転送装置１の登録処理の動作を示すフロー図である。転送装置１は、調停バス５からメモリコントローラ３に対して出力された要求を監視して、演算装置４からのメモリコントローラ３に対する読み出し処理または書き込み処理の要求を検出したか否か判断する（ステップＳ１０１）。これらの要求を検出していないと判断する場合（ステップＳ１０１；ＮＯ）、転送装置１は、この判断を続ける。
【００４１】
一方、調停バス５からメモリコントローラ３への読み出し処理または書き込み処理の要求を検出したと判断する場合（ステップＳ１０１；ＹＥＳ）、転送装置１は、検出された要求で指定されたエリアを特定する（ステップＳ１０２）。そして、転送装置１は、この要求が読み出し処理のためのものであるか否かを判断し（ステップＳ１０３）、読み出し処理のためのものであると判断する場合には（ステップＳ１０３；ＹＥＳ）ステップＳ１０４へ、読み出し処理のためのものでない（すなわち、書き出し処理のためのものである）と判断する場合には（ステップＳ１０３；ＮＯ）ステップＳ１０６へ、それぞれ処理を進める。
【００４２】
ステップＳ１０４において、転送装置１は、ステップＳ１０２で特定したエリアが管理表１６１に登録されていない、つまり、新規のエリア（新規エリアという）であるか否か判断する（ステップＳ１０４）。特定した上述のエリアが新規エリアであると判断する場合（ステップＳ１０４；ＹＥＳ）、転送装置１は、このエリアを管理表１６１に登録する。これにより、この新規エリアは、要求装置７に要求されたときに第２通信路Ｐ２経由で調停バス５からデータを取得すべきエリアとして設定される。
【００４３】
一方、特定した上述のエリアが新規エリアでないと判断する場合（ステップＳ１０４；ＮＯ）、転送装置１は、ステップＳ１０５の登録を行わずに処理をステップＳ１０１に戻す。
【００４４】
ステップＳ１０６において、転送装置１は、ステップＳ１０２で特定したエリアを管理表１６１から探し出し、このエリアが記述されたレコードの書き込み回数に「１」を加算する（ステップＳ１０６）。すなわち、転送装置１は、監視部１５により書き込み処理の要求が監視されたときに、その要求で指定されたエリアへの書き込み処理の回数を計数する。
【００４５】
そして、転送装置１は、「１」が加算された後の書き込み回数に基づいて書き込み処理が完了したか否かを判断する（ステップＳ１０７）。この判断は、例えば、書き込み回数が決められた閾値に達しているか否かによって行われる。この決められた閾値とは、例えば、エリアのデータ量を最小単位で除算した値などであり、つまり、１つのエリアを全て上書きするために必要な書き込み処理の回数である。なお、図３におけるこの閾値は、１６進数で「０ｘＦＦＦＦ」と、１０進数で「６５５３５」と表記される数値である。
【００４６】
書き込み処理が完了したと判断する場合（ステップＳ１０７；ＹＥＳ）、転送装置１は、上述のエリアを解放して（ステップＳ１０８）、処理をステップＳ１０１に戻す。すなわち、転送装置１は、書き込み回数が決められた閾値に達した場合に、書き込み処理が完了したものとして、そのエリアを解放する。
【００４７】
一方、書き込み処理が完了していないと判断する場合（ステップＳ１０７；ＮＯ）、転送装置１は、そのまま処理をステップＳ１０１に戻す。
【００４８】
以上、説明した動作により、転送装置１は、演算装置４が読み出し処理のための要求で指定したエリアを記憶部１６の管理表１６１に登録し、そのエリアに対する書き込み処理の回数に基づいて、書き込み処理が完了したか否かを判断して、書き込み処理が完了している場合に、登録されたそのエリアを解放する。
【００４９】
そして、転送装置１は、管理表１６１に登録されているエリアに対して、要求装置７からデータの要求があった場合、要求されたそのデータを第２通信路Ｐ２経由で調停バス５から取得し、それ以外のエリアに対して要求があった場合、要求されたそのデータを第１通信路Ｐ１経由でメモリコントローラ３から取得して、それぞれ要求装置７に転送する。
【００５０】
管理表１６１に登録されているエリアは、演算装置４が読み出し処理の要求をしたエリアであって、書き込み処理が完了していないエリアであるから、そのエリアに書き出されるべき最新のデータは未だ演算装置４のキャッシュメモリ４１上にある可能性が高い。
【００５１】
したがって、転送装置１は、要求装置７が要求するデータが演算装置４のキャッシュメモリ４１にある可能性が高い場合に、調停バス５からデータを取得して転送するため、共有メモリ２の一貫性が維持される。また、要求装置７が要求するデータが演算装置４のキャッシュメモリ４１にある可能性がない場合にはメモリコントローラ３からデータを取得して転送するため、調停バス５からデータを取得する場合に比べて、データの転送速度が向上する。
【００５２】
２．変形例
以上が実施形態の説明であるが、この実施形態の内容は以下のように変形し得る。また、以下の変形例を組合せてもよい。
【００５３】
２−１．変形例１
上述した実施形態において、転送装置１は、管理表１６１においてエリアに対応付けられた書き込み回数を、書き込み処理が検知される度にインクリメントし、この書き込み回数が決められた閾値に達しているか否かで、このエリアに対する書き込み処理が完了しているか否かを判定していたが、転送装置１は、書き込み回数を計数しなくてもよい。
【００５４】
図７は、この変形例における管理表１６１の例を示す図である。また、図８は、この変形例における共有メモリ２を説明するための図である。この変形例において、共有メモリ２は、決められたデータ量ごとに複数のエリアに区分されており、そのデータ量は、最小単位のデータ量である。したがって、各エリアは最小単位で構成される。
【００５５】
この場合、図７で示したとおり管理表１６１には、読み出し処理のための要求が検出された各エリアについて、図３で示した書き込み回数を対応付けて記憶する必要がない。一回の書き込み処理により書き込まれるデータ量は最小単位のデータ量であるから、最小単位で構成されたエリアに対する書き込み処理には、その処理の「途中」が存在しないためである。したがって、読み出し処理のための要求が検出されたときに、その要求で指定されたエリアが管理表１６１に登録され、書き込み処理のための要求が検出されたときに、その要求で指定されたエリアが管理表１６１から解放される。
【００５６】
図９は、この変形例における転送装置１の登録処理の動作を示すフロー図である。この変形例において、転送装置１は、図５、図６にステップＳ１００で示した登録処理に代えて、図９にステップＳ１１０で示した登録処理を実行する。
【００５７】
転送装置１は、調停バス５からメモリコントローラ３に対して出力された要求を監視して、演算装置４からのメモリコントローラ３に対する読み出し処理または書き込み処理の要求を検出したか否か判断する（ステップＳ１１１）。これらの要求を検出していないと判断する場合（ステップＳ１１１；ＮＯ）、転送装置１は、この判断を続ける。
【００５８】
一方、調停バス５からメモリコントローラ３への読み出し処理または書き込み処理の要求を検出したと判断する場合（ステップＳ１１１；ＹＥＳ）、転送装置１は、検出された要求で指定されたエリアを特定する（ステップＳ１１２）。そして、転送装置１は、この要求が読み出し処理のためのものであるか否かを判断し（ステップＳ１１３）、読み出し処理のためのものであると判断する場合には（ステップＳ１１３；ＹＥＳ）ステップＳ１１４へ、読み出し処理のためのものでないと判断する場合には（ステップＳ１１３；ＮＯ）ステップＳ１１８へ、それぞれ処理を進める。
【００５９】
ステップＳ１１４において、転送装置１は、ステップＳ１１２で特定したエリアが新規エリアであるか否か判断する（ステップＳ１１４）。特定した上述のエリアが新規エリアであると判断する場合（ステップＳ１１４；ＹＥＳ）、転送装置１は、このエリアを管理表１６１に登録する。一方、特定した上述のエリアが新規エリアでないと判断する場合（ステップＳ１１４；ＮＯ）、転送装置１は、ステップＳ１１５の登録を行わずに処理をステップＳ１１１に戻す。
【００６０】
ステップＳ１１８において、転送装置１は、ステップＳ１１２で特定したエリアが書き込み処理のための要求で指定されたものであり、その書き込み処理が実行されることによって、書き込み処理が完了したとして、このエリアを解放し（ステップＳ１１８）、処理をステップＳ１１１に戻す。
【００６１】
この変形例においても、転送装置１は、要求装置７が要求するデータが演算装置４のキャッシュメモリ４１にある可能性が高い場合に、調停バス５からデータを取得して転送するため、共有メモリ２の一貫性が維持される。また、要求装置７が要求するデータが演算装置４のキャッシュメモリ４１にある可能性がない場合にはメモリコントローラ３からデータを取得して転送するため、調停バス５からデータを取得する場合に比べて、データの転送速度が向上する。
【００６２】
なお、この変形例では、エリアが最小単位で構成されるため、書き込み回数や完了位置などをエリアごとに記憶する必要がない代わりに、管理表１６１に登録されるレコードの数が、実施形態で示した場合に比べて多くなる。調停バス５によって読み出されてから書き込まれるまでの期間に、並行してアクセスされる共有メモリ２のエリアの数が多くなると、管理表１６１を記憶する記憶容量を大きくする必要がある。
【００６３】
一方、実施形態で示した通り、共有メモリ２を構成する複数のエリアが、それぞれ複数の最小単位から構成されていると、この変形例に示した場合に比べて管理表１６１に登録されるレコードの数が抑制される。
【００６４】
２−２．変形例２
転送装置１を制御するためのプログラムは、磁気テープや磁気ディスクなどの磁気記録媒体、光ディスクなどの光記録媒体、光磁気記録媒体、半導体メモリなどの、コンピュータ装置が読み取り可能な記録媒体に記憶された状態で提供し得る。また、これらのプログラムを、インターネットなどを経由してダウンロードさせることも可能である。なお、上記の転送装置１の演算処理装置としては種々の装置が適用される場合があり、例えば、専用のプロセッサなどが用いられる。
【符号の説明】
【００６５】
１…転送装置、１１…受付部、１２…登録部、１３…取得部、１４…転送部、１５…監視部、１６…記憶部、１６１…管理表、２…共有メモリ、３…メモリコントローラ、４…演算装置、４１…キャッシュメモリ、５…調停バス、６…内部バス、７…要求装置、９…転送システム、Ｐ１…第１通信路、Ｐ２…第２通信路。
【図１】
0006558008.tif 000002
【図２】
0006558008.tif 000003
【図３】
0006558008.tif 000004
【図４】
0006558008.tif 000005
【図５】
0006558008.tif 000006
【図６】
0006558008.tif 000007
【図７】
0006558008.tif 000008
【図８】
0006558008.tif 000009
【図９】
0006558008.tif 000010