(57)【特許請求の範囲】
【請求項１】
書き換え回数制限型メモリとランダム・アクセス・メモリとを有するシステムのメモリ管理装置であって、上記書き換え回数制限型メモリあるいはランダム・アクセス・メモリの未使用領域が所定の大きさより小さい場合に、この未使用領域が小さいメモリに対してガーベジコレクション処理を行うガーベジコレクション実行部と、上記各メモリに対するデータの割り付け単位を表す情報であるオブジェクトに対して、上記各メモリに対する新規オブジェクトの割り付け時、あるいは、上記ガーベジコレクション処理実行時に、上記ガーベジコレクション処理によって回収されず且つ当該ガーベジコレクション処理時まで書き込みが行われなかった場合に増加する安定度を設定する安定度設定部と、上記各メモリに対する新規オブジェクトの割り付け時、あるいは、上記ガーベジコレクション処理実行時に、上記安定度設定部によって設定された安定度が所定値以下のオブジェクトを上記ランダム・アクセス・メモリに割り付ける一方、上記安定度が上記所定値より高いオブジェクトを上記書き換え回数制限型メモリに割り付けるオブジェクト割付部を備えたことを特徴とするメモリ管理装置。
【請求項２】
請求項１に記載のメモリ管理装置において、
上記ガーベジコレクション実行部は、上記未使用領域が所定の大きさより小さいメモリに関して、上記安定度の高いオブジェクトが割り付けられている領域よりも、上記安定度の低いオブジェクトが割り付けられている領域に対して、高い頻度で上記ガーベジコレクション処理を行うようになっていることを特徴とするメモリ管理装置。
【請求項３】
請求項２に記載のメモリ管理装置において、
上記ガーべジコレクション実行部は、上記未使用領域が所定の大きさより小さいメモリに関して、上記所定の大きさ以上の未使用領域が得られるまで、最も低い安定度のオブジェクト群が割り付けられている領域に順次高い安定度のオブジェクト群が割り付けられている領域を加えて上記ガーベジコレクション処理を行うようになっていることを特徴とするメモリ管理装置。
【請求項４】
請求項１に記載のメモリ管理装置において、
上記安定度設定部は、
上記新規オブジェクトの割り付け時には、新規オブジェクトの安定度を最小値に設定し、
上記ガーベジコレクション処理実行時には、当該ガーベジコレクション処理によって、処理対象領域に在る同一安定度のオブジェクトに対するガーベジコレクション処理回数が上記安定度になってから所定回数になった場合に、上記処理対象領域に在るオブジェクトであって上記所定回数のガーベジコレクション処理が行われる間に書き込みが行われなかったオブジェクトの安定度を所定値だけ増加するようになっていることを特徴とするメモリ管理装置。
【請求項５】
請求項１に記載のメモリ管理装置であって、
上記書き換え回数制限型メモリおよび／または上記ランダム・アクセス・メモリの論理アドレスを物理アドレスに変換するアドレス変換部を備え、
そのアドレス変換部は、上記書き換え回数制限型メモリ上におけるアドレス変換の単位領域としてのべージであって書き込み禁止であるべージに対して書き込みが要求されて発生するアクセス例外を検知するアクセス例外検知手段を備えて、上記アクセス例外検知手段によって上記アクセス例外が検知された場合には、書き込みが要求された論理アドレス空間上の論理ページが写像された上記書き換え回数制限型メモリの物理アドレス空間上の物理ページの内容を、上記ランダム・アクセス・メモリの物理アドレス空間上の未使用の物理べージにコピーし、このコピーされた上記ランダム・アクセス・メモリの物理べージを上記書き込みが要求された論理ページに対応付けるようになっていることを特徴とするメモリ管理装置。
【請求項６】
請求項１乃至請求項５の何れか、一つに記載のメモリ管理装置において、
上記書き換え回数制限型メモリは、フラッシュメモリであることを特徴とするメモリ管理装置。
【請求項７】
書き換え回数制限型メモリとランダム・アクセス・メモリと上記両メモリの論理アドレスを物理アドレスに変換するアドレス変換部を有するシステムのメモリ管理装置として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
上記書き換え回数制限型メモリあるいはランダム・アクセス・メモリの未使用領域が所定の大きさより小さい場合に、この未使用領域が小さいメモリに対してガーベジコレクション処理を行うガーベジコレクション実行部と、
上記各メモリに対するデータの割り付け単位を表す情報であるオブジェクトに対して、上記各メモリに対する新規オブジェクトの割り付け時、あるいは、上記ガーベジコレクション処理実行時に、上記ガーベジコレクション処理によって回収されず且つ当該ガーベジコレクション処理時まで書き込みが行われなかった場合に増加する安定度を設定する安定度設定部と、
上記各メモリに対する新規オブジェクトの割り付け時、あるいは、上記ガーベジコレクション処理実行時に、上記安定度設定部によって設定された安定度が所定値以下のオブジェクトを上記ランダム・アクセス・メモリに割り付ける一方、上記安定度が上記所定値より高いオブジェクトを上記書き換え回数制限型メモリに割り付けるオブジェクト割付部として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、書き換え回数に制限のあるメモリの長寿命化を図りながら、メモリの利用効率が高くて中断時間の短いガーベジコレクションの実現を可能にするメモリ管理装置及びコンピュータ読み取り可能な記録媒体に関する。
【０００２】
【従来の技術】
近年、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）等のバッテリで動作する携帯型の情報処理端末機器が実現化されている。
上記ＰＤＡのような端末は、少ないメモリ容量で動作することや、低消費電力であることが強く要求される。上記ＰＤＡでは、未使用時にシステムの状態を保存するために、バッテリでバックアップされたＲＡＭ（ランダム・アクセス・メモリ）を搭載することが多い。そして更に、低消費電力化を図るために、上記ＲＡＭのかなりの部分を低消費電力のフラッシュメモリに置き換えるようになっている。
【０００３】
一方、メモリの利用効率を高めて、アプリケーションプログラムの構築を容易にするメモリ管理手法として、ガーベジコレクションが知られている。例えば、ニュートン（アップル社製）のオペレーティングシステムは、上記ガーベジコレクションを主要なメモリ管理手法として採用している。但し、上記ニュートンにおいては、ガーベジコレクションの対象となるのはＲＡＭ領域のみである。
【０００４】
【発明が解決しようとする課題】
しかしながら、上記従来のガーベジコレクションには、上記ＰＤＡのような端末システムのメモリ管理手法として用いた場合には以下のような問題がある。
【０００５】
（１）実行の中断
上記ガーベジコレクションの実行中には、アプリケーションを含む他のシステムの実行が中断させられる。そのために、ある量以上のメモリに対するガーベジコレクションの実行は、対話的な利用を前提とするＰＤＡでは、利用者に対する応答を悪化させることになる。
【０００６】
（２）メモリの頻繁な書き換え
上記ガーベジコレクションは、通常ＲＡＭ上のメモリ管理を前提としているため、例外なく、管理の対象となるメモリ空間を頻繁に走査して書き換えるようにしている。そのために、上記ガーベジコレクションを、フラッシュメモリのように書き換え回数に制限のあるメモリに対してそのまま適用すると、メモリの寿命を著しく縮めてしまう。
【０００７】
すなわち、上記ＰＤＡのように、フラッシュメモリのごとく書き換え回数に制限のあるメモリを搭載している計算機システムでガーベジコレクションを実現するためには、ガーベジコレクション実行による他のシステムの実行の中断時間を短縮することと同時に、書き換え回数制限型メモリの寿命を延ばすための対策を講ずる必要がある。
【０００８】
ガーベジコレクションの処理時間を短縮する手法は「実時間ガーベジコレクション」と呼ばれており、多数提案されている。しかしながら、フラッシュメモリのような書き換え回数制限型メモリを搭載するシステムに対して、書き換え回数制限型メモリを含むメモリ領域への適用を想定した実時間ガーベジコレクションは、これまで知られていない。
【０００９】
そこで、この発明の目的は、書き換え回数に制限のあるメモリの長寿命化を図りながら、メモリの利用効率が高くて処理時間の短いガーべジコレクションの実現を可能にするメモリ管理装置を堤供することにある。
【００１０】
【課題を解決するための手段】
上記目的を達成するため、請求項１に係る発明は、書き換え回数制限型メモリとＲＡＭとを有するシステムのメモリ管理装置であって、上記書き換え回数制限型メモリあるいはＲＡＭの未使用領域が所定の大きさより小さい場合に、この未使用領域が小さいメモリに対してガーベジコレクション処理を行うガーベジコレクション実行部と、上記各メモリに対するデータの割り付け単位を表す情報であるオブジェクトに対して、上記各メモリに対する新規オブジェクトの割り付け時、あるいは、上記ガーベジコレクション処理実行時に、上記ガーベジコレクション処理によって回収されず且つ当該ガーベジコレクション処理時まで書き込みが行われなかった場合に増加する安定度を設定する安定度設定部と、上記各メモリに対する新規オブジェクトの割り付け時、あるいは、上記ガーベジコレクション処理実行時に、上記安定度設定部によって設定された安定度が所定値以下のオブジェクトを上記ＲＡＭに割り付ける一方、上記安定度が上記所定値より高いオブジェクトを上記書き換え回数制限型メモリに割り付けるオブジェクト割付部を備えたことを特徴としている。
【００１１】
上記構成において、書き換え回数制限型メモリあるいはＲＡＭに対する新規オブジェクトの割り付けが要求されると、安定度設定部によって新規オブジェクトの安定度が設定される。そして、オプジェクト割付部によって、上記設定された安定度が所定値以下である場合には、上記新規オブジェクトはＲＡＭに割り付けられる。一方、上記安定度が上記所定値より高い場合には、上記新規オブジェクトが上記書き換え回数制限型メモリに割り付けられる。
さらに、上記新規オブジェクトを割り付ける際に、割り付け対象となる上記書き換え回数制限型メモリあるいはＲＡＭの未使用領域が所定の大きさより小さい場合には、ガーベジコレクション実行部によってガーベジコレクション処理が行われる。そして、上記安定度設定部によって、当該ガーべジコレクション処理によって回収されず且つ当該ガーベジコレクション処理時まで書き込みが行われなかったオブジェクトの安定度が増加される。そして、上記設定された安定度が上記所定値より高くなると、上記オブジェクト割付部によって、当該オブジェクトは上記ＲＡＭから上記書き換え回数制限型メモリに割り付け直される。
【００１２】
こうして、常に、上記安定度が所定値以下のオブジェクトを上記ＲＡＭに割り付ける一方、上記安定度が上記所定値より高いオブジェクトを上記書き換え回数制限型メモリに割り付けることによって、上記ガーベジコレクション処理によって回収されにくく且つ書き込みが起こりにくいオブジェクト群が上記書き換え回数制限型メモリに割り付けられる。その結果、上記書き換え回数制限型メモリに対する書き換えや書き込みが押さえられて、上記書き換え回数制限型メモリの長寿命化が図られる。
【００１３】
また、請求項２に係る発明は、請求項１にかかる発明のメモリ管理装置において、上記ガーベジコレクション実行部は、上記未使用領域が所定の大きさより小さいメモリに関して、上記安定度の高いオブジェクトが割り付けられている領域よりも、上記安定度の低いオブジェクトが割り付けられている領域に対して、高い頻度で上記ガーベジコレクション処理を行うようになっていることを特徴としている。
【００１４】
上記構成によれば、上記安定度の低いオブジェクトが割り付けられている領域に対して高い頻度で上記ガーベジコレクション処理が行われる。したがって、上記ガーベジコレクション処理に付随する書き換えは、上記安定度の低いオブジェクトが割り付けられている上記ＲＡＭに対して頻繁に行われることになり、上記書き換え回数制限型メモリの更なる長寿命化が図られる。
さらに、上記安定度の低いオブジェクトが割り付けられている領域に対して高い頻度で上記ガーベジコレクション処理が行われることによって、該当するメモリの全領域に対して一様に上記ガーベジコレクション処理を行う場合よりも上記ガーべジコレクション処理の時間が短縮されて、他の処理の中断時間が短縮される。
【００１５】
また、請求項３に係る発明は、請求項２にかかる発明のメモリ管理装置において、上記ガーベジコレクション実行部は、上記未使用領域が所定の大きさより小さいメモリに関して、上記所定の大きさの未使用領域が得られるまで，最も低い安定度のオブジェクト群が割り付けられている領域に順次高い安定度のオブジェクト群が割り付けられている領域を加えて上記ガーベジコレクション処理を行うようになっていることを特徴としている。
【００１６】
上記構成によれば、上記安定度が低いオブジェクト群が割り付けられている領域程上記ガーベジコレクション処理の回数が多くなり、上記安定度の高いオブジェクトが割り付けられている上記書き換え回数制限型メモリに対する上記ガーベジコレクション処理に付随する書き換えが少なくなる。こうして、上記書き換え回数制限型メモリの更なる長寿命化が図られる。
さらに、上記未使用領域が所定の大きさより小さいメモリの全領域に対して一様にガーベジコレクション処理を行う場合よりも処理時間が短縮されて、他の処理の中断時間が短縮される。
【００１７】
また、請求項４に係る発明は、請求項１に係る発明のメモリ管理装置において、上記安定度設定部は、上記新規オブジェクトの割り付け時には，新規オブジェクトの安定度を最小値に設定し、上記ガーベジコレクション処理実行時には，当該ガーベジコレクション処理によって，処理対象領域に在る同一安定度のオブジェクトに対するガーベジコレクション処理回数が上記安定度になってから所定回数になった場合に，上記処理対象領域に在るオブジェクトであって上記所定回数のガーベジコレクション処理が行われる間に書き込みが行われなかったオブジェクトの安定度を所定値だけ増加するようになっていることを特徴としている。
【００１８】
上記構成によれば、新規オブジェクトの安定度が最小値に設定されるので、殆どが短期間のうちに他のオブジェクトとの参照関係が成立しないゴミと化す新規オブジェクトが上記ガーベジコレクション処理回数の多い上記ＲＡＭに割り付けられる。こうして、メモリの利用効率が高められる。
さらに、書き込みが行われにくいオブジェクトの安定度が増加されるので、上記書き換え回数制限型メモリには書き込みが行われないと予測されるオブジェクトが割り付けられることになる。こうして、上記書き換え回数制限型メモリの更なる長寿命化が図られる。
【００１９】
また、請求項５に係る発明は、請求項１に係る発明のメモリ管理装置あって、上記書き換え回数制限型メモリおよび／または上記ランダム・アクセス・メモリの論理アドレスを物理アドレスに変換するアドレス変換部を備え、そのアドレス変換部は、上記書き換え回数制限型メモリ上におけるアドレス変換の単位領域としてのぺージであって書き込み禁止であるページに対して書き込みが要求されて発生するアクセス例外を検知するアクセス例外検知手段を備えて、上記アクセス例外検知手段によってアクセス例外が検知された場合には、書き込みが要求された論理アドレス空間上の論理ページが写像された上記書き換え回数制限型メモリの物理アドレス空間上の物理ページの内容を上記ＲＡＭの物理アドレス空間上の未使用の物理ページにコピーし、このコピーされた上記ＲＡＭの物理ページを上記書き込みが要求された論理ページに対応付けるようになっていることを特徴としている。
【００２０】
上記構成によれば、上記書き換え回数制限型メモリ上における書き込み禁止ぺージに対して書き込みが要求されるアクセス例外が発生した場合には、書き込みが要求された論理アドレス空間上の論理ページが上記ＲＡＭの物理アドレス空間上の物理ページに写像されるので、以後上記書き換え回数制限型メモリ上における書き込み禁止ぺージに対する書き込みが可能となる。
さらに、上記書き換え回数制限型メモリ上における論理ページに発生した書き込みが上記ＲＡＭに対して行われることなり、結果として上記書き換え回数制限型メモリの更なる長寿命化が図られる。
【００２１】
また、請求項６に係る発明は、請求項１乃至請求項５の何れか一つに係る発明のメモリ管理装置において、上記書き換え回数制限型メモリは、フラッシュメモリであることを特徴としている。
【００２２】
また、請求項７に係る発明は、書き換え回数制限型メモリとランダム・アクセス・メモリと上記両メモリの論理アドレスを物理アドレスに変換するアドレス変換部を有するシステムのメモリ管理装置として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、上記書き換え回数制限型メモリあるいはランダム・アクセス・メモリの未使用領域が所定の大きさより小さい場合に、この未使用領域が小さいメモリに対してガーベジコレクション処理を行うガーベジコレクション実行部と、上記各メモリに対するデータの割り付け単位を表す情報であるオブジェクトに対して、上記各メモリに対する新規オブジェクトの割り付け時、あるいは、上記ガーベジコレクション処理実行時に、上記ガーベジコレクション処理によって回収されず且つ当該ガーベジコレクション処理時まで書き込みが行われなかった場合に増加する安定度を設定する安定度設定部と、上記各メモリに対する新規オブジェクトの割り付け時、あるいは、上記ガーベジコレクション処理実行時に、上記安定度設定部によって設定された安定度が所定値以下のオブジェクトを上記ランダム・アクセス・メモリに割り付ける一方、上記安定度が上記所定値より高いオブジェクトを上記書き換え回数制限型メモリに割り付けるオブジェクト割付部として機能させるためのプログラムを記録したことを特徴としている。
【００２３】
【発明の実施の形態】
以下、この発明を図示の実施の形態により詳細に説明する。
図１は本実施の形態のメモリ管理装置が搭載された計算機システムにおけるブロック図である。尚、本実施の形態においては、書き換え回数に制限のあるＥＥＰＲＯＭとしてフラッシュメモリが使用されているものとする。
【００２４】
図１に示す計算機システム１は、本実施の形態の特徴であるメモリ管理装置２と、データ用メモリが登載されたメモリ部５と、メモリ管理装置２における管理情報に従ってプログラムやデータ上のメモリアドレス（論理アドレス）をハードウェア上のメモリアドレス（物理アドレス）に変換するメモリ管理ユニット（以下、ＭＭＵと略称する）４と、メモリ管理装置２，ＭＭＵ４およびメモリ部５を制御して上記アドレス変換やガーベジコレクション等を行うＣＰＵ（中央演算処理装置）３で概略構成される。
【００２５】
上記メモリ部５に登載されたデータ用メモリは、書き換え回数制限型メモリであるフラッシュメモリ７と読み書き可能なＲＡＭ８から構成されている。
上記メモリ管理装置２は、アドレス変換表格納部９，物理アドレス空間管理部１０，論理アドレス空間管理部ｌｌ，安定度設定部１２，ガーベジコレクション実行部１３およびオブジェクト割付部１４から構成されている。
【００２６】
上記アドレス変換表格納部９はＲＡＭで構成されて、上記論理アドレスと物理アドレスとの対応を示すアドレス変換表が格納されている。このアドレス変換表は、ＭＭＵ４が上記アドレス変換を行う際に参照される。
上記物理アドレス空間管理部１０は、物理アドレス空間上の使用領域と未使用領域を管理する。
上記論理アドレス空間管理部ｌｌは、論理アドレス空間上の使用領域と未使用領域を管理する。
【００２７】
上記安定度設定部１２は、アプリケーションプログラムが要求するデータの割り付け単位を表す情報（オブジェクト）に対して、「ガーベジコレクションによる回収されにくさ」と「書き込みの起こりにくさ」とを合わせた指標（数値）である「安定度」を設定する。
ここで、上記「回収」とは、後に詳述するように、ガーベジコレクションを実行する際に、あるオブジェクトがゴミとなって引き上げられることである。
【００２８】
上記「安定度」の設定は、以下のように行われる。
・新規に割り付けられたオブジェクトの安定度を最小（本実施の形態では「０」）にする。
・ある安定度を有するオブジェクト群については、上記安定度になってから、上記安定度に対して定められている所定回数だけガーベジコレクションが施された後に、上記安定度を（本実施の形態では「ｌ」だけ）増加する。但し、その所定回数のガーベジコレクションの間に書き込みが行われたオブジェクトに関しては、上記安定度の増加を抑制する。
【００２９】
上記ガーベジコレクション実行部１３は、上記データ用メモリの未使用領域が減少したときにガーベジコレクションを実行する。また、オブジェクト割付部１４は、新規オブジェクトを論理アドレス空間に割り付けたり、ガーべジコレクション処理の際に安定度が変化したオブジェクトを新たな安定度の領域に割り付け直したりする。
【００３０】
上記構成の計算機システム１は、以下のように動作する。
ここで、上記メモリ部５のフラッシュメモリ７には低安定度（安定度０と安定度１）のオブジェクトが設定される一方、ＲＡＭ８には高い安定度（安定度２と安定度３）のオブジェクトが設定されている。
先ず、上記ＣＰＵ３によって新規オブジェクトの割り付け要求がなされると、安定度設定部１２によって新規オブジェクトの安定度が最低安定度「０」に設定され、オブジェクト割付部１４によって論理アドレス空間管理部ｌｌの管理情報が参照されてＲＡＭ８用の論理アドレス空間上の未使用領域に割り付けられる。その際に、上記ＲＡＭ８用の論理アドレス空間上に新規オブジェクトを割り付け可能な程度の未使用領域が無い場合には、ガーベジコレクション実行部１３によって論理アドレス空間上における安定度「０」のオブジェクト群が連続して設定されている領域に対してガーベジコレクション処理を実行して十分な未使用領域を得る。尚、十分な未使用領域が得られない場合には、十分な未使用領域が得られるまでより高い安定度の領域を順次加えながらガーベジコレクション処理を行う。こうして、常時論理アドレス空間の総ての領域に対して一様にガーベジコレクション処理を実行するよりも少ないガーベジコレクション回数で処理時間の短縮を図り、早い時期にゴミとなってしまう低安定度のオブジェクトに対するガーベジコレクション処理の頻度を高くしてオブジェクトの回収率を高める。
【００３１】
上記安定度設定部１２は、ガーベジコレクション実行部１３によって論理アドレス空間の安定度Ｎの領域に所定回数ＸNだけガーベジコレクション処理が行われた際に、他のオブジェクトとの参照関係が成立するためにゴミとなって回収されることがなく、且つ、それまでに書き込みが行われなかったオブジェクトの安定度を（Ｎ＋１）に増加させる。そして、安定度が「ｌ」から「２」に増加されるオブジェクトは、オブジェクト割付部１４によって、上記ＸN回目のガーベジコレクション処理の際にＲＡＭ８側からフラッシュメモリ７側に割り付け直される。
こうして、書き込みが行われないと予測される安定したオブジェクトのみをガーベジコレクション処理に伴う書き換えの頻度が少ないフラッシュメモリ７側に集めることによって、フラッシュメモリ７の長寿命化を図るのである。
【００３２】
以下、上記ＭＭＵ４，安定度設定部１２，ガーベジコレクション実行部１３およびオブジェクト割付部１４の動作についてより詳細に説明する。
図２は、上記オブジェクトの構成を示す概念図である。上記オブジェクトは、一つの連続した論理アドレス空間上に低位番地から高位番地に向かって順次配列されている。そして、一つのオブジェクトの構成は、ガーベジコレクション実行部１３によってガーベジコレクション処理を実行するために、以下のような特徴を有している。
（Ａ）上記オブジェクトは、先頭を表すヘッダ２１，参照するオブジェクトの数２２および参照するオブジェクトのポインタ２３，２３，…の情報格納領域から成り、各情報格納領域は夫々１ワードの大きさを持つ。そして、ヘッダ２１の先頭には１ビットの書き込みフラグ２４が設定され、次の１ビットにはマークフラグ２５が設定されている。これらのフラグは何れも負論理であって、初期値は「１」である。
上記書き込みフラグ２４には、当該オブジェクトに書き込みが行われた場合に「０」が書き込まれる（以下、このことを「セットする」と言う）。そして、当該オブジェクトにガーベジコレクション処理が実行される際に「１」にクリアされる。したがって、書き込みフラグ２４を監視することで、安定度を増加するのに必要な上記所定回数のガーベジコレクションの間に、当該オブジェクトに書き込みが行われたが否かを知ることができるのである。上記マークフラグ２５には、当該オブジェクトが他のオブジェクトから参照されている場合に、ガーベジコレクションの際に「０」が書き込まれる（以下、このことを「セットする」と言う）。
上記フラッシュメモリ７は、各ブロックのデータを消去した後には全ワードの各ビットに「１」が書き込まれており、各ビットの「１」を「０」に書き換えることは可能（逆は不可）である。そこで、フラッシュメモリ７上に設定された論理アドレス空間に配置されたオブジェクトの場合にも、書き込みフラグ２４やマークフラグ２５を実現できるのである。本実施の形態においては、フラッシュメモリ上のオブジェクトに関しては、マークフラグ２５のみを設定する。
【００３３】
（Ｂ）上記ポインタ２３には、参照される他のオブジェクトの先頭（ヘッダ２１）の論理アドレスが書き込まれる。
（Ｃ）オブジェクトの途中のワードを指す論理アドレスから当該オブジェクトの先頭の論理アドレスを知ることができる。これは、ヘッダ２１に、参照するオブジェクトの数２２に書き込まれる「数」の情報あるいはオブジェクトのポインタ２３に書き込まれる「ポインタ」の情報と識別可能なパターンを呈する情報を付加し、オブジェクトの途中のワードを指す論理アドレスから低位番地の方に上記パターンを呈する情報を検索することによって可能となる。
【００３４】
本実施の形態においては、図２に示すように、同じ安定度を有するオブジェクトを同一論理アドレス空間上に連続して配置する。そして、論理アドレス空間管理部ｌｌで、各論理アドレス空間に配置されたオブジェクト群の安定度と、その安定度を持つオブジェクト群が配置されている領域の論理アドレス上の範囲を管理しておく。こうすることによって、安定度設定部１２は、論理アドレス空間管理部ｌｌにオブジェクト群の先頭アドレスを問い合わせることによって、各オブジェクトに付与された安定度を知ることができるのである。
【００３５】
図３は、上記ＣＰＵ３によって書き込みが要求された際に、ＭＭＵ４によって行われるアドレス変換の一例の様子を示す概念図である。
図３に示すように、論理アドレス空間には、フラッシュメモリ７用に設定された連続空間と、ＲＡＭ８用に設定された連続空間とがある。尚、他にＲＯＭ６用の連続空間もあるが、本実施の形態においては省略する。同様に、物理アドレス空間にも、フラッシュメモリ７上に設定された連続空間と、ＲＡＭ８上に設定された連続空間とがある。
【００３６】
通常、上記ＭＭＵ４によるアドレス変換は、バックアップ用の２次記憶装置を用いて、大きな論理アドレス空間を小さな物理アドレス空間に写像する「仮想記憶」のために用いられることが多い。しかしながら、本実施の形態においては、説明の都合上、ディスク等の２次記憶装置を持たず、ＲＡＭ８に関しては設定された物理アドレス空間よりも論理アドレス空間の方が小さいものとする。
【００３７】
図３において、オブジェクトａはフラッシュメモリ７側に在って、アドレス変換の単位領域（以下、ページと言う）Ｐより小さい領域を有している。オブジェクトｂはフラッシュメモリ７側に在って、ページＰより大きい領域を有している。オブジェクトｃはＲＡＭ８側に在って、べージＰより小さい領域を有している。オブジェクトｄはＲＡＭ８側に在って、べージＰより大きい領域を有している。
【００３８】
上記ＭＭＵ４は、主にフラッシュメモリ７に写像されるフラッシュメモリ７側の論理アドレス空間上のぺージであって、アドレス変換表格納部９に格納されたアドレス変換表において「書き込み禁止」がエントリされているページに対して、書き込みを行おうとする「アクセス例外」を検知するアクセス例外検知手段１５を有している。
そして、上記ＭＭＵ４は、アクセス例外検知手段１５によって上記アクセス例外が検知された場合には、この書き込み禁止のぺージが写像されたフラッシュメモリ７上の物理アドレス空間におけるぺージ（以下、物理ページと略称する）の内容をＲＡＭ８上の物理アドレス空間における未使用ページにコピーし、このコピーされたＲＡＭ８上の物理ページを写像元のフラッシュメモリ７側の論理アドレス空間におけるぺージ（以下、論理ぺージと略称する）に対応付け直すのである。こうすることによって、以後、書き込み禁止であった論理ぺージに対して書き込みが可能になる。
すなわち、上記書き込み禁止が指定されるようなフラッシュメモリ７をデータ用メモリとしても使用可能になるのである。
【００３９】
図４は、上記アクセス例外発生時に行われるアドレス変換の様子を示す概念図である。図４においては、フラッシュメモリ７用に設定された論理アドレス空間上に在る上記オブジェクトｂの最初の論理ぺージに書き込み禁止が指定されており、この論理ページに対してＣＰＵ３によって書き込みが要求された場合に、ＭＭＵ４によって行われるオブジェクトｂのアドレス変換の様子を示している。
【００４０】
上記アクセス例外時におけるアドレス変換処理は以下のようにして行われる。図５は、上記ＭＭＵ４によって行われるアクセス例外アドレス変換処理動作のフローチャートである。以下、図５に従って、上記アクセス例外時におけるアドレス変換処理について詳細に説明する。
【００４１】
上記ＭＭＵ４のアクセス例外検知手段１５によって上記アクセス例外が検知されると、アクセス例外アドレス変換処理動作がスタートする。
ステップＳ１で、上記物理アドレス空間管理部１０の管理情報に基づいて、ＲＡＭ８上の物理アドレス空間からの未使用物理ページの取得が行われる。
ステップＳ２で、上記ステップＳ１において未使用の物理ページが取得できたか否かが判別される。その結果、取得できた場合にはステップＳ３に進み、取得できなかった場合にはステップＳ７に進む。
【００４２】
ステップＳ３で、上記ステップＳ２において取得されたＲＡＭ８上の未使用物理ページに、アクセス例外を起こしたフラッシュメモリ７上の物理ページ（図３におけるフラッシュメモリ７上の物理ページ３１）の内容がコピーされる。
ステップＳ４で、上記物理アドレス空間管理部１０に対して、アクセス例外を起こしたフラッシュメモリ７上の物理ページ３１が未使用になったことが通知される。
【００４３】
ステップＳ５で、上記ステップＳ３においてコピーされたＲＡＭ８上の物理ページ３２にアクセス例外を起こしたフラッシュメモリ７上の物理ページの元の論理アドレスが対応付けられて書き込み可能になるように、上記アドレス変換表のエントリが書き換えられる。
ステップＳ６で、上記アクセス例外を起こしたフラッシュメモリ７側の論理ページ３１が属するオブジェクトｂのへッダ２１の書き込みフラグ２４が「０」にセットされる。
そうした後、アクセス例外アドレス変換処理動作を終了する。
【００４４】
ここで、上述のように、上記ＲＡＭ８に関しては設定された物理アドレス空間よりも論理アドレス空間の方が小さいので、物理アドレス空間には余分な領域３３（図４参照）が生ずる。そこで、上記ステップＳｌにおいては、この余分な領域３３から未使用物理ページの取得が行われて、論理アドレスと物理アドレスとの割り付けの変更が行われるのである。そして、やがて余分な領域３３に未使用物理ページがなくなると、上記ステップＳ２において未使用物理ページが取得できないと判別されて、ステップＳ７に進む。
【００４５】
ステップＳ７で、例えば、「ＣＰＵのキャッシュ」や「仮想記憶」の分野で公知の「ＬＲＵアルゴリズム(Ｌeast  Ｒecent  Ｕsed  Ａlgorithm)」を用いて、過去に上記ステップＳ１において取得されて使用されている（つまり、フラッシュメモリ７用の論理アドレス空間に割り付けられている）ＲＡＭ８上の物理ぺージの中で、現時点から最も長い問アクセスされていない物理ぺージが選出される。ステップＳ８で、上記物理アドレス空間管理部１０の管理情報に基づいて、フラッシュメモリ７上の物理アドレス空間から未使用の物理ぺージが選出される。ステップＳ９で、上記ステップＳ８において選出されたフラッシュメモリ７上の未使用物理ページのブロックデータが消去される。そうした後、この消去された物理ぺージに、上記ステップＳ７において選出されたＲＡＭ８上の最も長い問アクセスされていない物理ぺージの内容がコピーされる。
こうして、上記フラッシュメモリ７上の未使用の物理ページを再利用することによって、上記ステップＳ４において物理アドレス空間管理部１０に対して未使用の登録がなされたアクセス例外を起こしたフラッシュメモリ７側の物理ぺージ３１も再使用されることになる。
【００４６】
ステップＳ１０で、上記ステップＳ９においてコピーされたフラッシュメモリ７上の物理ぺージに上記ステップＳ７において選出されたＲＡＭ８上の物理ぺージの元の論理アドレスが対応付けられるように、上記アドレス変換表のエントリが書き換えられる。
ステップＳ１１で、上記物理アドレス空間管理部１０に対して、上記ステップＳ７において選出されたＲＡＭ８上の物理ページが未使用になったことが通知される。
そうした後、上記ステップＳｌに戻り、上記ステップＳ１において未使用が登録されたＲＡＭ８上の物理ぺージが取得され、上記ステップＳ３においてアクセス例外を起こしたフラッシュメモリ７上の物理ページの内容がコピーされ、上記ステップＳ５において上記アドレス変換表のエントリが書き換えられ、上記ステップＳ６において書き込みフラグ２４がセットされると、アクセス例外アドレス変換処理動作を終了する。
【００４７】
以上のようにして、アクセス例外アクセス変換処理動作が終了した後は、図４に示すように、フラッシュメモリ７側の論理アドレス空間上のオブジェクトｂにおけるアクセス例外を起こした論理ページの物理ページがＲＡＭ８上に割り付けられている。したがって、書き込み禁止であったオブジェクトｂの最初の論理ページに対して書き込み処理を継続できるのである。
【００４８】
ここで、厳密には、上記フラッシュメモリ７のブロックサイズと物理ページのサイズが異なる場合がある。すなわち、昨今の典型的な両サイズは１Ｋバイト〜４Ｋバイト程度で同じであるが、一般的なフラッシュメモリと３２ビットＣＰＵ用ＭＭＵとに関しては、ブロックサイズ≧ページサイズである。もし、ブロックサイズ＞ページサイズである場合には、本来はブロックサイズ／ページサイズ分の物理ページをＲＡＭ８上に取得することになるが、本実施の形態においては、簡単のためにブロックサイズ＝ページサイズであるとする。
【００４９】
次に、上記ガーベジコレクション実行部１３によって行われるガーベジコレクションについて説明する。
図６は、上記論理アドレス空間上に新規のオブジェクトが割り付けられる際の論理アドレス空間の様子を示す。
ここで、本実施の形態においては、上記ＲＡＭ８用の論理アドレス空間に設定されたオブジェクトの安定度は、フラッシュメモリ７用の論理アドレス空間に設定されたオブジェクトの安定度よりも低く定めてある。以下、ＲＡＭ８用の論理アドレス空間に配置されるオブジェクトの安定度は「安定度０」と「安定度１」とであり、フラッシュメモリ７用の論理アドレス空間に配置されるオブジェクトの安定度は「安定度２」と「安定度３」とであるとする。
【００５０】
図６において、上記ＣＰＵ３によってメモリ管理装置２に対して、新規のオブジェクトに対する論理アドレスの割り付けが要求されると、オブジェクト割付部１４によって、ＲＡＭ８用の論理アドレス空間上の安定度０の領域における未使用領域３５の先頭（使用領域３６の最後尾の次ぎ）のアドレスからの新規オブジェクトのメモリ領域が割り付けられる。
図７は、上記オブジェクト割付部１４によって行われる論理アドレス空間上における安定度Ｎの領域に対するメモリ領域割り付け処理動作のフローチャートである。
ステップＳ２１で、上記論理アドレス空間上における安定度Ｎの未使用領域に新規オブジェクトのメモリ領域が割り付け可能であり、且つ、新規オブジェクトのメモリ領域が割り付けられた後の未使用領域に所定の大きさ以上の領域が残るが否かが判別される。その結果、割り付け可能で、且つ、所定の大きさ以上の未使用領域が残る場合にはステップＳ２３に進む。一方、そうでない場合（すなわち、割り付け不可能である場合か、割り付け後に上記所定の大きさ以上の領域が残らない場合）にはステップＳ２２に進む。
ステップＳ２２で、上記ガーベジコレクション実行部１３が起動されて、後に詳述するようにしてガーベジコレクション処理が実行される。
そうした後、上記ステップＳ２１に戻り、割り付け可能であり、且つ、割り付け後に上記所定の大きさ以上の領域が残ると判別されるとステップＳ２３に進む。
ステップＳ２３で、上記論理アドレス空間上における安定度Ｎの未使用領域の先頭から新規オブジェクトのメモリ領域が割り付けられる。そうした後、メモリ領域割り付け処理動作を終了する。
【００５１】
上記メモリ領域割り付け処理動作のフローチャートにおける上記ステップＳ２２において実行されるガーベジコレクション処理は、特に限定されるものではないが、本実施の形態においては、スライディング・コンパクション方式によるガーベジコレクション(Ｗegbreit,Ｂ：「Ａ generalized compactifiying garbage collector」,Ｃomputer Ｊournal，Ｖol.15，Ｎo.3，pp.204−208）によって行うものとする。
【００５２】
図８は、上記スライディング・コンパクション方式によるガーベジコレクション処理による論理アドレス空間の変遷を示す。このガーベジコレクション処理は以下の手順によって行われる。
（１）マーク付け
図８（ａ）に示すように、参照関係の基準となり、且つ、ゴミとなって回収されないような特定のオブジェクト（以下、ルートと言う）３７から、参照するオブジェクトのポインタ２３（図２参照）を走査して、参照されているオブジェクトを順次辿りながら、上記参照されているオブジェクトのマークフラグ２５（図２参照）に「０」をセットする。尚、上記ルート３７の存在領域は、何れの論理アドレス空間の何れの安定度の領域であっても構わない。
図８（ａ）の場合には、ルート３７によってオブジェクトＡが参照され、オブジェクトＡによってオブジェクトＣとオブジェクトＥとが参照されている。したがって、オブジェクトＡ，Ｃ，Ｅのマークフラグ２５がセットされ、オブジェクトＢ，Ｄのマークフラグ２５はセットされない。
【００５３】
（２）移動量計算
図８（ｂ）に示すように、マークフラグ２５がセットされないオブジェクトＢ，Ｄは使用されずにゴミとなるので、このゴミとなるオブジェクトＢ，Ｄのメモリ領域をゴミとはならないオブジェクトＣ，Ｅで詰めるために、オブジェクトＣ，Ｅの移動量（つまり、論理アドレスの変化量）を計算する。
図８（ｂ）の場合には、上記オブジェクトＣをゴミとなるオブジェクトＢの位置に詰めるための移動量（論理アドレスの変化量ｘ）と、移動後のオブジェクトＣの直後の位置にオブジェクトＥを詰めるための移動量（論理アドレスの変化量ｙ）が計算される。
【００５４】
（３）ポインタ補正
図８（ｃ）に示すように、上記計算値に基づいて上記参照関係において参照する側のオブジェクトＡのポインタ２３の内容を参照される側のオブジェクトＣ，Ｅの移動後の先頭論理アドレスに補正する。
図８（ｃ）の場合には、上記オブジェクトＡにおけるオブジェクトＥヘのポインタ２３の内容が、移動後のオブジェクトＥの先頭の論理アドレス（論理アドレスβ―変化量ｙ）に補正される。同様に、オブジェクトＡにおけるオブジェクトＣへのポインタ２３の内容が、移動後のオブジェクトＣの先頭の論理アドレス（論理アドレスα―変化量ｘ）に補正される。
【００５５】
（４）詰め合わせ
図８（ｄ）に示すように、上記計算値に基づいて、ゴミとはならないオブジェクトＣ，Ｅを実際に詰める。
図８（ｄ）の場合には、上記オブジェクトＣがゴミとなるオブジェクトＢの位置に移動され、移動後のオブジェクトＣの直後の位置にオブジェクトＥが移動される。
【００５６】
上述のような手順で行われる上記スライディング・コンパクション方式によるガーベジコレクション処理では、論理アドレス空間上における処理の対象となる同一安定度の領域に対して２回〜３回の走査を要するが、ガーベジコレクション処理後に使用領域が詰め合わせられるために小さな未使用領域を一つにまとめることができる。
【００５７】
ここで、上記論理アドレス空間上におけるガーベジコレクション処理の対象となる領域が安定度Ｎの領域であって、安定度Ｍ（Ｍ＞Ｎ）の領域に存在するオブジェクトによって参照されているオブジェクトが安定度Ｎの領域に存在する場合には、安定度Ｎの領域に存在する上記参照されているオブジェクトも、ガーベジコレクションの際に上記ルートとして扱う必要がある。
このようなルートを、安定度Ｍの領域に存在するオブジェクト群を走査せずに認識するために、本実施の形態においては、以下のようにしている。
【００５８】
すなわち、図９に示すように、上記論理アドレス空間管理部ｌｌは、管理表として安定度間参照表１６を有している。そして、ガーベジコレクション処理のマーク付けにおいて、フラッシュメモリ７側に在る高い安定度Ｍ（＝２）の参照オブジェクト３８のポインタ２３にＲＡＭ８側に在る低い安定度Ｎ（＝０）の被参照オブジェクト３９の先頭の論理アドレスを書き込む際に、論理アドレス空間管理部ｌｌの安定度間参照表１６に参照オブジェクト３８の先頭の論理アドレスと当該論理アドレスが書き込まれたポインタ２３のワード番号とを書き込むのである。
【００５９】
こうすることによって、上記ＲＡＭ８側の論理アドレス空間における安定度０の領域に対してガーベジコレクション処理を実行する場合には、ガーベジコレクション実行部１３は、先ず、論理アドレス空間管理部ｌｌの安定度間参照表１６を検索して、安定度間参照表１６で指定された論理アドレスにある参照オブジェクト３８の指定されたワード番号のポインタ２３を見る。こうして、処理対象の安定度０よりも高い安定度Ｍ（＝１，２，３）の領域に存在する参照オブジェクト３８によって参照されているオブジェクトであって、安定度０の領域に存在する被参照オブジェクト３９を検索する。そして、得られた被参照オブジェクト３９をガーベジコレクション実行の際に上記ルートとして扱うのである。
【００６０】
尚、上述のような処理対象となる領域の安定度Ｎより高い安定度Ｍの領域に存在する参照オブジェクト３８によって参照されている被参照オブジェクト３９を上記ルートとして扱う手法は、従来より知られている（Ｕngar Ｄ：Ｇeneration scavenging ： Ａ  non-disruptive high-performance storage reclamation algorithm，ACM SIGPLAN Ｎotices vol.19,no.5,1987）。
【００６１】
上記ガーベジコレクション実行部１３は、上述のようにしてガーベジコレクション処理を行うのであるが、例えば安定度０の領域に対してガーベジコレクション処理を行った結果、あまり回収が行われず、十分な未使用領域を回復できなかったと判定した場合には、一つ上の安定度「１」の領域を加えた安定度０の領域と安定度１の領域とにガーベジコレクション処理を行うのである。それでも十分な未使用領域を回復できない場合には、さらに高い安定度の領域を加えてガーベジコレクション処理を行うのである。
図１０は、上記ガーベジコレクション実行部１３によって行われるより高い安定度の領域を順次加えて行われるガーベジコレクション処理動作のフローチャートである。
【００６２】
ステップＳ３１で、上記ＲＡＭ８用の論理アドレス空間における安定度０の領域に対してガーベジコレクション・サブルーチンが実行される。
ステップＳ３２で、上記ステップＳ３１の結果、十分な未使用領域が回復できたか否かが判別される。その結果、十分な未使用領域が回復できなかった場合にはステップＳ３３に進み、回復できた場合にはガーベジコレクション処理動作を終了する。
ステップＳ３３で、上記ＲＡＭ８用の論理アドレス空間における安定度０および安定度１の領域に対してガーベジコレクション・サブルーチンが実行される。ステップＳ３４で、上記ステップＳ３３の結果、十分な未使用領域が回復できたか否かが判別される。その結果、十分な未使用領域が回復できなかった場合にはステップＳ３５に進み、回復できた場合にはガーベジコレクション処理動作を終了する。
ステップＳ３５で、上記ＲＡＭ８用の論理アドレス空間における安定度０および安定度１の領域と、フラッシュメモリ７用の論理アドレス空間における安定度２の領域とに対して、ガーベジコレクション・サブルーチンが実行される。
ステップＳ３６で、上記ステップＳ３５の結果、十分な未使用領域が回復できたか否かが判別される。その結果、十分な未使用領域が回復できなかった場合にはステップＳ３７に進み、回復できた場合にはガーベジコレクション処理動作を終了する。
ステップＳ３７で、上記ＲＡＭ８用の論理アドレス空間における安定度０および安定度１の領域と、フラッシュメモリ７用の論理アドレス空間における安定度２および安定度３の領域とに対して、ガーベジコレクション・サブルーチンが実行される。
そうした後、ガーベジコレクション処理動作を終了する。
【００６３】
上述のように、本実施の形態においては、上記ガーベジコレクション実行部１３は、最も安定度の低い領域からガーベジコレクション処理を行い、十分な未使用領域が回復できなかった場合には、十分な未使用領域が回復できるまで順次高い安定度の領域を加えてガーベジコレクション処理を続行するようにしている。したがって、常時総ての論理アドレス空間に対して一様にガーベジコレクション処理を実行する場合に比して、ガーベジコレクション処理の回数とガーベジコレクション処理時間とを短縮でき、ガーベジコレクション処理による他のシステムの実行の中断時間を短縮できるのである。
また、上述のごとく、安定度０と安定度１との低い安定度の領域はＲＡＭ８用の論理アドレス空間に配置される一方、安定度２と安定度３との高い安定度の領域はフラッシュメモリ７用の論理アドレス空間に配置されている。したがって、ガーベジコレクションに付随して実行される書き換えは、書き換え回数制限型メモリではないＲＡＭ８に対して頻繁に行われ、書き換え回数制限型メモリであるフラッシュメモリ７に対しては少ない回数で行われることになる。したがって、フラッシュメモリ７の長寿命化が図られるのである。
また、大部分のオブジェクトが比較的短時間にゴミになる性質があることに着目して、安定度の低い領域（つまり、安定度の低いオブジェクト群）に対して高い頻度でガーベジコレクション処理を行うことによって、オブジェクトの回収率を上げてメモリの利用効串を高めることができるのである。
【００６４】
上記安定度設定部１２は、総ての論理アドレス空間における各安定度Ｎ（Ｎ＝０，１，２）の領域毎に、ガーベジコレクション実行部１３によって実行されたガーベジコレクション処理回数を管理している。そして、安定度Ｎの領域に対するガーベジコレクション処理回数が安定度Ｎ毎に設定されている所定回数ＸN（Ｎ＝１，２，３）に達すると、その安定度Ｎの領域に存在するガーベジコレクション処理に付随する書き換え以外の書き込みも上記回収も行われなかったオブジェクトの安定度を（Ｎ＋１）に設定する。
ここで、本実施の形態においては、上述したごとく、同じ安定度を有するオブジェクトは同一論理アドレス空間上に連続して配置するようにしている。したがって、上述のように安定度Ｎの領域中に在って安定度が（Ｎ＋１）となったオブジェクトは、安定度（Ｎ＋１）の領域に移動させる必要がある。そこで、ガーベジコレクション実行部１３によって行われる実際のガーベジコレクション処理では、図８に示す手順に加えて、当該ガーベジコレクション処理後に安定度が（Ｎ＋１）になるオブジェクトを安定度（Ｎ＋１）の領域に移動させる手順を要する。
【００６５】
図ｌｌは、図１０に示すガーベジコレクション処理動作のフローチャートにおける上記ステップＳ３１，Ｓ３３，Ｓ３５，Ｓ３７において実行されるガーベジコレクション・サブルーチンのフローチャートである。図１０に示すガーベジコレクション処理動作のフローチャートにおいて、安定度０の領域に対するガーベジコレクション処理が指令されるが、上記ステップＳ３２，Ｓ３４，Ｓ３６において十分な未使用領域を回復できなかったと判別されると、ガーベジコレクション・サブルーチンがスタートする。
【００６６】
ステップＳ４１で、上記ルート３７から、ポインタ２３を走査して参照されているオブジェクトを順次辿りながら、参照されているオブジェクトのマークフラグ２５がセットされる。
ステップＳ４２で、ゴミになるオブジェクトのメモリ領域をゴミにならないオブジェクトで詰めるためのオブジェクトの移動量が計算される。
ステップＳ４３で、上記論理アドレス空間管理部ｌｌの管理情報を参照して、安定度が（Ｎ＋１）となるオブジェクトが存在するか否かが判別される。その結果、存在する場合にはステップＳ４４に進む一方、存在しない場合にはステップＳ４７に進む。
【００６７】
ステップＳ４４で、上記ステップＳ４３において安定度が（Ｎ＋１）となると判別された一つのオブジェクトの移動量が、安定度（Ｎ＋１）の領域における未使用領域の先頭への移動量に更新される。
ステップＳ４５で、上記ステップＳ４３において安定度が（Ｎ＋１）となると判別された総てのオブジェクトに対する移動量の更新が柊了したか否かが判別される。その結果、終了していればステップＳ４７に進み、終了していなければステップＳ４６に進む。
ステップＳ４６で、上記安定度（Ｎ＋１）の領域に次のオブジェクトを移動可能なだけの未使用領域が存在するが否かが判別される。その結果、存在する場合には上記ステップＳ４４に戻って次のオブジェクトの移動量更新に移行する。一方、存在しない場合には、ステップＳ４７に進む。
【００６８】
ステップＳ４７で、上記ステップＳ４２において算出された移動量あるいは上記ステップＳ４４において更新された移動量に基づいて、参照オブジェクトのポインタ２３の内容が被参照オブジェクトの移動後の先頭論理アドレスに補正される。
ステップＳ４８で、上記算出された移動量あるいはその後更新された移動量に基づいて、ゴミとはならないオブジェクトの詰め合わせが行われる。
その際に、安定度（Ｎ＋１）の領域に移動すべきオブジェクトがある場合には、オブジェクト割付部１４が起動されて、該当するオブジェクトの割り付け直しが行われる。
ステップＳ４９で、上記ステップＳ４６における判別結果に基づいて、上記ステップＳ４３において安定度が（Ｎ＋１）となると判別された総てのオブジェクトが安定度（Ｎ＋１）の領域に移動できるか否かが判別される。その結果、総てのオブジェクトが移動できればステップＳ５０に進み、そうでなければステップＳ５１に進む。
【００６９】
ステップＳ５０で、例えば、（処理後の未使用領域／処理前の未使用領域）の値と所定確との比較によって、上記ステップＳ４８の結果、十分な未使用領域が回復できたか否かが判別される。その結果、十分な未使用領域が回復できなかった場合にはステップＳ５１に進み、回復できた場合にはガーべジコレクション・サブルーチンを終了して、図１０に示すガーベジコレクション処理動作のフローチャートにリターンする。
ステッブＳ５１で、上記ガーベジコレクション実行部１３内に設定された回復フラグに「１」がセットされて、十分な未使用領域が回復できなかったことが表示される。
そうした後、ガーベジコレクション・サブルーチンを終了して、図１０に示すガーベジコレクション処理動作のフローチャートにリターンする。
【００７０】
上述のように、上記ガーベジコレクション・サブルーチンにおいては、安定度（Ｎ＋１）の領域に次のオブジェクトを移動可能なだけの未使用領域が存在しない場合には、移動量の更新を中止して、そのまま詰め合わせを行うようにしている。したがって、そのような場合には、安定度Ｎの領域内に安定度（Ｎ＋１）のオブジェクトが混在することなる。しかしながら、そのような場合には、十分な未使用領域が回復できなかったとして、上記回復フラグに「１」をセットするので、図１０に示すガーベジコレクション処理動作のフローチャートにリターンした際に、上記ステップＳ３２，Ｓ３４，Ｓ３６において上記回復フラグが参照されて、十分な未使用領域が回復できなかったと判別される。その結果、次のステップで、安定度（Ｎ＋１）のオブジェクトが混在している安定度Ｎの領域と安定度（Ｎ＋１）の領域とに対してガーベジコレクション・サブルーチンが実行されて、安定度（Ｎ＋１）の領域に対する未使用領域の回復が行われるのである。
【００７１】
上述のように、本実施の形態においては、上記オブジェクトに対して「ガーベジコレクションによる回収されにくさ」と「書き込みの起こりにくさ」とを合わせ持つ「安定度」を設定する安定度設定部１２を有する。また、メモリ部５にデータ用メモリとしてのフラッシュメモリ（書き換え回数制限メモリ）７とＲＡＭ８とを設け、オブジェクト割付部１４によって、フラッシュメモリ７側の論理アドレス空間上には安定度が「０」と「１」のオブジェクトを割り付ける一方、ＲＡＭ８側の論理アドレス空間上には安定度が「２」と「３」のオブジェクトを割り付ける。
【００７２】
そして、上記フラッシュメモリ７側の論理アドレス空間上およびＲＡＭ８側の論理アドレス空間上に割り付けられたオブジェクトに対して、ＣＰＵ３から書き込みが要求されると、ＭＭＵ４によって、アドレス変換表格納部９に格納されたアドレス変換表が参照されてアドレス変換が行われて、図３に示すように、論理アドレス空間上における当該オブジェクトの論理ページが物理アドレス空間上に写像されて、この写像された物理ページに従って書き込みが行われる。
【００７３】
また、上記ＭＭＵ４のアクセス例外検知手段１５によって、ＣＰＵ３から要求された書き込みがアクセス例外であることが検知されると、ＭＭＵ４は、書き込み禁止の論理ページが写像されたフラッシュメモリ７上の物理ページの内容をＲＡＭ８上の物理アドレス空間における未使用ページにコピーし、このコピーされた物理ページを写像元のフラッシュメモリ７側の論理ページに対応付け直す。このようにして、書き込み禁止であった論理ページを書き込み可能にすることによって、以後の当該書き込み禁止のオブジェクトに対する書き込みはＲＡＭ８上の物理ページに対して行われることとなる。
その結果、書き換え回数制限型のフラッシュメモリ７に対する書き込み回数が減少されることになる。
【００７４】
ここで、上記ＣＰＵ３によって新規のオブジェクトに対する論理アドレスの割り付けが要求されると、安定度設定部１２によって、上記新規オブジェクトの安定度が最小値「０」に設定され、オブジェクト割付部１４によってＲＡＭ８用の論理アドレス空間上の安定度０の領域の未使用領域の先頭に割り付けられる。その際に、上記安定度０の領域に新規オブジェクトを割り付けるだけの未使用領域が存在しない場合には、ガーベジコレクション実行部１３によって、最も安定度の低いＲＡＭ８の安定度０の領域に対してガーベジコレクションが実行される。そして、十分な未使用領域が回復できない場合には、十分な未使用領域が回復できるまで順次高い安定度の領域を加えてガーベジコレクション処理を繰り返すのである。
【００７５】
こうして、大部分のオブジェクトが比較的短時間にゴミになる性質があることに着目して、ＲＡＭ８側の安定度の低い領域に対して高い頻度でガーベジコレクションを行うことによって、以下のような効果を奏することができるのである。・ガーベジコレクション処理の回数と時間とを短縮でき、他のシステムの実行の中断時間を短縮できる。
・ガーベジコレクションに付随する書き換えを書き換え回数制限型メモリであるフラッシュメモリ７に対して少ない回数で行って、フラッシュメモリ７の長寿命化を図ることができる。
・オブジェクトの回収率を上げてメモリの利用効率を高めることができる。
【００７６】
また、上記安定度設定部１２は、安定度Ｎの領域に対するガーベジコレクション処理回数が所定回数ＸN（Ｎ＝１，２，３）に達すると、その安定度Ｎの領域に存在する書き込み（ガーベジコレクション処理に付随する書き換え以外の書き込み）も上記回収も行われなかったオブジェクトの安定度を（Ｎ＋１）に設定する。そして、ガーベジコレクション実行部１３は、安定度Ｎの領域に対してガーベジコレクション処理を行う際に安定度が（Ｎ＋１）に変更されるオブジェクトがあればそのオブジェクトを安定度（Ｎ＋１）の領域に移動する。
こうして、上記安定度毎に設定された所定回数のガーベジコレクション処理が行われる間に上記書き込みが行われない比較的安定したオブジェクトの安定度を増加することによって、安定度が「２」以上と高いために書き込み頻度が少ないと予測されるオブジェクトのみがフラッシュメモリ７側に設定でき、フラッシュメモリ７の更なる長寿命化を図ることができる。
【００７７】
また、書き込まれる可能性の高いオブジェクトは、被参照オブジェクトが変化することによってゴミを発生する可能性が高い。そこで、上記安定度が「２」であるオブジェクトは、所定回数Ｘ２にわたるガーベジコレクション処理によって回収されなくとも、その間に書き込みが行われた場合には安定度は「３」にはならないようにして最もガーベジコレクション処理の頻度の高い安定度「２」の領域に止め置くのである。つまり、フラッシュメモリ７側にあるオブジェクトであっても書き込まれる可能性の高いオブジェクトは最もガーべジコレクション処理の頻度の高い領域に止め置くことによって、発生されたゴミがガーべジコレクション処理によって回収され易くなって、オブジェクトの回収率を更に上げることができるのである。
【００７８】
なお、上述したメモリ管理装置として機能させるために、その処理を実行するためのプログラムをフロッピーディスクやＣＤＲＯＭ等のコンピュータ読み取り可能な記録媒体に予め記録させておいて、必要に応じてコンピュータにインストールさせて用いてもよい。
【００７９】
【発明の効果】
以上より明らかなように、請求項１に係る発明のメモリ管理装置または請求項７に係る発明のコンピュータ読み取り可能な記録媒体によれば、書き換え回数制限型メモリあるいはＲＡＭに対する新規オブジェクトの割り付け時、および、ガーベジコレクション実行部によるガーベジコレクション処理実行時に、安定度設定部によって、オブジェクトに対して、上記ガーベジコレクション処理によって回収されず且つ当該ガーベジコレクション処理時まで書き込みが行われなかった場合に増加する安定度を設定し、オブジェクト割付部によって、上記設定された安定度が所定値以下であるオブジェクトをＲＡＭに割り付ける一方、上記安定度が上記所定値より高いオブジェクトを上記書き換え回数制限型メモリに割り付けるので、ガーベジコレクション処理によって回収されにくく、且つ、書き込みが起こりにくいオブジェクト群が上記書き換え回数制限型メモリに割り付けられる。
したがって、この発明によれば、上記書き換え回数制限型メモリに対する書き換えや書き込みを押さえて、上記書き換え回数制限型メモリの長寿命化を図ることができる。
【００８０】
また、請求項２に係る発明のメモリ管理装置におけるガーベジコレクション実行部は、上記安定度の高いオブジェクトが割り付けられている領域よりも、上記安定度の低いオブジェクトが割り付けられている領域に対して、高い頻度で上記ガーベジコレクション処理を行うので、上記ガーベジコレクション処理に付随する書き換えは、上記安定度の低いオブジェクトが割り付けられている上記ＲＡＭに対して頻繁に行われることになる。したがって、上記書き換え回数制限型メモリの更なる長寿命化を図ることができる。また、上記安定度が低く、ゴミ化しやすいオブジェクト群に対して高い頻度で上記ガーベジコレクション処理を行うことによって、オブジェクトの回収率を上げてメモリの利用効率を高めることができる。
さらに、上記安定度の低いオブジェクトが割り付けられている領域に対して高い頻度で上記ガーベジコレクション処理が行われるので、全領域に対して一様に上記ガーべジコレクション処理を実行する場合よりも処理時間を短縮でき、他の処理の中断時間を短縮できる。したがって、利用者に対する応答性がよくなる。
【００８１】
また、請求項３に係る発明のメモリ管理装置におけるガーベジコレクション実行部は、所定の大きさ以上の未使用領域が得られるまで、最も低い安定度のオブジェクト群が割り付けられている領域に順次高い安定度のオブジェクト群が割り付けられている領域を加えて上記ガーベジコレクション処理を行うので、上記安定度が低い程上記ガーベジコレクション処理の回数が多くなる。したがって、上記安定度の高いオブジェクトが割り付けられている上記書き換え回数制限型メモリに対する上記ガーベジコレクション処理に付随する書き換えを少なくして、上記書き換え回数制限型メモリの更なる長寿命化を図ることができる。また、ゴミ化しやすい低安定度のオブジェクト群に対する上記ガーベジコレクション処理の頻度を上げてオブジェクトの回収率を高めることができる。
さらに、上記未使用領域が所定の大きさより少ないメモリの全領域に対して一様にガーベジコレクション処理を行う場合よりも処理時間を短縮して、他の処理の中断時間を短縮できる。
【００８２】
また、請求項４に係る発明のメモリ管理装置における安定度設定部は、上記新規オブジェクトの割り付け時には、新規オブジェクトの安定度を最小値に設定するので、殆どが短期間のうちにゴミと化する新規オブジェクトを上記ガーベジコレクション処理回数の多い上記ＲＡＭに割り付けて上記ガーベジコレクション処理によって回収することができる。したがって、メモリの利用効率を高めることができる。
さらに、上記ガーベジコレクション処理実行時には、ガーベジコレクション処理回数が所定回数になったオブジェクトであって上記所定回数のガーベジコレクション処理の間に書き込みが行われなかったオブジェクトの安定度を所定値だけ増加するので、上記書き換え回数制限型メモリには書き込みが行われないと予測される安定したオブジエクトが割り付けられることになる。したがって、上記書き換え回数制限型メモリの更なる長寿命化を図ることができる。
【００８３】
また、請求項５に係る発明のメモリ管理装置におけるアドレス変換部は、アクセス例外検知手段によってアクセス例外が検知された場合には、書き込みが要求された論理アドレス空間上の論理ページが写像された上記書き換え回数制限型メモリの物理アドレス空間上の物理ページの内容をＲＡＭの物理アドレス空間上の未使用の物理ページにコピーし、このコピーされた上記ＲＡＭの物理ページを上記書き込みが要求された論理アドレス空間上の論理ページに対応付けるので、書き込みが要求された論理アドレス空間上の論理ページを上記ＲＡＭの物理アドレス空間上の物理ページに対応付け直すことができる。
したがって、以後は、上記書き換え回数制限型メモリ上における書き込み禁止ページに対する書き込みが可能となる。つまり、上記書き換え回数制限型メモリを通常のデータ用メモリとして使用できるのである。
【００８４】
さらに、上述の結果、上記書き換え回数制限型メモリ上における論理ページに発生した書き込みが上記ＲＡＭに対して行われることなり、結果として上記書き換え回数制限型メモリの更なる長寿命化を図ることができるのである。
【００８５】
また、請求項６に係る発明のメモリ管理装置は、上記書き換え回数制限型メモリとしてフラッシュメモリを用いるので、消費電力の低下を図ることができる。
【図面の簡単な説明】
【図１】この発明のメモリ管理装置が登載された計算機システムにおけるブロック図である。
【図２】オブジェクトの構成を示す概念図である。
【図３】図１におけるＭＭＵによって行われるアドレス変換の一例の様子を示す概念図である。
【図４】アクセス例外時におけるアドレス変換の様子を示す概念図である。
【図５】図１におけるＭＭＵによって行われるアクセス例外アドレス変換処理動作のフローチャートである。
【図６】新規のオブジェクトが割り付けられる際の論理アドレス空間の様子を示す概念図である。
【図７】図１におけるオブジェクト割付部によって行われるメモリ領域割り付け処理動作のフローチャートである。
【図８】スライディング・コンパクション方式によるガーベジコレクション処理による論理アドレス空間の変遷を示す図である。
【図９】図１における論理アドレス空間管理部の安定度間参照表の説明図である。
【図１０】図１におけるガーベジコレクション実行部によって行われるガーベジコレクション処理動作のフローチャートである。
【図ｌｌ】図１０のガーべジコレクション処理動作中において実行されるガーベジコレクション・サブルーチンのフローチャートである。
【符号の説明】
１…計算機システム、              ２…メモリ管理装置、
３…ＣＰＵ、                      ４…ＭＭＵ、
５…メモリ部、                    ７…フラッシュメモリ、
８…ＲＡＭ、                      ９…アクセス変換表格納部、
１０…物理アドレス空間管理部、    ｌｌ…論理アドレス空間管理部、
１２…安定度設定部、              １３…ガーベジコレクション実行部、
１４…オブジェクト割付部、        １５…アクセス例外検知手段、
１６…安定度間参照表、            ２３…ポインタ、
２４…書き込みフラグ、            ２５…マークフラグ、
３７…ルート。
【図１】
0003868585.tif 000002
【図２】
0003868585.tif 000003
【図３】
0003868585.tif 000004
【図４】
0003868585.tif 000005
【図５】
0003868585.tif 000006
【図６】
0003868585.tif 000007
【図７】
0003868585.tif 000008
【図８】
0003868585.tif 000009
【図９】
0003868585.tif 000010
【図１０】
0003868585.tif 000011
【図１１】
0003868585.tif 000012