説明

メモリシステム

【課題】プログラムディスターブ、リードディスターブの影響やデータリテンションの劣化の影響を除去して信頼性を向上することが可能なメモリシステムを提供する。
【解決手段】複数のメモリセルを含む複数のブロックを有するメモリセルアレイと、前記メモリセルの読み出しレベルを変更可能な電圧生成部と、を有する不揮発性半導体記憶装置と、前記不揮発性半導体記憶装置の書き込み、読み出し、消去を制御する制御部とを具備し、前記制御部は、前記不揮発性半導体記憶装置の使用開始時と時間経過後とで読み出しレベルを変える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えばNAND型フラッシュメモリを用いたメモリシステムに関する。
【背景技術】
【0002】
ハードディスク装置の代替として、例えば、NAND型フラッシュメモリを用いたSSD(Solid State Drive)が開発されている(例えば特許文献1参照)。特許文献1に係る技術によれば、コントローラ部およびメモリモジュールからなる半導体ディスク装置において、コントローラ部内のメモリ管理コントローラは、R/W制御回路を通じてメモリモジュール内の制御管理テーブルを読み、その内容をコントローラ側のRAMに書込むと共に、制御管理テーブルに記憶されている管理テーブルの所在番地を見て、その管理テーブルの内容をRAMに書込む。
【0003】
また、近年NAND型フラッシュメモリの微細化が進行するに伴い、隣接セル間の干渉ノイズの影響が相対的に大きくなってきている(例えば特許文献2及び特許文献3参照)。特許文献2及び特許文献3に係る技術によれば、読み出し対象である選択ワード線に隣接し、且つ、これより後にデータ書込みがなされる非選択ワード線のデータを考慮した条件下で読み出しが行われる。
【0004】
さらに、NAND型フラッシュメモリを用いたメモリシステムでは、読み出しデータを修復するため、ECC(Error Correction Code)を用いた誤り訂正が行われている。しかし、ECCを用いた誤り訂正も万能ではないため、読み出しデータに含まれる誤りビット数が訂正可能なビット数を超えてECCエラーが発生した場合の技術が開発されている(例えば特許文献4参照)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平5−282880号公報
【特許文献2】特開2004−326866号公報
【特許文献3】特開2009−70501号公報
【特許文献4】特開2009−48758号公報
【特許文献5】特開2008−117471号公報
【特許文献6】特開2004−326867号公報
【特許文献7】特開2008−269473号公報
【特許文献8】特開2009−205578号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明は、プログラムディスターブ、リードディスターブの影響やデータリテンションの劣化の影響を除去して信頼性を向上することが可能なメモリシステムを提供しようとするものである。
【課題を解決するための手段】
【0007】
本発明のメモリシステムの第1の態様は、複数のメモリセルを含む複数のブロックを有するメモリセルアレイと、前記メモリセルの読み出しレベルを変更可能な電圧生成部と、を有する不揮発性半導体記憶装置と、前記不揮発性半導体記憶装置の書き込み、読み出し、消去を制御する制御部とを具備し、前記制御部は、前記不揮発性半導体記憶装置の使用開始時と時間経過後とで読み出しレベルを変えることを特徴とする。
【0008】
本発明のメモリシステムの第2の態様は、複数のメモリセルを含む複数のブロックを有するメモリセルアレイと、前記メモリセルの読み出しレベルを変更可能な電圧生成部と、を有する不揮発性半導体記憶装置と、前記不揮発性半導体記憶装置の書き込み、読み出し、消去を制御する制御部とを具備し、前記制御部は、読み出されたデータからエラーを検出するエラー検知部を有し、前記エラー検出部によりエラーが検出された場合、再度読み出しを繰り返すリトライ読み出しを行うことを特徴とする。
【0009】
本発明のメモリシステムの第3の態様は、複数のメモリセルを含む複数のブロックを有するメモリセルアレイと、前記メモリセルの読み出しレベルを変更可能な電圧生成部と、を有する不揮発性半導体記憶装置と、前記不揮発性半導体記憶装置の書き込み、読み出し、消去を制御する制御部とを具備し、前記制御部は、読み出されたデータからエラーを検出するエラー検知部と、管理データを記録する管理領域とを有し、前記制御部は、前記エラー検出部によりエラーが検出された場合、メモリセルの本来の読み出しレベルより高くシフトされた読み出しレベルと、前記本来の読み出しレベルより低い読み出しレベルを用いてリトライ読み出しを行い、これらリトライ読み出しの結果が良好な読み出しレベルのデータを前記管理領域に記録することを特徴とする。
【0010】
本発明のメモリシステムの第4の態様は、複数のメモリセルを含む複数のブロックを有するメモリセルアレイと、前記メモリセルの読み出しレベルを変更可能な電圧生成部と、を有する不揮発性半導体記憶装置と、前記不揮発性半導体記憶装置の書き込み、読み出し、消去を制御する制御部とを具備し、前記制御部は、読み出されたデータからエラーを検出するエラー検知部を有し、前記制御部は、前記エラー検出部によりエラーが検出された場合、メモリセルの本来の読み出しレベルより高くシフトされた読み出しレベルで読み出し動作を行い、エラー検知部の判定の結果、エラーが少ない場合、次の読み出し動作を前記高くシフトされた読み出しレベルで行うことを特徴とする。
【発明の効果】
【0011】
本発明は、プログラムディスターブ、リードディスターブの影響やデータリテンションの劣化の影響を除去して信頼性を向上することが可能なメモリシステムを提供する。
【図面の簡単な説明】
【0012】
【図1】第1の実施形態に係るメモリシステムを示す構成図。
【図2】図2(a)は、NANDメモリチップに含まれる物理ブロックの一例を示す回路図、図2(b)はメモリセルトランジスタの閾値分布の例を示す模式図。
【図3】図1に示すドライブ制御回路の一例を示す構成図。
【図4】図1に示す1つのチップに含まれるNAND型フラッシュメモリの一例を示す構成図。
【図5】メモリセルアレイの1ページの構成の一例を示す図。
【図6】図1に示すDRAMの記憶内容の一例を示す図。
【図7】図7(a)は多値レベルを記憶するメモリセルの閾値変化の一例を示す図、図7(b)はメモリセルの閾値変化の他の例を示す図。
【図8】図8(a)は2値レベルを記憶するメモリセルの閾値変化の一例を示す図、図8(b)はメモリセルの閾値変化の他の例を示す図。
【図9】管理テーブルのフィールド構成の一例を示す図。
【図10】第1の実施形態に係るシフト読み出し動作の一例を示すフローチャート。
【図11】管理テーブルのフィールド構成の他の例を示す図。
【図12】第1の実施形態の変形例を示すフローチャート。
【図13】第2の実施形態に係るリトライ読み出し動作の一例を示すフローチャート。
【図14】第2の実施形態に係るリトライ読み出し動作の一例を示すフローチャート。
【図15】第3の実施形態に係る読み出し動作を示すフローチャート。
【図16】第4の実施形態に係る読み出し動作を示すフローチャート。
【発明を実施するための形態】
【0013】
NAND型フラッシュメモリは、メモリセルのサイズが微細化され、メモリセル内に記憶される電子の数が減少されている。このため、隣接セル間の干渉ノイズの影響が相対的に増大し、一方のメモリセルにデータの書き込み(プログラム)や読み出しを行うことにより、隣接する他方のメモリセルのデータが変化する可能性がある。
【0014】
例えばデータの書き込みは、ワード線とビット線により選択されたメモリセルに対して行われる。しかし、選択セルでの非書き込みセルへの強いストレスと、非選択セルにおいても弱い書き込み状態となり、閾値電圧が高くなるように変化する2種類のプログラムディスターブ(以下、PDとも称す)という現象が発生する。
【0015】
また、データの読み出しにおいても、非選択のメモリセルに電圧が印加される。このため、非選択メモリセルが弱い書き込み状態となり、閾値電圧が高くなるように変化するリードディスターブ(以下、RDとも称す)という現象が発生する。
【0016】
さらに、メモリセルに書き込まれたデータが、長時間アクセスされなかったような場合、メモリセルの浮遊ゲートから電子が放出され、閾値電圧が低くなるように変化する現象が発生する。これによりデータリテンション(以下、DRとも称す)が劣化する。
【0017】
SSDのように、大容量のメモリシステムは、パーソナルコンピュータやサーバーに実装され、長期間使用される。このため、PD、RDの発生、DRの劣化の伴う影響をシステム的に救済し、安定な動作が可能な高い信頼性を実現することが求められている。
【0018】
以下、本発明の実施の形態について、図面を参照して説明する。
【0019】
(第1の実施形態)
図1は、メモリシステムとしてのSSD100の構成例を示すブロック図である。SSD100は、ATAインタフェース(ATA I/F)2などのメモリ接続インタフェースを介してパーソナルコンピュータあるいはCPUコアなどのホスト装置(以下、ホストと略す)1と接続され、ホスト1の外部メモリとして機能する。また、SSD100は、RS232Cインタフェース(RS232C I/F)などの通信インタフェース3を介して、デバッグ用/製造検査用機器200との間でデータを送受信することができる。
【0020】
SSD100は、不揮発性半導体メモリとしてのNAND型フラッシュメモリ(以下、NANDメモリと略す)10と、コントローラとしてのドライブ制御回路4と、揮発性半導体メモリとしてのDRAM20と、電源回路5と、状態表示用のLED6と、ドライブ内部の温度を検出する温度センサ7と、フューズ8とを備えている。
【0021】
電源回路5は、ホスト1側の電源回路から供給される外部直流電源から複数の異なる内部直流電源電圧を生成し、これら内部直流電源電圧をSSD100内の各回路に供給する。また、電源回路5は、外部電源の立ち上がりを検知し、パワーオンリセット信号を生成して、ドライブ制御回路4に供給する。
【0022】
フューズ8は、ホスト1側の電源回路とSSD100内部の電源回路5との間に設けられている。外部電源回路から過電流が供給された場合、フューズ8が切断され、内部回路の誤動作を防止する。
【0023】
NANDメモリ10は、例えば4並列動作を行う4つの並列動作要素10a〜10dを有し、4つの並列動作要素10a〜10dは、4つのチャネル(ch0〜ch3)によってドライブ制御回路4に接続されている。各並列動作要素10a〜10dは、バンクインターリーブが可能な複数のバンクによって構成されている。すなわち、各並列動作要素は、例えば4バンク(Bank0〜Bank3)によって構成されており、各バンクは、複数のNANDメモリチップ、例えば2つのメモリチップ(Chip0、Chip1)により構成されている。
【0024】
各メモリチップは、例えば、それぞれ複数の物理ブロックを含むプレーン0、プレーン1の2つの領域(District)に分割されている。プレーン0およびプレーン1は、互いに独立した周辺回路(例えば、ロウデコーダ、カラムデコーダ、ページバッファ、データキャッシュ等)を備えており、倍速モードを使用することにより、同時に消去/書き込み/読み出しを行うことが可能である。
【0025】
このように、NANDメモリ10の各NANDメモリチップは、複数のチャネルによる並列動作、複数のバンクによるバンクインターリーブ動作、同一バンク内の複数チップのインターリーブ動作、複数のプレーンを用いた倍速モードによる並列動作が可能である。なお、各メモリチップは、2つ以上の複数のプレーンに分割された構成であってもよいし、あるいは、全く分割されていなくてもよい。
【0026】
DRAM20は、ホスト1とNANDメモリ10との間で、データ転送用キャッシュ及び作業領域用メモリなどとして機能する。DRAM20の作業領域用メモリに記憶される内容は、例えばNANDメモリ10に記憶されている各種管理テーブルが、起動時などに展開されたマスターテーブル(スナップショット)、あるいは管理テーブルの変更差分であるログ情報などがある。
【0027】
尚、DRAM20の代わりに、FeRAM(Ferroelectric Random Access Memory)、MRAM(Magnetoresistive Random Access Memory)、PRAM(Phase change Random Access Memory)などの不揮発性ランダムアクセスメモリを使用することも可能である。不揮発性ランダムアクセスメモリを利用する場合、電源切断時に各種管理テーブルなどをNANDメモリ10に退避させる動作の一部又は全部を省略することができる。
【0028】
ドライブ制御回路4は、ホスト1とNANDメモリ10との間でDRAM20を介してデータ転送制御を行うとともに、SSD100内の各構成要素を制御する。また、ドライブ制御回路4は、状態表示用LED6にステータス表示用信号を供給するとともに、電源回路5からのパワーオンリセット信号を受けて、リセット信号およびクロック信号をドライブ制御回路4内及びSSD100内の各部に供給する機能も有している。
【0029】
各NANDメモリチップは、データ消去の単位である物理ブロックを複数配列して構成されている。
【0030】
図2(a)は、NANDメモリチップに含まれる1個の物理ブロックの構成例を示す回路図である。各物理ブロックは、X方向に沿って順に配列された(p+1)個のNANDストリングを備えている(pは、0以上の整数)。各NANDストリングに含まれる選択トランジスタST1は、ドレインがビット線BL0〜BLpに接続され、ゲートが選択ゲート線SGDに共通接続されている。また、選択トランジスタST2は、ソースがソース線SLに共通接続され、ゲートが選択ゲート線SGSに共通接続されている。
【0031】
各メモリセルトランジスタ(メモリセルとも言う)MCTは、半導体基板上に形成された積層ゲート構造を備えたMOSFET(Metal Oxide Semiconductor Field Effect Transistor)により構成されている。積層ゲート構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層(浮遊ゲート電極)、及び電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルトランジスタMCTは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。メモリセルトランジスタMCTは、1ビットを記憶するように構成されていてもよいし、多値(2ビット以上のデータ)を記憶するように構成されていてもよい。
【0032】
また、メモリセルトランジスタMCTは、浮遊ゲート電極を有する構造に限らず、MONOS(Metal-Oxide-Nitride-Oxide-Silicon)型など、電荷蓄積層としての窒化膜界面に電子をトラップさせることにより閾値電圧が調整可能な構造であってもよい。MONOS構造のメモリセルトランジスタMCTについても同様に、1ビットを記憶するように構成されていてもよいし、多値(2ビット以上のデータ)を記憶するように構成されていてもよい。
【0033】
各NANDストリングにおいて、(q+1)個のメモリセルトランジスタMCTは、選択トランジスタST1のソースと選択トランジスタST2のドレインとの間に、それぞれの電流経路が直列接続されるように配置されている。すなわち、複数のメモリセルトランジスタMCTは、隣接するもの同士で拡散領域(ソース領域若しくはドレイン領域)を共有するような形でY方向に直列接続される。
【0034】
各NANDストリングにおいて、最もドレイン側に位置するメモリセルトランジスタMCTから順に、制御ゲート電極がワード線WL0〜WLqにそれぞれ接続されている。従って、ワード線WL0に接続されたメモリセルトランジスタMCTのドレインは選択トランジスタST1のソースに接続され、ワード線WLqに接続されたメモリセルトランジスタMCTのソースは選択トランジスタST2のドレインに接続されている。
【0035】
ワード線WL0〜WLqは、物理ブロック内のNANDストリング間で、メモリセルトランジスタMCTの制御ゲート電極を共通に接続している。つまり、ブロック内において同一行にあるメモリセルトランジスタMCTの制御ゲート電極は、同一のワード線WLに接続される。この同一のワード線WLに接続される(p+1)個のメモリセルトランジスタMCTは1ページ(物理ページ)として取り扱われ、この物理ページごとにデータの書き込みおよびデータの読み出しが行われる。
【0036】
また、ビット線BL0〜BLpは、ブロック間で、選択トランジスタST1のドレインを共通に接続している。つまり、複数のブロック内において同一列にあるNANDストリングは、同一のビット線BLに接続される。
【0037】
図2(b)は、例えば、1個のメモリセルトランジスタMCTに2ビットの記憶を行う4値データ記憶方式での閾値分布を示す模式図である。4値データ記憶方式は、上位ページデータ“x”と下位ページデータ“y”で定義される4値データ“xy”の何れか1つをメモリセルトランジスタMCTに保持可能である。
【0038】
4値データ“xy”は、メモリセルトランジスタMCTの閾値電圧の順に、例えば、データ“11”、“01”、“00”、“10”が割り当てられる。データ“11”は、メモリセルトランジスタMCTの閾値電圧が例えば負とされた消去状態である。尚、データの割り当て規則はこれに限らない。また、1個のメモリセルトランジスタMCTに3ビット以上の記憶を行う構成であってもよい。
【0039】
下位ページの書き込み動作において、データ“11”(消去状態)のメモリセルトランジスタMCTに対して選択的に、下位ビットデータ“y”を書き込むことによって、データ“10”が書き込まれる。上位ページの書き込み前のデータ“10”の閾値分布は、上位ページ書き込み後のデータ“01”とデータ“00”の閾値分布の中間程度に位置しており、上位ページの書き込み後の閾値分布よりブロードであってもよい。上位ページの書き込み動作において、データ“11”のメモリセルと、データ“10”のメモリセルに対して、それぞれ選択的に上位ビットデータ“x”が書き込まれることにより、データ“01”及びデータ“00”が書き込まれる。擬似SLCモードは、下位ページのみを使用して書き込みを行う。下位ページの書き込みは、上位ページの書き込みに比べて高速である。
【0040】
図3は、ドライブ制御回路4のハードウェア的な内部構成例を示すブロック図である。ドライブ制御回路4は、データアクセス用バス101、第1の回路制御用バス102、及び第2の回路制御用バス103を備えている。第1の回路制御用バス102には、ドライブ制御回路4全体を制御するプロセッサ104が接続されている。第1の回路制御用バス102には、ブートROM105がROMコントローラ106を介して接続されている。ブートROM105には、NANDメモリ10に記憶された各管理プログラム(FW:ファームウエア)をブートするブート用プログラムが格納されている。
【0041】
また、第1の回路制御用バス102には、クロックコントローラ107が接続されている。このクロックコントローラ107は、図1に示した電源回路5からのパワーオンリセット信号を受けて、リセット信号およびクロック信号を各部に供給する。
【0042】
第2の回路制御用バス103は、第1の回路制御用バス102に接続されている。第2の回路制御用バス103には、図1に示した温度センサ7からのデータを受けるためのI 2C回路108、状態表示用LED6にステータス表示用信号を供給するパラレルIO(PIO)回路109、RS232C I/F3を制御するシリアルIO(SIO)回路110が接続されている。
【0043】
ATAインタフェースコントローラ(ATAコントローラ)111、第1のECC(Error Checking and Correction)回路112、NANDコントローラ113、及びDRAMコントローラ114は、データアクセス用バス101と第1の回路制御用バス102との両方に接続されている。ATAコントローラ111は、ATAインタフェース2を介してホスト1との間でデータを送受信する。データアクセス用バス101には、データ作業領域およびファームウェア展開領域として使用されるSRAM115がSRAMコントローラ116を介して接続されている。NANDメモリ10に記憶されているファームウェアは起動時、ブートROM105に記憶されたブート用プログラムによってSRAM115に転送される。
【0044】
NANDコントローラ113は、NAND I/F117、第2のECC回路118、及びDMA転送制御用DMAコントローラ119を備えている。NAND I/F117は、NANDメモリ10とのインタフェース処理を行う。DMA転送制御用DMAコントローラ119は、NANDメモリ10とDRAM20間のアクセス制御を行う。第2のECC回路118は第2の訂正符号のエンコードを行い、また、第1の誤り訂正符合のエンコード及びデコードを行う。第1のECC回路112は、第2の誤り訂正符号のデコードを行う。第1の誤り訂正符号、第2の誤り訂正符号は、例えば、ハミング符号、BCH(Bose Chaudhuri Hocqenghem)符号、RS(Reed Solomon)符号、或いはLDPC(Low Density Parity Check)符号等であり、第2の誤り訂正符号の訂正能力は、第1の誤り訂正符号の訂正能力よりも高いとする。
【0045】
図1に示したように、NANDメモリ10において、4つの並列動作要素10a〜10dは各複数ビットの4つのチャネルを介して、ドライブ制御回路4内部のNANDコントローラ112に並列接続されており、4つの並列動作要素10a〜10dを並列動作させることが可能である。また、各チャネルのNANDメモリ10は、バンクインターリーブが可能な4つのバンクに分割されており、各メモリチップのプレーン0およびプレーン1に対しても、同時にアクセスを行うことが可能である。したがって、1チャネルに付き、最大8つの物理ブロック(4バンク×2プレーン)を、ほぼ同時に制御することが可能である。すなわち、最大8つの物理ブロックに対して同時に書き込みなどの処理を実行することが可能である。
【0046】
図4は、図1に示す1つのNANDメモリチップに含まれるNAND型フラッシュメモリの一例を示す機能ブロック図である。
【0047】
メモリセルアレイ201は、複数のビット線と複数のワード線と共通ソース線を含み、例えばEEPROMセルからなる電気的にデータを書き換え可能なメモリセルがマトリクス状に配置されている。このメモリセルアレイ201には、ビット線を制御するためのビット制御回路202とワード線制御回路206が接続されている。
【0048】
ビット線制御回路202は、ビット線を介してメモリセルアレイ201中のメモリセルのデータを読み出したり、ビット線を介してメモリセルアレイ201中のメモリセルの状態を検出したり、ビット線を介してメモリセルアレイ201中のメモリセルに書き込み制御電圧を印加してメモリセルに書き込みを行なう。ビット線制御回路202には、カラムデコーダ203、データ入出力バッファ204が接続されている。
【0049】
ビット線制御回路202内のデータ記憶回路はカラムデコーダ203によって選択される。データ記憶回路に読み出されたメモリセルのデータは、前記データ入出力バッファ204を介してデータ入出力端子205から外部へ出力される。データ入出力端子205は、メモリチップ外部のドライブ制御回路4に接続される。
【0050】
このドライブ制御回路4は、データ入出力端子205から出力されたデータを受ける。さらに、ドライブ制御回路4は、NAND型フラッシュメモリの動作を制御する各種コマンドCMD、アドレスADD、及びデータDTを出力する。ドライブ制御回路4からデータ入出力端子205に入力された書き込みデータは、データ入出力バッファ204を介して、カラムデコーダ203によって選択されたデータ記憶回路に供給され、コマンド及びアドレスは制御信号及び制御電圧発生回路207に供給される。
【0051】
ワード線制御回路206は、メモリセルアレイ201に接続されている。このワード線制御回路206は、メモリセルアレイ201中のワード線を選択し、選択されたワード線に読み出し、書き込みあるいは消去に必要な電圧を印加する。
【0052】
メモリセルアレイ201、ビット線制御回路202、カラムデコーダ203、データ入出力バッファ204、及びワード線制御回路206は、制御信号及び制御電圧発生回路207に接続され、この制御信号及び制御電圧発生回路207によって制御される。
【0053】
制御信号及び制御電圧発生回路207は、制御信号入力端子208に接続され、ドライブ制御回路4から制御信号入力端子208を介して入力されるALE(アドレス・ラッチ・イネーブル)、CLE(コマンド・ラッチ・イネーブル)、WE(ライト・イネーブル)などの各種制御信号、及びドライブ制御回路4からデータ入出力端子205及びデータ入出力バッファ204を介して入力されるコマンドCMDによって制御される。
【0054】
この制御信号及び制御電圧発生回路207は、データの書き込み時にワード線やビット線の電圧を発生するとともに、ウェルに供給される電圧を発生する。制御信号及び制御電圧発生回路207は、例えばチャージポンプ回路のような昇圧回路を含み、プログラム電圧や読み出し電圧、消去電圧を生成可能とされている。
【0055】
さらに、制御信号及び制御電圧発生回路207は、後述するように、読み出し電圧のレベルを変更可能とされている。すなわち、制御信号及び制御電圧発生回路207は、制御信号入力端子208を介して入力される各種制御信号、データ入出力端子205及びデータ入出力バッファ204を介して入力されるコマンドCMDを受けて、読み出し動作時にワード線に印加する電圧を+方向、または−方向にシフトさせる機能を有している。
【0056】
前記ビット線制御回路202、カラムデコーダ203、ワード線制御回路206、制御信号及び制御電圧発生回路207は書き込み回路、及び読み出し回路を構成している。
【0057】
メモリセルアレイ201は、本体データを格納するための記憶領域に加えて、ECC(Error Correction Code)を記憶する記憶領域201−1を有している。
【0058】
図5は、メモリセルアレイ201の1ページの構成を示している。各ページは、ユーザデータを記憶するデータ領域とECCを記憶するECC領域により構成されている。なお、各ページには、制御信号及び制御電圧発生回路207が利用する内部フラグデータなどが含まれていても良い。
【0059】
図6は、図1に示されたDRAM20の記憶内容を示している。DRAM20は、ファームウェア領域20−1、テーブル領域20−2、データ領域20−3により構成されている。ファームウェア領域20−1には、ドライブ制御回路4の動作に必要なファームウェアが記憶されている。テーブル領域20−2には、例えば後述する読み出し動作に必要な管理テーブルが記憶されている。データ領域20−3は、例えばライトキャッシュ、またはリードキャッシュとして利用される。
【0060】
ファームウェア領域20−1は、ドライブ制御回路4の動作に必要なファームウェアのうち、図3に示されたSRAM115に格納しきれない分の展開領域として利用することができる。テーブル領域20−2は、DRAM20のデータ領域20−3におけるライトキャッシュ、リードキャッシュ機構を管理するためのキャッシュ管理テーブル、及び、ホスト装置1から入力される論理アドレスとNANDメモリ10の物理アドレスとの対応関係を管理するための論理−物理アドレス変換テーブルなどを含んでいる。
【0061】
DRAM20の記憶内容のうち、特にテーブル領域20−2に含まれる論理−物理アドレス変換テーブルなどのマスターテーブルは、メモリシステムの電源がオフとされるとき、NANDメモリ10の例えばセーブ領域にセーブされる。また、このマスターテーブルは、メモリシステムの電源がオンとされたとき、NANDメモリ10のセーブ領域から読み出され、DRAM20のテーブル領域20−2にロードされる。また、データ領域20−3に含まれる最新のデータは、メモリシステムの電源がオフとされるときに、論理−物理アドレス変換テーブルによって指し示されるNANDメモリ10の所定の位置に記憶され不揮発化される。
【0062】
(シフト読み出し動作)
第1の実施形態は、メモリシステムの信頼性を向上するため、メモリシステムの使用の初期と所定の時間経過後とで、NAND型フラッシュメモリの読み出しレベルを変化させている。使用の初期とは、例えば、メモリシステム出荷後、ユーザが実際にメモリシステムを使用し始める時を指す。所定の時間経過後とは、実時間を計測することで決定しても良いし、メモリシステム内部でNAND型フラッシュメモリに所定の動作(書き込み、読み出し、または消去動作)を繰り返した回数によって決定しても良い。
【0063】
メモリセルに記憶されたデータに対応する閾値電圧は、前述したようにプログラムディスターブ(PD)、リードディスターブ(RD)、データリテンションにより変化する。
【0064】
図7(a)に示すように、メモリセルがPD及びRDの影響を受けた場合、メモリセルの閾値電圧の分布は、破線で示すように高くなるように変化する。このため、デフォルトで設定された各閾値電圧を読み出すための読み出し電圧(レベル)VA,VB,VC、及び非選択セルに供給される読み出し電圧Vreadは、変化した各閾値電圧より低くなるため、正しくデータを読み出すことができなくなる。
【0065】
メモリセルが受けるプログラムディスターブの影響に関しては、例えば、特許文献5に開示されている。メモリセルが受けるリードディスターブの影響に関しては、例えば、特許文献6に開示されている。これらの全内容は本出願に援用される。
【0066】
一方、図7(b)に示すように、メモリセルがDRの影響を受けた場合、メモリセルの閾値電圧の分布は、破線で示すように低くなるように変化する、このため、デフォルトで設定された各閾値電圧を読み出すための読み出しレベルVA,VB,VCは、変化した各閾値電圧より高くなるため、正しくデータを読み出すことができなくなる。
【0067】
メモリセルのデータリテンション特性に関しては、例えば、特許文献7に開示されており、これらの全内容は本出願に援用される。
【0068】
PD、RD、DRに関連する現象は、図7(a)(b)に示すように、3値以上のデータを記憶するメモリセル(MLC:Multi Level Cell)の場合に限らず、図8(a)(b)に示すように、2値データを記憶するメモリセル(SLC:Single Level Cell)の場合も同様である。ただし、MLCの場合は、SLCの場合に比較して閾値分布間のマージンに係る制約が厳しいため、PD、RD、DRの影響はより顕著である。
【0069】
第1の実施形態では、不揮発性半導体記憶装置の使用状況に応じて読み出しレベルを変化可能としている。すなわち、PD,RDの影響を受けたメモリセルからデータを読み出す場合、図7(a)、図8(a)に破線で示すように、読み出しレベルVA,VB,VCがデフォルトの読み出しレベルより高く設定される。このため、各読み出しレベルVA,VB,VCは、各閾値電圧分布の間に位置するため、正しくデータを読み出すことができる。また、読み出し電圧Vreadもデフォルトの読み出しレベルより高く設定される。このため、読み出し電圧Vreadは、最も高い閾値電圧分布よりも高く設定されるため、正しくデータを読み出すことができる。
【0070】
一方、DRの影響を受けたメモリセルからデータを読み出す場合、図7(b)、図8(b)に破線で示すように、読み出しレベルVA,VB,VCがデフォルトの読み出しレベルより低く設定される。このため、各読み出しレベルVA,VB,VCは、各閾値電圧分布の間に位置するため、正しくデータを読み出すことができる。
【0071】
メモリセルがPD,RDの影響を受けたかどうかは、例えばメモリセルの書き込み回数、消去回数、読み出し回数、1回の書き込みにおいてプログラム電圧が印加された回数(プログラムループ回数)、1回の消去において消去電圧が印加された回数(イレーズループ回数)などにより判別することができる。
【0072】
また、メモリセルが、DRの影響を受けたかどうかは、メモリセルが長期時間アクセスされなかったかどうかにより判断することができる。メモリセルが長期時間放置されていたかどうかは、例えばメモリシステムが搭載されたパーソナルコンピュータのログなどから判断することが可能である。
【0073】
上記書き込み回数、消去回数、読み出し回数、ループ回数、放置時間、環境温度は、メモリシステム内の管理テーブルにより管理される。
【0074】
図9は、図6に示すDRAM20のテーブル領域20−2に記憶された管理テーブルMTのフィールド構成の一例を示している。管理テーブルに記録するデータは、メモリシステムの用途に応じて任意に設定することが可能である。図9に示す管理テーブルの場合、例えば物理ブロック番号に対応して、消去回数、プログラム回数、ループ回数、読み出し回数、放置時間、環境温度が設定されている。
【0075】
ブロックの消去回数またはプログラム回数で規定される書き換え回数(W(Write)/E(Erase)回数)が増加するに従いゲート絶縁膜が劣化し、書き込み速度は早くなる。したがって、書き換え回数が多い(所定の時間経過後)メモリセルは、書き換え回数が少ない(初期)メモリセルに比較して、PD及びRDの影響を受けやすくなっている。すなわち、書き換え回数が多いメモリセルは、書き換え回数が少ないメモリセルに比較して、同じストレスを受けた場合であっても閾値電圧が高くなる量が大きい。
【0076】
そこで、本実施形態に係るメモリシステムは、書き換え回数を規定する消去回数またはプログラム回数が任意の規定値に達した場合、読み出しレベルVA、VB、VCや、読み出し電圧Vreadを僅かに高くシフトする(+シフト)ことにより正確な読出しが可能となる。任意の規定値は、例えば、NAND型フラッシュメモリ製造時のメモリセル特性の評価段階で定められるものであり、書き換え保証回数よりも小さい値に設定すれば良い。
【0077】
書き換え回数を規定するために、消去回数を用いるか、書き込み回数を用いるかは任意であり、何れか一方を用いても良いし、両方を用いても良い。書き込みはページ単位で行われ、消去はブロック単位で行われるが、NAND型フラッシュメモリは一般に、消去するまでは1ページに1回の書込みしか行わないので、書き換え回数をモニタする用途においては、消去回数を管理すれば十分である場合が多い。
【0078】
また一方で、書き込み回数自体によってPDの影響をある程度見積もることも可能である。ブロックを構成する各ページに対してどのような順番でプログラムをしていくかは仕様上定められており、各ページには1回ずつ書込みが行われる。このため、ブロック内のどのページまで書込みが行われたかを管理すれば、当該ブロック内のメモリセルに記憶されたデータが+方向にシフトしているか否かを判断できる。
【0079】
そこで、本実施形態に係るメモリシステムは、書き込み回数が任意の規定値(例えば、ブロックを構成する全ページの半分まで書き込みを行った場合の書き込み回数)に達した場合、読み出しレベルVA、VB、VCや、読み出し電圧Vreadを僅かに高くシフトする(+シフト)ことにより正確な読出しが可能となる。任意の規定値は、例えば、NAND型フラッシュメモリ製造時のメモリセル特性の評価段階や、各ページへの書き込みの順序などに従って定められるものである。
【0080】
また、読み出し回数が増加するに従い、非選択メモリセルに注入される電子の量が増加する。NAND型フラッシュメモリに記憶されるデータの中には、例えばドライブ制御回路4のファームウェアなど、一度書込みが行われた後は更新されず、読み出し動作のみが行われるものがある。従って、書き換え回数が少ない場合であっても、RDの影響を繰り返し受けることでデータが+方向にシフトする可能性がある。
【0081】
そこで、本実施形態に係るメモリシステムは、読み出し回数が任意の規定値に達した場合、読み出しレベルVA、VB、VCや、読み出し電圧Vreadを僅かに高くシフトする(+シフト)ことにより正確な読出しが可能となる。任意の規定値は、例えば、NAND型フラッシュメモリ製造時のメモリセル特性の評価段階で定められるものである。
【0082】
なお、読み出し回数の増加によってもゲート絶縁膜が劣化し、書き込み速度が早くなる可能性がある。したがって、読み出し回数が多いメモリセルは、読み出し回数が少ないメモリセルに比較して、PD及びRDの影響を受けやすくなる可能性がある。そこで、本実施形態に係るメモリシステムは、読み出し回数が任意の規定値に達した場合、読み出しレベルVA、VB、VCや、読み出し電圧Vreadを僅かに高くシフトするとしても良い。すなわち、読み出し回数を、書き換え回数と同様に絶縁膜の劣化を指し示すファクタとして利用しても良い。
【0083】
また、ループ回数は、1つの閾値電圧を設定するために、プログラム電圧が印加された回数を示している。上述したように、メモリセルは書き込み回数が増加するに従いゲート絶縁膜が劣化し、書き込み速度が早くなる。このため、所定のデータに対応した閾値電圧を設定するために例えば10回のプログラム電圧の印加が必要であった場合において、8回のプログラム電圧の印加で書き込みが終了したということは、メモリセルが劣化し、閾値電圧が高く書かれる傾向にあることを意味する。
【0084】
そこで、本実施形態に係るメモリシステムは、書き込みループ回数が任意の規定値に達した場合、読み出しレベルVA、VB、VCや、読み出し電圧Vreadを僅かに高くシフトする(+シフト)ことにより正確な読出しが可能となる。任意の規定値は、例えば、NAND型フラッシュメモリ製造時のメモリセル特性の評価段階で定められるものである。
【0085】
また、メモリセルは書き込み回数が増加するに従いゲート絶縁膜が劣化し、消去速度が遅くなる。このため、消去状態に対応した閾値電圧を設定するために例えば1回の消去電圧の印加が必要であった場合において、3回の消去電圧の印加で消去終了したということは、メモリセルが劣化し、閾値電圧が高く書かれる傾向にあることを意味する。
【0086】
そこで、本実施形態に係るメモリシステムは、消去ループ回数が任意の規定値に達した場合、読み出しレベルVA、VB、VCや、読み出し電圧Vreadを僅かに高くシフトする(+シフト)ことにより正確な読出しが可能となる。任意の規定値は、例えば、NAND型フラッシュメモリ製造時のメモリセル特性の評価段階で定められるものである。
【0087】
各々のブロックに対する消去回数、プログラム回数、読み出し回数、ループ回数は、例えばドライブ制御回路4によりカウントされ、管理テーブルMTにカウント値が書き込まれる。なお、読み出し回数をRDによる閾値電圧のシフトを見積もるために利用する場合については、ブロック内のデータが消去、あるいは無効化された場合に値をリセットする。当該ブロックに新たに書き込まれるデータは、最初に読み出される前は、RDの影響を受けていないからである。一方で、読み出し回数を書き換え回数と同様に絶縁膜の劣化を指し示すファクタとして利用する場合については、ブロック内のデータが消去、あるいは無効化された場合でも値を保持し続ける。絶縁膜の劣化は当該ブロック固有の物理的な問題だからである。
【0088】
放置時間は、前述したように、システムログなどにより設定される。また例えば、各々のブロックに書き込まれたデータの放置時間は、最初にメモリセルにデータが書き込まれた時の時刻を記憶しておき、この書き込まれた時刻と、例えばホスト装置1から通知される現在時刻との差分から求めることができる。あるいは、メモリシステム内で特定のイベントが行われた回数によって放置時間を求めても良い。例えば、NAND型フラッシュメモリでブロック内のデータが消去される度にインクリメントされるカウンタを備え、データ書き込み時にカウント値を記憶するとすれば、現在のカウント値との差分によってある程度の放置時間を見積もる事ができる。あるいは、メモリシステム内部のタイマによって放置時間を測定するとしても良い。
【0089】
環境温度は、例えば温度センサ7の出力信号に基づき、ドライブ制御回路4により管理テーブルMTに記録される。例えば、ブロックにデータを書き込んだときの温度が管理テーブルMTに記録される。あるいは、上述した放置時間内における平均温度が所定のタイミングで記憶されるとしても良い。
【0090】
図10は、シフト読み出し動作の一例を示している。シフト読み出し動作は、種々の方法が可能であり、メモリシステムの使用環境に応じて最適な読み出しを選択して使用すればよい。
【0091】
図10において、ドライブ制御回路4は、シフト読み出し動作時、先ず、管理テーブルMTを参照する(S11)。次いで、管理テーブルMTに記録された消去回数、プログラム回数、ループ回数、読み出し回数が規定値内であるか否かを判別する(S12−S15)。すなわち、メモリセルがPD,RDの影響を受けているかどうかが判別される。この結果、全ての回数が規定値以内である場合、ドライブ制御回路4は、PD、RDの影響を受けていないと判断し、デフォルトの読み出しレベルを用いて読み出し動作が実行する(S16)。
【0092】
一方、消去回数、プログラム回数、ループ回数、読み出し回数のうち、いずれかが規定値を越えている場合、ドライブ制御回路4は、放置時間が長いか否かを判別する(S17)。放置時間の判断基準は、例えば1日以上の任意に定められた時間である。放置時間が短い場合、DRの影響よりPD、RDの影響の方が大きいと考えられるため、読み出しレベルVA,VB,VC及び読み出し電圧Vreadが高くシフトされ、+シフト読み出し動作が実行される(S18)。また、ステップD17において、放置時間が長いと判断された場合、PD、RDの影響より、DRの影響の方が大きいと考えられるため、少なくとも読み出しレベルVA,VB,VCが低くシフトされ、−シフト読み出し動作が実行される(S19)。
【0093】
ドライブ制御回路4は、+シフト読み出し動作、−シフト読み出し動作時に、NANDメモリ10に入力するコマンドCMD、アドレスADD、及びデータDTにより読み出しレベルVA,VB,VC、及びVreadを設定することができる。ドライブ制御回路4は、例えばコマンドにより+シフト又は−シフトを指定し、アドレスにより読み出しレベルVA,VB,VC、又は読み出し電圧Vreadを指定する。さらに、データによりシフト量を指定する。図4に示す制御信号及び制御電圧発生回路207は、これらコマンドとアドレス信号及びデータに基づき、+シフト読み出し動作及び−シフト読み出し動作に必要な電圧を発生する。
【0094】
上記各読み出し動作の後、ECC判定が行われる(S20)。エラービット数が規定値より多い場合、すなわち、+シフト又は−シフト読み出し動作を行って読み出しデータのECC訂正が可能であった場合であっても、エラービット数が規定値より多い場合は今後シフト読み出しを行ってもデータの読み出しが不可能となる可能性があるため、そのブロックに対してリフレッシュ動作が実行される(S21,S22)。つまり、読み出し対象のブロックのデータが新たな消去ブロックにコピーされる。
【0095】
リフレッシュ動作でデータをコピーする先の消去ブロックは消去回数、プログラム回数が少ないブロックである方が、絶縁膜の劣化が小さく望ましい。リフレッシュ動作によって少なくともDRの影響による閾値電圧の低下を解消することができるが、本実施形態においてはS21,S22に係るステップは必ずしも実行しなくとも良い。
【0096】
なお、例えばS12で消去回数が規定値内であったとしても、放置時間が長ければメモリセルの閾値電圧は−方向にシフトしている可能性がある。したがってS12−S15に係る判断で規定値以内と判断された場合であっても、S17と同一または異なる基準で、放置時間が長いか否かを判断し、判断結果に応じてデフォルト読み出し、+シフト読み出し、−シフト読み出しを行っても良い。
【0097】
また、S17における放置時間に複数の段階を設け、PD,RDによる影響とDRによる影響がバランスするような時間である第1の放置時間を越えていなければ+シフト読み出し、第1の放置時間を超え、デフォルトの閾値を下回るような時間である第2の放置時間を越えていなければデフォルト読み出し、第2の放置時間を越えていれば−シフト読み出しを実行するとしても良い。
【0098】
上記第1の実施形態によれば、プログラムディスターブPD、リードディスターブRD、データリテンションDRの影響を考慮して読み出しレベルVA,VB,VC、及び読み出し電圧VREADを+方向、又は−方向にシフトしている。このため、PD,RD,DRの影響に拘わらず、正確にデータを読み出すことが可能である。したがって、信頼性の高いメモリシステムを構築することができる。
【0099】
図11は、第1の実施形態の変形例を示すものであり、ステータスデータを用いた管理テーブルの例を示している。モニタリードステータスは、例えば電源起動時、又は予め定められたタイミングでページ又はブロック毎に、例えばドライブ制御回路4の制御の下でモニタリードを行い、そのときのステータスを管理テーブルに記録しておく。モニタリードは、読み出しレベルを変えて例えば3回行う。
【0100】
具体的には、例えばデフォルトの読み出しレベルでの読み出し、読み出しレベルを高くシフトしての読み出し、及び読み出しレベルを低くシフト(−シフト)しての読み出しを行う。これらに読み出し毎にECCエラービット数を検知し、エラービット数の最も少ない読み出しレベルをステータスデータとして管理テーブルに記録する。ステータスデータとしては、デフォルトリード、+シフトリード、−シフトリードのうちの1つである。実際の読み出しの際、管理テーブルに記憶されたステータスデータに基づき読み出しレベルが設定される。また、このときのシフト値は前記のようなW/E回数毎に任意の電圧を設定可能である。
【0101】
図12は、第1の実施形態の変形例を示すものであり、ステータスデータを用いた読み出し動作の例を示している。この例の場合、読み出し動作が開始されると、管理テーブルMTが参照され(S11)、ステータスデータの内容が判別される(S23)。ここで、管理テーブルは例えば各ページ、ブロック、プレーン、またはチップ毎にどのような条件で読むことが出来たかをステータスデータとして持つ。どのような条件で読めたのかとは、デフォルトリード、+シフトリード、−シフトリード等の条件である。この結果、ステータスデータがデフォルトリードである場合、読み出しレベル及び読み出し電圧VREADがデフォルトのレベルで読み出し動作が実行され(S16)、+シフトリードの場合、読み出しレベルVA,VB,VC、及び読み出し電圧VREADが高くシフトされ、+シフト読み出し動作が実行される(S18)。また、ステータスデータが−シフトリードである場合、読み出しレベルVA,VB,VCが低くシフトされ、−シフト読み出し動作が実行される(S19)。
【0102】
これら読み出し動作の後、図10に示す例と同様に、ECC判定が行われる(S20)。この結果、エラービット数が規定値より多い場合、そのブロックに対してリフレッシュ動作が実行される(S21,S22)。すなわち、ブロックのデータが新たな消去ブロックにコピーされる。
【0103】
図11及び図12に示す変形例によっても、プログラムディスターブPD、リードディスターブRD、データリテンションDRの影響を考慮して読み出しレベルVA,VB,VC、及び読み出し電圧VREADを+方向、又は−方向にシフトしているため、PD,RD,DRの影響に拘わらず、正確にデータを読み出すことが可能である。
【0104】
シフト読み出し動作は、図10乃至図12に示す場合に限らず、例えば管理テーブルに記録された温度データを用いて読み出しレベル、読み出し電圧を変化することも可能である。例えば温度が高い場合において、PD、RDの影響を除去した読み出しを行う場合、読み出しレベルVA,VB,VC、及び読み出し電圧VREADが+方向にシフトされた+シフト読み出し動作を実行すればよい。また、DRの影響を除去した読み出しを行う場合、読み出しレベルVA,VB,VCが−方向にシフトされた−シフト読み出し動作を実行すればよい。この読み出し動作によっても、PD、RD、DRの影響を除去して正確なデータを読み出すことが可能である。
【0105】
尚、DRを無視することが可能なシステム、例えば絶えず高速にデータが上書きされるシステムや、DRが悪いブロックを更新する機能を有するシステム(例えば、特許文献8)に本メモリシステムを適用する場合、DRの劣化を考慮する必要性は小さい。このため、−方向のシフト読み出しを省略して、読み出しレベルを+方向(閾値電圧が高くなる方向)にシフトして1回読むだけの構成とすることも可能である。
【0106】
また、サーバー等の読み出し動作が支配的な常時稼動システムに本メモリシステムを適用する場合、+方向のシフト読み出しを省略して、放置時間を参照し、放置時間が規定値以上である場合、読み出しレベルVA,VB,VCが−方向にシフトされた−シフト読み出し動作を、1回実行するだけの構成とすることも可能である。
【0107】
さらに、メモリセルからデータを読み出す場合、読み出し時間を変えて読むことも可能である。すなわち、読み出し時に、セル間のカップリングをキャンセルするような読み出しや、隣接ビット線のノイズをキャンセルするような読み出しや、メモリセルのセンスノードのプリチャージ電圧を変えたり、読み出し時のセンス回数やセンス時間を変えたりすることが可能である。
【0108】
(第2の実施形態)
次に、第2の実施形態について説明する。上記第1の実施形態はPD,RD、DRの影響を除去するため、管理領域を参照し、読み出しレベルVA,VB,VCや、読み出し電圧Vreadを+方向又は−方向に変化させて読み出し動作を行った。この読み出し動作の後、ECCを判定し、エラービット数が多い場合、そのブロックをリフレッシュした。
【0109】
これに対して、第2の実施形態は、最初の読み出しの際のECCによる誤り訂正でエラービット数が多くECCによる誤り訂正が不可能(ECCエラー)であった場合、シフト読み出し(リトライ読み出し)を行い、再度ECCによる誤り訂正を実行することで、システムとしての不良率を改善する。
【0110】
図13、図14は、第2の実施形態を示している。図13に示すように、先ず、例えばデフォルトの読み出しレベルによりメモリセルからデータが読み出される(S31)。次いで、ECCが判定される(S32)。この結果、エラービット数少なくECCによる誤り訂正が可能である場合、読み出し動作が終了される。また、エラービット数が多くECCによる誤り訂正が不可能である場合、リトライ読み出しが実行される(S33)。
【0111】
図14は、リトライ読み出しの一例を示している。このリトライ読み出しにおいて、先ず、読み出しレベルが、デフォルトの読み出しレベルより例えば高くシフトされ、+シフト読み出し動作が行われる(S41)。この後、ECCが判定され、誤り訂正が正常に実行できるかどうか判定される(S42)。
【0112】
誤り訂正が正常に実行できない場合、+シフト読み出し動作が規定回数、例えば2回行われたかどうか判別される(S43)。この結果、2回以下である場合、再度+シフト読み出し動作が行われる(S41)。この際、読み出しレベルが前回より高くシフトされ、+シフト読み出し動作が行われる。この後、ECCが判定され、誤り訂正が正常に実行できるかどうか判定される(S42)。
【0113】
誤り訂正が正常に実行できる場合はリトライ読み出しが終了され、まだ誤り訂正が正常に実行できない場合、+シフト読み出し動作が規定回数、例えば2回行われたかどうか判別される(S43)。この場合、2回目であるため、読み出しレベルのシフト方向が反転される。
【0114】
すなわち、デフォルトの読み出しレベルより例えば低くシフトされ、−シフト読み出し動作が行われる(S44)。この後、ECCが判定され、誤り訂正が正常に実行できるどうか判定される(S45)。
【0115】
誤り訂正が正常に実行できない場合、−シフト読み出し動作が規定回数、例えば2回行われたかどうか判別される(S46)。この結果、2回以下である場合、再度−シフト読み出し動作が行われる(S44)。この際、読み出しレベルが前回より低くシフトされ、−シフト読み出し動作が行われる。この後、ECCが判定され、誤り訂正が正常に実行できるかどうか判定される(S45)。
【0116】
誤り訂正が正常に実行できる場合はリトライ読み出しが終了され、まだ誤り訂正が正常に実行できない場合、−シフト読み出し動作が規定回数、例えば2回行われたかどうか判別される(S46)。この場合、2回目であるため、シフト読み出しを行ってもデータ読み出しが不可能であると判断し、ドライブ制御回路4はホスト装置1に対して読み出しがエラー終了したことを示すステータスを返す(S47)。
【0117】
上記リトライ読み出しにおいて、リトライ回数は、+方向、−方向とも2回とした。しかし、これに限定されるものではなく、+方向、−方向とも1回、又は3回以上とすることも可能である。
【0118】
また、上記リトライ読み出しにおいて、S47で読み出しがエラー終了したことを示すステータスを返すとしたが、メモリシステムが図3に示すように2段階の誤り訂正を行う場合は、S32,S42,S45でのECC訂正では第2のECC回路118でエラー訂正が可能であるかを判断することとし、S47では、第1のECC回路112による誤り訂正を行うこととしても良い。これにより、消費電力が大きく処理に時間のかかる第1のECC回路112による誤り訂正が発動する機会を少なくすることができる。
【0119】
上記第2の実施形態によれば、データ読み出しにおいて、ECCエラービット数が規定値以上である場合、読み出しレベルを+方向、又は−方向にシフトしてリトライ読み出しを行っている。このため、プログラムディスターブPD、リードディスターブRDの影響、又はデータリテンションDRの劣化の影響を除去することができ、正確にデータを読み出すことができる。したがって、メモリシステムの信頼性を向上することが可能である。
【0120】
上記第2の実施形態において、リトライ読み出し動作は、図14に示す方法に限定されるものではなく、読み出し時間を変えて読むことも可能である。具体的には、例えば隣接メモリセルの先読み技術を適用することが可能である。この先読み技術に関しては、特許文献2、特許文献3に開示されている。これらの全内容は本出願に援用される。
【0121】
特許文献2に開示された先読み技術では、例えばワード線WLnに接続されたメモリセルのデータを読み出す場合、先ず、ワード線WLn+1に接続されたメモリセルのデータを読み出す。ワード線WLnに接続されたメモリセルを読み出すとき、ワード線WLn+1に接続されたメモリセルから読み出されたデータの閾値電圧に基づき、読み出しレベルVA,VB,VCを僅かに高くシフトして読み出し動作を実行する。これにより隣接セルの書き込みの影響を除去でき、正確にデータを読み出すことができる。
【0122】
また、特許文献3に開示された先読み技術では、例えばワード線WLnに接続されたメモリセルのデータを読み出す場合、先ず、ワード線WLn+1に接続されたメモリセルのデータを読み出す。ワード線WLnに接続されたメモリセルを読み出すとき、ワード線WLn+1に接続されたメモリセルから読み出されたデータの閾値電圧に基づき、非選択ワード線WLn+1に印加される読み出し電圧Vreadが高くシフトされ、カップリングにより選択ワード線WLnのレベルが上昇する。これにより隣接セルの書き込みの影響を除去でき、正確にデータを読み出すことができる。
【0123】
上記隣接メモリセルの先読み技術は、選択ワード線に接続されたメモリセルのデータを読み出す前に、非選択ワード線に接続されたメモリセルのデータを読み出す必要があるため、読み出し時間が遅れる。このため、隣接メモリセルの先読み技術採用するNAND型フラッシュメモリをメモリシステムが採用する場合は、先読み技術を、システムの用途に応じて切り替え可能とするとよい。例えば、リトライ読み出しの際に先読みをONにし、通常読み出し時は先読みをOFFにすれば良い。
【0124】
さらに、第2の実施形態は、読み出し時のセンス時間を変更することも可能である。上述したように、PDの影響を受けたメモリセルは、閾値電圧が高くシフトしている。このため、読み出し電圧Vreadに対して、セルトランジスタはオンしにくくなっている。そこで、非選択ワード線に印加される読み出し電圧VREADを上げてリトライ読み出しを行う。この場合、選択ワード線の電位は、非選択ワード線とのカップリングにより上昇する。このため、選択ワード線に接続されたセルトランジスタに流れる電流Icellを増加することができる。したがって、正確にデータを読み出すことができ、システムの信頼性を向上することが可能である。
【0125】
また、リトライ読み出しにおいて、読み出し時のセンスノードのプリチャージ電圧を変えたり、読み出し時のセンス回数を変えたりすることも可能である。
【0126】
(第3の実施形態)
図15は、第3の実施形態を示している。第3の実施形態は、第1、第2の実施形態を組み合わせた読み出し動作である。すなわち、第1に実施形態において説明したモニタリードは、電源起動時、又は任意のタイミングで実行された。これに対して、第3の実施形態は、読み出し動作において、ECCエラーが発生した場合、読み出しレベルを+/−の両方にシフトして読み出し動作を行い、そのときのシフトデータを管理テーブルに記録し、次の読み出し動作において、管理テーブルに記録されたシフトデータに基づき読み出し動作を行うものである。
【0127】
図15に示すように、例えばデフォルトの読み出しレベルにより読み出し動作が行われる(S51)。この後、ECCが判定される(S52)。この判定の結果、ECCエラーが発生している場合、例えば先ず読み出しレベルが僅かに高くシフトされ、+シフト読み出しが実行される(S53)。この読み出し後、再度ECCが判定される(S54)。この判定の結果、ECCエラーが発生していない場合、+シフトを示す+シフトデータが管理テーブルMTに記録される。+シフトデータには、例えば、+方向へのシフトを示すデータ、及びシフト量を示すデータが含まれる。
【0128】
一方、ステップS54の判定の結果、ECCエラーが発生している場合、例えばデフォルトの読み出しレベルが僅かに低くシフトされ、−シフト読み出しが実行される(S56)。この読み出し後、ECCが判定される(S57)。この判定の結果、ECCエラーが発生していない場合、−シフトを示す−シフトデータが管理テーブルMTに記録される。−シフトデータには、例えば、−方向へのシフトを示すデータ、及びシフト量を示すデータが含まれる。
【0129】
また、S57での判定の結果、ECCエラーが発生している場合、+方向へ読み出しレベルをシフトさせても(S53)、−方向に読み出しレベルをシフトさせても(S56)、ECCエラーが解消されなかったことを意味するので、ドライブ制御回路4はホスト装置1に対して読み出しがエラー終了したことを示すステータスを返す。管理テーブルには、例えば、読み出し対象の領域が使用不可であることを示すデータを記録する。(S56)。
【0130】
なお、本実施形態では、+方向のシフト読み出しと−方向のシフト読み出しをそれぞれ1回ずつ行うこととしたが、第2の実施形態のように、複数回のシフト読み出しを行っても良い。例えば、S53で+シフト読み出しを行ってもECCエラーが解消されない場合は、+方向へのシフト量を増加させた後、再度ECC判定を行っても良い。また、例えば、S56で+シフト読み出しを行ってもECCエラーが解消されない場合は、−方向へのシフト量を増加させた後、再度ECC判定を行っても良い。
【0131】
また、S52でのECC判定は、ECCエラーが発生したか否かではなく、ECC訂正が可能であった場合であっても、誤りビット数が規定値以下であるかを判断するとしても良い。例えば、S52で訂正可能な範囲であるが、誤りビット数が規定値を超えている場合、S53で+シフト読み出しを実行する。S54で再度ECC判定を行った際、誤りビット数がS52の場合よりも減少していれば、S55で+シフト量を管理テーブルに記録する。
【0132】
一方、S53で+シフト読み出しを実行し、S54で再度ECC判定を行った際、誤りビット数が増加、またはECCエラーが発生した場合は、S56で−シフト読み出しを実行する。S57で再度ECC判定を行った際、誤りビット数がS52の場合よりも減少していれば、S58で−シフト量を管理テーブルに記録する。S56で−シフト読み出しを実行し、S57で再度ECC判定を行った際、誤りビット数が増加、またはECCエラーが発生した場合は、デフォルトの読み出しレベルが最適であったと考えられるので、管理テーブルにデフォルトの読み出しレベルを記録すれば良い。この場合も、+方向のシフト読み出しと−方向のシフト読み出しをそれぞれ1回ずつ行うこととしたが、第2の実施形態のように、複数回のシフト読み出しを行っても良い。複数回のシフト読み出しを行う場合、規定回数のシフトを行わなくても、前回シフト量でECC判定した場合よりも誤りビット数が増えていれば、同方向では再度のシフトを行わずに、シフト方向が反転されても良い。
【0133】
このようにして、管理テーブルMTにそのブロックを読むための最適な読み出しレベルのシフトデータが記録される。この後、このブロックの読み出し動作が実行される場合、第1の実施形態と同様に、先ず、管理テーブルMTが参照され、この管理テーブルMTに記録されたシフトデータが読み出される。この読み出されたシフトデータに基づき読み出しレベルが設定され、読み出し動作が実行される。
【0134】
上記第3の実施形態によれば、ECCエラーが発生した場合、読み出しレベルを+/−の両方にシフトして読み出し動作を行い、ECCエラーが発生しない読み出しレベルを検出し、そのときのシフトデータを管理テーブルMTに記録し、次の読み出し動作において、管理テーブルMTに記録されたシフトデータに基づき読み出しレベルを設定して読み出し動作を行っている。このため、そのブロックに最適な読み出しレベルによりデータを読み出すことができるため、正確にデータを読み出すことができ、システムの信頼性を向上することが可能である。
【0135】
また、第3の実施形態によれば、読み出し動作において、ECCエラーが発生した場合、直ちに管理テーブルが更新されるため、前述したモニタリードに比べて即効性を有している。
【0136】
さらに、ブロックのデータを読み出すとき、管理テーブルMTに記録されたシフトデータに基づき、最初から最適な読み出しレベルでデータを読み出すことが可能であるため、リトライ読み出しに比べて読み出し速度を高速化することができ、パフォーマンスを向上することが可能である。
【0137】
(第4の実施形態)
図16は、第4の実施形態を示している。第4の実施形態は、リフレッシュ動作によりDRの影響が低減されたシステムに適用される。このようなシステムの場合、PD、RDの影響を考慮して読み出し動作が実行される。
【0138】
図16に示すように、先ず、デフォルトの読み出しレベルを用いてデータが読み出され、ECC判定が行われる(S61,S62)。この結果、エラービット数が規定値より少ない場合、処理が終了される。また、エラービット数が規定値より多い場合、+シフト読み出し動作、及びECC判定が行われる(S63,S64)。この結果、エラービット数が規定値より少ない場合、処理が終了される。また、エラービット数が規定値より多い場合、デフォルトの読み出しレベルより低いレベルにより、−シフト読み出し動作が実行される(S71)。この後、ECC判定が行われる(S72)。この結果、エラービット数が規定値より少ない場合、このまま、終了とすることも可能であるが、DRが劣化していることが分かっているため、例えばリフレッシュ動作が実行され、DRが改善される(S74)。また、エラービット数が規定値より多い場合、例えばリードソロモン処理が実行され、データの復活が試みられる。
【0139】
一方、ステップS64でエラービット数が規定値より少ない状態で処理が終了した後、例えば別の読み出しのためのコマンドが設定された場合(S65)、ステップS63と同じシフトレベルで、+シフト読み出し動作が行われる(S66)。この後、ECC判定が行われ(S67)、エラービット数が規定値より少ない場合、処理が終了され、エラービット数が規定値より多い場合、例えばデフォルトの読み出しレベルを用いて読み出し動作が実行される(S68)。この後、ECC判定が行われ(S69)、エラービット数が規定値より少ない場合、このまま、終了とすることも可能であるが、DRが劣化していることが分かっているため、例えばリフレッシュ動作が実行され、DRが改善される(S74)。また、エラービット数が規定値より多い場合、ステップS71に制御が移行される。
【0140】
上記第4の実施形態によれば、DRの影響が低減されたシステムにおいて、シフト読み出しの回数を低減することが可能であるため、読み出し動作を高速化することが可能である。しかも、必要なシフト読み出しは実行されるため、正確な読み出し動作が可能であり、システムの信頼性を向上させることができる。
【0141】
本発明は、上記各実施形態に限定されるものではなく、発明の要旨を変えない範囲において、種々変形実施可能なことは勿論である。
【符号の説明】
【0142】
4…データ制御回路、10…NAND型フラッシュメモリ、20…DRAM、100…SSD、104…プロセッサ、201…メモリセルアレイ、MT…管理テーブル。

