(57)【要約】【課題】高品質なメモリシステムを提供する。【解決手段】メモリシステムは、各々が複数のレベルに対応する複数ビットデータを記憶可能なメモリセルを複数含むメモリデバイスと、メモリデバイスからデータを読み出し、読み出したデータにエラーがある場合にエラー訂正を行い、読み出したデータのエラー訂正前と後のレベルの変動を判定する、コントローラと、を備える。【選択図】      図９
2020047353.tif 000002
【特許請求の範囲】
【請求項１】
各々が複数のレベルに対応する複数ビットデータを記憶可能なメモリセルを複数含むメモリデバイスと、
前記メモリデバイスからデータを読み出し、
前記読み出したデータにエラーがある場合にエラー訂正を行い、前記読み出したデータのエラー訂正前と後のレベルの変動を判定する、
コントローラと、
を備えるメモリシステム。
【請求項２】
前記コントローラは、
前記判定に基づき、
前記読み出したデータのエラー訂正前と後のレベルの変動の方向と、前記変動の回数を記憶する、
請求項１に記載のメモリシステム。
【請求項３】
前記コントローラは、
前記変動の方向と、前記変動の回数と、に基づいて、
前記メモリデバイスのストレスの種類、または前記メモリデバイスの強度を判定する
請求項２に記載のメモリシステム。
【請求項４】
前記コントローラは、
前記変動の方向は、エラー訂正前のレベルが、低いレベル、または高いレベルのどちらに変動したかという情報である
請求項２または３のいずれかに記載のメモリシステム。
【請求項５】
前記コントローラは、
前記読み出したデータのエラー訂正前と後のレベルを判定するために、
前記メモリデバイスからデータを更に読み出す
請求項１乃至４のいずれか１項に記載のメモリシステム。
【請求項６】
前記コントローラは、
外部機器からアクセスされない間、
前記読み出したデータのエラー訂正前と後のレベルを判定する
請求項１乃至５のいずれか１項に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態はメモリシステムに関する。
【背景技術】
【０００２】
半導体記憶装置としてＮＡＮＤ型フラッシュメモリが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許５３４９２５６号
【特許文献２】特許５３５５６６７号
【特許文献３】米国特許出願公開第２０１３／０３４３１３１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
高品質なメモリシステムを提供する。
【課題を解決するための手段】
【０００５】
実施形態のメモシステムは、各々が複数のレベルに対応する複数ビットデータを記憶可能なメモリセルを複数含むメモリデバイスと、前記メモリデバイスからデータを読み出し、前記読み出したデータにエラーがある場合にエラー訂正を行い、前記読み出したデータのエラー訂正前と後のレベルの変動を判定する、コントローラと、を備える。
【図面の簡単な説明】
【０００６】
【図１】図１は、メモリシステムを示す図である。
【図２】図２は、メモリチップを示す図である。
【図３】図３は、メモリセルアレイを示す図である。
【図４】図４は、メモリセルトランジスタの閾値を示す図である。
【図５】図５は、メモリセルトランジスタの閾値と、データとの関係を示す図である。
【図６】図６は、メモリセルトランジスタの閾値の変動例を示す図である。
【図７】図７は、メモリセルトランジスタの閾値の変動例を示す図である。
【図８】図８は、推定部を示す図である。
【図９】図９は、あるブロックにおける、ストレスの種類を判定するフローチャートである。
【図１０】図１０は、ストレスの種類を判定する場合の具体例の一部を示す図である。
【図１１】図１１は、ストレスの種類を判定する場合の具体例の一部を示す図である。
【図１２】図１２は、ストレスの種類を判定する場合の具体例の一部を示す図である。
【発明を実施するための形態】
【０００７】
以下、実施形態の詳細を図面を参照して説明する。この説明に際し、全図にわたり、共通する部分には共通する参照符号を付す。
【０００８】
＜１＞  実施形態
＜１−１＞  構成
まず、実施形態に係るメモリシステムの構成について説明する。
【０００９】
＜１−１−１＞  メモリシステムの全体構成
実施形態に係るメモリシステムの構成例について、図１を用いて説明する。図１は、実施形態に係るメモリシステムの構成の一例を示すブロック図である。メモリシステム１は、ホスト機器２と通信線で接続され、ホスト機器２の外部記憶装置として機能する。ホスト機器２は、例えば、パーソナルコンピュータなどの情報処理装置、携帯電話、撮像装置であってもよいし、タブレットコンピュータやスマートフォンなどの携帯端末であってもよいし、ゲーム機器であってもよいし、カーナビゲーションシステムなどの車載端末であってもよい。
メモリシステム１は、ホスト機器２からのデータを保持し、また、データをホスト機器２に読み出す。
【００１０】
図１に示すように、メモリシステム１は、コントローラ２０及び半導体記憶装置（メモリデバイス）１０を備えている。コントローラ２０は、ホスト機器２から命令を受取り、受け取られた命令に基づいて半導体記憶装置１０を制御する。具体的には、コントローラ２０は、ホスト機器２から書き込みを指示されたデータを半導体記憶装置１０に書き込み、ホスト機器２から読出しを指示されたデータを半導体記憶装置１０から読み出してホスト機器２に送信する。コントローラ２０は、ＮＡＮＤバスによって半導体記憶装置１０に接続される。半導体記憶装置１０は、複数のメモリセルを備え、データを不揮発に記憶する。なお、半導体記憶装置１０は、データを不揮発に記憶する装置である。半導体記憶装置は、例えば、複数個のメモリチップ１０Ａを備える不揮発性半導体メモリである。メモリチップの各々は、互いに独立して動作可能であり、その一例としてＮＡＮＤ型フラッシュメモリチップがある。ＮＡＮＤ型フラッシュメモリでは、一般に、ページと呼ばれるデータ単位で、書き込みおよび読み出しが行われ、ブロックと呼ばれるデータ単位で消去が行われる。
【００１１】
なお、メモリシステム１は、コントローラ２０と半導体記憶装置１０が１つのパッケージとして構成されるメモリカードであってもよいし、ＳＳＤ（Solid State Drive）であってもよい。
【００１２】
＜１−１−２＞  コントローラの構成について
引き続き図１を用いて、実施形態に係るメモリシステムのコントローラについて説明する。コントローラ２０は、ホストインタフェース回路２１、プロセッサ（ＣＰＵ：Central Processing Unit）２２、内蔵メモリ（ＲＡＭ：Random Access Memory）２３、バッファメモリ２４、ＥＣＣ（Error Check and Correction）回路２５、推定部２６、及びＮＡＮＤインタフェース回路２７、を備えている。
【００１３】
ホストインタフェース回路２１は、ホスト機器２と接続され、ホスト機器２との通信を司る。ホストインタフェース回路２１は、例えば、ホスト機器２から受信した命令及びデータを、それぞれプロセッサ２２及びバッファメモリ２４に転送する。
【００１４】
プロセッサ２２は、コントローラ２０全体の動作を制御する。プロセッサ２２は、例えば、ホスト機器２から受信したデータの読出し命令に応答して、ＮＡＮＤインタフェース回路２７に基づく読出し命令を半導体記憶装置１０に対して発行する。この動作は、書き込み及び消去の場合についても同様である。また、プロセッサ２２は、半導体記憶装置１０からの読出しデータに対して、種々の演算を実行する機能を有する。プロセッサ２２は、メモリシステム１が電源供給を受けたときに、図示しないＲＯＭに格納されているファームウェア（制御プログラム）をバッファメモリ２４またはコントローラ２０内の図示しないＲＡＭ上に読み出して所定の処理を実行することにより、コントローラ２０全体の動作を制御する。ここで、プロセッサ２２は、コアまたはプロセッサコアとも称される。なお、コントローラ２０全体の動作の制御は、プロセッサ２２がファームウェアを実行することで実現されるのではなく、所定のハードウェアにより実現されてもよい。
【００１５】
内蔵メモリ２３は、例えば、ＤＲＡＭ（Dynamic RAM）等の半導体メモリであり、プロセッサ２２の作業領域として使用される。内蔵メモリ２３は、半導体記憶装置１０を管理するためのファームウェア、及び各種の管理テーブル等を保持する。
【００１６】
バッファメモリ２４は、コントローラ２０が半導体記憶装置１０及びホスト機器２から受信したデータ等を一時的に保持する。より具体的には、バッファメモリ２４は、サンプルバッファメモリ２４１と、データバッファメモリ２４２と、を備えている。サンプルバッファメモリ２４１は、例えば、半導体記憶装置１０からの読出しデータ（エラー訂正前のデータ）を一時的に記憶する。データバッファメモリ２４２は、読出しデータに対する演算結果等を一時的に保持する。バッファメモリ２４は、例えば、ＳＲＡＭ（Static  RAM）やＤＲＡＭなどの汎用メモリで構成される。また、バッファメモリ２４は、コントローラ２０内部に搭載されてもよく、コントローラ２０の外にコントローラ２０とは独立して搭載されてもよい。
【００１７】
ＥＣＣ回路２５は、エラー検出及びエラー訂正処理を行う。より具体的には、データの書き込み時には、ホスト機器２から受信したデータに基づいて、或る数のデータの組毎にＥＣＣ符号を生成する。また、データの読出し時には、ＥＣＣ符号に基づいて復号し、エラーの有無を検出する。そしてエラーが検出された際には、そのビット位置を特定し、エラーを訂正する。
【００１８】
推定部２６は、半導体記憶装置１０から読み出されたデータに基づき、データの変動の種類を推定する。具体的には、推定部２６は、エラー訂正する前後のデータにより、メモリセルの閾値分布の遷移によりストレス種類を推定する。更に詳しい動作については、後述する。
【００１９】
ＮＡＮＤインタフェース回路２７は、ＮＡＮＤバスを介して半導体記憶装置１０と接続され、半導体記憶装置１０との通信を司る。ＮＡＮＤインタフェース回路２７は、プロセッサ２２の指示により、コマンドＣＭＤ、アドレスＡＤＤ、及び書き込みデータを半導体記憶装置１０に送信する。また、ＮＡＮＤインタフェース回路２７は、半導体記憶装置１０から読出しデータを受信する。
【００２０】
＜１−２−３＞  メモリチップの構成
次に、実施形態に係るメモリチップの構成例について、図２を用いて説明する。図２は、実施形態に係るメモリチップの構成の一例を示すブロック図である。図２に示すようにメモリチップ１０Ａは、メモリセルアレイ１１、ロウデコーダモジュール１２、センスアンプモジュール１３、入出力回路１４、レジスタ１５、ロジックコントローラ１６、シーケンサ１７、レディ／ビジー制御回路１８、並びに電圧生成回路１９を備えている。
【００２１】
メモリセルアレイ１１は、ブロックＢＬＫ０〜ＢＬＫｎ（ｎは１以上の自然数）を含んでいる。メモリセルアレイ１１の詳細については後述する。
【００２２】
ロウデコーダモジュール１２は、アドレスレジスタ１５Ｂに保持されたブロックアドレスに基づいて、各種動作を実行する対象のブロックＢＬＫを選択することが出来る。そしてロウデコーダモジュール１２は、電圧生成回路１９から供給された電圧を、選択したブロックＢＬＫに転送することが出来る。ロウデコーダモジュール１２の詳細については後述する。
【００２３】
センスアンプモジュール１３は、メモリセルアレイ１１から読み出したデータＤＡＴを、入出力回路１４を介して外部のコントローラに出力することが出来る。また、センスアンプモジュール１３は、外部のコントローラから入出力回路１４を介して受け取った書き込みデータＤＡＴを、メモリセルアレイ１１に転送することが出来る。
【００２４】
入出力回路１４は、例えば８ビット幅の入出力信号Ｉ／Ｏ（Ｉ／Ｏ１〜Ｉ／Ｏ８）を、外部のコントローラとの間で送受信することが出来る。例えば入出力回路１４は、外部のコントローラから受信した入出力信号Ｉ／Ｏに含まれた書き込みデータＤＡＴをセンスアンプモジュール１３に転送し、センスアンプモジュール１３から転送された読み出しデータＤＡＴを入出力信号Ｉ／Ｏとして外部のコントローラに送信する。
【００２５】
レジスタ１５は、ステータスレジスタ１５Ａ、アドレスレジスタ１５Ｂ、コマンドレジスタ１５Ｃを含んでいる。ステータスレジスタ１５Ａは、例えばシーケンサ１７のステータス情報ＳＴＳを保持し、このステータス情報ＳＴＳをシーケンサ１７の指示に基づいて入出力回路１４に転送する。アドレスレジスタ１５Ｂは、入出力回路１４から転送されたアドレス情報ＡＤＤを保持する。アドレス情報ＡＤＤに含まれたブロックアドレス、カラムアドレス、及びページアドレスは、それぞれロウデコーダモジュール１２、センスアンプモジュール１３、及び電圧生成回路１９で使用される。コマンドレジスタ１５Ｃは、入出力回路１４から転送されたコマンドＣＭＤを保持する。
【００２６】
ロジックコントローラ１６は、外部のコントローラから受信した各種制御信号に基づいて、入出力回路１４及びシーケンサ１７を制御することが出来る。各種制御信号としては、例えばチップイネーブル信号／ＣＥ、コマンドラッチイネーブル信号ＣＬＥ、アドレスラッチイネーブル信号ＡＬＥ、ライトイネーブル信号／ＷＥ、リードイネーブル信号／ＲＥ、及びライトプロテクト信号／ＷＰが使用される。信号／ＣＥは、メモリチップ１０Ａをイネーブルにするための信号である。信号ＣＬＥは、アサートされている信号ＣＬＥと並行してメモリチップ１０Ａに入力される信号がコマンドＣＭＤであることを入出力回路１４に通知するための信号である。信号ＡＬＥは、アサートされている信号ＡＬＥと並行してメモリチップ１０Ａに入力される信号がアドレス情報ＡＤＤであることを入出力回路１４に通知するための信号である。信号／ＷＥ及び／ＲＥはそれぞれ、例えば入出力信号Ｉ／Ｏの入力及び出力を入出力回路１４に対して命令する信号である。信号/ＷＰは、例えば電源のオンオフ時にメモリチップ１０Ａを保護状態にするための信号である。
【００２７】
シーケンサ１７は、コマンドレジスタ１５Ｃに保持されたコマンドＣＭＤに基づいて、メモリチップ１０Ａ全体の動作を制御することが出来る。例えば、シーケンサ１７は、ロウデコーダモジュール１２、センスアンプモジュール１３、電圧生成回路１９等を制御して、書き込み動作や読み出し動作等の各種動作を実行する。
【００２８】
レディ／ビジー制御回路１８は、シーケンサ１７の動作状態に基づいてレディ／ビジー信号ＲＢｎを生成することが出来る。信号ＲＢｎは、メモリチップ１０Ａがコントローラ２０からの命令を受け付けるレディ状態であるか、命令を受け付けないビジー状態であるかを、コントローラ２０に通知する信号である。
【００２９】
電圧生成回路１９は、シーケンサ１７の制御に基づいて所望の電圧を生成し、生成した電圧をメモリセルアレイ１１、ロウデコーダモジュール１２、センスアンプモジュール１３等に供給することが出来る。例えば電圧生成回路１９は、アドレスレジスタ１５Ｂに保持されたページアドレスに基づいて、選択ワード線に対応する信号線、及び非選択ワード線に対応する信号線に対してそれぞれ所望の電圧を印加する。
【００３０】
＜１−１−４＞  メモリセルアレイの構成
次に、図３を用いて、実施形態に係る半導体記憶装置のメモリセルアレイの構成について説明する。図３は、実施形態に係る半導体記憶装置のメモリセルアレイの１つのブロックの構成を説明するための回路図の一例である。
【００３１】
図３に示すように、ブロックＢＬＫは、例えば４つのストリングユニットＳＵ０〜ＳＵ３を含んでいる。各ストリングユニットＳＵは、複数のＮＡＮＤストリングＮＳを含んでいる。
【００３２】
複数のＮＡＮＤストリングＮＳは、ビット線ＢＬ０〜ＢＬｍ（ｍは１以上の整数）にそれぞれ関連付けられている。各ＮＡＮＤストリングＮＳは、例えばメモリセルトランジスタＭＴ０〜ＭＴ７、並びに選択トランジスタＳＴ１及びＳＴ２を含んでいる。
【００３３】
メモリセルトランジスタＭＴは、制御ゲート及び電荷蓄積層を含み、データを不揮発に記憶する。選択トランジスタＳＴ１及びＳＴ２のそれぞれは、各種動作時におけるストリングユニットＳＵの選択に使用される。
【００３４】
各ＮＡＮＤストリングＮＳにおいて、選択トランジスタＳＴ１のドレインは、関連付けられたビット線ＢＬに接続される。選択トランジスタＳＴ１のソースと、選択トランジスタＳＴ２のドレインとの間には、メモリセルトランジスタＭＴ０〜ＭＴ７が直列接続される。
【００３５】
同一のブロックＢＬＫにおいて、ストリングユニットＳＵ０〜ＳＵ３のそれぞれに含まれた選択トランジスタＳＴ１のゲートは、それぞれ選択ゲート線ＳＧＤ０〜ＳＧＤ３に共通接続される。メモリセルトランジスタＭＴ０〜ＭＴ７のそれぞれの制御ゲートは、それぞれワード線ＷＬ０〜ＷＬ７に共通接続される。選択トランジスタＳＴ２のゲートは、選択ゲート線ＳＧＳに共通接続される。
【００３６】
ビット線ＢＬ０〜ＢＬｍには、それぞれ異なるカラムアドレスが割り当てられる。各ビット線ＢＬは、複数のブロックＢＬＫ間で対応するＮＡＮＤストリングＮＳの選択トランジスタＳＴ１に共通接続される。ワード線ＷＬ０〜ＷＬ７のそれぞれは、ブロックＢＬＫ毎に設けられる。ソース線ＳＬは、例えば複数のブロックＢＬＫ間で共有される。
【００３７】
１つのストリングユニットＳＵ内で共通のワード線ＷＬに接続された複数のメモリセルトランジスタＭＴの集合は、例えばセルユニットＣＵと称される。例えば、それぞれが１ビットデータを記憶するメモリセルトランジスタＭＴを含むセルユニットＣＵの記憶容量が、「１ページデータ」として定義される。セルユニットＣＵは、メモリセルトランジスタＭＴが記憶するデータのビット数に応じて、２ページデータ以上の記憶容量を有し得る。
【００３８】
尚、以上で説明した半導体記憶装置１０の構成はあくまで一例であり、これに限定されない。例えば、各ＮＡＮＤストリングＮＳが含むメモリセルトランジスタＭＴ並びに選択トランジスタＳＴ１及びＳＴ２の個数は、それぞれ任意の個数に設計され得る。各ブロックＢＬＫが含むストリングユニットＳＵの個数は、任意の個数に設計され得る。ダミートランジスタとして設定されるトランジスタの配置及び個数は、任意の配置及び個数に設計され得る。
【００３９】
＜１−１−５＞  複数のメモリセルトランジスタＭＴの閾値電圧によって形成される閾値分布
図４、及び図５を用いて、メモリセルアレイの複数のメモリセルトランジスタＭＴの閾値電圧によって形成される閾値分布について説明する。
【００４０】
図４は、１つのメモリセルトランジスタＭＴが３ビットデータを記憶する場合のメモリセルトランジスタＭＴの閾値分布及び読み出し電圧を示し、縦軸がメモリセルトランジスタＭＴの個数に対応し、横軸がメモリセルトランジスタＭＴの閾値電圧Ｖthに対応している。図４に示すように複数のメモリセルトランジスタＭＴは、記憶するデータのビット数に基づいて複数の閾値分布を形成する。以下に、１つのメモリセルトランジスタＭＴに３ビットデータを記憶させるＴＬＣ（Triple-Level Cell）方式について説明する。
【００４１】
ＴＬＣ方式の場合、複数のメモリセルトランジスタＭＴは８つの閾値分布を形成する。この８個の閾値分布のことを、閾値電圧の低いものから順に“ＥＲ”レベル、“Ａ”レベル、“Ｂ”レベル、“Ｃ”レベル、“Ｄ”レベル、“Ｅ”レベル、“Ｆ”レベル、“Ｇ”レベルと称する。また、ここで、３ビットデータは、Lowerビットデータ、Middleビットデータ、Upperビットデータと称する。
【００４２】
以上で説明された８種類のメモリセルトランジスタＭＴの閾値分布には、それぞれ異なる３ビットデータが割り当てられる。図５を用いて、閾値分布に対するデータの割り付けについて説明する。図５に示すように、ＴＬＣ方式では、例えば“ＥＲ”レベル、“Ａ”レベル、“Ｂ”レベル、“Ｃ”レベル、“Ｄ”レベル、“Ｅ”レベル、“Ｆ”レベル、“Ｇ”レベルにそれぞれ“１１１（Lower／Middle／Upper）”データ、“０１１”データ、“００１”データ、“０００”データ、“０１０”データ、“１１０”データ、“１００”データ、及び“１０１”データが割り当てられる。
【００４３】
そして、以上で説明した閾値分布において、隣り合う閾値分布の間にそれぞれ読み出し電圧が設定される。例えば、読み出し電圧ＡＲは、“ＥＲ”レベルにおける最大の閾値電圧と“Ａ”レベルにおける最小の閾値電圧との間に設定され、メモリセルトランジスタＭＴの閾値電圧が“ＥＲ”レベルの閾値分布に含まれるのか“Ａ”レベル以上の閾値分布に含まれるのかを判定する動作に使用される。メモリセルトランジスタＭＴに読み出し電圧ＡＲが印加されると、“ＥＲ”レベルに対応するメモリセルトランジスタがオン状態になり、“Ａ”レベル、“Ｂ”レベル、“Ｃ”レベル、“Ｄ”レベル、“Ｅ”レベル、“Ｆ”レベル、及び“Ｇ”レベルに対応するメモリセルトランジスタがオフ状態になる。その他の読み出し電圧も同様に設定される。読み出し電圧ＢＲは、“Ａ”レベルの閾値分布と“Ｂ”レベルの閾値分布との間に設定され、読み出し電圧ＣＲは、“Ｂ”レベルの閾値分布と“Ｃ”レベルの閾値分布との間に設定される。読み出し電圧ＤＲは、“Ｃ”レベルの閾値分布と“Ｄ”レベルの閾値分布との間に設定され、読み出し電圧ＥＲは、“Ｄ”レベルの閾値分布と“Ｅ”レベルの閾値分布との間に設定される。読み出し電圧ＦＲは、“Ｅ”レベルの閾値分布と“Ｆ”レベルの閾値分布との間に設定され、読み出し電圧ＧＲは、“Ｆ”レベルの閾値分布と“Ｇ”レベルの閾値分布との間に設定される。各書き込み方式において、最も高い閾値分布における最大の閾値電圧よりも高い電圧に、読み出しパス電圧ＶＲＥＡＤが設定される。つまり、読み出しパス電圧ＶＲＥＡＤがゲートに印加されたメモリセルトランジスタＭＴは、記憶するデータに依らずにオンする。
【００４４】
尚、以上で説明した１つのメモリセルトランジスタＭＴに記憶するデータのビット数と、メモリセルトランジスタＭＴの閾値分布に対するデータの割り当てとはあくまで一例であり、これに限定されない。例えば、４ビット以上のデータが１つのメモリセルトランジスタＭＴに記憶されても良いし、その他の様々なデータの割り当てが閾値分布に対して適用されても良い。また、各読み出し電圧及び読み出しパス電圧は、各方式で同じ電圧値に設定されても良いし、異なる電圧値に設定されても良い。なお、メモリセルトランジスタＭＴは単にメモリセルとも称される。
【００４５】
尚、以上で説明したメモリセルアレイ１１の構成は、その他の構成であっても良い。その他のメモリセルアレイ１１の構成については、例えば“三次元積層不揮発性半導体メモリ”という２００９年３月１９日に出願された米国特許出願１２／４０７，４０３号、“三次元積層不揮発性半導体メモリ”という２００９年３月１８日に出願された米国特許出願１２／４０６，５２４号、“不揮発性半導体記憶装置及びその製造方法”という２０１０年３月２５日に出願された米国特許出願１２／６７９，９９１号、“半導体メモリ及びその製造方法”という２００９年３月２３日に出願された米国特許出願１２／５３２，０３０号に記載されている。これらの特許出願は、その全体が本願明細書において参照により援用されている。
【００４６】
＜１−１−６＞  閾値分布の変動
続いて、図６、及び図７を用いて、閾値分布の変動について説明する。図６、及び図７において、実線にて、変動前の閾値分布を示し、破線にて変動後の閾値分布を示している。
【００４７】
メモリセルトランジスタＭＴは、様々な要因により、閾値分布が変動する。その変動は、メモリセルトランジスタＭＴへのストレスの種類により発生する。
【００４８】
例えば、メモリセルトランジスタＭＴがリードディスターブのストレスを受ける場合、図６に示すように、閾値分布は全体的に右方向（Ｖｔｈが高い方向）にシフトする。
【００４９】
また、メモリセルトランジスタＭＴがデータリテンションのストレスを受ける場合、図７に示すように、閾値分布は全体的に“Ａ”レベル及び“Ｂ”レベルに集中するようにシフトする。
【００５０】
＜１−１−７＞  推定部
続いて、図８を用いて、推定部２６について説明する。なお、図８では、推定部２６を機能別に構成要件に分けているが、必ずしもハードウェアとしてこのように分けられている必要はない。
【００５１】
図８に示すように、半導体記憶装置１０から読み出されたデータは訂正前のデータとして、サンプルバッファメモリ２４１に記憶される。
【００５２】
そして、ＥＣＣ回路２５は、サンプルバッファメモリ２４１から読み出したデータのエラーの有無を判定する。ＥＣＣ回路２５は、データにエラーがあると判定しない場合、すなわち、データにエラーが無い場合、サンプルバッファメモリ２４１から読み出したデータをデータバッファメモリ２４２に供給する。ＥＣＣ回路２５は、データにエラーがあると判定する場合、エラー訂正処理を行う。ＥＣＣ回路２５は、データのエラー訂正処理が成功した場合、エラー情報を、推定部２６に供給する。このエラー情報とは、エラー訂正処理を行う前のデータと、エラー訂正処理後のデータと、エラー位置情報と、を含む。また、データのエラー訂正処理が成功した場合、ＥＣＣ回路２５は、エラー訂正後のデータをデータバッファメモリ２４２に供給する。
【００５３】
推定部２６は、エラー位置判定部２６１と、ＥＣＣデータバッファメモリ２６２と、サブシーケンサ２６３と、推定テーブル２６４と、を備えている。
【００５４】
エラー位置判定部２６１は、ＥＣＣ回路２５からエラー位置情報を受信し、記憶する。そして、エラー位置情報に基づき、エラーの位置（具体的なページ、ブロック等の位置）を判定する。
【００５５】
ＥＣＣデータバッファメモリ２６２は、ＥＣＣ回路２５から、エラー訂正処理を行う前のデータと、エラー訂正処理後のデータと、を受信し、記憶する。
【００５６】
サブシーケンサ２６３は、推定部２６の制御を行う。具体的には、サブシーケンサ２６３は、エラー位置判定部２６１により判定されたエラーの位置に基づき、データバッファメモリ２４２、または半導体記憶装置１０からエラーデータのレベルを特定する為に必要な情報（例えば、エラー訂正後のデータがMiddleページのデータである場合、Upperページと、Lowerページのデータ）を読み出す。そして、サブシーケンサ２６３は、エラーデータのレベルを特定する為に必要な情報に基づき、変動推定テーブルを生成する。サブシーケンサ２６３は、変動推定テーブルが完成すると、変動推定テーブルに基づいて、変動の種類及びブロックの強度を判定する。推定テーブル２６４は、変動推定テーブルを記憶する。
【００５７】
＜１−２＞  動作
図９を用いて、本実施形態に係る変動の種類の判定方法について説明する。なお、変動の種類の判定は、例えばパトロール中に行われる。このパトロールとは、例えば、メモリシステム１にホスト機器２からアクセスされない間、コントローラ２０が行う動作である。パトロールは、半導体記憶装置１０に記録済みのデータが媒体の劣化によって失われていないかをチェック、確認するための動作である。
【００５８】
パトロールは、エラーの増加したブロックを検出するために、例えば、半導体記憶装置１０に記憶されているデータを所定単位ずつ読み出し、当該読み出されたデータをＥＣＣ回路２５でのエラー訂正結果に基づいてチェックする処理である。
【００５９】
このチェックでは、例えば、読み出されたデータの誤りビット数を閾値と比較し、誤りビット数が閾値を越えたデータをリフレッシュの対象とする。例えば、プロセッサ２２は、あるページからの読み出しデータの誤りビット数が閾値を超えた場合に、そのページが含まれるブロック内のデータをリフレッシュの対象とする。つまり、プロセッサは、誤りビット数が閾値を越えたページを含むブロックに記憶されているデータを、別のブロックに再記憶する。プロセッサは、元のブロックに記憶されていたデータを無効化する。なお、図９に示す変動の種類の判定方法では、所定のブロックに対するパトロールにおける処理を示している。しかし、パトロールの実行単位は、ブロック単位に限られず、ブロック単位のサイズより大きい単位であってもよいし、ブロック単位のサイズより小さい単位であってもよい。
【００６０】
［Ｓ１０１］
コントローラ２０は、半導体記憶装置１０からデータを読み出す。そして、コントローラ２０は、エラー訂正できるデータの単位（フレーム等とも記載する）で、ＥＣＣ回路２５に供給する。
【００６１】
［Ｓ１０２］
ＥＣＣ回路２５は、半導体記憶装置１０から読み出したフレーム（読み出しデータとも記載する）に基づいて、データのエラーの有無を判定する。ＥＣＣ回路２５は、読み出しデータにエラーが無いと判定する場合（ステップＳ１０２、ＮＯ）、読み出しデータを、データバッファメモリ２４２に供給する。
【００６２】
［Ｓ１０３］
ＥＣＣ回路２５は、読み出しデータにエラーが有ると判定する場合（ステップＳ１０２、ＹＥＳ）、エラー訂正処理を行う。そして、ＥＣＣ回路２５は、エラー訂正処理が完了したか否かを判定する。ＥＣＣ回路２５は、エラー訂正処理が完了していないと判定する場合（ステップＳ１０３、ＮＯ）、エラー訂正処理が完了しなかった事を、プロセッサ２２等に通知する。
【００６３】
［Ｓ１０４］
ＥＣＣ回路２５は、エラー訂正処理が完了したと判定する場合（ステップＳ１０３、ＹＥＳ）、エラー情報を取得する。
【００６４】
ここで、エラー情報を取得する理由について説明する。図１０は、エラー訂正前のデータと、エラー訂正後のデータとの関係を示している。例えば、図１０の破線部に示すデータのエラー訂正処理が成功した場合、このデータのみでは、データがどのレベルからどのレベルへと変動したのか判定できない。変動を調べるために、エラー情報を取得する必要がある。具体的には、ＥＣＣ回路２５は、エラー情報の１つであるエラー位置情報（ページやブロックなど）をエラー位置判定部２６１に記憶させる。また、ＥＣＣ回路２５は、エラー訂正処理を行う前のデータと、エラー訂正処理後のデータと、を、ＥＣＣデータバッファメモリ２６２に記憶させる。また、ＥＣＣ回路２５は、エラー訂正処理後のデータを、データバッファメモリ２４２に記憶させる。
【００６５】
［Ｓ１０５］
サブシーケンサ２６３は、エラー位置判定部２６１、及びＥＣＣデータバッファメモリ２６２から、エラー情報を取得することにより、エラーを有し、且つエラー訂正されたデータ（エラーデータ）のレベルを特定する為に、必要な情報を特定する。そして、サブシーケンサ２６３は、エラーデータのレベルを特定する為に必要な情報がデータバッファメモリ２４２に記憶されているか否かを検索する。
【００６６】
［Ｓ１０６］
サブシーケンサ２６３は、データバッファメモリ２４２にエラーデータのレベルを特定する為に必要な情報が、記憶されているか否かを判定する。サブシーケンサ２６３は、データバッファメモリ２４２にエラーデータのレベルを特定する為に必要な情報が、記憶されていると判定する場合（ステップＳ１０６、Ｙｅｓ）、データバッファメモリ２４２から必要な情報を読み出す。
【００６７】
［Ｓ１０７］
サブシーケンサ２６３は、データバッファメモリ２４２にエラーデータのレベルを特定する為に必要な情報が、記憶されていないと判定する場合（ステップＳ１０６、ＮＯ）、半導体記憶装置１０から必要な情報を読み出す、リダンダントリードを要求する。
【００６８】
［Ｓ１０８］
サブシーケンサ２６３は、エラーデータのレベルを特定する為に必要な情報が揃うと、エラー訂正前のレベルと、エラー訂正後のレベルがわかる。
【００６９】
図１１に、エラー訂正前のレベルと、エラー訂正後のレベルと、の具体例を示す。例えば、ステップＳ１０１〜Ｓ１０７により、図１１に示すように、“０１０”というデータが、“０００”というデータに変動することがある。図５に示すように、“０１０”というデータは“Ｄ”レベルであり、“０００”というデータは“Ｃ”レベルである。そのため、 “Ｄ”レベルから“Ｃ”レベルに変動したことがわかる。この場合、図１２に示すように、推定テーブル２６４内に記憶される変動推定テーブルを更新する。
【００７０】
変動推定テーブルとは、ＥＣＣ成功後のレベルと、左方向（レベルが低い方向）に変動したメモリセルトランジスタ、または右方向（レベルが高い方向）に変動したメモリセルトランジスタの数（変動の回数）と、の関係を記録するテーブルである。この変動推定テーブルは、例えばブロック毎に作成、記憶される。例えば、あるメモリセルトランジスタが右方向に変動する場合は、「Ｒｉｇｈｔ」の行、且つエラー訂正後後のレベルに対応する値をカウントアップする。また、あるメモリセルトランジスタが左方向に変動する場合は、「Ｌｅｆｔ」の行、且つエラー訂正後のレベルに対応する値をカウントアップする。具体的には、「Ｒｉｇｈｔ」の行、且つ“Ｅｒ”レベルに対応する値が“１３”とあるが、これは、右側に変動した“Ｅｒ”レベルのメモリセルトランジスタが“１３”個あることを意味する。また、「Ｌｅｆｔ」の行、且つ“Ｇ”レベルに対応する値が“５”とあるが、これは、左側に変動した“Ｇ”レベルのメモリセルトランジスタが“５”個あることを意味する。
【００７１】
図１１に示す例の場合、メモリセルトランジスタのレベルが“Ｄ”レベルから“Ｃ”レベル、つまり左側に変動したことがわかる。そのため、ステップＳ１０８では、図１２の破線部に示すように、「Ｌｅｆｔ」の行且つ“Ｄ”レベルの値を“１”だけカウントアップする。
【００７２】
［Ｓ１０９］
サブシーケンサ２６３は、データの読み出しを行っているブロック内の全てのデータを読み出したか否かを判定する。ブロック内の読み出しが完了していない場合（ステップＳ１０９、ＮＯ）、ステップＳ１０１を繰り返す。
【００７３】
［Ｓ１０８］
サブシーケンサ２６３は、ブロック内の読み出しが完了したと判定する場合（ステップＳ１０９、ＹＥＳ）、推定テーブル２６４内の変動推定テーブルに基づいて、読み出しを行ったブロックにおける変動の種類を判定する。
【００７４】
例えば、サブシーケンサ２６３は、変動推定テーブルの「Ｌｅｆｔ」の行に属するメモリセルトランジスタの数と、「Ｒｉｇｈｔ」の行に属するメモリセルトランジスタの数と、を比較し、「Ｒｉｇｈｔ」の行に属するメモリセルトランジスタの数が大きい場合、「メモリセルトランジスタＭＴがリードディスターブのストレスを受けている」と判定できる。また、サブシーケンサ２６３は、変動推定テーブルの「Ｌｅｆｔ」の行に属するメモリセルトランジスタの数と、「Ｒｉｇｈｔ」の行に属するメモリセルトランジスタの数と、を比較し、「Ｌｅｆｔ」の行に属するメモリセルトランジスタの数が大きい場合、「メモリセルトランジスタＭＴがデータリテンションのストレスを受けている」と判定できる。
【００７５】
なお、上記判定方法は、一例であり、変動推定テーブル内のメモリセルトランジスタの数から導かれるストレスの種類は、これに限らず、種々変更可能である。
【００７６】
＜１−３＞  効果
上述した実施形態によれば、メモリセルトランジスタのレベルの変動した方向をテーブル化し、テーブルを参照することで、あるブロックにおける変動の種類を特定でき、その結果、あるブロックが受けているストレスの種類を判定することができる。その結果、コントローラ２０は、ブロック毎のストレスの種類を特定でき、ブロック毎に適切な動作を行うことができる。
【００７７】
また、サブシーケンサ２６３は、変動の程度により、ブロックのストレスに対する強度を判定することができる。これにより、サブシーケンサ２６３は、デバイスの強度を推測できる。
【００７８】
コントローラ２０は、判定された、ブロックにおけるストレスの種類と、ブロックの強度は、次回の読出し時の読み出し電圧の調整、またはデータのリフレッシュ方式等を決定する時等に用いることができる。
【００７９】
以上、本発明の実施形態を説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない範囲内において種々変形して実施することが可能である。さらに、上記実施形態には種々の段階の発明が含まれており、開示された構成要件を適宜組み合わせることによって種々の発明が抽出される。例えば、開示された構成要件からいくつかの構成要件が削除されても、所定の効果が得られるものであれば、発明として抽出され得る。
【符号の説明】
【００８０】
１…メモリシステム
２…ホスト機器
１０…半導体記憶装置
１０Ａ…メモリチップ
１１…メモリセルアレイ
１２…ロウデコーダモジュール
１３…センスアンプモジュール
１４…入出力回路
１５…レジスタ
１５Ａ…ステータスレジスタ
１５Ｂ…アドレスレジスタ
１５Ｃ…コマンドレジスタ
１６…ロジックコントローラ
１７…シーケンサ
１８…レディ／ビジー制御回路
１９…電圧生成回路
２０…コントローラ
２１…ホストインタフェース回路
２２…プロセッサ
２３…内蔵メモリ
２４…バッファメモリ
２５…ＥＣＣ回路
２６…推定部
２７…ＮＡＮＤインタフェース回路
２４１…サンプルバッファメモリ
２４２…データバッファメモリ
２６１…エラー位置判定部
２６２…ＥＣＣデータバッファメモリ
２６３…サブシーケンサ
２６４…推定テーブル
【図１】
2020047353.tif 000003
【図２】
2020047353.tif 000004
【図３】
2020047353.tif 000005
【図４】
2020047353.tif 000006
【図５】
2020047353.tif 000007
【図６】
2020047353.tif 000008
【図７】
2020047353.tif 000009
【図８】
2020047353.tif 000010
【図９】
2020047353.tif 000011
【図１０】
2020047353.tif 000012
【図１１】
2020047353.tif 000013
【図１２】
2020047353.tif 000014