JP3868585B2 - メモリ管理装置及びコンピュータ読み取り可能な記録媒体 - Google Patents
メモリ管理装置及びコンピュータ読み取り可能な記録媒体 Download PDFInfo
- Publication number
- JP3868585B2 JP3868585B2 JP20279097A JP20279097A JP3868585B2 JP 3868585 B2 JP3868585 B2 JP 3868585B2 JP 20279097 A JP20279097 A JP 20279097A JP 20279097 A JP20279097 A JP 20279097A JP 3868585 B2 JP3868585 B2 JP 3868585B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- stability
- garbage collection
- area
- rewrite
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
この発明は、書き換え回数に制限のあるメモリの長寿命化を図りながら、メモリの利用効率が高くて中断時間の短いガーベジコレクションの実現を可能にするメモリ管理装置及びコンピュータ読み取り可能な記録媒体に関する。
【0002】
【従来の技術】
近年、PDA(Personal Digital Assistant)等のバッテリで動作する携帯型の情報処理端末機器が実現化されている。
上記PDAのような端末は、少ないメモリ容量で動作することや、低消費電力であることが強く要求される。上記PDAでは、未使用時にシステムの状態を保存するために、バッテリでバックアップされたRAM(ランダム・アクセス・メモリ)を搭載することが多い。そして更に、低消費電力化を図るために、上記RAMのかなりの部分を低消費電力のフラッシュメモリに置き換えるようになっている。
【0003】
一方、メモリの利用効率を高めて、アプリケーションプログラムの構築を容易にするメモリ管理手法として、ガーベジコレクションが知られている。例えば、ニュートン(アップル社製)のオペレーティングシステムは、上記ガーベジコレクションを主要なメモリ管理手法として採用している。但し、上記ニュートンにおいては、ガーベジコレクションの対象となるのはRAM領域のみである。
【0004】
【発明が解決しようとする課題】
しかしながら、上記従来のガーベジコレクションには、上記PDAのような端末システムのメモリ管理手法として用いた場合には以下のような問題がある。
【0005】
(1)実行の中断
上記ガーベジコレクションの実行中には、アプリケーションを含む他のシステムの実行が中断させられる。そのために、ある量以上のメモリに対するガーベジコレクションの実行は、対話的な利用を前提とするPDAでは、利用者に対する応答を悪化させることになる。
【0006】
(2)メモリの頻繁な書き換え
上記ガーベジコレクションは、通常RAM上のメモリ管理を前提としているため、例外なく、管理の対象となるメモリ空間を頻繁に走査して書き換えるようにしている。そのために、上記ガーベジコレクションを、フラッシュメモリのように書き換え回数に制限のあるメモリに対してそのまま適用すると、メモリの寿命を著しく縮めてしまう。
【0007】
すなわち、上記PDAのように、フラッシュメモリのごとく書き換え回数に制限のあるメモリを搭載している計算機システムでガーベジコレクションを実現するためには、ガーベジコレクション実行による他のシステムの実行の中断時間を短縮することと同時に、書き換え回数制限型メモリの寿命を延ばすための対策を講ずる必要がある。
【0008】
ガーベジコレクションの処理時間を短縮する手法は「実時間ガーベジコレクション」と呼ばれており、多数提案されている。しかしながら、フラッシュメモリのような書き換え回数制限型メモリを搭載するシステムに対して、書き換え回数制限型メモリを含むメモリ領域への適用を想定した実時間ガーベジコレクションは、これまで知られていない。
【0009】
そこで、この発明の目的は、書き換え回数に制限のあるメモリの長寿命化を図りながら、メモリの利用効率が高くて処理時間の短いガーべジコレクションの実現を可能にするメモリ管理装置を堤供することにある。
【0010】
【課題を解決するための手段】
上記目的を達成するため、請求項1に係る発明は、書き換え回数制限型メモリとRAMとを有するシステムのメモリ管理装置であって、上記書き換え回数制限型メモリあるいはRAMの未使用領域が所定の大きさより小さい場合に、この未使用領域が小さいメモリに対してガーベジコレクション処理を行うガーベジコレクション実行部と、上記各メモリに対するデータの割り付け単位を表す情報であるオブジェクトに対して、上記各メモリに対する新規オブジェクトの割り付け時、あるいは、上記ガーベジコレクション処理実行時に、上記ガーベジコレクション処理によって回収されず且つ当該ガーベジコレクション処理時まで書き込みが行われなかった場合に増加する安定度を設定する安定度設定部と、上記各メモリに対する新規オブジェクトの割り付け時、あるいは、上記ガーベジコレクション処理実行時に、上記安定度設定部によって設定された安定度が所定値以下のオブジェクトを上記RAMに割り付ける一方、上記安定度が上記所定値より高いオブジェクトを上記書き換え回数制限型メモリに割り付けるオブジェクト割付部を備えたことを特徴としている。
【0011】
上記構成において、書き換え回数制限型メモリあるいはRAMに対する新規オブジェクトの割り付けが要求されると、安定度設定部によって新規オブジェクトの安定度が設定される。そして、オプジェクト割付部によって、上記設定された安定度が所定値以下である場合には、上記新規オブジェクトはRAMに割り付けられる。一方、上記安定度が上記所定値より高い場合には、上記新規オブジェクトが上記書き換え回数制限型メモリに割り付けられる。
さらに、上記新規オブジェクトを割り付ける際に、割り付け対象となる上記書き換え回数制限型メモリあるいはRAMの未使用領域が所定の大きさより小さい場合には、ガーベジコレクション実行部によってガーベジコレクション処理が行われる。そして、上記安定度設定部によって、当該ガーべジコレクション処理によって回収されず且つ当該ガーベジコレクション処理時まで書き込みが行われなかったオブジェクトの安定度が増加される。そして、上記設定された安定度が上記所定値より高くなると、上記オブジェクト割付部によって、当該オブジェクトは上記RAMから上記書き換え回数制限型メモリに割り付け直される。
【0012】
こうして、常に、上記安定度が所定値以下のオブジェクトを上記RAMに割り付ける一方、上記安定度が上記所定値より高いオブジェクトを上記書き換え回数制限型メモリに割り付けることによって、上記ガーベジコレクション処理によって回収されにくく且つ書き込みが起こりにくいオブジェクト群が上記書き換え回数制限型メモリに割り付けられる。その結果、上記書き換え回数制限型メモリに対する書き換えや書き込みが押さえられて、上記書き換え回数制限型メモリの長寿命化が図られる。
【0013】
また、請求項2に係る発明は、請求項1にかかる発明のメモリ管理装置において、上記ガーベジコレクション実行部は、上記未使用領域が所定の大きさより小さいメモリに関して、上記安定度の高いオブジェクトが割り付けられている領域よりも、上記安定度の低いオブジェクトが割り付けられている領域に対して、高い頻度で上記ガーベジコレクション処理を行うようになっていることを特徴としている。
【0014】
上記構成によれば、上記安定度の低いオブジェクトが割り付けられている領域に対して高い頻度で上記ガーベジコレクション処理が行われる。したがって、上記ガーベジコレクション処理に付随する書き換えは、上記安定度の低いオブジェクトが割り付けられている上記RAMに対して頻繁に行われることになり、上記書き換え回数制限型メモリの更なる長寿命化が図られる。
さらに、上記安定度の低いオブジェクトが割り付けられている領域に対して高い頻度で上記ガーベジコレクション処理が行われることによって、該当するメモリの全領域に対して一様に上記ガーベジコレクション処理を行う場合よりも上記ガーべジコレクション処理の時間が短縮されて、他の処理の中断時間が短縮される。
【0015】
また、請求項3に係る発明は、請求項2にかかる発明のメモリ管理装置において、上記ガーベジコレクション実行部は、上記未使用領域が所定の大きさより小さいメモリに関して、上記所定の大きさの未使用領域が得られるまで,最も低い安定度のオブジェクト群が割り付けられている領域に順次高い安定度のオブジェクト群が割り付けられている領域を加えて上記ガーベジコレクション処理を行うようになっていることを特徴としている。
【0016】
上記構成によれば、上記安定度が低いオブジェクト群が割り付けられている領域程上記ガーベジコレクション処理の回数が多くなり、上記安定度の高いオブジェクトが割り付けられている上記書き換え回数制限型メモリに対する上記ガーベジコレクション処理に付随する書き換えが少なくなる。こうして、上記書き換え回数制限型メモリの更なる長寿命化が図られる。
さらに、上記未使用領域が所定の大きさより小さいメモリの全領域に対して一様にガーベジコレクション処理を行う場合よりも処理時間が短縮されて、他の処理の中断時間が短縮される。
【0017】
また、請求項4に係る発明は、請求項1に係る発明のメモリ管理装置において、上記安定度設定部は、上記新規オブジェクトの割り付け時には,新規オブジェクトの安定度を最小値に設定し、上記ガーベジコレクション処理実行時には,当該ガーベジコレクション処理によって,処理対象領域に在る同一安定度のオブジェクトに対するガーベジコレクション処理回数が上記安定度になってから所定回数になった場合に,上記処理対象領域に在るオブジェクトであって上記所定回数のガーベジコレクション処理が行われる間に書き込みが行われなかったオブジェクトの安定度を所定値だけ増加するようになっていることを特徴としている。
【0018】
上記構成によれば、新規オブジェクトの安定度が最小値に設定されるので、殆どが短期間のうちに他のオブジェクトとの参照関係が成立しないゴミと化す新規オブジェクトが上記ガーベジコレクション処理回数の多い上記RAMに割り付けられる。こうして、メモリの利用効率が高められる。
さらに、書き込みが行われにくいオブジェクトの安定度が増加されるので、上記書き換え回数制限型メモリには書き込みが行われないと予測されるオブジェクトが割り付けられることになる。こうして、上記書き換え回数制限型メモリの更なる長寿命化が図られる。
【0019】
また、請求項5に係る発明は、請求項1に係る発明のメモリ管理装置あって、上記書き換え回数制限型メモリおよび/または上記ランダム・アクセス・メモリの論理アドレスを物理アドレスに変換するアドレス変換部を備え、そのアドレス変換部は、上記書き換え回数制限型メモリ上におけるアドレス変換の単位領域としてのぺージであって書き込み禁止であるページに対して書き込みが要求されて発生するアクセス例外を検知するアクセス例外検知手段を備えて、上記アクセス例外検知手段によってアクセス例外が検知された場合には、書き込みが要求された論理アドレス空間上の論理ページが写像された上記書き換え回数制限型メモリの物理アドレス空間上の物理ページの内容を上記RAMの物理アドレス空間上の未使用の物理ページにコピーし、このコピーされた上記RAMの物理ページを上記書き込みが要求された論理ページに対応付けるようになっていることを特徴としている。
【0020】
上記構成によれば、上記書き換え回数制限型メモリ上における書き込み禁止ぺージに対して書き込みが要求されるアクセス例外が発生した場合には、書き込みが要求された論理アドレス空間上の論理ページが上記RAMの物理アドレス空間上の物理ページに写像されるので、以後上記書き換え回数制限型メモリ上における書き込み禁止ぺージに対する書き込みが可能となる。
さらに、上記書き換え回数制限型メモリ上における論理ページに発生した書き込みが上記RAMに対して行われることなり、結果として上記書き換え回数制限型メモリの更なる長寿命化が図られる。
【0021】
また、請求項6に係る発明は、請求項1乃至請求項5の何れか一つに係る発明のメモリ管理装置において、上記書き換え回数制限型メモリは、フラッシュメモリであることを特徴としている。
【0022】
また、請求項7に係る発明は、書き換え回数制限型メモリとランダム・アクセス・メモリと上記両メモリの論理アドレスを物理アドレスに変換するアドレス変換部を有するシステムのメモリ管理装置として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、上記書き換え回数制限型メモリあるいはランダム・アクセス・メモリの未使用領域が所定の大きさより小さい場合に、この未使用領域が小さいメモリに対してガーベジコレクション処理を行うガーベジコレクション実行部と、上記各メモリに対するデータの割り付け単位を表す情報であるオブジェクトに対して、上記各メモリに対する新規オブジェクトの割り付け時、あるいは、上記ガーベジコレクション処理実行時に、上記ガーベジコレクション処理によって回収されず且つ当該ガーベジコレクション処理時まで書き込みが行われなかった場合に増加する安定度を設定する安定度設定部と、上記各メモリに対する新規オブジェクトの割り付け時、あるいは、上記ガーベジコレクション処理実行時に、上記安定度設定部によって設定された安定度が所定値以下のオブジェクトを上記ランダム・アクセス・メモリに割り付ける一方、上記安定度が上記所定値より高いオブジェクトを上記書き換え回数制限型メモリに割り付けるオブジェクト割付部として機能させるためのプログラムを記録したことを特徴としている。
【0023】
【発明の実施の形態】
以下、この発明を図示の実施の形態により詳細に説明する。
図1は本実施の形態のメモリ管理装置が搭載された計算機システムにおけるブロック図である。尚、本実施の形態においては、書き換え回数に制限のあるEEPROMとしてフラッシュメモリが使用されているものとする。
【0024】
図1に示す計算機システム1は、本実施の形態の特徴であるメモリ管理装置2と、データ用メモリが登載されたメモリ部5と、メモリ管理装置2における管理情報に従ってプログラムやデータ上のメモリアドレス(論理アドレス)をハードウェア上のメモリアドレス(物理アドレス)に変換するメモリ管理ユニット(以下、MMUと略称する)4と、メモリ管理装置2,MMU4およびメモリ部5を制御して上記アドレス変換やガーベジコレクション等を行うCPU(中央演算処理装置)3で概略構成される。
【0025】
上記メモリ部5に登載されたデータ用メモリは、書き換え回数制限型メモリであるフラッシュメモリ7と読み書き可能なRAM8から構成されている。
上記メモリ管理装置2は、アドレス変換表格納部9,物理アドレス空間管理部10,論理アドレス空間管理部ll,安定度設定部12,ガーベジコレクション実行部13およびオブジェクト割付部14から構成されている。
【0026】
上記アドレス変換表格納部9はRAMで構成されて、上記論理アドレスと物理アドレスとの対応を示すアドレス変換表が格納されている。このアドレス変換表は、MMU4が上記アドレス変換を行う際に参照される。
上記物理アドレス空間管理部10は、物理アドレス空間上の使用領域と未使用領域を管理する。
上記論理アドレス空間管理部llは、論理アドレス空間上の使用領域と未使用領域を管理する。
【0027】
上記安定度設定部12は、アプリケーションプログラムが要求するデータの割り付け単位を表す情報(オブジェクト)に対して、「ガーベジコレクションによる回収されにくさ」と「書き込みの起こりにくさ」とを合わせた指標(数値)である「安定度」を設定する。
ここで、上記「回収」とは、後に詳述するように、ガーベジコレクションを実行する際に、あるオブジェクトがゴミとなって引き上げられることである。
【0028】
上記「安定度」の設定は、以下のように行われる。
・新規に割り付けられたオブジェクトの安定度を最小(本実施の形態では「0」)にする。
・ある安定度を有するオブジェクト群については、上記安定度になってから、上記安定度に対して定められている所定回数だけガーベジコレクションが施された後に、上記安定度を(本実施の形態では「l」だけ)増加する。但し、その所定回数のガーベジコレクションの間に書き込みが行われたオブジェクトに関しては、上記安定度の増加を抑制する。
【0029】
上記ガーベジコレクション実行部13は、上記データ用メモリの未使用領域が減少したときにガーベジコレクションを実行する。また、オブジェクト割付部14は、新規オブジェクトを論理アドレス空間に割り付けたり、ガーべジコレクション処理の際に安定度が変化したオブジェクトを新たな安定度の領域に割り付け直したりする。
【0030】
上記構成の計算機システム1は、以下のように動作する。
ここで、上記メモリ部5のフラッシュメモリ7には低安定度(安定度0と安定度1)のオブジェクトが設定される一方、RAM8には高い安定度(安定度2と安定度3)のオブジェクトが設定されている。
先ず、上記CPU3によって新規オブジェクトの割り付け要求がなされると、安定度設定部12によって新規オブジェクトの安定度が最低安定度「0」に設定され、オブジェクト割付部14によって論理アドレス空間管理部llの管理情報が参照されてRAM8用の論理アドレス空間上の未使用領域に割り付けられる。その際に、上記RAM8用の論理アドレス空間上に新規オブジェクトを割り付け可能な程度の未使用領域が無い場合には、ガーベジコレクション実行部13によって論理アドレス空間上における安定度「0」のオブジェクト群が連続して設定されている領域に対してガーベジコレクション処理を実行して十分な未使用領域を得る。尚、十分な未使用領域が得られない場合には、十分な未使用領域が得られるまでより高い安定度の領域を順次加えながらガーベジコレクション処理を行う。こうして、常時論理アドレス空間の総ての領域に対して一様にガーベジコレクション処理を実行するよりも少ないガーベジコレクション回数で処理時間の短縮を図り、早い時期にゴミとなってしまう低安定度のオブジェクトに対するガーベジコレクション処理の頻度を高くしてオブジェクトの回収率を高める。
【0031】
上記安定度設定部12は、ガーベジコレクション実行部13によって論理アドレス空間の安定度Nの領域に所定回数XNだけガーベジコレクション処理が行われた際に、他のオブジェクトとの参照関係が成立するためにゴミとなって回収されることがなく、且つ、それまでに書き込みが行われなかったオブジェクトの安定度を(N+1)に増加させる。そして、安定度が「l」から「2」に増加されるオブジェクトは、オブジェクト割付部14によって、上記XN回目のガーベジコレクション処理の際にRAM8側からフラッシュメモリ7側に割り付け直される。
こうして、書き込みが行われないと予測される安定したオブジェクトのみをガーベジコレクション処理に伴う書き換えの頻度が少ないフラッシュメモリ7側に集めることによって、フラッシュメモリ7の長寿命化を図るのである。
【0032】
以下、上記MMU4,安定度設定部12,ガーベジコレクション実行部13およびオブジェクト割付部14の動作についてより詳細に説明する。
図2は、上記オブジェクトの構成を示す概念図である。上記オブジェクトは、一つの連続した論理アドレス空間上に低位番地から高位番地に向かって順次配列されている。そして、一つのオブジェクトの構成は、ガーベジコレクション実行部13によってガーベジコレクション処理を実行するために、以下のような特徴を有している。
(A)上記オブジェクトは、先頭を表すヘッダ21,参照するオブジェクトの数22および参照するオブジェクトのポインタ23,23,…の情報格納領域から成り、各情報格納領域は夫々1ワードの大きさを持つ。そして、ヘッダ21の先頭には1ビットの書き込みフラグ24が設定され、次の1ビットにはマークフラグ25が設定されている。これらのフラグは何れも負論理であって、初期値は「1」である。
上記書き込みフラグ24には、当該オブジェクトに書き込みが行われた場合に「0」が書き込まれる(以下、このことを「セットする」と言う)。そして、当該オブジェクトにガーベジコレクション処理が実行される際に「1」にクリアされる。したがって、書き込みフラグ24を監視することで、安定度を増加するのに必要な上記所定回数のガーベジコレクションの間に、当該オブジェクトに書き込みが行われたが否かを知ることができるのである。上記マークフラグ25には、当該オブジェクトが他のオブジェクトから参照されている場合に、ガーベジコレクションの際に「0」が書き込まれる(以下、このことを「セットする」と言う)。
上記フラッシュメモリ7は、各ブロックのデータを消去した後には全ワードの各ビットに「1」が書き込まれており、各ビットの「1」を「0」に書き換えることは可能(逆は不可)である。そこで、フラッシュメモリ7上に設定された論理アドレス空間に配置されたオブジェクトの場合にも、書き込みフラグ24やマークフラグ25を実現できるのである。本実施の形態においては、フラッシュメモリ上のオブジェクトに関しては、マークフラグ25のみを設定する。
【0033】
(B)上記ポインタ23には、参照される他のオブジェクトの先頭(ヘッダ21)の論理アドレスが書き込まれる。
(C)オブジェクトの途中のワードを指す論理アドレスから当該オブジェクトの先頭の論理アドレスを知ることができる。これは、ヘッダ21に、参照するオブジェクトの数22に書き込まれる「数」の情報あるいはオブジェクトのポインタ23に書き込まれる「ポインタ」の情報と識別可能なパターンを呈する情報を付加し、オブジェクトの途中のワードを指す論理アドレスから低位番地の方に上記パターンを呈する情報を検索することによって可能となる。
【0034】
本実施の形態においては、図2に示すように、同じ安定度を有するオブジェクトを同一論理アドレス空間上に連続して配置する。そして、論理アドレス空間管理部llで、各論理アドレス空間に配置されたオブジェクト群の安定度と、その安定度を持つオブジェクト群が配置されている領域の論理アドレス上の範囲を管理しておく。こうすることによって、安定度設定部12は、論理アドレス空間管理部llにオブジェクト群の先頭アドレスを問い合わせることによって、各オブジェクトに付与された安定度を知ることができるのである。
【0035】
図3は、上記CPU3によって書き込みが要求された際に、MMU4によって行われるアドレス変換の一例の様子を示す概念図である。
図3に示すように、論理アドレス空間には、フラッシュメモリ7用に設定された連続空間と、RAM8用に設定された連続空間とがある。尚、他にROM6用の連続空間もあるが、本実施の形態においては省略する。同様に、物理アドレス空間にも、フラッシュメモリ7上に設定された連続空間と、RAM8上に設定された連続空間とがある。
【0036】
通常、上記MMU4によるアドレス変換は、バックアップ用の2次記憶装置を用いて、大きな論理アドレス空間を小さな物理アドレス空間に写像する「仮想記憶」のために用いられることが多い。しかしながら、本実施の形態においては、説明の都合上、ディスク等の2次記憶装置を持たず、RAM8に関しては設定された物理アドレス空間よりも論理アドレス空間の方が小さいものとする。
【0037】
図3において、オブジェクトaはフラッシュメモリ7側に在って、アドレス変換の単位領域(以下、ページと言う)Pより小さい領域を有している。オブジェクトbはフラッシュメモリ7側に在って、ページPより大きい領域を有している。オブジェクトcはRAM8側に在って、べージPより小さい領域を有している。オブジェクトdはRAM8側に在って、べージPより大きい領域を有している。
【0038】
上記MMU4は、主にフラッシュメモリ7に写像されるフラッシュメモリ7側の論理アドレス空間上のぺージであって、アドレス変換表格納部9に格納されたアドレス変換表において「書き込み禁止」がエントリされているページに対して、書き込みを行おうとする「アクセス例外」を検知するアクセス例外検知手段15を有している。
そして、上記MMU4は、アクセス例外検知手段15によって上記アクセス例外が検知された場合には、この書き込み禁止のぺージが写像されたフラッシュメモリ7上の物理アドレス空間におけるぺージ(以下、物理ページと略称する)の内容をRAM8上の物理アドレス空間における未使用ページにコピーし、このコピーされたRAM8上の物理ページを写像元のフラッシュメモリ7側の論理アドレス空間におけるぺージ(以下、論理ぺージと略称する)に対応付け直すのである。こうすることによって、以後、書き込み禁止であった論理ぺージに対して書き込みが可能になる。
すなわち、上記書き込み禁止が指定されるようなフラッシュメモリ7をデータ用メモリとしても使用可能になるのである。
【0039】
図4は、上記アクセス例外発生時に行われるアドレス変換の様子を示す概念図である。図4においては、フラッシュメモリ7用に設定された論理アドレス空間上に在る上記オブジェクトbの最初の論理ぺージに書き込み禁止が指定されており、この論理ページに対してCPU3によって書き込みが要求された場合に、MMU4によって行われるオブジェクトbのアドレス変換の様子を示している。
【0040】
上記アクセス例外時におけるアドレス変換処理は以下のようにして行われる。図5は、上記MMU4によって行われるアクセス例外アドレス変換処理動作のフローチャートである。以下、図5に従って、上記アクセス例外時におけるアドレス変換処理について詳細に説明する。
【0041】
上記MMU4のアクセス例外検知手段15によって上記アクセス例外が検知されると、アクセス例外アドレス変換処理動作がスタートする。
ステップS1で、上記物理アドレス空間管理部10の管理情報に基づいて、RAM8上の物理アドレス空間からの未使用物理ページの取得が行われる。
ステップS2で、上記ステップS1において未使用の物理ページが取得できたか否かが判別される。その結果、取得できた場合にはステップS3に進み、取得できなかった場合にはステップS7に進む。
【0042】
ステップS3で、上記ステップS2において取得されたRAM8上の未使用物理ページに、アクセス例外を起こしたフラッシュメモリ7上の物理ページ(図3におけるフラッシュメモリ7上の物理ページ31)の内容がコピーされる。
ステップS4で、上記物理アドレス空間管理部10に対して、アクセス例外を起こしたフラッシュメモリ7上の物理ページ31が未使用になったことが通知される。
【0043】
ステップS5で、上記ステップS3においてコピーされたRAM8上の物理ページ32にアクセス例外を起こしたフラッシュメモリ7上の物理ページの元の論理アドレスが対応付けられて書き込み可能になるように、上記アドレス変換表のエントリが書き換えられる。
ステップS6で、上記アクセス例外を起こしたフラッシュメモリ7側の論理ページ31が属するオブジェクトbのへッダ21の書き込みフラグ24が「0」にセットされる。
そうした後、アクセス例外アドレス変換処理動作を終了する。
【0044】
ここで、上述のように、上記RAM8に関しては設定された物理アドレス空間よりも論理アドレス空間の方が小さいので、物理アドレス空間には余分な領域33(図4参照)が生ずる。そこで、上記ステップSlにおいては、この余分な領域33から未使用物理ページの取得が行われて、論理アドレスと物理アドレスとの割り付けの変更が行われるのである。そして、やがて余分な領域33に未使用物理ページがなくなると、上記ステップS2において未使用物理ページが取得できないと判別されて、ステップS7に進む。
【0045】
ステップS7で、例えば、「CPUのキャッシュ」や「仮想記憶」の分野で公知の「LRUアルゴリズム(Least Recent Used Algorithm)」を用いて、過去に上記ステップS1において取得されて使用されている(つまり、フラッシュメモリ7用の論理アドレス空間に割り付けられている)RAM8上の物理ぺージの中で、現時点から最も長い問アクセスされていない物理ぺージが選出される。ステップS8で、上記物理アドレス空間管理部10の管理情報に基づいて、フラッシュメモリ7上の物理アドレス空間から未使用の物理ぺージが選出される。ステップS9で、上記ステップS8において選出されたフラッシュメモリ7上の未使用物理ページのブロックデータが消去される。そうした後、この消去された物理ぺージに、上記ステップS7において選出されたRAM8上の最も長い問アクセスされていない物理ぺージの内容がコピーされる。
こうして、上記フラッシュメモリ7上の未使用の物理ページを再利用することによって、上記ステップS4において物理アドレス空間管理部10に対して未使用の登録がなされたアクセス例外を起こしたフラッシュメモリ7側の物理ぺージ31も再使用されることになる。
【0046】
ステップS10で、上記ステップS9においてコピーされたフラッシュメモリ7上の物理ぺージに上記ステップS7において選出されたRAM8上の物理ぺージの元の論理アドレスが対応付けられるように、上記アドレス変換表のエントリが書き換えられる。
ステップS11で、上記物理アドレス空間管理部10に対して、上記ステップS7において選出されたRAM8上の物理ページが未使用になったことが通知される。
そうした後、上記ステップSlに戻り、上記ステップS1において未使用が登録されたRAM8上の物理ぺージが取得され、上記ステップS3においてアクセス例外を起こしたフラッシュメモリ7上の物理ページの内容がコピーされ、上記ステップS5において上記アドレス変換表のエントリが書き換えられ、上記ステップS6において書き込みフラグ24がセットされると、アクセス例外アドレス変換処理動作を終了する。
【0047】
以上のようにして、アクセス例外アクセス変換処理動作が終了した後は、図4に示すように、フラッシュメモリ7側の論理アドレス空間上のオブジェクトbにおけるアクセス例外を起こした論理ページの物理ページがRAM8上に割り付けられている。したがって、書き込み禁止であったオブジェクトbの最初の論理ページに対して書き込み処理を継続できるのである。
【0048】
ここで、厳密には、上記フラッシュメモリ7のブロックサイズと物理ページのサイズが異なる場合がある。すなわち、昨今の典型的な両サイズは1Kバイト〜4Kバイト程度で同じであるが、一般的なフラッシュメモリと32ビットCPU用MMUとに関しては、ブロックサイズ≧ページサイズである。もし、ブロックサイズ>ページサイズである場合には、本来はブロックサイズ/ページサイズ分の物理ページをRAM8上に取得することになるが、本実施の形態においては、簡単のためにブロックサイズ=ページサイズであるとする。
【0049】
次に、上記ガーベジコレクション実行部13によって行われるガーベジコレクションについて説明する。
図6は、上記論理アドレス空間上に新規のオブジェクトが割り付けられる際の論理アドレス空間の様子を示す。
ここで、本実施の形態においては、上記RAM8用の論理アドレス空間に設定されたオブジェクトの安定度は、フラッシュメモリ7用の論理アドレス空間に設定されたオブジェクトの安定度よりも低く定めてある。以下、RAM8用の論理アドレス空間に配置されるオブジェクトの安定度は「安定度0」と「安定度1」とであり、フラッシュメモリ7用の論理アドレス空間に配置されるオブジェクトの安定度は「安定度2」と「安定度3」とであるとする。
【0050】
図6において、上記CPU3によってメモリ管理装置2に対して、新規のオブジェクトに対する論理アドレスの割り付けが要求されると、オブジェクト割付部14によって、RAM8用の論理アドレス空間上の安定度0の領域における未使用領域35の先頭(使用領域36の最後尾の次ぎ)のアドレスからの新規オブジェクトのメモリ領域が割り付けられる。
図7は、上記オブジェクト割付部14によって行われる論理アドレス空間上における安定度Nの領域に対するメモリ領域割り付け処理動作のフローチャートである。
ステップS21で、上記論理アドレス空間上における安定度Nの未使用領域に新規オブジェクトのメモリ領域が割り付け可能であり、且つ、新規オブジェクトのメモリ領域が割り付けられた後の未使用領域に所定の大きさ以上の領域が残るが否かが判別される。その結果、割り付け可能で、且つ、所定の大きさ以上の未使用領域が残る場合にはステップS23に進む。一方、そうでない場合(すなわち、割り付け不可能である場合か、割り付け後に上記所定の大きさ以上の領域が残らない場合)にはステップS22に進む。
ステップS22で、上記ガーベジコレクション実行部13が起動されて、後に詳述するようにしてガーベジコレクション処理が実行される。
そうした後、上記ステップS21に戻り、割り付け可能であり、且つ、割り付け後に上記所定の大きさ以上の領域が残ると判別されるとステップS23に進む。
ステップS23で、上記論理アドレス空間上における安定度Nの未使用領域の先頭から新規オブジェクトのメモリ領域が割り付けられる。そうした後、メモリ領域割り付け処理動作を終了する。
【0051】
上記メモリ領域割り付け処理動作のフローチャートにおける上記ステップS22において実行されるガーベジコレクション処理は、特に限定されるものではないが、本実施の形態においては、スライディング・コンパクション方式によるガーベジコレクション(Wegbreit,B:「A generalized compactifiying garbage collector」,Computer Journal,Vol.15,No.3,pp.204−208)によって行うものとする。
【0052】
図8は、上記スライディング・コンパクション方式によるガーベジコレクション処理による論理アドレス空間の変遷を示す。このガーベジコレクション処理は以下の手順によって行われる。
(1)マーク付け
図8(a)に示すように、参照関係の基準となり、且つ、ゴミとなって回収されないような特定のオブジェクト(以下、ルートと言う)37から、参照するオブジェクトのポインタ23(図2参照)を走査して、参照されているオブジェクトを順次辿りながら、上記参照されているオブジェクトのマークフラグ25(図2参照)に「0」をセットする。尚、上記ルート37の存在領域は、何れの論理アドレス空間の何れの安定度の領域であっても構わない。
図8(a)の場合には、ルート37によってオブジェクトAが参照され、オブジェクトAによってオブジェクトCとオブジェクトEとが参照されている。したがって、オブジェクトA,C,Eのマークフラグ25がセットされ、オブジェクトB,Dのマークフラグ25はセットされない。
【0053】
(2)移動量計算
図8(b)に示すように、マークフラグ25がセットされないオブジェクトB,Dは使用されずにゴミとなるので、このゴミとなるオブジェクトB,Dのメモリ領域をゴミとはならないオブジェクトC,Eで詰めるために、オブジェクトC,Eの移動量(つまり、論理アドレスの変化量)を計算する。
図8(b)の場合には、上記オブジェクトCをゴミとなるオブジェクトBの位置に詰めるための移動量(論理アドレスの変化量x)と、移動後のオブジェクトCの直後の位置にオブジェクトEを詰めるための移動量(論理アドレスの変化量y)が計算される。
【0054】
(3)ポインタ補正
図8(c)に示すように、上記計算値に基づいて上記参照関係において参照する側のオブジェクトAのポインタ23の内容を参照される側のオブジェクトC,Eの移動後の先頭論理アドレスに補正する。
図8(c)の場合には、上記オブジェクトAにおけるオブジェクトEヘのポインタ23の内容が、移動後のオブジェクトEの先頭の論理アドレス(論理アドレスβ―変化量y)に補正される。同様に、オブジェクトAにおけるオブジェクトCへのポインタ23の内容が、移動後のオブジェクトCの先頭の論理アドレス(論理アドレスα―変化量x)に補正される。
【0055】
(4)詰め合わせ
図8(d)に示すように、上記計算値に基づいて、ゴミとはならないオブジェクトC,Eを実際に詰める。
図8(d)の場合には、上記オブジェクトCがゴミとなるオブジェクトBの位置に移動され、移動後のオブジェクトCの直後の位置にオブジェクトEが移動される。
【0056】
上述のような手順で行われる上記スライディング・コンパクション方式によるガーベジコレクション処理では、論理アドレス空間上における処理の対象となる同一安定度の領域に対して2回〜3回の走査を要するが、ガーベジコレクション処理後に使用領域が詰め合わせられるために小さな未使用領域を一つにまとめることができる。
【0057】
ここで、上記論理アドレス空間上におけるガーベジコレクション処理の対象となる領域が安定度Nの領域であって、安定度M(M>N)の領域に存在するオブジェクトによって参照されているオブジェクトが安定度Nの領域に存在する場合には、安定度Nの領域に存在する上記参照されているオブジェクトも、ガーベジコレクションの際に上記ルートとして扱う必要がある。
このようなルートを、安定度Mの領域に存在するオブジェクト群を走査せずに認識するために、本実施の形態においては、以下のようにしている。
【0058】
すなわち、図9に示すように、上記論理アドレス空間管理部llは、管理表として安定度間参照表16を有している。そして、ガーベジコレクション処理のマーク付けにおいて、フラッシュメモリ7側に在る高い安定度M(=2)の参照オブジェクト38のポインタ23にRAM8側に在る低い安定度N(=0)の被参照オブジェクト39の先頭の論理アドレスを書き込む際に、論理アドレス空間管理部llの安定度間参照表16に参照オブジェクト38の先頭の論理アドレスと当該論理アドレスが書き込まれたポインタ23のワード番号とを書き込むのである。
【0059】
こうすることによって、上記RAM8側の論理アドレス空間における安定度0の領域に対してガーベジコレクション処理を実行する場合には、ガーベジコレクション実行部13は、先ず、論理アドレス空間管理部llの安定度間参照表16を検索して、安定度間参照表16で指定された論理アドレスにある参照オブジェクト38の指定されたワード番号のポインタ23を見る。こうして、処理対象の安定度0よりも高い安定度M(=1,2,3)の領域に存在する参照オブジェクト38によって参照されているオブジェクトであって、安定度0の領域に存在する被参照オブジェクト39を検索する。そして、得られた被参照オブジェクト39をガーベジコレクション実行の際に上記ルートとして扱うのである。
【0060】
尚、上述のような処理対象となる領域の安定度Nより高い安定度Mの領域に存在する参照オブジェクト38によって参照されている被参照オブジェクト39を上記ルートとして扱う手法は、従来より知られている(Ungar D:Generation scavenging : A non-disruptive high-performance storage reclamation algorithm,ACM SIGPLAN Notices vol.19,no.5,1987)。
【0061】
上記ガーベジコレクション実行部13は、上述のようにしてガーベジコレクション処理を行うのであるが、例えば安定度0の領域に対してガーベジコレクション処理を行った結果、あまり回収が行われず、十分な未使用領域を回復できなかったと判定した場合には、一つ上の安定度「1」の領域を加えた安定度0の領域と安定度1の領域とにガーベジコレクション処理を行うのである。それでも十分な未使用領域を回復できない場合には、さらに高い安定度の領域を加えてガーベジコレクション処理を行うのである。
図10は、上記ガーベジコレクション実行部13によって行われるより高い安定度の領域を順次加えて行われるガーベジコレクション処理動作のフローチャートである。
【0062】
ステップS31で、上記RAM8用の論理アドレス空間における安定度0の領域に対してガーベジコレクション・サブルーチンが実行される。
ステップS32で、上記ステップS31の結果、十分な未使用領域が回復できたか否かが判別される。その結果、十分な未使用領域が回復できなかった場合にはステップS33に進み、回復できた場合にはガーベジコレクション処理動作を終了する。
ステップS33で、上記RAM8用の論理アドレス空間における安定度0および安定度1の領域に対してガーベジコレクション・サブルーチンが実行される。ステップS34で、上記ステップS33の結果、十分な未使用領域が回復できたか否かが判別される。その結果、十分な未使用領域が回復できなかった場合にはステップS35に進み、回復できた場合にはガーベジコレクション処理動作を終了する。
ステップS35で、上記RAM8用の論理アドレス空間における安定度0および安定度1の領域と、フラッシュメモリ7用の論理アドレス空間における安定度2の領域とに対して、ガーベジコレクション・サブルーチンが実行される。
ステップS36で、上記ステップS35の結果、十分な未使用領域が回復できたか否かが判別される。その結果、十分な未使用領域が回復できなかった場合にはステップS37に進み、回復できた場合にはガーベジコレクション処理動作を終了する。
ステップS37で、上記RAM8用の論理アドレス空間における安定度0および安定度1の領域と、フラッシュメモリ7用の論理アドレス空間における安定度2および安定度3の領域とに対して、ガーベジコレクション・サブルーチンが実行される。
そうした後、ガーベジコレクション処理動作を終了する。
【0063】
上述のように、本実施の形態においては、上記ガーベジコレクション実行部13は、最も安定度の低い領域からガーベジコレクション処理を行い、十分な未使用領域が回復できなかった場合には、十分な未使用領域が回復できるまで順次高い安定度の領域を加えてガーベジコレクション処理を続行するようにしている。したがって、常時総ての論理アドレス空間に対して一様にガーベジコレクション処理を実行する場合に比して、ガーベジコレクション処理の回数とガーベジコレクション処理時間とを短縮でき、ガーベジコレクション処理による他のシステムの実行の中断時間を短縮できるのである。
また、上述のごとく、安定度0と安定度1との低い安定度の領域はRAM8用の論理アドレス空間に配置される一方、安定度2と安定度3との高い安定度の領域はフラッシュメモリ7用の論理アドレス空間に配置されている。したがって、ガーベジコレクションに付随して実行される書き換えは、書き換え回数制限型メモリではないRAM8に対して頻繁に行われ、書き換え回数制限型メモリであるフラッシュメモリ7に対しては少ない回数で行われることになる。したがって、フラッシュメモリ7の長寿命化が図られるのである。
また、大部分のオブジェクトが比較的短時間にゴミになる性質があることに着目して、安定度の低い領域(つまり、安定度の低いオブジェクト群)に対して高い頻度でガーベジコレクション処理を行うことによって、オブジェクトの回収率を上げてメモリの利用効串を高めることができるのである。
【0064】
上記安定度設定部12は、総ての論理アドレス空間における各安定度N(N=0,1,2)の領域毎に、ガーベジコレクション実行部13によって実行されたガーベジコレクション処理回数を管理している。そして、安定度Nの領域に対するガーベジコレクション処理回数が安定度N毎に設定されている所定回数XN(N=1,2,3)に達すると、その安定度Nの領域に存在するガーベジコレクション処理に付随する書き換え以外の書き込みも上記回収も行われなかったオブジェクトの安定度を(N+1)に設定する。
ここで、本実施の形態においては、上述したごとく、同じ安定度を有するオブジェクトは同一論理アドレス空間上に連続して配置するようにしている。したがって、上述のように安定度Nの領域中に在って安定度が(N+1)となったオブジェクトは、安定度(N+1)の領域に移動させる必要がある。そこで、ガーベジコレクション実行部13によって行われる実際のガーベジコレクション処理では、図8に示す手順に加えて、当該ガーベジコレクション処理後に安定度が(N+1)になるオブジェクトを安定度(N+1)の領域に移動させる手順を要する。
【0065】
図llは、図10に示すガーベジコレクション処理動作のフローチャートにおける上記ステップS31,S33,S35,S37において実行されるガーベジコレクション・サブルーチンのフローチャートである。図10に示すガーベジコレクション処理動作のフローチャートにおいて、安定度0の領域に対するガーベジコレクション処理が指令されるが、上記ステップS32,S34,S36において十分な未使用領域を回復できなかったと判別されると、ガーベジコレクション・サブルーチンがスタートする。
【0066】
ステップS41で、上記ルート37から、ポインタ23を走査して参照されているオブジェクトを順次辿りながら、参照されているオブジェクトのマークフラグ25がセットされる。
ステップS42で、ゴミになるオブジェクトのメモリ領域をゴミにならないオブジェクトで詰めるためのオブジェクトの移動量が計算される。
ステップS43で、上記論理アドレス空間管理部llの管理情報を参照して、安定度が(N+1)となるオブジェクトが存在するか否かが判別される。その結果、存在する場合にはステップS44に進む一方、存在しない場合にはステップS47に進む。
【0067】
ステップS44で、上記ステップS43において安定度が(N+1)となると判別された一つのオブジェクトの移動量が、安定度(N+1)の領域における未使用領域の先頭への移動量に更新される。
ステップS45で、上記ステップS43において安定度が(N+1)となると判別された総てのオブジェクトに対する移動量の更新が柊了したか否かが判別される。その結果、終了していればステップS47に進み、終了していなければステップS46に進む。
ステップS46で、上記安定度(N+1)の領域に次のオブジェクトを移動可能なだけの未使用領域が存在するが否かが判別される。その結果、存在する場合には上記ステップS44に戻って次のオブジェクトの移動量更新に移行する。一方、存在しない場合には、ステップS47に進む。
【0068】
ステップS47で、上記ステップS42において算出された移動量あるいは上記ステップS44において更新された移動量に基づいて、参照オブジェクトのポインタ23の内容が被参照オブジェクトの移動後の先頭論理アドレスに補正される。
ステップS48で、上記算出された移動量あるいはその後更新された移動量に基づいて、ゴミとはならないオブジェクトの詰め合わせが行われる。
その際に、安定度(N+1)の領域に移動すべきオブジェクトがある場合には、オブジェクト割付部14が起動されて、該当するオブジェクトの割り付け直しが行われる。
ステップS49で、上記ステップS46における判別結果に基づいて、上記ステップS43において安定度が(N+1)となると判別された総てのオブジェクトが安定度(N+1)の領域に移動できるか否かが判別される。その結果、総てのオブジェクトが移動できればステップS50に進み、そうでなければステップS51に進む。
【0069】
ステップS50で、例えば、(処理後の未使用領域/処理前の未使用領域)の値と所定確との比較によって、上記ステップS48の結果、十分な未使用領域が回復できたか否かが判別される。その結果、十分な未使用領域が回復できなかった場合にはステップS51に進み、回復できた場合にはガーべジコレクション・サブルーチンを終了して、図10に示すガーベジコレクション処理動作のフローチャートにリターンする。
ステッブS51で、上記ガーベジコレクション実行部13内に設定された回復フラグに「1」がセットされて、十分な未使用領域が回復できなかったことが表示される。
そうした後、ガーベジコレクション・サブルーチンを終了して、図10に示すガーベジコレクション処理動作のフローチャートにリターンする。
【0070】
上述のように、上記ガーベジコレクション・サブルーチンにおいては、安定度(N+1)の領域に次のオブジェクトを移動可能なだけの未使用領域が存在しない場合には、移動量の更新を中止して、そのまま詰め合わせを行うようにしている。したがって、そのような場合には、安定度Nの領域内に安定度(N+1)のオブジェクトが混在することなる。しかしながら、そのような場合には、十分な未使用領域が回復できなかったとして、上記回復フラグに「1」をセットするので、図10に示すガーベジコレクション処理動作のフローチャートにリターンした際に、上記ステップS32,S34,S36において上記回復フラグが参照されて、十分な未使用領域が回復できなかったと判別される。その結果、次のステップで、安定度(N+1)のオブジェクトが混在している安定度Nの領域と安定度(N+1)の領域とに対してガーベジコレクション・サブルーチンが実行されて、安定度(N+1)の領域に対する未使用領域の回復が行われるのである。
【0071】
上述のように、本実施の形態においては、上記オブジェクトに対して「ガーベジコレクションによる回収されにくさ」と「書き込みの起こりにくさ」とを合わせ持つ「安定度」を設定する安定度設定部12を有する。また、メモリ部5にデータ用メモリとしてのフラッシュメモリ(書き換え回数制限メモリ)7とRAM8とを設け、オブジェクト割付部14によって、フラッシュメモリ7側の論理アドレス空間上には安定度が「0」と「1」のオブジェクトを割り付ける一方、RAM8側の論理アドレス空間上には安定度が「2」と「3」のオブジェクトを割り付ける。
【0072】
そして、上記フラッシュメモリ7側の論理アドレス空間上およびRAM8側の論理アドレス空間上に割り付けられたオブジェクトに対して、CPU3から書き込みが要求されると、MMU4によって、アドレス変換表格納部9に格納されたアドレス変換表が参照されてアドレス変換が行われて、図3に示すように、論理アドレス空間上における当該オブジェクトの論理ページが物理アドレス空間上に写像されて、この写像された物理ページに従って書き込みが行われる。
【0073】
また、上記MMU4のアクセス例外検知手段15によって、CPU3から要求された書き込みがアクセス例外であることが検知されると、MMU4は、書き込み禁止の論理ページが写像されたフラッシュメモリ7上の物理ページの内容をRAM8上の物理アドレス空間における未使用ページにコピーし、このコピーされた物理ページを写像元のフラッシュメモリ7側の論理ページに対応付け直す。このようにして、書き込み禁止であった論理ページを書き込み可能にすることによって、以後の当該書き込み禁止のオブジェクトに対する書き込みはRAM8上の物理ページに対して行われることとなる。
その結果、書き換え回数制限型のフラッシュメモリ7に対する書き込み回数が減少されることになる。
【0074】
ここで、上記CPU3によって新規のオブジェクトに対する論理アドレスの割り付けが要求されると、安定度設定部12によって、上記新規オブジェクトの安定度が最小値「0」に設定され、オブジェクト割付部14によってRAM8用の論理アドレス空間上の安定度0の領域の未使用領域の先頭に割り付けられる。その際に、上記安定度0の領域に新規オブジェクトを割り付けるだけの未使用領域が存在しない場合には、ガーベジコレクション実行部13によって、最も安定度の低いRAM8の安定度0の領域に対してガーベジコレクションが実行される。そして、十分な未使用領域が回復できない場合には、十分な未使用領域が回復できるまで順次高い安定度の領域を加えてガーベジコレクション処理を繰り返すのである。
【0075】
こうして、大部分のオブジェクトが比較的短時間にゴミになる性質があることに着目して、RAM8側の安定度の低い領域に対して高い頻度でガーベジコレクションを行うことによって、以下のような効果を奏することができるのである。・ガーベジコレクション処理の回数と時間とを短縮でき、他のシステムの実行の中断時間を短縮できる。
・ガーベジコレクションに付随する書き換えを書き換え回数制限型メモリであるフラッシュメモリ7に対して少ない回数で行って、フラッシュメモリ7の長寿命化を図ることができる。
・オブジェクトの回収率を上げてメモリの利用効率を高めることができる。
【0076】
また、上記安定度設定部12は、安定度Nの領域に対するガーベジコレクション処理回数が所定回数XN(N=1,2,3)に達すると、その安定度Nの領域に存在する書き込み(ガーベジコレクション処理に付随する書き換え以外の書き込み)も上記回収も行われなかったオブジェクトの安定度を(N+1)に設定する。そして、ガーベジコレクション実行部13は、安定度Nの領域に対してガーベジコレクション処理を行う際に安定度が(N+1)に変更されるオブジェクトがあればそのオブジェクトを安定度(N+1)の領域に移動する。
こうして、上記安定度毎に設定された所定回数のガーベジコレクション処理が行われる間に上記書き込みが行われない比較的安定したオブジェクトの安定度を増加することによって、安定度が「2」以上と高いために書き込み頻度が少ないと予測されるオブジェクトのみがフラッシュメモリ7側に設定でき、フラッシュメモリ7の更なる長寿命化を図ることができる。
【0077】
また、書き込まれる可能性の高いオブジェクトは、被参照オブジェクトが変化することによってゴミを発生する可能性が高い。そこで、上記安定度が「2」であるオブジェクトは、所定回数X2にわたるガーベジコレクション処理によって回収されなくとも、その間に書き込みが行われた場合には安定度は「3」にはならないようにして最もガーベジコレクション処理の頻度の高い安定度「2」の領域に止め置くのである。つまり、フラッシュメモリ7側にあるオブジェクトであっても書き込まれる可能性の高いオブジェクトは最もガーべジコレクション処理の頻度の高い領域に止め置くことによって、発生されたゴミがガーべジコレクション処理によって回収され易くなって、オブジェクトの回収率を更に上げることができるのである。
【0078】
なお、上述したメモリ管理装置として機能させるために、その処理を実行するためのプログラムをフロッピーディスクやCDROM等のコンピュータ読み取り可能な記録媒体に予め記録させておいて、必要に応じてコンピュータにインストールさせて用いてもよい。
【0079】
【発明の効果】
以上より明らかなように、請求項1に係る発明のメモリ管理装置または請求項7に係る発明のコンピュータ読み取り可能な記録媒体によれば、書き換え回数制限型メモリあるいはRAMに対する新規オブジェクトの割り付け時、および、ガーベジコレクション実行部によるガーベジコレクション処理実行時に、安定度設定部によって、オブジェクトに対して、上記ガーベジコレクション処理によって回収されず且つ当該ガーベジコレクション処理時まで書き込みが行われなかった場合に増加する安定度を設定し、オブジェクト割付部によって、上記設定された安定度が所定値以下であるオブジェクトをRAMに割り付ける一方、上記安定度が上記所定値より高いオブジェクトを上記書き換え回数制限型メモリに割り付けるので、ガーベジコレクション処理によって回収されにくく、且つ、書き込みが起こりにくいオブジェクト群が上記書き換え回数制限型メモリに割り付けられる。
したがって、この発明によれば、上記書き換え回数制限型メモリに対する書き換えや書き込みを押さえて、上記書き換え回数制限型メモリの長寿命化を図ることができる。
【0080】
また、請求項2に係る発明のメモリ管理装置におけるガーベジコレクション実行部は、上記安定度の高いオブジェクトが割り付けられている領域よりも、上記安定度の低いオブジェクトが割り付けられている領域に対して、高い頻度で上記ガーベジコレクション処理を行うので、上記ガーベジコレクション処理に付随する書き換えは、上記安定度の低いオブジェクトが割り付けられている上記RAMに対して頻繁に行われることになる。したがって、上記書き換え回数制限型メモリの更なる長寿命化を図ることができる。また、上記安定度が低く、ゴミ化しやすいオブジェクト群に対して高い頻度で上記ガーベジコレクション処理を行うことによって、オブジェクトの回収率を上げてメモリの利用効率を高めることができる。
さらに、上記安定度の低いオブジェクトが割り付けられている領域に対して高い頻度で上記ガーベジコレクション処理が行われるので、全領域に対して一様に上記ガーべジコレクション処理を実行する場合よりも処理時間を短縮でき、他の処理の中断時間を短縮できる。したがって、利用者に対する応答性がよくなる。
【0081】
また、請求項3に係る発明のメモリ管理装置におけるガーベジコレクション実行部は、所定の大きさ以上の未使用領域が得られるまで、最も低い安定度のオブジェクト群が割り付けられている領域に順次高い安定度のオブジェクト群が割り付けられている領域を加えて上記ガーベジコレクション処理を行うので、上記安定度が低い程上記ガーベジコレクション処理の回数が多くなる。したがって、上記安定度の高いオブジェクトが割り付けられている上記書き換え回数制限型メモリに対する上記ガーベジコレクション処理に付随する書き換えを少なくして、上記書き換え回数制限型メモリの更なる長寿命化を図ることができる。また、ゴミ化しやすい低安定度のオブジェクト群に対する上記ガーベジコレクション処理の頻度を上げてオブジェクトの回収率を高めることができる。
さらに、上記未使用領域が所定の大きさより少ないメモリの全領域に対して一様にガーベジコレクション処理を行う場合よりも処理時間を短縮して、他の処理の中断時間を短縮できる。
【0082】
また、請求項4に係る発明のメモリ管理装置における安定度設定部は、上記新規オブジェクトの割り付け時には、新規オブジェクトの安定度を最小値に設定するので、殆どが短期間のうちにゴミと化する新規オブジェクトを上記ガーベジコレクション処理回数の多い上記RAMに割り付けて上記ガーベジコレクション処理によって回収することができる。したがって、メモリの利用効率を高めることができる。
さらに、上記ガーベジコレクション処理実行時には、ガーベジコレクション処理回数が所定回数になったオブジェクトであって上記所定回数のガーベジコレクション処理の間に書き込みが行われなかったオブジェクトの安定度を所定値だけ増加するので、上記書き換え回数制限型メモリには書き込みが行われないと予測される安定したオブジエクトが割り付けられることになる。したがって、上記書き換え回数制限型メモリの更なる長寿命化を図ることができる。
【0083】
また、請求項5に係る発明のメモリ管理装置におけるアドレス変換部は、アクセス例外検知手段によってアクセス例外が検知された場合には、書き込みが要求された論理アドレス空間上の論理ページが写像された上記書き換え回数制限型メモリの物理アドレス空間上の物理ページの内容をRAMの物理アドレス空間上の未使用の物理ページにコピーし、このコピーされた上記RAMの物理ページを上記書き込みが要求された論理アドレス空間上の論理ページに対応付けるので、書き込みが要求された論理アドレス空間上の論理ページを上記RAMの物理アドレス空間上の物理ページに対応付け直すことができる。
したがって、以後は、上記書き換え回数制限型メモリ上における書き込み禁止ページに対する書き込みが可能となる。つまり、上記書き換え回数制限型メモリを通常のデータ用メモリとして使用できるのである。
【0084】
さらに、上述の結果、上記書き換え回数制限型メモリ上における論理ページに発生した書き込みが上記RAMに対して行われることなり、結果として上記書き換え回数制限型メモリの更なる長寿命化を図ることができるのである。
【0085】
また、請求項6に係る発明のメモリ管理装置は、上記書き換え回数制限型メモリとしてフラッシュメモリを用いるので、消費電力の低下を図ることができる。
【図面の簡単な説明】
【図1】この発明のメモリ管理装置が登載された計算機システムにおけるブロック図である。
【図2】オブジェクトの構成を示す概念図である。
【図3】図1におけるMMUによって行われるアドレス変換の一例の様子を示す概念図である。
【図4】アクセス例外時におけるアドレス変換の様子を示す概念図である。
【図5】図1におけるMMUによって行われるアクセス例外アドレス変換処理動作のフローチャートである。
【図6】新規のオブジェクトが割り付けられる際の論理アドレス空間の様子を示す概念図である。
【図7】図1におけるオブジェクト割付部によって行われるメモリ領域割り付け処理動作のフローチャートである。
【図8】スライディング・コンパクション方式によるガーベジコレクション処理による論理アドレス空間の変遷を示す図である。
【図9】図1における論理アドレス空間管理部の安定度間参照表の説明図である。
【図10】図1におけるガーベジコレクション実行部によって行われるガーベジコレクション処理動作のフローチャートである。
【図ll】図10のガーべジコレクション処理動作中において実行されるガーベジコレクション・サブルーチンのフローチャートである。
【符号の説明】
1…計算機システム、 2…メモリ管理装置、
3…CPU、 4…MMU、
5…メモリ部、 7…フラッシュメモリ、
8…RAM、 9…アクセス変換表格納部、
10…物理アドレス空間管理部、 ll…論理アドレス空間管理部、
12…安定度設定部、 13…ガーベジコレクション実行部、
14…オブジェクト割付部、 15…アクセス例外検知手段、
16…安定度間参照表、 23…ポインタ、
24…書き込みフラグ、 25…マークフラグ、
37…ルート。
Claims (7)
- 書き換え回数制限型メモリとランダム・アクセス・メモリとを有するシステムのメモリ管理装置であって、上記書き換え回数制限型メモリあるいはランダム・アクセス・メモリの未使用領域が所定の大きさより小さい場合に、この未使用領域が小さいメモリに対してガーベジコレクション処理を行うガーベジコレクション実行部と、上記各メモリに対するデータの割り付け単位を表す情報であるオブジェクトに対して、上記各メモリに対する新規オブジェクトの割り付け時、あるいは、上記ガーベジコレクション処理実行時に、上記ガーベジコレクション処理によって回収されず且つ当該ガーベジコレクション処理時まで書き込みが行われなかった場合に増加する安定度を設定する安定度設定部と、上記各メモリに対する新規オブジェクトの割り付け時、あるいは、上記ガーベジコレクション処理実行時に、上記安定度設定部によって設定された安定度が所定値以下のオブジェクトを上記ランダム・アクセス・メモリに割り付ける一方、上記安定度が上記所定値より高いオブジェクトを上記書き換え回数制限型メモリに割り付けるオブジェクト割付部を備えたことを特徴とするメモリ管理装置。
- 請求項1に記載のメモリ管理装置において、
上記ガーベジコレクション実行部は、上記未使用領域が所定の大きさより小さいメモリに関して、上記安定度の高いオブジェクトが割り付けられている領域よりも、上記安定度の低いオブジェクトが割り付けられている領域に対して、高い頻度で上記ガーベジコレクション処理を行うようになっていることを特徴とするメモリ管理装置。 - 請求項2に記載のメモリ管理装置において、
上記ガーべジコレクション実行部は、上記未使用領域が所定の大きさより小さいメモリに関して、上記所定の大きさ以上の未使用領域が得られるまで、最も低い安定度のオブジェクト群が割り付けられている領域に順次高い安定度のオブジェクト群が割り付けられている領域を加えて上記ガーベジコレクション処理を行うようになっていることを特徴とするメモリ管理装置。 - 請求項1に記載のメモリ管理装置において、
上記安定度設定部は、
上記新規オブジェクトの割り付け時には、新規オブジェクトの安定度を最小値に設定し、
上記ガーベジコレクション処理実行時には、当該ガーベジコレクション処理によって、処理対象領域に在る同一安定度のオブジェクトに対するガーベジコレクション処理回数が上記安定度になってから所定回数になった場合に、上記処理対象領域に在るオブジェクトであって上記所定回数のガーベジコレクション処理が行われる間に書き込みが行われなかったオブジェクトの安定度を所定値だけ増加するようになっていることを特徴とするメモリ管理装置。 - 請求項1に記載のメモリ管理装置であって、
上記書き換え回数制限型メモリおよび/または上記ランダム・アクセス・メモリの論理アドレスを物理アドレスに変換するアドレス変換部を備え、
そのアドレス変換部は、上記書き換え回数制限型メモリ上におけるアドレス変換の単位領域としてのべージであって書き込み禁止であるべージに対して書き込みが要求されて発生するアクセス例外を検知するアクセス例外検知手段を備えて、上記アクセス例外検知手段によって上記アクセス例外が検知された場合には、書き込みが要求された論理アドレス空間上の論理ページが写像された上記書き換え回数制限型メモリの物理アドレス空間上の物理ページの内容を、上記ランダム・アクセス・メモリの物理アドレス空間上の未使用の物理べージにコピーし、このコピーされた上記ランダム・アクセス・メモリの物理べージを上記書き込みが要求された論理ページに対応付けるようになっていることを特徴とするメモリ管理装置。 - 請求項1乃至請求項5の何れか、一つに記載のメモリ管理装置において、
上記書き換え回数制限型メモリは、フラッシュメモリであることを特徴とするメモリ管理装置。 - 書き換え回数制限型メモリとランダム・アクセス・メモリと上記両メモリの論理アドレスを物理アドレスに変換するアドレス変換部を有するシステムのメモリ管理装置として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体であって、
上記書き換え回数制限型メモリあるいはランダム・アクセス・メモリの未使用領域が所定の大きさより小さい場合に、この未使用領域が小さいメモリに対してガーベジコレクション処理を行うガーベジコレクション実行部と、
上記各メモリに対するデータの割り付け単位を表す情報であるオブジェクトに対して、上記各メモリに対する新規オブジェクトの割り付け時、あるいは、上記ガーベジコレクション処理実行時に、上記ガーベジコレクション処理によって回収されず且つ当該ガーベジコレクション処理時まで書き込みが行われなかった場合に増加する安定度を設定する安定度設定部と、
上記各メモリに対する新規オブジェクトの割り付け時、あるいは、上記ガーベジコレクション処理実行時に、上記安定度設定部によって設定された安定度が所定値以下のオブジェクトを上記ランダム・アクセス・メモリに割り付ける一方、上記安定度が上記所定値より高いオブジェクトを上記書き換え回数制限型メモリに割り付けるオブジェクト割付部として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20279097A JP3868585B2 (ja) | 1996-07-30 | 1997-07-29 | メモリ管理装置及びコンピュータ読み取り可能な記録媒体 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20010796 | 1996-07-30 | ||
JP8-200107 | 1996-07-30 | ||
JP20279097A JP3868585B2 (ja) | 1996-07-30 | 1997-07-29 | メモリ管理装置及びコンピュータ読み取り可能な記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10116230A JPH10116230A (ja) | 1998-05-06 |
JP3868585B2 true JP3868585B2 (ja) | 2007-01-17 |
Family
ID=26511973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20279097A Expired - Fee Related JP3868585B2 (ja) | 1996-07-30 | 1997-07-29 | メモリ管理装置及びコンピュータ読み取り可能な記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3868585B2 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4315488B2 (ja) * | 1998-06-30 | 2009-08-19 | ソニー株式会社 | データ記憶装置、データ処理装置、データ処理システム並びにデータ処理方法 |
KR100755700B1 (ko) | 2005-12-27 | 2007-09-05 | 삼성전자주식회사 | 비휘발성 메모리가 캐쉬로 사용되는 저장 장치 및 그 관리방법 |
KR101077339B1 (ko) | 2007-12-28 | 2011-10-26 | 가부시끼가이샤 도시바 | 반도체 기억 장치 |
JP6414852B2 (ja) * | 2015-12-14 | 2018-10-31 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
-
1997
- 1997-07-29 JP JP20279097A patent/JP3868585B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10116230A (ja) | 1998-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8028120B2 (en) | System with flash memory device and data recovery method thereof | |
US6308185B1 (en) | Methods and apparatus for generational dynamic management of computer memory | |
US6173294B1 (en) | Method for combining card marking with remembered set for generational garbage collection with more than two generations | |
US6381176B1 (en) | Method of driving remapping in flash memory and flash memory architecture suitable therefor | |
US6148310A (en) | Method for combining card marking with remembered sets for old area of a memory heap | |
US6587915B1 (en) | Flash memory having data blocks, spare blocks, a map block and a header block and a method for controlling the same | |
US9898200B2 (en) | Memory device having a translation layer with multiple associative sectors | |
JP2564483B2 (ja) | 接続されたユ−ザのプロセツサとは独立の並列ガ−ベツジコレクシヨン機能を有するコンピユ−タ記憶装置 | |
US7191306B2 (en) | Flash memory, and flash memory access method and apparatus | |
US9134918B2 (en) | Physical compression of data with flat or systematic pattern | |
USRE45577E1 (en) | Method of writing to a flash memory including data blocks and log blocks | |
EP0574884B1 (en) | A computer method and system for memory management | |
US6928460B2 (en) | Method and apparatus for performing generational garbage collection in a segmented heap | |
US20060173939A1 (en) | Garbage collection and compaction | |
US6510440B1 (en) | Method and apparatus for performing generational garbage collection using barrier bits | |
KR101077904B1 (ko) | 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 | |
JP2004013895A (ja) | フラッシュメモリ用のファイルシステム | |
JPH0648469B2 (ja) | 仮想メモリ監理方法 | |
EP0993634A1 (en) | Method and apparatus for managing hashed objects | |
JP2011022933A (ja) | メモリ管理装置を含む情報処理装置及びメモリ管理方法 | |
KR20010023280A (ko) | 불필요 정보 수집기들을 위한 참조 카운팅 메커니즘 | |
US6999979B2 (en) | Efficient encoding of references into a collection set | |
US20030046482A1 (en) | Data management in flash memory | |
JP3868585B2 (ja) | メモリ管理装置及びコンピュータ読み取り可能な記録媒体 | |
US7653793B1 (en) | Use of memory protection to implement replicating collection in an incremental, copying garbage collector |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040518 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040518 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20040518 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061002 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061010 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061011 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091020 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101020 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |