(57)【要約】　　　（修正有）【課題】各コンピュータシステム上で稼働するプログラムが共用装置の存在を意識せずに、自システム内の領域をアクセスするのと同様な手順により、容易にシステム間の共用データをアクセスできるデータ共用方式を提供する。【解決手段】グローバルメモリ２１２内は、一定の単位で分割し、一意の識別子でもって分割されたそれぞれの単位を管理する。システム間排他手段２０２が、処理装置１００内の任意のアドレス空間の領域を識別子でもって指定して排他確保する時には、更新状態確認手段２０３は、共用装置１１０内の対応する単位内のデータの更新の有無をチェックし、更新されている時には、データ転送手段２０４は、共用装置１１０内の対応する単位内のデータをアドレス空間に転送する。排他解除する時には、アドレス空間内のデータが更新されている時には、データ共用方式転送手段２０４は、そのデータを共用装置１１０内の対応する単位内に転送する。【選択図】　図１
2004054906.tif 000002
【特許請求の範囲】
【請求項１】
複数のコンピュータシステム間で共通に使用するデータを共用装置内の共用メモリにおいて共用するデータ共用方式において、
上記共用メモリ内を一定の単位で分割し、上記複数のコンピュータシステム及び上記共用装置から見て一意の識別子でもって上記分割されたそれぞれの単位を管理し、
上記コンピュータシステム内の任意のアドレス空間の領域を上記識別子でもって指定して排他確保する時には、上記共用メモリ内の対応する単位内のデータの更新の有無をチェックし、更新されている時には、上記共用メモリ内の対応する単位内のデータを上記アドレス空間に転送し、
排他解除する時には、上記アドレス空間内のデータが更新されている時には、そのデータを上記共用メモリ内の対応する単位内に転送することを特徴とするデータ共用方式。
【請求項２】
請求項１記載のデータ共用方式において、
上記コンピュータシステムは、複数の上記識別子をグループ化してアクセスするとともに、上記共用装置に対する排他確保を、グループ化された識別子の内の代表する識別子でもって行うことを特徴とするデータ共用方式。
【請求項３】
請求項１記載のデータ共用方式において、
上記コンピュータシステムが、上記コンピュータシステム上でデータを参照・更新するアクセス時期と、上記共用装置上のデータを上記コンピュータシステムに反映させるアクセス時期とを非同期とすることを特徴とするデータ共用方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ共用方式に係り、特に、複数のコンピュータシステム間で共通に使用するデータを共用装置において共用するデータ共用方式に関する。
【０００２】
【従来の技術】
従来、複数のコンピュータシステム間でアドレス空間上のデータを共用する場合は、共用されている入出力装置を占有し、あらかじめ決められた位置に一旦データを書き込み後、占有状態を解除している。その後、他システムがそのデータを利用する際には、同様にして、この入出力装置を占有してから、決められた位置のデータを読み込み、アドレス空間上にあらかじめ確保した領域にデータを転送後、占有状態を解除するようにしている。即ち、個々のコンピュータシステムが、一旦、入出力装置を占有して、データの読み出しや書き込みを行い、その後、占有を解除している。ここで、複数システム間で共有する入出力装置としては、例えば、磁気ディスク装置，半導体ディスク装置や独立形拡張記憶装置などがある。
【０００３】
なお、独立型拡張記憶装置による複数システム間でのデータ共用方法については、例えば、（株）日立製作所発行のマニュアル「プログラムプロダクトＶＯＳ３／ＦＳセンタ運営−ＪＳＳ３編−」、平成７年１０月発行のｐ．１１０−１１７，「拡張記憶装置」の項に記載されている。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来のシステムにおいては、共用装置である入出力装置を占有するため、入出力装置の排他オーバヘッドが大きく、比較的小さいデータを頻繁にアクセスすると、排他オーバヘッドやアクセスオーバヘッドが無視できなくなるという問題があった。
本発明の目的は、各コンピュータシステム上で稼働するプログラムが共用装置の存在を意識せずに、自システム内の領域をアクセスするのと同様な手順により、容易にシステム間の共用データをアクセスできるデータ共用方式を提供することにある。
【０００５】
【課題を解決するための手段】
上記目的を達成するために、本発明は、複数のコンピュータシステム間で共通に使用するデータを共用装置内の共用メモリにおいて共用するデータ共用方式において、上記共用メモリ内を一定の単位で分割し、上記複数のコンピュータシステム及び上記共用装置から見て一意の識別子でもって上記分割されたそれぞれの単位を管理し、上記コンピュータシステム内の任意のアドレス空間の領域を上記識別子でもって指定して排他確保する時には、上記共用メモリ内の対応する単位内のデータの更新の有無をチェックし、更新されている時には、上記共用メモリ内の対応する単位内のデータを上記アドレス空間に転送し、排他解除する時には、上記アドレス空間内のデータが更新されている時には、そのデータを上記共用メモリ内の対応する単位内に転送するようにしたものであり、かかる方式により、各コンピュータシステム上で稼働するプログラムは共用装置の存在を意識せずに、自システム内の領域をアクセスするのと同様な手順により、容易にシステム間の共用データをアクセスし得るものとなる。
上記データ共用方式において、好ましくは、上記コンピュータシステムは、複数の上記識別子をグループ化してアクセスするとともに、上記共用装置に対する排他確保を、グループ化された識別子の内の代表する識別子でもって行うようにしたものであり、かかる方式により、排他オーバヘッドを削減し得るものとなる。
上記データ共用方式において、好ましくは、上記コンピュータシステムが、上記コンピュータシステム上でデータを参照・更新するアクセス時期と、上記共用装置上のデータを上記コンピュータシステムに反映させるアクセス時期とを非同期とするようにしたものであり、かかる方式により、共用装置へのオーバヘッドを低減し得るものとなる。
【０００６】
【発明の実施の形態】
以下、図１〜図３を用いて、本発明の一実施形態によるデータ共用方式について説明する。
図１は、本発明の一実施形態によるデータ共用方式を実現する複合コンピュータシステムの構成図である。
【０００７】
処理装置１００は、共用装置１１０上の識別子で管理されるグローバルメモリ２１２と１：１で対応する自システム内のローカルメモリ２０６のアドレス空間上のメモリ領域を管理するローカル領域割当て手段２０１を備えている。ローカル領域割当て手段２０１は、「識別子」，「物理メモリアドレス」及び「長さ」の各項目からなるテーブル形式で、メモリ領域を管理する。
【０００８】
ローカル領域割当て手段２０１の中には、例えば、ローカルメモリ２０６のアドレス”１０００２０００”Ｘからアドレス”１０００２ＦＦＦ”Ｘまでの長さ”１０００”Ｘの領域を「識別子」＝”０００００１”で管理し、ローカルメモリ２０６のアドレス”０Ｆ００１０００”Ｘからアドレス”０Ｆ００１ＦＦＦ”Ｘまでの長さ”１０００”Ｘの領域を「識別子」＝”０００００２”で管理しているものとする。
「識別子」＝”０００００１”，「識別子」＝”０００００２”で管理されるメモリ領域は、ローカルメモリ２０６に図示した領域である。
【０００９】
【００１０】
さらに、処理装置１００は、共有装置１１０へのデータ転送時に他システムと排他を確保・解放するためのシステム間排他手段２０２と、共有装置１１０上のデータが他システムによって更新されているかどうかチェックする更新状態確認手段２０３と、処理装置１００上のローカルメモリ２０６から共用装置１１０上のグローバルメモリ２１２へ、または、共用装置１１０上のグローバルメモリ２１２から処理装置１００上のローカルメモリ２０６へデータを転送するデータ転送手段２０４と、共用装置１１０上の他系の更新状態を記録する更新ベクトルの設定を行う更新ベクトル設定手段２０５と、自システム上のアドレス空間で参照できるローカルメモリ２０６とを備えている。
【００１１】
処理装置１２０は、処理装置１００と同様な構成となっており、ローカル領域割当て手段２２１と、システム間排他手段２２２と、更新状態確認手段２２３と、データ転送手段２２４と、更新ベクトル設定手段２２５と、ローカルメモリ２２６とを備えている。これらの各手段は、いずれも、処理装置１００における対応する手段と同一の機能を有しており、その説明については、省略する。
なお、ローカル領域割当て手段２２１の中には、例えば、ローカルメモリ２２６のアドレス”０Ｅ００１０００”Ｘからアドレス”０Ｅ００１ＦＦＦ”Ｘまでの長さ”１０００”Ｘの領域を「識別子」＝”０００００１”で管理し、ローカルメモリ２２６のアドレス”２８１０００００”Ｘからアドレス”２８１ＦＦＦＦＦ”Ｘまでの長さ”ＦＥ０００”Ｘの領域を「識別子」＝”０００００３”で管理していることが記録されている。
「識別子」＝”０００００１”，「識別子」＝”０００００３”で管理されるメモリ領域は、ローカルメモリ２２６に図示した領域である。
共用装置１１０は、処理装置（ＳＹＳ　Ａ）１００及び処理装置（ＳＹＳ　Ｂ）１２０に接続されており、その内部にメモリを保持し、接続されている処理装置１００，１２０からの指示に従い、メモリ上のデータを操作する機能を有していいる。共用装置１１０は、例えば、磁気ディスク装置，半導体ディスク装置や独立形拡張記憶装置などによって構成される。
【００１２】
共用装置１１０は、共用装置内のメモリを分割して管理する手段として、それぞれの識別子がどのシステムに割り当てられているかの情報を記録する識別子割当て手段２１０と、グローバルメモリ２１２のアドレス空間上のメモリ領域を識別子で管理する共有メモリ管理手段２１１とを備え、さらに、実際のデータを配置する場所としてグローバルメモリ２１２を備えている。
識別子割当て手段２１０は、「識別子」，「割当てシステム名称」の各項目からなるテーブル形式で、識別子の割当を管理している。識別子割当て手段２１０の中には、例えば、「識別子」＝”０００００１”は、処理装置１００である”ＳＹＳ　Ａ”，処理装置１２０である”ＳＹＳ　Ｂ”に割り当てられており、「識別子」＝”０００００２”は、”ＳＹＳ　Ａ”に割り当てられており、「識別子」＝”０００００３”は、”ＳＹＳ　Ｂ”に割り当てられていることが記録されている。
また、共有メモリ管理手段２１１は、「識別子」，「物理メモリアドレス」，「更新ベクトル」の各項目からなるテーブル形式で、識別子に対するメモリの割当を管理している。共有メモリ管理手段２１１の中には、例えば、グローバルメモリ２１２のアドレス”００００００００”Ｘからアドレス”０００００ＦＦＦ”Ｘまでのの領域を「識別子」＝”０００００１”で管理し、「更新ベクトル」が”１００”であることが記録されている。「更新ベクトル」の詳細については、後述するが、３ビット構成の「更新ベクトル」は、識別子割当手段２１０の「割当てシステム名称」の中の３つの欄に対応してフラグを立てるようにしている。即ち、「識別子」＝”０００００１”に対する「更新ベクトル」＝”１００”の内、”１”が”ＳＹＳ　Ａ”に対応し、”０”が”ＳＹＳ　Ｂ”に対応し、”０”が”−（割当システム無し）”に対応している。そして、”ＳＹＳ　Ａ”に対してビットが立っている（”１”）ことから、「識別子」＝”０００００１”で
管理されるメモリ領域のデータは、処理装置１００（ＳＹＳ　Ａ）によって更新されていることを表している。
同様にして、共有メモリ管理手段２１１の中には、グローバルメモリ２１２のアドレス”００００１０００”Ｘからアドレス”００００１ＦＦＦ”Ｘまでのの領域を「識別子」＝”０００００２”で管理し、「更新ベクトル」が”０００”であり、いずれの処理装置からも更新されておらず、グローバルメモリ２１２のアドレス”００００２０００”Ｘからアドレス”０００ＦＦＦＦＦ”Ｘまでのの領域を「識別子」＝”０００００３”で管理し、「更新ベクトル」が”０１０”であり、処理装置１２０（ＳＹＳ　Ｂ）によって更新されており、グローバルメモリ２１２のアドレス”００１０００００”Ｘからアドレス”００１ＦＦＦＦＦ”Ｘまでのの領域を「識別子」＝”０００００４”で管理し、「更新ベクトル」が”０００”であり、いずれの処理装置からも更新されていないことが記録されている。
「識別子」＝”０００００１”，…，「識別子」＝”０００００４”で管理されるメモリ領域は、グローバルメモリ２１２に図示した領域である。
次に、図２を用いて、複数システム間で定義したシステム間の共通メモリ領域をロック要求時に参照するときの手順について説明する。
図２は、本発明の一実施形態によるデータ共用方式におけるロック要求処理の手順を示すフローチャートである。
【００１３】
以下に、図２に示した各ステップに従って、図１を参照しながら、ロック要求処理について説明するが、ここで、図１における識別子割当て手段２１０の「割当てシステム」の欄にはまだ何も記録されておらず、また、共有メモリ管理手段２１１の「更新ベクトル」の欄はいずれも”０００”となっているものとする。図２のステップ１において、処理装置１００上のプログラムは、予め確保してあるアドレス空間上のローカルメモリ２０６の「アドレス」＝”１０００２０００”Ｘから「長さ」＝”１０００”Ｘ分の領域を、システム間の共通メモリとしてアクセスするために、処理装置１２０上のプログラムとあらかじめ決めておいた「識別子」＝”０００００１”によりロック要求を発行する。
ステップ２において、処理装置１００のシステム間排他手段２０２は、指定された識別子で排他確保をする。即ち、システム間排他手段２０２は、「識別子」＝”０００００１”を排他状態にする。
次に、ステップ３において、処理装置１００の更新状態確認手段２０３は、指定された識別子は他のシステム系で更新済みか否かを判断する。即ち、更新状態確認手段２０３は、この指定された識別子で対応付けられている共用装置１１０上のグローバルメモリ２１２が他システムからアクセスされているかどうかチェックする。更新済みである場合には、ステップ４に進み、更新済みでない場合には、ステップ１３に進む。ステップ４，５については、後述する。
ここでは、処理装置１００からの「識別子」＝”０００００１”に対するアクセスが初めてのものであるとして、ステップ１３に進む。
ステップ１３において、共用装置１１０の識別子割当て手段２１０は、「識別子」＝”０００００１”に対して、処理装置１００（ＳＹＳ　Ａ）から割当て要求がきたことを記録し、共有メモリ管理手段２１１は、「識別子」＝”０００００１”に対応する共用装置１１０上のグローバルメモリ２１２を長さ＝”１０００”Ｘ分確保する。
次に、ステップ６において、処理装置１００は、処理装置１００上のロック要求処理では、初めてのアクセスであり、「更新ベクトル」上では他系による更新がない状況であるため、データを転送せず、ロック要求を完了する。
【００１４】
以上のロック要求の処理により、処理装置１００上のプログラムは、この識別子と対応付けられた領域のアクセスが可能となる。プログラムは、この領域を特別な命令を使用せずに、自システム内の領域をアクセスするのと同様な手順で容易に、参照・更新できる。
本実施形態によれば、特別な命令を使用せずに、自システム内の領域をアクセスするのと同様な手順で容易に、参照・更新できる。
次に、図３を用いて、複数システム間で定義したシステム間の共通メモリ領域をアンロック要求するときの手順について説明する。
図３は、本発明の一実施形態によるデータ共用方式におけるアンロック要求処理の手順を示すフローチャートである。
図３のステップ７において、処理装置１００上のプログラムは、共通領域のアクセスを完了すると、「識別子」＝”０００００１”を入力として、アンロック要求を発行する。
【００１５】
ステップ８において、処理装置１００は、更新指示があったか否かを判断する。更新指示があれば、ステップ９に進み、更新指示がなければ、ステップ１１にジャンプする。処理装置１００上のプログラムが、このメモリ領域を参照のみした場合には、更新指示はなされない。
ここで、処理装置１００上のプログラムからの「識別子」＝”０００００１”へのアクセスは初めてである場合には、グローバルメモリ２１２上にデータを作成していないため、処理装置１００は、更新指示を行う。
次に、ステップ９において、識別子に対応するローカルメモリからグローバルメモリへデータを転送する。即ち、データ転送手段２０４は、識別子＝”０００００１”に対応するローカルメモリ２０６の「アドレス」＝”１０００２０００”Ｘから「アドレス」＝”１０００２ＦＦＦ”Ｘの内容を、グローバルメモリ２１２上の「アドレス」＝”００００００００”Ｘから「アドレス」＝”００００１０００”Ｘへ転送する。
【００１６】
次に、ステップ１０において、更新ベクトルをセットする。即ち、更新ベクトル設定手段２０５は、自系からの更新が完了したことを他系が認識できるように、共有メモリ管理手段２１１の管理する更新ベクトルのビットを”０”Ｂから”１”Ｂに設定する。ここで、共有メモリ管理手段２１１の「識別子」＝”０００００１”に対応する「更新ベクトル」を”０００”から”１００”に設定する。処理装置１００である「ＳＹＳ　Ａ」は、識別子割当て手段２１０の「割当てシステム名称」の欄の記録からして一番最初に割り当てられているため、更新ベクトルの最上位ビットを”０”Ｂから”１”Ｂに設定する。
次に、ステップ１１において、システム間開放手段２０２は、指定された識別子による排他解放を行う。即ち、「識別子」＝”０００００１”は排他開放される。
ステップ１２において、処理装置１００上のプログラムは、アンロック要求を完了する。
なお、ステップ８において、更新指示がなかった場合には、ローカルメモリ２０６上のデータは、グローバルメモリ２１２上に転送されず、ステップ１１において、システム間排他手段２０２は、指定された識別子によるシステム間の排他解放を実行し、ステップ１２において、プログラムはアンロック要求処理を終了する。
次に、上述したようにして、処理装置１００によって割り当てられた共用メモリを、他系，例えば、処理装置１２０が参照・更新する場合のロック要求処理について、同じく、図２を用いて説明する。
図２のステップ１において、処理装置１２０上のプログラムは、予め確保してあるアドレス空間上のローカルメモリ２２６の「アドレス」＝”０Ｅ００１０００”Ｘから「長さ」＝”１０００”Ｘ分の領域を、システム間の共通メモリとしてアクセスするために、処理装置１００上のプログラムとあらかじめ決めておいた「識別子」＝”０００００１”によりロック要求を発行する。
ステップ２において、処理装置１２０のシステム間排他手段２２２は、指定された識別子で排他確保をする。即ち、システム間排他手段２２２は、「識別子」＝”０００００１”を排他状態にする。
次に、ステップ３において、処理装置１２０の更新状態確認手段２２３は、指定された識別子は他のシステム系で更新済みか否かを判断する。ここでは、更新状態確認手段２２３が、共用メモリ管理手段２１１の管理する更新ベクトルの内容をチェックすることにより、「識別子」＝”０００００１”は、既に、処理装置１００からアクセスされているので、ステップ４に進む。
ステップ４において、データ転送手段２２４は、識別子に対応するグローバルメモリ２１２からローカルメモリ２２６へデータを転送する。即ち、データ転送手段２２４は、「識別子」＝”０００００１”に対応するグローバルメモリ２１２の「アドレス」＝”００００００００”Ｘ〜”０００００ＦＦＦ”Ｘの内容を、処理装置１２０上のローカルメモリ２２６の「アドレス」＝”０Ｅ００１０００”Ｘ〜”０Ｅ００１ＦＦＦ”Ｘに転送する。このデータ転送処理により、処理装置１００上の「識別子」＝”０００００１”と処理装置１２０上の「識別子」＝”０００００１”上のデータが一致する。
【００１７】
ステップ５において、処理装置１２０の更新ベクトル設定手段２２５は、更新ベクトルをリセットする。即ち、更新ベクトル設定手段２２５は、処理装置１２０上ではデータ転送後、このデータを再度読み込まないように、「更新ベクトル」を”１”Ｂから”０”Ｂへリセットする。その結果、「識別子」＝”０００００１”に対する「更新ベクトル」は、”１００”から”０００”にリセットされる。
ステップ６において、ロック要求を完了し、要求プログラム元にリターンする。そして、ロック要求が完了した処理装置１２０上のプログラムは、「識別子」＝”０００００１”と対応付けられたローカルメモリ２２６上のデータに対し、参照・更新を実行する。
次に、図３に示したアンロック要求処理を実行する。
【００１８】
ステップ７において、アンロック要求を発行し、ステップ８において、更新指示があるか否かを判断する。参照・更新実行が、参照のみの場合は、更新指示を行わずに、ステップ１１において、排他解放し、ステップ１２において、アンロック処理を完了する。
【００１９】
また、ステップ８において、更新指示があると判断された場合には、ステップ９において、ローカルメモリからグローバルメモリへデータを転送し、ステップ１０において、更新ベクトルリセットした後、ステップ１１において、排他解放し、ステップ１２において、アンロック処理を完了する。
【００２０】
以上説明したような処理手順により、ロック→参照・更新→アンロックを繰り返すことにより、システム間で共通な領域をアクセスすることができる。ロック→参照・更新→アンロックの手順は、複数の仮想アドレス空間を持つシステムにおいて、全空間から共通の領域を参照・更新する場合の手順と同じである。システム間の共通メモリも、従来の共通領域と同等の手軽さでアクセスすることができるようになる。
【００２１】
以上説明したように、本実施形態によれば、プログラムは、特別な命令を使用せずに、自システム内の領域をアクセスするのと同様な手順で容易に、共通メモリの領域を参照・更新できるようになる。
次に、図４を用いて、排他の最小単位である識別子を複数まとめてグループ化してアクセスする方式について説明する。
図４は、本発明の他の実施形態によるデータ共用方式を実現する複合コンピュータシステムの構成図である。なお、図１と同一符号は、同一部分を表しており、その構成及び機能な同一であるため、詳細な説明は省略する。
なお、本実施形態では、「識別子」＝”０００００１”，”０００００２”を一つのグループとしてまとめてアクセスし、「識別子」＝”０００００３”，”０００００４”を一つのグループとしてまとめてアクセスするようにしている。処理装置１００，１２０は、それぞれ、「識別子」＝”０００００１”，”０００００２”は、一つのグループとしてまとめられているものとして認識しており、処理装置１００，１２０上のプログラム間では、あらかじめ、「識別子」＝”０００００１”，”０００００２”のグループをアクセスする場合は、代表の「識別子」として”０００００１”を用い、「識別子」＝”０００００３”，”００００４”のグループをアクセスする場合は、代表の「識別子」として”０００００３”を用いるようにしている。
【００２２】
ここで、ローカル領域割当て手段２０１の中には、例えば、ローカルメモリ２０６のアドレス”１０００２０００”Ｘからアドレス”１０００２ＦＦＦ”Ｘまでの長さ”１０００”Ｘの領域を「識別子」＝”０００００１”で管理し、ローカルメモリ２０６のアドレス”１０００３０００”Ｘからアドレス”１０００３ＦＦＦ”Ｘまでの長さ”１０００”Ｘの領域を「識別子」＝”０００００２”で管理し、ローカルメモリ２０６のアドレス”１０００４０００”Ｘからアドレス”１０００４ＦＦＦ”Ｘまでの長さ”１０００”Ｘの領域を「識別子」＝”０００００３”で管理し、ローカルメモリ２０６のアドレス”１０００５０００”Ｘからアドレス”１０００５ＦＦＦ”Ｘまでの長さ”１０００”Ｘの領域を「識別子」＝”０００００４”で管理しているものとする。「識別子」＝”０００００１”，…，”０００００４”で管理されるメモリ領域は、ローカルメモリ２０６に図示した領域である。
また、ローカル領域割当て手段２２１の中には、例えば、ローカルメモリ２２６のアドレス”０Ｅ００３０００”Ｘからアドレス”０Ｅ００３ＦＦＦ”Ｘまでの長さ”１０００”Ｘの領域を「識別子」＝”０００００１”で管理し、ローカルメモリ２２６のアドレス”０Ｅ００４０００”Ｘからアドレス”０Ｅ００４ＦＦＦ”Ｘまでの長さ”１０００”Ｘの領域を「識別子」＝”０００００２”で管理し、ローカルメモリ２２６のアドレス”０Ｅ００１０００”Ｘからアドレス”０Ｅ００１ＦＦＦ”Ｘまでの長さ”１０００”Ｘの領域を「識別子」＝”０００００３”で管理し、ローカルメモリ２２６のアドレス”０Ｅ００２０００”Ｘからアドレス”０Ｅ００２ＦＦＦ”Ｘまでの長さ”１０００”Ｘの領域を「識別子」＝”０００００４”で管理しているものとする。「識別子」＝”０００００１”，…，”０００００４”で管理されるメモリ領域は、ローカルメモリ２０６に図示した領域である。
【００２３】
さらに、識別子割当て手段２１０の中には、例えば、「識別子」＝”０００００１”は、処理装置１００である”ＳＹＳ　Ａ”，処理装置１２０である”ＳＹＳ　Ｂ”に割り当てられており、「識別子」＝”０００００２”は、”ＳＹＳ　Ａ”及び”ＳＹＳ　Ｂ”に割り当てられており、「識別子」＝”０００００３”は、”ＳＹＳ　Ｂ”及び”ＳＹＳ　Ａ”に割り当てられており、「識別子」＝”０００００４”は、”ＳＹＳ　Ｂ”及び”ＳＹＳ　Ａ”に割り当てられていることが記録されている。
また、共有メモリ管理手段２１１の中には、例えば、グローバルメモリ２１２のアドレス”００００００００”Ｘからアドレス”０００００ＦＦＦ”Ｘまでの領域を「識別子」＝”０００００１”で管理し、「更新ベクトル」が”０００”であることが記録され、グローバルメモリ２１２のアドレス”００００６５００”Ｘからアドレス”００００７４ＦＦ”Ｘまでのの領域を「識別子」＝”０００００２”で管理し、「更新ベクトル」が”０１０”であることが記録され、グローバルメモリ２１２のアドレス”００００４０００”Ｘからアドレス”００００４ＦＦＦ”Ｘまでのの領域を「識別子」＝”０００００３”で管理し、「更新ベクトル」が”０００”であることが記録され、グローバルメモリ２１２のアドレス”００００８０００”Ｘからアドレス”００００８ＦＦＦ”Ｘまでのの領域を「識別子」＝”０００００１”で管理し、「更新ベクトル」が”１００”であることが記録されている。
複数の識別子をグループ化してロック要求する場合の処理について、再び、図２を用いて説明する。
図２のステップ１において、処理装置１００上のプログラムは、予め確保してあるアドレス空間上のローカルメモリ２０６の「アドレス」＝”１０００４０００”Ｘから「長さ」＝”１０００”Ｘ分の領域及びローカルメモリ２０６の「アドレス」＝”１０００５０００”Ｘから「長さ」＝”１０００”Ｘ分の領域を、システム間の共通メモリとしてアクセスするために、処理装置１２０上のプログラムとあらかじめ決めておいた「識別子」＝”０００００３”によりロック要求を発行する。ここで、「識別子」＝”０００００３”及び「識別子」＝”０００００４”で管理される領域をロックする訳であるが、ここでは、代表となる識別子でロック要求するようにしている。
ステップ２において、処理装置１００のシステム間排他手段２０２は、指定された識別子で排他確保をする。即ち、システム間排他手段２０２は、「識別子」＝”０００００３”を排他状態にする。その結果として、「識別子」＝”０００００４”が排他状態とはなっていないことになるが、処理装置１００，１２０のいづれもが、「識別子」＝”０００００３”と「識別子」＝”０００００４”をグループ化して扱うように取り決めてあるので、「識別子」＝”０００００３”が排他状態にあるときには、「識別子」＝”０００００４”に対して排他要求をすることはなく、「識別子」＝”０００００４”については、実質的に排他が確保されている。
次に、ステップ３において、処理装置１００の更新状態確認手段２０３は、指定された識別子は他のシステム系で更新済みか否かを判断する。即ち、更新状態確認手段２０３は、この指定された識別子で対応付けられている共用装置１１０上のグローバルメモリ２１２が他システムからアクセスされているかどうかチェックする。
ここで、処理装置１００から、識別子＝”０００００３”でロック要求がきた場合でも、更新状態確認手段２０３は、代表の識別子ではなく、「識別子」＝”０００００３”，”０００００４”の両方に対してチェックを行い更新状態を確認する。図４に示す状態では、共有メモリ管理手段２１１の中の識別子＝”０００００３”に対する更新ベクトルは、”０００”であり、更新されていないが、識別子＝”０００００４”に対する更新ベクトルは、”１００”であり、処理装置１２０（ＳＹＳ　Ｂ）から更新されていることがわかるため、ステップ４に進む。
ステップ４において、データ転送手段２０４は、グローバルメモリ２１２からローカルメモリ２０６に対してデータを転送する。
次に、ステップ５において、更新ベクトル設定手段２０５は、共有メモリ管理手段２１１の中の識別子＝”０００００４”に対する更新ベクトルをリセットする。
次に、ステップ６において、処理装置１００は、ロック要求を完了し、読みだしたデータに対して、参照・更新を行う。
【００２４】
以上のロック要求の処理により、処理装置１００上のプログラムは、この識別子と対応付けられた複数の領域のアクセスが可能となる。参照・更新される単位（領域）を複数設けたとしても、排他オーバヘッドは一回で済むため、排他オーバヘッドを削減できる。
【００２５】
プログラムは、この領域を特別な命令を使用せずに、自システム内の領域をアクセスするのと同様な手順で容易に、参照・更新できる。
アンロック要求に対する処理は、図３を用いて前述したとおりであり、排他確保されているのは、代表となる識別子についてであるので、ステップ１１における排他開放も、排他確保された識別子についてのみ排他開放される。
本実施形態によれば、特別な命令を使用せずに、自システム内の領域をアクセスするのと同様な手順で容易に、参照・更新できる。
また、複数の領域に対して排他確保する際の排他オーバーヘッドを削減できる。
【００２６】
次に、図５を用いて、処理装置上のプログラムがシステム間の共通メモリを参照・更新する場合に、共用装置へのアクセスと、ローカルメモリのアクセスを非同期にする方法について説明する。
図５は、本発明のその他の実施形態によるデータ共用方式を実現する複合コンピュータシステムの構成図である。なお、図１と同一符号は、同一部分を表しており、その構成及び機能な同一であるため、詳細な説明は省略する。
【００２７】
処理装置１００上では、プログラムＡ２０７は、システム間の共通メモリと対応付けられたローカルメモリ２０６を参照・更新しながら動作するプログラムとして稼働している。
ここで、処理装置１００の中のローカル領域割当て手段が管理するローカルメモリ２０６の領域の割当ては、図４に示したものと同様とする。
【００２８】
また、処理装置１２０上では、プログラムＢ２２７は、システム間の共通メモリと対応付けられたローカルメモリ２２６を参照・更新しながら動作するプログラムとして稼働している。
そして、処理装置１２０の中のローカル領域割当て手段が管理するローカルメモリ２２６の領域の割当ては、図４に示したものと同様とする。
【００２９】
さらに、識別子割当て手段２１０における割当てシステムの名称は、図４に示したものと同様とする。
また、共有メモリ管理手段２１１における共有メモリであるグローバルメモリ２１２の管理状況も図４に示したものと同様とする。
【００３０】
プログラムＡ２０７とプログラムＢ２２７が共有するデータは、ユーザデータのように全システム間で完全性が保証されていなければならないデータではなく、例えば、処理装置１００，１２０上のＣＰＵのビジー率や、共用資源の稼働情報など、多少の誤差が許容されるデータである。
【００３１】
そのようなデータを共有する場合は、データのやりとりが定期的に発生するため、共用装置１１０へのアクセスオーバヘッドまたは排他オーバヘッドは極力減らすことが望ましい。そこで、共用装置１１０へのロック・アンロック要求は各プログラムの動作の延長で動作することなく、全く別のプログラムにより比較的オーバヘッドの少ない周期で定期的に共用装置１１０へのデータアクセスを行い、ローカルメモリ２０６，２２６上へデータを反映するようにしている。
【００３２】
プログラムＡ２０７及びプログラムＢ２２７は、ローカルメモリ２０６，２２６上へのデータの反映契機とは別の契機で動作し、必要なときにローカルメモリ２０６，２２６だけ参照・更新する。
【００３３】
このようにして、ローカルメモリへのアクセスと、グローバルメモリへのアクセス契機を分けることにより、共用装置へのオーバヘッドを減らすことが可能となる。
本実施形態によれば、特別な命令を使用せずに、自システム内の領域をアクセスするのと同様な手順で容易に、参照・更新できる。
また、各コンピュータシステム上でデータを参照・更新する契機と、共用装置上のデータをコンピュータシステムに反映する契機をわけることにより、共用装置へのオーバヘッドを低減できる。
【００３４】
【発明の効果】
本発明によれば、複数のコンピュータシステム間でメモリを共有する場合、従来のシステム内の共通領域へのアクセスと同等の手順により、参照・更新が可能となる。
【図面の簡単な説明】
【図１】本発明の一実施形態によるデータ共用方式を実現する複合コンピュータシステムの構成図である。
【図２】本発明の一実施形態によるデータ共用方式におけるロック要求処理の手順を示すフローチャートである。
【図３】本発明の一実施形態によるデータ共用方式におけるアンロック要求処理の手順を示すフローチャートである。
【図４】本発明の他の実施形態によるデータ共用方式を実現する複合コンピュータシステムの構成図である。
【図５】本発明のその他の実施形態によるデータ共用方式を実現する複合コンピュータシステムの構成図である。
【符号の説明】
１００，１２０…処理装置
１１０…共用装置
２０１，２２１…ローカル領域割当て手段
２０２，２２２…システム間排他手段
２０３，２２３…更新状態確認手段
２０４，２２４…データ転送手段
２０５，２２５…更新ベクトル設定手段
２０６，２２６…ローカルメモリ
２０７…プログラムＡ
２２７…プログラムＢ
２１０…識別子割当て手段
２１１…共用メモリ管理手段
２１２…グローバルメモリ
【図１】
2004054906.tif 000003
【図２】
2004054906.tif 000004
【図３】
2004054906.tif 000005
【図４】
2004054906.tif 000006
【図５】
2004054906.tif 000007
【手続補正書】
【提出日】平成15年6月19日(2003.6.19)
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のローカルメモリへアクセスする複数のプログラムに基づいて処理装置で処理が実行され、前記複数のプログラムの処理で共有してアクセスされるグローバルメモリを有するコンピュータシステムにおけるメモリアクセス方法において、
前記複数のローカルメモリと前記複数のグローバルメモリとを予め対応付け、前記プログラムによる処理が前記ローカルメモリのアクセスを開始するとき、該ローカルメモリに対応付けられた前記グローバルメモリを排他状態とし、該グローバルメモリにおけるデータの更新の有無が格納された更新状態情報を参照し、前記プログラム以外の他のプログラムの処理による更新有りの場合は該ローカルメモリに該グローバルメモリに格納されたデータを転送し、前記更新状態情報を前記プログラムによる更新ありを設定することを特徴とするアクセス方法。
【請求項２】
請求項１記載のアクセス方法において、
前記プログラムの処理が前記ローカルメモリのアクセスを完了した場合、前記更新状態情報を参照し、前記プログラムの処理により更新有りの場合は該ローカルメモリに格納されたデータを該ローカルメモリに対応する前記グローバルメモリに転送し、該ローカルメモリの前記更新情報を更新なしと設定して該グローバルメモリの排他状態を解放することを特徴とするアクセス方法。
【請求項３】
複数のローカルメモリへアクセスする複数のプログラムに基づいて計算機で処理が実行され、前記複数のプログラムの処理で共有してアクセスされるグローバルメモリを有するコンピュータシステムにおいて、
前記複数のローカルメモリと前記複数のグローバルメモリとを予め対応付ける手段と、前記プログラムによる処理が前記ローカルメモリのアクセスを開始するとき、該ローカルメモリに対応付けられた前記グローバルメモリを排他状態とする手段と、該グローバルメモリにおけるデータの更新の有無が格納された更新状態情報を参照し、前記プログラム以外の他のプログラムの処理による更新有りの場合は該ローカルメモリに該グローバルメモリに格納されたデータを転送し、前記更新状態情報を前記プログラムによる更新ありを設定する手段とを備えたことを特徴とするコンピュータシステム。
【請求項４】
請求項３記載のコンピュータシステムにおいて、
前記プログラムの処理が前記ローカルメモリのアクセスを完了した場合、前記更新状態情報を参照する手段と、前記プログラムの処理により更新有りの場合は該ローカルメモリに格納されたデータを該ローカルメモリに対応する前記グローバルメモリに転送し、該ローカルメモリの前記更新情報を更新なしと設定して該グローバルメモリの排他状態を解放する手段とを備えたことを特徴とするコンピュータシステム。
【請求項５】
複数のローカルメモリへアクセスする複数のプログラムに基づいて処理装置で処理が実行され、前記複数のプログラムの処理で共有してアクセスされるグローバルメモリを有するコンピュータシステム。