(57)【要約】【課題】読み出し動作開始から読み出し動作完了までの処理時間を可及的に低減する。【解決手段】制御部は、不揮発性メモリに格納されているデータを読み出す際、読み出し電圧管理情報に記録されている読み出し電圧の値を用いて不揮発性メモリからデータを読み出して、誤り検出部が読み出されたデータに誤りを検出したとき、誤り検出部が読み出されたデータに誤りを検出しなくなるまで読み出し電圧を変更して前記不揮発性メモリからデータの再読み出しを行い、誤り検出部が読み出されたデータに誤りを検出しなくなったとき、読み出し電圧管理情報に記録されている読み出し電圧を更新する。【選択図】図１０
2012203957.tif 000002
【特許請求の範囲】
【請求項１】
ワードライン毎に配列されたメモリセルと前記ワードラインに印加する読み出し電圧を変更可能な電圧生成部とを備える不揮発性メモリと、
ホスト装置と前記不揮発性メモリとの間のデータ転送を制御する制御部と、
前記不揮発性メモリから読み出されたデータの誤り訂正を行う誤り訂正部と、
前記読み出し電圧の値を記録した読み出し電圧管理情報を記憶する管理情報記憶メモリと、を備え、
前記制御部は、前記不揮発性メモリに格納されているデータを読み出す際、前記読み出し電圧管理情報に記録されている読み出し電圧の値を用いて前記不揮発性メモリからデータを読み出して、前記誤り訂正部による誤り訂正に失敗したとき、前記誤り訂正部が誤り訂正に成功するまで、読み出し電圧を変更して前記不揮発性メモリからデータの再読み出しを行い、前記訂正部が誤り訂正に成功したとき、前記読み出し電圧管理情報に記録されている読み出し電圧を前記変更された読み出し電圧で更新する、
ことを特徴とするメモリシステム。
【請求項２】
前記制御部は、前記ホスト装置から書き込み要求されたデータを、所定のサイズのデータ毎に誤り訂正符号を付して前記不揮発性メモリに格納し、
前記読み出し電圧管理情報は、前記所定のサイズの領域毎に読み出し電圧が記録されている、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記読み出し電圧管理情報は、前記メモリセルの消去単位毎の読み出し電圧が記録されている、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項４】
前記読み出し電圧管理情報は、前記メモリセルの先頭物理アドレスとサイズとにより規定される領域毎に読み出し電圧が記録されている、
ことを特徴とする請求項１に記載のメモリシステム。
【請求項５】
前記制御部は、前記不揮発性メモリからデータの再読み出しを行う際、直前に使用した読み出し電圧から所定の刻み幅だけ小さくするように読み出し電圧を変更する、
ことを特徴とする請求項１乃至請求項４の何れか１項に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリシステムに関する。
【背景技術】
【０００２】
コンピュータシステムに用いられるメモリシステムとして、ＮＡＮＤ型の記憶セルを備えるメモリチップを搭載したＳＳＤ（Solid  State  Drive）が注目されている。ＳＳＤは、磁気ディスク装置に比べ、高速、軽量などの利点を有している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−１３４８８４
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の一つの実施形態は、読み出し動作開始から読み出し動作完了までの処理時間を可及的に低減したメモリシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の一つの実施形態によれば、ワードライン毎に配列されたメモリセルと前記ワードラインに印加する読み出し電圧を変更可能な電圧生成部とを備える不揮発性メモリと、ホスト装置と前記不揮発性メモリとの間のデータ転送を制御する制御部と、前記不揮発性メモリから読み出されたデータの誤り検出を行う誤り検出部と、前記読み出し電圧の値を記録した読み出し電圧管理情報を記憶する管理情報記憶メモリと、を備えている。前記制御部は、前記不揮発性メモリに格納されているデータを読み出す際、前記読み出し電圧管理情報に記録されている読み出し電圧の値を用いて前記不揮発性メモリからデータを読み出して、前記誤り検出部が読み出されたデータに誤りを検出したとき、前記誤り検出部が読み出されたデータに誤りを検出しなくなるまで読み出し電圧を変更して前記不揮発性メモリからデータの再読み出しを行い、前記誤り検出部が読み出されたデータに誤りを検出しなくなったとき、前記読み出し電圧管理情報に記録されている読み出し電圧を前記変更された読み出し電圧で更新する。
【図面の簡単な説明】
【０００６】
【図１】図１は、本発明の実施形態のＳＳＤの構成を示す図である。
【図２】図２（ａ）は、ＮＡＮＤメモリチップに含まれる物理ブロックの一例を示す回路図であり、図２（ｂ）は、メモリセルトランジスタの閾値分布の例を示す模式図である。
【図３】図３は、閾値電圧の変化の一例を示す図である。
【図４】図４は、閾値電圧の変化の一例を示す図である。
【図５】図５は、ドライブ制御回路の一例を示す図である。
【図６】図６は、メモリチップの一例を示す図である。
【図７】図７は、メモリセルアレイの１ページの構成を示す図である。
【図８】図８は、ＤＲＡＭの記憶内容を示す図である。
【図９】図９は、読み出し電圧管理情報のデータ構造の一例を示す図である。
【図１０】図１０は、本発明の実施の形態のＳＳＤの読み出し動作時の処理を説明するフローチャートである。
【図１１】図１１は、読み出し電圧管理情報のデータ構造の一例を示す図である。
【図１２】図１２は、書き込みがなされてからの適正な読み出し電圧の低下を示す図である。
【図１３】図１３は、メモリセルアレイの領域の構成を示す図である。
【図１４】図１４は、読み出し電圧管理情報のデータ構造の一例を示す図である。
【図１５】図１５は、読み出し電圧管理情報のデータ構造の一例を示す図である。
【発明を実施するための形態】
【０００７】
ＮＡＮＤ型フラッシュメモリが備えるメモリセルは、例えば半導体基板上に形成された積層ゲート構造を備えたＭＯＳＦＥＴ（metal  oxide  semiconductor  field  effect  transistor）から構成される。積層ゲート構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（浮遊ゲート電極）、および電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。
【０００８】
メモリセルは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。しかしながら、メモリセルに書き込まれたデータが長時間アクセスされなかったような場合、メモリセルの浮遊ゲートから電子が放出され、閾値電圧が低くなるように変化する現象が発生する。閾値電圧の変化量は、データ保持期間のほか、書き込み／消去回数（Ｗ／Ｅ回数）や周辺温度などにも影響される。
【０００９】
以下に添付図面を参照して、実施形態にかかるメモリシステムを詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【００１０】
（実施形態）
図１は、本発明の実施形態のメモリシステムを適用したＳＳＤの構成を示す図である。ＳＳＤ１００は、ＡＴＡインタフェース（ＡＴＡ  Ｉ／Ｆ）２などのメモリ接続インタフェースを介してパーソナルコンピュータあるいはＣＰＵコアなどのホスト装置（以下、ホストと略す）１と接続され、ホスト１の外部メモリとして機能する。また、ＳＳＤ１００は、ＲＳ２３２Ｃインタフェース（ＲＳ２３２Ｃ  Ｉ／Ｆ）などの通信インタフェース３を介して、デバッグ用／製造検査用機器２００との間でデータを送受信することができる。
【００１１】
ＳＳＤ１００は、不揮発性半導体メモリとしてのＮＡＮＤ型フラッシュメモリ（以下、ＮＡＮＤメモリという）１０と、コントローラとしてのドライブ制御回路４と、揮発性半導体メモリとしてのＤＲＡＭ２０と、電源回路５と、状態表示用のＬＥＤ６と、ドライブ内部の温度を検出する温度センサ７と、フューズ８とを備えている。
【００１２】
電源回路５は、ホスト１側の電源回路から供給される外部直流電源から複数の異なる内部直流電源電圧を生成し、これら内部直流電源電圧をＳＳＤ１００内の各回路に供給する。また、電源回路５は、外部電源の立ち上がりを検知し、パワーオンリセット信号を生成して、ドライブ制御回路４に供給する。
【００１３】
フューズ８は、ホスト１側の電源回路とＳＳＤ１００内部の電源回路５との間に設けられている。外部電源回路から過電流が供給された場合、フューズ８が切断され、内部回路の誤動作を防止する。
【００１４】
ＮＡＮＤメモリ１０は、例えば４並列動作を行う４つの並列動作要素１０ａ〜１０ｄを有し、４つの並列動作要素１０ａ〜１０ｄは、４つのチャネル（ｃｈ０〜ｃｈ３）によってドライブ制御回路４に接続されている。各並列動作要素１０ａ〜１０ｄは、バンクインターリーブが可能な複数のバンクによって構成されている。すなわち、各並列動作要素は、例えば４バンク（Ｂａｎｋ０〜Ｂａｎｋ３）によって構成されており、各バンクは、複数のＮＡＮＤメモリチップ、例えば２つのメモリチップ（Ｃｈｉｐ０、Ｃｈｉｐ１）により構成されている。
【００１５】
各メモリチップは、例えば、それぞれ複数の物理ブロックを含むプレーン０、プレーン１の２つの領域（District）に分割されている。プレーン０およびプレーン１は、互いに独立した周辺回路（例えば、ロウデコーダ、カラムデコーダ、ページバッファ、データキャッシュ等）を備えており、倍速モードを使用することにより、同時に消去／書き込み／読み出しを行うことが可能である。
【００１６】
このように、ＮＡＮＤメモリ１０の各ＮＡＮＤメモリチップは、複数のチャネルによる並列動作、複数のバンクによるバンクインターリーブ動作、同一バンク内の複数チップのインターリーブ動作、複数のプレーンを用いた倍速モードによる並列動作が可能である。なお、各メモリチップは、２つ以上の複数のプレーンに分割された構成であってもよいし、あるいは、全く分割されていなくてもよい。
【００１７】
ＤＲＡＭ２０は、ホスト１とＮＡＮＤメモリ１０との間で、データ転送用キャッシュおよび作業領域用メモリなどとして機能する。ＤＲＡＭ２０の作業領域用メモリに記憶される内容は、例えばＮＡＮＤメモリ１０に記憶されている各種管理テーブルが、起動時などに展開されたマスターテーブル（スナップショット）、あるいは管理テーブルの変更差分であるログ情報などがある。
【００１８】
尚、ＤＲＡＭ２０の代わりに、ＦｅＲＡＭ（Ferroelectric  Random  Access  Memory）、ＭＲＡＭ（Magnetoresistive  Random  Access  Memory）、ＰＲＡＭ（Phase  change  Random  Access  Memory）などの不揮発性ランダムアクセスメモリを使用することも可能である。不揮発性ランダムアクセスメモリを利用する場合、電源切断時に各種管理テーブルなどをＮＡＮＤメモリ１０に退避させる動作の一部又は全部を省略することができる。
【００１９】
ドライブ制御回路４は、ホスト１とＮＡＮＤメモリ１０との間でＤＲＡＭ２０を介してデータ転送制御を行うとともに、ＳＳＤ１００内の各構成要素を制御する。また、ドライブ制御回路４は、状態表示用ＬＥＤ６にステータス表示用信号を供給するとともに、電源回路５からのパワーオンリセット信号を受けて、リセット信号およびクロック信号をドライブ制御回路４内およびＳＳＤ１００内の各部に供給する機能も有している。
【００２０】
各ＮＡＮＤメモリチップは、データ消去の単位である物理ブロックを複数配列して構成されている。
【００２１】
図２（ａ）は、ＮＡＮＤメモリチップに含まれる１個の物理ブロックの構成例を示す回路図である。各物理ブロックは、Ｘ方向に沿って順に配列された（ｐ＋１）個のＮＡＮＤストリングを備えている（ｐは、０以上の整数）。各ＮＡＮＤストリングに含まれる選択トランジスタＳＴ１は、ドレインがビット線ＢＬ０〜ＢＬｐに接続され、ゲートが選択ゲート線ＳＧＤに共通接続されている。また、選択トランジスタＳＴ２は、ソースがソース線ＳＬに共通接続され、ゲートが選択ゲート線ＳＧＳに共通接続されている。
【００２２】
各メモリセルトランジスタ（メモリセルとも言う）ＭＴは、半導体基板上に形成された積層ゲート構造を備えたＭＯＳＦＥＴ（Metal  Oxide  Semiconductor  Field  Effect  Transistor）により構成されている。積層ゲート構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（浮遊ゲート電極）、および電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルトランジスタＭＴは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。メモリセルトランジスタＭＴは、１ビットを記憶するように構成されていてもよいし、多値（２ビット以上のデータ）を記憶するように構成されていてもよい。
【００２３】
また、メモリセルトランジスタＭＴは、浮遊ゲート電極を有する構造に限らず、ＭＯＮＯＳ（Metal-Oxide-Nitride-Oxide-Silicon）型など、電荷蓄積層としての窒化膜界面に電子をトラップさせることにより閾値電圧が調整可能な構造であってもよい。ＭＯＮＯＳ構造のメモリセルトランジスタＭＴについても同様に、１ビットを記憶するように構成されていてもよいし、多値（２ビット以上のデータ）を記憶するように構成されていてもよい。
【００２４】
各ＮＡＮＤストリングにおいて、（ｑ＋１）個のメモリセルトランジスタＭＴは、選択トランジスタＳＴ１のソースと選択トランジスタＳＴ２のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。すなわち、複数のメモリセルトランジスタＭＴは、隣接するもの同士で拡散領域（ソース領域若しくはドレイン領域）を共有するような形でＹ方向に直列接続される。
【００２５】
各ＮＡＮＤストリングにおいて、最もドレイン側に位置するメモリセルトランジスタＭＴから順に、制御ゲート電極がワード線ＷＬ０〜ＷＬｑにそれぞれ接続されている。従って、ワード線ＷＬ０に接続されたメモリセルトランジスタＭＴのドレインは選択トランジスタＳＴ１のソースに接続され、ワード線ＷＬｑに接続されたメモリセルトランジスタＭＴのソースは選択トランジスタＳＴ２のドレインに接続されている。
【００２６】
ワード線ＷＬ０〜ＷＬｑは、物理ブロック内のＮＡＮＤストリング間で、メモリセルトランジスタＭＴの制御ゲート電極を共通に接続している。つまり、ブロック内において同一行にあるメモリセルトランジスタＭＴの制御ゲート電極は、同一のワード線ＷＬに接続される。この同一のワード線ＷＬに接続される（ｐ＋１）個のメモリセルトランジスタＭＴは１ページ（物理ページ）として取り扱われ、この物理ページごとにデータの書き込みおよびデータの読み出しが行われる。
【００２７】
また、ビット線ＢＬ０〜ＢＬｐは、ブロック間で、選択トランジスタＳＴ１のドレインを共通に接続している。つまり、複数のブロック内において同一列にあるＮＡＮＤストリングは、同一のビット線ＢＬに接続される。
【００２８】
図２（ｂ）は、例えば、１個のメモリセルトランジスタＭＴに２ビットの記憶を行う４値データ記憶方式での閾値分布を示す模式図である。４値データ記憶方式は、上位ページデータ“ｘ”と下位ページデータ“ｙ”で定義される４値データ“ｘｙ”の何れか１つをメモリセルトランジスタＭＴに保持可能である。
【００２９】
４値データ“ｘｙ”は、メモリセルトランジスタＭＴの閾値電圧の順に、例えば、データ“１１”、“０１”、“００”、“１０”が割り当てられる。データ“１１”は、メモリセルトランジスタＭＴの閾値電圧が例えば負とされた消去状態である。尚、データの割り当て規則はこれに限らない。また、１個のメモリセルトランジスタＭＴに３ビット以上の記憶を行う構成であってもよい。
【００３０】
下位ページの書き込み動作において、データ“１１”（消去状態）のメモリセルトランジスタＭＴに対して選択的に、下位ビットデータ“ｙ”を書き込むことによって、データ“１０”が書き込まれる。上位ページの書き込み前のデータ“１０”の閾値分布は、上位ページ書き込み後のデータ“０１”とデータ“００”の閾値分布の中間程度に位置しており、上位ページの書き込み後の閾値分布よりブロードであってもよい。上位ページの書き込み動作において、データ“１１”のメモリセルと、データ“１０”のメモリセルに対して、それぞれ選択的に上位ビットデータ“ｘ”が書き込まれることにより、データ“０１”およびデータ“００”が書き込まれる。擬似ＳＬＣモードは、下位ページのみを使用して書き込みを行う。下位ページの書き込みは、上位ページの書き込みに比べて高速である。
【００３１】
ここで、前述のように、メモリセルトランジスタＭＴは、書き込まれたデータが長時間アクセスされなかったような場合、メモリセルの浮遊ゲートから電子が放出され、閾値電圧が低くなるように変化する現象が発生する。
【００３２】
図３は、閾値電圧の変化を説明する図である。本図において、実線は書き込み直後の閾値電圧の分布を、破線は書き込みから長時間が経過した後の閾値電圧の分布を夫々示している。図示するように、長時間が経過した後の各閾値電圧の分布において、デフォルトの読み出し電圧（レベル）ＶＡ、ＶＢ、およびＶＣ閾値よりも閾値電圧が低くなるメモリセルが生じるため、デフォルトの読み出し電圧を用いては正しくデータを読み出すことができなくなる。なお、ＶＲＥＡＤは、非選択のメモリセルに供給される読み出し電圧である。
【００３３】
閾値電圧低下に関連する現象は、図３に示すように、２ビット以上のデータ（多値）を記憶するメモリセル（ＭＬＣ：Multi  Level  Cell）の場合に限らず、図４に示すように、１ビットのデータ（二値）を記憶するメモリセル（ＳＬＣ：Single  Level  Cell）の場合も同様である。ただし、ＭＬＣの場合は、ＳＬＣの場合に比較して閾値分布間のマージンに係る制約が厳しいため、閾値電圧低下の影響はより顕著である。
【００３４】
本発明の実施の形態によれば、ＳＳＤ１００は、閾値電圧が変動しても信頼性が担保されたデータを読み出すことができるように、読み出しデータに対する誤り訂正機能を備えるとともに、誤り訂正に失敗した（誤り訂正処理エラー）場合に、ＮＡＮＤ型フラッシュメモリの読み出し電圧を変化させることができるようになっている。すなわち、ＳＳＤ１００は、データを読み出す際、誤り訂正に成功して正常なデータが読み出せるまで（読み出しに成功するまで）、読み出し電圧の変更と当該変更した読み出し電圧を用いた読み出しとを繰り返す。
【００３５】
また、ＳＳＤ１００は、読み出しに成功した際の読み出し電圧を記憶しておき、次回の読み出し時は、当該記憶されている読み出し電圧を用いてデータの読み出しを行う。これにより、同じデータを短い間に複数回読み出す場合において読み出し動作を行う毎にデータのエラーが検出されることを防止することができる。また、ＳＳＤ１００は、誤り訂正処理に失敗した場合、当該記憶されている読み出し電圧を基準として次に試す読み出し電圧を決定する。これにより、読み出し電圧のデフォルト値を基準として適正な読み出し電圧を探索する場合より、当該適正な読み出し電圧を決定するに至るまでにかかる時間が短縮される。
【００３６】
図５は、ドライブ制御回路４のハードウェア的な内部構成例を示すブロック図である。ドライブ制御回路４は、データアクセス用バス１０１、第１の回路制御用バス１０２、および第２の回路制御用バス１０３を備えている。第１の回路制御用バス１０２には、ドライブ制御回路４全体を制御するプロセッサ１０４が接続されている。第１の回路制御用バス１０２には、ブートＲＯＭ１０５がＲＯＭコントローラ１０６を介して接続されている。ブートＲＯＭ１０５には、ＮＡＮＤメモリ１０に記憶された各管理プログラム（ＦＷ：ファームウエア）をブートするブート用プログラムが格納されている。
【００３７】
また、第１の回路制御用バス１０２には、クロックコントローラ１０７が接続されている。このクロックコントローラ１０７は、図１に示した電源回路５からのパワーオンリセット信号を受けて、リセット信号およびクロック信号を各部に供給する。
【００３８】
第２の回路制御用バス１０３は、第１の回路制御用バス１０２に接続されている。第２の回路制御用バス１０３には、図１に示した温度センサ７からのデータを受けるためのＩ２Ｃ回路１０８、状態表示用ＬＥＤ６にステータス表示用信号を供給するパラレルＩＯ（ＰＩＯ）回路１０９、ＲＳ２３２Ｃ  Ｉ／Ｆ３を制御するシリアルＩＯ（ＳＩＯ）回路１１０が接続されている。
【００３９】
ＡＴＡインタフェースコントローラ（ＡＴＡコントローラ）１１１、第１のＥＣＣ（Error  Checking  and  Correction）回路１１２、ＮＡＮＤコントローラ１１３、およびＤＲＡＭコントローラ１１４は、データアクセス用バス１０１と第１の回路制御用バス１０２との両方に接続されている。ＡＴＡコントローラ１１１は、ＡＴＡインタフェース２をしてホスト１との間でデータを送受信する。データアクセス用バス１０１には、データ作業領域およびファームウェア展開領域として使用されるＳＲＡＭ１１５がＳＲＡＭコントローラ１１６を介して接続されている。ＮＡＮＤメモリ１０に記憶されているファームウェアは起動時、ブートＲＯＭ１０５に記憶されたブート用プログラムによってＳＲＡＭ１１５に転送される。
【００４０】
ＮＡＮＤコントローラ１１３は、ＮＡＮＤ  Ｉ／Ｆ１１７、第２のＥＣＣ回路１１８、およびＤＭＡ転送制御用ＤＭＡコントローラ１１９を備えている。ＮＡＮＤ  Ｉ／Ｆ１１７は、ＮＡＮＤメモリ１０とのインタフェース処理を行う。ＤＭＡ転送制御用ＤＭＡコントローラ１１９は、ＮＡＮＤメモリ１０とＤＲＡＭ２０間のアクセス制御を行う。第２のＥＣＣ回路１１８は第２の訂正符号のエンコードを行い、また、第１の誤り訂正符合のエンコードおよびデコードを行う。第１のＥＣＣ回路１１２は、第２の誤り訂正符号のデコードを行う。
【００４１】
第１の誤り訂正符号、第２の誤り訂正符号は、例えば、ハミング符号、ＢＣＨ（Bose  Chaudhuri  Hocqenghem）符号、ＲＳ(Reed  Solomon)符号、或いはＬＤＰＣ（Low  Density  Parity  Check）符号等であり、第２の誤り訂正符号の訂正能力は、第１の誤り訂正符号の訂正能力よりも高いとする。第２のＥＣＣ回路１１８は、例えば、セクタ単位のデータに対してエンコードを実行する。第１のＥＣＣ回路１１２は、例えば複数のセクタ単位のデータにより構成されるページ単位のデータに対してエンコードを実行する。ドライブ制御回路４は、データを読み出す際に、最初に第２のＥＣＣ回路１１８による誤り訂正を実行する。また、第２のＥＣＣ回路１１８による誤り訂正に失敗した場合のみ、第１のＥＣＣ回路１１２による誤り訂正を実行する。ドライブ制御回路４は、第１のＥＣＣ回路１１２による誤り訂正にも失敗した場合に、誤り訂正に失敗した（誤り訂正処理エラー）と判断する。
【００４２】
なお、本実施形態では、２つのＥＣＣ回路により２段階の誤り訂正を実行する場合について説明するが、更に複数のＥＣＣ回路を設け、３段階以上の誤り訂正を実行してもよい。また、１つのＥＣＣ回路のみを設け、当該ＥＣＣ回路による誤り訂正処理に失敗した場合に、誤り訂正処理エラーと判断してもよい。また、ＥＣＣ回路を設けず、誤り検出回路のみを設け、データ読み出しの際に誤りを検出した場合に、後述する読み出し電圧の変更と当該変更した読み出し電圧を用いた読み出しとを繰り返すこととしてもよい。
【００４３】
また、第１のＥＣＣ回路１１２による誤り訂正処理は、第２のＥＣＣ回路１１８による誤り訂正処理よりも長時間を要するため、第１のＥＣＣ回路１１２による誤り訂正処理が実行された場合は、後述する読み出し電圧の変更と当該変更した読み出し電圧を用いた読み出しとを、第１のＥＣＣ回路１１２による誤り訂正処理が不要になるまで繰り返しても良い。この時の読み出し電圧を記憶して次回の読み出し時に使用すれば、以降の読み出しで毎回第１のＥＣＣ回路１１２による誤り訂正処理が実行されるのを防止することが可能となる。
【００４４】
図６は、図１に示す１つのＮＡＮＤメモリチップの一例を示す機能ブロック図である。
【００４５】
メモリセルアレイ２０１は、複数のビット線と複数のワード線と共通ソース線を含み、図２（ａ）に示した物理ブロックがＹ方向に複数配列されて構成されている。このメモリセルアレイ２０１には、ビット線を制御するためのビット制御回路２０２とワード線制御回路２０６が接続されている。
【００４６】
ビット線制御回路２０２は、ビット線を介してメモリセルアレイ２０１中のメモリセルのデータを読み出したり、ビット線を介してメモリセルアレイ２０１中のメモリセルの状態を検出したり、ビット線を介してメモリセルアレイ２０１中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行なう。ビット線制御回路２０２には、カラムデコーダ２０３、データ入出力バッファ２０４が接続されている。
【００４７】
ビット線制御回路２０２内のデータ記憶回路はカラムデコーダ２０３によって選択される。データ記憶回路に読み出されたメモリセルのデータは、前記データ入出力バッファ２０４を介してデータ入出力端子２０５から外部へ出力される。データ入出力端子２０５は、メモリチップ外部のドライブ制御回路４に接続される。
【００４８】
このドライブ制御回路４は、データ入出力端子２０５から出力されたデータを受ける。さらに、ドライブ制御回路４は、ＮＡＮＤ型フラッシュメモリの動作を制御する各種コマンドＣＭＤ、アドレスＡＤＤ、およびデータＤＴを出力する。ドライブ制御回路４からデータ入出力端子２０５に入力された書き込みデータは、データ入出力バッファ２０４を介して、カラムデコーダ２０３によって選択されたデータ記憶回路に供給され、コマンドおよびアドレスはチップ制御回路２０７に供給される。
【００４９】
ワード線制御回路２０６は、メモリセルアレイ２０１に接続されている。チップ制御回路２０７に供給されたアドレスはこのワード線制御回路２０６に供給され、ワード線制御回路２０６は、メモリセルアレイ２０１中の供給されたアドレスに指定されたワード線を選択し、選択されたワード線に読み出し、書き込みあるいは消去に必要な電圧を印加する。
【００５０】
メモリセルアレイ２０１、ビット線制御回路２０２、カラムデコーダ２０３、データ入出力バッファ２０４、およびワード線制御回路２０６は、チップ制御回路２０７に接続され、このチップ制御回路２０７によって制御される。
【００５１】
チップ制御回路２０７は、制御信号入力端子２０８に接続され、ドライブ制御回路４から制御信号入力端子２０８を介して入力されるＡＬＥ（アドレス・ラッチ・イネーブル）、ＣＬＥ（コマンド・ラッチ・イネーブル）、ＷＥ（ライト・イネーブル）などの各種制御信号、およびドライブ制御回路４からデータ入出力端子２０５およびデータ入出力バッファ２０４を介して入力されるコマンドＣＭＤによって制御される。
【００５２】
このチップ制御回路２０７は、データの書き込み時にワード線やビット線の電圧を発生するとともに、ウェルに供給される電圧を発生する。チップ制御回路２０７は、例えばチャージポンプ回路のような昇圧回路を含み、プログラム電圧や読み出し電圧、消去電圧を生成可能とされている。
【００５３】
さらに、チップ制御回路２０７は、読み出し電圧のレベルを変更可能とされている。すなわち、チップ制御回路２０７は、制御信号入力端子２０８を介して入力される各種制御信号、データ入出力端子２０５およびデータ入出力バッファ２０４を介して入力されるコマンドＣＭＤ、データを受けて、読み出し動作時にワード線に印加する電圧を＋方向、または−方向にシフトさせる機能を有している。なお、デフォルトの読み出し電圧を用いて読み出しを行う場合、チップ制御回路２０７は、通常の読み出しコマンドを受けて動作することが可能である。
【００５４】
メモリセルアレイ２０１は、本体データを格納するための記憶領域に加えて、ＥＣＣ(Error  Correction  Code)を記憶する記憶領域（ＥＣＣ領域）２０１−１を有している。
【００５５】
図７は、メモリセルアレイ２０１の１ページの構成を示している。各ページは、ユーザデータを記憶するデータ領域とＥＣＣを記憶するＥＣＣ領域により構成されている。なお、各ページには、チップ制御回路２０７が利用する内部フラグデータなどが含まれていてもよい。
【００５６】
図８は、図１に示されたＤＲＡＭ２０の記憶内容を示している。ＤＲＡＭ２０は、ファームウェア領域２０−１、テーブル領域２０−２、データ領域２０−３により構成されている。ファームウェア領域２０−１には、ドライブ制御回路４の動作に必要なファームウェアが記憶されている。テーブル領域２０−２には、後述する読み出し動作に必要な管理テーブル等が記憶されている。データ領域２０−３は、例えばライトキャッシュ、またはリードキャッシュとして利用される。
【００５７】
ファームウェア領域２０−１は、ドライブ制御回路４の動作に必要なファームウェアのうち、図５に示されたＳＲＡＭ１１５に格納しきれない分の展開領域として利用することができる。
【００５８】
テーブル領域２０−２は、読み出し成功時の読み出し電圧を記録した読み出し電圧情報を記憶している。図９は、読み出し電圧管理情報１２０−１のデータ構造の一例を示す図である。図示するように、読み出し電圧管理情報１２０−１は、１つのメモリチップにおけるワードラインの夫々を特定するアドレス（すなわちチップ制御回路２０７からワード線制御回路２０６に供給されるアドレス）毎に読み出し電圧を示すテーブル構造を備えている。すなわち、図９に示す読み出し電圧管理情報１２０−１によれば、読み出し電圧が物理ページ毎に記録される。なお、多値を記憶するメモリセルが採用される場合には、図９に示す読み出し電圧管理情報１２０−１は複数ある閾値毎に用意される。
【００５９】
テーブル領域２０−２は、読み出し電圧管理情報１２０−１のほか、ＤＲＡＭ２０のデータ領域２０−３におけるライトキャッシュ、リードキャッシュ機構を管理するためのキャッシュ管理テーブル、および、ホスト装置１から入力される論理アドレスとＮＡＮＤメモリ１０の物理アドレスとの対応関係を管理するための論理−物理アドレス変換テーブルなどを含んでいる。
【００６０】
ＤＲＡＭ２０の記憶内容のうち、特にテーブル領域２０−２に含まれる読み出し電圧管理情報１２０−１、論理−物理アドレス変換テーブルなどのマスターテーブルは、メモリシステムの電源がオフとされるとき、ＮＡＮＤメモリ１０の例えばセーブ領域にセーブされる。また、このマスターテーブルは、メモリシステムの電源がオンとされたとき、ＮＡＮＤメモリ１０のセーブ領域から読み出され、ＤＲＡＭ２０のテーブル領域２０−２にロードされる。また、データ領域２０−３に含まれる最新のデータは、メモリシステムの電源がオフとされるときに、論理−物理アドレス変換テーブルによって指し示されるＮＡＮＤメモリ１０の所定の位置に記憶され不揮発化される。
【００６１】
図１０は、本実施形態のＳＳＤ１００の読み出し動作時の処理を説明するフローチャートである。ドライブ制御回路４は、読み出し動作時、読み出し電圧管理情報１２０−１を参照して、読み出し電圧を取得する（ステップＳ１）。具体的には、ドライブ制御回路４は、読み出し対象のアドレスを検索キーとして読み出し電圧管理情報１２０−１を検索し、読み出し電圧を取得する。取得された読み出し電圧がデフォルト値であれば、通常の読み出しコマンドが読み出し対象のメモリチップに送られる。一方、取得された読み出し電圧がデフォルト値でなければ、取得された読み出し電圧で読み出しを行う旨の命令（シフト読み出しコマンド）が読み出し対象のメモリチップに送られる。その後、ＳＳＤ１００は、読み出しに成功するまで、ステップＳ２〜ステップＳ６のループ処理を繰り返し実行する。
【００６２】
当該ループ処理において、読み出し対象のメモリチップは、ドライブ制御回路４から送られてきたコマンドで指定される読み出し電圧を、ワード線制御回路２０６から対象のワードラインに印加してデータの読み出しを実行する（ステップＳ２）。読み出されたデータはドライブ制御回路４に送られる。ドライブ制御回路４は、第２のＥＣＣ回路１１８および第１のＥＣＣ回路１１２の少なくとも一方を用いて誤り訂正処理を実行する。（ステップＳ３）。次に、ドライブ制御回路４は、誤り訂正に失敗した（誤り訂正処理エラー）か、即ち、第１のＥＣＣ回路１１２及び２のＥＣＣ回路１１８による誤り訂正に失敗したかを判定する（ステップＳ４）。
【００６３】
誤り訂正処理エラーが検出された場合（ステップＳ４、Ｙｅｓ）、ドライブ制御回路４は、ステップＳ２〜ステップＳ６のループ処理を実行した回数が、予め設定されている上限値を越えているか否かを判定する（ステップＳ５）。ループ回数が上限値を越えている場合（ステップＳ５、Ｙｅｓ）、読み出しエラーとして読み出し動作を中止する。ループ回数が上限値を越えていない場合（ステップＳ５、Ｎｏ）、ドライブ制御回路４は、読み出し電圧の値をステップＳ２で使用した値から所定の刻み幅だけ下げる調整を行う（ステップＳ６）。閾値電圧は時間の経過とともに低下する傾向があるからである。調整後の読み出し電圧の値は、シフト読み出しコマンドと共にメモリチップに送られ、ステップＳ２の処理に移行して当該メモリチップは新たに送られてきた読み出し電圧を使用して読み出し動作を実行する。
【００６４】
ステップＳ４において、誤り訂正処理エラー検出されなかった場合（ステップＳ４、Ｎｏ）、ドライブ制御回路４は、使用した読み出し電圧で読み出し電圧管理情報１２０−１を更新し（ステップＳ７）、読み出し動作が完了する。なお、シフト読み出しコマンドと共にメモリチップに送られるのは、読み出し電圧そのものであってもよいし、デフォルトの読み出し電圧に対する差分値であってもよい。
【００６５】
また、以上に説明した実施形態の説明においては、ＮＡＮＤメモリ１０に書き込まれたデータはページ毎にＥＣＣ領域を備えるものとして説明したが、ＥＣＣ領域を備えるデータの単位サイズは複数ページであっても構わない。その場合、図９に示した読み出し電圧管理情報１２０−１は複数ページ毎に読み出し電圧が登録されるようにし、図１０に示した読み出し動作にかかる処理は複数ページのデータ毎に実行するようにするとよい。
【００６６】
ワード線制御回路２０６に供給されるアドレスは、メモリセルアレイ２０１のうちのアクセス対象のブロックを特定するためのブロックアドレスを上位アドレスに、当該アクセス対象のブロックのうちのアクセス対象のワードラインを特定するためのページアドレスを下位アドレスに有している。図１１に示す読み出し電圧管理情報１２０−２のように、読み出し電圧はブロックアドレス毎に管理されるようにしてもよい。このようにすることによって、読み出し電圧管理情報のサイズが縮小される。
【００６７】
図１２は、書き込みがなされてからの適正な読み出し電圧の低下を示す図である。図示するように、Ｗ／Ｅ回数が多いメモリセルの方がＷ／Ｅ回数が少ないメモリセルよりもデータを保持できる能力の劣化が激しい傾向がある。つまり、消去単位たるブロックが同一のワードラインではほぼ同程度の劣化が起こる。したがって、同じブロックに属するワードラインの読み出し電圧を１つの値で代表させるようにしても、ワードライン単位で読み出し電圧を管理する場合と同様にステップＳ２〜ステップＳ６のループ処理の回数を減少させることができる。
【００６８】
また、メモリセルアレイ２０１は、図１３に示すように、各種管理データなどを退避する領域として利用されるシステム領域とホスト１からの書き込みデータを格納するユーザ領域とを分けて構成され、システム領域では複数ブロック単位で消去が行われるように構成される場合がある。この場合、領域毎に閾値電圧の管理単位を変えるようにしてもよい。その場合、図１４に示す読み出し電圧管理情報１２０−３のように、読み出し電圧を先頭アドレスとサイズとにより特定される領域に対応づけて記録するようにするとよい。
【００６９】
また、図１５に示す読み出し電圧管理情報１２０−４のように、読み出し電圧を物理ブロック毎の代表値と当該代表値からの物理ページ毎のオフセットとにより管理するようにしてもよい。
【００７０】
また、ステップＳ６において、読み出し電圧を所定の刻み幅だけ下げるとして説明したが、読み出し電圧の調整幅は所定の刻み幅毎でなくても構わない。例えば、図１２に示したデータ保持時間とＷ／Ｅ時間と読み出し電圧との対応関係を記述したテーブルを予め設定しておくとともに、ＮＡＮＤメモリ１０の最終読み出し時間とＷ／Ｅ回数とを例えば読み出し電圧の管理単位毎に記録するように構成し、ステップＳ６において、データ保持時間、Ｗ／Ｅ時間および読み出し電圧の対応関係と、記録されている最終読み出し時間からの経過時間、記録されているＷ／Ｅ回数および読み出し電圧と、を用いて読み出し電圧の調整幅を推定するようにしても構わない。
【００７１】
ＮＡＮＤ型フラッシュメモリは、メモリセルのサイズが微細化され、メモリセル内に記憶される電子の数が減少されている。このため、隣接セル間の干渉ノイズの影響が相対的に増大し、一方のメモリセルにデータの書き込み（プログラム）や読み出しを行うことにより、隣接する他方のメモリセルのデータが変化する可能性があることが知られている。例えばデータの書き込みは、ワード線とビット線により選択されたメモリセルに対して行われる。しかし、選択セルでの非書き込みセルへの強いストレスと、非選択セルにおいても弱い書き込み状態となり、閾値電圧が高くなるように変化するプログラムディスターブ（ＰＤ）という現象が発生する。また、データの読み出しにおいても、非選択のメモリセルに電圧が印加される。このため、非選択メモリセルが弱い書き込み状態となり、閾値電圧が高くなるように変化するリードディスターブ（ＲＤ）という現象が発生する。
【００７２】
第１の実施の形態では、ステップＳ６において、読み出し電圧を下げるものとして説明したが、上記したＰＤやＲＤを考慮して、記録されている読み出し電圧の近辺で読み出し電圧を上げる方向にも調整するようにしてもよい。また、最初に所定の回数だけデフォルト値から電圧を下げる方向に調整し、それでも読み出しに成功しない場合に、所定の回数だけデフォルト値から電圧を上げる方向に調整してもよい。また、ＰＤ及びＲＤによる影響と、読み出し電圧の低下による影響とのどちらが支配的か見積もることが困難な場合は、電圧を上げる方向への調整と、電圧を下げる方向への調整とを交互に実行するようにしてもよい。
【００７３】
なお、本発明の実施の形態を適用したメモリシステムの例としてＮＡＮＤ型のフラッシュメモリを搭載したＳＳＤを挙げて説明したが、本発明の実施の形態が適用可能なメモリシステムはこれに限定されない。例えば、不揮発性のメモリとしてＡＮＤ型のフラッシュメモリやＦｅＲＡＭを搭載したメモリシステムに適用することができる。
【００７４】
このように、本実施形態においては、メモリチップからデータを読み出す際、正常なデータ読み出しに成功するまで、読み出し電圧を変更して再読み出しを実行し、誤り訂正処理エラーが検出されることなく読み出されたときの読み出し電圧を読み出し電圧管理情報１２０（１２０−１〜１２０−４）として記録しておき、次回に読み出しを実行する際、読み出し電圧管理情報１２０に記録されている読み出し電圧を使用するようにしたので、同じデータを短い間に複数回読み出す場合において読み出し動作を行う毎にデータのエラーが検出されることを防止することができる。また、誤り訂正処理エラーが検出されることなく読み出すことができる読み出し電圧を決定するに至るまでにかかる時間が、読み出し電圧のデフォルト値を基準として探索する場合より短縮される。すなわち、読み出し動作開始から読み出し動作完了までの処理時間を可及的に低減することができる。
【００７５】
本発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。この実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７６】
１  ホスト装置、４  ドライブ制御回路、１０  ＮＡＮＤメモリ、２０  ＤＲＡＭ、２０−２  テーブル領域、２０−３  データ領域、２０−１  ファームウェア領域、１００  ＳＳＤ、１１２  第１のＥＣＣ回路、１１８  第２のＥＣＣ回路、１２０−１〜１２０−４  読み出し電圧管理情報、２０１  メモリセルアレイ、２０１−１  ＥＣＣ領域、２０６  ワード線制御回路、２０７  チップ制御回路。
【図１】
2012203957.tif 000003
【図２】
2012203957.tif 000004
【図３】
2012203957.tif 000005
【図４】
2012203957.tif 000006
【図５】
2012203957.tif 000007
【図６】
2012203957.tif 000008
【図７】
2012203957.tif 000009
【図８】
2012203957.tif 000010
【図９】
2012203957.tif 000011
【図１０】
2012203957.tif 000012
【図１１】
2012203957.tif 000013
【図１２】
2012203957.tif 000014
【図１３】
2012203957.tif 000015
【図１４】
2012203957.tif 000016
【図１５】
2012203957.tif 000017