(57)【特許請求の範囲】
【請求項１】
メモリ回収要求メッセージを受信するステップであって、前記メモリ回収要求メッセージは、回収識別子を含み、前記回収識別子は、回収されることが要求されているメモリページの量を示すために使用される、ステップと、
不揮発性メモリ(NVM)の非アクティブなメモリページの書き込み回数の昇順で前記回収識別子に従って前記NVMの非アクティブなメモリページを回収するステップとを含むメモリ回収方法。
【請求項２】
NVMの非アクティブなメモリページの前記書き込み回数の昇順で前記回収識別子に従って前記NVMの非アクティブなメモリページを回収する前記ステップの前に、
前記NVMの非アクティブなメモリページの前記書き込み回数を判定するステップと、
前記NVMの前記非アクティブなメモリページを、前記NVMの非アクティブなメモリページの前記書き込み回数に従って前記非アクティブなメモリページのリンクリストの対応するセグメントに格納するステップであって、前記非アクティブなメモリページの前記リンクリストは、複数のセグメントを含み、それぞれのセグメントは、前記書き込み回数の設定された範囲内で前記NVMの非アクティブなメモリページを格納するために使用される、ステップとをさらに含む請求項1に記載の方法。
【請求項３】
前記非アクティブなメモリページの前記リンクリストに含まれる前記複数のセグメントは、前記書き込み回数の対応する設定された範囲の昇順に前記非アクティブなメモリページの前記リンクリスト内でソートされる請求項2に記載の方法。
【請求項４】
NVMの非アクティブなメモリページの前記書き込み回数の昇順で前記回収識別子に従って前記NVMの非アクティブなメモリページを回収する前記ステップは、
前記非アクティブなメモリページの前記リンクリストにおいて、前記書き込み回数の前記設定された範囲の昇順で、1つまたは複数のセグメント内にある、前記回収識別子によって回収されることが要求されている前記メモリページの前記量と一致する量の、前記NVMの非アクティブなメモリページを回収するステップを含む請求項2または3に記載の方法。
【請求項５】
NVMの非アクティブなメモリページの前記書き込み回数の昇順で前記回収識別子に従って前記NVMの非アクティブなメモリページを回収する前記ステップの前に、
前記NVMの非アクティブなメモリページの前記書き込み回数を判定するステップと、
前記NVMの前記非アクティブなメモリページを前記非アクティブなメモリページのリンクリスト内の最後のページグループに格納するステップであって、前記リンクリストは、複数のページグループを含み、それぞれのページグループは、前記書き込み回数の昇順でソートされる前記NVMの設定された量の非アクティブなメモリページを含む、ステップとをさらに含む請求項1に記載の方法。
【請求項６】
前記非アクティブなメモリページの前記リンクリストに含まれる前記複数のページグループは、確立時間の順で前記非アクティブなメモリページの前記リンクリスト内でソートされる請求項5に記載の方法。
【請求項７】
NVMの非アクティブなメモリページの前記書き込み回数の昇順で前記回収識別子に従って前記NVMの非アクティブなメモリページを回収する前記ステップは、
前記非アクティブなメモリページの前記リンクリストにおいて、確立時間の順で、1つまたは複数のページグループ内にある、前記回収識別子によって回収されることが要求されている前記メモリページの前記量と一致する量の、前記NVMの非アクティブなメモリページを回収するステップを含む請求項5または6に記載の方法。
【請求項８】
メモリ回収要求メッセージを受信するように構成された受信モジュールであって、前記メモリ回収要求メッセージは、回収識別子を含み、前記回収識別子は、回収されることが要求されているメモリページの量を示すために使用される、受信モジュールと、
不揮発性メモリ(NVM)の非アクティブなメモリページの書き込み回数の昇順で前記回収識別子に従って前記NVMの非アクティブなメモリページを回収するように構成されたメモリ回収モジュールとを備えるメモリ回収装置。
【請求項９】
前記メモリ回収モジュールが前記NVMの非アクティブなメモリページの書き込み回数の昇順で前記回収識別子に従って前記NVMの前記非アクティブなメモリページを回収する前に、前記NVMの前記非アクティブなメモリページの前記書き込み回数を判定するように構成された判定モジュールと、
前記NVMの前記非アクティブなメモリページを、前記NVMの非アクティブなメモリページの前記書き込み回数に従って前記非アクティブなメモリページのリンクリストの対応するセグメントに格納するように構成された第1の挿入モジュールであって、前記非アクティブなメモリページの前記リンクリストは、複数のセグメントを含み、それぞれのセグメントは、前記書き込み回数の設定された範囲内で前記NVMの非アクティブなメモリページを格納するために使用される、第1の挿入モジュールとをさらに備える請求項8に記載の装置。
【請求項１０】
前記非アクティブなメモリページの前記リンクリストに含まれる前記複数のセグメントは、前記書き込み回数の対応する設定された範囲の昇順に前記非アクティブなメモリページの前記リンクリスト内でソートされる請求項9に記載の装置。
【請求項１１】
前記メモリ回収モジュールは、前記非アクティブなメモリページの前記リンクリストにおいて、前記書き込み回数の前記設定された範囲の昇順で、1つまたは複数のセグメント内にある、前記回収識別子によって回収されることが要求されている前記メモリページの前記量と一致する量の、前記NVMの非アクティブなメモリページを回収するように特に構成されている請求項9または10に記載の装置。
【請求項１２】
前記メモリ回収モジュールが前記NVMの非アクティブなメモリページの前記書き込み回数の昇順で前記回収識別子に従って前記NVMの前記非アクティブなメモリページを回収する前に、前記NVMの前記非アクティブなメモリページの前記書き込み回数を判定するように構成された判定モジュールと、
前記NVMの前記非アクティブなメモリページを前記非アクティブなメモリページのリンクリスト内の最後のページグループに格納するように構成された第2の挿入モジュールであって、前記リンクリストは、複数のページグループを含み、それぞれのページグループは、前記書き込み回数の昇順でソートされる前記NVMの設定された量の非アクティブなメモリページを含む、第2の挿入モジュールとをさらに備える請求項8に記載の装置。
【請求項１３】
前記非アクティブなメモリページの前記リンクリストに含まれる前記複数のページグループは、確立時間の順で前記非アクティブなメモリページの前記リンクリスト内でソートされる請求項12に記載の装置。
【請求項１４】
前記メモリ回収モジュールは、前記非アクティブなメモリページの前記リンクリストにおいて、確立時間の順で、1つまたは複数のページグループ内にある、前記回収識別子によって回収されることが要求されている前記メモリページの前記量と一致する量の、前記NVMの非アクティブなメモリページを回収するように特に構成されている請求項12または13に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、参照によりその全体が本明細書に組み込まれている、2013年2月22日に中国特許庁に出願した中国特許出願第201310057351.1号、名称「MEMORY RECLAMATION METHOD AND APPARATUS」の優先権を主張するものである。
【０００２】
本発明の実施形態は、コンピュータ技術の分野に関するものであり、具体的には、メモリ回収(memory reclamation)方法および装置に関するものである。
【背景技術】
【０００３】
メモリユニットを構成するメモリデバイスは、一般的に、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、略してDRAM)および不揮発性メモリ(Non-Volatile Memory、略してNVM)を含む。DRAMにとって負担になり得る書き込み回数の量は多いが、集積化レベルは小さく、集積化され得る記憶空間には限りがある。NVMの集積化レベルはより高く、NVMは、大きな記憶容量を有するメモリチップを集積化することができるが、NVMにとって負担となり得る書き込み回数の量は、比較的少ない。ストレージデバイスの記憶容量に対する人々の要求条件が次第に高くなり、ストレージデバイスの記憶容量がより大きく、より安定した、より信頼性の高いものとなることを人々が期待しているところに、DRAMとNVMとを一緒に使用することによってストレージデバイスの記憶容量を改善することができる、DRAMおよびNVMを含む混合構造のメモリユニットが登場した。
【０００４】
従来技術では、DRAMとNVMの混合構造のストレージデバイスのオペレーティングシステムが、ページ回収オペレーションを実行するときに、最長時間未使用(the least recently used)(Least Recently Used、略してLRU)アルゴリズムが、非アクティブなNVMページのリンクリストの先頭から対応する量のページを選択して回収するために使用される。そのような方法は、書き込み回数が大量であるNVMページの回収が先に行われ、その結果、書き込み回数が大量であるNVMページはひどく疲弊し、ストレージユニット全体の安定性および信頼性が影響を受ける可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の実施形態の目的は、NVMのメモリページのアンバランスな疲弊という問題を解決することを目指す、メモリ回収方法および装置を提供することである。
【課題を解決するための手段】
【０００６】
第1の態様によれば、本発明は、メモリ回収方法を提供し、この方法は
メモリ回収要求メッセージを受信するステップであって、メモリ回収要求メッセージは、回収識別子を含み、回収識別子は、回収されることが要求されているメモリページの量を示すために使用される、ステップと、
不揮発性メモリ(NVM)の非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップとを含む。
【０００７】
第1の態様を参照すると、第1の態様の第1の可能な実装様式において、NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップの前に、この方法は、
NVMの非アクティブなメモリページの書き込み回数を判定するステップと、
NVMの非アクティブなメモリページを、NVMの非アクティブなメモリページの書き込み回数に従って非アクティブなメモリページのリンクリストの対応するセグメントに格納するステップであって、非アクティブなメモリページのリンクリストは、複数のセグメントを含み、それぞれのセグメントは、書き込み回数の設定された範囲内でNVMの非アクティブなメモリページを格納するために使用される、ステップとをさらに含む。
【０００８】
第1の態様の第1の可能な実装様式を参照すると、第1の態様の第2の可能な実装様式において、非アクティブなメモリページのリンクリストに含まれる複数のセグメントは、書き込み回数の対応する設定された範囲の昇順に非アクティブなメモリページのリンクリスト内でソートされる。
【０００９】
第1の態様の第1の可能な実装様式、または第1の態様の第2の可能な実装様式を参照すると、第1の態様の第3の可能な実装様式において、NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップは、
非アクティブなメモリページのリンクリストにおいて、書き込み回数の設定された範囲の昇順で、1つまたは複数のセグメント内にある、回収識別子によって回収されることが要求されているメモリページの量と一致する量の、NVMの非アクティブなメモリページを回収するステップを含む。
【００１０】
第1の態様を参照すると、第1の態様の第4の可能な実装様式において、NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップの前に、この方法は、
NVMの非アクティブなメモリページの書き込み回数を判定するステップと、
NVMの非アクティブなメモリページを非アクティブなメモリページのリンクリスト内の最後のページグループに格納するステップであって、リンクリストは、複数のページグループを含み、それぞれのページグループは、書き込み回数の昇順でソートされるNVMの設定された量の非アクティブなメモリページを含む、ステップをさらに含む。
【００１１】
第1の態様の第4の可能な実装様式を参照すると、第1の態様の第5の可能な実装様式において、非アクティブなメモリページのリンクリストに含まれる複数のページグループは、確立時間(establishment time)の順で非アクティブなメモリページのリンクリスト内でソートされる。
【００１２】
第1の態様の第4の可能な実装様式、または第1の態様の第5の可能な実装様式を参照すると、第1の態様の第6の可能な実装様式において、NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップは、
非アクティブなメモリページのリンクリストにおいて、確立時間の順で、1つまたは複数のページグループ内にある、回収識別子によって回収されることが要求されているメモリページの量と一致する量の、NVMの非アクティブなメモリページを回収するステップを含む。
【００１３】
第2の態様によれば、本発明の一実施形態は、メモリ回収装置を提供し、これは
メモリ回収要求メッセージを受信するように構成された受信モジュールであって、メモリ回収要求メッセージは、回収識別子を含み、回収識別子は、回収されることが要求されているメモリページの量を示すために使用される、受信モジュールと、
不揮発性メモリ(NVM)の非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するように構成されたメモリ回収モジュールとを備える。
【００１４】
第2の態様を参照すると、第2の態様の第1の可能な実装様式において、装置は
メモリ回収モジュールがNVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収する前に、NVMの非アクティブなメモリページの書き込み回数を判定するように構成された判定モジュールと、
NVMの非アクティブなメモリページを、NVMの非アクティブなメモリページの書き込み回数に従って非アクティブなメモリページのリンクリストの対応するセグメントに格納するように構成された第1の挿入モジュールであって、非アクティブなメモリページのリンクリストは、複数のセグメントを含み、それぞれのセグメントは、書き込み回数の設定された範囲内でNVMの非アクティブなメモリページを格納するために使用される、第1の挿入モジュールとをさらに備える。
【００１５】
第2の態様の第1の可能な実装様式を参照すると、第2の態様の第2の可能な実装様式において、非アクティブなメモリページのリンクリストに含まれる複数のセグメントは、書き込み回数の対応する設定された範囲の昇順に非アクティブなメモリページのリンクリスト内でソートされる。
【００１６】
第2の態様の第1の可能な実装様式、または第2の態様の第2の可能な実装様式を参照すると、第2の態様の第3の可能な実装様式において、
メモリ回収モジュールは、非アクティブなメモリページのリンクリストにおいて、書き込み回数の設定された範囲の昇順で、1つまたは複数のセグメント内にある、回収識別子によって回収されることが要求されているメモリページの量と一致する量の、NVMの非アクティブなメモリページを回収するように特に構成されている。
【００１７】
第2の態様を参照すると、第2の態様の第4の可能な実装様式において、この装置は
メモリ回収モジュールがNVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収する前に、NVMの非アクティブなメモリページの書き込み回数を判定するように構成された判定モジュールと、
NVMの非アクティブなメモリページを非アクティブなメモリページのリンクリスト内の最後のページグループに格納するように構成された第2の挿入モジュールであって、リンクリストは、複数のページグループを含み、それぞれのページグループは、書き込み回数の昇順でソートされるNVMの設定された量の非アクティブなメモリページを含む、第2の挿入モジュールとをさらに備える。
【００１８】
第2の態様の第4の可能な実装様式を参照すると、第2の態様の第5の可能な実装様式において、非アクティブなメモリページのリンクリストに含まれる複数のページグループは、確立時間の順で非アクティブなメモリページのリンクリスト内でソートされる。
【００１９】
第2の態様の第4の可能な実装様式、または第2の態様の第5の可能な実装様式を参照すると、第2の態様の第6の可能な実装様式において、
メモリ回収モジュールは、非アクティブなメモリページのリンクリストにおいて、確立時間の順で、1つまたは複数のページグループ内にある、回収識別子によって回収されることが要求されているメモリページの量と一致する量の、NVMの非アクティブなメモリページを回収するように特に構成されている。
【００２０】
この実施形態のメモリ回収方法および装置によれば、メモリ回収要求メッセージが受信され、メモリ回収要求メッセージは、回収識別子を含み、回収識別子は、回収されることが要求されているメモリページの量を示すために使用され、NVMの非アクティブなメモリページは、NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従って回収される。このようにして、NVMの非アクティブなメモリページの間で書き込み回数が比較的少ないページの回収が先であり、NVMの非アクティブなメモリページの間で書き込み回数が比較的多いページの回収は後回しにされる。したがって、NVMのウェアレベリングが達成され、ストレージユニットの安定性および信頼性が改善される。
【００２１】
本発明の実施形態または従来技術における技術的解決策をより明確に説明するために、以下において、実施形態または従来技術の説明に必要な添付図面を簡単に紹介する。明らかに、以下の説明の添付図面は、本発明のいくつかの実施形態を示しており、当業者であれば、創造的労力を費やすことなくこれらの添付図面から他の図面をやはり導き出すことができる。
【図面の簡単な説明】
【００２２】
【図１】本発明によるメモリ回収方法の実施形態1の流れ図である。
【図２】本発明によるNVMの非アクティブなメモリページのリンクリストの編成形態の実施形態1の概略図である。
【図３】本発明によるメモリ回収方法の実施形態2の流れ図である。
【図４】本発明によるNVMの非アクティブなメモリページのリンクリストの編成形態の実施形態2の概略図である。
【図５】本発明によるメモリ回収方法の実施形態3の流れ図である。
【図６】本発明によるメモリ回収装置の実施形態1の構造図である。
【発明を実施するための形態】
【００２３】
本発明の目的、技術的解決策、および利点をよりわかりやすくするために、以下では、本発明の添付図面を参照しつつ本発明における技術的解決策を明確に、かつ完全に説明する。明らかに、説明されている実施形態は、本発明の実施形態のすべてではなくむしろ一部である。創造的労力を費やすことなく本発明の実施形態に基づいて当業者が得る他のすべての実施形態は、本発明の保護の範囲内に収まるものとする。
【００２４】
本発明の実施形態におけるメモリ回収方法は、混合型メモリモジュールを有するメモリ回収装置に適用され得る、すなわち、メモリ回収装置のメモリモジュールは、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、略してDRAM)および不揮発性メモリ(Non-Volatile Memory、略してNVM)を備え、NVMを含むメモリモジュールを有するメモリ回収装置にさらに適用され得ることに留意されたい。混合型メモリモジュールを有するメモリ回収装置については、メモリ回収が実行されたときに、DRAM内の非アクティブなメモリページの回収が先に行うことができ、DRAM内の非アクティブなメモリページの量が回収要求条件を満たし得ないときに、その後NVM内のメモリページが回収される。本発明の実施形態によるメモリ回収方法は、NVM内のメモリページを回収するための方法として使用され得る。
【００２５】
この実施形態におけるメモリ回収方法は、メモリ回収装置を使用することによって実装されるものとしてよく、メモリ回収装置は、ハードウェア方式またはソフトウェア方式で実装され得る。メモリ回収装置は、一般的に、処理機能を有し、携帯電話またはコンピュータなどの端末デバイス内にあるコンポーネント、例えば、CPUであってよく、コンポーネントは、端末デバイス内のメモリ回収方法を実装するように構成され得る。
【００２６】
図1は、本発明によるメモリ回収方法の実施形態1の流れ図である。図1に示されているように、この実施形態におけるメモリ回収方法は、以下のステップを含む。
【００２７】
S101:メモリ回収要求メッセージを受信し、メモリ回収要求メッセージは、回収識別子を含み、回収識別子は、回収されることが要求されているメモリページの量を示すために使用される。
【００２８】
特に、例えば、プログラムを実行しているときに、メモリ回収装置は、記憶空間をプロセスに割り当てる必要があり、この場合、空きメモリが不十分であれば、オペレーティングシステムは、メモリ回収要求メッセージをメモリ管理モジュールに送信し、メモリ管理モジュールは、メモリ回収要求メッセージを受信し、メモリ回収要求メッセージは、回収識別子を含み、回収識別子は、オペレーティングシステムによって要求されたメモリページの量を示すために使用される識別子であるものとしてよい、すなわち、オペレーティングシステムがメモリ管理モジュールに対してメモリページの割り当てを要求し、メモリページの量は、回収識別子によって識別され、メモリ管理モジュールは、メモリ回収要求メッセージに従ってNVMの非アクティブなメモリページのリンクリスト内のメモリページの対応する量を回収し、オペレーティングシステムの要求条件を満たす。
【００２９】
S102:不揮発性メモリ(NVM)の非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収する。
【００３０】
特に、メモリ管理モジュールは、NVMの非アクティブなメモリページのリンクリスト内の非アクティブなメモリページの書き込み回数に従って、非アクティブなメモリページの書き込み回数の昇順で、非アクティブなメモリページを次々に回収するが、そこでは、非アクティブなメモリページの量は、回収識別子に対応している。このようにして、NVMの非アクティブなメモリページのリンクリスト内の、書き込み回数の少ない非アクティブなメモリページの回収が先に行われる。回収された非アクティブなメモリページの書き込み回数の量が、次の回収時にまだ少ない場合、書き込み回数の少ない非アクティブなメモリページが、なおも回収される。このようにして、メモリページ回収のプロセスでは、書き込み回数の少ない非アクティブなメモリページの回収が常に先に行われ、それによって、一部のメモリページの書き込み回数が多いことによりメモリ回収装置のメモリモジュールが先にダメージを受けるためメモリモジュール全体の安定性および信頼性に影響を与えることを回避し、NVMのメモリページの疲弊バランスを改善する。
【００３１】
本発明のこの実施形態におけるメモリ回収方法によれば、メモリ回収要求メッセージが受信され、メモリ回収要求メッセージは、回収識別子を含み、回収識別子は、回収されることが要求されているメモリページの量を示すために使用され、NVMの非アクティブなメモリページは、NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従って回収される。このようにして、NVMの非アクティブなメモリページの間で書き込み回数が比較的少ないページの回収が先であり、NVMの非アクティブなメモリページの間で書き込み回数が比較的多いページの回収は後回しにされる。したがって、NVMのウェアレベリングが達成され、ストレージユニットの安定性および信頼性が改善される。
【００３２】
前述の実施形態に基づき、さらに、NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップの前に、この方法は、NVMの非アクティブなメモリページの書き込み回数を判定するステップと、NVMの非アクティブなメモリページを、NVMの非アクティブなメモリページの書き込み回数に従って非アクティブなメモリページのリンクリストの対応するセグメントに格納するステップであって、非アクティブなメモリページのリンクリストは、複数のセグメントを含み、それぞれのセグメントは、書き込み回数の設定された範囲内でNVMの非アクティブなメモリページを格納するために使用される、ステップとをさらに含む。
【００３３】
特に、NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップの前に、メモリ管理モジュールは、NVMの非アクティブなメモリページの書き込み回数をさらに先に決定することができ、例えば、メモリ管理モジュールは、NVMの非アクティブなメモリページの、メモリコントローラキャッシュに記録されている、書き込み回数に従って、非アクティブなメモリページの書き込み回数を取得することができ、メモリコントローラキャッシュが、対応する非アクティブなメモリページの書き込み回数に関する記録を有していない場合、対応する非アクティブなメモリページの書き込み回数は、NVMのカウンターからさらに取得され得る。メモリコントローラキャッシュをメモリコントローラ内に配設することによって、メモリコントローラキャッシュ内の非アクティブなメモリページの書き込み回数を記録するステップは、NVMのアクセス回数の量を減らすことができる。メモリ管理モジュールは、NVMのカウンター内への、メモリコントローラキャッシュに記録されている非アクティブなメモリページの書き込み回数をさらに定期的にリフレッシュすることができ、NVM内のすべてのメモリページの書き込み回数がNVMのカウンターに記録される。
【００３４】
前述の実施形態に基づき、さらに、非アクティブなメモリページのリンクリストに含まれる複数のセグメントは、書き込み回数の対応する設定された範囲の昇順に非アクティブなメモリページのリンクリスト内でソートされる。
【００３５】
特に、図2は、本発明によるNVMの非アクティブなメモリページのリンクリストの編成形態の実施形態1の概略図である。図2に示されているように、NVMの非アクティブなメモリページのリンクリストは、NVMの非アクティブなメモリページのリンクリストの複数のセグメントを含み、NVMの非アクティブなメモリページのリンクリストのそれぞれのセグメントの先頭は、数値範囲を含み、この数値範囲は、セグメント内のすべてのメモリページの書き込み回数の範囲を示し、例えば、NVMの非アクティブなメモリページのリンクリストのセグメントA内のすべてのメモリページの書き込み回数は、0から100の範囲内であり、NVMの非アクティブなメモリページのリンクリストのセグメントA内の0から100の範囲内の書き込み回数を有するすべてのメモリページは、書き込み回数の昇順でリンクリスト内でソートされる。
【００３６】
NVMの新しい非アクティブなメモリページが、NVMの非アクティブなメモリページのリンクリスト内に移動されると、このことは、NVMの挿入されるべき非アクティブなメモリページMの書き込み回数の量が30であると判定することによって知られ、NVMの非アクティブなメモリページMは、0から100の範囲内の書き込み回数を有するNVMの非アクティブなメモリページのリンクリストのセグメントA内に挿入され、特に、リンクリストのセグメントAの、20および50の書き込み回数を有する非アクティブなメモリページ間に挿入され、これにより、挿入後に、リンクリストのセグメントA内のメモリページは、書き込み回数の昇順でなおもソートされ、したがって、これにより、ページが回収されるときに、NVMの非アクティブなメモリページのリンクリスト内のページは、書き込み回数の昇順で常に回収され得ることが保証され得る。
【００３７】
前述の実施形態に基づき、さらに、NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップは、非アクティブなメモリページのリンクリストにおいて、書き込み回数の設定された範囲の昇順で、1つまたは複数のセグメント内にある、回収識別子によって回収されることが要求されているメモリページの量と一致する量の、NVMの非アクティブなメモリページを回収するステップを含む。
【００３８】
特に、図3は、本発明によるメモリ回収方法の実施形態2の流れ図である。図3に示されているように、この実施形態で提供されるメモリ回収方法によれば、非アクティブなメモリページのリンクリストは、複数のセグメントに分割され、これらを含むものとしてよく、それぞれのセグメントは、書き込み回数の設定された範囲内でNVMの非アクティブなメモリページを格納するために使用され、非アクティブなメモリページのリンクリストに含まれる複数のセグメントは、書き込み回数の対応する設定された範囲の昇順に非アクティブなメモリページのリンクリスト内でソートされ、メモリ管理モジュールは、以下のステップに従ってNVMの非アクティブなメモリページを回収することができる。
【００３９】
301:NVMの非アクティブなメモリページのリンクリストから、最小の範囲の書き込み回数を有するセグメントを選択する。
【００４０】
メモリ管理モジュールは、NVMの非アクティブなメモリページのリンクリストから、NVMの非アクティブなメモリページのリンクリスト内にあり、最小の範囲の書き込み回数を有するNVMの非アクティブなメモリページのリンクリストのセグメントを選択する。
【００４１】
302:NVMの非アクティブなメモリページのリンクリストの選択されたセグメントの先頭から非アクティブなメモリページを回収する。
【００４２】
非アクティブなメモリページのリンクリストの選択されたセグメントの先頭から始めて、非アクティブなメモリページの書き込み回数の昇順で、指定された量のメモリページが選択され、選択されたメモリページが回収され、これにより、回収されたメモリページは、空きページとなり、したがって、再利用可能であり、その場合、指定された量が、オペレーティングシステムによって設定され得る。
【００４３】
303:指定された量のメモリページが回収されたかどうかを判定し、指定された量のメモリページが回収された場合に、304を実行し、指定された量のメモリページが回収されない場合に、305を実行する。
【００４４】
選択されたメモリページの量が、オペレーティングシステムの要求条件を満たし得る場合、このメモリ回収オペレーションは完了し、選択されたメモリページの量が、オペレーティングシステムの要求条件を満たさない場合、メモリページは、NVMの非アクティブなメモリページのリンクリスト内の別のセグメントから回収される。
【００４５】
304:終了する。
【００４６】
305:301で選択されたセグメントが、NVMの非アクティブなメモリページのリンクリストの最後のセグメントであるかどうかを判定し、301で選択されたセグメントが、NVMの非アクティブなメモリページのリンクリストの最後のセグメントである場合に、304を実行し、301で選択されたセグメントが、NVMの非アクティブなメモリページのリンクリストの最後のセグメントでない場合に、306を実行する。
【００４７】
前述の301におけるNVMの非アクティブなメモリページのリンクリストの選択されたセグメントが、NVMの非アクティブなメモリページのリンクリストの最後のリンクリストのセグメントである場合、このメモリ回収オペレーションは完了し、前述の301におけるNVMの非アクティブなメモリページのリンクリストの選択されたセグメントが、NVMの非アクティブなメモリページのリンクリストの最後のセグメントでない場合、メモリページは、NVMの非アクティブなメモリページのリンクリスト内の別のセグメントから回収される。
【００４８】
306:NVMの非アクティブなメモリページのリンクリストから、第2の最小の範囲の書き込み回数を有するセグメントを選択する。
【００４９】
NVMの非アクティブなメモリページのリンクリストから、前述の301で選択されたセグメントでの範囲より小さく、また近い範囲の書き込み回数を有するセグメントが選択されており、次いで302が実行される。
【００５０】
オプションにより、メモリ回収方法の実施形態1に基づき、NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップの前に、この実施形態におけるメモリ回収方法は、NVMの非アクティブなメモリページの書き込み回数を判定するステップと、NVMの非アクティブなメモリページを非アクティブなメモリページのリンクリスト内の最後のページグループに格納するステップであって、リンクリストは、複数のページグループを含み、それぞれのページグループは、書き込み回数の昇順でソートされるNVMの設定された量の非アクティブなメモリページを含む、ステップとをさらに含む。
【００５１】
特に、NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップの前に、メモリ管理モジュールは、NVMの非アクティブなメモリページの書き込み回数をさらに先に決定することができ、NVMの非アクティブなメモリページの書き込み回数を判定する特定のプロセスは、前述の実施形態のものと同じであり、ここで再び説明することはしない。
【００５２】
メモリ管理モジュールは、NVMの非アクティブなメモリページを非アクティブなメモリページのリンクリスト内の最後のページグループにさらに格納するものとしてよく、リンクリストは、複数のページグループを含み、それぞれのページグループは、書き込み回数の昇順でソートされるNVMの設定された量の非アクティブなメモリページを含む。
【００５３】
前述の実施形態に基づき、さらに、非アクティブなメモリページのリンクリストに含まれる複数のページグループは、確立時間の順で非アクティブなメモリページのリンクリスト内でソートされる。
【００５４】
特に、図4は、本発明によるNVMの非アクティブなメモリページのリンクリストの編成形態の実施形態2の概略図である。図4に示されているように、NVMの非アクティブなメモリページのリンクリストは、複数のページグループを含み、それぞれのページグループは、確立時間の順、例えば、ページグループOに含まれているNVMの設定された量の非アクティブなメモリページがリンクリスト内に挿入される時刻がページグループPに含まれているNVMの設定された量の非アクティブなメモリページがリンクリスト内に挿入される時刻よりも比較的早く、ページグループPに含まれているNVMの設定された量の非アクティブなメモリページがリンクリスト内に挿入される時刻が、ページグループQに含まれているNVMの設定された量の非アクティブなメモリページがリンクリスト内に挿入される時刻よりも比較的早くなるようにページのリンクリスト内でソートされる。
【００５５】
ページグループO、ページグループP、およびページグループQに含まれる設定された量のNVMの非アクティブなメモリページは、非アクティブなメモリページの書き込み回数の昇順に次々にソートされる。NVMの新しい非アクティブなメモリページNが、非アクティブなメモリページのリンクリスト内に移動されると、このことはNVMの挿入されるべき非アクティブなメモリページNの書き込み回数は30であると判定することによって知られ、NVMの非アクティブなメモリページNは、NVMの非アクティブなメモリページのリンクリストの末尾のところでページグループQ内に挿入され、特に、55および20の書き込み回数を有するページグループQの非アクティブなメモリページ間に挿入され、これにより、挿入後に、リンクリストのセグメントA内のメモリページは、なおも書き込み回数の昇順でソートされる。このようにして、ページ回収時にページグループ内のページが書き込み回数の昇順で常に回収され得ることが保証され得る。
【００５６】
前述の実施形態に基づき、さらに、NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するステップは、非アクティブなメモリページのリンクリストにおいて、確立時間の順で、1つまたは複数のページグループ内にある、回収識別子によって回収されることが要求されているメモリページの量と一致する量の、NVMの非アクティブなメモリページを回収するステップを含む。
【００５７】
特に、図5は、本発明によるメモリ回収方法の実施形態3の流れ図である。図5に示されているように、この実施形態で提供されるメモリ回収方法によれば、リンクリストは、複数のページグループを含むものとしてよく、それぞれのページグループは、書き込み回数の昇順でソートされるNVMの設定された量の非アクティブなメモリページを含み、ページのリンクリストに含まれている複数のページグループは、確立時間の順にページのリンクリスト内でソートされる。メモリ管理モジュールは、以下のステップに従ってNVMの非アクティブなメモリページを回収することができる。
【００５８】
501:NVMの非アクティブなメモリページのリンクリストのうちで確立時間が最も早いページグループから非アクティブなメモリページを回収し始める。
【００５９】
メモリ管理モジュールは、非アクティブなメモリページの書き込み回数の昇順で、NVMの非アクティブなメモリページのリンクリストのセグメントの先頭から、指定された量のメモリページを選択し、選択されたメモリページを回収し、それにより、回収されたメモリページは、空きページとなり、したがって、再利用可能であり、その際に、指定された量は、オペレーティングシステムに要求条件に従って決定され得る。
【００６０】
502:指定された量のメモリページが回収されたかどうかを判定する。
【００６１】
選択されたメモリページの量が、オペレーティングシステムの要求条件を満たし得る場合、このメモリ回収オペレーションは完了し、選択されたメモリページの量が、オペレーティングシステムの要求条件を満たさない場合、メモリページは、NVMの非アクティブなメモリページのリンクリスト内の別のページグループから回収される。
【００６２】
503:終了する。
【００６３】
504:NVMの非アクティブなメモリページのリンクリストの末尾に到達したかどうかを判定する。
【００６４】
NVMの非アクティブなメモリページのリンクリストの末尾に到達した場合、このメモリ回収オペレーションは完了し、NVMの非アクティブなメモリページのリンクリストの末尾部分に到達しない場合、メモリページは、NVMの非アクティブなメモリページのリンクリスト内の別のページグループから回収される。
【００６５】
505:NVMの非アクティブなメモリページのリンクリストのうちで確立時間が2番目に最も早いページグループから非アクティブなメモリページを回収し始める。
【００６６】
確立時間が、前述の501で選択されたページグループの確立時間より後であり、またそれに近く、NVMの非アクティブなメモリページのリンクリスト内にあるページグループが選択され、メモリページは、回収されるメモリページの量がオペレーティングシステムの要求条件を満たすまで、非アクティブなメモリページの書き込み回数の昇順で選択されたページグループから回収される。
【００６７】
前述の方法実施形態を実装するためのステップの全部または一部が関連するハードウェアに命令を送るプログラムによって実装され得ることは、当業者によって理解され得る。プログラムは、コンピュータ可読記憶媒体に格納することができる。プログラムが実行されると、方法実施形態を含むステップが実行される。記憶媒体は、ROM、RAM、磁気ディスク、または光ディスクなどの、プログラムコードを格納することができる任意の媒体であってよい。
【００６８】
図6は、本発明によるメモリ回収装置の実施形態1の構造図である。図6に示されているように、この実施形態におけるメモリ回収装置600は、受信モジュール601とメモリ回収モジュール602とを備え、
受信モジュール601は、メモリ回収要求メッセージを受信するように構成され、メモリ回収要求メッセージは、回収識別子を含み、回収識別子は、回収されることが要求されているメモリページの量を示すために使用され、
メモリ回収モジュール602は、不揮発性メモリ(NVM)の非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収するように構成される。
【００６９】
この実施形態におけるメモリ回収装置は、メモリ回収方法の実施形態1におけるメモリ回収方法を実行するように構成され得る。特定の実行プロセスについては、メモリ回収方法の実施形態1を参照するとよく、詳細は、ここで再び説明することはしない。
【００７０】
この実施形態のメモリ回収装置によれば、受信モジュールが、メモリ回収要求メッセージを受信し、メモリ回収要求メッセージは、回収識別子を含み、回収識別子は、回収されることが要求されているメモリページの量を示すために使用され、メモリ回収モジュールは、NVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収し、これにより、NVMの非アクティブなメモリページの間で書き込み回数が比較的少ないページの回収が先にされ、NVMの非アクティブなメモリページの間で書き込み回数が比較的多いページの回収は後回しにされることになる。したがって、NVMのウェアレベリングが達成され、ストレージユニットの安定性および信頼性が改善される。
【００７１】
前述の実施形態に基づき、さらに、メモリ回収装置600は、判定モジュールと第1の挿入モジュールとをさらに備え、
判定モジュールは、メモリ回収モジュールがNVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収する前に、NVMの非アクティブなメモリページの書き込み回数を判定するように構成されるものとしてよく、
第1の挿入モジュールは、NVMの非アクティブなメモリページを、NVMの非アクティブなメモリページの書き込み回数に従って非アクティブなメモリページのリンクリストの対応するセグメントに格納し、非アクティブなメモリページのリンクリストは、複数のセグメントを含み、それぞれのセグメントは、書き込み回数の設定された範囲内でNVMの非アクティブなメモリページを格納するために使用される、ように構成され得る。
【００７２】
前述の実施形態に基づき、さらに、非アクティブなメモリページのリンクリストに含まれる複数のセグメントは、書き込み回数の対応する設定された範囲の昇順に非アクティブなメモリページのリンクリスト内でソートされる。
【００７３】
前述の実施形態に基づき、さらに、メモリ回収モジュールは、非アクティブなメモリページのリンクリストにおいて、書き込み回数の設定された範囲の昇順で、1つまたは複数のセグメント内にある、回収識別子によって回収されることが要求されているメモリページの量と一致する量の、NVMの非アクティブなメモリページを回収するように特に構成され得る。
【００７４】
オプションにより、メモリ回収装置の実施形態1に基づき、メモリ回収装置600は、判定モジュールと第2の挿入モジュールとをさらに備えることができ、
判定モジュールは、メモリ回収モジュールがNVMの非アクティブなメモリページの書き込み回数の昇順で回収識別子に従ってNVMの非アクティブなメモリページを回収する前に、NVMの非アクティブなメモリページの書き込み回数を判定するように構成されるものとしてよく、
第2の挿入モジュールは、NVMの非アクティブなメモリページを非アクティブなメモリページのリンクリスト内の最後のページグループに格納し、リンクリストは、複数のページグループを含み、それぞれのページグループは、書き込み回数の昇順でソートされるNVMの設定された量の非アクティブなメモリページを含む、ように構成され得る。
【００７５】
前述の実施形態に基づき、さらに、非アクティブなメモリページのリンクリストに含まれる複数のページグループは、確立時間の順で非アクティブなメモリページのリンクリスト内でソートされる。
【００７６】
前述の実施形態に基づき、さらに、メモリ回収モジュールは、非アクティブなメモリページのリンクリストにおいて、確立時間の順で、1つまたは複数のページグループ内にある、回収識別子によって回収されることが要求されているメモリページの量と一致する量の、NVMの非アクティブなメモリページを回収するように特に構成され得る。
【００７７】
最後に、前述の実施形態は、本発明を制限するのとは異なり本発明の技術的解決策を説明することのみを意図されていることに留意されたい。本発明は、前述の実施形態を参照しつつ詳しく説明されているけれども、当業者であれば、本発明の実施形態の技術的解決策の範囲から逸脱することなく、前述の実施形態において説明されている技術的解決策に修正を加えるか、またはその一部の技術的特徴に対する同等の置き換えを行うことがやはり可能であることを理解するはずである。
【符号の説明】
【００７８】
A  セグメント
M  非アクティブなメモリページ
N  非アクティブなメモリページ
O  ページグループ
P  ページグループ
Q  ページグループ
600  メモリ回収装置
601  受信モジュール
602  メモリ回収モジュール
【図１】
0006014925.tif 000002
【図２】
0006014925.tif 000003
【図３】
0006014925.tif 000004
【図４】
0006014925.tif 000005
【図５】
0006014925.tif 000006
【図６】
0006014925.tif 000007