(58)【調査した分野】(Int.Cl.,DB名)
メモリ回収要求メッセージを受信するステップであって、前記メモリ回収要求メッセージは、回収識別子を含み、前記回収識別子は、回収されることが要求されているメモリページの量を示すために使用される、ステップと、
不揮発性メモリ(NVM)の非アクティブなメモリページの書き込み回数の昇順で前記回収識別子に従って前記NVMの非アクティブなメモリページを回収するステップとを含むメモリ回収方法。
前記非アクティブなメモリページの前記リンクリストに含まれる前記複数のセグメントは、前記書き込み回数の対応する設定された範囲の昇順に前記非アクティブなメモリページの前記リンクリスト内でソートされる請求項2に記載の方法。
前記非アクティブなメモリページの前記リンクリストに含まれる前記複数のページグループは、確立時間の順で前記非アクティブなメモリページの前記リンクリスト内でソートされる請求項5に記載の方法。
メモリ回収要求メッセージを受信するように構成された受信モジュールであって、前記メモリ回収要求メッセージは、回収識別子を含み、前記回収識別子は、回収されることが要求されているメモリページの量を示すために使用される、受信モジュールと、
不揮発性メモリ(NVM)の非アクティブなメモリページの書き込み回数の昇順で前記回収識別子に従って前記NVMの非アクティブなメモリページを回収するように構成されたメモリ回収モジュールとを備えるメモリ回収装置。
前記非アクティブなメモリページの前記リンクリストに含まれる前記複数のセグメントは、前記書き込み回数の対応する設定された範囲の昇順に前記非アクティブなメモリページの前記リンクリスト内でソートされる請求項9に記載の装置。
前記メモリ回収モジュールは、前記非アクティブなメモリページの前記リンクリストにおいて、前記書き込み回数の前記設定された範囲の昇順で、1つまたは複数のセグメント内にある、前記回収識別子によって回収されることが要求されている前記メモリページの前記量と一致する量の、前記NVMの非アクティブなメモリページを回収するように特に構成されている請求項9または10に記載の装置。
前記非アクティブなメモリページの前記リンクリストに含まれる前記複数のページグループは、確立時間の順で前記非アクティブなメモリページの前記リンクリスト内でソートされる請求項12に記載の装置。
前記メモリ回収モジュールは、前記非アクティブなメモリページの前記リンクリストにおいて、確立時間の順で、1つまたは複数のページグループ内にある、前記回収識別子によって回収されることが要求されている前記メモリページの前記量と一致する量の、前記NVMの非アクティブなメモリページを回収するように特に構成されている請求項12または13に記載の装置。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の実施形態の目的は、NVMのメモリページのアンバランスな疲弊という問題を解決することを目指す、メモリ回収方法
および装置を提供することである。
【課題を解決するための手段】
【0006】
第1の態様によれば、本発明は、メモリ回収方法を提供し、この方法は
メモリ回収要求メッセージを受信するステップであって、メモリ回収要求メッセージは、回収識別子を含み、回収識別子は、回収されることが要求されているメモリページの量を示すために使用される、ステップと、
不揮発性メモリ
(NVM
)の非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップとを含む。
【0007】
第1の態様を参照すると、第1の態様の第1の可能な実装様式において、
NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップの前に、この方法は、
NVMの非アクティブなメモリページの書き込み回数を判定するステップと、
NVMの非アクティブなメモリページを、NVMの非アクティブなメモリページの書き込み回数に従って非アクティブなメモリページのリンクリストの対応するセグメントに格納するステップであって、非アクティブなメモリページのリンクリストは、複数のセグメントを含み、それぞれのセグメントは、書き込み回数の設定された範囲内でNVMの非アクティブなメモリページを格納するために使用される、ステップとをさらに含む。
【0008】
第1の態様の第1の可能な実装様式を参照すると、第1の態様の第2の可能な実装様式において、非アクティブなメモリページのリンクリストに含まれる複数のセグメントは、書き込み回数の対応する設定された範囲の昇順に非アクティブなメモリページのリンクリスト内でソートされる。
【0009】
第1の態様の第1の可能な実装様式、または第1の態様の第2の可能な実装様式を参照すると、第1の態様の第3の可能な実装様式において、
NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップは、
非アクティブなメモリページのリンクリストにおいて、書き込み回数の設定された範囲の昇順で、1つまたは複数のセグメント内にある、回収識別子によって回収されることが要求されているメモリページの量と一致する量の、NVMの非アクティブなメモリページを回収するステップを含む。
【0010】
第1の態様を参照すると、第1の態様の第4の可能な実装様式において、
NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップの前に、この方法は、
NVMの非アクティブなメモリページの書き込み回数を判定するステップと、
NVMの非アクティブなメモリページを非アクティブなメモリページのリンクリスト内の最後のページグループに格納するステップであって、
リンクリストは、複数のページグループを含み、それぞれのページグループは、書き込み回数の昇順でソートされるNVMの設定された量の非アクティブなメモリページを含む、ステップをさらに含む。
【0011】
第1の態様の第4の可能な実装様式を参照すると、第1の態様の第5の可能な実装様式において、非アクティブなメモリページのリンクリストに含まれる複数のページグループは、確立時間(establishment time)の順で非アクティブなメモリページのリンクリスト内でソートされる。
【0012】
第1の態様の第4の可能な実装様式、または第1の態様の第5の可能な実装様式を参照すると、第1の態様の第6の可能な実装様式において、
NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップは、
非アクティブなメモリページのリンクリストにおいて、確立時間の順で、1つまたは複数のページグループ内にある、回収識別子によって回収されることが要求されているメモリページの量と一致する量の、NVMの非アクティブなメモリページを回収するステップを含む。
【0013】
第2の態様によれば、本発明の一実施形態は、メモリ回収装置を提供し、これは
メモリ回収要求メッセージを受信するように構成された受信モジュールであって、メモリ回収要求メッセージは、回収識別子を含み、回収識別子は、回収されることが要求されているメモリページの量を示すために使用される、受信モジュールと、
不揮発性メモリ
(NVM
)の非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するように構成されたメモリ回収モジュールとを備える。
【0014】
第2の態様を参照すると、第2の態様の第1の可能な実装様式において、装置は
メモリ回収モジュールが
NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収する前に、NVMの非アクティブなメモリページの書き込み回数を判定するように構成された判定モジュールと、
NVMの非アクティブなメモリページを、NVMの非アクティブなメモリページの書き込み回数に従って非アクティブなメモリページのリンクリストの対応するセグメントに格納するように構成された第1の挿入モジュールであって、非アクティブなメモリページのリンクリストは、複数のセグメントを含み、それぞれのセグメントは、書き込み回数の設定された範囲内でNVMの非アクティブなメモリページを格納するために使用される、第1の挿入モジュールとをさらに備える。
【0015】
第2の態様の第1の可能な実装様式を参照すると、第2の態様の第2の可能な実装様式において、非アクティブなメモリページのリンクリストに含まれる複数のセグメントは、書き込み回数の対応する設定された範囲の昇順に非アクティブなメモリページのリンクリスト内でソートされる。
【0016】
第2の態様の第1の可能な実装様式、または第2の態様の第2の可能な実装様式を参照すると、第2の態様の第3の可能な実装様式において、
メモリ回収モジュールは、非アクティブなメモリページのリンクリストにおいて、書き込み回数の設定された範囲の昇順で、1つまたは複数のセグメント内にある、回収識別子によって回収されることが要求されているメモリページの量と一致する量の、NVMの非アクティブなメモリページを回収するように特に構成されている。
【0017】
第2の態様を参照すると、第2の態様の第4の可能な実装様式において、この装置は
メモリ回収モジュールが
NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収する前に、NVMの非アクティブなメモリページの書き込み回数を判定するように構成された判定モジュールと、
NVMの非アクティブなメモリページを非アクティブなメモリページのリンクリスト内の最後のページグループに格納するように構成された第2の挿入モジュールであって、
リンクリストは、複数のページグループを含み、それぞれのページグループは、書き込み回数の昇順でソートされるNVMの設定された量の非アクティブなメモリページを含む、第2の挿入モジュールとをさらに備える。
【0018】
第2の態様の第4の可能な実装様式を参照すると、第2の態様の第5の可能な実装様式において、非アクティブなメモリページのリンクリストに含まれる複数のページグループは、確立時間の順で非アクティブなメモリページのリンクリスト内でソートされる。
【0019】
第2の態様の第4の可能な実装様式、または第2の態様の第5の可能な実装様式を参照すると、第2の態様の第6の可能な実装様式において、
メモリ回収モジュールは、非アクティブなメモリページのリンクリストにおいて、確立時間の順で、1つまたは複数のページグループ内にある、回収識別子によって回収されることが要求されているメモリページの量と一致する量の、NVMの非アクティブなメモリページを回収するように特に構成されている。
【0020】
この実施形態のメモリ回収方法および装置によれば、メモリ回収要求メッセージが受信され、メモリ回収要求メッセージは、回収識別子を含み、回収識別子は、回収されることが要求されているメモリページの量を示すために使用され、NVMの非アクティブなメモリページは、
NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従って回収される。このようにして、NVMの非アクティブなメモリページの間で書き込み回数が比較的少ないページの回収が先であり、NVMの非アクティブなメモリページの間で書き込み回数が比較的多いページの回収は後回しにされる。したがって、NVMのウェアレベリングが達成され、ストレージユニットの安定性および信頼性が改善される。
【0021】
本発明の実施形態または従来技術における技術的解決策をより明確に説明するために、以下において、実施形態または従来技術の説明に必要な添付図面を簡単に紹介する。明らかに、以下の説明の添付図面は、本発明のいくつかの実施形態を示しており、当業者であれば、創造的労力を費やすことなくこれらの添付図面から他の図面をやはり導き出すことができる。
【発明を実施するための形態】
【0023】
本発明の目的、技術的解決策、および利点をよりわかりやすくするために、以下では、本発明の添付図面を参照しつつ本発明における技術的解決策を明確に、かつ完全に説明する。明らかに、説明されている実施形態は、本発明の実施形態のすべてではなくむしろ一部である。創造的労力を費やすことなく本発明の実施形態に基づいて当業者が得る他のすべての実施形態は、本発明の保護の範囲内に収まるものとする。
【0024】
本発明の実施形態におけるメモリ回収方法は、混合型メモリモジュールを有するメモリ回収装置に適用され得る、すなわち、メモリ回収装置のメモリモジュールは、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、略してDRAM)および不揮発性メモリ(Non-Volatile Memory、略してNVM)を備え、NVMを含むメモリモジュールを有するメモリ回収装置にさらに適用され得ることに留意されたい。混合型メモリモジュールを有するメモリ回収装置については、メモリ回収が実行されたときに、DRAM内の非アクティブなメモリページの回収が先に行うことができ、DRAM内の非アクティブなメモリページの量が回収要求条件を満たし得ないときに、その後NVM内のメモリページが回収される。本発明の実施形態によるメモリ回収方法は、NVM内のメモリページを回収するための方法として使用され得る。
【0025】
この実施形態におけるメモリ回収方法は、メモリ回収装置を使用することによって実装されるものとしてよく、メモリ回収装置は、ハードウェア方式またはソフトウェア方式で実装され得る。メモリ回収装置は、一般的に、処理機能を有し、携帯電話またはコンピュータなどの端末デバイス内にあるコンポーネント、例えば、CPUであってよく、コンポーネントは、端末デバイス内のメモリ回収方法を実装するように構成され得る。
【0026】
図1は、本発明によるメモリ回収方法の実施形態1の流れ図である。
図1に示されているように、この実施形態におけるメモリ回収方法は、以下のステップを含む。
【0027】
S101:メモリ回収要求メッセージを受信し、メモリ回収要求メッセージは、回収識別子を含み、回収識別子は、回収されることが要求されているメモリページの量を示すために使用される。
【0028】
特に、例えば、プログラムを実行しているときに、メモリ回収装置は、記憶空間をプロセスに割り当てる必要があり、この場合、空きメモリが不十分であれば、オペレーティングシステムは、メモリ回収要求メッセージをメモリ管理モジュールに送信し、メモリ管理モジュールは、メモリ回収要求メッセージを受信し、メモリ回収要求メッセージは、回収識別子を含み、回収識別子は、オペレーティングシステムによって要求されたメモリページの量を示すために使用される識別子であるものとしてよい、すなわち、オペレーティングシステムがメモリ管理モジュールに対してメモリページの割り当てを要求し、メモリページの量は、回収識別子によって識別され、メモリ管理モジュールは、メモリ回収要求メッセージに従ってNVMの非アクティブなメモリページのリンクリスト内のメモリページの対応する量を回収し、オペレーティングシステムの要求条件を満たす。
【0029】
S102:不揮発性メモリ
(NVM
)の非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収する。
【0030】
特に、メモリ管理モジュールは、NVMの非アクティブなメモリページのリンクリスト内の非アクティブなメモリページの書き込み回数に従って、非アクティブなメモリページの書き込み回数の昇順で、非アクティブなメモリページを次々に回収するが、そこでは、非アクティブなメモリページの量は、回収識別子に対応している。このようにして、NVMの非アクティブなメモリページのリンクリスト内の、書き込み回数の少ない非アクティブなメモリページの回収が先に行われる。回収された非アクティブなメモリページの書き込み回数の量が、次の回収時にまだ少ない場合、書き込み回数の少ない非アクティブなメモリページが、なおも回収される。このようにして、メモリページ回収のプロセスでは、書き込み回数の少ない非アクティブなメモリページの回収が常に先に行われ、それによって、一部のメモリページの書き込み回数が多いことによりメモリ回収装置のメモリモジュールが先にダメージを受けるためメモリモジュール全体の安定性および信頼性に影響を与えることを回避し、NVMのメモリページの疲弊バランスを改善する。
【0031】
本発明のこの実施形態におけるメモリ回収方法によれば、メモリ回収要求メッセージが受信され、メモリ回収要求メッセージは、回収識別子を含み、回収識別子は、回収されることが要求されているメモリページの量を示すために使用され、NVMの非アクティブなメモリページは、
NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従って回収される。このようにして、NVMの非アクティブなメモリページの間で書き込み回数が比較的少ないページの回収が先であり、NVMの非アクティブなメモリページの間で書き込み回数が比較的多いページの回収は後回しにされる。したがって、NVMのウェアレベリングが達成され、ストレージユニットの安定性および信頼性が改善される。
【0032】
前述の実施形態に基づき、さらに、
NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップの前に、この方法は、NVMの非アクティブなメモリページの書き込み回数を判定するステップと、NVMの非アクティブなメモリページを、NVMの非アクティブなメモリページの書き込み回数に従って非アクティブなメモリページのリンクリストの対応するセグメントに格納するステップであって、非アクティブなメモリページのリンクリストは、複数のセグメントを含み、それぞれのセグメントは、書き込み回数の設定された範囲内でNVMの非アクティブなメモリページを格納するために使用される、ステップとをさらに含む。
【0033】
特に、
NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップの前に、メモリ管理モジュールは、NVMの非アクティブなメモリページの書き込み回数をさらに先に決定することができ、例えば、メモリ管理モジュールは、NVMの非アクティブなメモリページの、メモリコントローラキャッシュに記録されている、書き込み回数に従って、非アクティブなメモリページの書き込み回数を取得することができ、メモリコントローラキャッシュが、対応する非アクティブなメモリページの書き込み回数に関する記録を有していない場合、対応する非アクティブなメモリページの書き込み回数は、NVMのカウンターからさらに取得され得る。メモリコントローラキャッシュをメモリコントローラ内に配設することによって、メモリコントローラキャッシュ内の非アクティブなメモリページの書き込み回数を記録するステップは、NVMのアクセス回数の量を減らすことができる。メモリ管理モジュールは、NVMのカウンター内への、メモリコントローラキャッシュに記録されている非アクティブなメモリページの書き込み回数をさらに定期的にリフレッシュすることができ、NVM内のすべてのメモリページの書き込み回数がNVMのカウンターに記録される。
【0034】
前述の実施形態に基づき、さらに、非アクティブなメモリページのリンクリストに含まれる複数のセグメントは、書き込み回数の対応する設定された範囲の昇順に非アクティブなメモリページのリンクリスト内でソートされる。
【0035】
特に、
図2は、本発明によるNVMの非アクティブなメモリページのリンクリストの編成形態の実施形態1の概略図である。
図2に示されているように、NVMの非アクティブなメモリページのリンクリストは、NVMの非アクティブなメモリページのリンクリストの複数のセグメントを含み、NVMの非アクティブなメモリページのリンクリストのそれぞれのセグメントの先頭は、数値範囲を含み、この数値範囲は、セグメント内のすべてのメモリページの書き込み回数の範囲を示し、例えば、NVMの非アクティブなメモリページのリンクリストのセグメントA内のすべてのメモリページの書き込み回数は、0から100の範囲内であり、NVMの非アクティブなメモリページのリンクリストのセグメントA内の0から100の範囲内の書き込み回数を有するすべてのメモリページは、書き込み回数の昇順でリンクリスト内でソートされる。
【0036】
NVMの新しい非アクティブなメモリページが、NVMの非アクティブなメモリページのリンクリスト内に移動されると、このことは、NVMの挿入されるべき非アクティブなメモリページMの書き込み回数の量が30であると判定することによって知られ、NVMの非アクティブなメモリページMは、0から100の範囲内の書き込み回数を有するNVMの非アクティブなメモリページのリンクリストのセグメントA内に挿入され、特に、リンクリストのセグメントAの、20および50の書き込み回数を有する非アクティブなメモリページ間に挿入され、これにより、挿入後に、リンクリストのセグメントA内のメモリページは、書き込み回数の昇順でなおもソートされ、したがって、これにより、ページが回収されるときに、NVMの非アクティブなメモリページのリンクリスト内のページは、書き込み回数の昇順で常に回収され得ることが保証され得る。
【0037】
前述の実施形態に基づき、さらに、
NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップは、非アクティブなメモリページのリンクリストにおいて、書き込み回数の設定された範囲の昇順で、1つまたは複数のセグメント内にある、回収識別子によって回収されることが要求されているメモリページの量と一致する量の、NVMの非アクティブなメモリページを回収するステップを含む。
【0038】
特に、
図3は、本発明によるメモリ回収方法の実施形態2の流れ図である。
図3に示されているように、この実施形態で提供されるメモリ回収方法によれば、非アクティブなメモリページのリンクリストは、複数のセグメントに分割され、これらを含むものとしてよく、それぞれのセグメントは、書き込み回数の設定された範囲内でNVMの非アクティブなメモリページを格納するために使用され、非アクティブなメモリページのリンクリストに含まれる複数のセグメントは、書き込み回数の対応する設定された範囲の昇順に非アクティブなメモリページのリンクリスト内でソートされ、メモリ管理モジュールは、以下のステップに従ってNVMの非アクティブなメモリページを回収することができる。
【0039】
301:NVMの非アクティブなメモリページのリンクリストから、最小の範囲の書き込み回数を有するセグメントを選択する。
【0040】
メモリ管理モジュールは、NVMの非アクティブなメモリページのリンクリストから、NVMの非アクティブなメモリページのリンクリスト内にあり、最小の範囲の書き込み回数を有するNVMの非アクティブなメモリページのリンクリストのセグメントを選択する。
【0041】
302:NVMの非アクティブなメモリページのリンクリストの選択されたセグメントの先頭から非アクティブなメモリページを回収する。
【0042】
非アクティブなメモリページのリンクリストの選択されたセグメントの先頭から始めて、非アクティブなメモリページの書き込み回数の昇順で、指定された量のメモリページが選択され、選択されたメモリページが回収され、これにより、回収されたメモリページは、空きページとなり、したがって、再利用可能であり、その場合、指定された量が、オペレーティングシステムによって設定され得る。
【0043】
303:指定された量のメモリページが回収されたかどうかを判定し、
指定された量のメモリページが回収された場合に、304を実行し、
指定された量のメモリページが回収されない場合に、305を実行する。
【0044】
選択されたメモリページの量が、オペレーティングシステムの要求条件を満たし得る場合、このメモリ回収オペレーションは完了し、選択されたメモリページの量が、オペレーティングシステムの要求条件を満たさない場合、メモリページは、NVMの非アクティブなメモリページのリンクリスト内の別のセグメントから回収される。
【0046】
305:301で選択されたセグメントが、NVMの非アクティブなメモリページのリンクリストの最後のセグメントであるかどうかを判定し、
301で選択されたセグメントが、NVMの非アクティブなメモリページのリンクリストの最後のセグメントである場合に、304を実行し、
301で選択されたセグメントが、NVMの非アクティブなメモリページのリンクリストの最後のセグメントでない場合に、306を実行する。
【0047】
前述の301におけるNVMの非アクティブなメモリページのリンクリストの選択されたセグメントが、NVMの非アクティブなメモリページのリンクリストの最後のリンクリストのセグメントである場合、このメモリ回収オペレーションは完了し、
前述の301におけるNVMの非アクティブなメモリページのリンクリストの選択されたセグメントが、NVMの非アクティブなメモリページのリンクリストの最後のセグメントでない場合、メモリページは、NVMの非アクティブなメモリページのリンクリスト内の別のセグメントから回収される。
【0048】
306:NVMの非アクティブなメモリページのリンクリストから、第2の最小の範囲の書き込み回数を有するセグメントを選択する。
【0049】
NVMの非アクティブなメモリページのリンクリストから、前述の301で選択されたセグメントでの範囲より小さく、また近い範囲の書き込み回数を有するセグメントが選択されており、次いで302が実行される。
【0050】
オプションにより、メモリ回収方法の実施形態1に基づき、
NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップの前に、この実施形態におけるメモリ回収方法は、NVMの非アクティブなメモリページの書き込み回数を判定するステップと、NVMの非アクティブなメモリページを非アクティブなメモリページのリンクリスト内の最後のページグループに格納するステップであって、
リンクリストは、複数のページグループを含み、それぞれのページグループは、書き込み回数の昇順でソートされるNVMの設定された量の非アクティブなメモリページを含む、ステップとをさらに含む。
【0051】
特に、
NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップの前に、メモリ管理モジュールは、NVMの非アクティブなメモリページの書き込み回数をさらに先に決定することができ、NVMの非アクティブなメモリページの書き込み回数を判定する特定のプロセスは、前述の実施形態のものと同じであり、ここで再び説明することはしない。
【0052】
メモリ管理モジュールは、NVMの非アクティブなメモリページを非アクティブなメモリページのリンクリスト内の最後のページグループにさらに格納するものとしてよく、
リンクリストは、複数のページグループを含み、それぞれのページグループは、書き込み回数の昇順でソートされるNVMの設定された量の非アクティブなメモリページを含む。
【0053】
前述の実施形態に基づき、さらに、非アクティブなメモリページのリンクリストに含まれる複数のページグループは、確立時間の順で非アクティブなメモリページのリンクリスト内でソートされる。
【0054】
特に、
図4は、本発明によるNVMの非アクティブなメモリページのリンクリストの編成形態の実施形態2の概略図である。
図4に示されているように、NVMの非アクティブなメモリページのリンクリストは、複数のページグループを含み、それぞれのページグループは、確立時間の順、例えば、ページグループOに含まれているNVMの設定された量の非アクティブなメモリページがリンクリスト内に挿入される時刻がページグループPに含まれているNVMの設定された量の非アクティブなメモリページがリンクリスト内に挿入される時刻よりも比較的早く、ページグループPに含まれているNVMの設定された量の非アクティブなメモリページがリンクリスト内に挿入される時刻が、ページグループQに含まれているNVMの設定された量の非アクティブなメモリページがリンクリスト内に挿入される時刻よりも比較的早くなるようにページのリンクリスト内でソートされる。
【0055】
ページグループO、ページグループP、およびページグループQに含まれる設定された量のNVMの非アクティブなメモリページは、非アクティブなメモリページの書き込み回数の昇順に次々にソートされる。NVMの新しい非アクティブなメモリページNが、非アクティブなメモリページのリンクリスト内に移動されると、このことはNVMの挿入されるべき非アクティブなメモリページNの書き込み回数は30であると判定することによって知られ、NVMの非アクティブなメモリページNは、NVMの非アクティブなメモリページのリンクリストの末尾のところでページグループQ内に挿入され、特に、55および20の書き込み回数を有するページグループQの非アクティブなメモリページ間に挿入され、これにより、挿入後に、リンクリストのセグメントA内のメモリページは、なおも書き込み回数の昇順でソートされる。このようにして、ページ回収時にページグループ内のページが書き込み回数の昇順で常に回収され得ることが保証され得る。
【0056】
前述の実施形態に基づき、さらに、
NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップは、非アクティブなメモリページのリンクリストにおいて、確立時間の順で、1つまたは複数のページグループ内にある、回収識別子によって回収されることが要求されているメモリページの量と一致する量の、NVMの非アクティブなメモリページを回収するステップを含む。
【0057】
特に、
図5は、本発明によるメモリ回収方法の実施形態3の流れ図である。
図5に示されているように、この実施形態で提供されるメモリ回収方法によれば、
リンクリストは、複数のページグループを含むものとしてよく、それぞれのページグループは、書き込み回数の昇順でソートされるNVMの設定された量の非アクティブなメモリページを含み、ページのリンクリストに含まれている複数のページグループは、確立時間の順にページのリンクリスト内でソートされる。メモリ管理モジュールは、以下のステップに従ってNVMの非アクティブなメモリページを回収することができる。
【0058】
501:NVMの非アクティブなメモリページのリンクリストのうちで確立時間が最も早いページグループから非アクティブなメモリページを回収し始める。
【0059】
メモリ管理モジュールは、非アクティブなメモリページの書き込み回数の昇順で、NVMの非アクティブなメモリページのリンクリストのセグメントの先頭から、指定された量のメモリページを選択し、選択されたメモリページを回収し、それにより、回収されたメモリページは、空きページとなり、したがって、再利用可能であり、その際に、指定された量は、オペレーティングシステムに要求条件に従って決定され得る。
【0060】
502:指定された量のメモリページが回収されたかどうかを判定する。
【0061】
選択されたメモリページの量が、オペレーティングシステムの要求条件を満たし得る場合、このメモリ回収オペレーションは完了し、選択されたメモリページの量が、オペレーティングシステムの要求条件を満たさない場合、メモリページは、NVMの非アクティブなメモリページのリンクリスト内の別のページグループから回収される。
【0063】
504:NVMの非アクティブなメモリページのリンクリストの末尾に到達したかどうかを判定する。
【0064】
NVMの非アクティブなメモリページのリンクリストの末尾に到達した場合、このメモリ回収オペレーションは完了し、
NVMの非アクティブなメモリページのリンクリストの末尾部分に到達しない場合、メモリページは、NVMの非アクティブなメモリページのリンクリスト内の別のページグループから回収される。
【0065】
505:NVMの非アクティブなメモリページのリンクリストのうちで確立時間が2番目に最も早いページグループから非アクティブなメモリページを回収し始める。
【0066】
確立時間が、前述の501で選択されたページグループの確立時間より後であり、またそれに近く、NVMの非アクティブなメモリページのリンクリスト内にあるページグループが選択され、メモリページは、回収されるメモリページの量がオペレーティングシステムの要求条件を満たすまで、非アクティブなメモリページの書き込み回数の昇順で選択されたページグループから回収される。
【0067】
前述の方法実施形態を実装するためのステップの全部または一部が関連するハードウェアに命令を送るプログラムによって実装され得ることは、当業者によって理解され得る。プログラムは、コンピュータ可読記憶媒体に格納することができる。プログラムが実行されると、方法実施形態を含むステップが実行される。記憶媒体は、ROM、RAM、磁気ディスク、または光ディスクなどの、プログラムコードを格納することができる任意の媒体であってよい。
【0068】
図6は、本発明によるメモリ回収装置の実施形態1の
構造図である。
図6に示されているように、この実施形態におけるメモリ回収装置600は、受信モジュール601とメモリ回収モジュール602とを備え、
受信モジュール601は、メモリ回収要求メッセージを受信するように構成され、メモリ回収要求メッセージは、回収識別子を含み、回収識別子は、回収されることが要求されているメモリページの量を示すために使用され、
メモリ回収モジュール602は、不揮発性メモリ
(NVM
)の非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するように構成される。
【0069】
この実施形態におけるメモリ回収装置は、メモリ回収方法の実施形態1におけるメモリ回収方法を実行するように構成され得る。特定の実行プロセスについては、メモリ回収方法の実施形態1を参照するとよく、詳細は、ここで再び説明することはしない。
【0070】
この実施形態のメモリ回収装置によれば、受信モジュールが、メモリ回収要求メッセージを受信し、メモリ回収要求メッセージは、回収識別子を含み、回収識別子は、回収されることが要求されているメモリページの量を示すために使用され、メモリ回収モジュールは、
NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収し、これにより、NVMの非アクティブなメモリページの間で書き込み回数が比較的少ないページの回収が先にされ、NVMの非アクティブなメモリページの間で書き込み回数が比較的多いページの回収は後回しにされることになる。したがって、NVMのウェアレベリングが達成され、ストレージユニットの安定性および信頼性が改善される。
【0071】
前述の実施形態に基づき、さらに、メモリ回収装置600は、判定モジュールと第1の挿入モジュールとをさらに備え、
判定モジュールは、メモリ回収モジュールが
NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収する前に、NVMの非アクティブなメモリページの書き込み回数を判定するように構成されるものとしてよく、
第1の挿入モジュールは、NVMの非アクティブなメモリページを、NVMの非アクティブなメモリページの書き込み回数に従って非アクティブなメモリページのリンクリストの対応するセグメントに格納し、非アクティブなメモリページのリンクリストは、複数のセグメントを含み、それぞれのセグメントは、書き込み回数の設定された範囲内でNVMの非アクティブなメモリページを格納するために使用される、ように構成され得る。
【0072】
前述の実施形態に基づき、さらに、非アクティブなメモリページのリンクリストに含まれる複数のセグメントは、書き込み回数の対応する設定された範囲の昇順に非アクティブなメモリページのリンクリスト内でソートされる。
【0073】
前述の実施形態に基づき、さらに、メモリ回収モジュールは、非アクティブなメモリページのリンクリストにおいて、書き込み回数の設定された範囲の昇順で、1つまたは複数のセグメント内にある、回収識別子によって回収されることが要求されているメモリページの量と一致する量の、NVMの非アクティブなメモリページを回収するように特に構成され得る。
【0074】
オプションにより、メモリ回収装置の実施形態1に基づき、メモリ回収装置600は、判定モジュールと第2の挿入モジュールとをさらに備えることができ、
判定モジュールは、メモリ回収モジュールが
NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収する前に、NVMの非アクティブなメモリページの書き込み回数を判定するように構成されるものとしてよく、
第2の挿入モジュールは、NVMの非アクティブなメモリページを非アクティブなメモリページのリンクリスト内の最後のページグループに格納し、
リンクリストは、複数のページグループを含み、それぞれのページグループは、書き込み回数の昇順でソートされるNVMの設定された量の非アクティブなメモリページを含む、ように構成され得る。
【0075】
前述の実施形態に基づき、さらに、非アクティブなメモリページのリンクリストに含まれる複数のページグループは、確立時間の順で非アクティブなメモリページのリンクリスト内でソートされる。
【0076】
前述の実施形態に基づき、さらに、メモリ回収モジュールは、非アクティブなメモリページのリンクリストにおいて、確立時間の順で、1つまたは複数のページグループ内にある、回収識別子によって回収されることが要求されているメモリページの量と一致する量の、NVMの非アクティブなメモリページを回収するように特に構成され得る。
【0077】
最後に、前述の実施形態は、本発明を制限するのとは異なり本発明の技術的解決策を説明することのみを意図されていることに留意されたい。本発明は、前述の実施形態を参照しつつ詳しく説明されているけれども、当業者であれば、本発明の実施形態の技術的解決策の範囲から逸脱することなく、前述の実施形態において説明されている技術的解決策に修正を加えるか、またはその一部の技術的特徴に対する同等の置き換えを行うことがやはり可能であることを理解するはずである。