JP2021530810A - 不揮発性メモリ向けのウェアレベリング及びアクセス方法、デバイス及び記憶媒体 - Google Patents

不揮発性メモリ向けのウェアレベリング及びアクセス方法、デバイス及び記憶媒体 Download PDF

Info

Publication number
JP2021530810A
JP2021530810A JP2021503050A JP2021503050A JP2021530810A JP 2021530810 A JP2021530810 A JP 2021530810A JP 2021503050 A JP2021503050 A JP 2021503050A JP 2021503050 A JP2021503050 A JP 2021503050A JP 2021530810 A JP2021530810 A JP 2021530810A
Authority
JP
Japan
Prior art keywords
level physical
volatile memory
physical unit
data
qth
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.)
Granted
Application number
JP2021503050A
Other languages
English (en)
Other versions
JP7110479B2 (ja
Inventor
ホンヂャン ヤン,
イャォフォン トゥ,
グイハイ チェン,
ビン グォ,
インジュン ハン,
ゾンシュアイ イェン,
ヂェンジャン ファン,
ホン ガオ,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Publication of JP2021530810A publication Critical patent/JP2021530810A/ja
Application granted granted Critical
Publication of JP7110479B2 publication Critical patent/JP7110479B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】不揮発性メモリ向けのウェアレベリング及びアクセス方法、デバイス及び記憶媒体の提供。【解決手段】本発明は不揮発性メモリ向けのウェアレベリング及びアクセス方法、デバイス及び記憶媒体を提供する。その方法は、不揮発性メモリを論理的にp個のレベルの物理単位に分割し(S110)、第qレベルの物理単位に対応する時間周期が到来すると、各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換する(S120)ことを含み、前記不揮発性メモリは複数の第1レベルの物理単位を含み、各第p−1レベルの物理単位は複数の第pレベルの物理単位を含み、pは1より大きい正の整数であり、qは1からpのいずれかの正の整数である。【選択図】図1

Description

<関連出願の相互参照>
本発明は、2018年7月20日に中国特許庁に提出された、出願番号が201810802096.1、発明名称が「データ交替方法、デバイス及びコンピュータ読み取り可能な記憶媒体」である中国特許出願の優先権を請求するものであって、その出願の全ての内容は引用により本発明に組み込まれる。
本発明は、2018年7月25日に中国特許庁に提出された、出願番号が201810824443.0、発明名称が「不揮発性メモリ向けのウェアレベリング及びアクセス方法、デバイス及び記憶媒体」である中国特許出願の優先権を請求するものであって、その出願の全ての内容は引用により本発明に組み込まれる。
<技術分野>
本発明は、通信の技術分野に関し、特に不揮発性メモリ向けのウェアレベリング及びアクセス方法、デバイス及び記憶媒体に関するものである。
不揮発性メモリ(NVM、Non−Volatile Memory)は、従来のストレージの持続性及び従来のメモリの高性能を兼ね備えているため、近年、飛躍的な発展を遂げている。不揮発性メモリは、ソリッドステートドライブ(SSD、Solid State Drive)と同様に、書き換え回数が限られている。このような特性に対しては、ウェアレベリングをサポートしなければならない。そうでなければ、意図しないホットスポットへのアクセスや、悪意のある繰り返した書き換え攻撃によって、何らかの物理アドレス(ページ、ブロック、セグメント)が最初に書き換え回数の上限に達してしまい、悪影響を招き、軽いものは利用可能な容量を低下させてしまい、重いものはディスク全体の破棄を招いてしまう。
ソリッドステートドライブは、ハードウェアマッピングテーブルの方式によりウェアレベリングの動作を達成し、すなわち、FTL(Flash Translation Layer、フラッシュ変換層)におけるマッピングテーブルにより論理アドレスと物理アドレスとのマッピングを達成するものである。FTLは、物理アドレスへのアクセス回数を統計し、アクセス頻度の高い物理アドレスについては、マッピングテーブルを変更するだけで、その論理アドレスにマッピングする物理アドレスをアクセス頻度の低い物理アドレスに変更すればよい。FTLは、アドレスマッピング、ウェアレベリングの他、ガベージコレクション、ECC(Error Correcting Code、誤り訂正符号)チェック、バッドブロック管理等の動作をも担う。
しかしながら、不揮発性メモリのウェアレベリングは、従来のハードウェアのマッピングテーブルの方式をそのまま使用することができない。その原因としては、(1)不揮発性メモリにはFTLハードウェアがない。FTLはソリッドステートドライブメーカーのコア技術が融合されるものであって、ハードウェアデバイスに集積されるのに対して、不揮発性メモリはFTLハードウェアがなく、単にウェアレベリングのためにハードウェア設計上のオーバーヘッドとコストを増加させるのは、ハードウェアメーカのサポートが得られにくい。(2)不揮発性メモリは性能に対する要求が高い。ソフトウェアによるテーブルルックアップは操作効率が低下するとともに、「書き換え回数の統計」というステップを増やす。このような性能阻害は、ソリッドステートドライブの場合、1%未満(ほとんど無視できる)であるが、不揮発性メモリのアクセス遅延時間はソリッドステートドライブより1〜2桁低く、このような性能阻害は30%以上の性能阻害が生じる(非常に顕著である)。(3)不揮発性メモリは高価である。ソフトウェアの方式でマッピングテーブルを実現する場合、「論理アドレス、物理アドレス、書き換え回数」のようなマッピング関係を記録すると、貴重なメモリ空間を占め、空き容量が大きく低下してしまうことが挙げられる。以上のように、従来のハードウェアのマッピングテーブル方式をそのまま使用する場合であっても、ソフトウェアによって改善されたマッピングテーブル方式であっても、不揮発性メモリには適用できない。
そこで、本発明は、不揮発性メモリ内部のミクロなウェアレベリングの課題を解決するために不揮発性メモリ向けのウェアレベリング方案を提供する。
本発明の実施例の主な目的は、不揮発性メモリ内部のミクロなウェアレベリングの課題を解決する、不揮発性メモリ向けのウェアレベリング及びアクセス方法、デバイス及び記憶媒体を提供することである。
上記目的を達成するために、本発明は、不揮発性メモリ向けのウェアレベリング及びアクセス方法であって、不揮発性メモリを論理的にp個のレベルの物理単位に分割し、第qレベルの物理単位に対応する時間周期が到来すると、各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換することを含み、前記不揮発性メモリは複数の第1レベルの物理単位を含み、各第p−1レベルの物理単位は複数の第pレベルの物理単位を含み、pは1より大きい正の整数であり、qは1からpのいずれかの正の整数である、不揮発性メモリ向けのウェアレベリング及びアクセス方法を提供する。
上記目的を達成するために、本発明は、不揮発性メモリ向けのウェアレベリング及びアクセスデバイスであって、不揮発性メモリと、プロセッサと、記憶部と、通信バスとを備え、前記通信バスはプロセッサと記憶部との間の接続通信を実現するために用いられ、前記プロセッサは不揮発性メモリ向けのウェアレベリング及びアクセスプログラムを実行するために用いられ、不揮発性メモリを論理的にp個のレベルの物理単位に分割するステップと、第qレベルの物理単位に対応する時間周期が到来すると、各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換するステップとを実現し、前記不揮発性メモリは複数の第1レベルの物理単位を含み、各第p−1レベルの物理単位は複数の第pレベルの物理単位を含み、pは1より大きい正の整数であり、qは1からpのいずれかの正の整数である、不揮発性メモリ向けのウェアレベリング及びアクセスデバイスを提供する。
上記目的を達成するために、本発明は、一つ又は複数のプログラムを記憶したコンピュータ読み取り可能な記憶媒体であって、前記一つ又は複数のプログラムは、一つ又は複数のプロセッサによって実行され、不揮発性メモリを論理的にp個のレベルの物理単位に分割するステップと、第qレベルの物理単位に対応する時間周期が到来すると、各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換するステップとを実現し、前記不揮発性メモリは複数の第1レベルの物理単位を含み、各第p−1レベルの物理単位は複数の第pレベルの物理単位を含み、pは1より大きい正の整数であり、qは1からpのいずれかの正の整数である、コンピュータ読み取り可能な記憶媒体を提供する。
上記目的を達成するために、本発明は、不揮発性メモリ向けのウェアレベリング及びアクセスデバイスであって、不揮発性メモリと、プロセッサとを備え、前記プロセッサは不揮発性メモリ向けのウェアレベリング及びアクセスプログラムを実行するために用いられ、不揮発性メモリを論理的にp個のレベルの物理単位に分割するステップと、第qレベルの物理単位に対応する時間周期が到来すると、各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換するステップとを実現し、前記不揮発性メモリは複数の第1レベルの物理単位を含み、各第p−1レベルの物理単位は複数の第pレベルの物理単位を含み、pは1より大きい正の整数であり、qは1からpのいずれかの正の整数である、不揮発性メモリ向けのウェアレベリング及びアクセスデバイスを提供する。
本発明の一実施例に係る不揮発性メモリ向けのウェアレベリング及びアクセス方法のフローチャートである。 本発明の一実施例に係る不揮発性メモリ向けのウェアレベリング及びアクセス方法の模式図である。 本発明の一実施例に係る不揮発性メモリ向けのウェアレベリング及びアクセス方法のフローチャートである。 本発明の他の実施例に係る不揮発性メモリ向けのウェアレベリング及びアクセス方法のフローチャートである。 本発明の一実施例に係る不揮発性メモリ向けのウェアレベリング及びアクセス方法の模式図である。 本発明の一実施例に係る不揮発性メモリ向けのウェアレベリング及びアクセスデバイスのブロック図である。 本発明の他の実施例に係る不揮発性メモリ向けのウェアレベリング及びアクセスデバイスのブロック図である。
本発明の目的の実現、機能特徴及び利点について、実施例と合わせて図面を参照してさらに説明する。
なお、ここに記載された具体的な実施形態は、あくまでも本発明を解釈するためのものであり、本発明を限定するものではない。
以降の説明では、構成要素を示すための「モジュール」、「部品」、「ユニット」等の接尾辞を用いたのは、本発明の説明の便宜上のものであり、それ自体に特有の意味を有するものではない。したがって、「モジュール」、「部品」、または「ユニット」は、混在して使用されてもよい。
図1に示すように、本発明の一実施例は、不揮発性メモリ向けのウェアレベリング及びアクセス方法を提供するものであり、以下のステップを含む。
ステップS110では、不揮発性メモリを論理的にp個のレベルの物理単位に分割し、不揮発性メモリは複数の第1レベルの物理単位を含み、各第p−1レベルの物理単位は複数の第pレベルの物理単位を含み、pは1より大きい正の整数である。
本実施例では、例えば、不揮発性メモリを論理的にn個の第1物理単位に分割し、そのサイズをNとし、各第1物理単位をm個の第2物理単位に分割し、そのサイズをMとし、各第2物理単位をk個の第3物理単位に分割し、そのサイズをKとし、・・・、これによって類推する。
本実施例では、ステップS110のトリガ条件について、さらに制限が設けられている。典型的なトリガ条件としては、(1)ユーザが手動でトリガすること。(2)CPUは、過去の一定時間内、例えば1時間以内に、不揮発性メモリのある固定アドレスへの書き込み回数が予め設定された閾値、例えば10万回を超えることが検出されたことが挙げられる。ステップS110のトリガの前に、従来のマッピングテーブルの方式が採用される。
ステップS120では、第qレベルの物理単位に対応する時間周期が到来すると、各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換し、qは1からpのいずれかの正の整数である。
本実施例では、ステップS120の終了条件について、さらに制限が設けられている。典型的な終了条件としては、(1)ユーザが手動でトリガすること。(2)CPUは、過去の一定時間内、例えば7日以内の任意の時間間隔、例えば、1時間内に不揮発性メモリのある固定アドレスへの書き込み回数が予め設定された閾値、例えば10万回を超えていないことが検出されたこと。(3)その不揮発性メモリが予め設定された寿命値に達したことが検出され、寿命の限界に迫るので、このとき、ウェアレベリングの必要がなくなること。(4)その不揮発性メモリのいくつかのアドレスは書き込み回数の上限に達したことが挙げられる。ステップS120の終了後、従来のマッピングテーブルの方式が採用される。
本実施例では、第1物理単位の交替時間周期をAとし、第2物理単位の交替時間周期をBとし、第3物理単位の交替時間周期をCとし、・・・、これによって類推する。本実施例では、例えば、時間周期Aが到来すると、n個の第1物理単位が交替され、時間周期Bが到来すると、各第1物理単位におけるm個の第2物理単位が交替され、時間周期Cが到来すると、各第2物理単位におけるk個の第3物理単位が交替され、・・・、これによって類推する。交替後のデータ位置が変化し、具体的には図2に示すようになる。
本実施例では、交替の物理単位は、(1)セグメント、(2)ブロック、(3)ページ、(4)数バイト(B)、(5)数キロバイト(KB)、(6)数メガバイト(MB)、(7)数ギガバイト(GB)、及び(8)その他のメモリ容量単位を含むが、これらに限定されない。交替の時間単位は、(1)数年、(2)数四半期、(3)数か月、(4)数週、(5)数日、(6)数時間、(7)数分、(8)数秒、及び(9)その他の旧暦、チベット歴の時間単位を含むが、これらに限定されない。交替の方式は、(1)順次に一つずつ交替すること、(2)逆順に一つずつ交替すること、(3)順次に間引きに交替すること、(4)逆順に間引きに交替すること、(5)擬似乱数的に交替すること、(6)その他の交替方式を含むが、これらに限定されない。
本実施例の技術的解決手段によれば、同一の固定の論理アドレスに対する意図しない又は悪意な集中アクセスを、実際に各物理アドレスに均等に分散させることができ、ウェアレベリングの効果を達成することができる。従来のマッピングテーブルの方法と比較して、本発明の方法は、メモリ空間を余分に長期に亘って占有することなく、簡単な計算で論理アドレスと物理アドレスとの変換を完了することができ、効率の低いテーブルルックアップ操作を回避し、空間節約及び時間節約の効果を達成することができる。
図3に示すように、本発明の一実施例は、不揮発性メモリ向けのウェアレベリング及びアクセス方法を提供するものであり、以下のステップを含む。
ステップS310では、不揮発性メモリを論理的にp個のレベルの物理単位に分割し、不揮発性メモリは複数の第1レベルの物理単位を含み、各第p−1レベルの物理単位は複数の第pレベルの物理単位を含み、pは1より大きい正の整数である。
ステップS320では、現在の動作シーンに応じて、第qレベルの物理単位に対応する時間周期を設定する。
本実施例では、各交替物理単位は、それぞれ独立して同時に交替を行うことが好ましい。当然のことながら、セグメントのみの交替やブロックのみの交替では、ある程度ウェアレベリングを達成することができるが、同一の論理アドレスへのアクセスは、ある幾つかの物理アドレス上に固定的に分散されており、その論理アドレスを物理アドレス全体に分散させることができない。本発明は、全てのステップ又は複数のステップを組み合わせる必要がある。交替の時間間隔が短いほど、ウェアレベリングの効果が強くなり、遷移の回数も頻繁となり、外部へのサービスを一時的に停止するため、交替の時間があまり長くならず、あまり短くならず、ユースケースを実施する際に実際の状況に応じて決定する必要がある。遷移時間は、システムの低稼働期間に選択されるのが好ましい。システムが攻撃を受けた場合や、その他の必要なシーンでは、時間周期A、B、Cを短くして、ユーザによりトリガされたり、システムが自動的にトリガしたりするのが好ましい。
ステップS330では、第qレベルの物理単位に対応する時間周期が到来すると、各第qレベルの物理単位のデータをストレージまたはメモリにコピーし、各第qレベルの物理単位のデータが交替された後の位置に従って、ストレージまたはメモリから不揮発性メモリにコピーし、qは1からpのいずれかの正の整数である。
本実施例では、一つの第qレベルの物理単位のデータをストレージまたはメモリにコピーし、他の第qレベルの物理単位のデータを一つずつ不揮発性メモリ上の直前のコピーデータの位置にコピーし、また、ストレージまたはメモリ中のデータを不揮発性メモリ上の直前のコピーデータの位置にコピーする、という交替方式をさらに提供する。
本実施例では、(1)当該不揮発性メモリの全てのデータを他のメモリ又はストレージにコピーした後、新たな位置でデータを当該不揮発性メモリにコピーし、(2)当該不揮発性メモリの最後のセグメント(又はブロック)を他のメモリ又はストレージにコピーした後、不揮発性メモリ中のデータをセグメント(ブロック)毎に新たな位置にコピーし、最後に他のメモリ又はストレージに一時的に保存されている最後のセグメント(ブロック)を不揮発性メモリにおける新たな位置にコピーする。
ステップS340では、ユーザが不揮発性メモリにアクセスする際に、第qレベルのn個の物理単位のうちのa番目の物理単位の論理アドレスを(x/Q+y/A)%nに設定し、ただし、xは不揮発性メモリの論理アドレスであり、Qは各第qレベルの物理単位のサイズであり、yはユーザのアクセス時間であり、Aは第qレベルの物理単位に対応する時間周期である。
本実施例では、例えば、ユーザが、y時間に、論理アドレスがxのメモリにアクセスする際に、本方法により、その物理アドレスZを算出し、a番目の第1物理単位において、Z=(x/N+y/A)%nを算出し、b番目の第2物理単位において、Z=(x/M+y/B)%mを算出し、c番目の第3物理単位において、Z=(x/K+y/C)%k、・・・、これによって類推する。a、b、c、・・・このように、物理アドレスZを特定することができる。以上のアクセス方法は、ユーザによって行われてもよいし、ユーザによって行われなくてもよい。前者の場合、ユーザが上記ステップの実行を担当し、アクセス時に先に論理アドレスを物理アドレスに変換する。後者の場合、物理アドレスの交替がユーザに対して透過的であり、ユーザはアクセス時にのみ、常に論理アドレスでアクセスし、ドライバプログラム(またはオペレーティングシステム、またはコンテナ)によって物理アドレスに変換される。
本実施例の技術的解決手段によれば、同一の固定の論理アドレスに対する意図しない又は悪意な集中アクセスを、実際に各物理アドレスに均等に分散させることができ、ウェアレベリングの効果を達成することができる。従来のマッピングテーブルの方法と比較して、本発明の方法は、メモリ空間を余分に長期に亘って占有することなく、簡単な計算で論理アドレスと物理アドレスとの変換を完了することができ、効率の低いテーブルルックアップ操作を回避し、空間節約及び時間節約の効果を達成することができる。
図4に示すように、本発明の一実施例は、不揮発性メモリ向けのウェアレベリング及びアクセス方法を提供するものであり、以下のステップを含む。
ステップS31では、不揮発性メモリを論理的にp個のレベルの物理単位に分割し、不揮発性メモリは複数の第1レベルの物理単位を含み、各第p−1レベルの物理単位は複数の第pレベルの物理単位を含み、pは1より大きい正の整数である。
ステップS32では、現在の動作シーンに応じて、第qレベルの物理単位に対応する時間周期を設定する。
本実施例では、各交替物理単位は、それぞれ独立して同時に交替を行うことが好ましい。当然のことながら、セグメントのみの交替やブロックのみの交替では、ある程度ウェアレベリングを達成することができるが、同一の論理アドレスへのアクセスは、ある幾つかの物理アドレス上に固定的に分散されており、その論理アドレスを物理アドレス全体に分散させることができない。本発明は、全てのステップ又は複数のステップを組み合わせる必要がある。交替の時間間隔が短いほど、ウェアレベリングの効果が強くなり、遷移の回数も頻繁となり、外部へのサービスを一時的に停止するため、交替の時間があまり長くならず、あまり短くならず、ユースケースを実施する際に実際の状況に応じて決定する必要がある。遷移時間は、システムの低稼働期間に選択されるのが好ましい。システムが攻撃を受けた場合や、その他の必要なシーンでは、時間周期A、B、Cを短くして、ユーザによりトリガされたり、システムが自動的にトリガしたりするのが好ましい。
ステップS33では、第qレベルの物理単位に対応する時間周期が到来すると、各第qレベルの物理単位のデータを不揮発性メモリのその他の空き位置又はその他のメモリ/ストレージにコピーし、各第qレベルの物理単位のデータが交替された後の位置に従って、不揮発性メモリのその他の空き位置又はその他のメモリ/ストレージから不揮発性メモリにコピーし、qは1からpのいずれかの正の整数である。
本実施例では、一つの第qレベルの物理単位のデータを不揮発性メモリのその他の空き位置又はその他のメモリ/ストレージにコピーし、他の第qレベルの物理単位のデータを一つずつ不揮発性メモリ上の直前のコピーデータの位置にコピーし、また、不揮発性メモリのその他の空き位置又はその他のメモリ/ストレージ中のデータを不揮発性メモリ上の直前のコピーデータの位置にコピーする、という交替方式をさらに提供する。
本実施例では、(1)当該不揮発性メモリの全てのデータを他のメモリ又はストレージにコピーした後、新たな位置でデータを当該不揮発性メモリにコピーし、(2)当該不揮発性メモリの最後のセグメント(又はブロック)を他のメモリ又はストレージにコピーした後、不揮発性メモリ中のデータをセグメント(ブロック)毎に新たな位置にコピーし、最後に他のメモリ又はストレージに一時的に保存されている最後のセグメント(ブロック)を不揮発性メモリにおける新たな位置にコピーする。
ステップS340では、ユーザが不揮発性メモリにアクセスする際に、第qレベルのn個の物理単位のうちのa番目の物理単位の論理アドレスを(x/Q+y/A)%nに設定し、ただし、xは不揮発性メモリの論理アドレスであり、Qは各第qレベルの物理単位のサイズであり、yはユーザのアクセス時間であり、Aは第qレベルの物理単位に対応する時間周期である。
本実施例では、例えば、ユーザが、y時間に、論理アドレスがxのメモリにアクセスする際に、本方法により、その物理アドレスZを算出し、a番目の第1物理単位において、Z=(x/N+y/A)%nを算出し、b番目の第2物理単位において、Z=(x/M+y/B)%mを算出し、c番目の第3物理単位において、Z=(x/K+y/C)%k、・・・、これによって類推する。a、b、c、・・・このように、物理アドレスZを特定することができる。以上のアクセス方法は、ユーザによって行われてもよいし、ユーザによって行われなくてもよい。前者の場合、ユーザが上記ステップの実行を担当し、アクセス時に先に論理アドレスを物理アドレスに変換する。後者の場合、物理アドレスの交替がユーザに対して透過的であり、ユーザはアクセス時にのみ、常に論理アドレスでアクセスし、ドライバプログラム(またはオペレーティングシステム、またはコンテナ)によって物理アドレスに変換される。
本実施例の技術的解決手段によれば、同一の固定の論理アドレスに対する意図しない又は悪意な集中アクセスを、実際に各物理アドレスに均等に分散させることができ、ウェアレベリングの効果を達成することができる。従来のマッピングテーブルの方法と比較して、本発明の方法は、メモリ空間を余分に長期に亘って占有することなく、簡単な計算で論理アドレスと物理アドレスとの変換を完了することができ、効率の低いテーブルルックアップ操作を回避し、空間節約及び時間節約の効果を達成することができる。
図5に本実施例の具体例を示す。
(1)交替周期Aは月である。交替周期Bは年である。当該不揮発性メモリは、論理的に3つのセグメントに区分されており、セグメント毎に10個のブロックがある。交替方式は順次に一つずつ交替することである。
(2)毎月の最後の1秒に、不揮発性メモリの3つのセグメントが交替され、すなわち、セグメント3のコンテンツが他のメモリに一時的に書き込まれ保存され、セグメント2のコンテンツがセグメント3の位置に書き込まれ、セグメント1のコンテンツがセグメント2の位置に書き込まれ、他のメモリに一時的に保存されているコンテンツがセグメント1の位置に書き込まれる。
(3)毎年の最後の1秒に、不揮発性メモリの3つのセグメントについて、ブロック毎に交替され、すなわち、ブロック1のコンテンツがブロック2の位置に書き込まれ、ブロック2のコンテンツがブロック3の位置に書き込まれ、・・・、これによって類推する。
(4)下記のステップにおいて、具体的な時間における、論理アドレスから物理アドレスへの変換を示す。
(5)ユーザが2017年3月にアクセスした論理アドレスは16番目のブロックであり、それは2番目のセグメント内の7番目のブロックになる。3月であるため、そのセグメント番号を後ろに3回シフトすると、依然として2番目のセグメントのままである。2017年であるため、そのブロック番号を後ろに2017回シフトすると、セグメント内の4番目のブロックになる。以上により、そのブロックの物理アドレスは、2番目のセグメント内の4番目のブロック、すなわち13番目のブロックになる。
(6)ユーザが2017年4月にアクセスした論理アドレスは同様に16番目のブロックである。4月であるため、そのセグメント番号を後ろに4回循環してシフトすると、3番目のセグメントになる。2017年であるため、そのブロック番号を後ろに2017回シフトすると、セグメント内の4番目のブロックになる。以上により、そのブロックの物理アドレスは、3番目のセグメント内の4番目のブロック、すなわち、23番目のブロックになる。
(7)ユーザが2017年4月にアクセスした論理アドレスは同様に16番目のブロックである。4月であるため、そのセグメント番号を後ろに4回循環してシフトすると、3番目のセグメントになる。2017年であるため、そのブロック番号を後ろに2017回シフトすると、セグメント内の4番目のブロックになる。以上により、そのブロックの物理アドレスは、3番目のセグメント内の4番目のブロック、すなわち、23番目のブロックになる。
(8)ユーザが2017年5月にアクセスした論理アドレスは同様に16番目のブロックである。5月であるため、そのセグメント番号を後ろに5回循環してシフトすると、1番目のセグメントになる。2017年であるため、そのブロック番号を後ろに2017回シフトすると、セグメント内の4番目のブロックになる。以上により、そのブロックの物理アドレスは、1番目のセグメント内の4番目のブロック、すなわち、3番目のブロックになる。
(9)ユーザが2018年5月にアクセスした論理アドレスは同様に16番目のブロックである。5月であるため、そのセグメント番号を後ろに5回循環してシフトすると、1番目のセグメントになる。2018年であるため、そのブロック番号を後ろに2018回シフトすると、セグメント内の5番目のブロックになる。以上により、そのブロックの物理アドレスは、1番目のセグメント内の5番目のブロック、すなわち、4番目のブロックになる。
(10)同様に、論理アドレスが22のブロックは、2017年3月のときの物理アドレスが29番目のブロックになり、2017年4月のときの物理アドレスが9番目のブロックになり、2017年5月のときの物理アドレスが19番目のブロックになり、2018年6月のときの物理アドレスが10番目のブロックになる。
図6に示すように、本発明の一実施例は、データ交替デバイスを提供するものである。不揮発性メモリ510と、プロセッサ520と、記憶部530と、通信バス540とを備え、通信バス540はプロセッサ520と記憶部530との間の接続通信を実現するために用いられ、プロセッサ520は記憶部530に格納されているデータ交替プログラムを実行するために用いられ、以下のステップを実現する。
不揮発性メモリを論理的にp個のレベルの物理単位に分割し、不揮発性メモリは複数の第1レベルの物理単位を含み、各第p−1レベルの物理単位は複数の第pレベルの物理単位を含み、pは1より大きい正の整数である。
本実施例では、例えば、不揮発性メモリを論理的にn個の第1物理単位に分割し、そのサイズをNとし、各第1物理単位をm個の第2物理単位に分割し、そのサイズをMとし、各第2物理単位をk個の第3物理単位に分割し、そのサイズをKとし、・・・、これによって類推する。
第qレベルの物理単位に対応する時間周期が到来すると、各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換し、qは1からpのいずれかの正の整数である。
本実施例では、第1物理単位の交替時間周期をAとし、第2物理単位の交替時間周期をBとし、第3物理単位の交替時間周期をCとし、・・・、これによって類推する。本実施例では、例えば、時間周期Aが到来すると、n個の第1物理単位が交替され、時間周期Bが到来すると、各第1物理単位におけるm個の第2物理単位が交替され、時間周期Cが到来すると、各第2物理単位におけるk個の第3物理単位が交替され、・・・、これによって類推する。交替後のデータ位置が変化し、具体的には図2に示すようになる。
本実施例では、交替の物理単位は、(1)セグメント、(2)ブロック、(3)ページ、(4)数バイト(B)、(5)数キロバイト(KB)、(6)数メガバイト(MB)、(7)数ギガバイト(GB)、及び(8)その他のメモリ容量単位を含むが、これらに限定されない。交替の時間単位は、(1)数年、(2)数四半期、(3)数か月、(4)数週、(5)数日、(6)数時間、(7)数分、(8)数秒、及び(9)その他の旧暦、チベット歴の時間単位を含むが、これらに限定されない。交替の方式は、(1)順次に一つずつ交替すること、(2)逆順に一つずつ交替すること、(3)順次に間引きに交替すること、(4)逆順に間引きに交替すること、(5)擬似乱数的に交替すること、(6)その他の交替方式を含むが、これらに限定されない。
本実施例の技術的解決手段によれば、同一の固定の論理アドレスに対する意図しない又は悪意な集中アクセスを、実際に各物理アドレスに均等に分散させることができ、ウェアレベリングの効果を達成することができる。従来のマッピングテーブルの方法と比較して、本発明の方法は、メモリ空間を余分に長期に亘って占有することなく、簡単な計算で論理アドレスと物理アドレスとの変換を完了することができ、効率の低いテーブルルックアップ操作を回避し、空間節約及び時間節約の効果を達成することができる。
図6に示すように、本発明の一実施例は、データ交替デバイスを提供するものである。不揮発性メモリ510と、プロセッサ520と、記憶部530と、通信バス540とを備え、通信バス540はプロセッサ520と記憶部530との間の接続通信を実現するために用いられ、プロセッサ520は記憶部530に格納されているデータ交替プログラムを実行するために用いられ、以下のステップを実現する。不揮発性メモリを論理的にp個のレベルの物理単位に分割し、不揮発性メモリは複数の第1レベルの物理単位を含み、各第p−1レベルの物理単位は複数の第pレベルの物理単位を含み、pは1より大きい正の整数である。
現在の動作シーンに応じて、第qレベルの物理単位に対応する時間周期を設定する。
本実施例では、各交替物理単位は、それぞれ独立して同時に交替を行うことが好ましい。当然のことながら、セグメントのみの交替やブロックのみの交替では、ある程度ウェアレベリングを達成することができるが、同一の論理アドレスへのアクセスは、ある幾つかの物理アドレス上に固定的に分散されており、その論理アドレスを物理アドレス全体に分散させることができない。本発明は、全てのステップ又は複数のステップを組み合わせる必要がある。交替の時間間隔が短いほど、ウェアレベリングの効果が強くなり、遷移の回数も頻繁となり、外部へのサービスを一時的に停止するため、交替の時間があまり長くならず、あまり短くならず、ユースケースを実施する際に実際の状況に応じて決定する必要がある。遷移時間は、システムの低稼働期間に選択されるのが好ましい。システムが攻撃を受けた場合や、その他の必要なシーンでは、時間周期A、B、Cを短くして、ユーザによりトリガされたり、システムが自動的にトリガしたりするのが好ましい。
第qレベルの物理単位に対応する時間周期が到来すると、各第qレベルの物理単位のデータをストレージまたはメモリにコピーし、各第qレベルの物理単位のデータが交替された後の位置に従って、ストレージまたはメモリから不揮発性メモリにコピーし、qは1からpのいずれかの正の整数である。
本実施例では、一つの第qレベルの物理単位のデータをストレージまたはメモリにコピーし、他の第qレベルの物理単位のデータを一つずつ不揮発性メモリ上の直前のコピーデータの位置にコピーし、また、ストレージまたはメモリ中のデータを不揮発性メモリ上の直前のコピーデータの位置にコピーする、という交替方式をさらに提供する。
本実施例では、(1)当該不揮発性メモリの全てのデータを他のメモリ又はストレージにコピーした後、新たな位置でデータを当該不揮発性メモリにコピーし、(2)当該不揮発性メモリの最後のセグメント(又はブロック)を他のメモリ又はストレージにコピーした後、不揮発性メモリ中のデータをセグメント(ブロック)毎に新たな位置にコピーし、最後に他のメモリ又はストレージに一時的に保存されている最後のセグメント(ブロック)を不揮発性メモリにおける新たな位置にコピーする。
ユーザが不揮発性メモリにアクセスする際に、第qレベルのn個の物理単位のうちのa番目の物理単位の論理アドレスを(x/Q+y/A)%nに設定し、ただし、xは不揮発性メモリの論理アドレスであり、Qは各第qレベルの物理単位のサイズであり、yはユーザのアクセス時間であり、Aは第qレベルの物理単位に対応する時間周期である。
本実施例では、例えば、ユーザが、y時間に、論理アドレスがxのメモリにアクセスする際に、本方法により、その物理アドレスZを算出し、a番目の第1物理単位において、Z=(x/N+y/A)%nを算出し、b番目の第2物理単位において、Z=(x/M+y/B)%mを算出し、c番目の第3物理単位において、Z=(x/K+y/C)%k、・・・、これによって類推する。a、b、c、・・・このように、物理アドレスZを特定することができる。以上のアクセス方法は、ユーザによって行われてもよいし、ユーザによって行われなくてもよい。前者の場合、ユーザが上記ステップの実行を担当し、アクセス時に先に論理アドレスを物理アドレスに変換する。後者の場合、物理アドレスの交替がユーザに対して透過的であり、ユーザはアクセス時にのみ、常に論理アドレスでアクセスし、ドライバプログラム(またはオペレーティングシステム、またはコンテナ)によって物理アドレスに変換される。
本実施例の技術的解決手段によれば、同一の固定の論理アドレスに対する意図しない又は悪意な集中アクセスを、実際に各物理アドレスに均等に分散させることができ、ウェアレベリングの効果を達成することができる。従来のマッピングテーブルの方法と比較して、本発明の方法は、メモリ空間を余分に長期に亘って占有することなく、簡単な計算で論理アドレスと物理アドレスとの変換を完了することができ、効率の低いテーブルルックアップ操作を回避し、空間節約及び時間節約の効果を達成することができる。
図7に示すように、本発明の一実施例は、不揮発性メモリ710と、プロセッサ720とを備える不揮発性メモリ向けのウェアレベリング及びアクセスデバイスを提供するものである。
プロセッサ720は不揮発性メモリ向けのウェアレベリング及びアクセスプログラムを実行するために用いられ、以下のステップを実現する。不揮発性メモリを論理的にp個のレベルの物理単位に分割し、不揮発性メモリは複数の第1レベルの物理単位を含み、各第p−1レベルの物理単位は複数の第pレベルの物理単位を含み、pは1より大きい正の整数である。
本実施例では、例えば、不揮発性メモリを論理的にn個の第1物理単位に分割し、そのサイズをNとし、各第1物理単位をm個の第2物理単位に分割し、そのサイズをMとし、各第2物理単位をk個の第3物理単位に分割し、そのサイズをKとし、・・・、これによって類推する。
第qレベルの物理単位に対応する時間周期が到来すると、各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換し、qは1からpのいずれかの正の整数である。
本実施例では、第1物理単位の交替時間周期をAとし、第2物理単位の交替時間周期をBとし、第3物理単位の交替時間周期をCとし、・・・、これによって類推する。本実施例では、例えば、時間周期Aが到来すると、n個の第1物理単位が交替され、時間周期Bが到来すると、各第1物理単位におけるm個の第2物理単位が交替され、時間周期Cが到来すると、各第2物理単位におけるk個の第3物理単位が交替され、・・・、これによって類推する。交替後のデータ位置が変化し、具体的には図2に示すようになる。
本実施例では、交替の物理単位は、(1)セグメント、(2)ブロック、(3)ページ、(4)数バイト(B)、(5)数キロバイト(KB)、(6)数メガバイト(MB)、(7)数ギガバイト(GB)、及び(8)その他のメモリ容量単位を含むが、これらに限定されない。交替の時間単位は、(1)数年、(2)数四半期、(3)数か月、(4)数週、(5)数日、(6)数時間、(7)数分、(8)数秒、及び(9)その他の旧暦、チベット歴の時間単位を含むが、これらに限定されない。交替の方式は、(1)順次に一つずつ交替すること、(2)逆順に一つずつ交替すること、(3)順次に間引きに交替すること、(4)逆順に間引きに交替すること、(5)擬似乱数的に交替すること、(6)その他の交替方式を含むが、これらに限定されない。
本実施例の技術的解決手段によれば、同一の固定の論理アドレスに対する意図しない又は悪意な集中アクセスを、実際に各物理アドレスに均等に分散させることができ、ウェアレベリングの効果を達成することができる。従来のマッピングテーブルの方法と比較して、本発明の方法は、メモリ空間を余分に長期に亘って占有することなく、簡単な計算で論理アドレスと物理アドレスとの変換を完了することができ、効率の低いテーブルルックアップ操作を回避し、空間節約及び時間節約の効果を達成することができる。
図7に示すように、本発明の一実施例は、不揮発性メモリ710と、プロセッサ720とを備える不揮発性メモリ向けのウェアレベリング及びアクセスデバイスを提供するものである。
プロセッサ720は不揮発性メモリ向けのウェアレベリング及びアクセスプログラムを実行するために用いられ、以下のステップを実現する。不揮発性メモリを論理的にp個のレベルの物理単位に分割し、不揮発性メモリは複数の第1レベルの物理単位を含み、各第p−1レベルの物理単位は複数の第pレベルの物理単位を含み、pは1より大きい正の整数である。
現在の動作シーンに応じて、第qレベルの物理単位に対応する時間周期を設定する。
本実施例では、各交替物理単位は、それぞれ独立して同時に交替を行うことが好ましい。当然のことながら、セグメントのみの交替やブロックのみの交替では、ある程度ウェアレベリングを達成することができるが、同一の論理アドレスへのアクセスは、ある幾つかの物理アドレス上に固定的に分散されており、その論理アドレスを物理アドレス全体に分散させることができない。本発明は、全てのステップ又は複数のステップを組み合わせる必要がある。交替の時間間隔が短いほど、ウェアレベリングの効果が強くなり、遷移の回数も頻繁となり、外部へのサービスを一時的に停止するため、交替の時間があまり長くならず、あまり短くならず、ユースケースを実施する際に実際の状況に応じて決定する必要がある。遷移時間は、システムの低稼働期間に選択されるのが好ましい。システムが攻撃を受けた場合や、その他の必要なシーンでは、時間周期A、B、Cを短くして、ユーザによりトリガされたり、システムが自動的にトリガしたりするのが好ましい。
第qレベルの物理単位に対応する時間周期が到来すると、各第qレベルの物理単位のデータを不揮発性メモリのその他の空き位置又はその他のメモリ/ストレージにコピーし、各第qレベルの物理単位のデータが交替された後の位置に従って、不揮発性メモリのその他の空き位置又はその他のメモリ/ストレージから不揮発性メモリにコピーし、qは1からpのいずれかの正の整数である。
本実施例では、一つの第qレベルの物理単位のデータを不揮発性メモリのその他の空き位置又はその他のメモリ/ストレージにコピーし、他の第qレベルの物理単位のデータを一つずつ不揮発性メモリ上の直前のコピーデータの位置にコピーし、また、不揮発性メモリのその他の空き位置又はその他のメモリ/ストレージ中のデータを不揮発性メモリ上の直前のコピーデータの位置にコピーする、という交替方式をさらに提供する。
本実施例では、(1)当該不揮発性メモリの全てのデータを他のメモリ又はストレージにコピーした後、新たな位置でデータを当該不揮発性メモリにコピーし、(2)当該不揮発性メモリの最後のセグメント(又はブロック)を他のメモリ又はストレージにコピーした後、不揮発性メモリ中のデータをセグメント(ブロック)毎に新たな位置にコピーし、最後に他のメモリ又はストレージに一時的に保存されている最後のセグメント(ブロック)を不揮発性メモリにおける新たな位置にコピーする。
ユーザが不揮発性メモリにアクセスする際に、第qレベルのn個の物理単位のうちのa番目の物理単位の論理アドレスを(x/Q+y/A)%nに設定し、ただし、xは不揮発性メモリの論理アドレスであり、Qは各第qレベルの物理単位のサイズであり、yはユーザのアクセス時間であり、Aは第qレベルの物理単位に対応する時間周期である。
本実施例では、例えば、ユーザが、y時間に、論理アドレスがxのメモリにアクセスする際に、本方法により、その物理アドレスZを算出し、a番目の第1物理単位において、Z=(x/N+y/A)%nを算出し、b番目の第2物理単位において、Z=(x/M+y/B)%mを算出し、c番目の第3物理単位において、Z=(x/K+y/C)%k、・・・、これによって類推する。a、b、c、・・・このように、物理アドレスZを特定することができる。以上のアクセス方法は、ユーザによって行われてもよいし、ユーザによって行われなくてもよい。前者の場合、ユーザが上記ステップの実行を担当し、アクセス時に先に論理アドレスを物理アドレスに変換する。後者の場合、物理アドレスの交替がユーザに対して透過的であり、ユーザはアクセス時にのみ、常に論理アドレスでアクセスし、ドライバプログラム(またはオペレーティングシステム、またはコンテナ)によって物理アドレスに変換される。
本実施例の技術的解決手段によれば、同一の固定の論理アドレスに対する意図しない又は悪意な集中アクセスを、実際に各物理アドレスに均等に分散させることができ、ウェアレベリングの効果を達成することができる。従来のマッピングテーブルの方法と比較して、本発明の方法は、メモリ空間を余分に長期に亘って占有することなく、簡単な計算で論理アドレスと物理アドレスとの変換を完了することができ、効率の低いテーブルルックアップ操作を回避し、空間節約及び時間節約の効果を達成することができる。
図5に本実施例の具体例を示す。
(1)交替周期Aは月である。交替周期Bは年である。当該不揮発性メモリは、論理的に3つのセグメントに区分されており、セグメント毎に10個のブロックがある。交替方式は順次に一つずつ交替することである。
(2)毎月の最後の1秒に、不揮発性メモリの3つのセグメントが交替され、すなわち、セグメント3のコンテンツが他のメモリに一時的に書き込まれ保存され、セグメント2のコンテンツがセグメント3の位置に書き込まれ、セグメント1のコンテンツがセグメント2の位置に書き込まれ、他のメモリに一時的に保存されているコンテンツがセグメント1の位置に書き込まれる。
(3)毎年の最後の1秒に、不揮発性メモリの3つのセグメントについて、ブロック毎に交替され、すなわち、ブロック1のコンテンツがブロック2の位置に書き込まれ、ブロック2のコンテンツがブロック3の位置に書き込まれ、・・・、これによって類推する。
(4)下記のステップにおいて、具体的な時間における、論理アドレスから物理アドレスへの変換を示す。
(5)ユーザが2017年3月にアクセスした論理アドレスは16番目のブロックであり、それは2番目のセグメント内の7番目のブロックになる。3月であるため、そのセグメント番号を後ろに3回シフトすると、依然として2番目のセグメントのままである。2017年であるため、そのブロック番号を後ろに2017回シフトすると、セグメント内の4番目のブロックになる。以上により、そのブロックの物理アドレスは、2番目のセグメント内の4番目のブロック、すなわち13番目のブロックになる。
(6)ユーザが2017年4月にアクセスした論理アドレスは同様に16番目のブロックである。4月であるため、そのセグメント番号を後ろに4回循環してシフトすると、3番目のセグメントになる。2017年であるため、そのブロック番号を後ろに2017回シフトすると、セグメント内の4番目のブロックになる。以上により、そのブロックの物理アドレスは、3番目のセグメント内の4番目のブロック、すなわち、23番目のブロックになる。
(7)ユーザが2017年4月にアクセスした論理アドレスは同様に16番目のブロックである。4月であるため、そのセグメント番号を後ろに4回循環してシフトすると、3番目のセグメントになる。2017年であるため、そのブロック番号を後ろに2017回シフトすると、セグメント内の4番目のブロックになる。以上により、そのブロックの物理アドレスは、3番目のセグメント内の4番目のブロック、すなわち、23番目のブロックになる。
(8)ユーザが2017年5月にアクセスした論理アドレスは同様に16番目のブロックである。5月であるため、そのセグメント番号を後ろに5回循環してシフトすると、1番目のセグメントになる。2017年であるため、そのブロック番号を後ろに2017回シフトすると、セグメント内の4番目のブロックになる。以上により、そのブロックの物理アドレスは、1番目のセグメント内の4番目のブロック、すなわち、3番目のブロックになる。
(9)ユーザが2018年5月にアクセスした論理アドレスは同様に16番目のブロックである。5月であるため、そのセグメント番号を後ろに5回循環してシフトすると、1番目のセグメントになる。2018年であるため、そのブロック番号を後ろに2018回シフトすると、セグメント内の5番目のブロックになる。以上により、そのブロックの物理アドレスは、1番目のセグメント内の5番目のブロック、すなわち、4番目のブロックになる。
(10)同様に、論理アドレスが22のブロックは、2017年3月のときの物理アドレスが29番目のブロックになり、2017年4月のときの物理アドレスが9番目のブロックになり、2017年5月のときの物理アドレスが19番目のブロックになり、2018年6月のときの物理アドレスが10番目のブロックになる。
本発明の一実施例は、一つ又は複数のプロセッサによって実行され、以下のステップを実現する一つ又は複数のプログラムを記憶したコンピュータ読み取り可能な記憶媒体を提供するものである。
不揮発性メモリを論理的にp個のレベルの物理単位に分割し、不揮発性メモリは複数の第1レベルの物理単位を含み、各第p−1レベルの物理単位は複数の第pレベルの物理単位を含み、pは1より大きい正の整数である。
本実施例では、例えば、不揮発性メモリを論理的にn個の第1物理単位に分割し、そのサイズをNとし、各第1物理単位をm個の第2物理単位に分割し、そのサイズをMとし、各第2物理単位をk個の第3物理単位に分割し、そのサイズをKとし、・・・、これによって類推する。
第qレベルの物理単位に対応する時間周期が到来すると、各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換し、qは1からpのいずれかの正の整数である。
本実施例では、第1物理単位の交替時間周期をAとし、第2物理単位の交替時間周期をBとし、第3物理単位の交替時間周期をCとし、・・・、これによって類推する。本実施例では、例えば、時間周期Aが到来すると、n個の第1物理単位が交替され、時間周期Bが到来すると、各第1物理単位におけるm個の第2物理単位が交替され、時間周期Cが到来すると、各第2物理単位におけるk個の第3物理単位が交替され、・・・、これによって類推する。交替後のデータ位置が変化し、具体的には図2に示すようになる。
本実施例では、交替の物理単位は、(1)セグメント、(2)ブロック、(3)ページ、(4)数バイト(B)、(5)数キロバイト(KB)、(6)数メガバイト(MB)、(7)数ギガバイト(GB)、及び(8)その他のメモリ容量単位を含むが、これらに限定されない。交替の時間単位は、(1)数年、(2)数四半期、(3)数か月、(4)数週、(5)数日、(6)数時間、(7)数分、(8)数秒、及び(9)その他の旧暦、チベット歴の時間単位を含むが、これらに限定されない。交替の方式は、(1)順次に一つずつ交替すること、(2)逆順に一つずつ交替すること、(3)順次に間引きに交替すること、(4)逆順に間引きに交替すること、(5)擬似乱数的に交替すること、(6)その他の交替方式を含むが、これらに限定されない。
本実施例の技術的解決手段によれば、同一の固定の論理アドレスに対する意図しない又は悪意な集中アクセスを、実際に各物理アドレスに均等に分散させることができ、ウェアレベリングの効果を達成することができる。従来のマッピングテーブルの方法と比較して、本発明の方法は、メモリ空間を余分に長期に亘って占有することなく、簡単な計算で論理アドレスと物理アドレスとの変換を完了することができ、効率の低いテーブルルックアップ操作を回避し、空間節約及び時間節約の効果を達成することができる。
当業者であれば理解されるように、上記に開示された方法における全て又はいくつかのステップ、システム、装置における機能モジュール/ユニットはソフトウェア、ファームウェア、ハードウェア及びそれらの適切な組み合わせとして実施されてもよい。ハードウェアによる実施形態では、上記の説明で言及された機能モジュール/ユニット間の切り分けは、必ずしも物理的な構成要素の切り分けに対応するわけではなく、例えば、1つの物理的な構成要素は複数の機能を有していてもよいし、1つの機能又はステップはいくつかの物理的な構成要素が協働して実行されるものであってもよい。いくつかの物理的な構成要素又は全ての物理的な構成要素はプロセッサ、例えば中央処理装置、デジタル信号プロセッサ又はマイクロプロセッサが実行するソフトウェア、又はハードウェア、或いは、例えば専用の集積回路といった集積回路として実施されてもよい。このようなソフトウェアはコンピュータ読み取り可能な媒体に分布されてもよい。コンピュータ読み取り可能な媒体は、コンピュータ記憶媒体(又は非一時的な媒体)及び通信媒体(又は一時的な媒体)を含むことができる。当業者に一般的に知られているように、コンピュータ記憶媒体という用語は、情報(例えばコンピュータ読み取り可能な命令、データ構造、プログラムモジュール、その他のデータ)を記憶するためのいずれの方法や技術において実施される揮発性、不揮発性、着脱可能、着脱不可な媒体を含む。コンピュータ記憶媒体はRAM、ROM、EEPROM、フラッシュメモリ又は他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)又はその他の光ディスクストレージ、磁気カートリッジ、磁気テープ、磁気ディスクストレージ又はその他の磁気記憶装置、又は所望の情報を記憶しかつコンピュータによりアクセス可能な任意の他の媒体を含むが、それらに限定されない。また、当業者に一般的に知られているように、通信媒体とは、通常、コンピュータ読み取り可能な命令、データ構造、プログラムモジュール、又は搬送波やその他の伝送機構などの変調データ信号における他のデータを含み、任意の情報伝送媒体を含み得る。
以上、本発明の実施例について図面を参照して説明したが、本発明は上述した具体的な実施の形態に限定されるものではなく、上述した具体的な実施の形態は例示であって制限的なものではなく、当業者が本発明の示唆を受け、本発明の要旨及び特許請求の範囲の保護範囲を逸脱しない範囲において、多くの形態を採り得ることはもちろんであり、それらはいずれも本発明の保護範囲に属する。
上記目的を達成するために、本発明は、不揮発性メモリ向けのウェアレベリング及びアクセスデバイスであって、不揮発性メモリと、プロセッサと、記憶部と、通信バスとを備え、前記通信バスはプロセッサと記憶部との間の接続通信を実現するために用いられ、前記プロセッサは記憶部に格納されているデータ交替プログラムを実行するために用いられ、不揮発性メモリを論理的にp個のレベルの物理単位に分割するステップと、第qレベルの物理単位に対応する時間周期が到来すると、各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換するステップとを実現し、前記不揮発性メモリは複数の第1レベルの物理単位を含み、各第p−1レベルの物理単位は複数の第pレベルの物理単位を含み、pは1より大きい正の整数であり、qは1からpのいずれかの正の整数である、不揮発性メモリ向けのウェアレベリング及びアクセスデバイスを提供する。
ステップS34では、ユーザが不揮発性メモリにアクセスする際に、第qレベルのn個の物理単位のうちのa番目の物理単位の論理アドレスを(x/Q+y/A)%nに設定し、ただし、xは不揮発性メモリの論理アドレスであり、Qは各第qレベルの物理単位のサイズであり、yはユーザのアクセス時間であり、Aは第qレベルの物理単位に対応する時間周期である。
図5に本実施例の具体例を示す。
(1)交替周期Aは月である。交替周期Bは年である。当該不揮発性メモリは、論理的に3つのセグメントに区分されており、セグメント毎に10個のブロックがある。交替方式は順次に一つずつ交替することである。
(2)毎月の最後の1秒に、不揮発性メモリの3つのセグメントが交替され、すなわち、セグメント3のコンテンツが他のメモリに一時的に書き込まれ保存され、セグメント2のコンテンツがセグメント3の位置に書き込まれ、セグメント1のコンテンツがセグメント2の位置に書き込まれ、他のメモリに一時的に保存されているコンテンツがセグメント1の位置に書き込まれる。
(3)毎年の最後の1秒に、不揮発性メモリの3つのセグメントについて、ブロック毎に交替され、すなわち、ブロック1のコンテンツがブロック2の位置に書き込まれ、ブロック2のコンテンツがブロック3の位置に書き込まれ、・・・、これによって類推する。
(4)下記のステップにおいて、具体的な時間における、論理アドレスから物理アドレスへの変換を示す。
(5)ユーザが2017年3月にアクセスした論理アドレスは16番目のブロックであり、それは2番目のセグメント内の7番目のブロックになる。3月であるため、そのセグメント番号を後ろに3回シフトすると、依然として2番目のセグメントのままである。2017年であるため、そのブロック番号を後ろに2017回シフトすると、セグメント内の4番目のブロックになる。以上により、そのブロックの物理アドレスは、2番目のセグメント内の4番目のブロック、すなわち13番目のブロックになる。
(6)ユーザが2017年4月にアクセスした論理アドレスは同様に16番目のブロックである。4月であるため、そのセグメント番号を後ろに4回循環してシフトすると、3番目のセグメントになる。2017年であるため、そのブロック番号を後ろに2017回シフトすると、セグメント内の4番目のブロックになる。以上により、そのブロックの物理アドレスは、3番目のセグメント内の4番目のブロック、すなわち、23番目のブロックになる
(7)ユーザが2017年5月にアクセスした論理アドレスは同様に16番目のブロックである。5月であるため、そのセグメント番号を後ろに5回循環してシフトすると、1番目のセグメントになる。2017年であるため、そのブロック番号を後ろに2017回シフトすると、セグメント内の4番目のブロックになる。以上により、そのブロックの物理アドレスは、1番目のセグメント内の4番目のブロック、すなわち、3番目のブロックになる。
(8)ユーザが2018年5月にアクセスした論理アドレスは同様に16番目のブロックである。5月であるため、そのセグメント番号を後ろに5回循環してシフトすると、1番目のセグメントになる。2018年であるため、そのブロック番号を後ろに2018回シフトすると、セグメント内の5番目のブロックになる。以上により、そのブロックの物理アドレスは、1番目のセグメント内の5番目のブロック、すなわち、4番目のブロックになる。
(9)同様に、論理アドレスが22のブロックは、2017年3月のときの物理アドレスが29番目のブロックになり、2017年4月のときの物理アドレスが9番目のブロックになり、2017年5月のときの物理アドレスが19番目のブロックになり、2018年6月のときの物理アドレスが10番目のブロックになる。
図5に本実施例の具体例を示す。
(1)交替周期Aは月である。交替周期Bは年である。当該不揮発性メモリは、論理的に3つのセグメントに区分されており、セグメント毎に10個のブロックがある。交替方式は順次に一つずつ交替することである。
(2)毎月の最後の1秒に、不揮発性メモリの3つのセグメントが交替され、すなわち、セグメント3のコンテンツが他のメモリに一時的に書き込まれ保存され、セグメント2のコンテンツがセグメント3の位置に書き込まれ、セグメント1のコンテンツがセグメント2の位置に書き込まれ、他のメモリに一時的に保存されているコンテンツがセグメント1の位置に書き込まれる。
(3)毎年の最後の1秒に、不揮発性メモリの3つのセグメントについて、ブロック毎に交替され、すなわち、ブロック1のコンテンツがブロック2の位置に書き込まれ、ブロック2のコンテンツがブロック3の位置に書き込まれ、・・・、これによって類推する。
(4)下記のステップにおいて、具体的な時間における、論理アドレスから物理アドレスへの変換を示す。
(5)ユーザが2017年3月にアクセスした論理アドレスは16番目のブロックであり、それは2番目のセグメント内の7番目のブロックになる。3月であるため、そのセグメント番号を後ろに3回シフトすると、依然として2番目のセグメントのままである。2017年であるため、そのブロック番号を後ろに2017回シフトすると、セグメント内の4番目のブロックになる。以上により、そのブロックの物理アドレスは、2番目のセグメント内の4番目のブロック、すなわち13番目のブロックになる。
(6)ユーザが2017年4月にアクセスした論理アドレスは同様に16番目のブロックである。4月であるため、そのセグメント番号を後ろに4回循環してシフトすると、3番目のセグメントになる。2017年であるため、そのブロック番号を後ろに2017回シフトすると、セグメント内の4番目のブロックになる。以上により、そのブロックの物理アドレスは、3番目のセグメント内の4番目のブロック、すなわち、23番目のブロックになる
(7)ユーザが2017年5月にアクセスした論理アドレスは同様に16番目のブロックである。5月であるため、そのセグメント番号を後ろに5回循環してシフトすると、1番目のセグメントになる。2017年であるため、そのブロック番号を後ろに2017回シフトすると、セグメント内の4番目のブロックになる。以上により、そのブロックの物理アドレスは、1番目のセグメント内の4番目のブロック、すなわち、3番目のブロックになる。
(8)ユーザが2018年5月にアクセスした論理アドレスは同様に16番目のブロックである。5月であるため、そのセグメント番号を後ろに5回循環してシフトすると、1番目のセグメントになる。2018年であるため、そのブロック番号を後ろに2018回シフトすると、セグメント内の5番目のブロックになる。以上により、そのブロックの物理アドレスは、1番目のセグメント内の5番目のブロック、すなわち、4番目のブロックになる。
(9)同様に、論理アドレスが22のブロックは、2017年3月のときの物理アドレスが29番目のブロックになり、2017年4月のときの物理アドレスが9番目のブロックになり、2017年5月のときの物理アドレスが19番目のブロックになり、2018年6月のときの物理アドレスが10番目のブロックになる。

Claims (16)

  1. 不揮発性メモリ向けのウェアレベリング及びアクセス方法であって、
    不揮発性メモリを論理的にp個のレベルの物理単位に分割し、
    第qレベルの物理単位に対応する時間周期が到来すると、各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換することを含み、
    前記不揮発性メモリは複数の第1レベルの物理単位を含み、各第p−1レベルの物理単位は複数の第pレベルの物理単位を含み、pは1より大きい正の整数であり、qは1からpのいずれかの正の整数である、不揮発性メモリ向けのウェアレベリング及びアクセス方法。
  2. 前記各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換することは、前記各第qレベルの物理単位のデータをストレージまたはメモリにコピーし、前記各第qレベルの物理単位のデータが交替された後の位置に従って、前記ストレージまたは前記メモリから前記不揮発性メモリにコピーすることを含む、請求項1に記載の方法。
  3. 前記各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換することは、前記各第qレベルの物理単位のデータを前記不揮発性メモリのその他の空き位置又はその他のメモリ/ストレージにコピーし、前記各第qレベルの物理単位のデータが交替された後の位置に従って、前記不揮発性メモリのその他の空き位置又はその他のメモリ/ストレージから前記不揮発性メモリにコピーすることを含む、請求項1に記載の方法。
  4. 前記各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換することは、一つの第qレベルの物理単位のデータをストレージまたはメモリにコピーし、他の第qレベルの物理単位のデータを一つずつ前記不揮発性メモリ上の直前のコピーデータの位置にコピーし、また、前記ストレージまたは前記メモリ中のデータを前記不揮発性メモリ上の直前のコピーデータの位置にコピーすることを含む、請求項1に記載の方法。
  5. 前記各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換することは、一つの第qレベルの物理単位のデータを前記不揮発性メモリのその他の空き位置又はその他のメモリ/ストレージにコピーし、他の第qレベルの物理単位のデータを一つずつ前記不揮発性メモリ上の直前のコピーデータの位置にコピーし、また、前記不揮発性メモリのその他の空き位置又はその他のメモリ/ストレージ中のデータを前記不揮発性メモリ上の直前のコピーデータの位置にコピーすることを含む、請求項1に記載の方法。
  6. 前記各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換する前に、現在の動作シーンに応じて、前記第qレベルの物理単位に対応する時間周期を設定することをさらに含む、請求項1に記載の方法。
  7. ユーザが前記不揮発性メモリにアクセスする際に、第qレベルのn個の物理単位のうちのa番目の物理単位の論理アドレスを(x/Q+y/A)%nに設定することをさらに含み、ただし、xは前記不揮発性メモリの論理アドレスであり、Qは各第qレベルの物理単位のサイズであり、yは前記ユーザのアクセス時間であり、Aは前記第qレベルの物理単位に対応する時間周期である、請求項1に記載の方法。
  8. 不揮発性メモリ向けのウェアレベリング及びアクセスデバイスであって、
    不揮発性メモリと、プロセッサと、記憶部と、通信バスとを備え、
    前記通信バスはプロセッサと記憶部との間の接続通信を実現するために用いられ、
    前記プロセッサは記憶部に格納されているデータ交替プログラムを実行するために用いられ、不揮発性メモリを論理的にp個のレベルの物理単位に分割するステップと、第qレベルの物理単位に対応する時間周期が到来すると、各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換するステップとを実現し、
    前記不揮発性メモリは複数の第1レベルの物理単位を含み、各第p−1レベルの物理単位は複数の第pレベルの物理単位を含み、pは1より大きい正の整数であり、qは1からpのいずれかの正の整数である、不揮発性メモリ向けのウェアレベリング及びアクセスデバイス。
  9. 前記各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換することにおいて、前記プロセッサは前記データ交替プログラムを実行するために用いられ、
    前記各第qレベルの物理単位のデータをストレージまたはメモリにコピーし、前記各第qレベルの物理単位のデータが交替された後の位置に従って、前記ストレージまたは前記メモリから前記不揮発性メモリにコピーするステップを実現する、請求項8に記載のデバイス。
  10. 前記各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換することにおいて、前記プロセッサは前記データ交替プログラムを実行するために用いられ、
    一つの第qレベルの物理単位のデータをストレージまたはメモリにコピーし、他の第qレベルの物理単位のデータを一つずつ前記不揮発性メモリ上の直前のコピーデータの位置にコピーし、また、前記ストレージまたは前記メモリ中のデータを前記不揮発性メモリ上の直前のコピーデータの位置にコピーするステップを実現する、請求項8に記載のデバイス。
  11. 前記各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換する前に、前記プロセッサはさらに、前記データ交替プログラムを実行するために用いられ、
    現在の動作シーンに応じて、前記第qレベルの物理単位に対応する時間周期を設定するステップを実現する、請求項8に記載のデバイス。
  12. 不揮発性メモリ向けのウェアレベリング及びアクセスデバイスであって、
    不揮発性メモリと、プロセッサとを備え、
    前記プロセッサは不揮発性メモリ向けのウェアレベリング及びアクセスプログラムを実行するために用いられ、不揮発性メモリを論理的にp個のレベルの物理単位に分割するステップと、第qレベルの物理単位に対応する時間周期が到来すると、各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換するステップとを実現し、
    前記不揮発性メモリは複数の第1レベルの物理単位を含み、各第p−1レベルの物理単位は複数の第pレベルの物理単位を含み、pは1より大きい正の整数であり、qは1からpのいずれかの正の整数である、不揮発性メモリ向けのウェアレベリング及びアクセスデバイス。
  13. 前記各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換することにおいて、前記プロセッサは前記不揮発性メモリ向けのウェアレベリング及びアクセスプログラムを実行するために用いられ、
    前記各第qレベルの物理単位のデータを前記不揮発性メモリのその他の空き位置又はその他のメモリ/ストレージにコピーし、前記各第qレベルの物理単位のデータが交替された後の位置に従って、前記不揮発性メモリのその他の空き位置又はその他のメモリ/ストレージから前記不揮発性メモリにコピーするステップを実現する、請求項12に記載のデバイス。
  14. 前記各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換することにおいて、前記プロセッサは前記不揮発性メモリ向けのウェアレベリング及びアクセスプログラムを実行するために用いられ、
    一つの第qレベルの物理単位のデータをストレージまたはメモリにコピーし、他の第qレベルの物理単位のデータを一つずつ前記不揮発性メモリ上の直前のコピーデータの位置にコピーし、また、前記不揮発性メモリのその他の空き位置又はその他のメモリ/ストレージ中のデータを前記不揮発性メモリ上の直前のコピーデータの位置にコピーするステップを実現する、請求項12に記載のデバイス。
  15. 前記各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換する前に、前記プロセッサはさらに、前記不揮発性メモリ向けのウェアレベリング及びアクセスプログラムを実行するために用いられ、
    現在の動作シーンに応じて、前記第qレベルの物理単位に対応する時間周期を設定するステップを実現する、請求項12に記載のデバイス。
  16. 一つ又は複数のプログラムを記憶したコンピュータ読み取り可能な記憶媒体であって、前記一つ又は複数のプログラムは、一つ又は複数のプロセッサによって実行され、
    不揮発性メモリを論理的にp個のレベルの物理単位に分割するステップと、第qレベルの物理単位に対応する時間周期が到来すると、各第qレベルの物理単位のデータを他の第qレベルの物理単位に交換するステップとを実現し、
    前記不揮発性メモリは複数の第1レベルの物理単位を含み、各第p−1レベルの物理単位は複数の第pレベルの物理単位を含み、pは1より大きい正の整数であり、qは1からpのいずれかの正の整数である、コンピュータ読み取り可能な記憶媒体。
JP2021503050A 2018-07-20 2019-04-01 不揮発性メモリ向けのウェアレベリング及びアクセス方法、デバイス及び記憶媒体 Active JP7110479B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201810802096.1 2018-07-20
CN201810802096 2018-07-20
CN201810824443.0A CN108920386B (zh) 2018-07-20 2018-07-25 面向非易失性内存的磨损均衡及访问方法、设备和存储介质
CN201810824443.0 2018-07-25
PCT/CN2019/080815 WO2020015385A1 (zh) 2018-07-20 2019-04-01 面向非易失性内存的磨损均衡及访问方法、设备和存储介质

Publications (2)

Publication Number Publication Date
JP2021530810A true JP2021530810A (ja) 2021-11-11
JP7110479B2 JP7110479B2 (ja) 2022-08-01

Family

ID=64418021

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021503050A Active JP7110479B2 (ja) 2018-07-20 2019-04-01 不揮発性メモリ向けのウェアレベリング及びアクセス方法、デバイス及び記憶媒体

Country Status (6)

Country Link
US (1) US11320989B2 (ja)
EP (1) EP3825856B1 (ja)
JP (1) JP7110479B2 (ja)
CN (1) CN108920386B (ja)
RU (1) RU2767141C1 (ja)
WO (1) WO2020015385A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108920386B (zh) * 2018-07-20 2020-06-26 中兴通讯股份有限公司 面向非易失性内存的磨损均衡及访问方法、设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07122083A (ja) * 1993-10-20 1995-05-12 Mitsubishi Electric Corp 不揮発性半導体記憶装置
JP2002533810A (ja) * 1998-12-22 2002-10-08 ジェムプリュス 摩耗防止を備えたメモリ制御手段を有する記憶システムとメモリの摩耗防止制御法
JP2012014400A (ja) * 2010-06-30 2012-01-19 Toshiba Corp 半導体メモリ装置および半導体メモリシステム
US20140237160A1 (en) * 2013-02-21 2014-08-21 Qualcomm Incorporated Inter-set wear-leveling for caches with limited write endurance
US20160313929A1 (en) * 2013-12-12 2016-10-27 Commissariat à l'énergie atomique et aux énergies alternatives System and method for managing wear of an electronic memory

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6000006A (en) * 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
US20030163633A1 (en) * 2002-02-27 2003-08-28 Aasheim Jered Donald System and method for achieving uniform wear levels in a flash memory device
WO2004040586A1 (en) * 2002-10-28 2004-05-13 Sandisk Corporation Automated wear leveling in non-volatile storage systems
US20070255889A1 (en) * 2006-03-22 2007-11-01 Yoav Yogev Non-volatile memory device and method of operating the device
US9207876B2 (en) * 2007-04-19 2015-12-08 Microsoft Technology Licensing, Llc Remove-on-delete technologies for solid state drive optimization
CN101354681B (zh) * 2008-09-23 2010-12-01 美商威睿电通公司 存储器系统、非易失性存储器的磨损均衡方法及装置
US9569349B2 (en) * 2008-12-19 2017-02-14 Ati Technologies Ulc Method and apparatus for reallocating memory content
US9830087B2 (en) * 2014-11-13 2017-11-28 Micron Technology, Inc. Memory wear leveling
US9811456B2 (en) * 2014-11-26 2017-11-07 Advanced Micro Devices, Inc. Reliable wear-leveling for non-volatile memory and method therefor
CN105068938B (zh) * 2015-08-12 2018-04-24 华中科技大学 一种基于多层单元的非易失内存的磨损均衡方法
CN105117175B (zh) * 2015-08-18 2018-02-02 重庆大学 一种基于软件编译层的可变电阻式存储器磨损均衡方法
US10049717B2 (en) * 2016-03-03 2018-08-14 Samsung Electronics Co., Ltd. Wear leveling for storage or memory device
US9971685B2 (en) * 2016-04-01 2018-05-15 Intel Corporation Wear leveling based on a swapping operation between sets of physical block addresses of a non-volatile memory
US9842059B2 (en) * 2016-04-14 2017-12-12 Western Digital Technologies, Inc. Wear leveling in storage devices
KR102630116B1 (ko) * 2016-10-18 2024-01-29 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
KR102664704B1 (ko) * 2016-10-24 2024-05-14 에스케이하이닉스 주식회사 메모리 시스템 및 이를 이용한 웨어-레벨링 방법
CN106598484A (zh) * 2016-11-17 2017-04-26 华为技术有限公司 数据的存储方法、闪存芯片以及存储装置
CN107193646B (zh) * 2017-05-24 2020-10-09 中国人民解放军理工大学 一种基于混合主存架构的高效动态页面调度方法
CN107918530A (zh) * 2018-01-12 2018-04-17 江苏华存电子科技有限公司 一种非易失性存储器的磨损均衡方法和装置
CN108920386B (zh) * 2018-07-20 2020-06-26 中兴通讯股份有限公司 面向非易失性内存的磨损均衡及访问方法、设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07122083A (ja) * 1993-10-20 1995-05-12 Mitsubishi Electric Corp 不揮発性半導体記憶装置
JP2002533810A (ja) * 1998-12-22 2002-10-08 ジェムプリュス 摩耗防止を備えたメモリ制御手段を有する記憶システムとメモリの摩耗防止制御法
JP2012014400A (ja) * 2010-06-30 2012-01-19 Toshiba Corp 半導体メモリ装置および半導体メモリシステム
US20140237160A1 (en) * 2013-02-21 2014-08-21 Qualcomm Incorporated Inter-set wear-leveling for caches with limited write endurance
US20160313929A1 (en) * 2013-12-12 2016-10-27 Commissariat à l'énergie atomique et aux énergies alternatives System and method for managing wear of an electronic memory

Also Published As

Publication number Publication date
RU2767141C1 (ru) 2022-03-16
CN108920386B (zh) 2020-06-26
EP3825856B1 (en) 2023-09-13
JP7110479B2 (ja) 2022-08-01
WO2020015385A1 (zh) 2020-01-23
EP3825856A1 (en) 2021-05-26
EP3825856A4 (en) 2022-05-04
CN108920386A (zh) 2018-11-30
US20210271398A1 (en) 2021-09-02
US11320989B2 (en) 2022-05-03

Similar Documents

Publication Publication Date Title
TWI408689B (zh) 存取儲存裝置的方法及相關控制電路
CN102667740B (zh) 将数据存储装置分区与物理数据扇区的边界对齐
US10528268B2 (en) System and method for channel time management in solid state memory drives
US9772797B2 (en) Buffer memory management method, memory control circuit unit and memory storage device
US7647470B2 (en) Memory device and controlling method for elongating the life of nonvolatile memory
WO2009096180A1 (ja) メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
CN106558320B (zh) 最大化smr驱动器容量
US20150052329A1 (en) Memory control device, host computer, information processing system and method of controlling memory control device
JP2010535379A (ja) フラッシュメモリに最適化された入出力制御方法および装置
CN112162695A (zh) 一种数据缓存方法、装置、电子设备及存储介质
TWI553481B (zh) 固態硬碟的資料管理方法、寫入管理系統及其方法
JP5787451B2 (ja) エミュレート電気的消去可能(eee)メモリおよび動作方法
JP2021530810A (ja) 不揮発性メモリ向けのウェアレベリング及びアクセス方法、デバイス及び記憶媒体
US10346040B2 (en) Data merging management method based on data type, memory storage device and memory control circuit unit
JP3565583B2 (ja) 半導体ファイル記憶装置
KR101041710B1 (ko) 비휘발성 메모리의 섹터 관리 방법
CN115145483A (zh) 一种固态硬盘管理方法、装置、设备及机器可读存储介质
CN110515666A (zh) PCIe设备的Option ROM类型的设置方法
JP6890238B2 (ja) 使用回数を増大させた不揮発性メモリ
US7634612B2 (en) Method of recording and reproducing information
JP6926866B2 (ja) ストレージ制御装置、およびストレージ制御プログラム
JP2017146722A (ja) ストレージ装置
JP2015069529A (ja) 記録装置及び記録方法
CN115657948A (zh) 闪存块管理方法、装置、设备和存储介质
CN116049023A (zh) 子系统内存管理方法及装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210208

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220627

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: 20220712

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220720

R150 Certificate of patent or registration of utility model

Ref document number: 7110479

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150