(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の目的は、ホストのタイムアウトを防止することができるメモリシステムを提供することにある。
【課題を解決するための手段】
【0008】
本発明の一特徴は、セルあたりmビットのデータが格納されるメモリブロックで構成された第1メモリ領域とセルあたりnビットのデータが格納されるメモリブロックで構成された第2メモリ領域とを含む不揮発性メモリ装置と、前記不揮発性メモリ装置を制御するように構成されたメモリ制御器とを含み、読み出し動作の時に選択された前記第2メモリ領域のメモリブロックが読み出し校正動作の対象として決められた場合、前記メモリ制御器は、前記読み出し校正動作の対象となる第2メモリ領域のメモリブロックの有効データのすべてが前記第1メモリ領域のメモリブロックのうちの少なくとも一つ以上のメモリブロックにプログラムされる時、前記第2メモリ領域のメモリブロックに対する読み出し校正動作を完了したと処理するメモリシステムを提供することにある。
【0009】
例示的な実施形態において、前記メモリ制御器は、ホストの書き込み要請の時に前記読み出し校正動作の少なくとも一部を実行する。
例示的な実施形態において、前記メモリ制御器は、ホストによって要請された書き込み動作が完了した後、前記読み出し校正動作の少なくとも一部を実行する。
例示的な実施形態において、前記読み出し校正動作の対象となる前記第2メモリ領域のメモリブロックの有効データのうち、前記要請された書き込み動作の時、移動するデータの量は、ホストによって要請された書き込み動作が完了した後、前記ホストのタイムアウト区間のうち、残った時間を考慮して決められる。
例示的な実施形態において、書き込み動作が要請される時、前記読み出し校正動作の対象となる前記第2メモリ領域のメモリブロックの有効データのうち、前記第1メモリ領域の一つのメモリブロックの格納容量に対応するデータは、前記第1メモリ領域のメモリブロックに移動する。
【0010】
例示的な実施形態において、前記少なくとも一つ以上のメモリブロックに格納されたデータは、前記メモリ制御器のバックグラウンド動作の時に前記第2メモリ領域のメモリブロックのうちの一つのメモリブロックに移動する。
例示的な実施形態において、前記少なくとも一つ以上のメモリブロックのうち、空の格納空間を有するメモリブロックを除いた残りのメモリブロックに格納されたデータは、前記メモリ制御器のバックグラウンド動作の時、前記第1メモリ領域のメモリブロックのうちデータで完全に満たされたメモリブロックのデータと共に前記第2メモリ領域のメモリブロックのうちで選択されたメモリブロックに移動し、前記第2メモリ領域の選択されたメモリブロックは、オープンワードラインを含まない。
例示的な実施形態において、前記mビットのデータは、1ビットのデータであり、前記nビットのデータは、3ビットのデータである。
【0011】
例示的な実施形態において、前記メモリ制御器は、読み出し動作の時、読み出し校正動作の対象として決められた前記第2メモリ領域のメモリブロックを示すキュー情報を格納するバッファメモリを含む。
例示的な実施形態において、書き込み動作が要請されるたびに、前記メモリ制御器は、ホストのタイムアウト条件を回避するように、前記バッファメモリのキュー情報に対応する前記第2メモリ領域のメモリブロックに対する前記読み出し校正動作を時分割方式で行う。
例示的な実施形態において、前記読み出し校正動作の対象となる前記第2メモリ領域のメモリブロックの有効データのうち、前記第1メモリ領域の一つのメモリブロックの格納容量に対応するデータは、前記書き込み動作が要請された時、前記第1メモリ領域のメモリブロックに移動する。
【0012】
例示的な実施形態において、前記メモリ制御器は、前記第2メモリ領域のメモリブロックに読み出されたデータの訂正できないエラーに対するソフトウェアエラー訂正動作を実行し、前記第2メモリ領域のメモリブロックに読み出されたデータのエラーがソフトウェアエラー訂正を通じて訂正される時、前記キュー情報を前記バッファメモリに格納する。
例示的な実施形態において、前記メモリ制御器は、前記第2メモリ領域のメモリブロックに読み出されたデータが訂正できない場合、読み出しリトライ動作を実行し、前記読み出しリトライ動作を通じて前記第2メモリ領域のメモリブロックに読み出されたデータが訂正可能である時、前記キュー情報を前記バッファメモリに格納する。
例示的な実施形態において、前記メモリ制御器は、前記第2メモリ領域のメモリブロックに読み出されたデータのエラービットの数が基準を超えた時、前記キュー情報を前記バッファメモリに格納する。
【0013】
本発明の別の特徴は、セルあたりmビットのデータが格納される第1メモリブロックとセルあたりnビットのデータが格納される第2メモリブロックとを含む不揮発性メモリ装置を制御するメモリ制御器の読み出し校正方法を提供する。読み出し校正方法は、読み出し校正動作の対象となる第2メモリブロックが存在するか否かを判別し、読み校正動作の対象となる第2メモリブロックが存在する場合、前記第2メモリブロックの有効なデータを前記第1メモリブロックのうちの少なくとも一つ以上のメモリブロックにプログラムすることによって、前記読み出し校正動作を完了したと処理することを含む。
【0014】
例示的な実施形態において、読み出し校正動作の対象となる第2メモリブロックに対する読み出し校正動作は、ホストのタイムアウト条件を回避するように時分割方式で実行される。
例示的な実施形態において、前記読み出し校正動作の少なくとも一部は、書き込み動作が要請される時に実行される。
例示的な実施形態において、前記読み出し校正動作の少なくとも一部は、ホストによって要請された書き込み動作が完了した後に実行される。
【0015】
例示的な実施形態において、読み出し校正動作の対象となる前記第2メモリブロックの有効データのうち、ホストによって要請された書き込み動作の時移動されるデータの量は、前記書き込み動作が完了した後、前記ホストのタイムアウト区間のうち、残った時間を考慮して決められる。
例示的な実施形態において、読み出し校正動作の対象となる前記第2メモリブロックの有効データのうち、第1メモリブロックの格納容量に対応するデータは、書き込み動作が要請される時、前記第1メモリブロックに移動する。
例示的な実施形態において、前記少なくとも一つ以上のメモリブロックに格納されたデータは、前記メモリ制御器のガーベッジコレクションの動作の時に前記第2メモリブロックのうちの一つのメモリブロックに移動する。
【0016】
例示的な実施形態において、前記少なくとも一つ以上のメモリブロックのうち、空の格納空間を有するメモリブロックを除いた残りのメモリブロックに格納されたデータは、前記メモリ制御器のガーベッジコレクションの動作の時に前記第1メモリブロックのうち、データで完全に満たされたメモリブロックのデータと共に前記第2メモリブロックのうち選択されたメモリブロックに移動し、選択された前記第2メモリブロックは、オープンワードラインを含まない。
例示的な実施形態において、前記mビットのデータは、1ビットのデータであり、前記nビットのデータは、3ビットのデータである。
例示的な実施形態において、前記メモリ制御器から提供されるデータは、バッファプログラム動作により前記第1メモリブロックに格納され、前記第1メモリブロックに格納されたデータは、メインプログラム動作により前記第2メモリブロックに格納される。
【0017】
本発明のもう一つの特徴は、セルあたりmビットのデータが格納される第1メモリブロックとセルあたりnビットのデータが格納される第2メモリブロックとを含む不揮発性メモリ装置を制御するメモリ制御器の動作方法を提供する。動作方法は、第2メモリブロックから読み出されたデータのエラーが読み出し校正動作を決めるための基準を超えた時に、前記第2メモリブロックが読み出し校正動作の対象であることを示すキュー情報を格納し、ホストの要請の時、前記キュー情報に基づいて、読み出し校正動作の対象となる第2メモリブロックが存在するか否かを判別し、読み出し校正動作の対象となる第2メモリブロックが存在する時、前記第2メモリブロックの有効なデータを前記第1メモリブロックのうちの少なくとも一つ以上のメモリブロックにプログラムし、ガーベッジコレクションの際、前記少なくとも一つ以上のメモリブロックに格納されたデータを前記第2メモリブロックのうちの一つのメモリブロックにプログラムすることを含み、前記読み出し校正動作は、前記第2メモリブロックの有効なデータを前記第1メモリブロックのうちの少なくとも一つ以上のメモリブロックにプログラムすることによって完了したと処理される。
【0018】
例示的な実施形態において、読み出し校正動作の対象となる第2メモリブロックが存在するか否かを判別するのは、ホストの書き込み要請の時に行われる。
例示的な実施形態において、前記少なくとも一つ以上のメモリブロックのうち、空の格納空間を有するメモリブロックを除いた残りのメモリブロックに格納されたデータは、前記ガーベッジコレクションの際、前記第1メモリブロックのうちデータで完全に満たされたメモリブロックのデータと共に前記第2メモリブロックのうち選択されたメモリブロックに移動し、前記第2メモリブロックの選択されたメモリブロックは、オープンワードラインを含まない。
例示的な実施形態において、前記mビットのデータは、1ビットのデータであり、前記nビットのデータは、3ビットのデータである。
例示的な実施形態において、前記第2メモリブロックから読み出されたデータは、LSBページデータ、CSBページデータ、またはMSBページデータである。
【発明の効果】
【0019】
本発明によれば、ホストのタイムアウトを防止すると共に、TLCブロックでオープンワードラインが発生することを防止することができる。
【発明を実施するための形態】
【0021】
本発明の利点及び特徴、そしてそれを達成する方法は、添付の図面とともに実施形態を通じて詳細に説明される。しかし、本発明は、ここに説明される実施形態に限定されず、他の形態への具体化も可能である。本実施形態は、本発明が属する技術分野における通常の知識を有する者に本発明の技術的思想を容易に実施できる程度に詳細に説明するためだけに提供されるものである。
図面において、本発明の実施形態は、図示された特定の形態に限定されず、明確性のために誇張されている。また、明細書の全体にわたって同一の参照番号として表示された部分は、同一の構成要素を示す。
【0022】
本明細書で「及び/または」という表現は、前後に並べた構成要素の中で少なくとも一つを含む意味として使われる。また、「接続される/結合される」という表現は、他の構成要素に直接接続するか、または他の構成要素を介して間接的に接続されることを含む意味として使われる。本明細書で、単数として使われた用語は、それについての単数であることを示す明白な背景に関する言及がない限り、複数も含むものである。また、本明細書で使われる「含む」に言及された構成要素、段階、動作及び素子は、1つまたはそれ以上の他の構成要素、段階、動作、素子及び装置の存在または付加を意味する。
【0023】
各メモリセルに格納されるデータビットの数が増加するにつれて(または、一つのワードラインに対応するページ(または、ページデータ)の数が増加するにつれて)、様々なプログラミング技術が提案されている。例えば、オンチップバッファプログラム方法は、マルチビットメモリ装置を含むメモリシステムに適用されている。オンチップバッファプログラム方法が使われることによって、メモリシステムのメモリ制御器内に備えられたバッファメモリのサイズを減らすことが可能である。オンチップバッファプログラム方法は、メモリ制御器のバッファメモリに一時格納されたデータをマルチビットメモリ装置の第1メモリ領域にプログラムすることと、マルチビットメモリ装置の第1メモリ領域に格納されたデータをマルチビットメモリ装置の第2メモリ領域にプログラムすることとを含む。バッファメモリに一時格納されたデータをマルチビットメモリ装置の第1メモリ領域にプログラムする動作を“バッファプログラム動作”といい、マルチビットメモリ装置の第1メモリ領域に格納されたデータをマルチビットメモリ装置の第2メモリ領域にプログラムする動作を“メインプログラム動作”という。すなわち、オンチップバッファプログラム方法は、バッファプログラム動作とメインプログラム動作とを含む。マルチビットメモリ装置は、第1及び第2メモリ領域の以外のメモリ領域をさらに含むことができる。
【0024】
例えば、バッファプログラム動作は、第1メモリ領域に対する最小プログラム単位に対応するデータがメモリ制御器のバッファメモリに集められる時に行われ、メインプログラム動作は、第2メモリ領域に対する最小プログラム単位に対応するデータがマルチビットメモリ装置の第1メモリ領域に集められる時、または第1メモリ領域の使用可能な格納空間が不足する時に行われる。ここで、第1メモリ領域の最小プログラム単位に対応するデータは、1ページのデータであり、第2メモリ領域の最小プログラム単位に対応するデータは、複数のページのデータである。複数のページの数は、セルあたりのビット数に応じて決められる。例えば、セルあたりのビット数が3の場合、第2メモリ領域に対する最小プログラム単位に対応するデータは、3ページのデータである。第1及び第2メモリ領域の各々に対する最小プログラム単位はここに開示されたことに限定されない。上述の説明によると、第1メモリ領域の最小プログラム単位に対応するデータがバッファメモリに集められるたびに、バッファメモリのデータがマルチビットメモリ装置の第1メモリ領域にプログラムされ、その結果、バッファメモリのサイズを小さくすることが可能である。
【0025】
オンチップバッファプログラム方法を採用するメモリシステムにおいて、メインプログラム動作は、様々なプログラミング方式を用いて実行される。例えば、メインプログラム動作は、再プログラム方式に基づいて行われる。以下、再プログラム方式を用いたメインプログラム動作を
図1を参照して詳細に説明する。
図1は、本発明に係る再プログラミング方式により実行されるメインプログラム動作を示す図である。
図1は、3ビットデータ(または、LSBページのデータ、CSBページのデータ、MSBページのデータで構成される3ページのデータ)が再プログラム方式によってプログラムされる例を示す。しかし、再プログラム方式は3ビットデータに限定されない。再プログラム方式は、第1プログラム段階、第2プログラム段階、及び第3プログラム段階を含み、これは、以下詳細に説明する。
【0026】
第1プログラム段階は、各メモリセルが8つの状態E、P11、P12、P13、P14、P15、P16、P17のうち3ビットのデータに対応する状態を有するように行われる。8つの状態E、P11〜P17は、
図1に示すように、読み出しマージンなしに互いに隣接することができる。すなわち、第1プログラム段階では、3ビットのデータが概略的にプログラムされる。ここで、3ビットのデータは、バッファプログラム動作により、第1メモリ領域にプログラムされたデータであり、第1プログラム段階で、第1メモリ領域から読み出される。
【0027】
例示的な実施形態において、第1プログラミング段階は、プログラムループの繰り返しの時にプログラム電圧が一定の増加分だけ増加する増加型ステップパルスプログラム(Incremental Step Pulse Programming:ISPP)技術に基づいて行われる。
例示的な実施形態において、第1プログラミング段階は検証動作を含む。検証動作の時、少なくとも一つのプログラム状態のみに対して検証動作を実行することができる。例えば、第1プログラミング段階で、プログラム状態P12、P14、P16の検証動作が実行される一方、プログラム状態P11、P13、P15、P17の検証動作は実行されない。つまり、プログラム状態P12、P14、P16が検証パスされれば、第1プログラミング段階は終了する。
【0028】
第2プログラミング段階は、第1プログラミング段階を通じて形成された概略的な状態(rough states)P11〜P17をより細密な状態P21〜P27に再プログラムするために行われる。ここで、状態P21〜P27は、
図1に示すように、所定の読み出しマージンを有するように隣接することができる。つまり、第2プログラミング段階では、第1プログラミング段階でプログラムされた3ビットのデータが再プログラムされる。上述のように、第2プログラミング段階で使われる3ビットのデータは、第1プログラミング段階で使われたものと同様であり、第1メモリ領域から再び読み出される。
図1に示すように、第1プログラミング段階の状態P11は、第2プログラミング段階の状態P21に再プログラムされる。これは、第2プログラミング段階の状態P21に対応する閾値電圧のばらつきが第1プログラミング段階の状態P11に対応する閾値電圧のばらつきより狭く形成されるようにする。すなわち、第2プログラミング段階の状態P21を検証するための検証電圧VR21は、第1プログラミング段階の状態P11を検証するための検証電圧VR11より高い。
【0029】
例示的な実施形態において、第2プログラミング段階は、ISPP技術に基づいて行われる。
例示的な実施形態において、第2プログラミング段階は、検証動作を含む。検証動作はすべてのプログラム状態に対して行われる。すべてのプログラム状態P21〜P27が検証パスされれば、第2プログラミング段階は終了する。
【0030】
第3プログラム段階は、第2プログラミング段階でプログラムされた状態P21〜P27をより細密な状態P31〜P37に再プログラムするために行われる。
ここで、状態P31〜P37は、
図1に示すように、第2プログラミング段階の読み出しマージンより大きい読み出しマージンを有するように隣接することができる。すなわち、第3プログラム段階では、第2プログラミング段階でプログラムされた3ビットのデータが再プログラムされる。上述のように、第3プログラム段階で使われる3ビットのデータは、第1及び第2プログラミング段階で使われたものと同様であり、第1メモリ領域から再び読み出される。第3プログラミング段階が行われることによって、第2プログラミング段階の状態P21は、第3プログラム段階の状態P31に再プログラムされる。これは、第3プログラム段階の状態P31に対応する閾値電圧のばらつきが第2プログラミング段階の状態P21に対応する閾値電圧のばらつきより狭くする。すなわち、第3プログラム段階の状態31を検証するための検証電圧VR31が第2プログラミング段階の状態P21を検証するための検証電圧VR21より高い。
【0031】
例示的な実施形態において、第3プログラム段階は、ISPP技術に基づいて行われる。
例示的な実施形態において、第3プログラム段階では、すべてのプログラム状態に対して検証動作が実行される。すべてのプログラム状態P31〜P37が検証パスされれば、第3プログラム段階は終了する。
【0032】
本発明は、第1プログラミング段階で、3ビットのデータがプログラムされることに限定されない。本発明の第1プログラミング段階で、2ビットのデータがプログラムされることも可能である。2ビットのデータに対する第1プログラミング段階が完了した後、1ビットのデータをプログラムするために、第2プログラミング段階を行うことができる。その後、目標閾値電圧のばらつきを得るための第3プログラミング段階を行うことができる。上述のプログラムの方法は、特許文献1に掲載されている。
【0033】
図1に示した3ビットプログラム動作が3ステップ再プログラミング方式によって実行される例を説明した。しかし、本発明は、3ビットプログラム動作が3ステップ再プログラミングによって実行されることに限定されない。本発明に係る再プログラミング方式により実行されるプログラム動作は、格納されるデータ値に対応する閾値電圧のばらつきの幅を狭くするため(または、閾値電圧のばらつきを正確に制御するため)の3つのプログラミング段階で構成することができる。
【0034】
図2は、本発明の例示的な実施形態に係るメモリシステムを概略的に示すブロック図である。
図2を参照すると、本発明の実施形態に係るメモリシステム1000は、メモリ制御器1200と、マルチビットメモリ装置として不揮発性メモリ装置1400とを含む。メモリ制御器1200は、外部(例えば、ホスト)からの要請(例えば、書き込み要請、読み出し要請等)に応答して不揮発性メモリ装置1400を制御する。メモリ制御器1200は、外部からの要請なしに内部的な要請(例えば、サドンパワーオフ(Sudden Power Off)に係る動作、ウエアレベリング動作、読み出し校正(read reclaim)動作など)に応じて不揮発性メモリ装置1400を制御する。メモリ制御器1200の内部的な要請に対応する動作は、ホストからの要請が処理された後、ホストのタイムアウト区間内で行われる。または、メモリ制御器1200の内部的な要請に対応する動作は、メモリ制御器1200の遊休時間に行われる。不揮発性メモリ装置1400は、メモリ制御器1200の制御に応答して動作し、データの情報を格納する一種の格納媒体として使用される。格納媒体は、一つ以上のメモリチップで構成することができる。不揮発性メモリ装置1400とメモリ制御器1200は、一つ以上のチャネルを介して通信する。不揮発性メモリ装置1400は、例えば、NANDフラッシュメモリ装置を含む。
【0035】
メモリシステム1000は、上述のオンチップバッファプログラム(OBP)技術を使用する。以下で説明するように、不揮発性メモリ装置1400は、第1メモリ領域と第2メモリ領域とを有するメモリセルアレイを含む。例示的な実施形態において、第1メモリ領域は、セルあたり1ビットのデータを格納するメモリブロックで構成され、第2メモリ領域は、セル当たり3ビットのデータを格納するメモリブロックで構成される。第1メモリ領域及び第2メモリ領域の各々のセルあたりのビット数は、ここに開示されたものに限定されない。例えば、第1メモリ領域のセルあたりのビット数は、第2メモリ領域のセルあたりのビット数より少ない。メモリ制御器1200は、第2メモリ領域に含まれたメモリブロックのうちのいずれか一つのメモリブロックから読み出されたデータのエラービットの数が基準を超えたか否かに応じて読み出し校正動作(read reclaim operation)を実行する。本発明の読み出し校正動作によると、第2メモリ領域に含まれたメモリブロックに格納されたデータは、第2メモリ領域に含まれたメモリブロックに移動されるのではなく、第1メモリ領域に格納されたメモリブロックに移動する。本発明の場合、第2メモリ領域に含まれたメモリブロックに格納されたデータのすべてが第1メモリ領域に含まれたメモリブロックに移動すれば、第2メモリ領域に含まれたメモリブロックに係る読み出し校正動作は終了する。これは以後詳細に説明する。
【0036】
図3は、
図2に示したメモリ制御器を概略的に示すブロック図である。
図3を参照すると、メモリ制御器1200は、第1インターフェースとして、ホストインターフェース1210と、第2インターフェースとしてメモリインターフェース1220と、中央処理装置1230と、バッファメモリ1240と、ECC回路1250とを含む。
【0037】
ホストインターフェース1210は、外部(または、ホスト)とインターフェースするように構成される。メモリインターフェース1220は、
図2に示した不揮発性メモリ装置1400とインターフェースするように構成される。CPU1230は、メモリ制御器1200の全体的な動作を制御するように構成される。例えば、CPU1230は、フラッシュ変換階層(Flash Translation Layer:FTL)のようなファームウェアを運用するように構成される。FTLは、様々な機能を実行する。例えば、FTLは、アドレスマッピング動作、読み出し校正動作、エラー訂正動作などを実行する様々な階層を含む。バッファメモリ1240は、ホストインターフェース1210を通じて外部に伝達されるデータを一時的に格納するために使用される。バッファメモリ1240は、メモリインターフェース1220を通じて不揮発性メモリ装置1400から伝達されるデータを一時的に格納するために使用される。バッファメモリ1240は、不揮発性メモリ装置1400を制御するために必要な情報(例えば、読み出し校正動作を必要とするソースメモリブロックを示す情報、アドレスマッピング情報など)を格納するために使用される。例えば、バッファメモリ1240は、DRAM、SRAM、またはDRAMとSRAMの組み合わせで構成することができる。しかし、バッファメモリ1240として使用されるメモリ装置は、ここに開示されたものに限定されない。ECC回路1250は、不揮発性メモリ装置1400に格納されるデータを符号化するように、そして不揮発性メモリ装置1400から読み出されたデータを復号化するように構成される。
【0038】
例示的な実施形態において、メモリ制御器1200は、図示しないが、不揮発性メモリ装置1400に格納されるデータをランダム化するように、不揮発性メモリ装置1400から読み出されたデータをランダム化しないように構成されたランダマイザをさらに含む。ランダマイザの一例が特許文献2に掲載されている。
【0039】
例示的な実施形態において、ホストインターフェース1210は、コンピュータバス標準、ストレージバス標準、iFCPPeripheralバス標準などのうちの一つ以上の組み合わせで構成することができる。コンピュータバス標準(computer bus standards)は、S−100bus、Mbus、Smbus、Q−Bus、ISA、Zorro II、Zorro III、CAMAC、FASTBUS、LPC、EISA、VME、VXI、NuBus、TURBOchannel、MCA、Sbus、VLB、PCI、PXI、HP GSCbus、CoreConnect、InfiniBand、UPA、PCI−X、AGP、PCIe、Intel QuickPath Interconnect、Hyper Transportなどを含む。ストレージバス標準(Storage bus standards)は、ST−506、ESDI、SMD、Parallel ATA、DMA、SSA、HIPPI、USB MSC、FireWire(1394)、Serial ATA、eSATA、SCSI、Parallel SCSI、Serial Attached SCSI、Fibre Channel、iSCSI、SAS、RapidIO、FCIPなどを含む。iFCPPeripheralバス標準(iFCPPeripheral bus standards)は、Apple Desktop Bus、HIL、MIDI、Multibus、RS−232、DMX512−A、EIA/RS−422、IEEE−1284、UNI/O、1−Wire、I2C、SPI、EIA/RS−485、USB、Camera Link、External PCIe、Light Peak、Multidrop Busなどを含む。
【0040】
図4は、
図2に示した不揮発性メモリ装置を概略的に示すブロック図である。
不揮発性メモリ装置1400は、例えば、NANDフラッシュメモリ装置である。しかし、本発明は、NANDフラッシュメモリ装置に限定されない。例えば、不揮発性メモリ装置1400は、NORフラッシュメモリ装置、RRAM(登録商標)(Resistive Random Access Memory)装置、PRAM(Phase−Change Memory)装置、MRAM(Magnetoresistive Random Access Memory)装置、FRAM(登録商標)(Ferroelectric Random Access Memory)装置、STT−RAM(Spin Transfer Torque Random Access Memory)などで構成することができる。また、本発明の不揮発性メモリ装置1400は、3次元アレイ構造を有するように実現することができる。3次元アレイ構造を有する不揮発性メモリ装置は、垂直NANDフラッシュメモリ装置と呼ばれる。本発明は、電荷格納層が伝導性の浮遊ゲートで構成されたフラッシュメモリ装置だけではなく、電荷格納層が絶縁膜で構成されるチャージトラップ型フラッシュ(Charge Trap Flash、“CTF”という)メモリ装置にも適用可能である。
【0041】
図4を参照すると、不揮発性メモリ装置1400は、メモリセルアレイ1410と、アドレスデコーダ1420と、電圧発生器1430と、制御ロジック1440と、ページバッファ回路1450と、入出力インターフェース1460とを含む。
メモリセルアレイ1410は、行(例えば、ワードライン)と、列(例えば、ビットライン)との交差領域に配列されたメモリセルを含む。メモリセルの各々は、1ビットのデータまたはマルチビットのデータを格納する。アドレスデコーダ1420は、制御ロジック1440によって制御され、メモリセルアレイ1410の行(例えば、ワードライン、ストリング選択ライン、接地選択ライン、共通ソースラインなど)の選択及び駆動を行う。電圧発生器1430は、制御ロジック1440によって制御され、各動作に必要な電圧(例えば、高電圧、プログラム電圧、読み出し電圧、検証電圧、消去電圧、パス電圧、バルク電圧など)を発生する。電圧発生器1430によって生成された電圧は、アドレスデコーダ1420を通じてメモリセルアレイ1410に提供される。制御ロジック1440は、不揮発性メモリ装置1400の全体的な動作を制御するように構成される。
【0042】
ページバッファ回路1450は、制御ロジック1440によって制御され、メモリセルアレイ1410からデータを読み出すように、またはプログラムデータによってメモリセルアレイ1410の列(例えば、ビットライン)を駆動するように構成される。ページバッファ回路1450は、ビットライン又はビットライン対に各々対応する複数のページバッファで構成される。ページバッファの各々は、複数のラッチを含む。入出力インターフェース1460は、制御ロジック1440によって制御され、外部(例えば、
図2のメモリ制御器1210)とインターフェースするように構成される。図示しないが、入出力インターフェース1460は、ページバッファを選択するための列選択器、データが入力される入力バッファ、データを出力する出力バッファなどを含む。
【0043】
図5は、
図4に示したメモリセルアレイを概略的に示すブロック図である。
図5を参照すると、メモリセルアレイ1410は、複数のメモリブロックで構成され、複数のメモリブロックは、第1メモリ領域1411と第2メモリ領域1412とに区分される。ここで、第1及び第2メモリ領域1411、1412の区分は物理的なものではなく、論理的に行われる。第1及び第2メモリ領域1411、1412の区分は、論理的に可変可能である。つまり、第1及び第2メモリ領域1411、1412の物理的なサイズがメモリ制御器1200の制御の下に論理的に可変可能である。第1メモリ領域1411に属するメモリブロックは、第2メモリ領域1412に属するメモリブロックとは異なる方法でプログラムされる。例えば、第1メモリ領域1411に属するメモリブロックは、単一ビットプログラム方法(または、SLCプログラム方式という)に基づいてプログラムされ、第2メモリ領域1412に属するメモリブロックは、マルチビットプログラム方法(または、MLC/TLCプログラム方式という)(例えば、上述の3ステップ再プログラム方式)に基づいてプログラムされる。つまり、第1メモリ領域1411に属するメモリセルの各々は、1ビットのデータを格納し、第2メモリ領域1412に属するメモリセルの各々は、Mビットデータ(Mは3以上の整数)を格納する。また、第1メモリ領域1411に属するメモリセルの各々は、第2メモリ領域1412に属するメモリセルの各々に格納されるデータビットの数より少ない数のデータビットを格納する。ここで、第1メモリ領域1411に属するメモリセルの各々が1ビットのデータを格納することに限定されない。例えば、第1メモリ領域1411に属するメモリセルの各々に格納されるビットの数は、第2メモリ領域1412に属するメモリセルの各々に格納されるビットの数より少ない。
【0044】
上述のように、メモリ制御器1200から提供されるデータは、バッファのプログラム動作を通じて、第1メモリ領域1411にプログラムされる。メインプログラム動作に必要なデータは、第1メモリ領域1411から読み出され、読み出されたデータは、メインプログラム動作を通じて第2メモリ領域1412にプログラムされる。
【0045】
図6A〜
図6Dは、本発明の例示的な実施形態に係るマルチビットメモリ装置の第1及び第2メモリ領域に対する様々な組み合わせを説明するための図である。図面において、“BP”は、第1メモリ領域1411に対するバッファプログラミングを示し、“MP”は、第2メモリ領域1412に対するメインプログラミングを示す。
上述のように、マルチビットメモリ装置1400は、第1メモリ領域1411と第2メモリ領域1412とを含む。ここで、第1メモリ領域1411と第2メモリ領域1412は、マルチビットメモリ装置1400のメモリセルアレイを構成する。図示しないが、メモリセルアレイは、より多くの領域(例えば、メタ領域、予備領域など)を含む。メモリセルアレイのメモリ領域は物理的に区分されず、論理的に区分される。これは、メモリ制御器1200のアドレスマッピングに基づいて、メモリ領域が定義されることを意味する。
【0046】
図6Aを参照すると、セル当たり3ビットのデータを格納するマルチビットメモリ装置の場合、第1メモリ領域1411は、1ビットのデータを各々格納するメモリセルのメモリブロックで構成し、第2メモリ領域1412は、3ビットのデータを各々格納するメモリセルのメモリブロックで構成することができる。この場合、バッファプログラミングは、SLCプログラム方式に基づいて行われる。メインプログラミングは、上述のMLC/TLCプログラム方法によって行われる。
【0047】
図6Bを参照すると、セル当たり4ビットのデータを格納するマルチビットメモリ装置の場合、第1メモリ領域1411は、1ビットのデータを各々格納するメモリセルのメモリブロックで構成し、第2メモリ領域1412は、4ビットのデータを各々格納するメモリセルのメモリブロックで構成することができる。この場合、バッファプログラミングは、SLCプログラム方式に基づいて行われる。メインプログラミングは、上述のMLC/TLCプログラムの方法に基づいて行われる。
【0048】
図6Cを参照すると、セル当たり3ビットのデータを格納するマルチビットメモリ装置の場合、第1メモリ領域1411は、2ビットのデータを各々格納するメモリセルのメモリブロックで構成し、第2メモリ領域1212は、3ビットのデータを各々格納するメモリセルのメモリブロックで構成することができる。この場合、バッファプログラミングは、一般的な、または、上述のMLCプログラム方式に基づいて行われる。メインプログラミングは、上述のMLC/TLCプログラム方法(例えば、再プログラム方式)に基づいて行われる。
【0049】
図6Dを参照すると、セル当たり4ビットのデータを格納するマルチビットメモリ装置の場合、第1メモリ領域1411は、2ビットのデータを各々格納するメモリセルのメモリブロックで構成し、第2メモリ領域1412は、4ビットのデータを各々格納するメモリセルのメモリブロックで構成することができる。この場合、バッファのプログラミングは、一般的な、または、上述のMLCプログラム方式に基づいて行われる。メインプログラミングは、上述のMLC/TLCプログラム方法(例えば、再プログラム方式)に基づいて行われる。
【0050】
例示的な実施例において、
図6A〜
図6Dに示した第1及び第2メモリ領域1411、1412の定義がここに開示されたものに限定されない。例えば、メモリシステムに含まれる格納媒体が複数のマルチビットメモリ装置で構成される場合、各マルチビットメモリ装置は、メモリセルアレイが第1及び第2メモリ領域1411、1412に区分されるように構成することができる。別の例として、1つまたはそれより多くのマルチビットメモリ装置のメモリセルアレイの各々は、第1メモリ領域1411として使用されるように構成することができる。残りのマルチビットメモリ装置のメモリセルアレイの各々は、第2メモリ領域1412として使用されるように構成することができる。
【0051】
図7は、本発明の例示的な実施形態に係るメモリシステムの読み出し方法を示すフローチャートである。以下、本発明の例示的な実施形態に係るメモリシステムの読み出し方法を参照の図面に基づいて詳細に説明する。まず、第1メモリ領域1411は、セルあたり1ビットのデータが格納されるメモリブロック(以下、SLCブロックという)で構成され、第2メモリ領域1412は、セル当たり3ビットのデータが格納されるメモリブロック(以下、TLCブロックという)で構成されると仮定する。
【0052】
S110段階において、メモリ制御器1200は、外部装置(例えば、ホスト)からの読み出し要請が入力される。S120段階において、メモリ制御器1200は、読み出し要請されたデータが出力されるように不揮発性メモリ装置1400を制御する。読み出し要請されたデータは、例えば、第2メモリ領域1412のTLCブロックに格納されたデータである。または、読み出し要請されたデータは、第1メモリ領域1411のSLCブロックに格納されたデータである。例示的な実施形態において、読み出し要請されたデータは、第2メモリ領域1412のTLCブロックに格納されたデータである。
【0053】
S130段階において、不揮発性メモリ装置1400から出力されるデータがメモリ制御器1200のバッファメモリ1240に伝送される間、メモリ制御器1200のECC回路1250は、不揮発性メモリ装置1400から出力されるデータのエラー検出動作を実行する。この時、不揮発性メモリ装置1400から出力されるデータは、メモリ制御器1200のバッファメモリ1240に一時格納される。
【0054】
S140段階において、不揮発性メモリ装置1400から出力されるデータのエラーが訂正可能であるか否か決められる。もし、不揮発性メモリ装置1400から出力されるデータのエラーが訂正可能であると判断されれば、S150段階に進行する。S150段階において、不揮発性メモリ装置1400から出力されるデータのエラーが訂正される。S160段階において、バッファメモリ1240に格納された訂正されたデータは、読み出し要請されたデータとして外部装置に伝送される。その後、読み出し方法は終了する。
【0055】
S140段階に戻って、もし不揮発性メモリ装置1400から出力されるデータのエラーが訂正できないと判断されれば、又は不揮発性メモリ装置1400から出力されるデータから出力されたエラービットの数が基準(例えば、ECC回路1250の許容可能なエラービット数)を超えた場合、S170段階に進む。S170段階において、メモリ制御器1200は、ソフトウェア方式で不揮発性メモリ装置1400から出力されるデータのエラー検出訂正動作を実行する。ソフトウェア方式を用いたエラー検出訂正動作は、例えば、FTLによって行われる。S180段階において、不揮発性メモリ装置1400から出力されるデータが訂正されたか否か決められる。たとえ不揮発性メモリ装置1400から出力されるデータに含まれるエラービットの数がECC回路1250の許容可能なエラービット数を超過しても、ソフトウェア方式を用いたエラー検出訂正動作を通じて不揮発性メモリ装置1400から出力されるデータのエラーを訂正することができる。
【0056】
不揮発性メモリ装置1400から出力されるデータが訂正されていないと判断されれば、S190段階に進む。S190段階において、メモリ制御器1200は、外部装置によって要請された読み出し動作をフェイルとして処理する。その後、読み出し方法は終了する。例えば、読み出しフェイルフラグが生成される。読み出しフェイルフラグの生成による手続きは多様に決定され得る。以後、方法は終了する。
【0057】
不揮発性メモリ装置1400から出力されるデータが訂正されたと判断されれば、S200段階に進む。S200段階において、メモリ制御器1200は、バッファメモリ1240に格納された訂正されたデータを読み出し要請されたデータとして外部装置に伝送する。この時、読み出し要請されたデータが格納されたTLCブロックが読み出し校正動作を必要とするメモリブロックであることを示す情報がCPU1230の制御の下にキュー(queue)に格納される。以後、読み出し方法は終了する。
【0058】
例示的な実施形態において、キューは、バッファメモリ1240の一部として構成され、キューに格納された情報は、CPU1230によって参照される。キューに格納された情報は、周期的に、または一定の時間に不揮発性メモリ装置1400に格納される。これは、突然の電源遮断によってバッファメモリ1240、またはキューに格納された情報が失われることを防止するために行われる。キューに格納された情報に基づいて、TLCブロックに対する読み出し校正動作が実行され、これは以後詳細に説明する。
【0059】
図8A及び
図8Bは、本発明の例示的な実施形態に係る読み出し校正動作を示す図である。
メモリセルの閾値電圧のばらつきは、様々な原因(例えば、温度変化、読み出し動作の繰り返し等)により移動することがある。閾値電圧のばらつきの移動は、メモリセルから読み出されたページのデータでエラービットが発生するようにする。例えば、閾値電圧のばらつきの移動は、エラービットの数を増加させる。特に、セル当たり3ビットのデータが格納されるTLCブロックの場合、閾値電圧のばらつきの移動は、エラービットの数をさらに増加させる。したがって、読み出されたデータの整合性を確保するために読み出し校正動作を実行することができる。読み出し校正動作は、訂正できないと判断されたページのデータを含んだTLCブロックの有効データを新しいブロックに移動させる動作を意味する。または、読み出し校正動作は、エラービットの数が今後増加する可能性が高いページのデータを含んだTLCブロックの有効データを新しいブロックに移動させる動作を意味する。読み出し校正動作は、ページのデータが格納されたメモリセルの閾値電圧のばらつきの移動が隣接したメモリセルにも影響を与えるため行われる。
【0060】
図8Aを参照すると、CPU1230は、キューに格納された情報に基づいて、FTLの読み出し校正動作の対象ブロックであるTLCブロックを選択する。例えば、選択されたTLCブロックは64個のワードラインを含むと仮定する。つまり、192個のページのデータが1つのTLCブロックに格納される。選択されたTLCブロックに格納された192個のページのデータが全部有効な場合、選択されたTLCブロックに格納された192個のページのデータを移動するための3つのSLCブロックが要求される。読み出し校正動作を実行するために選択されたTLCブロックから64個のページのデータが読み出され、読み出された64個のページのデータは、メモリ制御器1200のECC回路1250を通じて第1メモリ領域1411の一つのSLCブロックSB0に格納される。次に、読み出し校正動作を実行するために選択されたTLCブロックから64個のページのデータが読み出され、読み出された64個のページのデータは、メモリ制御器1200のECC回路1250を通じて第1メモリ領域1411のSLCブロックSB1に格納される。最後に、読み出し校正動作を実行するために選択されたTLCブロックから64個のページのデータが読み出され、読み出された64個のページのデータは、メモリ制御器1200のECC回路1250を通じて第1メモリ領域1411の一つのSLCブロックSB2に格納される。
【0061】
図8Bを参照すると、選択されたTLCブロックに格納された192個のページのうち150個のページのデータが有効な場合、選択されたTLCブロックに格納された150個のページのデータを移動するための3つのSLCブロックが要求される。読み出し校正動作を実行するために選択されたTLCブロックから64個のページのデータが読み出され、読み出された64個のページのデータは、メモリ制御器1200のECC回路1250を通じて第1メモリ領域1411の一つのSLCブロックSB0に格納される。次に、読み出し校正動作を実行するために選択されたTLCブロックから64個のページのデータが読み出され、読み出された64個のページのデータは、メモリ制御器1200のECC回路1250を通じて第1メモリ領域1411のSLCブロックSB1に格納される。最後に、読み出し校正動作を実行するために選択されたTLCブロックから22個のページのデータが読み出され、読み出された22個のページのデータは、メモリ制御器1200のECC回路1250を通じて第1メモリ領域1411の一つのSLCブロックSB2に格納される。
TLCブロックに格納された有効なページのデータのすべてが、第1メモリ領域1411に移動すれば、CPU1230は、TLCブロックに対するFTLの読み出し校正動作を完了したと処理する。例えば、キューに格納された情報(読み出し校正動作の対象ブロック)が変更される。
【0062】
上述のように、本発明の読み出し校正動作によると、読み出し校正動作の対象ブロックであるTLCブロックの有効ページのデータは、第2メモリ領域1412のTLCブロックではなく、第1メモリ領域1411のSLCブロックに移動する。第1メモリ領域1411のSLCブロックへのデータの移動が完了すると、TLCブロックに対する読み出し校正動作が完了したと処理される。すなわち、本発明の読み出し校正動作の時、読み出し校正動作の対象ブロックであるTLCブロックの有効ページのデータは、第2メモリブロック1412のTLCブロックに移動しない。
【0063】
例示的な実施形態において、読み出し校正動作の対象ブロックであるTLCブロックの有効ページのデータは、時分割方式で、第1メモリ領域1411のSLCブロックに移動する。例えば、読み出し校正動作の対象ブロックであるTLCブロックの有効ページのデータの一部(例えば、一つのSLCブロックのサイズに対応する有効ページのデータ)が一つのSLCブロックに移動する。これは、他のページの読み出しまたは書き込み動作がホストによって要請されるたびに読み出しまたは書き込み動作が完了した後にタイムアウト時間内で行うことができる。TLCブロックの有効ページのデータのすべてがSLCブロックに移動する時、TLCブロックに対する読み出し校正動作は完了する。
【0064】
例示的な実施形態において、読み出し校正動作の対象ブロックであるTLCブロックの有効ページのデータが移動する第1メモリ領域1411のSLCブロックの数は、ホストのタイムアウト間隔を考慮して決めることができる。例えば、ホストの書き込み要請が処理された後、タイムアウト区間の残った時間を考慮して、第1メモリ領域1411のSLCブロックの数を決めることができる。ホストの書き込み要請の時、決められたSLCブロックに読み出し校正動作の対象ブロックであるTLCブロックのデータが移動する。
【0065】
TLCブロックからSLCブロックに移動したデータは、メインプログラム動作を通じて第2メモリ領域1412に格納される。これらの動作は、ガーベッジコレクション動作の間行うことができる。これは、
図9を参照して詳細に説明する。
図9は、読み出し校正動作を通じて生成されたSLCブロックのデータがTLCブロックに格納される例を示す図である。
【0066】
上述のように、本発明の読み出し校正動作は、TLCブロックの有効ページのデータが第1メモリ領域1411のSLCブロックに移動する時に完了する。TLCブロックの有効ページの数に応じてSLCブロックのうちの一つは、空の格納空間を含む。例えば、
図8B及び
図9を参照すると、選択されたTLCブロックに格納された192個のページのうちで150個のページのデータが有効な場合、選択されたTLCブロックに格納された150個のページのデータを移動するために3つのSLCブロックが要求され、一つのSLCブロック(例えば、SB2)は空の格納空間を含む。空の格納空間を含むSLCブロックSB2を除いた残りのSLCブロックSB0、SB1のデータは、ガーベッジコレクションの動作の時にデータで完全に満たされた他のSLCブロック(例えば、SB3)のデータと共に特定のTLCブロックに格納される。SLCブロックのデータが上述のような方法でTLCブロックに格納されれば、TLCブロックは完全にデータで満たされる。すなわち、TLCブロックのすべてのワードラインがクローズされる。これは、TLCブロックがオープンワードラインを含まないことを意味する。一方、選択されたTLCブロックに格納された150個のページのデータが格納されたSLCブロックSB0、SB1、SB2のデータが特定のTLCブロックに格納される場合、特定のTLCブロックには、空の格納空間が存在する。これは、特定のTLCブロックがオープンワードラインを含むことを意味する。
【0067】
ここで、n番目のワードラインWLnに接続されたメモリセルに対する3ステップ再プログラム動作が完了した一方、隣接した上位ワードライン(例えば、n+1番目のワードラインWLn+1)に接続されたメモリセルに対する3ステップ再プログラム動作のうち、第3プログラミング段階が実行されない場合、n番目のワードラインWLnをオープンワードラインという。オープンワードラインに接続されたメモリセルの目標閾値電圧のばらつきは、隣接した上位ワードラインに接続されたメモリセルに対する3ステップ再プログラム動作が完了した時に形成される。もし、隣接した上位ワードラインに接続されたメモリセルに対する3ステップ再プログラム動作が完了しない場合、オープンワードラインに接続されたメモリセルの目標閾値電圧のばらつきが正常に形成されない。例えば、オープンワードラインに接続されたメモリセルは、隣接した上位ワードラインに接続されたメモリセルによって生じるカップリングを十分に受けず、その結果、オープンワードラインに接続されたメモリセルの目標閾値電圧のばらつきが正常に形成されない。このような場合、オープンワードラインに接続されたメモリセルから読み出されたデータは訂正不可能な確率が高くなる。
【0068】
したがって、空の格納空間を含んだSLCブロックSB2を除いた残りのSLCブロックSB0、SB1のデータをガーベッジコレクション動作の時、データで完全に満たされた他のSLCブロック(例えば、SB3)のデータと共に、特定のTLCブロックに格納することによって、特定のTLCブロックでオープンワードラインが生じるのを防止することができる。
例示的な実施形態において、空の格納空間を有するSLCブロックSB2のデータは、空の格納空間を有する他のSLCブロックのデータと共に他のSLCブロックに、またはTLCブロックに移動することができる。
【0069】
図10は、本発明の別の例示的な実施形態に係るメモリシステムの読み出し方法を示すフローチャートである。以下、本発明の例示的な実施形態に係るメモリシステムの読み出し方法を、参照の図面に基づいて詳細に説明する。まず、第1メモリ領域1411は、セルあたり1ビットのデータが格納されるメモリブロック(以下、SLCブロックという)で構成され、第2メモリ領域1412は、セル当たり3ビットのデータが格納されるメモリブロック(以下、TLCブロックという)で構成されると仮定する。
【0070】
S310段階において、メモリ制御器1200は、外部装置(例えば、ホスト)からの読み出し要請が入力される。S320段階において、メモリ制御器1200は、読み出し要請されたデータが出力されるように不揮発性メモリ装置1400を制御する。読み出し要請されたデータは、例えば、第2メモリ領域1412のTLCブロックに格納されたデータである。または、読み出し要請されたデータは、第1メモリ領域1411のSLCブロックに格納されたデータである。例示的な実施形態において、読み出し要請されたデータは、第2メモリ領域1412のTLCブロックに格納されたデータである。
【0071】
S330段階において、不揮発性メモリ装置1400から出力されるデータが、メモリ制御器1200のバッファメモリ1240に伝送される間、メモリ制御器1200のECC回路1250は、不揮発性メモリ装置1400から出力されるデータに対するエラー検出動作を実行する。この時、不揮発性メモリ装置1400から出力されるデータは、メモリ制御器1200のバッファメモリ1240に一時格納される。
【0072】
S340段階において、不揮発性メモリ装置1400から出力されるデータのエラーが訂正可能であるか否かが決められる。もし、不揮発性メモリ装置1400から出力されるデータのエラーが訂正可能であると判断されれば、S350段階に進む。S350段階において、不揮発性メモリ装置1400から出力されるデータのエラーが訂正される。S360段階において、バッファメモリ1240に格納された訂正されたデータは、読み出し要請されたデータとして外部装置に伝送される。その後、読み出し方法は終了する。
【0073】
S340段階に戻って、もし不揮発性メモリ装置1400から出力されるデータのエラーが訂正できないと判断されるか、又は不揮発性メモリ装置1400から出力されるデータから出力されたエラービットの数が基準(例えば、ECC回路1250の許容可能なエラービット数、許容可能なエラービット数より少ないエラービット数など)を超えた場合、S370段階に進む。S370段階において、読み出しリトライ動作が行われる。読み出しリトライ動作は、読み出し電圧が決められた回数内で変化する状態で読み出し動作をリトライする動作を意味する。読み出しリトライ動作の一例が特許文献3に掲載されている。読み出し電圧が変化するたびに読み出されたデータがエラー訂正可能であるか否かが判別される。読み出しリトライ動作を通じて読み出されたデータがエラー訂正できない場合、S380段階に進む。S380段階において、読み出しフェイルフラグが生成される。読み出しフェイルフラグの生成による手続きは多様に決定され得る。以後、方法は終了する。
【0074】
読み出しリトライ動作を通じて読み出されたデータがエラー訂正可能な場合、S390段階に進む。S390段階において、不揮発性メモリ装置1400から出力されたデータが格納された第2メモリ領域1412のTLCブロックが読み出し校正動作の対象ブロックであることを示す情報がキューに格納される。上述のように、キューは、バッファメモリ1240の一部として構成され、キューに格納された情報は、CPU1230によって参照される。キューに格納される情報は、周期的に、または一定の時間に不揮発性メモリ装置1400に格納される。これは、突然の電源遮断によってバッファメモリ1240、またはキューに格納された情報が失われることを防止するために行われる。キューに格納された情報に基づいて、TLCブロックの読み出し校正動作が実行され、これは以後詳細に説明する。
【0075】
不揮発性メモリ装置1400から出力されたデータが格納された第2メモリ領域1412のTLCブロックが読み出し校正動作の対象ブロックであることを示す情報がキューに格納された後、S350段階に進む。S350段階において、不揮発性メモリ装置1400から出力されるデータのエラーが訂正される。S360段階において、バッファメモリ1240に格納された訂正されたデータは、読み出し要請されたデータとして外部装置に伝送される。以後、読み出し方法は終了する。
メモリ制御器1200は、キューに格納された情報に基づいて、読み出し校正動作を実行し、これは
図8A、
図8B、及び
図9での説明と同様に行われる。
【0076】
図11は、本発明のさらに別の例示的な実施形態に係るメモリシステムの読み出し方法を示すフローチャートである。以下、本発明の例示的な実施形態に係るメモリシステムの読み出し方法を、参照の図面に基づいて詳細に説明する。まず、第1メモリ領域1411は、セルあたり1ビットのデータが格納されるメモリブロック(以下、SLCブロックという)で構成され、第2メモリ領域1412は、セル当たり3ビットのデータが格納されるメモリブロック(以下、TLCブロックという)で構成されると仮定する。
【0077】
S410段階において、メモリ制御器1200は、外部装置(例えば、ホスト)からの読み出し要請が入力される。S420段階において、メモリ制御器1200は、読み出し要請されたデータが出力されるように不揮発性メモリ装置1400を制御する。読み出し要請されたデータは、例えば、第2メモリ領域1412のTLCブロックに格納されたデータである。または、読み出し要請されたデータは、第1メモリ領域1411のSLCブロックに格納されたデータである。例示的な実施形態において、読み出し要請されたデータは、第2メモリ領域1412のTLCブロックに格納されたデータである。
【0078】
S430段階において、不揮発性メモリ装置1400から出力されるデータが、メモリ制御器1200のバッファメモリ1240に伝送される間、メモリ制御器1200のECC回路1250は、不揮発性メモリ装置1400から出力されるデータに対するエラー検出動作を実行する。この時、不揮発性メモリ装置1400から出力されるデータは、メモリ制御器1200のバッファメモリ1240に一時格納される。
【0079】
S440段階において、不揮発性メモリ装置1400から出力されるデータに含まれたエラービットの数が基準以下であるか否かが決められる。ここで、基準は、ECC回路1250の許容可能なエラービット数、許容可能なエラービット数より少ないエラービット数などである。もし、不揮発性メモリ装置1400から出力されるデータに含まれたエラービットの数が基準以上であると判断されれば、S450段階に進む。S450段階において、不揮発性メモリ装置1400から出力されたデータが格納された第2メモリ領域1412のTLCブロックが読み出し校正動作の対象ブロックであることを示す情報がキューに格納される。上述のように、キューは、バッファメモリ1240の一部として構成され、キューに格納された情報は、CPU1230によって参照される。キューに格納される情報は、周期的に、または一定の時間に不揮発性メモリ装置1400に格納される。これは、突然の電源遮断によってバッファメモリ1240、またはキューに格納された情報が失われることを防止するために行われる。キューに格納された情報に基づいて、TLCブロックの読み出し校正動作が実行され、これは以後詳細に説明する。
【0080】
不揮発性メモリ装置1400から出力されたデータが格納された第2メモリ領域1412のTLCブロックが読み出し校正動作の対象ブロックであることを示す情報がキューに格納された後、S460段階に進む。S460段階において、不揮発性メモリ装置1400から出力されるデータのエラーが訂正される。S470段階において、バッファメモリ1240に格納された訂正されたデータは、読み出し要請されたデータとして外部装置に伝送される。以後、読み出し方法は終了する。
メモリ制御器1200は、キューに格納された情報に基づいて、読み出し校正動作を実行し、これは
図8A、8b、及び
図9での説明と同様に行われる。
【0081】
図12は、本発明の例示的な実施形態に係るメモリシステムの読み出し校正方法を示すブロック図である。
図12を参照すると、読み出し校正動作は、読み出し動作の時、読み出しフェイルされる可能性が高いページのデータを含んだTLCブロックの有効なデータを新しいブロックに移動させる動作として、データの整合性を確保するために行われる。本発明では、特に、読み出し校正動作の対象ブロックとして決められたTLCブロックを示す情報がキューに格納される。ホストからの要請(例えば、書き込み要請)の時、例えば、要請された動作が完了し、キューに格納された情報に基づいてTLCブロックの有効なページのデータのうちの一部(または、すべて)がSLCブロックに移動する。SLCブロックへのデータ移動は、ECC回路1250の符号化及びバッファプログラミングを通じて行われる。
【0082】
例示的な実施形態において、ホスト要請の時、SLCブロックに移動するデータの量は、ホストのタイムアウト区間を考慮して決めることができる。例えば、SLCブロックに移動するデータの量は、一つのSLCブロックの格納容量に対応する。または、SLCブロックに移動するデータの量は、二つのSLCブロックの格納容量の合計に対応する。しかし、本発明は、ここに開示されたものに限定されない。したがって、要請された動作及びSLCブロックへのデータの移動は、ホストのタイムアウト区間内で行われる。
【0083】
読み出し校正動作の対象ブロックとして決められたTLCブロックの有効なページのデータがすべてSLCブロックに移動すれば、
図12に示すように、TLCブロックと関連した読み出し校正動作は完了したと処理される。以後、SLCブロックに格納されたデータは、読み出し校正動作ではなく、ガーベッジコレクション動作または他の動作の時、メインプログラム動作によりTLCブロックに格納される。
図9を参照して説明したように、読み出し校正動作を通じてプログラムされたSLCブロックのうちの一つが空の格納空間を含む場合、空の格納空間を含むSLCブロックを除いた残りのSLCブロックのデータは、他のSLCブロックのデータと共にメインプログラム動作によりTLCブロックに格納される。
したがって、本発明の読み出し校正動作は、ホストのタイムアウト条件を満たしながら実行することができる。また、本発明のメモリシステムは、TLCブロックにオープンワードラインが生成されることを防止することができる。
【0084】
図13は、本発明の実施形態に係るコンピューティングシステムを概略的に示すブロック図である。コンピューティングシステムは、処理ユニット2101と、ユーザインターフェース2202と、ベースバンドチップセット(base band chipset)のようなモデム2303と、メモリ制御器2404と、格納媒体2505とを含む。
【0085】
メモリ制御器2404は、
図2に示したものと実質的に同一に構成され、格納媒体2505は、
図4に示した不揮発性メモリ装置で構成される。例えば、メモリ制御器2404は、読み出し校正動作の対象ブロックであるTLCブロックを、キューを利用して管理し、特定の時間(例えば、ホストの書き込み要請の時)に、キューに格納された情報に基づいてTLCブロックを選択し、選択されたTLCブロックの有効なページのデータが格納媒体2505の不揮発性メモリ装置に含まれたSLCブロックに移動するように格納媒体2505を制御する。メモリ制御器2404は、選択されたTLCブロックの有効なページのデータが格納媒体2505の不揮発性メモリ装置に含まれたSLCブロックに移動する時、選択されたTLCブロックの読み出し校正動作を完了したと処理する。
【0086】
格納媒体2505には、処理ユニット2101によって処理された/処理されるNビットのデータ(Nは1以上の整数)がメモリ制御器2404を通じて格納される。コンピューティングシステムがモバイル装置の場合、コンピューティングシステムの動作電圧を供給するためのバッテリー2606がさらに提供される。図示しないが、本発明に係るコンピューティングシステムは、アプリケーションチップセット(application chipset)、カメライメージプロセッサ(Camera Image Processor:CIS)、モバイルDRAMなどをさらに提供することができる。
【0087】
図14は、本発明の実施形態に係る半導体ドライブを概略的に示すブロック図である。
図14を参照すると、半導体ドライブ4000(SSD)は、格納媒体4100と、制御器4200とを含む。格納媒体4100は、複数のチャンネルCH0〜CHn1を通じて制御器4200と接続する。各チャンネルには、複数の不揮発性メモリが共通に接続するようになる。制御器4200は、
図2に示したものと実質的に同一に構成され、格納媒体4100の不揮発性メモリ装置の各々は、
図4に示した不揮発性メモリ装置と実質的に同一に構成される。例えば、制御器4200は、読み出し校正動作の対象ブロックであるTLCブロックを、キューを利用して管理し、特定の時間(例えば、ホストの書き込み要請の時)に、キューに格納された情報に基づいてTLCブロックを選択し、選択されたTLCブロックの有効なページのデータが格納媒体4100の不揮発性メモリ装置に含まれたSLCブロックに移動するように格納媒体4100を制御する。制御器4200は、選択されたTLCブロックの有効なページのデータが格納媒体4100の不揮発性メモリ装置に含まれたSLCブロックに移動する時、選択されたTLCブロックに対する読み出し校正動作を完了したと処理する。
【0088】
図15は、
図14に示した半導体ドライブを利用したストレージを概略的に示すブロック図であり、
図16は、
図14に示した半導体ドライブを利用したストレージサーバを概略的に示すブロック図である。
本発明の実施形態に係る半導体ドライブ4000は、ストレージを構成するために使用することができる。
図15に示すように、ストレージは、
図14での説明と実質的に同一に構成される複数の半導体ドライブを含む。本発明の実施形態に係る半導体ドライブ4000は、ストレージサーバを構成するために使用することができる。
図16に示すように、ストレージサーバは、
図14での説明と実質的に同一に構成される複数の半導体ドライブ4000と、サーバ4000Aとを含む。また、この分野でよく知られているRAID制御器4000Bをストレージサーバに提供することができることを容易に理解することができる。
【0089】
図17は、本発明に係るMoviNANDを概略的に示すブロック図である。
図17を参照すると、MoviNAND5000は、少なくとも一つのNANDフラッシュメモリ装置5100と、制御器5200とを含むことができる。MoviNAND5000は、MMC4.4(言い換えれば、eMMC)規格をサポートする。
【0090】
NANDフラッシュメモリ装置5100は、SDR(Sing Data Rate)NANDまたはDDR(Double Data Rate)NANDになることができる。例示的な実施形態において、NANDフラッシュメモリ装置5100は、単品のNANDフラッシュメモリ装置を含むことができる。ここで、単品のNANDフラッシュメモリ装置、一つのパッケージ(例えば、FBGA、Fine−pitch Ball Grid Array)に積層されて実現され得る。単品のNANDフラッシュメモリ装置の各々は、
図4に示したものと実質的に同一に構成され、制御器5200は、
図2に示したものと実質的に同一に動作する。例えば、メモリ制御器5200は、読み出し校正動作の対象ブロックであるTLCブロックをキューを用いて管理し、特定の時間(例えば、ホストの書き込み要請の時)に、キューに格納された情報に基づいてTLCブロックを選択し、選択されたTLCブロックの有効なページのデータがSLCブロックに移動するようにNANDフラッシュメモリ装置5100を制御する。メモリ制御器5200は、選択されたTLCブロックの有効なページのデータがNANDフラッシュメモリ装置5100に含まれたSLCブロックに移動する時、選択されたTLCブロックに対する読み出し校正動作を完了したと処理する。
【0091】
メモリ制御器5200は、複数のチャネルを通じてフラッシュメモリ装置5100に接続する。制御器5200は、少なくとも一つの制御器コア5210と、ホストインターフェース5220と、NANDインターフェース5230とを含む。少なくとも一つの制御器コア5210は、MoviNAND3000の全体的な動作を制御する。ホストインターフェース5220は、制御器5210とホストのインターフェイシングを実行する。NANDインターフェース5230は、NANDフラッシュメモリ装置5100と制御器5200のインターフェイシングを実行する。例示的な実施形態において、ホストインターフェース5220は、並列インターフェース(例えば、MMCインターフェース)になることができる。別の実施形態において、MoviNAND5000のホストインターフェース5220は、直列インターフェース(例えば、UHS−II、UFSインターフェース)になることができる。
【0092】
MoviNAND5000は、ホストから電源電圧Vcc、Vccqが提供される。ここで、第1電源電圧(Vcc:3.3V)は、NANDフラッシュメモリ装置5100とNANDインターフェース5230に提供され、第2電源電圧(Vccq:1.8V/3.3V)は、制御器5200に提供される。例示的な実施形態において、MoviNAND5000は、外部の高電圧Vppが選択的に提供され得る。
本発明に係るMoviNAND5000は、大容量のデータの格納に有利であるだけでなく、向上した読み出し動作特性を有する。本発明の実施形態に係るMoviNAND5000は、小型及び低電力が要求されるモバイル製品(例えば、GALAXY S、GALAXY Note、iPhoneなど)に応用可能である。
【0093】
図18は、本発明に係る通信装置を概略的に示すブロック図である。
図18を参照すると、モバイル装置6000は、通信ユニット6100と、制御器6200と、メモリユニット6300と、ディスプレイユニット6400と、タッチスクリーンユニット6500と、オーディオユニット6600とを含む。メモリユニット6300は、少なくとも一つのDRAM6310と、少なくとも一つのOneNAND6320と、少なくとも一つのMoviNAND6330とを含む。
モバイル装置に関するより詳細な説明は、特許文献4、5、6、7及び8に記載されている。
【0094】
図19は、本発明の実施形態に係る半導体ドライブが適用されるシステムを概略的に示す図である。
図19に示すように、本発明の実施形態に係る半導体ドライブは、メールサーバ8100にも適用可能である。
【0095】
図20は、本発明の実施形態に係るメモリカード(memory card)を概略的に示すブロック図である。
メモリカードは、例えば、MMCカード、SDカード、マルチユース(multiuse)カード、マイクロSDカード、メモリスティック、コンパクトSDカード、IDカード、PCMCIAカード、SSDカード、チップカード(chipcard)、スマートカード(smartcard)、USBカードなどになることができる。
【0096】
図20を参照すると、メモリカードは、外部とのインターフェースを実行するインターフェース部9221と、バッファメモリを有し、メモリカードの動作を制御する制御器9222と、1つ以上の不揮発性メモリ装置9207とを含む。
制御器9222は、プロセッサとして、不揮発性メモリ装置9207のライト動作及びリード動作を制御することができる。具体的に、制御器9222は、データバスDATAとアドレスバスADDRESSとを通じて不揮発性メモリ装置9207及びインターフェース部9221とカップリングされている。インターフェース部9221は、ホストとメモリカードとの間のデータ交換を実行するためのカードプロトコル(例えば、SD/MMC)を通じてホストとインターフェイシングする。
【0097】
制御器9222は、
図2に示したものと実質的に同一に構成され、不揮発性メモリ装置9207は、
図4に示した不揮発性メモリ装置と実質的に同一に構成される。例えば、制御器9222は、読み出し校正動作の対象ブロックであるTLCブロックを、キューを利用して管理し、特定の時間(例えば、ホストの書き込み要請の時)に、キューに格納された情報に基づいてTLCブロックを選択し、選択されたTLCブロックの有効なページのデータが不揮発性メモリ装置9207に含まれたSLCブロックに移動するように不揮発性メモリ装置9207を制御する。制御器9222は、選択されたTLCブロックの有効なページのデータが不揮発性メモリ装置9207に含まれたSLCブロックに移動する時、選択されたTLCブロックに対する読み出し校正動作を完了したと処理する。
【0098】
図21は、本発明の実施形態に係るデジタルスチルカメラ(digital still camera)を概略的に示すブロック図である。
図21を参照すると、デジタルスチルカメラは、ボディ9301と、スロット9302と、レンズ9303と、ディスプレイ部9308と、シャッターボタン9312と、ストローブ(strobe)9318などを含む。特に、スロット9308には、メモリカード9331を挿入することができ、メモリカード9331は、
図1で説明したメモリ制御器と不揮発性メモリ装置とを含む。例えば、メモリ制御器は、読み出し校正動作の対象ブロックであるTLCブロックを、キューを利用して管理し、特定の時間(例えば、ホストの書き込み要請の時)に、キューに格納された情報に基づいてTLCブロックを選択し、選択されたTLCブロックの有効なページのデータが不揮発性メモリ装置に含まれたSLCブロックに移動するように不揮発性メモリ装置を制御する。メモリ制御器は、選択されたTLCブロックの有効なページのデータが不揮発性メモリ装置に含まれたSLCブロックに移動する時、選択されたTLCブロックに対する読み出し校正動作を完了したと処理する。
【0099】
メモリカード9331が接触型(contact type)の場合、メモリカード9331がスロット9308に挿入される時、メモリカード9331と回路基板上の特定の電気回路が電気的に接触することになる。メモリカード9331が、非接触型(noncontact type)の場合、無線信号を通じてメモリカード9331がアクセスされる。
【0100】
図22は、
図21のメモリカードが使用される様々な応用分野を示す図である。
図22を参照すると、メモリカード9331は、ビデオカメラ(VC)、テレビ(TV)、オーディオ装置(AD)、ゲーム装置(GM)、電子音楽装置(EMD)、携帯電話(HP)、コンピュータ(CP)、PDA(Personal Digital Assistant)、ボイスレコーダ(voice recorder)(VR)、PCカード(PCC)などに使用することができる。
本発明の実施形態において、メモリセルは、可変抵抗メモリセルで構成することができ、例示的な可変抵抗メモリセル及びそれを含むメモリ装置は、特許文献9に掲載されている。
【0101】
本発明の別の実施形態において、メモリセルは、電荷格納層を有する多様なセル構造のうちの一つを使用して実現することができる。電荷格納層を有するセル構造は、電荷トラップ層を利用する電荷トラップフラッシュ構造、アレイが多層で積層されるスタックフラッシュ構造、ソース/ドレインがないフラッシュ構造、ピンタイプフラッシュ構造などを含む。
電荷格納層として電荷トラップフラッシュ構造を有するメモリ装置が、特許文献10、11、12に各々掲載されている。ソース/ドレインがないフラッシュ構造は、特許文献13に掲載されている。
【0102】
本発明に係るフラッシュメモリ装置及び/またはメモリ制御器は、多様な形態のパッケージを利用して実装することができる。例えば、本発明に係るフラッシュメモリ装置及び/またはメモリ制御器は、PoP(Package on Package)、Ball grid arrays(BGAs)、Chip scale packages(CSPs)、Plastic Leaded Chip Carrier(PLCC)、Plastic Dual In−Line Package(PDIP)、Die in Waffle Pack、Die in Wafer Form、Chip On Board(COB)、Ceramic Dual In−Line Package(CERDIP)、Plastic Metric Quad Flat Pack(MQFP)、Thin Quad Flatpack(TQFP)、Small Outline(SOIC)、Shrink Small Outline Package(SSOP)、Thin Small Outline(TSOP)、Thin Quad Flatpack(TQFP)、System In Package(SIP)、Multi Chip Package(MCP)、Wafer−level Fabricated Package(WFP)、Wafer−Level Processed Stack Package(WSP)などのようなパッケージを利用して実装することができる。
【0103】
本発明の範囲又は技術的思想を逸脱せずに本発明の構造を多様に修正又は変更可能であることはこの分野に熟練している者に自明である。上述の内容を考慮する時、本発明の修正及び変更が添付の特許請求の範囲及びその均等物の範疇内に属すれば、本発明はこの発明の変更及び修正を含むと見なす。