(57)【特許請求の範囲】
【請求項１】
第１記憶手段と第２記憶手段とを含み、前記第２記憶手段に対するアクセス要求に応じて前記第２記憶手段に記憶された情報のうちの所定情報を前記第１記憶手段に転送し、この前記第１記憶手段に転送された情報に基づいて情報処理を行わせるメモリ管理装置であって、
前記第２記憶手段に対し過去にアクセス要求されたページ番号、アクセス回数及び先回アクセス要求されたページ番号とのページ番号の差分情報で示されるアクセスパターンを蓄積する履歴蓄積手段と、
前記第２記憶手段に対する最新のアクセス要求から所定数溯ったアクセス要求までのページ番号、アクセス回数及び先回アクセス要求されたページ番号とのページ番号の差分情報で示される現在のアクセスパターンと、前記履歴蓄積手段に蓄積された過去のアクセスパターンとを比較し、現在のアクセスパターンにおけるページ番号及びページ番号の差分情報と近似するページ番号及びページ番号の差分情報を有するアクセスパターンを前記過去のアクセスパターンから検索し、検索された過去のアクセスパターンにおけるページ番号の差分情報のそれ以降の情報から次回アクセス要求されると予測されるページ番号を算出するページ先読み手段とを含むことを特徴とするメモリ管理装置。
【請求項２】
さらに前記ページ先読み手段にて算出された予測ページに対応する情報を前記第２記憶手段より読出し、その読出した情報を前記第１記憶手段に書込む予測情報転送手段を含むことを特徴とする請求項１記載のメモリ管理装置。
【請求項３】
前記履歴蓄積手段に蓄積されるアドレス及びアクセス回数を含むアクセスパターンは一定周期ごとに分割して蓄積され、前記ページ先読み手段は前記分割されたアクセスパターンと前記第２記憶手段に対する前記現在のアクセスパターンとを照合し予測ページを算出することを特徴とする請求項１又は２記載のメモリ管理装置。
【請求項４】
前記ページ先読み手段は前記照合により前記第２記憶手段に対する前記現在のアクセスパターンと近似するアクセスパターンを前記履歴蓄積手段にて分割されたアクセスパターンの中から抽出することを特徴とする請求項３記載のメモリ管理装置。
【請求項５】
前記ページ先読み手段は前記履歴蓄積手段にて分割されたアクセスパターンのうち前記第２記憶手段に対する前記現在のアクセスパターンと近似するアクセスパターンに含まれる差分情報から予測ページを算出することを特徴とする請求項３又は４記載のメモリ管理装置。
【請求項６】
さらに前記第１記憶手段に書込まれた情報のうちどのページ番号の情報を前記第２記憶手段に書戻すかを決定する書戻しページ決定手段を含み、
前記書戻しページ決定手段は前記ページ先読み手段にて算出された予測ページに該当しないページを書戻しページとして選択することを特徴とする請求項１乃至５いずれかに記載のメモリ管理装置。
【請求項７】
前記第２記憶手段に記憶される情報はソフトウエアをシミュレート実行するための情報であることを特徴とする請求項１乃至６いずれかに記載のメモリ管理装置。
【請求項８】
第１記憶手段と第２記憶手段とを含み、前記第２記憶手段に対するアクセス要求に応じて前記第２記憶手段に記憶された情報のうちの所定情報を前記第１記憶手段に転送し、この前記第１記憶手段に転送された情報に基づいて情報処理を行わせるメモリ管理装置におけるメモリ管理方法であって、
前記第２記憶手段に対し過去にアクセス要求されたページ番号、アクセス回数及び先回アクセス要求されたページ番号とのページ番号の差分情報で示されるアクセスパターンを蓄積する履歴蓄積ステップと、
前記第２記憶手段に対する最新のアクセス要求から所定数溯ったアクセス要求までのページ番号、アクセス回数及び先回アクセス要求されたページ番号とのページ番号の差分情報で示される現在のアクセスパターンと、前記履歴蓄積ステップにて蓄積された過去のアクセスパターンとを比較し、現在のアクセスパターン
におけるページ番号及びページ番号の差分情報と近似するページ番号及びページ番号の差分情報を有するアクセスパターンを前記過去のアクセスパターンから検索し、検索された過去のアクセスパターンにおけるページ番号の差分情報のそれ以降の情報から次回アクセス要求されると予測されるページ番号を算出するページ先読みステップとを含むことを特徴とするメモリ管理方法。
【請求項９】
さらに前記ページ先読みステップにて算出された予測ページに対応する情報を前記第２記憶手段より読出し、その読出した情報を前記第１記憶手段に書込む予測情報転送ステップを含むことを特徴とする請求項８記載のメモリ管理方法。
【請求項１０】
前記履歴蓄積ステップにて蓄積されるアドレス及びアクセス回数を含むアクセスパターンは一定周期ごとに分割して蓄積され、前記ページ先読みステップは前記分割されたアクセスパターンと前記第２記憶手段に対する前記現在のアクセスパターンとを照合し予測ページを算出することを特徴とする請求項８又は９記載のメモリ管理方法。
【請求項１１】
前記ページ先読みステップでは前記照合により前記第２記憶手段に対する前記現在のアクセスパターンと近似するアクセスパターンを前記履歴蓄積ステップにて分割されたアクセスパターンの中から抽出することを特徴とする請求項１０記載のメモリ管理方法。
【請求項１２】
前記ページ先読みステップでは前記履歴蓄積ステップにて分割されたアクセスパターンのうち前記第２記憶手段に対する前記現在のアクセスパターンと近似するアクセスパターンに含まれる差分情報から予測ページを算出することを特徴とする請求項１０又は１１記載のメモリ管理方法。
【請求項１３】
さらに前記第１記憶手段に書込まれた情報のうちどのページ番号の情報を前記第２記憶手段に書戻すかを決定する書戻しページ決定ステップを含み、
前記書戻しページ決定ステップでは前記ページ先読みステップにて算出された予測ページに該当しないページを書戻しページとして選択することを特徴とする請求項８乃至１２いずれかに記載のメモリ管理方法。
【請求項１４】
前記第２記憶手段に記憶される情報はソフトウエアをシミュレート実行するための情報であることを特徴とする請求項８乃至１３いずれかに記載のメモリ管理方法。
【請求項１５】
第１記憶手段と第２記憶手段とを含み、前記第２記憶手段に対するアクセス要求に応じて前記第２記憶手段に記憶された情報のうちの所定情報を前記第１記憶手段に転送し、この前記第１記憶手段に転送された情報に基づく情報処理を行うコンピュータに用いられるメモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体であって、
前記メモリ管理プログラムは、
前記第２記憶手段に対し過去にアクセス要求されたページ番号、アクセス回数及び先回アクセス要求されたページ番号とのページ番号の差分情報で示されるアクセスパターンを蓄積する履歴蓄積ステップと、
前記第２記憶手段に対する最新のアクセス要求から所定数溯ったアクセス要求までのページ番号、アクセス回数及び先回アクセス要求されたページ番号とのページ番号の差分情報で示される現在のアクセスパターンと、前記履歴蓄積ステップにて蓄積された過去のアクセスパターンとを比較し、現在のアクセスパターンにおけるページ番号及びページ番号の差分情報と近似するページ番号及びページ番号の差分情報を有するアクセスパターンを前記過去のアクセスパターンから検索し、検索された過去のアクセスパターンにおけるページ番号の差分情報のそれ以降の情報から次回アクセス要求されると予測されるページ番号を算出するページ先読みステップとを、
コンピュータに実行させるためのものであることを特徴とする記録媒体。
【請求項１６】
前記メモリ管理プログラムは、さらに
前記ページ先読みステップにて算出された予測ページに対応する情報を前記第２記憶手段より読出し、その読出した情報を前記第１記憶手段に書込む予測情報転送ステップを、
コンピュータに実行させるためのものであることを特徴とする請求項１５記載の記録媒体。
【請求項１７】
前記履歴蓄積ステップにて蓄積されるアドレス及びアクセス回数を含むアクセスパターンは一定周期ごとに分割して蓄積され、前記ページ先読みステップでは前記分割されたアクセスパターンと前記第２記憶手段に対する前記現在のアクセスパターンとを照合し予測ページを算出することを特徴とする請求項１５又は１６記載の記録媒体。
【請求項１８】
前記ページ先読みステップでは前記照合により前記第２記憶手段に対する前記現在のアクセスパターンと近似するアクセスパターンを前記履歴蓄積ステップにて分割されたアクセスパターンの中から抽出することを特徴とする請求項１７記載の記録媒体。
【請求項１９】
前記ページ先読みステップでは前記履歴蓄積ステップにて分割されたアクセスパターンのうち前記第２記憶手段に対する前記現在のアクセスパターンと近似するアクセスパターンに含まれる差分情報から予測ページを算出することを特徴とする請求項１７又は１８記載の記録媒体。
【請求項２０】
前記メモリ管理プログラムは、さらに
前記第１記憶手段に書込まれた情報のうちどのページ番号の情報を前記第２記憶手段に書戻すかを決定する書戻しページ決定ステップを、
コンピュータに実行させるためのものであり、
前記書戻しページ決定ステップでは前記ページ先読みステップにて算出された予測ページに該当しないページを書戻しページとして選択することを特徴とする請求項１５乃至１９いずれかに記載の記録媒体。
【請求項２１】
前記第２記憶手段に記憶される情報はソフトウエアをシミュレート実行するための情報であることを特徴とする請求項１５乃至２０いずれかに記載の記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はメモリ管理装置及び管理方法並びに管理プログラムを記録した記録媒体に関し、特にソフトウェアをホストマシン上でシミュレート実行するシミュレートデバッガに実装するシミュレーションメモリを管理するメモリ管理装置及び管理方法並びに管理プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
図１６は従来のメモリ管理装置の一例の構成図である。このメモリ管理装置は、ソフトウェアをシミュレート実行するシミュレータのシミュレーションメモリを管理する。同図を参照すると、従来のメモリ管理装置１００は、アドレス変換部１０１と、ホストマシンメモリ１０２と、キャッシュ制御部１０３と、ディスク入出力部１０４と、ディスク装置１０５とを含んで構成されている。このディスク装置１０５には、シミュレーションに必要なシミュレーションメモリの実体が格納されている。
【０００３】
このような構成の中で、シミュレーションメモリのアクセス要求時、アドレス変換部１０１は、アクセスアドレスをシミュレーションメモリの位置に変換し、キャッシュ制御部１０３が、ホストマシンメモリ１０２上へのアクセスか、あるいは、ディスク装置１０５上にあるシミュレーションメモリへのアクセスかを判定する。
【０００４】
この際、ディスク装置１０５上のシミュレーションメモリへのアクセスの場合、一旦、ディスク装置１０５からホストマシンメモリ１０２への転送処理を行い、ホストマシンメモリ１０２上でのアクセスを行えるようにする。
【０００５】
この様に、ディスク装置１０５上のシミュレーションメモリからホストマシンメモリ１０２への読出し、あるいは、変更されたホストマシンメモリ１０２の内容をディスク装置１０５上へ書戻す処理が行われる。
【０００６】
【発明が解決しようとする課題】
しかし、従来の技術では、次のような問題点があった。第１の問題点は、ディスク装置１０５上のシミュレーションメモリからホストマシンメモリ１０２への読出しの際に、実際のシミュレーション実行が中断されてしまうということである。その理由は、従来のメモリ管理装置１００では、シミュレート対象ソフトウェアが、近い将来アクセスするページを予測出来ず、前もってディスク装置１０５からホストマシンメモリ１０２に転送しておくことができないためである。アクセスするページが、ホストマシンメモリ１０２上に存在しない場合、シミュレーションを中断してシミュレーションメモリをディスク装置１０５からホストマシンメモリ１０２上に転送しない限りシミュレーションは行えない、従って、従来のメモリ管理装置１００ではシミュレーションの中断が増えてしまうのである。
【０００７】
第２の問題点は、ディスク装置１０５へ無駄な書出し、読込みが多いということである。その理由は、ホストマシンメモリ１０２からページをディスク装置１０５へ書戻す際、近々使用されるかもしれないページが否かが判断出来ないために、近々使用されるのも関わらず、書戻してしまう可能性がある。従って、この書戻されたページに対してアクセスする場合に、再度、読出し動作を行う必要があるためである。
【０００８】
一方、先読みに関する技術が特開昭６０−２３０２４７号公報（以下、文献１という）、特開平４−３３２０５３号公報（以下、文献２という）、特開平６−２８９９９９号公報（以下、文献３という）、特開平８−１１５２５９号公報（以下、文献４という）及び特開平８−１８５２７２号公報（以下、文献５という）に開示されている。
【０００９】
文献１開示の技術は、ホストより、あるシリンダ，ヘッドの２〜３セクタのアクセス要求があった場合には、同一シリンダ，ヘッドの４〜７セクタについて先読みを行う、というものである。文献２開示の技術は、ＣＰＵのシミュレーションを行った結果のメモリの状態や、シミュレーションに従って状態の遷移する環境をファイルし、そのファイルに保存した内容を読出してメモリの状態やシミュレーションに従って状態の遷移する環境を復元する、というものである。文献３開示の技術は、ホストシステムから読出し要求されたセクタと同一の付属コードが書込まれているセクタのデータを先読みバッファに先読みして登録する、というものである。文献４開示の技術は、書込み要求がなされるたびに、その要求アドレスと過去にアクセスが行われたアドレスとの差を算出し、算出した差と一致するブロック数情報に対応する数値情報がカウントアップされるようにするとともに、ブロック数情報と数値情報との対応関係を基に、先読みを行うブロック数を決定する、というものである。そして、文献５開示の技術は、本コマンドのアドレスとレングスをアドレスレジスタに記録し、本コマンドのアドレスをキーとしてアドレステーブルをサーチし、次アクセスアドレスとレングス情報を取得する、というものである。
【００１０】
本発明は文献１〜５開示の先読み方式と全く相違する先読み方式を提供する。又、前述の第２の問題点を解決する手段は文献１〜５に開示されていない。そこで本発明の目的は、近い将来アクセスするページの予測が可能で、かつディスク装置への無駄な書出し及び読込みを防止することが可能なメモリ管理装置及び管理方法並びに管理プログラムを記録した記録媒体を提供することにある。
【００１１】
【課題を解決するための手段】
前記課題を解決するために本発明によるメモリ管理装置は、第１記憶手段と第２記憶手段とを含み、前記第２記憶手段に対するアクセス要求に応じて前記第２記憶手段に記憶された情報のうちの所定情報を前記第１記憶手段に転送し、この前記第１記憶手段に転送された情報に基づいて情報処理を行わせるメモリ管理装置であって、そのメモリ管理装置は前記第２記憶手段に対し過去にアクセス要求されたページ番号、アクセス回数及び先回アクセス要求されたページ番号とのページ番号の差分情報で示されるアクセスパターンを蓄積する履歴蓄積手段と、前記第２記憶手段に対する最新のアクセス要求から所定数溯ったアクセス要求までのページ番号、アクセス回数及び先回アクセス要求されたページ番号とのページ番号の差分情報で示される現在のアクセスパターンと、前記履歴蓄積手段に蓄積された過去のアクセスパターンとを比較し、現在のアクセスパターンにおけるページ番号及びページ番号の差分情報と近似するページ番号及びページ番号の差分情報を有するアクセスパターンを前記過去のアクセスパターンから検索し、検索された過去のアクセスパターンにおけるページ番号の差分情報のそれ以降の情報から次回アクセス要求されると予測されるページ番号を算出するページ先読み手段とを含むことを特徴とする。
【００１２】
又、本発明によるメモリ管理方法は、第１記憶手段と第２記憶手段とを含み、前記第２記憶手段に対するアクセス要求に応じて前記第２記憶手段に記憶された情報のうちの所定情報を前記第１記憶手段に転送し、この前記第１記憶手段に転送された情報に基づいて情報処理を行わせるメモリ管理装置におけるメモリ管理方法であって、そのメモリ管理方法は前記第２記憶手段に対し過去にアクセス要求されたページ番号、アクセス回数及び先回アクセス要求されたページ番号とのページ番号の差分情報で示されるアクセスパターンを蓄積する履歴蓄積ステップと、前記第２記憶手段に対する最新のアクセス要求から所定数溯ったアクセス要求までのページ番号、アクセス回数及び先回アクセス要求されたページ番号とのページ番号の差分情報で示される現在のアクセスパターンと、前記履歴蓄積ステップにて蓄積された過去のアクセスパターンとを比較し、現在のアクセスパターンにおけるページ番号及びページ番号の差分情報と近似するページ番号及びページ番号の差分情報を有するアクセスパターンを前記過去のアクセスパターンから検索し、検索された過去のアクセスパターンにおけるページ番号の差分情報のそれ以降の情報から次回アクセス要求されると予測されるページ番号を算出するページ先読みステップとを含むことを特徴とする。
【００１３】
又、本発明による記録媒体は、第１記憶手段と第２記憶手段とを含み、前記第２記憶手段に対するアクセス要求に応じて前記第２記憶手段に記憶された情報のうちの所定情報を前記第１記憶手段に転送し、この前記第１記憶手段に転送された情報に基づく情報処理を行うコンピュータに用いられるメモリ管理プログラムを記録したコンピュータ読み取り可能な記録媒体であって、前記メモリ管理プログラムは、前記第２記憶手段に対し過去にアクセス要求されたページ番号、アクセス回数及び先回アクセス要求されたページ番号とのページ番号の差分情報で示されるアクセスパターンを蓄積する履歴蓄積ステップと、前記第２記憶手段に対する最新のアクセス要求から所定数溯ったアクセス要求までのページ番号、アクセス回数及び先回アクセス要求されたページ番号とのページ番号の差分情報で示される現在のアクセスパターンと、前記履歴蓄積ステップにて蓄積された過去のアクセスパターンとを比較し、現在のアクセスパターンにおけるページ番号及びページ番号の差分情報と近似するページ番号及びページ番号の差分情報を有するアクセスパターンを前記過去のアクセスパターンから検索し、検索された過去のアクセスパターンにおけるページ番号の差分情報のそれ以降の情報から次回アクセス要求されると予測されるページ番号を算出するページ先読みステップとを、
コンピュータに実行させるためのものであることを特徴とする。
【００１４】
本発明によれば、アクセス要求のあったアドレス及びアクセス回数の履歴に基づき次回アクセス要求されると予測されるアドレスを算出するため、近い将来アクセスするページの予測が可能で、かつディスク装置への無駄な書出し及び読込みを防止することが可能となる。
【００１５】
【発明の実施の形態】
まず、本発明の概要について説明する。図１は本発明に係るメモリ管理装置の一例の構成図である。図１において、シミュレーションメモリ６が、ホストマシンメモリ３上では実現出来ない大容量のシミュレーションメモリを管理する場合、ページと呼ぶ一定の大きさのメモリを単位として、ディスク装置６を使用して管理する。シミュレーションメモリへのアクセスの際には、ホストマシンメモリ３に一旦読込み、ホストマシンメモリ３上で、シミュレーション実行を行う。このシミュレーションメモリへのアクセスをページ単位のアクセス履歴として記録し、記録したアクセス履歴を基に、規定時間間隔に於けるページのアクセスパターンを割り出して保存する。
【００１６】
シミュレーションメモリへのアクセスが要求され、ホストマシンメモリ３上に該当するページが無い場合、ディスク装置６から取出しが行われる。この際、次のアクセスが予測されるページを予めディスク装置６からホストマシン３のメモリへの転写を行うために、既に保存されているページのアクセスパターンを用いて、次に使用されるページを予測し、ディスク装置６からホストマシンメモリ３上への読出し、及びホストマシンメモリ３からディスク装置６への書出しを行う。
【００１７】
以下、本発明の実施の形態について添付図面を参照しながら説明する。図１は本発明の第１の実施の形態の構成を示している。図１を参照すると、本発明に係るメモリ管理装置１は、アドレス変換部２と、ホストマシンメモリ３と、キャッシュ制御部４と、ディスク入出力部５と、ディスク装置６と、アクセスパターン蓄積部７と、ページ先読み部８とを含んで構成されている。
【００１８】
これらの構成部分の概略は次のとおりである。アドレス変換部２は、シミュレーション対象のソフトウェアからアクセスされるアドレスを、ディスク装置６上のシミュレーションメモリの位置に変換する機能を持っている。ホストマシンメモリ３は、実際のメモリへのアクセスをシミュレートする機能を持っている。キャッシュ制御部４は、実際のメモリアクセスを行うホストマシンメモリ３に、シミュレーションメモリの一部を割り当てる為の機能を持っている。ディスク入出力部５は、シミュレーションメモリがディスク装置６上に格納されている位置に変換する機能と、実際のディスク装置６への入出力を行う機能を持っている。ディスク装置６は、シミュレーションに必要なシミュレーションメモリの実体を格納している。アクセスパターン蓄積部７は、シミュレーションメモリへのアクセスをパターン化して蓄積する機能を持っている。ページ先読み部８は、アクセスパターン蓄積部７によって得られたアクセスのパターンを使用してシミュレーションメモリの先読みを行う機能を持っている。
【００１９】
次に、図１〜図７を参照して本実施例の全体の動作について詳細に説明する。図２及び図６はメモリ管理装置の動作を示すフローチャート、図３はアクセスパタンの抽出を説明するための模式図、図４はアクセスパタンの保存を説明するための模式図、図５はアクセスパタンの更新を説明するための模式図、及び図７はアクセスパタンの検索を説明するための模式図である。
【００２０】
まず、シミュレーションメモリへのアクセス要求がなされると（図２のステップＡ１）、アドレス変換部２にてシミュレーションメモリの位置に変換される（図２のステップＡ２）。次に、アクセスパターン蓄積部７でアクセスするページからアクセスパターンの抽出と保存が行われる（ステップＡ３）。これと並行して、キャッシュ制御部４でシミュレーションメモリがホストマシンメモリ３上に存在するか、あるいはディスク装置６上に存在するかを判定し（ステップＡ４）、ホストマシンメモリ３上に存在する場合は（ステップＡ５にて「有り」の場合）、シミュレーションメモリの位置をホストマシンメモリ３上の位置に変換し実際のアクセスを行う（ステップＡ６）。
【００２１】
一方、ホストマシンメモリ３上に存在しない場合は（ステップＡ５にて「無し」の場合）、ディスク入出力部５でシミュレーションメモリのアドレスと一致するディスク装置６上の格納位置に変換する（ステップＡ７）。さらに、ディスク装置６から該当するアドレスのシミュレーションメモリの内容をキャッシュ制御部４を通してホストマシンメモリ３に移し（ステップＡ８）、シミュレーションメモリの位置をホストマシンメモリ３上の位置に変換し実際のアクセスを行う（ステップＡ６）。この動作と並行してページ先読み部８にて、現在アクセスしているページから次のページを予測して、ページの先読みを行う（ステップＡ９）。
【００２２】
次に、ページの先読み手順の詳細について説明する。図３を参照すると、アクセスパターン蓄積部７は、アクセス要求のあったページ番号、そのページへのアクセス回数、及びアクセスされたページ間の差を履歴として取り出す。即ち、前々回のアクセスページ番号とそのページをアクセスした回数、前回のアクセスページ番号とそのページをアクセスした回数、今回のアクセスページ番号とそのページをアクセスした回数等をページアクセス履歴として取り出し（図３（Ａ）参照）、かつアクセスされたページ間の差、即ち前々回のページ番号と前回のページ番号との差及び前回のページ番号と今回のページ番号との差等をページアクセス履歴として取り出す（図３（Ｂ）参照）。なお、図３（Ａ）の右側にはディスク装置６のシミュレーションメモリ空間の構成が示されている。又、図３（Ｂ）は縦軸がアクセスページ番号、横軸が経過時間を示している。即ち、図３（Ｂ）は一例として前々回のアクセスページ番号が最も大きく、前回のアクセスページ番号が最も小さく、今回のアクセスページ番号がその中間であることを示しており、経過時間方向の矢印の長さ、即ち経過時間の長さは各々のページ番号がアクセスされた回数を示している。
【００２３】
さらに、アクセスパターン蓄積部７は、図４に示すようにアクセス履歴を一定区間毎に分割し、アクセスパターン１，２，…として保存する。図４（Ａ）にはアクセス履歴を一定区間毎アクセスパターン１，２，…に分割する例が示されており、図４（Ｂ）にはパターン１として保存される内容が、図４（Ｃ）にはパターン２として保存される内容が夫々示されている。
【００２４】
又、図５（Ａ）に示すようなアクセスパターンがアクセスパターン蓄積部７に保存されており、格納場所が一杯になった場合、使用頻度の少ないものを廃棄対象として選択し、そこに新たにアクセスパターンを追加する。即ち、図５（Ａ）に示す例では、パターン３の使用頻度が少ないので、これを廃棄対象としており、図５（Ｂ）に示すようにこのパターン３の格納場所に更新パターンを格納している。
【００２５】
次に、ページ先読み部８の動作を図６及び図７を用いて詳細に説明する。まず、現在アクセスされているページのアクセス履歴からアクセスパターンを作成する（図６のステップＡ１１）。図７（Ｂ）に現在のアクセスパターンが示されている。現在のアクセスパターンの太線部分が現時刻に至るまでのアクセス履歴を示しており、矢印の先端が現時刻を示している。現時刻から先が予測ページの部分である。
【００２６】
次に、その作成したパターンがアクセスパターン蓄積部７で既に蓄積されているアクセスパターンと一致しているものを探す（図６のステップＡ１２）。図７（Ａ）に既に蓄積されているアクセスパターンのうちの作成パターンと一致している一例を示す。この際、蓄積されたアクセスパターンの値に幅を設け、その幅の範囲内であれば一致したと判定する。そして、一致した場合（図６のステップＡ１３にて「有り」の場合）、探し出したパターンから、現在のアクセス位置と一致した箇所をアクセス回数で判定し、次にアクセスするページをアクセスパターン（図４（Ｂ）及び（Ｃ）で示したアクセスパターン）に保存されているページ番号の差を用いて次に読込むページのページ番号を求める（図６のステップＡ１４）。予測したページを読出す為にホストマシンメモリ３の空きを判定し（図６のステップＡ１５）、ホストマシンメモリ３に空きが無い場合（図６のステップＡ１５にて「無し」の場合）、ホストマシンメモリ３からディスク入出力部５を介してディスク装置６に書戻す（図６のステップＡ１６）。一方、空きが有る場合（図６のステップＡ１５にて「有り」の場合）、先読みするページをディスク入出力部５を介してディスク装置６からホストマシンメモリ３に移す（図６のステップＡ１７）。尚、保存されたアクセスパターンと一致しない場合（図６のステップＡ１３にて「無し」の場合）、現在のアクセス履歴からアクセスパターン蓄積部７にて、一定の間隔でアクセスパターンとして追加保存する（図６のステップＡ１８）。
【００２７】
次に、具体例について説明する。図８はページアクセス履歴の一例を示す模式図、図９は保存されるアクセスパターンの一例を示す模式図、図１０はページ先読みを行うためのページ番号算出の一例を示す模式図、図１１はページ先読みの具体例を示す模式図てある。
【００２８】
まず、図８に示すように、アドレス変換部２に対し、シミュレーションメモリ空間の１番目（ページ番号１０）から６番目（ページ番号１８）まで順に要求されたページ番号、ページのアクセス回数、及びページ番号差分（直前にアクセスされたページ番号と、現在アクセスしているページ番号との差で、正負の値で保存される）の値が、アクセスパターン蓄積部７でページアクセス履歴として保存される。さらに、図９に示すように、アクセスパターン蓄積部７で、アクセス履歴から、生成された複数のアクセスパターン（図９の例ではパターン１〜３の３パターン）をパターン毎に分けて保存する。
【００２９】
次に、図１０に示すように、ページ先読み部８で、現在のアクセス履歴と、保存された複数のアクセスパターンを比較し、アクセスされたページ番号、あるいは、ページ番号差分の値が同じか、あるいは、近似値の値を持つアクセスパターンを検索する。図１０（Ａ）の例では、現在のアクセス履歴のページ番号が１３と２７であり、ページ番号差分が０と１４であるが、この番号に近いページ番号１０と２５とを有し、かつこのページ番号差分に近いページ番号差分を０と１５とを有するパターン１が近似値の値を持つアクセスパターンとして検索されている（図１０（Ｂ）のパターン１参照）。
【００３０】
次に、今後、アクセスされると予測されるページ番号をアクセスパターン１に保存されているページ番号差分から算出する。図１０（Ｂ）のパターン１を参照すると、ページ番号２５の次にはページ番号３が保存されており、その差分は−２２となっている。そこで、ページ先読み部８は現在アクセスしている２７ページ（図１０（Ａ）参照）に−２２を加算し、その加算結果として得た数値５を次の予測ページとする。同様の計算により、以後の予測ページとして１５，１７，２０を得る。
【００３１】
ここで算出された予測ページ番号（図１１（Ａ）参照）の情報は、図１１（Ｂ）に示すように、ディスク入出力部５を介して、ディスク装置６上のシミュレーションメモリからホストマシンメモリ３にキャッシュ制御部４を介して読込まれる。これらの操作の結果、現在アクセスしているページの次にアクセスされると予測されるページを予めホストマシンメモリ３に載せておくことができる。
【００３２】
次に、第２の実施の形態について説明する。図１２は第２の実施の形態の構成図である。なお、同図において、第１の実施の形態の構成（図１参照）と同様の構成部分には同一番号を付し、その説明を省略する。図１２を参照すると、メモリ管理部１０は、アドレス変換部２と、ホストマシンメモリ３と，キャッシュ制御部４と、ディスク入出力部５と、ディスク装置６と、アクセスパターン蓄積部７と，ページ先読み部８とに加え、書戻しページ決定部９を含んで構成されている。
【００３３】
第２の実施の形態で加えた書戻しページ決定部９の機能は、ホストマシンメモリ３からディスク装置６に書戻す際、近々アクセスが起こりうるページをページ先読み部８で算出したページ番号を基に、その値に近くないページを選択してディスク入出力部５を介してディスク装置６に書戻す、というものである。
【００３４】
この書戻しページ決定部９の動作を図１３を参照して詳細説明する。図１３は第２の実施の形態の動作を示すフローチャートである。まず、ディスク装置６に書戻すページが現在使用しているアクセスパターン上にあるか否かを検索する（図１３のステップＡ２１）。そして、アクセスパターン上に無い場合は（図１３のステップＡ２２にて「無し」の場合）、そのままディスク入出力部５を使用して該当ページをディスク装置６に書戻す（図１３のステップＡ２５）。一方、アクセスパターン上に該当ページが存在した場合（図１３のステップＡ２２にて「有り」の場合）、ホストマシンメモリ３に残す（図１３のステップＡ２３）。さらに、他に書き戻し候補となっているページが有る場合（図１３のステップＡ２４にて「有り」の場合）、ステップＡ２１〜ステップＡ２３を繰り返す。一方、書戻し候補が無かった場合（図１３のステップＡ２４にて「無し」の場合）、ホストマシンメモリ３上の一番古いページをディスク装置６に書戻す（図１３のステップＡ２６）。この第２の実施の形態によって、ディスク装置６へのアクセスを有効に使用することができる。
【００３５】
次に、第２の実施の形態の動作の具体例を図１４に示す。図１４は書戻しページ決定の具体例を示す模式図である。同図を参照すると、書戻すページのリストに書戻す候補であるページ番号１００、５、６０、２０、３、２００が登録されている場合（図１４（Ａ）の左側の図参照）、書戻しページ決定部９では、このリストに入っているページ番号と、アクセスパターン蓄積部７及びページ先読み部８によって作成されたアクセスパターンから、先読みを行う候補のページと同一か否かを比較する（図１４（Ｂ）の上側の図参照）。そして、同一のページ番号であった場合は、ホストマシンメモリ３上に保持するリストに登録する様、キャッシュ制御部４に指示する。図１４の例では、書戻しリストに登録されているページ番号５及び２０（図１４（Ａ）の左側の図参照）は現在のパターンに予測ページ番号として登録されているため（図１４（Ｂ）の上側の図参照）、このページ番号５及び２０をホストマシンメモリ３上に登録する（図１４（Ａ）の右側の図参照）。
【００３６】
一方、先読みを行う候補のページと同一で無い場合は、そのまま書戻すリスト上に残す。又、ホストマシンメモリ３の保持リストが一杯になった場合は、最も古いページ（例えば、図１４（Ａ）の右側の図にてページ番号１３と３０）を書出しページのリストに加え、ホストマシンメモリ３からディスク装置６へ書戻す。
【００３７】
次に、第３の実施の形態について説明する。第３の実施の形態はメモリ管理プログラムを記録した記録媒体に関するものである。図１５は記録媒体及びこの記録媒体を駆動する駆動装置の一例の構成図である。同図を参照すると、駆動装置はＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１と、入力部２２と、記憶部２３とを含んで構成される。そして、ＣＰＵ２１は前述のメモリ管理装置１及び１０を制御する。一方、記録媒体２４には前述の図２，図６，図１３のフローチャートに示される処理を実行するメモリ管理プログラムが記録されている。
【００３８】
次に、この駆動装置の動作について説明する。まず、入力部２２よりプログラムのロード命令がＣＰＵ２１に入力されると、ＣＰＵ２１は記録媒体２４に記録されたメモリ管理プログラムを読込み、その読込んだメモリ管理プログラムを記憶部２３に書込む。次に、入力部２２よりプログラムの実行命令がＣＰＵ２１に入力されると、ＣＰＵ２１は記憶部２３よりメモリ管理プログラムを読込み、そのプログラムに従ってメモリ管理装置１及び１０を制御する。その制御の内容については既に説明済みであるため説明を省略する。
【００３９】
【発明の効果】
本発明による第１の発明によれば、第１記憶手段と第２記憶手段とを含み、前記第２記憶手段に対するアクセス要求に応じて前記第２記憶手段に記憶された情報のうちの所定情報を前記第１記憶手段に転送し、この前記第１記憶手段に転送された情報に基づいて情報処理を行わせるメモリ管理装置であって、そのメモリ管理装置は前記第２記憶手段に対しアクセス要求のあったアドレス及びアクセス回数の履歴を蓄積する履歴蓄積手段と、前記第２記憶手段に対する最新のアクセス要求から所定数溯ったアクセス要求までのアクセス履歴と前記履歴蓄積手段に蓄積されたアドレス及びアクセス回数の履歴とから前記第２記憶手段に対し次回アクセス要求されると予測されるアドレスを算出するアドレス先読み手段とを含むため、近い将来アクセスするページの予測が可能で、かつディスク装置への無駄な書出し及び読込みを防止することが可能となる。
【００４０】
具体的には、第１の効果は、シミュレーション速度の向上が図れることができることにある。その理由は、シミュレートメモリを格納するディスク装置からキャッシュメモリ上への先読みを、実際のシミュレーションと並行して行うことにより、ディスク装置からホストマシンのメモリへの転送待ち時間を短縮し、シミュレーションの中断を少なくできるからである。
【００４１】
第２の効果は、シミュレーション対象のソフトウェアがどの様に動作しているかを把握できることにある。その理由は、アクセスしたページのパターンが保存されていることから、シミュレーション対象のソフトウェアの実行履歴とシミュレートメモリへのアクセス履歴を取り出すことができるからである。これによって、シミュレーション対象のソフトウェアの一定区間での動きをトレースすることが可能となる。
【００４２】
第３の効果は、ディスク装置へのアクセスを有効に使用することが可能となることにある。その理由は、近々アクセスが起こり得るページを避けてディスク装置に書戻しを行うためである。
【００４３】
又、本発明による第２及び第３の発明においても上述した第１の発明と同様の効果を奏する。
【図面の簡単な説明】
【図１】本発明に係るメモリ管理装置の一例の構成図である。
【図２】メモリ管理装置の動作を示すフローチャートである。
【図３】アクセスパタンの抽出を説明するための模式図である。
【図４】アクセスパタンの保存を説明するための模式図である。
【図５】アクセスパタンの更新を説明するための模式図である。
【図６】メモリ管理装置の動作を示すフローチャートである。
【図７】アクセスパタンの検索を説明するための模式図である。
【図８】ページアクセス履歴の一例を示す模式図である。
【図９】保存されるアクセスパターンの一例を示す模式図である。
【図１０】ページ先読みを行うためのページ番号算出の一例を示す模式図である。
【図１１】ページ先読みの具体例を示す模式図てある。
【図１２】第２の実施の形態の構成図である。
【図１３】第２の実施の形態の動作を示すフローチャートである。
【図１４】書戻しページ決定の具体例を示す模式図である。
【図１５】記録媒体及びこの記録媒体を駆動する駆動装置の一例の構成図である。
【図１６】従来のメモリ管理装置の一例の構成図である。
【符号の説明】
１  メモリ管理装置
２  アドレス変換部
３  ホストマシンメモリ
４  キャッシュ制御部
５  ディスク入出力部
６  ディスク装置
７  アクセスパターン蓄積部
８  ページ先読み部
９  書戻しページ決定部
２４  記録媒体
【図１】
0003555523.tif 000002
【図２】
0003555523.tif 000003
【図３】
0003555523.tif 000004
【図４】
0003555523.tif 000005
【図５】
0003555523.tif 000006
【図６】
0003555523.tif 000007
【図７】
0003555523.tif 000008
【図８】
0003555523.tif 000009
【図９】
0003555523.tif 000010
【図１０】
0003555523.tif 000011
【図１１】
0003555523.tif 000012
【図１２】
0003555523.tif 000013
【図１３】
0003555523.tif 000014
【図１４】
0003555523.tif 000015
【図１５】
0003555523.tif 000016
【図１６】
0003555523.tif 000017