[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2020086739A - メモリコントローラ及びこれを備えるフラッシュメモリシステム - Google Patents

メモリコントローラ及びこれを備えるフラッシュメモリシステム Download PDF

Info

Publication number
JP2020086739A
JP2020086739A JP2018217908A JP2018217908A JP2020086739A JP 2020086739 A JP2020086739 A JP 2020086739A JP 2018217908 A JP2018217908 A JP 2018217908A JP 2018217908 A JP2018217908 A JP 2018217908A JP 2020086739 A JP2020086739 A JP 2020086739A
Authority
JP
Japan
Prior art keywords
mode
memory
flash memory
blocks
pslc
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
JP2018217908A
Other languages
English (en)
Other versions
JP7095568B2 (ja
Inventor
信太 和夫
Kazuo Shinoda
和夫 信太
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 JP2018217908A priority Critical patent/JP7095568B2/ja
Priority to US16/687,189 priority patent/US10956067B2/en
Publication of JP2020086739A publication Critical patent/JP2020086739A/ja
Application granted granted Critical
Publication of JP7095568B2 publication Critical patent/JP7095568B2/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/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/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/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • 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/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

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)
  • Computer Hardware Design (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】フラッシュメモリの一部のメモリ領域を疑似モードで使用するフラッシュメモリシステムにおいて、フラッシュメモリ全体としての寿命を伸ばすメモリコントローラを提供する。【解決手段】フラッシュメモリシステム2において、メモリコントローラ10は、ホストシステム4とフラッシュメモリ20〜2kの間におけるデータ転送を制御する。メモリコントローラは、フラッシュメモリに含まれる第1のメモリ領域を疑似SLCモードで使用するとともに、第2のメモリ領域をMLCモードで使用する第1の動作状態と、第1のメモリ領域をMLCモードで使用するとともに、第2のメモリ領域を疑似SLCモードで使用する第2の動作状態とを有する。第1の動作状態と第2の動作状態を使用してセルタイプ間におけるウェアレベリングがなされる。【選択図】図1

Description

本発明はメモリコントローラ及びこれを備えるフラッシュメモリシステムに関し、特に、フラッシュメモリの一部のメモリ領域を疑似SLC(pSLC)モードや疑似MLC(pMLC)モードで動作させるメモリコントローラ及びこれを備えるフラッシュメモリシステムに関する。
フラッシュメモリには、1つのセルに1ビットの情報を記憶するSLCタイプのフラッシュメモリ、1つのセルに2ビットの情報を記憶するMLCタイプのフラッシュメモリ、1つのセルに3ビットの情報を記憶するTLCタイプのフラッシュメモリなどが存在する。SLCタイプのフラッシュメモリは、ビットエラーが生じにくいとともに、書き換え可能回数が多いことから信頼性が高いという利点を有する一方、ビット単価が高いという欠点がある。これに対し、MLCタイプやTLCタイプのフラッシュメモリは、1つのメモリセルに2ビット又は3ビットのデータを記憶することができることから、ビット単価が安いという利点を有している。
特許文献1には、SLCタイプのフラッシュメモリとMLCタイプのフラッシュメモリの両方を用いることによって、各タイプの特徴を生かしたフラッシュメモリシステムが開示されている。また、特許文献2には、ハードディスクドライブなどの補助記憶装置が接続されている場合、MLCタイプのフラッシュメモリを疑似SLCモードで使用することにより信頼性を向上させる方法が提案されている。特許文献2に記載されているように、MLCタイプのフラッシュメモリを疑似SLCモードで使用すれば、メモリ容量は減少するものの信頼性が向上する。
特開2017−224112号公報 特開2017−228010号公報
しかしながら、フラッシュメモリの一部のメモリ領域だけを疑似SLCモードで使用する場合、MLCモードで使用するメモリ領域と疑似SLCモードで使用するメモリ領域とで書き換え可能回数が異なるため、一方のセルタイプが寿命に達すると、他方のセルタイプの寿命が残っていても、フラッシュメモリ全体として使用できなくなる。このため、フラッシュメモリ全体としての寿命が短くなるという問題があった。フラッシュメモリの書き換え可能回数には上限があり、一般的にSLCタイプが最も書き換え可能回数が多く、MLCタイプが次に書き換え可能回数が多く、TLCタイプが最も書換え可能回数が少ないことが知られている。
このような問題は、MLCタイプのフラッシュメモリの一部を疑似SLCモードで使用する場合のみならず、TLCタイプのフラッシュメモリの一部を疑似SLCモードで使用する場合や、TLCタイプのフラッシュメモリの一部を疑似MLCモードで使用する場合など、1つのメモリセルに記憶させるビット数をフラッシュメモリの一部のメモリ領域において少なくする全てのケースにおいて生じる問題である。
したがって、本発明は、フラッシュメモリの一部のメモリ領域を疑似モードで使用する場合に、フラッシュメモリ全体としての寿命を最後まで使い切ることを目的とする。
本発明によるメモリコントローラは、ホストシステムとフラッシュメモリの間におけるデータ転送を制御するメモリコントローラであって、フラッシュメモリに含まれる第1のメモリ領域を、1つのセルにnビット未満の情報を記憶させる第1の記憶モードで使用するとともに、フラッシュメモリに含まれる第2のメモリ領域を、1つのセルにnビット以上の情報を記憶させる第2の記憶モードで使用する第1の動作状態と、第1のメモリ領域を第2の記憶モードで使用するとともに、第2のメモリ領域を第1の記憶モードで使用する第2の動作状態とを有することを特徴とする。また、本発明によるフラッシュメモリシステムは、上記のメモリコントローラとフラッシュメモリとを備える。
本発明によれば、第1の動作状態においては第1及び第2のメモリ領域をそれぞれ第1及び第2の記憶モードで使用し、第2の動作状態においては第1及び第2のメモリ領域をそれぞれ第2及び第1の記憶モードで使用していることから、セルタイプ間におけるウェアレベリングがなされる。これにより、一部のメモリ領域だけが早期に寿命に達することがないため、フラッシュメモリ全体としての寿命を最後まで使い切ることが可能となる。
本発明においては、第1のメモリ領域に対する書き換え回数が所定の条件を満たした場合に、第1の動作状態から第2の動作状態に移行しても構わない。これによれば、第1のメモリ領域が第1の記憶モードにおける寿命に達する前に、第1のメモリ領域を第2の記憶モードに切り替えることが可能となる。
本発明によるメモリコントローラは、第1及び第2のメモリ領域を第2の記憶モードで使用するとともに、フラッシュメモリに含まれる第3のメモリ領域を第1の記憶モードで使用する第3の動作状態をさらに有し、第1及び第2の動作状態においては、フラッシュメモリに含まれる第3のメモリ領域を第2の記憶モードで使用し、第2のメモリ領域に対する書き換え回数が所定の条件を満たした場合に、第2の動作状態から第3の動作状態に移行するものであっても構わない。これによれば、第2のメモリ領域が第1の記憶モードにおける寿命に達する前に、第2のメモリ領域を第2の記憶モードに戻すことが可能となる。
本発明においては、第1の動作状態から、第2及び第3の動作状態を含む他の動作状態に移行した後、所定の条件が満たされた場合に、再び第1の動作状態に移行しても構わない。これによれば、第1のメモリ領域の記憶モードが交互に切り替えられることから、第1の記憶モードにおける寿命と第2の記憶モードにおける寿命をいずれも最大値近傍(例えば最大値の80%)まで使い切ることが可能となる。
本発明において、第1及び第2のメモリ領域は、いずれも単一のブロックからなるものであっても構わないし、いずれも複数のブロックからなるものであっても構わない。前者によれば、各ブロックの寿命を最大化することが可能となる。一方、後者によれば、メモリコントローラによる寿命管理を簡素化することが可能となる。
このように、本発明によれば、フラッシュメモリの一部のメモリ領域を疑似モードで使用する場合において、フラッシュメモリ全体としての寿命を最後まで使い切ることが可能となる。
図1は、本発明の好ましい実施形態によるフラッシュメモリシステム2の構成を説明するためのブロック図である。 図2は、フラッシュメモリ20〜2kを構成するメモリセルの記憶モードについて説明するための模式図である。 図3は、フラッシュメモリ20を構成するブロックを示す模式図である。 図4は、記憶モード管理部17内におけるデータ構造の第1の例を説明するための図である。 図5は、書き換え回数42又は43の値の一例を示す図である。 図6(a)〜(c)は、記憶モード管理部17内における制御データ40の値の変化の一例を示す図である。 図7(a)〜(c)は、フラッシュメモリ20を構成するブロック0〜ブロック999の記憶モードを示す図である。 図8は、記憶モード管理部17内におけるデータ構造の第2の例を説明するための図である。 図9は、フラッシュメモリ20を構成するブロックを示す模式図であり、第1の動作状態を示している。 図10は、書き換え回数42又は43の値の一例を示す図である。 図11は、フラッシュメモリ20を構成するブロックを示す模式図であり、第2の動作状態を示している。 図12は、書き換え回数42又は43の値の別の例を示す図である。 図13は、フラッシュメモリ20を構成するブロックを示す模式図であり、第3の動作状態を示している。 図14(a)〜(c)は、書き換え回数をグループごとに示す模式図である。 図15(a)〜(c)は、書き換え回数をグループごとに示す模式図である。
以下、添付図面を参照しながら、本発明の好ましい実施形態について詳細に説明する。
図1は、本発明の好ましい実施形態によるフラッシュメモリシステム2の構成を説明するためのブロック図である。
本実施形態によるフラッシュメモリシステム2は、メモリコントローラ10と複数のフラッシュメモリ20〜2kを有している。特に限定されるものではないが、フラッシュメモリ20〜2kはNAND型のフラッシュメモリであり、本実施形態においてはMLCタイプのメモリセルによって構成されている。図1に示す例では、k+1個のフラッシュメモリ20〜2kが搭載されているが、搭載されるフラッシュメモリの数については特に限定されない。
メモリコントローラ10は、外部のホストシステム4とフラッシュメモリ20〜2kとの間に設けられ、これらの間におけるデータ転送を制御する。ホストシステム4とメモリコントローラ10との間におけるデータ及びコマンドの送受信はホストインターフェース11を介して行われ、フラッシュメモリ20〜2kとメモリコントローラ10との間におけるデータ及びコマンドの送受信はフラッシュインターフェース12を介して行われる。
メモリコントローラ10は、CPU13、RAM14、ROM15、バッファメモリ16及び記憶モード管理部17を有している。CPU13は、ROM15に保持されているプログラムに従って、メモリコントローラ10の全体の動作を制御する。ROM15に保持されたプログラムは、パワーオン時にRAM14に展開されても構わない。RAM14は、フラッシュメモリ20〜2kの制御に必要なデータを一時的に格納する作業領域であり、例えば複数のSRAMセルによって構成されている。バッファメモリ16は、フラッシュメモリ20〜2kから読み出されたリードデータ及びフラッシュメモリ20〜2kに書き込むべきライトデータを一時的に保持する回路であり、RAM14の一部をバッファメモリ16として用いても構わない。これにより、ホストシステム4から供給されるライトデータは、バッファメモリ16に一時的に保持され、フラッシュメモリ20〜2kが書き込み可能な状態となった後、フラッシュインターフェース12を介してフラッシュメモリ20〜2kに転送される。また、フラッシュメモリ20〜2kから読み出されたリードデータは、バッファメモリ16に一時的に保持され、ホストシステム4が受け付け可能な状態となった後、ホストインターフェース11を介してホストシステム4に転送される。
さらに、メモリコントローラ10は、記憶モード管理部17を有している。記憶モード管理部17は、フラッシュメモリ20〜2kを構成する各ブロックの記憶モードを指定するとともに、記憶モードごとの書き換え回数を管理する回路である。記憶モード管理部17は、CPU13、RAM14及びROM15とは別個に設けられた専用の回路であっても構わないし、一部又は全部の機能がCPU13、RAM14又はROM15によって実現されるものであっても構わない。
図2は、フラッシュメモリ20〜2kを構成するメモリセルの記憶モードについて説明するための模式図である。ここで、フラッシュメモリ20〜2kは、ブロック単位で消去を実行し、ページ単位で書き込みと読み出しを実行する不揮発性メモリであり、各ブロックは複数のページで構成されている。
図2に示すように、本実施形態においてはフラッシュメモリ20〜2kを構成するメモリセルがMLCタイプのセルであるが、一部のメモリ領域31については疑似SLC(pSLC)モードで使用される。その他のメモリ領域32については、そのままMLCモードで使用される。メモリセルをどの記憶モードで使用するかは、コントローラ10からフラッシュメモリ20〜2kに供給されるコマンドによって指定される。ここで、MLCモードで使用されるブロックにおいては、MLCモード用の書き込みコマンド、読み出しコマンド及び消去コマンドを用いた処理が実行される。一方、SLC(pSLC)モードで使用されるブロックにおいては、SLC(pSLC)モード用の書き込みコマンド、読み出しコマンド及び消去コマンドを用いた処理が実行される。また、MLCモードで使用していたブロックをSLC(pSLC)モードで使用するブロックに切り替える場合には、MLCモード用の消去コマンドを用いた消去処理を実行した後に、SLC(pSLC)モード用の書き込みコマンドを用いた書き込み処理を実行すればよい。一方、SLC(pSLC)モードで使用していたブロックをMLCモードで使用するブロックに切り替える場合には、SLC(pSLC)モード用の消去コマンドを用いた消去処理を実行した後に、MLCモード用の書き込みコマンドを用いた書き込み処理を実行すればよい。
pSLCモードのメモリ領域31は、フラッシュメモリ20〜2k内におけるバッファ又はキャッシュとして使用される。したがって、フラッシュインターフェース12から供給されるライトデータは、MLCモードのメモリ領域32に直接書き込まれるのではなく、一旦pSLCモードのメモリ領域31に書き込まれる。そして、メモリ領域31を構成する所定のブロックが特定のデータサイズになった場合、このブロックに書き込まれたデータをMLCモードのメモリ領域32にコピーする。
このように、一部のメモリ領域31をバッファ又はキャッシュとして使用しているのは、MLCモードで使用するブロックに未書き込みページが存在すると、読み出しエラーが生じやすくなるからである。つまり、MLCモードで動作するメモリ領域32については、ブロック単位でデータを書き込むことが望ましく、これを実現するために一部のメモリ領域31をpSLCモードで使用している。但し、メモリ領域31はバッファ又はキャッシュとして使用されるため、他のメモリ領域32に比べて書き換え頻度が非常に高くなる。メモリセルをpSLCモードで使用すると、MLCモードで使用する場合と比べて書き換え可能回数が大幅に増加するものの、書き換え頻度によっては、pSLCモードのメモリ領域31が先に寿命に達してしまうことが考えられる。
この点を考慮し、本実施形態においてはpSLCモードのメモリ領域31を固定するのではなく、pSLCモードのメモリ領域31とMLCモードのメモリ領域32を随時入れ替える処理を行う。以下、この処理について詳細に説明する。
図3は、フラッシュメモリ20を構成するブロックを示す模式図である。他のフラッシュメモリ21〜2kに対しても同様の処理が行われることから、以下、フラッシュメモリ20に対する処理に着目して説明を進める。
図3に示す例では、フラッシュメモリ20にブロック0〜ブロック999からなる1000個のブロックが含まれている。このうち、初期状態においてはブロック0〜ブロック99からなる100個のブロックがpSLCモードのメモリ領域31を構成し、ブロック100〜ブロック999からなる900個のブロックがMLCモードのメモリ領域32を構成する。したがって、pSLCモードのメモリ領域31よりも、MLCモードのメモリ領域32の方が大きなメモリ容量を有している。本例では、pSLCモードのメモリセルの割合は全体の10%である。
また、フラッシュメモリ20には管理領域33が含まれている。管理領域33は、メモリコントローラ10に含まれる記憶モード管理部17内のデータを保持するためのブロックである。管理領域33を構成するブロックの記憶モードは、pSLCモードであっても構わないし、MLCモードであっても構わない。さらに、ブロック0〜ブロック999のいずれかを管理領域33に割り当てても構わない。
図4は、記憶モード管理部17内におけるデータ構造の第1の例を説明するための図である。
図4に示すように、記憶モード管理部17には、ブロック0〜ブロック999にそれぞれ対応する制御データ40が保持されている。各制御データ40は、当該ブロックの記憶モード41、pSLCモードにおける書き換え回数42、MLCモードにおける書き換え回数43によって構成されている。図4には、初期状態の制御データ40が示されており、したがって、ブロック0〜ブロック99に対応する記憶モード41はpSLCモードを示し、ブロック100〜ブロック999に対応する記憶モード41はMLCモードを示している。また、書き換え回数42及び43はいずれもゼロである。
このような初期状態からスタートしてフラッシュメモリ20に対するアクセスが実行され、これによりデータの書き換えが行われるたびに、記憶モード管理部17は対応するブロックの書き換え回数42又は43の値を増加させる。ここで、pSLCモードで使用されるブロック0〜ブロック99は、バッファ又はキャッシュとして使用されることから、書き換え回数42の値が比較的頻繁に増加する。これに対し、MLCモードで使用されるブロック100〜ブロック999については、書き換え回数43の値の増加は緩やかである。図5には、初期状態からしばらく経過した後の書き換え回数42又は43の値の一例が示されている。図5に示すように、ブロック0〜ブロック99については、pSLCモードにおける書き換え回数42の値が増加しているのに対し、MLCモードにおける書き換え回数43の値はゼロのままである。逆に、ブロック100〜ブロック999については、MLCモードにおける書き換え回数43の値が増加しているのに対し、pSLCモードにおける書き換え回数42の値はゼロのままである。
記憶モード管理部17は、pSLCモードにおける書き換え回数42の値が所定値に達すると、当該ブロックの記憶モード41をpSLCモードからMLCモードに切り替えるとともに、MLCモードで動作している別のブロックの記憶モード41をpSLCモードに切り替える。上記の「所定値」の具体的な値については特に限定されないが、少なくとも、pSLCモードにおける書き換え可能回数以下値である必要があり、pSLCモードにおける書き換え可能回数よりも十分に少ない値(例えば、pSLCモードにおける書き換え可能回数の1/100)であることが好ましい。一例として、本実施形態では書き換え回数42の値が100に達するたびに、上記の切り替えを行う場合を例に説明する。
図6は、記憶モード管理部17内における制御データ40の値の変化の一例を示す図であり、(a),(b),(c)の順に時間が経過し、書き換え回数が増加する様子が示されている。また、図7(a)〜(c)は、フラッシュメモリ20を構成するブロック0〜ブロック999の記憶モードを示す図であり、それぞれ図6(a)〜(c)の状態に対応している。
図6(a)に示す動作状態では、ブロック0、96、97に対応する書き換え回数42の値が100に達し、これに応じてブロック0、96、97の記憶モード41がMLCモードに切り替えられている。また、pSLCモードで動作するブロックが3つ減ったことに応答して、ブロック100〜102の記憶モード41がpSLCモードに切り替えられている。これにより、フラッシュメモリ20内における記憶モードも、図7(a)に示す通りとなる。MLCモードからpSLCモードに切り替えられるブロックの選択方法については特に限定されないが、ここではブロック番号順に切り替える場合を例に説明する(他にも書き換え回数が多い順から切り替える方法や書き換え回数が少ない順から切り替える方法など様々考えられる)。図3に示す動作状態と図6(a)に示す動作状態を比較すると、図3に示す第1の動作状態においては、ブロック0、96、97がpSLCモードで使用され、ブロック100〜102がMLCモードで使用されているのに対し、図6(a)に示す第2の動作状態においては、ブロック0、96、97がMLCモードで使用され、ブロック100〜102がpSLCモードで使用されていることが分かる。
図6(b)に示す動作状態では、さらにブロック2、4、99に対応する書き換え回数42の値が100に達し、これに応じてブロック2、4、99の記憶モード41がMLCモードに切り替えられている。また、pSLCモードで動作するブロックが3つ減ったことに応答して、ブロック103〜105の記憶モード41がpSLCモードに切り替えられている。これにより、フラッシュメモリ20内における記憶モードも、図7(b)に示す通りとなる。図6(a)に示す動作状態と図6(b)に示す動作状態を比較すると、図6(a)に示す第2の動作状態においては、ブロック2、4、99がpSLCモードで使用され、ブロック103〜105がMLCモードで使用されているのに対し、図6(b)に示す第3の動作状態においては、ブロック2、4、99がMLCモードで使用され、ブロック103〜105がpSLCモードで使用されていることが分かる。
図6(c)に示す動作状態では、ブロック0〜99に対応する書き換え回数42の値がすべて100に達しており、ブロック0〜99の記憶モード41が全てMLCモードに切り替えられている。その代わりに、ブロック100〜199の記憶モード41がpSLCモードに切り替えられている。これにより、フラッシュメモリ20内における記憶モードも、図7(c)に示す通りとなる。
このような記憶モードの切り替え動作は、最後のブロック999がpSLCモードに切り替えられるまで順次実行される。そして、ブロック999がpSLCモードに切り替えられた後は、再び先頭のブロック0に戻り、ブロック0、1、2の順にpSLCモードに順次切り替える。本実施形態においては、このような動作を繰り返し実行することによりpSLCモードで使用するブロックを随時入れ替えている。ここで、書き換え回数42の値は、所定値(本例では100)に達するたびにリセットしても構わないし、そのままカウントを継続しても構わない。前者の場合、書き換え回数42の値が100に達するたびに、pSLCモードからMLCモードに切り替えればよい。この場合、制御データ40のデータ量を削減することができる。一方、後者の場合、書き換え回数42の値の下2桁が00を示すたびに、pSLCモードからMLCモードに切り替えればよい。この場合、pSLCモードにおける累計書き換え回数を保存することが可能となる。
そして、システム終了時には、記憶モード管理部17に保持されている現在の制御データ40をフラッシュメモリ20の管理領域33に書き込む。これにより、現在の制御データ40を不揮発的に保持することが可能となる。そして、次回の電源投入時には、フラッシュメモリ20の管理領域33に保持されている制御データ40を読み出し、これを記憶モード管理部17にロードする。これにより、制御データ40を正しく引き継ぐことが可能となる。
このように、本実施形態によるフラッシュメモリシステムにおいては、pSLCモードで動作するブロックが順次切り替わることから、pSLCモードで使用するブロックをバッファ又はキャッシュとして使用する場合であっても、書き換え回数が偏在することがない。これにより書き換え回数がブロック間において平準化されることから、フラッシュメモリ20〜2k全体としての寿命を最大限に利用することが可能となる。
しかも、本実施形態においては、pSLCモードとMLCモードの切り替えをブロック単位で行っていることから、ブロック間におけるpSLCモードでの書き換え回数にほとんどばらつきが生じない。このため、書き換え回数のばらつきに起因する寿命の低下を最小限に抑えることが可能となる。
但し、本発明においてpSLCモードとMLCモードの切り替えをブロック単位で行うことは必須でなく、複数のブロック単位でモード切替を行っても構わない。以下、pSLCモードとMLCモードの切り替えをブロック単位で行う例について説明する。
図8は、記憶モード管理部17内におけるデータ構造の第2の例を説明するための図である。
図8に示す例では、フラッシュメモリ20内のブロック0〜ブロック999を10個のグループにグループ化し、グループごとに書き換え回数をカウントしている。図8には、初期状態の制御データ40が示されており、したがって、ブロック0〜ブロック99に対応するグループの記憶モード41はpSLCモードを示し、他のグループに対応する記憶モード41はMLCモードを示している。また、書き換え回数42及び43はいずれもゼロである。この状態においては、図9に示すように、ブロック0〜ブロック99がpSLCモードで動作し、ブロック100〜ブロック999がMLCモードで動作する。
このような初期状態からスタートしてフラッシュメモリ20に対するアクセスが実行され、これによりデータの書き換えが行われるたびに、記憶モード管理部17は対応するグループの書き換え回数42又は43の値を増加させる。記憶モード管理部17は、グループ内におけるブロックの区別は行わない。そして、図10に示すように、ブロック0〜ブロック99に対応するグループの書き換え回数42の値が所定値(本例では10000)に達すると、当該グループの記憶モード41をpSLCモードからMLCモードに切り替えるとともに、次のグループの記憶モード41をpSLCモードに切り替える。次のグループとは、ブロック100〜ブロック199に対応するグループである。これにより、図11に示すように、ブロック0〜ブロック99、ブロック200〜ブロック999がpSLCモードで動作し、ブロック100〜ブロック199がMLCモードで動作する。
フラッシュメモリ20に対するアクセスがさらに繰り返し実行され、図12に示すように、ブロック100〜ブロック199に対応するグループの書き換え回数42の値が所定値(本例では10000)に達すると、当該グループの記憶モード41をpSLCモードからMLCモードに切り替えるとともに、次のグループの記憶モード41をpSLCモードに切り替える。次のグループとは、ブロック200〜ブロック299に対応するグループである。これにより、図13に示すように、ブロック0〜ブロック199、ブロック300〜ブロック999がpSLCモードで動作し、ブロック200〜ブロック299がMLCモードで動作する。
図14及び図15は、書き換え回数をグループごとに示す模式図であり、網掛けされた矢印51はpSLCモードにおける書き換え回数を長さで示し、白い矢印52はMLCモードにおける書き換え回数を長さで示している。
図14(a)は、図8及び図9を用いて説明した状態、つまり、ブロック0〜ブロック99がpSLCモードで動作している状態を示している。そして、ブロック0〜ブロック99のpSLCモードにおける合計書き換え回数が所定値Aに達した場合、図14(b)の状態に移行する。図14(b)は、図10及び図11を用いて説明した状態、つまり、ブロック100〜ブロック199がpSLCモードで動作している状態を示している。そして、ブロック100〜ブロック199のpSLCモードにおける合計書き換え回数が所定値Aに達した場合、図14(c)の状態に移行する。図14(c)は、図12及び図13を用いて説明した状態、つまり、ブロック200〜ブロック299がpSLCモードで動作している状態を示している。
このような動作を順次行うと、図15(a)に示すように、ブロック900〜ブロック999がpSLCモードで動作する状態となる。そして、ブロック900〜ブロック999のpSLCモードにおける合計書き換え回数が所定値Aに達すると、図15(b)に示すように、再びブロック0〜ブロック99をMLCモードからpSLCモードに切り替える。その後の動作は同じであり、ブロック0〜ブロック99のpSLCモードにおける合計書き換え回数が所定値Bに達した場合、図15(c)の状態に移行する。ここで示す例では、所定値Bは、所定値Aの2倍としてあるが、その限りではない。
このように、pSLCモードとMLCモードの切り替えを複数のブロック単位で行えば、記憶モード管理部17による書き換え回数の管理を簡素化することができるとともに、制御データ40のデータ量を削減することが可能となる。
以上、本発明の好ましい実施形態について説明したが、本発明は、上記の実施形態に限定されることなく、本発明の主旨を逸脱しない範囲で種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることはいうまでもない。
例えば、上記実施形態では、MLCタイプのメモリセルからなるフラッシュメモリの一部のメモリ領域をpSLCモードで使用する例を説明したが、本発明がこれに限定されるものではない。したがって、本発明は、TLCタイプのメモリセルからなるフラッシュメモリの一部のメモリ領域をpSLCモードで使用するシステムに適用しても構わないし、TLCタイプのメモリセルからなるフラッシュメモリの一部のメモリ領域をpMLCモードで使用するシステムに適用しても構わない。つまり、1つのセルにnビット以上の情報を記憶可能なフラッシュメモリにおいて、一部のメモリ領域だけ1つのセルにnビット未満の情報を記憶させる記憶モードで使用する全てのケースに適用可能である。
また、上記実施形態では、書き換え回数に基づいてブロックの記憶モードを切り替える例を説明したが、本発明がこれに限定されるものではなく、書き換え回数以外の条件に基づいて記憶モードを切り替えても構わない。例えば、書き換え回数にかかわらず、一定期間ごとに記憶モードの切り替えを行っても構わない。
2 フラッシュメモリシステム
4 ホストシステム
10 メモリコントローラ
11 ホストインターフェース
12 フラッシュインターフェース
13 CPU
14 RAM
15 ROM
16 バッファメモリ
17 記憶モード管理部
20〜2k フラッシュメモリ
31 第1のメモリ領域
32 第2のメモリ領域
33 管理領域
40 制御データ
41 記憶モード
42,43 書き換え回数
51 pSLCモードにおける書き換え回数
52 MLCモードにおける書き換え回数

Claims (7)

  1. ホストシステムとフラッシュメモリの間におけるデータ転送を制御するメモリコントローラであって、
    前記フラッシュメモリに含まれる第1のメモリ領域を、1つのセルにnビット未満の情報を記憶させる第1の記憶モードで使用するとともに、前記フラッシュメモリに含まれる第2のメモリ領域を、1つのセルにnビット以上の情報を記憶させる第2の記憶モードで使用する第1の動作状態と、
    前記第1のメモリ領域を前記第2の記憶モードで使用するとともに、前記第2のメモリ領域を前記第1の記憶モードで使用する第2の動作状態と、を有することを特徴とするメモリコントローラ。
  2. 前記第1のメモリ領域に対する書き換え回数が所定の条件を満たした場合に、前記第1の動作状態から前記第2の動作状態に移行することを特徴とする請求項1に記載のメモリコントローラ。
  3. 前記第1及び第2のメモリ領域を前記第2の記憶モードで使用するとともに、前記フラッシュメモリに含まれる第3のメモリ領域を前記第1の記憶モードで使用する第3の動作状態をさらに有し、
    前記第1及び第2の動作状態においては、前記フラッシュメモリに含まれる第3のメモリ領域を前記第2の記憶モードで使用し、
    前記第2のメモリ領域に対する書き換え回数が所定の条件を満たした場合に、前記第2の動作状態から前記第3の動作状態に移行することを特徴とする請求項2に記載のメモリコントローラ。
  4. 前記第1の動作状態から、前記第2及び第3の動作状態を含む他の動作状態に移行した後、所定の条件が満たされた場合に、再び前記第1の動作状態に移行することを特徴とする請求項3に記載のメモリコントローラ。
  5. 前記第1及び第2のメモリ領域は、いずれも単一のブロックからなることを特徴とする請求項1乃至4のいずれか一項に記載のメモリコントローラ。
  6. 前記第1及び第2のメモリ領域は、いずれも複数のブロックからなることを特徴とする請求項1乃至4のいずれか一項に記載のメモリコントローラ。
  7. 請求項1乃至6のいずれか一項に記載のメモリコントローラと、前記フラッシュメモリとを備えるフラッシュメモリシステム。
JP2018217908A 2018-11-21 2018-11-21 メモリコントローラ及びこれを備えるフラッシュメモリシステム Active JP7095568B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018217908A JP7095568B2 (ja) 2018-11-21 2018-11-21 メモリコントローラ及びこれを備えるフラッシュメモリシステム
US16/687,189 US10956067B2 (en) 2018-11-21 2019-11-18 Memory controller and flash memory system having the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018217908A JP7095568B2 (ja) 2018-11-21 2018-11-21 メモリコントローラ及びこれを備えるフラッシュメモリシステム

Publications (2)

Publication Number Publication Date
JP2020086739A true JP2020086739A (ja) 2020-06-04
JP7095568B2 JP7095568B2 (ja) 2022-07-05

Family

ID=70727806

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018217908A Active JP7095568B2 (ja) 2018-11-21 2018-11-21 メモリコントローラ及びこれを備えるフラッシュメモリシステム

Country Status (2)

Country Link
US (1) US10956067B2 (ja)
JP (1) JP7095568B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11341048B2 (en) * 2018-10-29 2022-05-24 Micron Technology, Inc. SLC cache allocation
US10901622B2 (en) * 2018-12-28 2021-01-26 Micron Technology, Inc. Adjustable NAND write performance
CN112527204A (zh) * 2020-12-15 2021-03-19 深圳星火半导体科技有限公司 存储方法及装置
JP2023012773A (ja) 2021-07-14 2023-01-26 キオクシア株式会社 メモリシステムおよび制御方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011186555A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置及び方法
US20130141973A1 (en) * 2007-02-16 2013-06-06 Mosaid Technologies Incorporated Non-volatile memory with dynamic multi-mode operation

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8984211B2 (en) * 2011-12-21 2015-03-17 Hitachi, Ltd. Computer system and management system
JP6139381B2 (ja) * 2013-11-01 2017-05-31 株式会社東芝 メモリシステムおよび方法
JP2017224112A (ja) 2016-06-14 2017-12-21 東芝メモリ株式会社 メモリシステムおよびメモリ管理装置
JP2017228010A (ja) 2016-06-21 2017-12-28 キヤノン株式会社 ストレージ制御手段、ストレージ制御手段を有する情報処理装置、ストレージ制御方法及びそのプログラム
JP2018120439A (ja) * 2017-01-25 2018-08-02 東芝メモリ株式会社 メモリシステムおよび制御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130141973A1 (en) * 2007-02-16 2013-06-06 Mosaid Technologies Incorporated Non-volatile memory with dynamic multi-mode operation
JP2011186555A (ja) * 2010-03-04 2011-09-22 Toshiba Corp メモリ管理装置及び方法

Also Published As

Publication number Publication date
US20200159428A1 (en) 2020-05-21
JP7095568B2 (ja) 2022-07-05
US10956067B2 (en) 2021-03-23

Similar Documents

Publication Publication Date Title
US11150808B2 (en) Flash memory system
US7716413B2 (en) Method of making a multi-bit-cell flash memory
EP2126923B1 (en) Non-volatile memory with dynamic multi-mode operation
US8363468B2 (en) Semiconductor memory device
US8108589B2 (en) Wear leveling method and controller using the same
KR101544607B1 (ko) 메모리 장치 및 그 프로그램 방법
JP7095568B2 (ja) メモリコントローラ及びこれを備えるフラッシュメモリシステム
US8751735B2 (en) Protection against data corruption for multi-level memory cell (MLC) flash memory
JP2019029048A (ja) 半導体記憶装置、及び半導体記憶装置の制御方法
KR20120068192A (ko) 플래시 메모리 장치 및 그 동작 방법
JP5494086B2 (ja) 不揮発性記憶装置および不揮発性メモリコントローラ
US8085593B2 (en) Method of inputting address in nonvolatile memory device and method of operating the nonvolatile memory device
CN106057246A (zh) 一种非易失性存储器中坏点单元的替换方法
KR102294042B1 (ko) 반도체 메모리 장치
CN115221072A (zh) 固态存储装置的快闪转换层对应表处理方法
JP2011248682A (ja) メモリデバイス

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220316

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

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220606

R150 Certificate of patent or registration of utility model

Ref document number: 7095568

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150