JP5858081B2 - メモリコントローラ、メモリシステム及びメモリ制御方法 - Google Patents

メモリコントローラ、メモリシステム及びメモリ制御方法 Download PDF

Info

Publication number
JP5858081B2
JP5858081B2 JP2014066369A JP2014066369A JP5858081B2 JP 5858081 B2 JP5858081 B2 JP 5858081B2 JP 2014066369 A JP2014066369 A JP 2014066369A JP 2014066369 A JP2014066369 A JP 2014066369A JP 5858081 B2 JP5858081 B2 JP 5858081B2
Authority
JP
Japan
Prior art keywords
spare
physical
area
logical
maximum
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
JP2014066369A
Other languages
English (en)
Other versions
JP2015191294A (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.)
TDK Corp
Original Assignee
TDK 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 TDK Corp filed Critical TDK Corp
Priority to JP2014066369A priority Critical patent/JP5858081B2/ja
Priority to US14/620,332 priority patent/US9703495B2/en
Publication of JP2015191294A publication Critical patent/JP2015191294A/ja
Application granted granted Critical
Publication of JP5858081B2 publication Critical patent/JP5858081B2/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
    • 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
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1014One time programmable [OTP] memory, e.g. PROM, WORM
    • 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)

Description

本発明は、概して、メモリ制御に関し、特に、メモリが有する複数の物理領域の消去回数の平準化に関する。
NAND型フラッシュメモリは、複数の物理ブロックにより構成され、各物理ブロックは、複数の物理ページにより構成され、ページ(物理ページ)単位でデータが入出力され、ブロック(物理ブロック)単位でデータが消去される。NAND型フラッシュメモリのメモリコントローラは、一般に、複数の物理ブロックの消去回数を平準化する、すなわちウエアレベリング処理を行う。
例えば、特許文献1のウエアレベリング処理は、次の通りである。すなわち、フラッシュメモリを構成する複数の物理ブロックの各々について消去回数が管理されているが、最大消去回数と最小消去回数との差が閾値を超えた場合に、最小消去回数の物理ブロックに書かれているデータがスペアブロック(コピー先ブロック)にコピーされ、コピー先ブロックが、コピー元ブロック(最小消去回数の物理ブロック)に代えてコピー元ブロックのマッピング先の論理アドレスにマッピングされ、コピー元のブロックが、スペアブロックとして管理される。
特開2005−275722号公報
特許文献1によれば、ウエアレベリング処理が頻発する可能性がある。なぜなら、ウエアレベリング処理の後に、複数のスペアブロックにおいて消去回数が最小のスペアブロックが、論理アドレスにマッピングされ、その後に、最大消去回数の物理ブロックの消去回数が更新されれば、フラッシュメモリについて最大消去回数と最小消去回数との差が再び閾値を超えるからである。ウエアレベリング処理が頻発してしまうと、物理ブロックの消去回数が無駄に増えて製品寿命が低下し、また、処理時間がかかるためフラッシュメモリコントローラのパフォーマンスの低下にもつながる。
このような問題は、NAND型フラッシュメモリに限らず、物理領域に書き込まれているデータを更新するために、その物理領域からデータを消去する必要がある他種のメモリにも存在し得る。
従って、本発明の目的は、ウエアレベリング処理が頻発すること無しに消去回数を平準化することにある。
上記課題を解決するため、本発明のメモリコントローラは、論理領域毎に登録消去回数が登録される記憶部と、いずれかの論理領域にスペア物理領域をマッピングするときのシステム最大消去回数(複数の物理領域にそれぞれ対応した複数の消去回数のうちの最大値)をそのマッピング先の論理領域に関連付けられる登録消去回数として記憶部に登録するプロセッサとを有する。
論理領域毎の登録消去回数を基にウエアレベリング処理を行うことにより、ウエアレベリング処理が頻発すること無しに消去回数を平準化できる。
本発明の実施形態に係るフラッシュメモリシステムの構成を示す。 本発明の実施形態に係るワークエリアに記憶される情報の一例を示す。 本発明の実施形態に係る第1ウエアレベリング処理のフローチャートである。 本発明の実施形態に係るデータコピー処理のフローチャートである。 本発明の実施形態に係る第2ウエアレベリング処理のフローチャートである。
以下、一実施形態に係るメモリシステムが適用されたフラッシュメモリシステム(以下、FMシステム)を説明する。なお、本発明は以下の実施形態に限定されるものではない。また以下に記載した構成要素には、当業者が容易に想定できるもの、実質的に同一のものが含まれる。
図1は、本発明の実施形態に係るFMシステムの構成を示す。
FMシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3とで構成されている。
FMシステム1は、外部バス13を介してホストシステム4と接続されている。ホストシステム4は、ホストシステム4の全体の動作を制御するためのCPU(Central Processing Unit)、FMシステム1との情報の授受を担うコンパニオンチップ等から構成されている。ホストシステム4は、例えば、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置であってもよい。
メモリコントローラ3は、マイクロプロセッサ6と、ホストインタフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインタフェースブロック10と、ECC(Error Correcting Code)ブロック11と、ROM(Read Only Memory)12とから構成される。メモリコントローラ3は、内部バス14を介してフラッシュメモリ2と接続されている。これら機能ブロックによって構成されるメモリコントローラ3は、一つの半導体チップ上に集積される。以下、各機能ブロックについて説明する。
ホストインタフェースブロック7は、ホストシステム4との間でデータ、アドレス情報、ステータス情報、外部コマンド等の授受を行なう。外部コマンドとは、ホストシステム4がFMシステム1に対して処理の実行を指示するためのコマンドである。ホストシステム4よりFMシステム1に供給されるデータ等は、ホストインタフェースブロック7を入口としてFMシステム1の内部(例えば、バッファ9)に取り込まれる。また、FMシステム1からホストシステム4に供給されるデータ等は、ホストインタフェースブロック7を出口としてホストシステム4に供給される。
ホストインタフェースブロック7は、コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3を備えている。コマンドレジスタR1、セクタ数レジスタR2及びLBAレジスタR3には、ホストシステム4から与えられる情報が書き込まれる。コマンドレジスタR1には、書き込みコマンド、読み出しコマンド等の外部コマンドが書き込まれる。セクタ数レジスタR2には、アクセス対象領域のセクタ数が書き込まれる。LBAレジスタR3には、アクセス対象領域の先頭のLBA(Logical Block Address)が書き込まれる。
記憶部の一実施例であるワークエリア8は、フラッシュメモリ2の制御に必要なデータを一時的に格納する作業領域であり、例えば複数のSRAM(Static Random Access Memory)セルによって構成されている。ワークエリア8には、例えば、論理ブロックと物理ブロックとの対応関係を示したアドレス変換テーブル等が記憶される。アドレス変換テーブルを用いて、論理アドレスを物理アドレスに変換することができる(アクセス先の論理ブロックにマッピングされている物理ブロックを特定することができる)。
バッファ9は、フラッシュメモリ2から読み出したデータを、ホストシステム4が受け取り可能な状態となるまで保持する。また、バッファ9は、フラッシュメモリ2に書き込むデータを、フラッシュメモリ2が書き込み可能な状態となるまで保持する。
フラッシュメモリインタフェースブロック10は、内部バス14を介して、フラッシュメモリ2との間でデータ、アドレス情報、ステータス情報、内部コマンド等の授受を行う。ここで、内部コマンドとは、メモリコントローラ3がフラッシュメモリ2に処理の実行を指示するためのコマンドであり、フラッシュメモリ2は、メモリコントローラ3から与えられる内部コマンドに従って動作する。
ECCブロック11は、フラッシュメモリ2に書き込むデータに付加される誤り訂正符号(ECC:Error Correcting Code)を生成するとともに、読み出したデータに付加されている誤り訂正符号に基づいて、読み出したデータに含まれる誤りを検出・訂正する。
ROM12は、マイクロプロセッサ6による処理の手順を定義するプログラムを格納する不揮発性の記憶素子である。例えば、アドレス変換テーブルの作成等の処理手順を定義するプログラムが格納されている。
マイクロプロセッサ6は、ROM12に記憶されているプログラムに従って、メモリコントローラ3の全体の動作を制御する。例えば、マイクロプロセッサ6は、ROM12から読み出した各種処理を定義したコマンドセットに基づいてフラッシュメモリインタフェースブロック10に処理を実行させる。
フラッシュメモリ2は、NAND型フラッシュメモリからなる。NAND型フラッシュメモリは、レジスタと、複数のメモリセルが2次元的に配列されたメモリセルアレイを備えている。メモリセルアレイは、複数のメモリセル群と、ワード線とを備える。ここで、メモリセル群は、複数のメモリセルが直列に接続されたものである。各ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、レジスタから選択されたメモリセルへのデータの書き込み又は選択されたメモリセルからレジスタへのデータの読み出しが行われる。NAND型フラッシュメモリでは、データ読み出し動作及びデータ書き込み動作はページ(物理ページ)単位で行われ、データ消去動作はブロック(物理ブロック)単位で行われる。物理ブロックは、複数の物理ページで構成される。
本実施形態の書込み処理では、ホストシステム4によって、コマンドレジスタR1に、書き込みコマンドを示すコマンドコードが書き込まれ、セクタ数レジスタR2に、書き込むデータのセクタ数が書き込まれ、LBAレジスタR3には、書き込みを開始する先頭データに対応するLBAが書き込まれる。セクタ数レジスタR2及びLBAレジスタR3に書き込まれた情報に基づいて、アクセス対象の領域である論理アクセス領域が判別され、その論理アクセス領域が含まれる論理ブロックに対応する物理ブロックにホストシステム4から与えられるデータが書き込まれる。ホストシステム4側のアドレス空間は、セクタ(512バイト)単位で分割した領域(以下、論理セクタ領域と言う)に付けた通番であるLBAで管理されている。また、複数個の論理セクタ領域で構成された論理ブロックが形成され、この論理ブロックに対して、1個又は複数個の物理ブロックが割り当てられる。
論理ブロックと物理ブロックの対応関係は、アドレス変換テーブルを用いて管理される。アドレス変換テーブルは、例えばワークエリア8に記憶される。
図2は、ワークエリア8に記憶される情報の一例を示す。
ワークエリア8には、例えば、物理ブロック管理テーブル201、システム最大消去回数202、スペア最大消去回数203、スペア最小消去回数204、アドレス変換テーブル205、閾値Th1、閾値Th2及び閾値Th3が記憶される。
物理ブロック管理テーブル201は、各物理ブロックに関する情報を有し、例えば、物理ブロック毎に、種類及び消去回数を有する。物理ブロック(種類)としては、使用中ブロック(論理アドレスにマッピングされている物理ブロック)と、スペアブロック(マッピング可能であり空き状態の物理ブロック)と、不良ブロック(マッピング不可の物理ブロック)とがある。
システム最大消去回数202は、物理ブロック管理テーブル201から取得された情報の一例であり、システム最大消去回数を表す値である。「システム最大消去回数」とは、FMシステム1のフラッシュメモリ2についての最大の消去回数である。
スペア最大消去回数203は、物理ブロック管理テーブル201から取得された情報の一例であり、スペア最大消去回数を表す値である。「スペア最大消去回数」とは、1以上のスペアブロックにそれぞれ対応した1以上の消去回数のうちの最大の消去回数である。
スペア最小消去回数204は、物理ブロック管理テーブル201から取得された情報の一例であり、スペア最小消去回数を表す値である。「スペア最小消去回数」とは、1以上のスペアブロックにそれぞれ対応した1以上の消去回数のうちの最小の消去回数である。
アドレス変換テーブル205は、LBN(論理ブロック番号)毎に、マッピングされている物理ブロックのPBA(物理ブロックアドレス(例えば番号))と、登録消去回数とを有する。論理ブロックは論理領域の一例であり、物理ブロックは物理領域の一例である。本実施形態において、「登録消去回数」とは、アドレス変換テーブル205に登録された消去回数であり、物理ブロックがマッピングされたときのシステム最大消去回数である。すなわち、LBN毎の登録消去回数は、そのLBNに割り当てられた物理ブロックの消去回数ではなく、そのLBNに物理ブロックがマッピングされたときのシステム最大消去回数である。マイクロプロセッサ6は、論理ブロックに物理ブロックをマッピングするとき、その時点でのシステム最大消去回数を、登録消去回数として、物理ブロックのPBAと一緒にアドレス変換テーブル205に登録する。
閾値Th1、閾値Th2及び閾値Th3の各々は、ウエアレベリング処理(後述の第1及び第2のウエアレベリング処理)において比較される閾値である。閾値Th1、閾値Th2及び閾値Th3のうちの少なくとも1つは、ユーザにより変更可能な値であってもよいし、変更不可能な固定値でもよい。
各消去回数202〜204は、物理ブロック管理テーブル201がマイクロプロセッサ6により更新される都度に(いずれかの物理ブロックの消去回数が更新される都度、又は、スペアブロックが論理ブロックに割り当てられる都度に)、マイクロプロセッサ6により必要に応じて更新される。また、各消去回数202〜204は、ワークエリア8に常駐されないでもよい。また、図2に示した情報の少なくとも一部が、メモリコントローラ3における、ワークエリア8とは別の記憶領域に、記憶されてもよい。また、図2に示した情報の少なくとも一部(例えばアドレス変換テーブル205)が、フラッシュメモリ2に保存されてもよい。
以下、本実施形態に係るウエアレベリング処理を説明する。
図3は、本実施形態に係る第1ウエアレベリング処理のフローチャートである。
第1ウエアレベリング処理は、例えば、スタティックなウエアレベリング処理の一例であり、繰り返し(例えば、定期的に、又は、FMシステム1の状況が所定の条件を満たす都度に)開始される。
マイクロプロセッサ6が、アドレス変換テーブル205から最小の登録消去回数を検索し、且つ、システム最大消去回数202を取得する(S301)。
マイクロプロセッサ6が、取得されたシステム最大消去回数202と検索により得られた最小登録消去回数との差(第1の差)が閾値Th1未満か否かを判断する(S302)。
S302の判断結果が否定の場合(つまり、第1の差が閾値Th1以上の場合)(S302:NO)、マイクロプロセッサ6は、スペア最大消去回数203を取得し(S303)、システム最大消去回数202とスペア最大消去回数203との差(第2の差)が閾値Th2未満か否かを判断する(S304)。
S304の判断結果が肯定の場合(S304:YES)、マイクロプロセッサ6は、データコピー処理を行う(S305)。具体的には、次の処理を行う。すなわち、図4に示すように、マイクロプロセッサ6は、最小登録消去回数に対応した物理ブロック(コピー元ブロック)からスペア最大消去回数203に対応したスペアブロック(コピー先ブロック)にデータをコピーする(S401)。マイクロプロセッサ6は、コピー先ブロックを、コピー元ブロックに代えてコピー元ブロックのマッピング先の論理ブロックにマッピングする(S402)。マイクロプロセッサ6は、コピー元ブロックからデータを消去し、コピー元ブロックの消去回数を更新し(例えば1を加算し)、コピー元ブロックをスペアブロックとして管理する(S403)。S402により、アドレス変換テーブル205が更新される。また、S403により、物理ブロック管理テーブル201が更新され、それに伴い、スペア最大消去回数203及びスペア最小消去回数204のうちの少なくともスペア最大消去回数203が更新される。
S302の判断結果が肯定の場合(S302:YES)、又は、S304の判断結果が否定の場合(つまり、第2の差が閾値Th2以上の場合)(S304:NO)、マイクロプロセッサ6は、データコピー処理(S305)を行うことなく第1ウエアレベリング処理を終了する。
第1ウエアレベリング処理によれば、「閾値Th1」が設定されている意味は、当面消去も書き込みも行われていない物理ブロックを認識するためであり、「閾値Th2」は、最近までに消去されているスペアブロックがあるか否かを判断するためである。「閾値Th1」及び「閾値Th2」の少なくとも1つは、フラッシュメモリ2の耐久性等により適宜決めることができる。
以下、閾値Th1及び閾値Th2の意義と、S302及びS304の判断の意義を説明する。
まず、ウエアレベリングの基本的な考え方によれば、高頻度更新論理ブロック(比較的更新頻度が高い論理ブロック)に割り当てられる物理ブロックは、消去回数が大きくなりやすく、低頻度更新論理ブロック(比較的更新頻度が低い論理ブロック)に割り当てられる物理ブロックは、消去回数が小さく、故に、高頻度更新論理ブロックには、消去回数が小さい物理ブロックが割り当てられ、低頻度更新論理ブロックには、消去回数が大きい物理ブロックが割り当てられることが、消去回数の平準化の観点で好ましい。
本実施形態によれば、論理ブロックに物理ブロックが新たにマッピングされたときに、その論理ブロックに、物理ブロックのマッピング時点のシステム最大消去回数(登録消去回数)が関連付けられる。各論理ブロックの登録消去回数は、その論理ブロックにマッピングされている物理ブロックが別の物理ブロックに変更されたときに、その時点のシステム最大消去回数に更新される。
閾値Th1とS302との意義を説明する。最小登録消去回数に対応した論理ブロックは、いつまでも更新がされていない論理ブロックである。本実施形態では、そのような論理ブロックに割り当てられる物理ブロックの消去回数は最小とみなされる。S302の判断では、最小登録消去回数に対応した論理ブロックにマッピングされている物理ブロックの実際の消去回数は考慮されない。システム最大消去回数と最小登録消去回数の差が大きければ、いつまでも更新がされていない論理ブロックが存在し故に消去回数にばらつきが生じているとみなされ、データコピー処理(S305)が行われる方向に処理が進む。
また、閾値Th1と比較される差分は、システム最大消去回数と最小登録消去回数との差分であるが、登録消去回数は、いずれかの物理ブロックからデータが消去されたからといって更新されるものではない。このため、ウエアレベリング処理の頻発を回避できる。
次に、閾値Th2とS304との意義を説明する。システム最大消去回数とスペア最大消去回数との差が小さければ、データコピー処理(S305)が行われる。システム最大消去回数とスペア最大消去回数との差が小さいということは、スペア最大消去回数は十分大きいということである。そして、閾値Th1について述べたように、最小登録消去回数に対応した論理ブロックは、いつまでも更新がされていない論理ブロックであり、本実施形態では、そのような論理ブロックにマッピングされている物理ブロックの消去回数は最小とみなされる。従って、消去回数が最小とみなされた物理ブロックから、スペア最大消去回数のスペアブロックにデータをコピーすることは、消去回数の平準化の理屈にかなう。
図5は、本実施形態に係る第2ウエアレベリング処理のフローチャートである。
第2ウエアレベリング処理は、例えば、ダイナミックなウエアレベリング処理の一例であり、具体的には、例えば、新規マッピング書込み処理である。新規マッピング書込み処理とは、ホストシステム4からの書込みコマンドで指定されているLBAが属する論理ブロック(書込み先論理ブロック)にマッピングされている物理ブロックに空きの物理ページが無くスペアブロックをマッピングする必要があるケースでの書込み処理である。
マイクロプロセッサ6は、書込み先論理ブロックに対応した登録消去回数をアドレス変換テーブル205から取得する(S501)。マイクロプロセッサ6は、システム最大消去回数202と取得した登録消去回数との差(第3の差)が閾値Th3未満か否かを判断する(S502)。
S502の判断結果が否定の場合(S502:NO)、マイクロプロセッサ6は、スペア最大消去回数203を取得し(S503)、スペア最大消去回数203のスペアブロックを書込み先論理ブロックにマッピングし、そのマッピングしたスペアブロックにデータ(ホストシステム4からの書込みコマンドに従う書込み対象データ)を書き込む(S505)。
一方、S502の判断結果が肯定の場合(S502:YES)、マイクロプロセッサ6は、スペア最小消去回数204を取得し(S504)、スペア最小消去回数204のスペアブロックを書込み先論理ブロックにマッピングし、そのマッピングしたスペアブロックにデータを書き込む(S505)。
第2ウエアレベリング処理によれば、システム最大消去回数と書込み先論理ブロックに対応する登録消去回数との差が大きければ(閾値Th3以上であれば)、書込み先論理ブロックに対する書込みの頻度は低く、故に、スペア最大消去回数のスペアブロックが割り当てられる。一方、システム最大消去回数と書込み先論理ブロックに対応する登録消去回数との差が小さければ(閾値Th3未満であれば)、書込み先論理ブロックに対する書込みの頻度は高く、故に、スペア最小消去回数のスペアブロックが割り当てられる。これにより、消去回数の平準化が実現される。
本実施形態によれば、ほとんど書込み先とならない論理ブロックについても消去回数を平準化できる。また、過去の期間において書込み先となる頻度が高かったが直近の期間において書込み先となる頻度が低い論理ブロック群についても、消去回数を平準化できる。更に、フラッシュメモリ2の容量又は耐久性によって閾値Th1及びTh2の少なくとも1つを設定できるので、フラッシュメモリ2の耐久性等に基づき第1ウエアレベリング処理の頻度を調節できる。
以上、本発明の一実施形態を説明したが、これは、本発明の説明のための例示であって、本発明の範囲をこの実施例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施する事が可能である。例えば、上述したFMシステム1は、フラッシュメモリ以外のメモリ(揮発性メモリ又は不揮発性メモリ)を有するメモリシステム全般に適用することができる。また、メモリコントローラが有するプロセッサは、典型的にはマイクロプロセッサでよいが、処理の一部を実行するハードウェア回路を含んでいてもよい。また、登録消去回数は、アドレス変換テーブルに登録されなくてもよく、アドレス変換テーブルとは別のテーブル等により論理アドレスに関連付けられていればよい。
1:FMシステム

