JP6107802B2 - 不揮発性メモリ制御装置、不揮発性メモリ制御方法及びプログラム - Google Patents

不揮発性メモリ制御装置、不揮発性メモリ制御方法及びプログラム Download PDF

Info

Publication number
JP6107802B2
JP6107802B2 JP2014252667A JP2014252667A JP6107802B2 JP 6107802 B2 JP6107802 B2 JP 6107802B2 JP 2014252667 A JP2014252667 A JP 2014252667A JP 2014252667 A JP2014252667 A JP 2014252667A JP 6107802 B2 JP6107802 B2 JP 6107802B2
Authority
JP
Japan
Prior art keywords
partition
data
erases
nonvolatile memory
reads
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.)
Active
Application number
JP2014252667A
Other languages
English (en)
Other versions
JP2016115105A (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.)
Konica Minolta Inc
Original Assignee
Konica Minolta Inc
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 Konica Minolta Inc filed Critical Konica Minolta Inc
Priority to JP2014252667A priority Critical patent/JP6107802B2/ja
Priority to CN201510917163.0A priority patent/CN105700822B/zh
Priority to US14/966,209 priority patent/US9898211B2/en
Publication of JP2016115105A publication Critical patent/JP2016115105A/ja
Application granted granted Critical
Publication of JP6107802B2 publication Critical patent/JP6107802B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0638Organizing or formatting or addressing of data
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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/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
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Landscapes

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

Description

本発明は、不揮発性メモリ制御装置、不揮発性メモリ制御方法及びプログラムに関する。
従来、NAND型フラッシュメモリ等の書き換え可能な半導体不揮発性メモリ(単に、不揮発性メモリと呼ぶ。)は、トンネル酸化膜を介して浮遊ゲート内に電子を注入することによりデータを書き込み、電子を引き抜くことによりデータの消去を行う。また、複数のセルから構成されるページ単位でデータの読み書きを行い、データを消去する際は、さらに複数ページで構成されるブロック単位で行われる。
但し、1つのセルに対するデータの書き換え時にトンネル酸化膜を貫通する電子により、トンネル酸化膜の劣化が生じて当該セルの寿命が尽きてしまうため、個々のブロックに対する消去回数には制限がある。また、一般に、複数のブロックから構成されるパーティション単位で使用されることが多いので、実際にはパーティションに対する消去回数に制限がかかることになる。
このため、特定のパーティションの消去回数だけが増加して、不揮発性メモリ全体としての寿命が尽きてしまうことを防止するため、パーティションの消去回数を平準化することが望ましい。
このような平準化対策として、未使用のパーティション数が閾値以下となった場合、最多書き換え回数(消去回数)のパーティションのデータと、最少書き換え回数(消去回数)のパーティションのデータとを入れ替えることにより、特定パーティションへの書き換えの集中を防止して、各パーティション間での書き換え回数(消去回数)の平準化を図る不揮発性記憶装置等が開示されている(特許文献1参照)。
特開2008−097132号公報
しかしながら、今現在、最少書き換え回数(消去回数)のパーティションに記憶されているデータであっても、パーティションの書き換え回数(消去回数)が少ないだけであって、当該パーティションに記憶されているデータ自身の書き換え回数(消去回数)が少ないわけではない。すなわち、最少書き換え回数(消去回数)のパーティションに記憶されているデータであっても、当該データ自身の書き換え回数(消去回数)が多いデータである場合も想定される。
このため、特許文献1に記載されたようなパーティションの書き換え回数(消去回数)にのみ着目した不揮発性記憶装置における平準化では、このような当該データ自身の書き換え回数(消去回数)が多いデータを再度、最多書き換え回数(消去回数)のパーティションに格納してしまうことも生じてしまい、逆に不揮発性メモリの寿命を縮めてしまう恐れがあるといった問題点があった。
本発明の課題は、不揮発性メモリの各パーティションの消去回数を平準化して長寿命を実現することができる不揮発性メモリ制御装置、不揮発性メモリ制御方法及びプログラムを提供することにある。
上記課題を達成するため、請求項1に記載の発明の不揮発性メモリ制御装置は、
書き換え可能な半導体不揮発性メモリの複数のパーティションのそれぞれにデータの読み書き制御を行う不揮発性メモリ制御装置において、
前記パーティション毎の通算の消去回数を計数する消去回数計数部と、
前記パーティション毎の同一データに対する連続した読出回数を計数する読出回数計数部と、
前記書き換え可能な半導体不揮発性メモリに対してデータの読み書きを行うデータ読出書込部と、
一のパーティションの消去回数が所定の回数以上になり、当該一のパーティションよりも消去回数が少なく、且つ、読出回数が多いパーティションが存在する場合、このパーティションのデータと前記一のパーティションのデータとを入れ替えるように前記データ読出書込部を制御する制御部と、
を備えることを特徴としている。
請求項2に記載の発明は、請求項1に記載の不揮発性メモリ制御装置において、
前記制御部は、前記一のパーティションよりも消去回数が少なく、且つ、読出回数が多いパーティションが複数存在する場合、最も読出回数が多いパーティションのデータと入れ替えることを特徴としている。
請求項3に記載の発明は、請求項1又は2に記載の不揮発性メモリ制御装置において、
前記制御部は、前記一のパーティションの消去回数が前記所定の回数以上になった場合、前記所定の回数の値を当該パーティションの消去回数よりも大きな値に変更することを特徴としている。
請求項4に記載の発明は、請求項1又は2に記載の不揮発性メモリ制御装置において、
前記制御部は、全てのパーティションの消去回数が前記所定の回数以上になった場合、前記所定の回数の値を全てのパーティションの消去回数よりも大きな値に変更することを特徴としている。
請求項5に記載の発明は、請求項1から4のいずれか一項に記載の不揮発性メモリ制御装置において、
前記制御部は、消去回数が最大のパーティションと消去回数が最小のパーティションとの消去回数の差が所定の値以上になり、前記消去回数が最大のパーティションよりも消去回数が少なく、且つ、読出回数が多いパーティションが存在する場合、このパーティションのデータと前記消去回数が最大のパーティションのデータとを入れ替えることを特徴としている。
請求項6に記載の発明は、
書き換え可能な半導体不揮発性メモリの複数のパーティションのそれぞれにデータの読み書き制御を行う不揮発性メモリ制御方法であって、
前記パーティション毎の通算の消去回数を計数する消去回数計数ステップと、
前記パーティション毎の同一データに対する連続した読出回数を計数する読出回数計数ステップと、
一のパーティションの消去回数が所定の回数以上になり、当該一のパーティションよりも消去回数が少なく、且つ、読出回数が多いパーティションが存在する場合、このパーティションのデータと前記一のパーティションのデータとを入れ替えるように制御する入替ステップと、
を含むことを特徴としている。
請求項7に記載の発明は、
書き換え可能な半導体不揮発性メモリの複数のパーティションのそれぞれにデータの読み書き制御を行うプログラムであって、
コンピュータを、
前記パーティション毎の通算の消去回数を計数する消去回数計数手段と、
前記パーティション毎の同一データに対する連続した読出回数を計数する読出回数計数手段と、
一のパーティションの消去回数が所定の回数以上になり、当該一のパーティションよりも消去回数が少なく、且つ、読出回数が多いパーティションが存在する場合、このパーティションのデータと前記一のパーティションのデータとを入れ替えるように制御する入替手段と、
して機能させる。
本発明によれば、不揮発性メモリの各パーティションの消去回数を平準化して長寿命を実現することができる不揮発性メモリ制御装置、不揮発性メモリ制御方法及びプログラムを提供できる。
本発明を適用した実施形態の不揮発性メモリ制御装置の機能構成を示すブロック図である。 不揮発性メモリの構成の一例を示す説明図である。 制御部の計数動作を説明するフローチャートである。 パーティション毎の計数回数の一例を示す説明図である。 制御部の消去回数の平準化動作を説明するフローチャートである。
(実施形態)
[1.構成の説明]
以下に、本発明について、図面を用いて具体的な態様を説明する。但し、発明の範囲は、図示例に限定されない。
図1は、本発明を適用した実施形態の不揮発性メモリ制御装置100の機能構成を示すブロック図である。
図1に示すように、本実施形態の不揮発性メモリ制御装置100は、データを書き込む不揮発性メモリFM11のパーティションを適宜選択して、不揮発性メモリFM11の各パーティションの消去回数を平準化する。
具体的には、本実施形態の不揮発性メモリ制御装置100は、消去回数計数部1と、読出回数計数部2と、データ読出書込部3と、制御部4等を備えて構成されている。
消去回数計数部1は、不揮発性メモリFM11のパーティション毎の通算の消去回数を計数し、当該消去回数を保持する。消去回数計数部1としては、制御部4の制御により不揮発性メモリFM11のパーティション毎の通算の消去回数を計数するものでもよいし、制御部4とは独立した回路の動作により当該消去回数を計数するものであってもよい。
読出回数計数部2は、不揮発性メモリFM11のパーティション毎の同一データに対する連続した読出回数を計数し、当該読出回数を保持する。当該読出回数は同一データに対する連続して読み出した回数であるので、パーティションのデータの書き換え(消去も含む)により、データの同一性がなくなった場合は、当該読出回数をリセット(0回にする。)する。
また、読出回数計数部2としては、制御部4の制御により不揮発性メモリFM11のパーティション毎の同一データに対する連続した読出回数を計数するものでもよいし、制御部4とは独立した回路の動作により当該読出回数を計数するものであってもよい。
データ読出書込部3は、不揮発性メモリFM11の入出力端子等と相互に接続され、不揮発性メモリFM11に対してデータの読み書きを行う。
制御部4は、例えば、CPU(Central Processing Unit)41、ROM(Read Only Memory)42、RAM(Random Access Memory)43等を備えて構成されている。
CPU41は、ROM42から処理内容に応じたプログラムを読み出してRAM43に展開し、展開されたプログラムと協働して不揮発性メモリ制御装置100の各ブロック(消去回数計数部1、読出回数計数部2、データ読出書込部3等)の動作を集中制御する。このとき、例えば、フラッシュメモリやハードディスクドライブで構成された記憶部(不図示)に格納されている各種データが参照される。
ここで、制御部4は、例えば、LANカード等で構成された通信部(図示略)を介して、LAN(Local Area Network)、WAN(Wide Area Network)等の通信ネットワークに接続された外部の装置(例えばパーソナルコンピュータ)との間で各種データの送受信を行っても良い。
また、プログラムを実行することにより、制御部4は、パーティション毎の通算の消去回数を計数する消去回数計数手段と、パーティション毎の同一データに対する連続した読出回数を計数する読出回数計数手段と、特定のパーティションの消去回数が所定の回数以上になり、特定のパーティションよりも消去回数が少なく、且つ、読出回数が多いパーティションが存在する場合、このパーティションのデータと特定のパーティションのデータとを入れ替えるように制御する入替手段と、してそれぞれ機能する。
また、図2は、不揮発性メモリFM11の具体的な構成の一例を示す説明図である。図2に示すように、不揮発性メモリFM11は、複数個のブロック(複数のセルから構成される複数のページで構成されるブロック)から構成される複数のパーティションA、B、C、D及びEを有する。
また、図2に示すように、不揮発性メモリFM11には、データの書き換え時等において一時的にデータを待避させるための、揮発性一時保存メモリTM21(以下、一時保存メモリTM21と呼ぶ。)を有している。例えば、あるパーティションのデータを書き換える際は、当該データを、一旦、一時保存メモリTM21に移動させ、一時保存メモリTM21の内容を書き換え、保存元のパーティションを消去し、最後に、一時保存メモリTM21のデータを当該パーティションに戻す。
[2.計数動作の説明]
ここで、不揮発性メモリ制御装置100の計数動作を図3に示すフローチャートを用いて説明する。
図3のフローチャートに示すように、制御部4は、不揮発性メモリFM11のデータが読み出されたか否かを判断する(ステップS31)。そして、制御部4は、不揮発性メモリFM11のデータが読み出されたと判断した場合には(ステップS31:Yes)、データが読み出されたパーティションの読出回数をインクリメントして(ステップS32:読出回数計数ステップ)、ステップS31に戻る。
一方、制御部4は、不揮発性メモリFM11のデータが読み出されていないと判断した場合には(ステップS31:No)、不揮発性メモリFM11のデータが消去(書き換えも含む)されたか否かを判断する(ステップS33)。そして、制御部4は、不揮発性メモリFM11のデータが消去されていないと判断した場合には(ステップS33:No)、ステップS31に戻る。
また、制御部4は、不揮発性メモリFM11のデータが消去されたと判断した場合には(ステップS33:Yes)、データが消去されたパーティションの読出回数をリセットすると共に(ステップS34:読出回数計数ステップ)、データが消去されたパーティションの消去回数をインクリメントして(ステップS35:消去回数計数ステップ)、ステップS31に戻る。
以上のように、本実施形態の不揮発性メモリ制御装置100によれば、消去回数計数部1により、パーティション毎の通算の消去回数を計数し、読出回数計数部2により、パーティション毎の同一データに対する連続した読出回数を計数して、それぞれの回数を保持する。
例えば、図4に示すように、不揮発性メモリFM11を構成する各パーティションA〜Eにおける消去回数と、読出回数が計数され保持される。図4からから分かるように、パーティションA及びDは消去回数が100回を超えており、これに対して、パーティションB、C及びEの消去化数は100回以下である。
特に、パーティションBは、読出回数が100回(消去回数50回)であり、当該パーティションに記憶されているデータは、ほとんど書き換えが行われないデータ(例えば、ファームウェアやフォントデータ等のデータ)の可能性が高い。
ちなみに、消去回数及び読出回数を保持する記憶手段としては、消去回数計数部1及び読出去回数計数部2にそれぞれ不揮発性メモリを備えてもよいし、別途不揮発性メモリで構成される記憶部を備えてもよい。或いは、不揮発性メモリFM11の特定の領域を記憶手段として用いてもよい。
なお、上記の説明では制御部4が消去回数計数部1及び読出回数計数部2を制御することにより、消去回数及び読出回数を計数する動作を例示しているが、勿論、消去回数計数部1及び読出回数計数部2をそれぞれハードウェアで構成し、制御部4の制御とは独立した動作で消去回数及び読出回数を計数するものであってもよい。
[3.平準化動作の説明]
ここで、不揮発性メモリ制御装置100の消去回数の平準化動作を図5に示すフローチャートを用いて説明する。
図5のフローチャートに示すように、制御部4は、データの更新時に、更新対象のデータを一時保存メモリTM21に移動させ(ステップS51)、一時保存メモリTM21に格納されたデータを更新し(ステップS52)、更新対象のデータを記憶していたパーティションを消去する(ステップS53)。
次に、制御部4は、当該パーティションの消去回数を参照し、消去回数が所定の回数以上であるか否かを判断する(ステップS54)。そして、制御部4は、消去回数が所定の回数以上ではないと判断した場合には(ステップS54:No)、一時保存メモリTM21のデータを更新対象のデータを記憶していたパーティションに戻す(ステップS55)。
一方、制御部4は、消去回数が所定の回数以上であると判断した場合には(ステップS54:Yes)、更新対象のデータを記憶していたパーティションの消去回数よりも消去回数が少ないパーティションが他に存在するか否かを判断し(ステップS56)、更新対象のデータを記憶していたパーティションの消去回数よりも消去回数が少ないパーティションが他に存在しないと判断した場合には(ステップS56:No)、一時保存メモリTM21のデータを更新対象のデータを記憶していたパーティションに戻す(ステップS55)。
もし、制御部4は、更新対象のデータを記憶していたパーティションの消去回数よりも消去回数が少ないパーティションが他に存在すると判断した場合には(ステップS56:Yes)、更新対象のデータを記憶していたパーティションの読出回数よりも読出回数が多いパーティションが存在するか否かを判断し(ステップS57)、更新対象のデータを記憶していたパーティションの読出回数よりも読出回数が多いパーティションが他に存在しないと判断した場合には(ステップS57:No)、一時保存メモリTM21のデータを更新対象のデータを記憶していたパーティションに戻す(ステップS55)。
最後に、制御部4は、更新対象のデータを記憶していたパーティションの読出回数よりも読出回数が多いパーティションが存在すると判断した場合には(ステップS57:Yes)、条件を満足するパーティションのデータと、一時保存メモリTM21のデータを入れ替え(ステップS58:入替ステップ)、一時保存メモリTM21のデータを更新対象のデータを記憶していたパーティションに戻す(ステップS55)。
すなわち、ステップS58及びステップS55の動作により、条件を満足するパーティション(更新対象のデータを記憶していたパーティションよりも消去回数が少なく、且つ、読出回数が多いパーティション)に更新対象データが書き込まれ、条件を満足するパーティションのデータが更新対象のデータを記憶していたパーティション(所定の消去回数を超過したパーティション)に書き込まれることになり、言い換えれば、更新対象のデータを記憶していたパーティション(所定の消去回数を超過したパーティション)への書き込みの集中を防止することができるので、消去回数の平準化を図ることができる。
また、このようなパーティション(更新対象のデータを記憶していたパーティションよりも消去回数が少なく、且つ、読出回数が多いパーティション)に記憶されているデータは、ほとんど書き換えが行われないデータ(例えば、ファームウェアやフォントデータ等のデータ)である可能性が高いので、当該データを消去回数が所定の回数を超過したパーティションに記憶させることにより、各パーティションの消去回数を平準化して長寿命を実現することができる。
以上のように、本実施形態の不揮発性メモリ制御装置100によれば、パーティション毎の通算の消去回数を計数する消去回数計数部1と、パーティション毎の同一データに対する連続した読出回数を計数する読出回数計数部2と、不揮発性メモリに対してデータの読み書きを行うデータ読出書込部3と、特定のパーティションの消去回数が所定の回数以上になり、特定のパーティションよりも消去回数が少なく、且つ、読出回数が多いパーティションが存在する場合、このパーティションのデータと特定のパーティションのデータとを入れ替えるようにデータ読出書込部3を制御する制御部4とを備えることにより、不揮発性メモリの各パーティションの消去回数を平準化して長寿命を実現することができる不揮発性メモリ制御装置を提供できる。
(変形例1)
[4.条件を満足するパーティションが複数]
実施形態の説明に際して不揮発性メモリ制御装置100の制御部4は、特定のパーティションの消去回数が所定の回数以上になり、特定のパーティションよりも消去回数が少なく、且つ、読出回数が多いパーティションが存在する場合、このパーティションのデータと特定のパーティションのデータとを入れ替えていたが、このような条件を満足するパーティションが複数存在する場合は、最も読出回数が多いパーティションのデータと入れ替えるようにしてもよい。
(変形例2)
[5−1.所定の回数の値の変更]
実施形態の説明に際して不揮発性メモリ制御装置100の制御部4は、消去回数と比較する所定の回数に関しては1種類の所定値として取り扱っているが、予め複数の値の所定の回数を設定しておき、条件に応じて所定の回数の値を変更してもよい。
例えば、制御部4は、更新対象のデータを記憶していたパーティションの消去回数がこれまで設定されている所定の回数以上になった場合、所定の回数の値を当該パーティションの消去回数よりも大きな値に変更するようにしてもよい。
この場合、所定の回数を徐々に引き上げることができるので、各パーティションの消去回数をより細かく平準化できるので、不揮発性メモリを長寿命にすることができる。
(変形例3)
[5−2.所定の回数の値の変更]
実施形態の説明に際して不揮発性メモリ制御装置100の制御部4は、消去回数と比較する所定の回数に関しては1種類の所定値として取り扱っているが、予め複数の値の所定の回数を設定しておき、条件に応じて所定の回数の値を変更してもよい。
例えば、制御部4は、全てのパーティションの消去回数が所定の回数以上になった場合、所定の回数の値を全てのパーティションの消去回数よりも大きな値に変更するようにしてもよい。
この場合、全てのパーティションの消去回数が所定の回数を超過した時点で、所定の回数を引き上げることになるので、所定の回数の値を変更する頻度を抑えることができ、不揮発性メモリを長寿命にすることができる。
(変形例4)
[6.消去回数の最多と最小の差]
実施形態の説明に際して不揮発性メモリ制御装置100の制御部4は、特定のパーティションの消去回数が所定の回数以上になった場合、データの入れ替えを行っているが、消去回数が最大のパーティションと消去回数が最小のパーティションとの消去回数の差が所定の値以上になった場合に、データの入れ替えを行ってもよい。
例えば、制御部4は、消去回数が最大のパーティションと消去回数が最小のパーティションとの消去回数の差が所定の値以上になった場合に、消去回数が最大のパーティションよりも消去回数が少なく、且つ、読出回数が多いパーティションが存在する場合、このパーティションのデータと消去回数が最大のパーティションのデータとを入れ替える。
この場合、特定のパーティションの消去回数にのみ着目するのではなく、消去回数が最大のパーティションと消去回数が最小のパーティションとの消去回数の差にも着目することにより、消去回数が最大のパーティションと消去回数が最小のパーティションとの消去回数の差が大きくなりすぎることを抑えることができる。
なお、変形例2及び3の説明に際しては、予め複数の値の所定の回数を設定する旨説明しているが、当該複数の値は、単純に一定の値で順次増加するもののみならず、寿命の限界となる消去回数に近づくにつれて、増加する間隔を順次小さくしてもよい。
この場合、より寿命の限界となる消去回数まで消去回数を近づけることができ、不揮発性メモリを長寿命にすることができる。
また、頻繁に書き換えが行われるデータ(例えば、画像データ)と、殆ど書き換えが行われないデータ(ファームウェア、フォントデータ等)とが混在し、不揮発性メモリを搭載した画像形成装置に、実施形態で説明した不揮発性メモリ制御装置を適用することにより、所定の消去回数を超過したパーティションへ、画像データ等の頻繁に書き換えが行われるデータの書き込みが集中してしまうことを防止することができるので、不揮発性メモリの各パーティションの消去回数を平準化して長寿命を実現することができる。
100 不揮発性メモリ制御装置
1 消去回数計数部
2 読出回数計数部
3 データ読出書込部
4 制御部(消去回数計数手段、読出回数計数手段、入替手段)
FM11 不揮発性メモリ
TM21 揮発性一時保存メモリ

Claims (7)

  1. 書き換え可能な半導体不揮発性メモリの複数のパーティションのそれぞれにデータの読み書き制御を行う不揮発性メモリ制御装置において、
    前記パーティション毎の通算の消去回数を計数する消去回数計数部と、
    前記パーティション毎の同一データに対する連続した読出回数を計数する読出回数計数部と、
    前記書き換え可能な半導体不揮発性メモリに対してデータの読み書きを行うデータ読出書込部と、
    特定のパーティションの消去回数が所定の回数以上になり、前記特定のパーティションよりも消去回数が少なく、且つ、読出回数が多いパーティションが存在する場合、このパーティションのデータと前記特定のパーティションのデータとを入れ替えるように前記データ読出書込部を制御する制御部と、
    を備えることを特徴とする不揮発性メモリ制御装置。
  2. 前記制御部は、消去回数が所定の回数以上になったパーティションよりも消去回数が少なく、且つ、読出回数が多いパーティションが複数存在する場合、最も読出回数が多いパーティションのデータと入れ替えることを特徴とする請求項1に記載の不揮発性メモリ制御装置。
  3. 前記制御部は、予め設定された前記所定の回数の値を複数有し、あるパーティションの消去回数が前記所定の回数以上になった場合、前記所定の回数の値を当該パーティションの消去回数よりも大きな値に変更することを特徴とする請求項1又は2に記載の不揮発性メモリ制御装置。
  4. 前記制御部は、予め設定された前記所定の回数の値を複数有し、全てのパーティションの消去回数が前記所定の回数以上になった場合、前記所定の回数の値を全てのパーティションの消去回数よりも大きな値に変更することを特徴とする請求項1又は2に記載の不揮発性メモリ制御装置。
  5. 前記制御部は、消去回数が最大のパーティションと消去回数が最小のパーティションとの消去回数の差が所定の値以上になり、前記消去回数が最大のパーティションよりも消去回数が少なく、且つ、読出回数が多いパーティションが存在する場合、このパーティションのデータと前記消去回数が最大のパーティションのデータとを入れ替えることを特徴とする請求項1から4のいずれか一項に記載の不揮発性メモリ制御装置。
  6. 書き換え可能な半導体不揮発性メモリの複数のパーティションのそれぞれにデータの読み書き制御を行う不揮発性メモリ制御方法であって、
    前記パーティション毎の通算の消去回数を計数する消去回数計数ステップと、
    前記パーティション毎の同一データに対する連続した読出回数を計数する読出回数計数ステップと、
    特定のパーティションの消去回数が所定の回数以上になり、前記特定のパーティションよりも消去回数が少なく、且つ、読出回数が多いパーティションが存在する場合、このパーティションのデータと前記特定のパーティションのデータとを入れ替えるように制御する入替ステップと、
    を含むことを特徴とする不揮発性メモリ制御方法。
  7. 書き換え可能な半導体不揮発性メモリの複数のパーティションのそれぞれにデータの読み書き制御を行うプログラムであって、
    コンピュータを、
    前記パーティション毎の通算の消去回数を計数する消去回数計数手段と、
    前記パーティション毎の同一データに対する連続した読出回数を計数する読出回数計数手段と、
    特定のパーティションの消去回数が所定の回数以上になり、前記特定のパーティションよりも消去回数が少なく、且つ、読出回数が多いパーティションが存在する場合、このパーティションのデータと前記特定のパーティションのデータとを入れ替えるように制御する入替手段と、
    して機能させるプログラム。
JP2014252667A 2014-12-15 2014-12-15 不揮発性メモリ制御装置、不揮発性メモリ制御方法及びプログラム Active JP6107802B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2014252667A JP6107802B2 (ja) 2014-12-15 2014-12-15 不揮発性メモリ制御装置、不揮発性メモリ制御方法及びプログラム
CN201510917163.0A CN105700822B (zh) 2014-12-15 2015-12-10 非易失性存储器控制装置以及非易失性存储器控制方法
US14/966,209 US9898211B2 (en) 2014-12-15 2015-12-11 Nonvolatile memory control device, nonvolatile memory control method and computer readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014252667A JP6107802B2 (ja) 2014-12-15 2014-12-15 不揮発性メモリ制御装置、不揮発性メモリ制御方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2016115105A JP2016115105A (ja) 2016-06-23
JP6107802B2 true JP6107802B2 (ja) 2017-04-05

Family

ID=56111191

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014252667A Active JP6107802B2 (ja) 2014-12-15 2014-12-15 不揮発性メモリ制御装置、不揮発性メモリ制御方法及びプログラム

Country Status (3)

Country Link
US (1) US9898211B2 (ja)
JP (1) JP6107802B2 (ja)
CN (1) CN105700822B (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6448571B2 (ja) 2016-03-08 2019-01-09 東芝メモリ株式会社 ストレージシステム、情報処理システムおよび制御方法
KR20180014975A (ko) * 2016-08-02 2018-02-12 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN107025066A (zh) 2016-09-14 2017-08-08 阿里巴巴集团控股有限公司 在基于闪存的存储介质中写入存储数据的方法和装置
US10489064B2 (en) * 2016-10-03 2019-11-26 Cypress Semiconductor Corporation Systems, methods, and devices for user configurable wear leveling of non-volatile memory
US11256436B2 (en) * 2019-02-15 2022-02-22 Apple Inc. Systems and methods for balancing multiple partitions of non-volatile memory
CN113220240A (zh) * 2021-05-26 2021-08-06 普冉半导体(上海)股份有限公司 非易失性存储器芯片

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3407317B2 (ja) * 1991-11-28 2003-05-19 株式会社日立製作所 フラッシュメモリを使用した記憶装置
JPH10320984A (ja) * 1997-05-15 1998-12-04 Sharp Corp 記憶装置
JP2008097132A (ja) * 2006-10-06 2008-04-24 Matsushita Electric Ind Co Ltd メモリコントローラ、不揮発性記憶装置、及び不揮発性記憶システム
WO2008077284A1 (en) * 2006-12-27 2008-07-03 Intel Corporation Initiative wear leveling for non-volatile memory
JP2008176727A (ja) * 2007-01-22 2008-07-31 Denso Corp 情報処理装置、ナビゲーション装置及びプログラム
US20100017650A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporation, U.S.A Non-volatile memory data storage system with reliability management
CN101369252A (zh) * 2008-09-16 2009-02-18 浙江大学 基于nand闪存文件***中静态数据损耗均衡的方法
EP2455865B1 (en) * 2009-07-17 2020-03-04 Toshiba Memory Corporation Memory management device
US9405670B2 (en) * 2011-06-09 2016-08-02 Tsinghua University Wear leveling method and apparatus
CN102508785B (zh) * 2011-11-02 2015-08-19 清华大学 一种磨损均衡方法及装置
CN102955743A (zh) * 2011-08-25 2013-03-06 建兴电子科技股份有限公司 固态储存装置及其损耗平均控制方法
CN102880556B (zh) * 2012-09-12 2015-05-20 浙江大学 一种实现Nand Flash磨损均衡的方法及其***

Also Published As

Publication number Publication date
CN105700822B (zh) 2019-01-04
CN105700822A (zh) 2016-06-22
JP2016115105A (ja) 2016-06-23
US9898211B2 (en) 2018-02-20
US20160170663A1 (en) 2016-06-16

Similar Documents

Publication Publication Date Title
JP6107802B2 (ja) 不揮発性メモリ制御装置、不揮発性メモリ制御方法及びプログラム
US8078923B2 (en) Semiconductor memory device with error correction
TWI474335B (zh) 增加記憶體的複數區塊的生命週期的系統、方法及電腦程式產品
TWI505088B (zh) 基於寫入頻率將資料寫至記憶體不同部份之方法、非暫態電腦可讀媒體與裝置
TWI489373B (zh) 資料儲存裝置和快閃記憶體之區塊管理方法
KR100974954B1 (ko) 플래시 메모리를 이용한 저장장치에서의 읽기 웨어 레벨링방법
KR101454817B1 (ko) 반도체 메모리 장치 및 그것의 마모도 관리 방법
JP2006286118A (ja) 閾値電圧制御機能を有する不揮発性記憶装置
US10241678B2 (en) Data storage device and data writing method capable of avoiding repeated write operation of a TLC block when interrupted
JP2011203916A (ja) メモリコントローラ、および半導体記憶装置
US20140281769A1 (en) Memory system and memory controller
JP2008139927A (ja) メモリシステム
KR20110068762A (ko) 반도체 메모리 장치 및 그것의 데이터 소거 처리 방법
JP2020086739A (ja) メモリコントローラ及びこれを備えるフラッシュメモリシステム
KR20110065759A (ko) 불휘발성 메모리 소자의 동작 방법
JP2008276832A (ja) 半導体記憶装置およびその駆動方法
KR20120068192A (ko) 플래시 메모리 장치 및 그 동작 방법
KR20180042699A (ko) 데이터 저장 장치 및 그것의 동작 방법
WO2015155860A1 (ja) 情報記憶装置及び情報記憶装置の制御方法
KR20180039802A (ko) 데이터 저장 장치 및 그것의 동작 방법
JP2006164354A (ja) カウンタ装置およびカウント方法
JP6329185B2 (ja) メモリ制御回路、メモリ制御システム、メモリ制御方法、及び、メモリ制御プログラム
JP5787095B2 (ja) 不揮発性メモリへのデータ記憶方法
CN109949849B (zh) 非易失性存储器及其抹除控制方法
JP2011203927A (ja) 情報処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160324

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170130

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170220

R150 Certificate of patent or registration of utility model

Ref document number: 6107802

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150