【特許請求の範囲】
【請求項1】
複数のメモリセルを含む複数のブロックを有するメモリセルアレイと、
前記メモリセルの読み出しレベルを変更可能な電圧生成部と、
を有する不揮発性半導体記憶装置と、
前記不揮発性半導体記憶装置の書き込み、読み出し、消去を制御する制御部とを具備し、
前記制御部は、前記不揮発性半導体記憶装置の使用開始時と時間経過後とで読み出しレベルを変えることを特徴とするメモリシステム。
【請求項2】
前記制御部は、前記不揮発性半導体記憶装置の書き込み回数、消去回数、読み出し回数の少なくとも1つに応じて前記読み出しレベルを変えることを特徴とする請求項1記載のメモリシステム。
【請求項3】
前記制御部は、前記メモリセルに設定された閾値電圧を読み出すための本来の読み出しレベルより高い読み出しレベルと、前記本来の読み出しレベルより低い読み出しレベルとの一方で、前記メモリセルから1回データを読み出すことを特徴とする請求項2記載のメモリシステム。
【請求項4】
前記制御部は、前記メモリセルに設定された閾値電圧を読み出すための本来の読み出しレベルより高い読み出しレベルと、前記本来の読み出しレベルより低い読み出しレベルの両方で、前記メモリセルからデータを読み出すことを特徴とする請求項2記載のメモリシステム。
【請求項5】
前記制御部は、前記不揮発性半導体記憶装置の放置時間を記録する管理領域を有し、前記管理領域に記録された放置時間が規定時間以上である場合、前記メモリセルに設定された閾値電圧を読み出すための本来の読み出しレベルより低い読み出しレベルで、前記メモリセルからデータを読み出すことを特徴とする請求項2記載のメモリシステム。
【請求項6】
前記制御部は、前記不揮発性半導体記憶装置の前記複数のブロックのブロック毎の書き込み回数、消去回数、読み出し回数、及び書き込み、消去時の電圧印加回数を管理する管理部を有し、前記管理部により管理されたデータに基づき、メモリセルの読み出しレベルを変えることを特徴とする請求項2記載のメモリシステム。
【請求項7】
前記制御部は、前記システムの起動時、又は予め定められたタイミングで、異なる複数の読み出しレベルを用いてブロック毎にモニタリードを実行し、エラービット数の最も少ない読み出しレベルをステータスデータとして管理領域に記録し、データの読み出し時、前記管理領域に記録されたステータスデータに基づき、読み出しレベルを設定することを特徴とする請求項1記載のメモリシステム。
【請求項8】
複数のメモリセルを含む複数のブロックを有するメモリセルアレイと、
前記メモリセルの読み出しレベルを変更可能な電圧生成部と、
を有する不揮発性半導体記憶装置と、
前記不揮発性半導体記憶装置の書き込み、読み出し、消去を制御する制御部とを具備し、
前記制御部は、読み出されたデータからエラーを検出するエラー検知部を有し、
前記エラー検出部によりエラーが検出された場合、再度読み出しを繰り返すリトライ読み出しを行うことを特徴とするメモリシステム。
【請求項9】
前記制御部は、メモリセルの本来の読み出しレベルより高くシフトされた読み出しレベルと、前記本来の読み出しレベルより低い読み出しレベルを用いて前記リトライ読み出しを行うことを特徴とする請求項8記載のメモリシステム。
【請求項10】
前記制御部は、読み出し時間を変えて前記リトライ読み出しを行うことを特徴とする請求項8記載のメモリシステム。
【請求項11】
前記制御部は、メモリセルのセンスノードのプリチャージ電圧を変えること、読み出し時のセンス回数を変えることのうちの1により前記読み出し時間を変えることを特徴とする請求項10記載のメモリシステム。
【請求項12】
前記制御部は、選択ワード線に隣接する非選択ワード線の読み出し電圧を、本来の読み出し電圧より高く設定して前記リトライ読み出しを行うことを特徴とする請求項10記載のメモリシステム。
【請求項13】
複数のメモリセルを含む複数のブロックを有するメモリセルアレイと、
前記メモリセルの読み出しレベルを変更可能な電圧生成部と、
を有する不揮発性半導体記憶装置と、
前記不揮発性半導体記憶装置の書き込み、読み出し、消去を制御する制御部とを具備し、
前記制御部は、読み出されたデータからエラーを検出するエラー検知部と、
管理データを記録する管理領域とを有し、
前記制御部は、前記エラー検出部によりエラーが検出された場合、メモリセルの本来の読み出しレベルより高くシフトされた読み出しレベルと、前記本来の読み出しレベルより低い読み出しレベルを用いてリトライ読み出しを行い、これらリトライ読み出しの結果が良好な読み出しレベルのデータを前記管理領域に記録することを特徴とするメモリシステム。
【請求項14】
前記制御部は、読み出し時、前記管理領域に記録されたデータに基づき読み出しレベルを設定することを特徴とする請求項12記載のメモリシステム。
【請求項15】
複数のメモリセルを含む複数のブロックを有するメモリセルアレイと、
前記メモリセルの読み出しレベルを変更可能な電圧生成部と、
を有する不揮発性半導体記憶装置と、
前記不揮発性半導体記憶装置の書き込み、読み出し、消去を制御する制御部とを具備し、
前記制御部は、読み出されたデータからエラーを検出するエラー検知部を有し、
前記制御部は、前記エラー検出部によりエラーが検出された場合、メモリセルの本来の読み出しレベルより高くシフトされた読み出しレベルで読み出し動作を行い、エラー検知部の判定の結果、エラーが少ない場合、次の読み出し動作を前記高くシフトされた読み出しレベルで行うことを特徴とするメモリシステム。
【請求項16】
前記制御部は、前記メモリセルの本来の読み出しレベルより高くシフトされた読み出しレベルで読み出し動作を行い、エラー検知部の判定の結果、エラーが多い場合、前記メモリセルの本来の読み出しレベルより低くシフトされた読み出しレベルで読み出し動作を行うことを特徴とする請求項15記載のメモリシステム。
【請求項17】
前記制御部は、前記メモリセルの本来の読み出しレベルより低くシフトされた読み出しレベルで読み出し動作を行った場合、リフレッシュ動作を行うことを特徴とする請求項16記載のメモリシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate


【公開番号】特開2011−100519(P2011−100519A)
【公開日】平成23年5月19日(2011.5.19)
【国際特許分類】
【出願番号】特願2009−255314(P2009−255314)
【出願日】平成21年11月6日(2009.11.6)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】