Claims (6)

  1. 物理領域単位でデータが消去されるメモリが有する複数の物理領域のうちのスペア物理領域を論理領域にマッピングし、マッピングした前記スペア物理領域に、ホストシステムからの書込み要求に従うデータを書き込むメモリコントローラであって、
    論理空間を構成する複数の論理領域の各々について登録消去回数が登録される記憶部と、
    前記複数の論理領域のうちのいずれかの論理領域にスペア物理領域をマッピングするときのシステム最大消去回数をそのマッピング先の論理領域に関連付けられる前記登録消去回数として前記記憶部に登録するプロセッサと
    を有し、
    前記システム最大消去回数は、前記複数の物理領域にそれぞれ対応した複数の消去回数のうちの最大値である、
    メモリコントローラ。
  2. 前記プロセッサは、
    前記システム最大消去回数と、前記複数の論理領域にそれぞれ対応した複数の登録消去回数のうちの最小値である最小登録消去回数とを取得し、
    前記取得したシステム最大消去回数と前記取得した最小登録消去回数との差が第1の閾値未満か否かの第1の判断を行い、
    前記第1の判断の結果が否定の場合、データコピー処理を行い、
    前記データコピー処理は、コピー元物理領域からコピー先物理領域へデータをコピーする処理と、前記コピー先物理領域を前記取得した最小登録消去回数が関連付けられている論理領域にマッピングする処理とを含み、
    前記コピー元物理領域は、前記取得した最小登録消去回数が関連付けられている論理領域にマッピングされている物理領域であり、
    前記コピー先物理領域は、スペア最大消去回数のスペア物理領域であり、
    前記スペア最大消去回数は、1以上のスペア物理領域にそれぞれ対応した消去回数のうちの最大値である、
    請求項1記載のメモリコントローラ。
  3. 前記プロセッサは、
    前記取得したシステム最大消去回数と、前記スペア最大消去回数との差が第2の閾値未満か否かの第2の判断を行い、
    前記第1の判断の結果が否定であり前記第2の判断の結果が肯定の場合に、前記データコピー処理を行う、
    請求項2記載のメモリコントローラ。
  4. 前記プロセッサは、
    前記複数の物理領域にそれぞれ対応した複数の消去回数のうちの最大値であるシステム最大消去回数と前記ホストシステムからの書込み要求に従う書込み先論理領域に関連付けられている登録消去回数との差が第3の閾値未満か否かの第3の判断を行い、
    前記第3の判断の結果が否定の場合に、前記スペア最大消去回数のスペア物理領域を前記書込み先論理領域にマッピングし、
    前記第3の判断の結果が肯定の場合に、スペア最小消去回数のスペア物理領域を前記書込み先論理領域にマッピングし、
    前記スペア最大消去回数は、1以上のスペア物理領域にそれぞれ対応した消去回数のうちの最大値であり、
    前記スペア最小消去回数は、前記1以上のスペア物理領域にそれぞれ対応した消去回数のうちの最小値である、
    請求項1記載のメモリコントローラ。
  5. 請求項1乃至4のうちのいずれか1項に記載のメモリコントローラと、
    前記メモリコントローラに接続されたメモリと
    を有するメモリシステム。
  6. 複数の物理領域を有し物理領域単位でデータが消去されるメモリの制御方法であって、
    前記メモリが有する複数の物理領域のうちのスペア物理領域を、前記ホストシステムに提供される論理空間を構成する複数の論理領域のうちのいずれかの論理領域にマッピングし、
    前記スペア物理領域を前記論理領域にマッピングするときの、前記複数の物理領域にそれぞれ対応した複数の消去回数のうちの最大値であるシステム最大消去回数を、そのマッピング先の論理領域に登録消去回数として関連付ける、
    メモリ制御方法。
