特許第6014925号(P6014925)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ▲ホア▼▲ウェイ▼技術有限公司の特許一覧

<>
  • 特許6014925-メモリ回収方法および装置 図000002
  • 特許6014925-メモリ回収方法および装置 図000003
  • 特許6014925-メモリ回収方法および装置 図000004
  • 特許6014925-メモリ回収方法および装置 図000005
  • 特許6014925-メモリ回収方法および装置 図000006
  • 特許6014925-メモリ回収方法および装置 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6014925
(24)【登録日】2016年10月7日
(45)【発行日】2016年10月26日
(54)【発明の名称】メモリ回収方法および装置
(51)【国際特許分類】
   G06F 12/16 20060101AFI20161013BHJP
   G06F 12/02 20060101ALI20161013BHJP
   G06F 12/00 20060101ALI20161013BHJP
【FI】
   G06F12/16 310A
   G06F12/02 530E
   G06F12/02 510A
   G06F12/00 597U
【請求項の数】14
【全頁数】16
(21)【出願番号】特願2015-552994(P2015-552994)
(86)(22)【出願日】2014年1月13日
(65)【公表番号】特表2016-507830(P2016-507830A)
(43)【公表日】2016年3月10日
(86)【国際出願番号】CN2014070515
(87)【国際公開番号】WO2014127684
(87)【国際公開日】20140828
【審査請求日】2015年7月17日
(31)【優先権主張番号】201310057351.1
(32)【優先日】2013年2月22日
(33)【優先権主張国】CN
(73)【特許権者】
【識別番号】504277388
【氏名又は名称】▲ホア▼▲ウェイ▼技術有限公司
【氏名又は名称原語表記】HUAWEI TECHNOLOGIES CO.,LTD.
(74)【代理人】
【識別番号】100146835
【弁理士】
【氏名又は名称】佐伯 義文
(74)【代理人】
【識別番号】100140534
【弁理士】
【氏名又は名称】木内 敬二
(72)【発明者】
【氏名】夏 ▲飛▼
(72)【発明者】
【氏名】蒋 徳▲釣▼
(72)【発明者】
【氏名】魏 巍
(72)【発明者】
【氏名】熊 ▲ジン▼
【審査官】 後藤 彰
(56)【参考文献】
【文献】 特表2012−533813(JP,A)
【文献】 国際公開第2011/010348(WO,A1)
【文献】 特開2010−182266(JP,A)
【文献】 特開2005−222550(JP,A)
【文献】 特開平8−16482(JP,A)
【文献】 米国特許出願公開第2011/0283049(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 12/02
G06F 12/16
(57)【特許請求の範囲】
【請求項1】
メモリ回収要求メッセージを受信するステップであって、前記メモリ回収要求メッセージは、回収識別子を含み、前記回収識別子は、回収されることが要求されているメモリページの量を示すために使用される、ステップと、
不揮発性メモリ(NVM)の非アクティブなメモリページの書き込み回数の昇順で前記回収識別子に従って前記NVMの非アクティブなメモリページを回収するステップとを含むメモリ回収方法。
【請求項2】
NVMの非アクティブなメモリページの前記書き込み回数の昇順で前記回収識別子に従って前記NVMの非アクティブなメモリページを回収する前記ステップの前に、
前記NVMの非アクティブなメモリページの前記書き込み回数を判定するステップと、
前記NVMの前記非アクティブなメモリページを、前記NVMの非アクティブなメモリページの前記書き込み回数に従って前記非アクティブなメモリページのリンクリストの対応するセグメントに格納するステップであって、前記非アクティブなメモリページの前記リンクリストは、複数のセグメントを含み、それぞれのセグメントは、前記書き込み回数の設定された範囲内で前記NVMの非アクティブなメモリページを格納するために使用される、ステップとをさらに含む請求項1に記載の方法。
【請求項3】
前記非アクティブなメモリページの前記リンクリストに含まれる前記複数のセグメントは、前記書き込み回数の対応する設定された範囲の昇順に前記非アクティブなメモリページの前記リンクリスト内でソートされる請求項2に記載の方法。
【請求項4】
NVMの非アクティブなメモリページの前記書き込み回数の昇順で前記回収識別子に従って前記NVMの非アクティブなメモリページを回収する前記ステップは、
前記非アクティブなメモリページの前記リンクリストにおいて、前記書き込み回数の前記設定された範囲の昇順で、1つまたは複数のセグメント内にある、前記回収識別子によって回収されることが要求されている前記メモリページの前記量と一致する量の、前記NVMの非アクティブなメモリページを回収するステップを含む請求項2または3に記載の方法。
【請求項5】
NVMの非アクティブなメモリページの前記書き込み回数の昇順で前記回収識別子に従って前記NVMの非アクティブなメモリページを回収する前記ステップの前に、
前記NVMの非アクティブなメモリページの前記書き込み回数を判定するステップと、
前記NVMの前記非アクティブなメモリページを前記非アクティブなメモリページのリンクリスト内の最後のページグループに格納するステップであって、前記リンクリストは、複数のページグループを含み、それぞれのページグループは、前記書き込み回数の昇順でソートされる前記NVMの設定された量の非アクティブなメモリページを含む、ステップとをさらに含む請求項1に記載の方法。
【請求項6】
前記非アクティブなメモリページの前記リンクリストに含まれる前記複数のページグループは、確立時間の順で前記非アクティブなメモリページの前記リンクリスト内でソートされる請求項5に記載の方法。
【請求項7】
NVMの非アクティブなメモリページの前記書き込み回数の昇順で前記回収識別子に従って前記NVMの非アクティブなメモリページを回収する前記ステップは、
前記非アクティブなメモリページの前記リンクリストにおいて、確立時間の順で、1つまたは複数のページグループ内にある、前記回収識別子によって回収されることが要求されている前記メモリページの前記量と一致する量の、前記NVMの非アクティブなメモリページを回収するステップを含む請求項5または6に記載の方法。
【請求項8】
メモリ回収要求メッセージを受信するように構成された受信モジュールであって、前記メモリ回収要求メッセージは、回収識別子を含み、前記回収識別子は、回収されることが要求されているメモリページの量を示すために使用される、受信モジュールと、
不揮発性メモリ(NVM)の非アクティブなメモリページの書き込み回数の昇順で前記回収識別子に従って前記NVMの非アクティブなメモリページを回収するように構成されたメモリ回収モジュールとを備えるメモリ回収装置。
【請求項9】
前記メモリ回収モジュールが前記NVMの非アクティブなメモリページの書き込み回数の昇順で前記回収識別子に従って前記NVMの前記非アクティブなメモリページを回収する前に、前記NVMの前記非アクティブなメモリページの前記書き込み回数を判定するように構成された判定モジュールと、
前記NVMの前記非アクティブなメモリページを、前記NVMの非アクティブなメモリページの前記書き込み回数に従って前記非アクティブなメモリページのリンクリストの対応するセグメントに格納するように構成された第1の挿入モジュールであって、前記非アクティブなメモリページの前記リンクリストは、複数のセグメントを含み、それぞれのセグメントは、前記書き込み回数の設定された範囲内で前記NVMの非アクティブなメモリページを格納するために使用される、第1の挿入モジュールとをさらに備える請求項8に記載の装置。
【請求項10】
前記非アクティブなメモリページの前記リンクリストに含まれる前記複数のセグメントは、前記書き込み回数の対応する設定された範囲の昇順に前記非アクティブなメモリページの前記リンクリスト内でソートされる請求項9に記載の装置。
【請求項11】
前記メモリ回収モジュールは、前記非アクティブなメモリページの前記リンクリストにおいて、前記書き込み回数の前記設定された範囲の昇順で、1つまたは複数のセグメント内にある、前記回収識別子によって回収されることが要求されている前記メモリページの前記量と一致する量の、前記NVMの非アクティブなメモリページを回収するように特に構成されている請求項9または10に記載の装置。
【請求項12】
前記メモリ回収モジュールが前記NVMの非アクティブなメモリページの前記書き込み回数の昇順で前記回収識別子に従って前記NVMの前記非アクティブなメモリページを回収する前に、前記NVMの前記非アクティブなメモリページの前記書き込み回数を判定するように構成された判定モジュールと、
前記NVMの前記非アクティブなメモリページを前記非アクティブなメモリページのリンクリスト内の最後のページグループに格納するように構成された第2の挿入モジュールであって、前記リンクリストは、複数のページグループを含み、それぞれのページグループは、前記書き込み回数の昇順でソートされる前記NVMの設定された量の非アクティブなメモリページを含む、第2の挿入モジュールとをさらに備える請求項8に記載の装置。
【請求項13】
前記非アクティブなメモリページの前記リンクリストに含まれる前記複数のページグループは、確立時間の順で前記非アクティブなメモリページの前記リンクリスト内でソートされる請求項12に記載の装置。
【請求項14】
前記メモリ回収モジュールは、前記非アクティブなメモリページの前記リンクリストにおいて、確立時間の順で、1つまたは複数のページグループ内にある、前記回収識別子によって回収されることが要求されている前記メモリページの前記量と一致する量の、前記NVMの非アクティブなメモリページを回収するように特に構成されている請求項12または13に記載の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、参照によりその全体が本明細書に組み込まれている、2013年2月22日に中国特許庁に出願した中国特許出願第201310057351.1号、名称「MEMORY RECLAMATION METHOD AND APPARATUS」の優先権を主張するものである。
【0002】
本発明の実施形態は、コンピュータ技術の分野に関するものであり、具体的には、メモリ回収(memory reclamation)方法および装置に関するものである。
【背景技術】
【0003】
メモリユニットを構成するメモリデバイスは、一般的に、ダイナミックランダムアクセスメモリ(Dynamic Random Access Memory、略してDRAM)および不揮発性メモリ(Non-Volatile Memory、略してNVM)を含む。DRAMにとって負担になり得る書き込み回数の量は多いが、集積化レベルは小さく、集積化され得る記憶空間には限りがある。NVMの集積化レベルはより高く、NVMは、大きな記憶容量を有するメモリチップを集積化することができるが、NVMにとって負担となり得る書き込み回数の量は、比較的少ない。ストレージデバイスの記憶容量に対する人々の要求条件が次第に高くなり、ストレージデバイスの記憶容量がより大きく、より安定した、より信頼性の高いものとなることを人々が期待しているところに、DRAMとNVMとを一緒に使用することによってストレージデバイスの記憶容量を改善することができる、DRAMおよびNVMを含む混合構造のメモリユニットが登場した。
【0004】
従来技術では、DRAMとNVMの混合構造のストレージデバイスのオペレーティングシステムが、ページ回収オペレーションを実行するときに、最長時間未使用(the least recently used)(Least Recently Used、略してLRU)アルゴリズムが、非アクティブなNVMページのリンクリストの先頭から対応する量のページを選択して回収するために使用される。そのような方法は、書き込み回数が大量であるNVMページの回収が先に行われ、その結果、書き込み回数が大量であるNVMページはひどく疲弊し、ストレージユニット全体の安定性および信頼性が影響を受ける可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【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】
本発明の実施形態または従来技術における技術的解決策をより明確に説明するために、以下において、実施形態または従来技術の説明に必要な添付図面を簡単に紹介する。明らかに、以下の説明の添付図面は、本発明のいくつかの実施形態を示しており、当業者であれば、創造的労力を費やすことなくこれらの添付図面から他の図面をやはり導き出すことができる。
【図面の簡単な説明】
【0022】
図1】本発明によるメモリ回収方法の実施形態1の流れ図である。
図2】本発明によるNVMの非アクティブなメモリページのリンクリストの編成形態の実施形態1の概略図である。
図3】本発明によるメモリ回収方法の実施形態2の流れ図である。
図4】本発明によるNVMの非アクティブなメモリページのリンクリストの編成形態の実施形態2の概略図である。
図5】本発明によるメモリ回収方法の実施形態3の流れ図である。
図6】本発明によるメモリ回収装置の実施形態1の構造図である。
【発明を実施するための形態】
【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の非アクティブなメモリページのリンクリスト内の別のセグメントから回収される。
【0045】
304:終了する。
【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の非アクティブなメモリページのリンクリスト内の別のページグループから回収される。
【0062】
503:終了する。
【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】
最後に、前述の実施形態は、本発明を制限するのとは異なり本発明の技術的解決策を説明することのみを意図されていることに留意されたい。本発明は、前述の実施形態を参照しつつ詳しく説明されているけれども、当業者であれば、本発明の実施形態の技術的解決策の範囲から逸脱することなく、前述の実施形態において説明されている技術的解決策に修正を加えるか、またはその一部の技術的特徴に対する同等の置き換えを行うことがやはり可能であることを理解するはずである。
【符号の説明】
【0078】
A セグメント
M 非アクティブなメモリページ
N 非アクティブなメモリページ
O ページグループ
P ページグループ
Q ページグループ
600 メモリ回収装置
601 受信モジュール
602 メモリ回収モジュール
図1
図2
図3
図4
図5
図6