(57)【特許請求の範囲】
【請求項１】
主にタイマーと、量子化インデックステーブルと、実記憶ページテーブルと、エラーインデックステーブルとから構成されるフラッシュメモリのエラー予測モジュールであって、
前記タイマーは、量子化インデックスの入力として、フラッシュメモリのプログラミング時間又は消去時間を記録するためのものであり、
前記量子化インデックステーブルは、フラッシュメモリブロックの内部ページの寿命状態を表すプログラミングレベルとプログラミング時間との間のマッピング関係と、当該物理アドレスが対応するフラッシュメモリブロックの寿命状態を表す消去レベルと消去時間との間のマッピング関係とを記録するためのものであり、
前記実記憶ページテーブルは、複数の連続メモリセルを含み、連続メモリセルのそれぞれは、１つのフラッシュメモリブロックの消去レベルとプログラミングレベルを記録するために用いられ、当該フラッシュメモリブロックの消去レベルが前記連続メモリセルの先頭に保存され、当該フラッシュメモリブロック内の各ページのプログラミングレベルが順次に前記連続メモリセルに格納され、
前記エラーインデックステーブルは、消去レベルと対応するブロックエラー率とのマッピング関係を記録するブロックエラーインデックステーブルと、プログラミングレベルと対応するページエラー率とのマッピング関係を記録するページエラーインデックステーブルとの２つの部分を含み、
前記フラッシュメモリのエラー予測モジュールは、フラッシュメモリコントローラからの計時情報、イネーブル信号、又はフラッシュメモリチップからのＲ／Ｂ信号を入力として受信し、予測されるエラーの数をエラーチェックモジュールに出力することを特徴とするフラッシュメモリのエラー予測モジュール。
【請求項２】
フラッシュメモリデバイスに対して消去とプログラミング操作のストレステストを行い、消去とプログラミングの時間変化およびフラッシュメモリデバイスのエラーの経験的データを記録するとともに、前記量子化インデックステーブルとエラーインデックステーブルを、エラー予測モジュールがエラー予測を行うための先験的参照テーブルとして作成するステップと、
前記エラー予測モジュールのタイマーは、現時点のフラッシュメモリの操作ブロックの消去時間を採集し、フラッシュメモリがプログラミングする際に、現時点のフラッシュメモリの操作ページのプログラミング時間を採集するステップと、
前記量子化インデックステーブルをクエリすることによって、エラー予測モジュールは、消去時間を消去レベルに量子化し、プログラミング時間をプログラミングレベルに量子化するステップと、
現時点の消去レベルと、プログラミングレベルと、両方が対応する物理アドレスとを、前記実記憶ページテーブルに保存するステップと、
フラッシュメモリコントローラがフラッシュメモリに対して操作するとき、前記エラー予測モジュールに、操作されている物理アドレスに対するエラー予測を行うようにリクエストし、エラー予測モジュールにより前記実記憶ページテーブルから対応する物理アドレスのプログラミングレベルと消去レベルを読取るとともに、前記エラーインデックステーブルにより対応するページにおいて予測されるエラーの数に変換し、予測操作を完成するステップと、
を備えることを特徴とする請求項１に記載のフラッシュメモリのエラー予測モジュールのエラー予測方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ記憶分野に関し、具体的には、フラッシュメモリのエラー訂正過程の予測技術に関する。
【背景技術】
【０００２】
フラッシュメモリデバイスにおけるメモリセルは、フローティングゲートに電子を注入する方法によって論理的情報を記録するとともに、閾値電圧を読取ることによってフローティングゲートに保存されている論理を判断する。フラッシュメモリデバイスは、複数回の書き込み消去が行われた後、デバイスの特性が衰退し、フラッシュメモリのプログラミング時間が短縮し、消去の時間が長くなってしまう。
【０００３】
フラッシュメモリデバイスは、操作の過程において様々な寄生効果が伴うため、フラッシュメモリデバイスに保存されているデータにエラーが発生する。中でも、エラーの最も主な原因は、プログラミング擾乱、読取り擾乱、通過擾乱、およびフローティングゲートの結合効果である。フラッシュメモリデバイスがプログラミング操作を行う際に、フラッシュメモリコントローラはワード線（Ｗｏｒｄ  ｌｉｎｅ）上の電圧を上げるため、ワード線に隣接するメモリセルに偶発的な書込み動作、すなわちプログラミング擾乱が発生する。ビット線（Ｂｉｔ  ｌｉｎｅ）方向に、同一のビット線上のメモリセルは、フラッシュメモリのメモリセルを導通させるために、高い通過電圧をかける必要がある。繰り返して書込み操作を行なうと、ビット線上のセルに偶発的な書込み動作、すなわち通過擾乱が発生する。フラッシュメモリデバイスが複数回の読取り操作を行うと、フラッシュメモリアレイが繰り返して導通され、フラッシュメモリのメモリセルのチャネルに電子が蓄積される。蓄積されている電子がフラッシュメモリのメモリセルの書込み閾値に達すると、フラッシュメモリのメモリセルに偶発的な書込み動作が発生する。ここで、擾乱はソリッドステートディスクに保存されたデータの正確性に影響を与え、更に、ひどい擾乱はフラッシュメモリデバイスの使用寿命を短縮させる。その他に、フローティングゲートの結合効果も重大なエラーをもたらす。フラッシュメモリの技術が進歩するにつれて、デバイスの密度が増加しつつあり、これにより、単一のメモリセルのフローティングゲートの閾値電圧の変化が隣接するセルの電圧に影響を与え、偶発的なレベルシフトを発生させ、エラーを発生させる。フラッシュメモリアレイにおけるあるメモリセルのフローティングゲートの電圧の変化が、周囲のメモリセルのフローティングゲートを擾乱し、周囲のメモリセルに保存されているデータに偶発的なフリップを発生させる。
【０００４】
フラッシュメモリデバイスに存在する様々な擾乱と結合効果はフラッシュメモリに保存されているデータをひどく干渉し、実際の使用過程において、エラー訂正アルゴリズムによってフラッシュメモリに記憶されているデータを保護する必要がある。しかしながら、フラッシュメモリコントローラは、例えば、低密度パリティ検査符号化などの高度な検査符号化技術によりエラー訂正を行う前に、チャネルにおけるエラーを合理的に予測する必要がある。したがって、フラッシュメモリコントローラにとって、フラッシュメモリに対するエラー予測技術が必要である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする技術的課題は、フラッシュメモリのエラー訂正アルゴリズムに高い信頼性を有する計算基準を提供し、システムのエラー訂正性能を向上させるフラッシュメモリのエラー予測モジュール及びエラー予測方法を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、まず、本発明は、主にタイマーと、量子化インデックステーブルと、実記憶ページテーブルと、エラーインデックステーブルとから構成されるフラッシュメモリのエラー予測モジュールであって、
前記タイマーは、量子化インデックスの入力として、フラッシュメモリのプログラミング時間又は消去時間を記録するためのものであり、
前記量子化インデックステーブルは、フラッシュメモリブロックの内部ページの寿命状態を表すプログラミングレベルとプログラミング時間との間のマッピング関係と、当該物理アドレスが対応するフラッシュメモリブロックの寿命状態を表す消去レベルと消去時間との間のマッピング関係とを記録するためのものであり、
前記実記憶ページテーブルは、若干の連続メモリセルを含み、連続メモリセルのそれぞれは、１つのフラッシュメモリブロックの消去レベルとプログラミングレベルとを記録するために用いられ、当該フラッシュメモリブロックの消去レベルが前記連続メモリセルの先頭に保存され、当該フラッシュメモリブロック内の各ページのプログラミングレベルが順次に前記連続メモリセルに格納され、
前記エラーインデックステーブルは、消去レベルと対応するブロックエラー率とのマッピング関係を記録するブロックエラーインデックステーブルと、プログラミングレベルと対応するページエラー率とのマッピング関係を記録するページエラーインデックステーブルとの２つの部分を含み、
前記フラッシュメモリのエラー予測モジュールは、フラッシュメモリコントローラからの計時情報、イネーブル信号、又はフラッシュメモリチップからのＲ／Ｂ信号を入力として受信し、予測されるエラーの数をエラーチェックモジュールに出力することを特徴とするフラッシュメモリのエラー予測モジュールを提供する。
【０００７】
上記フラッシュメモリのエラー予測モジュールに基づき、本発明は、フラッシュメモリデバイスに対して消去とプログラミング操作のストレステストを行い、消去とプログラミングの時間変化およびフラッシュメモリデバイスのエラーの経験的データを記録するとともに、前記量子化インデックステーブルとエラーインデックステーブルを、エラー予測モジュールがエラー予測を行うための先験的参照テーブルとして作成するステップと、
前記エラー予測モジュールのタイマーは、現時点のフラッシュメモリの操作ブロックの消去時間を採集し、フラッシュメモリがプログラミングする際に、現時点のフラッシュメモリの操作ページのプログラミング時間を採集するステップと、
前記量子化インデックステーブルをクエリすることによって、エラー予測モジュールは、消去時間を消去レベルに量子化し、プログラミング時間をプログラミングレベルに量子化するステップと、
現時点の消去レベルと、プログラミングレベルと、両方が対応する物理アドレスとを、前記実記憶ページテーブルに保存するステップと、
フラッシュメモリコントローラがフラッシュメモリに対して操作するとき、前記エラー予測モジュールに、操作されている物理アドレスに対するエラー予測を行うようにリクエストし、エラー予測モジュールにより前記実記憶ページテーブルから対応する物理アドレスのプログラミングレベルと消去レベルを読取るとともに、前記エラーインデックステーブルにより対応するページにおいて予測されるエラーの数に変換し、予測操作を完成するステップと、
を備えることを特徴とする当該フラッシュメモリのエラー予測モジュールのエラー予測方法を更に提供する。
【０００８】
本発明は、フラッシュメモリデバイスにおける所定の物理信号によってフラッシュメモリのエラー率を予め予測し、フラッシュメモリのエラー訂正アルゴリズムに適切なエラー予測を提供する。ソリッドステートディスクコントローラやフラッシュメモリコントローラなどのフラッシュメモリデバイスを記憶メディアとする場合に適用し、フラッシュメモリデバイスの信頼性を大幅に向上させた。
【図面の簡単な説明】
【０００９】
以下、本発明の技術方案について、添付図面と具体的な実施形態を結合して更に具体的に説明する。
【図１】フラッシュメモリデバイスのプログラミング時間の変化パタンである。
【図２】フラッシュメモリデバイスの消去時間の変化パタンである。
【図３】エラー予測モジュールのインターフェースの模式図である。
【図４】エラー予測モジュールの内部構造図である。
【図５】操作時間インデックステーブルである。
【図６】操作時間の記憶構造テーブルである。
【図７】エラークエリインデックステーブルである。
【図８】予測操作のフローチャートである。
【発明を実施するための形態】
【００１０】
フラッシュメモリデバイスにおける最も基本的な操作セルはページであり、フラッシュメモリコントローラは、ページにプログラミングや読取り操作を行うことができ、また、フラッシュメモリデバイスの内部において、複数のページにより１つのブロックが構成され、消去操作の最小単位はフラッシュメモリデバイスにおけるブロックである。フラッシュメモリデバイスにおけるブロックが消去操作を行う際に、フラッシュメモリコントローラは消去操作にかかる時間を記録し、また、フラッシュメモリのページがプログラミング操作を行う際に、フラッシュメモリコントローラはフラッシュメモリデバイスのプログラミング時間を監視する。
【００１１】
フラッシュメモリにおける消去時間及びプログラミング時間とデバイスの操作回数との間に関連性が存在する。図１に示すように、フラッシュメモリの書き込み消去回数の増加に伴い、消去時間が次第に長くなり、一方、図２に示すように、プログラミング時間が次第に短くなる。このような現象が生じる原因は、消去操作によりフラッシュメモリの物理的特性が衰退し、デバイスの閾値電圧が高くなることにある。閾値電圧が高くなると、フラッシュメモリは、操作中において、プログラミング操作がより簡単になる一方、消去操作がより困難になる。フラッシュメモリブロックの消去時間とプログラミング時間はリアルにフラッシュメモリブロックの全体的な使用状況を反映している。閾値電圧が高くなることは、デバイスの物理的寄生効果が更に顕著になることを意味し、フラッシュメモリのエラーを増加させてしまう。このため、消去時間とプログラミング時間を監視することで、フラッシュメモリにおけるエラーを予測することができる。
【００１２】
フラッシュメモリコントローラにおいて、消去時間とプログラミング時間を利用して予測を行う前に、予めフラッシュメモリデバイスの消去時間及びプログラミング時間の変化傾向と、消去時間及びプログラミング時間とフラッシュメモリのエラーの関連性を把握する必要がある。この関連性は、フラッシュメモリデバイスに対するストレステストによって実現できる。ストレステストにおいて、フラッシュメモリデバイスにたえずに消去とプログラミング操作を行い、消去とプログラミングの時間変化状況とフラッシュメモリデバイスのエラー状況を記録する。経験的データに対する収集、整理及び分析により、消去とプログラミングの時間変化テーブル、プログラミング時間とエラー率の対応テーブル、及び、消去時間とエラー率の対応テーブルを、エラー予測モジュールが予測操作を行うための先験的参照データとして作成する。
【００１３】
図３のエラー予測モジュールインタフェースの模式図に示すように、エラー予測モジュールがフラッシュメモリコントローラに嵌め込まれ、得られた予測情報をフラッシュメモリコントローラにおけるチェックモジュールに送信する。フラッシュメモリチップとフラッシュメモリコントローラとの間はデータバスを介してデータ交換が行われるとともに、フラッシュメモリコントローラのフラッシュインターフェースモジュールにより制御され、フラッシュメモリチップのインターフェースには、フラッシュメモリの作動状態を示すための一組のＲ／Ｂ信号がある。フラッシュメモリがプログラミングおよび消去操作を行う場合に、Ｒ／Ｂ信号のレベルが有効状態に移行し、フラッシュが現時点ビジー状態にあり、新たな操作には応答できないことを示す。操作が完成した場合に、Ｒ／Ｂ信号が再び無効状態に移行し、フラッシュメモリがアイドル状態に移行したことを示す。フラッシュメモリコントローラがフラッシュメモリデバイスに対して操作を行う際に、エラー予測モジュールにより、フラッシュメモリデバイスにおけるＲ／Ｂ信号の有効時間を計時し、フラッシュメモリがプログラミング又は消去操作にかかる時間コストが得られ、エラー予測モジュールに協力してフラッシュメモリデバイスのエラーを予測する。エラー予測モジュールによる予測エラーはチェックモジュールに送信され、チェックモジュールはフラッシュメモリのプログラミング又は消去操作に対してエラーチェックを行う。
【００１４】
Ｒ／Ｂ信号を利用して直接に計時する方法以外、チェックモジュールはフラッシュメモリコントローラと協力する方式によって計時を完成できる。フラッシュメモリが消去又はプログラミング操作を行う際に、フラッシュメモリコントローラは、フラッシュメモリの作動状態を把握するために、絶えずにフラッシュメモリに「状態を読取る」というコマンドを送信することができる。フラッシュメモリコントローラは、フラッシュメモリが操作を完成する前後の作動状態の変化状況によって、フラッシュメモリが消去又はプログラミング操作にかかる時間コストを統計し、得られた計時情報をエラー予測モジュールに送信し、このように、エラー予測モジュールに協力して計時操作を完成する。
【００１５】
エラー予測モジュールは主にタイマーと、量子化インデックステーブルと、実記憶ページテーブルと、エラーインデックステーブルとから構成され、構造は図４に示すとおりである。コントローラがフラッシュメモリに対して操作する際に、コントローラによりイネーブル信号が入力され、エラー予測モジュールのタイマーを起動させ、フラッシュメモリの有効作動時間の記録を開始する。記録されたプログラミング時間又は消去時間は、量子化インデックステーブルにおいてプログラミングレベル又は消去レベルに量子化され、物理アドレスに応じて実記憶ページテーブルに記憶される。コントローラはエラー訂正操作を行う必要があるときに、実記憶ページテーブルから、対応する物理アドレスのプログラミングレベル及び消去レベルを読取り、エラーインデックステーブルにより対応するページにおいて予測されるエラーの数に変換し、予測操作を完成する。
【００１６】
操作において収集されたプログラミング時間又は消去時間は記憶に不便であるので、エラー予測モジュールが収集されたデータのインデックスと記憶を便利に行うために、プログラミング時間と消去時間に対して量子化操作を行い、連続の時間を離散の時間レベルに量子化する必要がある。図５に示すように、量子化過程は、量子化インデックステーブルにより実現される。タイマーにより収集されたプログラミング時間又は消去時間は量子化インデックスの入力とされる。量子化インデックには、プログラミングレベルとプログラミング時間との間のマッピング関係と、消去レベルと消去時間との間のマッピング関係とが記録されている。量子化インデックステーブルは、入力された時間が対応する量子化レベルを検索し、時間に対して量子化処理を行う。
【００１７】
量子化されたプログラミングレベルと消去レベルは図６に示すように保存される必要がある。消去レベル及びプログラミングレベルは物理アドレスと対応しており、消去レベルは、物理アドレスが対応するフラッシュメモリブロックの使用寿命を表し、プログラミングレベルは、フラッシュメモリブロック内部のページの使用寿命を表す。フラッシュメモリの一つのブロック内部に２５６のページが含まれていると、実記憶ページテーブルは、ブロックの消去レベルを当該物理アドレスが対応するメモリセルの先頭に保存し、次に、実記憶ページテーブルは当該メモリセルに各ページのプログラミングレベルを順次に格納する。
【００１８】
フラッシュメモリコントローラがフラッシュメモリに対して操作を行う際に、エラー予測モジュールに、操作されている物理アドレスのエラー予測を行うようにリクエストする。エラー予測モジュールは、当該物理アドレスのプログラミングレベル又は消去レベルをブロック又はページにおいて予測されるエラーの数に変換する必要がある。図７に示すように、エラー予測モジュールのエラーインデックステーブルにより時間レベルからエラー数への変換を実現する。エラーインデックステーブルは、ブロックエラーインデックスとページエラーインデックスの２つの部分から構成される。ブロックエラーインデックスは、ブロックの消去レベルの変換の役をして、ページエラーインデックスは、ページのプログラミングレベルの変換の役をする。エラーインデックステーブルの内容は予めオフライン実験により完成されたものである。フラッシュメモリコントローラは、必要に応じて対応するブロックの予測エラー又はページの予測エラーを取得する。
【００１９】
フラッシュメモリコントローラは、フラッシュメモリに対して操作を行う際に、前記エラー予測モジュールに、操作されている物理アドレスに対するエラー予測を行うようにリクエストする。エラー予測モジュールが予測操作を行う操作フローは図８に示すとおりである。エラー予測モジュールが作動し始めた後、計時ステップに移行し、フラッシュメモリが消去を行うときに、現時点のフラッシュメモリの操作ブロックの消去時間を採集し、フラッシュメモリがプログラミングを行うときに、現時点のフラッシュメモリの操作ページのプログラミング時間を採集する。タイミングが完成した後、量子化ステップに移行し、エラー予測モジュールは、前記量子化インデックステーブルをクエリすることで、消去時間を消去レベルに量子化し、プログラミング時間をプログラミングレベルに量子化し、現時点の消去レベルと、プログラミングレベルと、両方が対応する物理アドレスとを、前記実記憶ページテーブルに保存する。コントローラは、エラー訂正操作を行う必要がある場合には、前記実記憶ページテーブルから対応する物理アドレスのプログラミングレベルと消去レベルを読取り、前記エラーインデックステーブルにより、対応するページにおいて予測されるエラーの数に変換し、予測操作を完成する。
【００２０】
最後に説明すべきなのは、以上の具体的な実施の形態は、本発明の技術方案を説明するためのものであり、限定的なものではなく、好ましい実施例を参照して本発明を詳細に説明したが、本発明の精神と範囲を逸脱しない限り、本発明の技術方案に対する変更又は同等な置換が可能であり、これらのすべては本発明の特許請求の範囲に含まれるべきであることは、当業者にとって理解すべきである。
【図１】
0006048497.tif 000002
【図２】
0006048497.tif 000003
【図３】
0006048497.tif 000004
【図４】
0006048497.tif 000005
【図５】
0006048497.tif 000006
【図６】
0006048497.tif 000007
【図７】
0006048497.tif 000008
【図８】
0006048497.tif 000009