JP2014066369A 2014-03-27 2014-03-27 メモリコントローラ、メモリシステム及びメモリ制御方法 Active JP5858081B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014066369A JP5858081B2 (ja) 2014-03-27 2014-03-27 メモリコントローラ、メモリシステム及びメモリ制御方法
US14/620,332 US9703495B2 (en) 2014-03-27 2015-02-12 Memory controller, memory system, and memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014066369A JP5858081B2 (ja) 2014-03-27 2014-03-27 メモリコントローラ、メモリシステム及びメモリ制御方法

Publications (2)

Publication Number Publication Date
JP2015191294A JP2015191294A (ja) 2015-11-02
JP5858081B2 true JP5858081B2 (ja) 2016-02-10

Family

ID=54190403

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014066369A Active JP5858081B2 (ja) 2014-03-27 2014-03-27 メモリコントローラ、メモリシステム及びメモリ制御方法

Country Status (2)

Country Link
US (1) US9703495B2 (ja)
JP (1) JP5858081B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11256432B2 (en) 2018-11-21 2022-02-22 Tdk Corporation Memory controller and memory system

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107025066A (zh) 2016-09-14 2017-08-08 阿里巴巴集团控股有限公司 在基于闪存的存储介质中写入存储数据的方法和装置
JP2019057172A (ja) * 2017-09-21 2019-04-11 東芝メモリ株式会社 メモリシステムおよび制御方法
US10990472B2 (en) 2018-07-24 2021-04-27 Micron Technology, Inc. Spare substitution in memory system

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6230233B1 (en) * 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US20080082736A1 (en) * 2004-03-11 2008-04-03 Chow David Q Managing bad blocks in various flash memory cells for electronic data flash card
JP4485231B2 (ja) 2004-03-24 2010-06-16 京セラ株式会社 電子機器
KR100857761B1 (ko) * 2007-06-14 2008-09-10 삼성전자주식회사 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법
US7925822B2 (en) * 2008-01-31 2011-04-12 Sandisk Il Ltd Erase count recovery
US9547589B2 (en) * 2008-06-18 2017-01-17 Super Talent Technology, Corp. Endurance translation layer (ETL) and diversion of temp files for reduced flash wear of a super-endurance solid-state drive
US20100017556A1 (en) * 2008-07-19 2010-01-21 Nanostar Corporationm U.S.A. Non-volatile memory storage system with two-stage controller architecture
US8140739B2 (en) * 2008-08-08 2012-03-20 Imation Corp. Flash memory based storage devices utilizing magnetoresistive random access memory (MRAM) to store files having logical block addresses stored in a write frequency file buffer table
JP4821845B2 (ja) * 2008-12-22 2011-11-24 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4821844B2 (ja) * 2008-12-22 2011-11-24 Tdk株式会社 メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4666081B2 (ja) * 2009-02-09 2011-04-06 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
TW201120898A (en) * 2009-12-07 2011-06-16 Jmicron Technology Corp Mehtod for wear-leveling and apparatus thereof
TWI455131B (zh) * 2010-04-16 2014-10-01 Silicon Motion Inc 記憶體之資料寫入方法及資料儲存裝置
TW201239619A (en) * 2011-03-21 2012-10-01 Silicon Motion Inc Writing method of a flash memory and flash memory device
TWI516922B (zh) * 2014-03-12 2016-01-11 慧榮科技股份有限公司 資料儲存裝置及快閃記憶體零散資料收集方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11256432B2 (en) 2018-11-21 2022-02-22 Tdk Corporation Memory controller and memory system

Also Published As

Publication number Publication date
US9703495B2 (en) 2017-07-11
US20150277787A1 (en) 2015-10-01
JP2015191294A (ja) 2015-11-02

Similar Documents

Publication Publication Date Title
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4666080B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2011203916A (ja) メモリコントローラ、および半導体記憶装置
JP4666081B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US9122586B2 (en) Physical-to-logical address map to speed up a recycle operation in a solid state drive
JP5093294B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP5858081B2 (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
JP2018160189A (ja) メモリシステム
US20190012260A1 (en) Flash memory package and storage system including flash memory package
US9778862B2 (en) Data storing method for preventing data losing during flush operation, memory control circuit unit and memory storage apparatus
JP4488048B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4636005B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2009110314A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2007323159A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4241741B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4434171B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4661566B2 (ja) アクセスコントローラ、フラッシュメモリシステム及びアクセス制御方法
JP4952742B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP6260395B2 (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
JP4952741B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
JP2010086107A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US20240202113A1 (en) Memory system
JP2010146512A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150901

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151005

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151130

R150 Certificate of patent or registration of utility model

Ref document number: 5858081

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150