(57)【特許請求の範囲】
【請求項１】
通信回線を介して接続される２台のコンピュータの間での連携処理のためのメモリ管理方法であって、
前記各コンピュータそれぞれのメモリ空間の一部を、互いに共通領域となるように構成し、
前記共通領域に対し同時には前記コンピュータの一方にのみがアクセス権を持つよう、前記各コンピュータにおける前記共通領域のステータスを管理し、
前記各コンピュータにて連携処理のためのプログラムから前記共通領域に対するアクセス要求があった場合には、前記ステータスがアクセス権有りを示す場合はアクセスを許可し、アクセス権無しを示す場合は前記通信回線を介して当該コンピュータの前記共通領域に他方のコンピュータの前記共通領域のデータをコピーし、当該コンピュータの前記ステータスをアクセス権有りに変更した上でアクセスを許可することを特徴とするメモリ管理方法。
【請求項２】
前記各コンピュータにおける前記共通領域のステータスとして、当該コンピュータで前記共通領域のアクセス権を得た後データ変更を行ったか否かを更に管理し、前記共通領域に対するアクセス権のない方のコンピュータにて前記共通領域にアクセス要求があった場合には当該コンピュータから他方のコンピュータに前記ステータスを問い合わせ、その結果前記ステータスが非変更を示している場合は、他方のコンピュータからの前記共通領域のデータのコピーを中止することを特徴とする請求項１に記載のメモリ管理方法。
【請求項３】
前記共通領域にアクセス権のない方のコンピュータにて共通領域にアクセス要求があった場合において、当該コンピュータから他方のコンピュータに対して前記通信回線による通信が不可能な場合は、当該コンピュータの連携処理のためのプログラムに対し通信不能の旨を通知すると共に前記共通領域のステータスを知らせ、当該プログラムが前記共通領域のステータスに応じた処理を実行することを可能にしたことを特徴とする請求項１又は請求項２に記載のメモリ管理方法。
【請求項４】
前記共通領域は複数のブロックに分割され、ブロック単位で前記ステータスの管理及びアクセスの管理を行うことを特徴とする請求項１から請求項３のいずれかに記載のメモリ管理方法。
【請求項５】
通信回線を介して相手コンピュータとの連携処理を行う機能を有するコンピュータであって、
連携処理のためのプログラムを実行する際に、自コンピュータのメモリ空間内に、相手コンピュータとの連携処理用の共通領域を設定する共通領域設定部と、自コンピュータのアクセス権の有無を含む前記共通領域のステータスを保持するメモリ制御ステータス部と、
前記連携処理のためのプログラムから前記共通領域へのアクセス要求があった場合、前記メモリ制御ステータス部を参照して自コンピュータのアクセス権の有無を調べ、アクセス権がある場合にはアクセスを許可し、アクセス権がない場合には通信回線を介して相手コンピュータに対して通信接続を行って前記共通領域のデータに対するコピー要求を送信し、これに応じて相手コンピュータから送られてきたデータを自コンピュータの前記共通領域にコピーし、前記メモリ制御ステータス部における前記共通領域のステータスをアクセス権有りに変更した上でアクセスを許可するアクセス管理部と、
前記共通領域へのアクセスのデータのコピー要求を受けた場合、その要求に応じて前記共通領域のデータを相手コンピュータに送信し、前記メモリ制御ステータス部における前記共通領域のステータスをアクセス権無しに変更するコピー管理部と、
を有するコンピュータ。
【請求項６】
前記アクセス管理部は、自コンピュータに前記共通領域に対するアクセス権がない場合、相手コンピュータに対して前記共通領域のデータ変更を行ったか否かを問い合わせ、問合せの結果データ変更がなかったと分かった場合は相手コンピュータに対する前記共通領域のデータのコピー要求を行わずに、前記メモリ制御ステータス部のアクセス権の変更のみを行ってアクセスを許可することを特徴とする請求項５記載のコンピュータ。
【請求項７】
前記アクセス管理部は、前記プログラムからアクセス要求を受けた際に自コンピュータに前記共通領域へのアクセス権がないと判定された場合において、相手コンピュータとの通信接続ができなかった場合には、前記プログラムに対し通信接続不能の旨と前記メモリ制御ステータス部の保持するステータスとを通知することにより、前記プログラムに対し前記ステータスに応じて前記共通領域のデータを限定的に利用できるようにしたことを特徴とする請求項５又は請求項６に記載のコンピュータ。
【請求項８】
前記共通領域は複数のブロックに分割され、ブロック単位で前記ステータスの管理及びアクセスの管理を行うことを特徴とする請求項５から請求項７のいずれかに記載のコンピュータ。
【請求項９】
前記連携処理のためのプログラムの開始時には、前記共通領域の各ブロックに前記相手コンピュータの共通領域のデータをコピーせず、前記プログラムからのアクセス要求を受けて初めてそのアクセス要求に係るアドレスを含むブロックのデータを前記相手コンピュータからコピーすることを特徴とする請求項８記載のコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、メモリ管理方式に関し、特にモバイル端末装置とサーバ装置とが通信回線を介して通信を行いつつ連携動作する処理のためのメモリ管理に関する。
【０００２】
【従来の技術】
携帯電話やＰＨＳ等の急速な普及、ＰＤＡ等の携帯型端末の高性能化・小型化に伴い、モバイルコンピューティング環境が実現しつつある。このような状況の下、モバイル端末とサーバとが通信回線を介して連携動作することにより、サービスを実現するアプリケーションも生まれている。例えば電子メールやＷｅｂブラウザなどがその一例である。
【０００３】
【発明が解決しようとする課題】
このようなモバイル端末とサーバとが連携動作するアプリケーションの作成には、従来、モバイル端末・サーバ間の通信を考慮したプログラミングが必要であったため、開発が困難であった。すなわち、一口に通信といっても、様々な通信媒体や通信方式があるため、それらの組合せ毎に応じた通信処理をアプリケーションに作り込む必要があり、多くの開発コストや時間を要していた。
【０００４】
この発明は、上述のような課題を解決するためになされたものであり、モバイル端末・サーバなどのコンピュータ間での連携処理のためのプログラムが、それらコンピュータ間での通信を考慮しないで済むような、コンピュータ間のメモリ管理方法、及びそれを実現するコンピュータを提供するものである。
【０００５】
【課題を解決するための手段】
この発明に係るメモリ管理方法は、通信回線を介して接続される２台のコンピュータの間での連携処理のためのメモリ管理方法であって、各コンピュータそれぞれのメモリ空間の一部を、互いに共通領域となるように構成し、共通領域に対し同時には前記コンピュータの一方にのみがアクセス権を持つよう、各コンピュータにおける共通領域のステータスを管理し、各コンピュータにて連携処理のためのプログラムから共通領域に対するアクセス要求があった場合には、ステータスがアクセス権有りを示す場合はアクセスを許可し、アクセス権無しを示す場合は通信回線を介して当該コンピュータの共通領域に他方のコンピュータの共通領域のデータをコピーし、当該コンピュータのステータスをアクセス権有りに変更した上でアクセスを許可することを特徴とするものである。
【０００６】
また、各コンピュータにおける共通領域のステータスとして、当該コンピュータで共通領域のアクセス権を得た後データ変更を行ったか否かを更に管理し、共通領域に対するアクセス権のない方のコンピュータにて共通領域にアクセス要求があった場合には当該コンピュータから他方のコンピュータにステータスを問い合わせ、その結果ステータスが非変更を示している場合は、他方のコンピュータからの共通領域のデータのコピーを中止することを特徴とするものである。
【０００７】
また、共通領域にアクセス権のない方のコンピュータにて共通領域にアクセス要求があった場合において、当該コンピュータから他方のコンピュータに対して通信回線による通信が不可能な場合は、当該コンピュータの連携処理のためのプログラムに対し通信不能の旨を通知すると共に共通領域のステータスを知らせ、当該プログラムが共通領域のステータスに応じた処理を実行することを可能にしたことを特徴とするものである。
【０００８】
また、共通領域は複数のブロックに分割され、ブロック単位でステータスの管理及びアクセスの管理を行うことを特徴とするものである。
【０００９】
また、この発明に係るコンピュータは、通信回線を介して相手コンピュータとの連携処理を行う機能を有するコンピュータであって、連携処理のためのプログラムを実行する際に、自コンピュータのメモリ空間内に、相手コンピュータとの連携処理用の共通領域を設定する共通領域設定部と、自コンピュータのアクセス権の有無を含む共通領域のステータスを保持するメモリ制御ステータス部と、連携処理のためのプログラムから共通領域へのアクセス要求があった場合、メモリ制御ステータス部を参照して自コンピュータのアクセス権の有無を調べ、アクセス権がある場合にはアクセスを許可し、アクセス権がない場合には通信回線を介して相手コンピュータに対して通信接続を行って共通領域のデータに対するコピー要求を送信し、これに応じて相手コンピュータから送られてきたデータを自コンピュータの共通領域にコピーし、メモリ制御ステータス部における共通領域のステータスをアクセス権有りに変更した上でアクセスを許可するアクセス管理部と、共通領域へのアクセスのデータのコピー要求を受けた場合、その要求に応じて共通領域のデータを相手コンピュータに送信し、メモリ制御ステータス部における共通領域のステータスをアクセス権無しに変更するコピー管理部とを有するものである。
【００１０】
また、アクセス管理部は、自コンピュータに共通領域に対するアクセス権がない場合、相手コンピュータに対して共通領域のデータ変更を行ったか否かを問い合わせ、問合せの結果データ変更がなかったと分かった場合は相手コンピュータに対する共通領域のデータのコピー要求を行わずに、メモリ制御ステータス部のアクセス権の変更のみを行ってアクセスを許可することを特徴とするものである。
【００１１】
また、アクセス管理部は、プログラムからアクセス要求を受けた際に自コンピュータに共通領域へのアクセス権がないと判定された場合において、相手コンピュータとの通信接続ができなかった場合には、プログラムに対し通信接続不能の旨とメモリ制御ステータス部の保持するステータスとを通知することにより、プログラムに対しステータスに応じて共通領域のデータを限定的に利用できるようにしたことを特徴とするものである。
【００１２】
また、この発明に係る装置における共通領域が複数のブロックに分割され、ブロック単位でステータスの管理及びアクセスの管理を行うことを特徴とするものである。
【００１３】
また、この発明に係る装置は、連携処理のためのプログラムの開始時には、共通領域の各ブロックに前記相手コンピュータの共通領域のデータをコピーせず、プログラムからのアクセス要求を受けて初めてそのアクセス要求に係るアドレスを含むブロックのデータを相手コンピュータからコピーすることを特徴とするものである。
【００１４】
【発明の実施の形態】
図１は、この発明の実施の形態のメモリ管理方法の概念を示す図である。この図の例は、同時に３台のモバイル端末Ａ，Ｂ，Ｃが、それぞれサーバとの間で連携処理を行っている場合について示したものである。図に示したように、この実施の形態では、モバイル端末のメモリ空間の一部とサーバのメモリ空間との一部とが連携処理用の共通領域となるように構成し、その共通領域の内容の一貫性（コヒーレンス）を保持するよう制御を行う。
【００１５】
例えばモバイル端末Ａとサーバとの連携処理のためには、モバイル端末Ａのメモリ空間１−１とサーバのメモリ空間３に、アドレスが共通した領域を確保し、その領域を共通領域２−１、共通領域４−１としてそれぞれ設定する。そして、これらモバイル端末Ａの共通領域２−１とサーバの共通領域４−１との一貫性を維持する。すなわち、共通領域２−１と共通領域４−１の同じアドレスには、いずれか一方に同じデータの最新バージョンが存在し、モバイル端末Ａから共通領域２−１にアクセスした場合でも、サーバから共通領域４−１にアクセスした場合でも、どちらの場合でもアクセス先のアドレスの最新バージョンのデータが取得できるようにする。例えばモバイル端末Ａにて、プログラムから共通領域２−１のあるアドレスにアクセス要求があった場合、共通領域２−１にそのアドレスの最新のデータがない場合は、サーバのメモリ空間３の共通領域４−１の同じアドレスのデータ（これが最新のデータである）を共通領域２−１のそのアドレスにコピーした上で、アクセスを許す。
【００１６】
このような方式を採用することにより、モバイル端末Ａから、サーバのメモリ空間の一部を自己のメモリ空間としてアクセス可能になり、サーバからも、モバイル端末のメモリ空間の一部を自己のメモリ空間としてアクセス可能になる。
【００１７】
モバイル端末Ｂ，Ｃについても、同様にそのメモリ空間１−２，１−３の中に、サーバのメモリ空間３に確保された共通領域４−２，４−３と共通アドレスの共通領域２−２，２−３が設定されており、共通領域２−２と共通領域４−２との間、共通領域２−３と共通領域４−３との間で、それぞれ一貫性の管理が行われる。
【００１８】
このようなメモリ管理によれば、最新のデータがサーバ及びモバイル端末のどちらにあるかにかかわらず、サーバ及びモバイル端末は各々自己のメモリ空間にアクセスする動作により、その最新のデータにアクセスすることができる。したがって、連携処理のためのアプリケーションプログラムを作成するのに、通信を意識する必要がなくなる。
【００１９】
このような連携処理のためのアプリケーションプログラムとしては、例えば、サーバ側にデータを持ちモバイル端末からデータの参照や変更を行うグループスケジュール管理アプリケーション、モバイル端末からのサーバ上のデータベースの検索や変更するデータベース管理アプリケーション、サーバ経由で他のモバイル端末と通信する通信アプリケーションなどがある。
【００２０】
次に、サーバとモバイル端末との間で、共通領域同士のデータの一貫性を維持する機構について、図２を参照して説明する。
【００２１】
図２に示すように、モバイル端末の共通領域１０とサーバの共通領域２０は、それぞれ固定長のブロックに分割されており、各ブロックはそれぞれ固定長のサブブロックに分割されている。図示の例では、各共通領域１０及び２０は、第０番目から第（ｎ−１）番目までのｎ個のブロックに分割され、各ブロックは、第０番目から第（ｍ−１）番目までのｍ個のサブブロックに分割されている。ブロックのサイズとしては例えば３２〜２０２４バイト程度が考えられ、サブブロックのサイズとしては例えば８〜１２８バイト程度が考えられる。
【００２２】
モバイル端末及びサーバには、それら各ブロックごとに、メモリ制御ステータスフィールド３０が設けられている。図２では、メモリ制御ステータスフィールド３０は、第０ブロックについてのみ図示したが、他のブロックについても同様のメモリ制御ステータスフィールド３０が設けられているものとする。
【００２３】
メモリ制御ステータスフィールド３０には、大きく分けて３種類のステータスが含まれる。例えばモバイル端末のメモリ制御ステータスフィールド３０には、Ｖビット３１、Ｃビット３２及びＤビット３３の３種類のステータスが含まれる。
【００２４】
Ｖビット３１は、１ブロックについて１つ設けられ、当該ブロックのデータが未ロードであるか否かのステータスを示す。Ｖビット３１の値が“０”の場合は未ロード、“１”の場合はロード済みであることを示す。この実施の形態では、モバイル端末のメモリ空間の共通領域１０にデータがロードされる場合として、モバイル端末内の外部記憶装置からロードされる場合と、サーバの外部記憶装置から共通領域２０にロードされたものが通信を介してロードされる場合とがある。あるブロックが、サーバの外部記憶装置からのデータの格納場所となるか、モバイル端末の外部記憶装置からのデータの格納場所となるかは、連携処理のアプリケーションによって決まる。例えばサーバ側のデータベースをモバイル端末から操作するためのアプリケーションでは、共通領域にロードするデータは、サーバの支配下にあるので、そのアプリケーションの開始時にはＶビット３１は“０”になる。しかし、いずれの場合でも、いったんロードされるとＶビット３１の値は“１”になり、その後連携処理のプログラムが終了するまで、その値は変わらない。逆に言えば、Ｖビット３１が“０”であるのは、当該ブロックがサーバの外部記憶装置からのデータの格納場所であり、かつサーバの共通領域２０の当該ブロックにロードされたデータを、当該モバイル端末の共通領域１０の当該ブロックにまだ書き写していない段階のみである。
【００２５】
Ｃビット３２は、１ブロックにつき１つ設けられ、当該ブロックにロードしたデータを相手コンピュータ（サーバ又はモバイル端末）にコピーしたか否かのステータスを示す。当該ブロックのデータを相手コンピュータの共通領域２０の同じブロックにコピーするとＣビット３２の値は“１”にセットされる。逆に、相手コンピュータから当該ブロックのデータをコピーしてくると、Ｃビット３２の値は“０”にセットされる。ここで、ブロックのデータを相手コンピュータにコピーすると、相手コンピュータ側でそのデータに変更が加えられる可能性がある。そこで、この実施の形態では、Ｃビット３２が“０”のときに、連携処理のプログラムに対し当該ブロックへのアクセスを許可ようにする。そして、Ｃビット３２が“１”の場合には、当該ブロックへのアクセスをすぐには許可せず、相手コンピュータから最新のデータを当該ブロックへコピーした後にアクセスを許可するようにする。この意味で、Ｃビット３２は、自コンピュータのプログラムからの当該ブロックへのアクセス権を示すものと言える。すなわちＣ＝“０”の場合はアクセス権有り、Ｃ＝“１”の場合はアクセス権無しである。
【００２６】
Ｄビット３３は、各サブブロック毎に設けられる。図２では１ブロックはｍ個のサブブロックに分割されているので、１ブロックのメモリ制御ステータスフィールド３０には、Ｄ０からＤｍ−１までのｍ個のＤビット３３がある。Ｄビット３３は、各々対応するサブブロックのデータに対して変更を行ったか否かを示す。Ｄビット３３の値は、当該サブブロックのデータが、相手コンピュータからコピーを行ったあと変更していない間は“０”であり、変更を行うと“１”にセットされる。この実施の形態では、書き込みや書き戻しはサブブロックを単位として行い、Ｄビット３３はそのような書き込みや書き戻しを行うか否かの判断基準として用いる。
【００２７】
サーバのメモリ制御ステータスフィールド３０は、Ｖビット３１の代わりにＩビット３４を持つ他は、モバイル端末のメモリ制御ステータスフィールド３０と同じである。Ｉビット３４は、モバイル端末側のＶビット３１に対応するものであり、当該ブロックのデータが未ロードであるか否かのステータスを示す。Ｉビット３４の値が“１”の場合は未ロード、“０”の場合はロード済みであることを示す。Ｖビット３１の場合とは、値と状態内容との関係が逆になるだけで、その役目と値の遷移は全く同じである。例えばサーバ側のデータベースをモバイル端末から操作するためのアプリケーションでは、共通領域にロードするデータは、サーバの支配下にあるので、そのアプリケーションの開始時にはＩビット３４は“０”にセットされる。
【００２８】
このようなメモリ制御ステータスフィールド３０は、メモリの中にハードウエアとして作り込むことができる。また、メモリ制御ステータスフィールド３０を多数含んだステータスメモリとこのステータスメモリについての制御のための制御部等とを含むメモリ制御ステータス処理機構を、メモリとは別体に作成し、これをメモリに付加する構成も可能である。この場合、既存のメモリに対して外部構成を付加するのみでよいというメリットがある。
【００２９】
図３にモバイル端末のメモリ制御ステータスビットＶＣＤのとりうる組合せとその意味を示す。図３に示すように、ステータスビットの組合せはＶＣＤ＝“１００”，“１０１”，“１１−”，“０−−”の４種類である。なお、ここで例えばＶＣＤ＝“１０１”と表記した場合、Ｖ＝“１”，Ｃ＝“０”，Ｄ＝“１”を意味するものとする。表記“−”は、そのビットの値に意味がないことを示す。なお、ここで、ＶＣＤの組におけるＤは、各サブブロック毎のＤビット３３の論理和（ＯＲ）とする。
【００３０】
ＶＣＤ＝“０−−”は、モバイル端末の共通領域１０の当該ブロックが初期状態であり、その内容が無効であることを示す。ＶＣＤ＝“０−−”となるのは、当該ブロックにロードするデータがサーバの外部記憶装置に由来し、かつそのブロックにサーバからデータを書き写していない場合のみである。サーバからデータを書き写すと、Ｖ＝“１”に変わり、Ｃ，Ｄの各ビットに意味が出てくる。ＶＣＤ＝“１００”の状態は、当該ブロックのデータが最新、かつ当該ブロックに対するアクセス権がモバイル端末にあり、かつサーバから当該ブロックに書き写したデータに対して変更を加えていないことを示す。ＶＣＤ＝“１０１”の状態は、当該ブロックのデータが最新、かつ当該ブロックに対するアクセス権がサーバにあり、かつ当該ブロックのデータ内容を変更したことを意味する。そして、ＶＣＤ＝“１１−”は、当該ブロックのデータをサーバにコピーし、アクセス権をサーバに渡したことを意味する。この状態のときには、そのブロックのデータに対しサーバ側で変更が加えられている可能性がある。
【００３１】
図４にサーバのメモリ制御ステータスビットＩＣＤのとりうる組合せとその意味を示す。図４に示すように、ステータスビットの組合せはＩＣＤ＝“０００”，“００１”，“０１−”，“１−−”の４種類である。ＩＣＤ＝“０００”の状態は、サーバの共通領域２０の当該ブロックのデータが最新であり、かつ当該ブロックに対するアクセス権がサーバにあり、かつ当該ブロックのデータを変更していないことを示す。同様にＩＣＤ＝“００１”の状態は、当該ブロックのデータが最新、かつ当該ブロックに対するアクセス権がサーバにあり、かつ当該ブロックのデータ内容を変更したことを意味する。また、ＩＣＤ＝“０１−”は、当該ブロックのデータをモバイル端末にコピーし、アクセス権をモバイル端末に渡したことを意味する。この状態のときには、モバイル端末側で当該ブロックのデータが変更されている可能性がある。最後に、ＩＣＤ＝“１−−”は、当該ブロックが初期状態であり、その内容が無効であることを示す。ＩＣＤ＝“１−−”となるのは、当該ブロックにロードするデータがモバイル端末の外部記憶装置に由来し、かつそのブロックにモバイル端末からデータを書き写していない場合のみである。
【００３２】
次に、この実施の形態におけるメモリアクセス制御について説明する。
【００３３】
まず、モバイル端末上の連携処理用のプログラムから共通領域１０に対してアクセス要求があった場合の動作について説明する。この場合まず、アクセス要求の対象アドレスの属するブロックのメモリ制御ステータスフィールド３０を参照して、そのブロックのステータスを調べる。
【００３４】
ここでそのブロックのステータスがＶ＝“０”であった場合、まだそのブロックに対して有効なデータがロードされていないということなので、そのデータをサーバからコピーする。このために、メモリ例外割込を発生させてプログラムの実行を中断し、割込ルーチンを起動する。この割込ルーチンでは、サーバと通信を行い、サーバに対してそのブロックのアドレスを通知し、そのブロックのデータの転送を要求する。この要求を受けたサーバは、そのブロックのステータスを調べ、この場合ステータスはＩＣ＝“００”（有効かつ最新のデータ）を示しているので、そのブロックのデータをモバイル端末に転送し、そのブロックのＣビット３２を“１”にセットする。サーバからデータの転送を受けたモバイル端末は、そのデータを当該ブロックに書き込み、当該ブロックのメモリ制御ステータスフィールド３０をＶＣＤ＝“１００”にセットして割込ルーチンを終了する。これにより、モバイル端末で当該ブロックへのアクセスが可能になり、連携処理のためのプログラムの割り込まれていた命令が再開され、目的のアドレスへのアクセスが行われる。そして、このアクセスがライトの場合は、そのアドレスの属するサブブロックのＤビット３３が“１”にセットされる。リードアクセスの場合はステータスは変更されない。
【００３５】
アクセス対象のブロックのステータスがＶＣ＝“１１”であった場合、当該ブロックへのアクセス権が相手側、すなわちサーバにあり、サーバ側でデータ変更が加えられている可能性がある。したがって、この場合メモリ例外割込を発生させ、割込ルーチンを起動する。この割込ルーチンでは、サーバと通信を行い、サーバに対して当該ブロックのアドレスを伝える。これに応じ、サーバは、通知されたブロックのメモリ制御ステータスフィールド３０を調べる。この場合、サーバの当該ブロックのステータスは、ＩＣＤ＝“００１”かＩＣＤ＝“０００”のいずれかである。ＩＣＤ＝“００１”の場合、サーバ側でそのブロックのデータを変更したということなので、サーバは、モバイル端末に対してそのブロックのデータを転送し、そのブロックのＣビット３２を“１”に変更する。以降のモバイル端末におけるメモリ制御の動作は、前述のＶ＝“０”の場合と同じである。一方、サーバの当該ブロックのステータスがＩＣＤ＝“０００”の場合は、サーバ側でそのブロックのデータの変更が行われていないということなので、サーバはそのブロックのＣビット３２を“１”に変更した上で、モバイル端末に対してデータ変更のない旨の信号を返す。これを受けたモバイル端末は、そのブロックのステータスをＶＣＤ＝“１００”に変更し、割込ルーチンを終了する。この場合、サーバからモバイル端末へのデータのコピーは行われない。
【００３６】
アクセス対象のブロックのステータスがＶＣ＝“１０”であった場合、モバイル端末はそのブロックに対するアクセス権を持っている（すなわちそのブロックの内容は有効かつ最新である）ので、正常にアクセスされる。リードアクセスの場合は、そのブロックについてのステータスの変更は行われず、ライトアクセスの場合は対象アドレスの属するサブブロックのＤビット３３が“１”にセットされる。
【００３７】
サーバ側の連携処理用のプログラムから共通領域２０にアクセスがあった場合の動作は、ステータスのＩビット３４の意味がモバイル端末のＶビットと反対になるところが変わるだけで、ステータスを利用したメモリ制御の方針・手順は上記モバイル端末側のものと同じである。例えば、アクセス要求の対象アドレスの属するブロックへのアクセス権が相手側、すなわちモバイル端末にある場合（すなわちＣ＝“１”）、割込ルーチンを起動し、モバイル端末に対して当該ブロックのステータスを問い合わせ、モバイル端末でそのブロックのデータが変更されている場合（Ｄ＝“１”）、モバイル端末からサーバに当該ブロックのデータをコピーし、モバイル端末側の当該ブロックのステータスをＣ＝“１”に、サーバ側のステータスをＩＣＤ＝“０００”にセットし、サーバでは割込ルーチンを終了する。モバイル側でそのブロックが変更されていない場合（Ｄ＝“０”）は、データのコピーは行わず、モバイル端末側のステータスをＣ＝“１”に、サーバ側のステータスをＩＣＤ＝“０００”にセットし、サーバでは割込ルーチンを終了する。
【００３８】
次に、図５を参照して、この実施の形態のメモリ管理方式におけるステータス遷移を説明する。図５に示されるのは、共通領域１０及び２０にサーバの外部記憶装置に由来するデータをロードする場合の状態遷移である。この図では、モバイル端末とサーバの同一ブロックのステータスＶＣＤ及びＩＣＤをひとまとめにして１つのステータスとして扱い、“ＶＣＤ  ＩＣＤ”の順に並べて表記している。
【００３９】
まず、連携処理が開始されたとき、サーバの共通領域２０にデータがロードされ、ステータスは“０−−  ０００”となる。サーバでリードアクセスが繰り返されている間はステータスは変化せず、サーバでライトアクセスが行われるとステータスは“０−−  ００１”に遷移する。以降、サーバのリード又はライトアクセスが繰り返されている間は、そのステータスは変化しない。なお、ステータスが“０−−  ０００”及び“０−−  ００１”の場合は、まだ当該ブロックのデータはモバイル端末側にはロードされていない。
【００４０】
さて、これらの状態において、モバイル端末側で当該ブロックにリードアクセス要求がなされると、サーバからモバイル端末に当該ブロックのデータがコピーされ、ステータスが“１００  ０１−”に遷移する。また、同じ状態においてモバイル端末側でライトアクセス要求がなされた場合は、当該ブロックのデータがサーバからモバイル端末へコピーされ、ステータスが“１０１  ０１−”に遷移する。
【００４１】
“１００  ０１−”の状態で、モバイル端末側でリードアクセスが繰り返されている間はそのステータスは変化しないが、モバイル端末側でライトアクセスがあるとステータスは“１０１  ０１−”に遷移する。
【００４２】
ステータスが“１００  ０１−”又は“１０１  ０１−”の状態で、サーバ側でリードアクセスがあった場合はステータスは“１１−  ０００”に遷移し、サーバ側でライトアクセスがあった場合はステータスは“１１−  ００１”に遷移する。ステータス“１１−  ０００”はサーバのライトアクセスでステータス“１１−  ００１”に遷移する。
【００４３】
そして、ステータスが“１１−  ０００”又は“１１−  ００１”の状態で、モバイル端末側でリードアクセスがあった場合はステータスは“１００  ０１−”に遷移し、モバイル端末側でライトアクセスがあった場合はステータスは“１０１  ０１−”に遷移する。
【００４４】
このように、いったんモバイル端末側にデータがコピーされると、それ以降は、図５の右側の４つのステータス、すなわち“１００  ０１−”、“１０１  ０１−”、“１１−  ０００”、“１１−  ００１”の間でステータスが遷移する。
【００４５】
このようなステータス遷移により、モバイル端末とサーバとの間での共通領域１０と２０の一貫性が維持される。なお、以上では、モバイル端末の共通領域１０及びサーバの２０にサーバの外部記憶装置に由来するデータをロードする場合の状態遷移を示したが、モバイル端末の外部記憶装置に由来するデータをロードした場合の状態遷移は、初期状態が“１００  １−−”から始まる点が異なるだけで、遷移の様子は上記と同様であり、いったんサーバ側にデータがコピーされた後は、図５の右側の４つのステータスの間を遷移することになる。
【００４６】
なお、以上に説明したメモリ管理の流れは、メモリ例外割込が発生したときにサーバ・モバイル端末間で通信が可能な場合のことである。しかし、モバイル端末とサーバとの間の通信は、一般には無線通信であり、メモリ例外割込が発生したときに必ず通信接続できるとは限らない。メモリ例外割込の割込ルーチンにおいて、相手コンピュータ（サーバ又はモバイル端末）との通信ができなかった場合、この実施の形態では、アクセス要求元の連携処理プログラムに対して通信接続が不可能な旨を通知すると共に、更にアクセス対象のアドレスに対応するブロック（サブブロック）のステータス（ＶＣＤ又はＩＣＤ）を通知する。連携処理プログラムの処理内容によってはデータが最新でなくても用に足りる場合があるので、ステータスを知らせることにより、連携処理プログラムはそのステータスに応じて予め定めた範囲で、限定的なデータ利用を行うことができる。
【００４７】
以上説明したメモリ管理方式は、ハードウエアとオペレーティングシステムにより実現することができる。すなわち、ハードウエアとしては、メモリの各ブロックごとのメモリ制御ステータスフィールドと、アクセス先のアドレスに応じたブロックのメモリ制御ステータスフィールドを参照してステータスが所定の条件（アクセス権無しなど）を満足する場合にメモリ例外割込を発生させるロジックと、を設ければよい。また、オペレーティングシステムには、メモリ例外割込によって呼ばれる上記の割込ルーチンと、相手コンピュータの割込ルーチンによるデータ転送要求等に対応するためのルーチンを組み込めばよい。このように、この方式は、既存のメモリアーキテクチャに対して比較的簡単なハードウエアを追加するだけで実現できる。
【００４８】
以上、連携処理が開始し、実行されている間のメモリ管理について説明したが、モバイル端末側の連携処理用のプログラムが終了した場合等には、サーバからモバイル端末にコピーしていた共通領域のデータを書き戻す必要が出てくる。このような場合、この実施の形態では、Ｄビット３３によりサブブロック単位でデータの変更の有無を管理しているので、変更のあった（Ｄ＝“１”）ブロックのみを書き戻すように構成することができ、この結果通信時間の節約が可能になる。また、モバイル端末の共通領域のあるブロックを他のプログラムの使用に供するため、そのブロックのデータをサーバに書き戻す必要が出てくることも考えられるが、このような場合の書き戻しも、変更のあったサブブロックのみに限定すれば、通信時間を節約できる。
【００４９】
なお、以上の例では、アクセス権がない場合のサーバ・モバイル端末間のデータ転送をブロック単位で行ったが、この実施の形態ではデータの変更の有無をサブブロック単位で管理しているので、このデータ転送を前述のサブブロック単位で行うようにしてももちろんよい。
【００５０】
図６は、この実施の形態のメモリ管理方式を用いたモバイルコンピューティングシステムの要部構成を示す機能ブロック図である。
【００５１】
図において、モバイル端末４０とサーバ５０とは、公衆回線網などの通信回線６０を介して通信可能となっている。通信回線６０の媒体としては、ＩｒＤＡ等の赤外線通信、無線ＬＡＮ、ＰＨＳ、携帯電話、Ｅｈｔｅｒｎｅｔなど様々なものが考えられる。なお、伝送容量等の通信回線６０の特性に応じ、メモリ管理のためのブロックのサイズなどを調整することが好ましい。
【００５２】
この図６では、モバイル端末４０及びサーバ５０とで連携処理用のプログラム４１及び５１が実行されている状態を示している。例えばモバイル端末４０側のプログラム４１は、データベース操作プログラムやグループスケジュール管理プログラムなどであり、サーバ５０側のプログラム５１は、データベース管理プログラムなど、モバイル端末４０側のプログラム４１に対してサービスを提供するためのプログラムである。一般に、サーバ５０のサービス用のプログラムは常時動作しており、モバイル端末４０で連携処理用のプログラム４１が起動され、そのプログラム４１からサーバ５０の対応するプログラム５１にアクセスがあると、両者の間での連携処理が開始される。
【００５３】
モバイル端末４０とサーバ５０とは、互いの通信処理部４８及び５８により、通信回線６０を介して互いに通信可能となっている。
【００５４】
モバイル端末４０とサーバ５０とは、前述のメモリ管理方式を実現するために、互いに同様のメモリ管理機構を有している。すなわち、モバイル端末４０はメモリ４２の中に設けられたメモリ制御ステータス部４３とメモリ制御部４４とにより、サーバ５０はメモリ５２の中に設けられたメモリ制御ステータス部５３とメモリ制御部５４とにより、この実施の形態のメモリ管理方式を実現している。メモリ４２及び５２は、同サイズのブロックごとに分割管理されており、メモリ４２及び５２の各々の回路の一部として各ブロックのステータスを示すメモリ制御ステータス部４３が設けられている。メモリ制御ステータス部４３及び５３は、それぞれメモリ４２、５２のメモリ空間の各ブロック毎に対応したメモリ制御ステータスフィールドを持つ。メモリ制御ステータスフィールドの構成は既に図２を参照して説明したとおりである。なお、メモリ制御ステータスフィールドは、メモリ空間の全ブロックそれぞれに設けてもよいが、共通領域に選択可能なアドレス範囲を予め限定しておき、その範囲についてのみ設けるようにしてもよい。
【００５５】
メモリ制御部４４及び５４は、プログラム４１及び５１からメモリ４２及び５２へのアクセスの制御を行う。メモリ制御部４４及び５４は、この実施の形態のメモリ管理方式を実現するための機構として、共通領域設定部４５及び５５、アクセス管理部４６及び５６、コピー管理部４７及び５７をそれぞれ有している。
【００５６】
共通領域設定部４５及び５５は、モバイル端末４０とサーバ５０との連携処理のために、プログラム４１及び５１で共有する共通領域の設定を行う。すなわち、モバイル端末４０側で連携処理用のプログラム４１が起動された場合、それを検知したメモリ制御部４４では、共通領域設定部４５が、通信回線６０を介してサーバ５０のメモリ制御部５４の共通領域設定部５５と情報のやり取りを行い、互いのメモリ空間の空き領域のうちでアドレスが共通した部分を必要なサイズだけ確保し、それぞれその領域を共通領域（図１、図２参照）として設定する。共通領域には、モバイル端末４０のプログラム４１とサーバ５０のプログラム５１が共用するデータをロードするようにする。例えばモバイル端末４０からサーバ５０の持つデータベースを操作するアプリケーションの場合、共通領域にはそのデータベースのデータなどがロードされる。共通領域には、両者で共用するプログラムなどをロードしてももちろんよいが、両者間の通信による処理遅れなどを考慮すると、リアルタイム性への要求が強いプログラムよりも、さほどリアルタイム性が要求されないデータを記憶するようにした方が好ましい。実用面では、メモリ資源の限られたモバイル端末４０から大容量記憶を持つサーバ５０のデータを利用することが一般的と考えられるが、このような場合、まずサーバ５０の共通領域（図２の共通領域２０）に対してサーバ５０のデータベースなどから必要なデータがロードされる。この段階では、モバイル端末４０側の共通領域にはそのデータは送られない。モバイル端末４０側で共通領域のそのデータの属するブロックに対してアクセスがあって初めて、モバイル端末４０側にそのブロックのデータが送られる。このような仕組みにより、使用されないデータをサーバ５０・モバイル端末４０間で受け渡す必要がなくなり、通信時間等の処理時間が短縮される。特に、モバイル端末４０側でのプログラム４１の立ち上げに要する時間が大幅に短縮できる。
【００５７】
アクセス管理部４６及び５６は、プログラム４１、５１からメモリ４２、５２へのアクセス要求に対し、メモリ制御ステータス部４３、５３を参照し、ステータスを用いた前述のメモリ管理方式に従ってそのアクセスを制御する。詳しい説明は前記の繰り返しになるので避けるが、例えばアクセス管理部４６について簡単に説明すると、アクセス管理部４６は、プログラム４１からアクセス要求されたアドレスの属するブロックのステータスをメモリ制御ステータス部４３を参照して調べ、そのブロックに対してモバイル端末４０側にアクセス権があれば（すなわちＣビット３２が“０”であれば）、そのアクセスを許し、アクセス内容（リード又はライト）に応じてそのステータスを更新する。アクセス権がなければ、アクセス管理部４６は、サーバ５０のメモリ制御部５４と通信処理部４８を介して通信を行い、サーバ５０側で当該ブロックのデータのステータスを問い合わせ、サーバ５０側でそのブロックのデータが変更されている場合にはそのブロックのデータをサーバ５０からコピーしてくる。また、そのブロックのステータスが未ロード（Ｖ＝“０”）の場合は、サーバ５０に対してそのブロックのデータの転送を要求し、これに応じて転送されてきたデータをメモリ４２の当該ブロックにコピーする。また、アクセス管理部４６は、アクセス権無しなどの場合にサーバ５０に通信しようとして接続ができなかった場合は、プログラム４１に対して接続不可の旨とブロックのステータスを通知し、プログラム４１が所定の対応処理をできるようにする。サーバ５０のアクセス管理部５５の機能も同様である。
【００５８】
アクセス権無しの場合などにおけるアクセス管理部４６、５６からの相手コンピュータ（サーバ５０又はモバイル端末４０）側への通信に対応するのが、コピー管理部５７、４７である。コピー管理部４７、５７は、相手コンピュータのアクセス管理部５６、４６からブロックのデータの転送要求があれば、それに応じて自コンピュータの共通領域の当該ブロックのデータを相手コンピュータに対して転送する。また、アクセス管理部５６、４６からブロックのステータスが照会された場合は、コピー管理部４７、５７は、自コンピュータの共通領域の当該ブロックのステータスをメモリ制御ステータス部４３、５３を参照して調べ、そのブロックのデータが変更がない（Ｄビット＝“０”）場合はその旨を示す情報を、変更があった（Ｄビット＝“１”）場合はそのブロックのデータを相手のアクセス管理部５６、４６に対して返す。
【００５９】
このような機構により、前述のメモリ管理方式が実現される。なお、実装面からいうと、共通領域設定部４５及び５５、コピー管理部４７及び５７は、モバイル端末４０、サーバ５０各々のオペレーティングシステム内の処理ルーチンとして実現できる。アクセス管理部４６及び５６、メモリ制御ステータス部４３及び５３に保持されたステータス情報を調べ、それに応じてメモリ例外割込を発生させるハードウエア部分と、その割込によって起動され、ステータスに従ったアクセス管理動作を行う割込ルーチンとによって実現できる。
【００６０】
なお、このモバイルコンピューティングシステムにおいて、モバイル端末４０とサーバ５０との通信回線６０を介した通信接続は、連携処理が完了するまで維持しておいてもよいが、通信をアナログ電話回線を用いて行う場合などには通信料金が問題となる。このような場合には、共通領域のデータ転送などの必要が生じた場合にのみ通信を行うようにすればよい。
【００６１】
以上、この発明の好適な実施の形態について説明した。以上説明したように、この実施の形態によれば、モバイル端末又はサーバ上のプログラムは、自コンピュータのメモリにアクセスするのと全く同様にして相手コンピュータが持っているデータにアクセスできる。このような機能は、オペレーティングシステムとハードウエアのレベルで提供される。したがって、通信を介した連携処理のためのプログラムは、通信処理のことをほとんど考慮せずに作成することができる。
【００６２】
なお、以上の例では、モバイル端末とサーバとで、メモリの共通領域としてアドレスが共通した領域を用いたが、これは必須ではない。共通領域は、モバイル端末とサーバとの間で互いのアドレスの対応づけができればよく、共通アドレスである必要はない。例えば、モバイル端末及びサーバに、各自の共通領域の先頭アドレスを保持するレジスタをそれぞれ設ければ、そのようなアドレスの対応づけは可能であり、このような態様もこの実施の形態の範囲に含まれる。
【００６３】
【発明の効果】
この発明は、以上説明したように構成されているので、以下に示すような効果を奏する。
【００６４】
この発明に係るメモリ管理方法によれば、２台のコンピュータの間での連携処理のために、各コンピュータそれぞれのメモリ空間の一部を互いに共通領域となるように構成し、共通領域については同時には一方のコンピュータからのアクセスを認めるよう共通領域についてのアクセス権等のステータスを管理し、アクセス権がないコンピュータでアクセス要求があった場合には、他方のコンピュータから共通領域のデータをコピーしてアクセスを認めるようにしたことにより、アクセスを要求するプログラムは通常のメモリアクセスと同様に動作することにより、相手のコンピュータの持つデータにアクセスすることができる。したがって、２台のコンピュータで連携処理を行うようなアプリケーションでも、そのためのプログラムは両コンピュータ間での通信を考慮する必要がなくなり、プログラム開発が容易となる。
【００６５】
また、共通領域のステータスとしてその領域のデータを変更したか否かの情報を管理し、変更されていない場合は両コンピュータ間でのデータのコピーを省略し、アクセス権の移動のみを行うことにより、両コンピュータ間での通信コストを低減することができる。
【００６６】
また、アクセス権のない方のコンピュータから他方のコンピュータにデータを要求する際、通信回線による通信が不可能な場合に、アクセス要求元のプログラムに対して通信不能の旨と共通領域のステータスを通知することにより、そのプログラムは、共通領域のデータをそのステータスに応じて限定的に利用することが可能になる。
【００６７】
また、共通領域を複数のブロックに分割し、ブロック単位でステータス及びアクセスの管理を行うことにより、両コンピュータ間でのデータ転送の効率化が図れる。
【００６８】
また、この発明に係るコンピュータは、メモリ空間の一部に、共通領域設定部により相手コンピュータとの共通領域を設定し、メモリ制御ステータス部においてこの共通領域のステータスを保持し、アクセス管理部及びコピー管理部により相手コンピュータとの間でステータスを用いて共通領域のデータ内容の一貫性を維持することにより、アクセスを要求するプログラムは通常のメモリアクセスと同様に動作することにより、相手のコンピュータの持つデータにアクセスすることができる。
【００６９】
また、この装置において、共通領域のデータを相手コンピュータからコピーしようとする際、相手コンピュータに対して共通領域のデータの変更を行ったか否か確認し、変更のない場合はデータコピーを省略してアクセス権のみを移動する用意したことにより、連携処理のための通信量を減らすことができる。
【００７０】
また、この装置において、相手コンピュータに対する通信が不可能な場合に、アクセス要求元のプログラムに対して通信不能の旨と共通領域のステータスを通知することにより、そのプログラムは、共通領域のデータをそのステータスに応じて限定的に利用することが可能になる。
【００７１】
また、この装置において、共通領域を複数のブロックに分割し、ステータス及びアクセスの管理をブロック毎に行うことにより、両コンピュータ間でのデータ転送の効率化が図れる。
【００７２】
また、この装置において、連携処理のためのプログラムからのアクセス要求を受けて初めてそのアクセス要求に係るアドレスを含むブロックのデータを相手コンピュータからコピーするようにすることにより、一度も使わないデータを相手コンピュータからもらって来るというような無駄を大幅に減らすことができ、通信コストを低減できる。
【図面の簡単な説明】
【図１】  実施の形態のメモリ管理方法の概念を示す図である
【図２】  モバイル端末とサーバのメモリ空間の共通領域の一貫性管理のための機構を説明する図である。
【図３】  モバイル端末のメモリ制御ステータスの意味を説明するための図である。
【図４】  サーバのメモリ制御ステータスの意味を説明するための図である。
【図５】  実施の形態のメモリ管理におけるメモリ制御ステータスの遷移を示す状態遷移図である。
【図６】  実施の形態に係るモバイルコンピューティングシステムの要部構成を示す機能ブロック図である。
【符号の説明】
１−１  モバイル端末Ａメモリ空間、１−２  モバイル端末Ｂメモリ空間、１−３  モバイル端末Ｃメモリ空間、２−１，２−２，２−３，４−１，４−２，４−３  共通領域、３  サーバメモリ空間、１０  モバイル端末の共通領域、２０  サーバの共通領域、３０  メモリ制御ステータスフィールド、３１  Ｖビット、３２  Ｃビット、３３  Ｄビット、３４  Ｉビット、４０  モバイル端末、４１，５１  プログラム、４２，５２  メモリ、４３，５３  メモリ制御ステータス部、４４，５４  メモリ制御部、４５，５５  共通領域設定部、４６，５６アクセス管理部、４７，５７  コピー管理部、４８，５８  通信処理部。
【図１】
0004326061.tif 000002
【図２】
0004326061.tif 000003
【図３】
0004326061.tif 000004
【図４】
0004326061.tif 000005
【図５】
0004326061.tif 000006
【図６】
0004326061.tif 000007