(57)【特許請求の範囲】
【請求項１】
不揮発性半導体メモリ、電源供給部、及び第１の制御部を具備する半導体記憶装置であって、
前記不揮発性半導体メモリは、
複数のメモリセルを含むブロックを複数備えるメモリセルアレイと、
前記複数のメモリセルへの書き込み、読み出し、及び消去を制御する第２の制御部と、を具備し、
前記メモリセルアレイは、
前記第１の制御部が、ホスト装置の指示に応じた動作を行う通常モード及びホスト装置の指示によらず所定の検査を行う自走検査モードの何れかを実行するために使用されるファームウェアを格納可能なファームウェア領域と、
ユーザデータを格納可能なユーザ領域と、を具備し、
前記電源供給部は、
前記半導体記憶装置外部から電源供給を受けて、前記不揮発性半導体メモリ及び前記第１の制御部に所定の電圧を供給し、
前記第１の制御部は、
前記電源供給部から電圧が供給された場合に、前記不揮発性半導体メモリから前記ファームウェアを読み出し、前記ファームウェアが前記通常モードに設定されているか、または前記自走検査モードに設定されているかを判定し、
前記ファームウェアが前記自走検査モードに設定されている場合に、第１の工程、第２の工程及び第３の工程を順に実行し、
前記第１の工程は、
前記通常モードで使用される電圧よりも高い第１のセル印加電圧を用いて前記ユーザ領域のブロックへ書き込みを行う工程を含み、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録せず、
前記第２の工程は、
前記通常モードで使用され、かつ前記第１のセル印加電圧よりも低い第２のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去及び書き込みを繰り返す工程を含み、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録せず、
前記第３の工程は、
前記第２のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去、書き込み及び読み出しを繰り返す工程を含み、かつ前記消去時にエラーが発生した場合、または前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録する、
ことを特徴とする半導体記憶装置。
【請求項２】
不揮発性半導体メモリ、電源供給部、及び第１の制御部を具備する半導体記憶装置であって、
前記不揮発性半導体メモリは、
複数のメモリセルを含むブロックを複数備えるメモリセルアレイと、
前記複数のメモリセルへの書き込み、読み出し、及び消去を制御する第２の制御部と、を具備し、
前記メモリセルアレイは、
前記第１の制御部が、ホスト装置の指示に応じた動作を行う通常モード及びホスト装置の指示によらず所定の検査を行う自走検査モードの何れかを実行するために使用されるファームウェアを格納可能なファームウェア領域と、
ユーザデータを格納可能なユーザ領域と、を具備し、
前記電源供給部は、
前記半導体記憶装置外部から電源供給を受けて、前記不揮発性半導体メモリ及び前記第１の制御部に所定の電圧を供給し、
前記第１の制御部は、
前記電源供給部から電圧が供給された場合に、前記不揮発性半導体メモリから前記ファームウェアを読み出し、前記ファームウェアが前記通常モードに設定されているか、または前記自走検査モードに設定されているかを判定し、
前記ファームウェアが前記自走検査モードに設定されている場合に、第１の工程、第２の工程及び第３の工程を順に実行し、
前記第１の工程は、
前記通常モードで使用される電圧よりも高い第１のセル印加電圧を用いて前記ユーザ領域のブロックへ書き込みを行う工程を含み、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録せず、
前記第２の工程は、
前記通常モードで使用され、かつ前記第１のセル印加電圧よりも低い第２のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去及び書き込みを繰り返す工程を含み、かつ前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録し、前記第３の工程を実行する前に当該バッドブロックの登録を削除し、
前記第３の工程は、
前記第２のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去、書き込み及び読み出しを繰り返す工程を含み、かつ前記消去時にエラーが発生した場合、または前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録する、
ことを特徴とする半導体記憶装置。
【請求項３】
前記第１の制御部は、前記第３の工程において、前記第２のセル印加電圧を用いて前記ユーザ領域のブロックごとに第１の読み出し、消去、書き込み、及び第２の読み出しをこの順に少なくとも２周繰り返し、
２周目以降の周期における前記第１の読み出しは、当該周期より前の周期における前記書き込み時のデータを消去する前に実行され、前記２周目以降の周期における前記第２の読み出しは、当該周期より前の周期における前記書き込み時のデータを消去し、その後新たに書き込まれたデータに対して実行される、
ことを特徴とする請求項１または２に記載の半導体記憶装置。
【請求項４】
複数のメモリセルを含むブロックを複数備えるメモリセルアレイを具備し、前記メモリセルアレイは、ホスト装置の指示に応じた動作を行う通常モード及びホスト装置の指示によらず所定の検査を行う自走検査モードの何れかを実行するために使用されるファームウェアを格納可能なファームウェア領域と、ユーザデータを格納可能なユーザ領域と、を含む不揮発性半導体メモリの検査方法であって、
前記不揮発性半導体メモリから前記ファームウェアを読み出し、前記ファームウェアが前記通常モードに設定されているか、または前記自走検査モードに設定されているかを判定し、
前記ファームウェアが前記自走検査モードに設定されている場合に、前記通常モードで使用される電圧よりも高い第１のセル印加電圧を用いて前記ユーザ領域のブロックへ書き込みを行い、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録しない第１の工程を実行し、
前記第１の工程を実行した後、前記通常モードで使用され、かつ前記第１のセル印加電圧よりも低い第２のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去及び書き込みを繰り返し、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録しない第２の工程を実行し、
前記第２の工程を実行した後、前記第２のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去、書き込み及び読み出しを繰り返し、かつ前記消去時にエラーが発生した場合、または前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録する第３の工程を実行する、
ことを特徴とする不揮発性半導体メモリの検査方法。
【請求項５】
複数のメモリセルを含むブロックを複数備えるメモリセルアレイを具備し、前記メモリセルアレイは、ホスト装置の指示に応じた動作を行う通常モード及びホスト装置の指示によらず所定の検査を行う自走検査モードの何れかを実行するために使用されるファームウェアを格納可能なファームウェア領域と、ユーザデータを格納可能なユーザ領域と、を含む不揮発性半導体メモリの検査方法であって、
前記不揮発性半導体メモリから前記ファームウェアを読み出し、前記ファームウェアが前記通常モードに設定されているか、または前記自走検査モードに設定されているかを判定し、
前記ファームウェアが前記自走検査モードに設定されている場合に、前記通常モードで使用される電圧よりも高い第１のセル印加電圧を用いて前記ユーザ領域のブロックへ書き込みを行い、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録しない第１の工程を実行し、
前記第１の工程を実行した後、前記通常モードで使用され、かつ前記第１のセル印加電圧よりも低い第２のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去及び書き込みを繰り返し、かつ前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録する第２の工程を実行し、
前記第２の工程を実行した後、前記第２のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去、書き込み及び読み出しを繰り返し、かつ前記消去時にエラーが発生した場合、または前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録する第３の工程を実行し、
前記第２の工程を実行した後、前記第３の工程を実行する前に、前記バッドブロックの登録を削除する、
ことを特徴とする不揮発性半導体メモリの検査方法。
【請求項６】
前記第３の工程において、前記第２のセル印加電圧を用いて前記ユーザ領域のブロックごとに第１の読み出し、消去、書き込み、及び第２の読み出しをこの順に少なくとも２周繰り返し、
２周目以降の周期における前記第１の読み出しは、当該周期より前の周期における前記書き込み時のデータを消去する前に実行され、前記２周目以降の周期における前記第２の読み出しは、当該周期より前の周期における前記書き込み時のデータを消去し、その後新たに書き込まれたデータに対して実行される、
ことを特徴とする請求項４または５に記載の不揮発性半導体メモリの検査方法。
【請求項７】
複数のメモリセルを含むブロックを複数備えるメモリセルアレイを具備する不揮発性半導体メモリを検査するためのファームウェアプログラムであって、
前記プログラムは、前記不揮発性半導体メモリを制御する制御部に、
ホスト装置の指示に応じた動作を行う通常モードで使用される電圧よりも高い第１のセル印加電圧を用いて前記不揮発性半導体メモリのブロックへ書き込みを行い、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録しない第１の工程と、
前記第１の工程を実行した後、前記通常モードで使用され、かつ前記第１のセル印加電圧よりも低い第２のセル印加電圧を用いて前記不揮発性半導体メモリのブロックごとに消去及び書き込みを繰り返し、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録しない第２の工程と、
前記第２の工程を実行した後、前記第２のセル印加電圧を用いて前記不揮発性半導体メモリのブロックごとに消去、書き込み及び読み出しを繰り返し、かつ前記消去時にエラーが発生した場合、または前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録する第３の工程と、
を実行させるためのプログラム。
【請求項８】
複数のメモリセルを含むブロックを複数備えるメモリセルアレイを具備する不揮発性半導体メモリを検査するためのファームウェアプログラムであって、
前記プログラムは、前記不揮発性半導体メモリを制御する制御部に、
ホスト装置の指示に応じた動作を行う通常モードで使用される電圧よりも高い第１のセル印加電圧を用いて前記不揮発性半導体メモリのブロックへ書き込みを行い、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録しない第１の工程と、
前記第１の工程を実行した後、前記通常モードで使用され、かつ前記第１のセル印加電圧よりも低い第２のセル印加電圧を用いて前記不揮発性半導体メモリのブロックごとに消去及び書き込みを繰り返し、かつ前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録する第２の工程と、
前記第２の工程を実行した後、前記第２のセル印加電圧を用いて前記不揮発性半導体メモリのブロックごとに消去、書き込み及び読み出しを繰り返し、かつ前記消去時にエラーが発生した場合、または前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録する第３の工程と、
前記第２の工程を実行した後、前記第３の工程を実行する前に、前記バッドブロックの登録を削除すること、
を実行させるためのプログラム。
【請求項９】
前記第３の工程において、前記第２のセル印加電圧を用いて前記不揮発性半導体メモリのブロックごとに第１の読み出し、消去、書き込み、及び第２の読み出しをこの順に少なくとも２周繰り返し、
２周目以降の周期における前記第１の読み出しは、当該周期より前の周期における前記書き込み時のデータを消去する前に実行され、前記２周目以降の周期における前記第２の読み出しは、当該周期より前の周期における前記書き込み時のデータを消去し、その後新たに書き込まれたデータに対して実行される、
ことを特徴とする請求項７または８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶装置、不揮発性半導体メモリの検査方法、及びプログラムに関する。
【背景技術】
【０００２】
パーソナルコンピュータなどの情報処理装置の外部記憶装置として、ＨＤＤ（Hard Disk Drive）以外に、ＳＳＤ（Solid State Drive）が用いられている。ＳＳＤは、不揮発性半導体メモリとしてＮＡＮＤ型フラッシュメモリを備えている。
【０００３】
例えば、ＳＳＤをＨＤＤと同じ環境で使用する場合、データの書き換えが頻発するとＳＳＤのエージングが進んでしまう。よって、製品出荷前の検査（スクリーニング）が不十分であると、製品出荷後の不良率が増加してしまう。
【０００４】
また、ＳＳＤの信頼性を向上させるために、スクリーニング工程においてＳＳＤに対してデータの書き換えを繰り返し行うことが考えられる。しかしながら、このようなスクリーニングを行う場合、検査時間及び検査コストが増大してしまう。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４４３９５３９号公報
【特許文献２】特許第４６３５０６１号公報
【特許文献３】特開２０１０−１６１１９９号公報
【特許文献４】特開２０１１−２９５８６号公報
【非特許文献】
【０００６】
【非特許文献１】ATA/ATAPI Command Set - 2 (ACS-2) d2015r6 Feb.22.2011http://www.t13.org/Documents/UploadedDocuments/docs2011/d2015r6-ATAATAPI_Command_Set_-_2_ACS-2.pdf
【発明の概要】
【発明が解決しようとする課題】
【０００７】
実施形態は、製品出荷後の信頼性を向上させることが可能な半導体記憶装置、不揮発性半導体メモリの検査方法、及びプログラムを提供する。
【課題を解決するための手段】
【０００８】
実施形態に係る半導体記憶装置は、不揮発性半導体メモリ、電源供給部、及び第１の制御部を具備する。前記不揮発性半導体メモリは、複数のメモリセルを含むブロックを複数備えるメモリセルアレイと、前記複数のメモリセルへの書き込み、読み出し、及び消去を制御する第２の制御部と、を具備する。前記メモリセルアレイは、前記第１の制御部が、ホスト装置の指示に応じた動作を行う通常モード及びホスト装置の指示によらず所定の検査を行う自走検査モードの何れかを実行するために使用されるファームウェアを格納可能なファームウェア領域と、ユーザデータを格納可能なユーザ領域と、を具備する。前記電源供給部は、前記半導体記憶装置外部から電源供給を受けて、前記不揮発性半導体メモリ及び前記第１の制御部に所定の電圧を供給する。前記第１の制御部は、前記電源供給部から電圧が供給された場合に、前記不揮発性半導体メモリから前記ファームウェアを読み出し、前記ファームウェアが前記通常モードに設定されているか、または前記自走検査モードに設定されているかを判定し、前記ファームウェアが前記自走検査モードに設定されている場合に、第１の工程、第２の工程及び第３の工程を順に実行する。前記第１の工程は、前記通常モードで使用される電圧よりも高い第１のセル印加電圧を用いて前記ユーザ領域のブロックへ書き込みを行う工程を含み、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録しない。前記第２の工程は、前記通常モードで使用され、かつ前記第１のセル印加電圧よりも低い第２のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去及び書き込みを繰り返す工程を含み、かつ前記書き込み時にエラーが発生した場合においても、当該エラーが発生したブロックをバッドブロックとして登録しない。前記第３の工程は、前記第２のセル印加電圧を用いて前記ユーザ領域のブロックごとに消去、書き込み及び読み出しを繰り返す工程を含み、かつ前記消去時にエラーが発生した場合、または前記書き込み時にエラーが発生した場合に、当該エラーが発生したブロックをバッドブロックとして登録する。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係るメモリシステムの構成を示すブロック図。
【図２】ＮＡＮＤ型フラッシュメモリの構成を示すブロック図。
【図３】ＮＡＮＤメモリチップの構成を示すブロック図。
【図４】メモリセルアレイの構成を示すブロック図。
【図５】メモリセルアレイに含まれる１個のプレーンの構成を示す回路図。
【図６】２ビットデータとメモリセルの閾値電圧分布との関係を示す図。
【図７】ＳＳＤの起動シーケンスを示すフローチャート。
【図８】ＳＳＤのスクリーニング動作を示すフローチャート。
【図９】スクリーニング時の読み出し動作を示すフローチャート。
【図１０】スクリーニング装置の構成示す概略図。
【図１１】スクリーニング装置の構成示す概略図。
【図１２】第２の実施形態に係るＳＳＤのスクリーニング動作を示すフローチャート。
【図１３】変形例に係るＳＳＤのスクリーニング動作を示すフローチャート。
【図１４】第３の実施形態に係る通常モードと自走モードとの切り替え動作を示す状態遷移図。
【図１５】第４の実施形態に係る通常モードと自走モードとの切り替え動作を示す状態遷移図。
【図１６】第５の実施形態に係るＳＳＤの構成を示すブロック図。
【図１７】ＳＳＤの起動シーケンスを示すフローチャート。
【図１８】慣らし工程を含むＳＳＤの動作を示すフローチャート。
【図１９】慣らし工程を示すフローチャート。
【図２０】疑似慣らし工程を含むＳＳＤの動作を示すフローチャート。
【図２１】疑似慣らし工程を示すフローチャート。
【発明を実施するための形態】
【００１０】
以下、実施形態について図面を参照して説明する。ただし、図面は模式的または概念的なものであり、各図面の寸法および比率などは必ずしも現実のものと同一とは限らないことに留意すべきである。また、図面の相互間で同じ部分を表す場合においても、互いの寸法の関係や比率が異なって表される場合もある。特に、以下に示す幾つかの実施形態は、本発明の技術思想を具体化するための装置および方法を例示したものであって、構成部品の形状、構造、配置などによって、本発明の技術思想が特定されるものではない。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００１１】
各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、機能ブロックがこれらのいずれでもあることが明確となるように、概してそれらの機能の観点から以下に説明する。このような機能が、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、いずれの実現の手法も実施形態の範疇に含まれる。また、各機能ブロックが、以下の具体例のように区別されていることは必須ではない。例えば、一部の機能が以下の説明において例示されている機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。どの機能ブロックによって特定されるかによって実施形態が限定されるものではない。
【００１２】
［第１の実施形態］
［１．メモリシステムの構成］
図１は、第１の実施形態に係るメモリシステムの構成を示すブロック図である。メモリシステムは、ホスト装置１０、及び外部記憶装置としての半導体記憶装置１とを備えている。半導体記憶装置１としては、ＮＡＮＤ型フラッシュメモリを備えたＳＳＤ（Solid State Drive）が用いられる。
【００１３】
ＳＳＤ１は、ＳＳＤコントローラ（記憶装置制御部）２、不揮発性半導体メモリとしてのＮＡＮＤ型フラッシュメモリ３、インターフェースコントローラ（インターフェース部）４、及び電源供給部５を備えている。ＳＳＤコントローラ２、インターフェースコントローラ４、及びＮＡＮＤ型フラッシュメモリ３は、バス６で相互に接続されている。
【００１４】
電源供給部５は、電源線１２によってホスト装置１０に接続され、ホスト装置１０から供給される外部電源を受ける。電源供給部５とＮＡＮＤ型フラッシュメモリ３とは電源線７ａで接続され、電源供給部５とＳＳＤコントローラ２とは電源線７ｂで接続され、電源供給部５とインターフェースコントローラ４とは電源線７ｃで接続されている。電源供給部５は、外部電源を昇圧及び降圧して各種電圧を生成し、ＳＳＤコントローラ２、ＮＡＮＤ型フラッシュメモリ３、及びインターフェースコントローラ４に各種電圧を供給する。
【００１５】
インターフェースコントローラ４は、インターフェース（Ｉ／Ｆ）１１によってホスト装置１０に接続されている。インターフェースコントローラ４は、ホスト装置１０とのインターフェース処理を実行する。インターフェース（Ｉ／Ｆ）１１としては、ＳＡＴＡ（Serial Advanced Technology Attachment）、ＰＣＩ Express（Peripheral Component Interconnect Express）、ＳＡＳ（Serial Attached SCSI）、ＵＳＢ（Universal Serial Bus）などが用いられる。本実施形態では、Ｉ／Ｆ１１として、ＳＡＴＡを用いる場合を例に説明する。
【００１６】
ＮＡＮＤ型フラッシュメモリ３は、データを不揮発に記憶する。ＮＡＮＤ型フラッシュメモリ３の物理アドレス空間には、ファームウェア（ＦＷ）を格納するＦＷ領域３Ａと、管理情報を格納する管理情報領域３Ｂと、ユーザデータを格納するユーザ領域３Ｃとが確保されている。ＮＡＮＤ型フラッシュメモリ３の回路構成については後述する。
【００１７】
ＳＳＤコントローラ２は、ＳＳＤ１の各種動作を制御する。ＳＳＤコントローラ２は、作業領域としてＲＡＭ（ＤＲＡＭやＳＲＡＭなどの揮発性ＲＡＭ、又はＭＲＡＭ、ＦｅＲＡＭなどの不揮発性ＲＡＭ）を備えている。ＳＳＤコントローラ２は、電源線７ｂから電源を受けると、ＦＷ領域３Ａからファームウェアを読み出し、以後、読み出したファームウェアに基づいて処理を行う。
【００１８】
図２は、ＮＡＮＤ型フラッシュメモリ３の構成を示すブロック図である。ＮＡＮＤ型フラッシュメモリ３は、１つ以上のＮＡＮＤメモリチップ２０を備えている。図３は、ＮＡＮＤメモリチップ２０の構成を示すブロック図である。
【００１９】
メモリセルアレイ２２は、データを電気的に書き換え可能なメモリセルがマトリクス状に配置されて構成されている。メモリセルアレイ２２には、複数のビット線、複数のワード線、及び共通ソース線が配設されている。ビット線とワード線との交差領域には、メモリセルが配置されている。
【００２０】
ロウデコーダとしてのワード線制御回路２５は、複数のワード線に接続され、データの読み出し、書き込み、及び消去時に、ワード線の選択及び駆動を行う。ビット線制御回路２３は、複数のビット線に接続され、データの読み出し、書き込み、及び消去時に、ビット線の電圧を制御する。また、ビット線制御回路２３は、データの読み出し時にビット線のデータを検知し、データの書き込み時に書き込みデータに応じた電圧をビット線に印加する。カラムデコーダ２４は、アドレスに応じて、ビット線を選択するためのカラム選択信号を生成し、このカラム選択信号をビット線制御回路２３に送る。
【００２１】
メモリセルアレイ２２から読み出された読み出しデータは、ビット線制御回路２３、データ入出力バッファ２９を介してデータ入出力端子２８から外部へ出力される。また、外部からデータ入出力端子２８に入力された書き込みデータは、データ入出力バッファ２９を介してビット線制御回路２３に入力される。
【００２２】
メモリセルアレイ２２、ビット線制御回路２３、カラムデコーダ２４、データ入出力バッファ２９、及びワード線制御回路２５は、制御回路２６に接続されている。制御回路２６は、外部から制御信号入力端子２７に入力される制御信号に基づいて、メモリセルアレイ２２、ビット線制御回路２３、カラムデコーダ２４、データ入出力バッファ２９、及びワード線制御回路２５を制御するための制御信号及び制御電圧を発生させる。ＮＡＮＤメモリチップ２０のうち、メモリセルアレイ２２以外の部分を纏めてメモリセルアレイ制御部（ＮＡＮＤコントローラ）２１と呼ぶ。
【００２３】
図４は、メモリセルアレイ２２の構成を示すブロック図である。メモリセルアレイ２２は、１つ又は複数のプレーン（またはDistrict）を備えている。図４では、メモリセルアレイ２２が２つのプレーン（プレーン０及びプレーン１）を備える場合を例示している。各プレーンは、複数のブロックＢＬＫを備えている。各ブロックＢＬＫは、複数のメモリセルにより構成され、このブロックＢＬＫを単位としてデータが消去される。
【００２４】
図５は、メモリセルアレイ２２に含まれる１個のプレーンの構成を示す回路図である。プレーンに含まれる各ブロックＢＬＫは、複数のＮＡＮＤユニットを備えている。各ＮＡＮＤユニットは、直列接続された複数のメモリセルＭＣからなるメモリストリングＭＳと、その両端に接続された選択ゲートＳ１、Ｓ２とにより構成されている。選択ゲートＳ１はビット線ＢＬに接続され、選択ゲートＳ２は共通ソース線ＳＲＣに接続されている。同一のロウに配置されたメモリセルＭＣの制御ゲートはワード線ＷＬ０〜ＷＬｍ−１のいずれかに共通接続されている。また、選択ゲートＳ１はセレクト線ＳＧＤに共通接続され、選択ゲートＳ２はセレクト線ＳＧＳに共通接続されている。
【００２５】
メモリセル（メモリセルトランジスタ）ＭＣは、半導体基板のＰ型ウェル上に形成された積層ゲート構造を備えたＭＯＳＦＥＴ（Metal Oxide Semiconductor Field Effect Transistor）から構成される。積層ゲート構造は、Ｐ型ウェル上にゲート絶縁膜を介在して形成された電荷蓄積層（浮遊ゲート電極）、及び浮遊ゲート電極上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。メモリセルは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。
【００２６】
本実施形態では、個々のメモリセルが上位ページ及び下位ページを使用しての2bit/cellの４値記憶方式である場合について説明するが、個々のメモリセルが単一ページ及を使用しての1bit/cellの２値記憶方式、または上位ページ、中位ページ及び下位ページを使用しての3bit/cellの８値記憶方式である場合、あるいは4bit/cell以上の多値記憶方式を採用する場合であっても本実施形態の本質は変わらない。また、メモリセルは浮遊ゲート電極を有する構造に限らず、ＭＯＮＯＳ（Metal-Oxide-Nitride-Oxide-Silicon）型など、電荷蓄積層としての窒化界面に電子をトラップさせることで閾値電圧を変化させる構造であってもよい。ＭＯＮＯＳ型のメモリセルについても同様に、１ビットを記憶するように構成されていてもよいし、多値を記憶するように構成されていてもよい。また、特開２０１０−１６１１９９や特開２０１１−２９５８６に記述されるような３次元的にメモリセルが配置された不揮発性半導体メモリであってもよい。
【００２７】
１つのワード線に接続された複数のメモリセルは、１物理セクタを構成する。この物理セクタ毎にデータが書き込まれ、またデータが読み出される。なお、物理セクタは、ホスト装置が管理しているＬＢＡ（Logical Block Addressing）の論理セクタと関係なく定義可能であり、物理セクタのサイズは、論理セクタのサイズと同じであってもよいし、違っていてもよい。本実施形態の2bit/cell書き込み方式（４値）の場合、１物理セクタには２ページ分のデータが記憶される。また、1bit/cell書き込み方式（２値）の場合、１物理セクタには１ページ分のデータが記憶され、3bit/cell書き込み方式（８値）の場合、１物理セクタには３ページ分のデータが記憶される。
【００２８】
読み出し動作、ベリファイ動作及びプログラム動作時において、ＳＳＤコントローラ２から受信した物理アドレスに応じて、１本のワード線が選択され、１物理セクタが選択される。この物理セクタ内のページの切り替えは、物理アドレスによって行われる。なお、本実施形態では、書き込みをプログラムと表現する場合もあるが、書き込みとプログラムとは同意である。2bit/cell書き込み方式の場合、ＳＳＤコントローラ２は、物理セクタには上位ページ（Upper Page）及び下位ページ（Lower Page）の２ページを割り当てられていると取り扱い、それら全ページに対して物理アドレスが割り当てられている。2bit/cell書き込み方式の場合、１つのメモリセルにおける閾値電圧が、４通りの分布を持ち得るように構成されている。
【００２９】
図６は、２ビットデータ（データ“１１”、“０１”、“１０”、“００”）とメモリセルの閾値電圧分布との関係を示す図である。ＶＡ１は、下位ページのみ書き込み済みで上位ページが未書き込みの物理セクタについて、２つのデータを読み出す場合に選択ワード線に印加される電圧であり、ＶＡ１Ｖは、閾値電圧分布Ａ１への書き込みを行う場合において、書き込みが完了したかどうかを確認するために選択ワード線に印加されるベリファイ電圧である。
【００３０】
ＶＡ２、ＶＢ２、ＶＣ２は、下位ページ及び上位ページが書き込み済みの物理セクタについて、４つのデータを読み出す場合に選択ワード線に印加される電圧であり、ＶＡ２Ｖ、ＶＢ２Ｖ、ＶＣ２Ｖは、各閾値電圧分布への書き込みを行う場合において、書き込みが完了したかどうかを確認するために選択ワード線に印加されるベリファイ電圧である。Ｖｒｅａｄ１、Ｖｒｅａｄ２は、データの読み出しを行う場合に、非選択メモリセルに印加され、その保持データに拘わらず当該非選択メモリセルを導通させる読み出し電圧である。
【００３１】
Ｖｅｖ、Ｖｅｖ１、Ｖｅｖ２は、メモリセルのデータを消去する場合において、その消去が完了したか否かを確認するためにメモリセルに印加される消去ベリファイ電圧であり、負の値を有する。その大きさは、隣接メモリセルの干渉の影響を考慮して決定される。
【００３２】
上述の各電圧の大小関係は、以下の通りである。  
Ｖｅｖ１＜ＶＡ１＜ＶＡ１Ｖ＜Ｖｒｅａｄ１
Ｖｅｖ２＜ＶＡ２＜ＶＡ２Ｖ＜ＶＢ２＜ＶＢ２Ｖ＜ＶＣ２＜ＶＣ２Ｖ＜Ｖｒｅａｄ２
なお、消去ベリファイ電圧Ｖｅｖ、Ｖｅｖ１、Ｖｅｖ２は、前述の通り負の値であるが、実際に消去ベリファイ動作においてメモリセルの制御ゲートに印加される電圧は、負の値ではなく、ゼロ又は正の値である。すなわち、実際の消去ベリファイ動作においては、メモリセルのバックゲートに正の電圧を印加し、メモリセルの制御ゲートには、ゼロ又はバックゲート電圧より小さい正の電圧を印加している。換言すれば、消去ベリファイ電圧Ｖｅｖ、Ｖｅｖ１、Ｖｅｖ２は、等価的に負の値を有する電圧である。
【００３３】
ブロック消去後のメモリセルの閾値電圧分布ＥＲは、その上限値も負の値であり、データ“１１”が割り当てられる。下位ページ及び上位ページ書き込み状態のデータ“０１”、“１０”、“００”のメモリセルは、それぞれ正の閾値電圧分布Ａ２、Ｂ２、Ｃ２を有し（Ａ２、Ｂ２、Ｃ２の下限値も正の値である）、データ“０１”の閾値電圧分布Ａ２が最も電圧値が低く、データ“００”の閾値電圧分布Ｃ２が最も電圧値が高く、各種閾値電圧分布の電圧値はＡ２＜Ｂ２＜Ｃ２の関係を有する。下位ページ書き込みかつ上位ページ未書き込み状態のデータ“１０”のメモリセルは、正の閾値電圧分布Ａ１を有する（Ａ１の下限値も正の値である）。
【００３４】
なお、図６に示す閾値電圧分布はあくまでも一例であって、本実施形態はこれに限定されるものではない。例えば、図６では、閾値電圧分布Ａ２，Ｂ２，Ｃ２は全て正の閾値電圧分布であるとして説明したが、閾値電圧分布Ａ２は負の電圧の分布であり、閾値電圧分布Ｂ２、Ｃ２が正の電圧の分布であるような場合も、本実施形態の範囲に含まれる。また、閾値電圧分布ＥＲ１、ＥＲ２は正の値であったとしても、本実施形態はこれに限定されるものではない。また、本実施形態では、ＥＲ２、Ａ２、Ｂ２、Ｃ２のデータの対応関係がそれぞれ“１１”、“０１”、“１０”、“００”であるとしているが、例えばそれぞれ“１１”、“０１” 、“００”、“１０”であるような他の対応関係であってもよい。
【００３５】
１つのメモリセルの２ビットデータは、下位ページデータと上位ページデータとからなり、下位ページデータと上位ページデータとは別々の書き込み動作、つまり、２回の書き込み動作により、メモリセルに書き込まれる。データを“ＸＹ”と標記するとき、“Ｘ”は上位ページデータを、“Ｙ”は下位ページデータを表している。
【００３６】
まず、下位ページデータの書き込みを、図６の１段目〜２段目を参照して説明する。下位ページデータの書き込みは、チップの外部から入力される書き込みデータ（下位ページデータ）に基づいて行われる。全てのメモリセルは、消去状態の閾値電圧分布ＥＲを有し、データ“１１”を記憶しているものとする。下位ページデータの書き込みを行うと、メモリセルの閾値電圧分布ＥＲは、下位ページデータの値（“１”、或いは“０”）に応じて、２つの閾値電圧分布（ＥＲ１、Ａ１）に分けられる。下位ページデータの値が“１”の場合には、消去状態の閾値電圧分布ＥＲを維持するのでＥＲ１＝ＥＲであるが、ＥＲ１＞ＥＲであってもよい。
【００３７】
一方、下位ページデータの値が“０”の場合には、メモリセルのトンネル酸化膜に高電界を印加し、浮遊ゲート電極に電子を注入して、メモリセルの閾値電圧Ｖｔｈを所定量だけ上昇させる。具体的には、ベリファイ電圧ＶＡ１Ｖを設定し、このベリファイ電圧ＶＡ１Ｖ以上の閾値電圧となるまで書き込み動作が繰り返される。その結果、メモリセルは、書き込み状態（データ“１０”）に変化する。書き込み動作を所定回繰り返しても所定の閾値電圧に到達しなかった場合（または所定の閾値電圧に到達しないメモリセル数が所定値以上の場合）、当該物理ページに対する書き込みは「書き込みエラー」となる。
【００３８】
次に、上位ページデータの書き込みを、図６の２段目〜３段目を参照して説明する。上位ページデータの書き込みは、チップの外部から入力される書き込みデータ（上位ページデータ）と、メモリセルに既に書き込まれている下位ページデータとに基づいて行われる。
【００３９】
すなわち、上位ページデータが“１”の場合には、メモリセルのトンネル酸化膜に高電界がかからないようにし、メモリセルの閾値電圧Ｖｔｈの上昇を防止する。その結果、データ“１１”（消去状態の閾値電圧分布ＥＲ１）のメモリセルは、データ“１１”をそのまま維持し（閾値電圧分布ＥＲ２）、データ“１０”（閾値電圧分布Ａ１）のメモリセルは、データ“１０”をそのまま維持する（閾値電圧分布Ｂ２）。ただし、各分布間の電圧マージンを確保するという点で、上述のベリファイ電圧ＶＡ１Ｖよりも大きい正のベリファイ電圧ＶＢ２Ｖを用いて閾値電圧分布の下限値を調整し、これにより閾値電圧分布の幅を狭めた閾値電圧分布Ｂ２を形成するのが望ましい。下限値調整を所定回繰り返しても所定の閾値電圧に到達しなかった場合（または所定の閾値電圧に到達しないメモリセル数が所定値以上の場合）、当該物理ページに対する書き込みは「書き込みエラー」となる。
【００４０】
一方、上位ページデータの値が“０”の場合には、メモリセルのトンネル酸化膜に高電界を印加し、浮遊ゲート電極に電子を注入して、メモリセルの閾値電圧Ｖｔｈを所定量だけ上昇させる。具体的には、ベリファイ電圧ＶＡ２Ｖ、ＶＣ２Ｖを設定し、このベリファイ電圧ＶＡ２Ｖ、ＶＣ２Ｖ以上の閾値電圧となるまで書き込み動作が繰り返される。その結果、データ“１１”（消去状態の閾値電圧分布ＥＲ１）のメモリセルは、閾値電圧分布Ａ２のデータ“０１”に変化し、データ“１０”（閾値電圧分布Ａ１）のメモリセルは、閾値電圧分布Ｃ２のデータ“００”に変化する。書き込み動作を所定回繰り返しても所定の閾値電圧に到達しなかった場合（または所定の閾値電圧に到達しないメモリセル数が所定値以上の場合）、当該物理ページに対する書き込みは「書き込みエラー」となる。
【００４１】
消去動作においては、消去ベリファイ電圧Ｖｅｖを設定し、この消去ベリファイ電圧Ｖｅｖ以下の閾値電圧となるまで消去動作が繰り返される。その結果、メモリセルは、消去状態（データ“１１”）に変化する。消去動作を所定回繰り返しても所定の閾値電圧以下にならなかった場合（または所定の閾値電圧以下にならないメモリセル数が所定値以上の場合）、当該物理ページに対する消去は「消去エラー」となる。
【００４２】
以上が、一般的な４値記憶方式におけるデータ書き込み方式の一例である。３ビット以上の多値記憶方式においても、上記の動作に更に上位のページデータに応じ、閾値電圧分布を８通り以上に分割する動作が加わるのみであるので、基本的な動作は同様である。
【００４３】
［２．ＳＳＤ１の動作］
次に、ＳＳＤ１の各種動作について説明する。まず、ＳＳＤ１の起動シーケンスについて説明する。
【００４４】
ＮＡＮＤ型フラッシュメモリ３のＦＷ領域３ａに格納されたファームウェアは、少なくとも通常モードと自走モードとの２つのモードを実行可能なファームウェアを備えている。通常モードとは、ユーザやホスト装置１０の指示に応じた動作を実行するモードであり、通常の読み出し動作、書き込み動作、消去動作が含まれる。自走モードとは、ＳＳＤ１の外部からの操作によらず、ＳＳＤ１が自動で特定の動作を実行するモードであり、この特定の動作が自走モード用のファームウェアによって規定される。
【００４５】
図７は、ＳＳＤ１の起動シーケンスを示すフローチャートである。まず、外部から電源線１２経由でＳＳＤ１に外部電圧が供給される。続いて、電源供給部５は、電源線７ａ〜７ｃに各種電圧を供給する（ステップＳ１００）。電源線７ａが規定電圧に到達すると（ステップＳ１０１）、ＳＳＤコントローラ２が起動する（ステップＳ１０２）。
【００４６】
続いて、ＳＳＤコントローラ２は、ＮＡＮＤ型フラッシュメモリ３のＦＷ領域３ａに格納されたファームウェアを読み出す（ステップＳ１０３）。そして、ＳＳＤコントローラ２は、ＦＷ領域３ａが通常モード状態である場合（ステップＳ１０４）、以後、ファームウェアに基づいて通常モードを実行する。また、ＳＳＤコントローラ２は、ＦＷ領域３ａが自走モード状態である場合（ステップＳ１０５）、以後、ファームウェアに基づいて自走モードを実行する。また、ＳＳＤコントローラ２は、ＦＷ領域３ａが通常モード及び自走モード以外のその他のモード状態である場合、以後ファームウェアに応じた他のモードを実行する。
【００４７】
ＦＷ領域３Ａに格納されたファームウェアは、例えば、非特許文献１に記載のINCITS ACS-2準拠のコマンドである92h DOWNLOAD MICROCODEや93h DOWNLOAD MICROCODE DMAによって書き換え可能である。あるいはINCITS ACS-2準拠のSCTコマンドやその他ベンダー独自のコマンドによって書き換えられてもよい。あるいは、ＦＷ領域３ａに格納されたファームウェアは、通常モードと自走モードとで共通のファームウェアが用いられ、INCITS ACS-2準拠のSCTコマンドやその他ベンダー独自のコマンドによってファームウェア内部の不揮発に保持されているトリガ（フラグ）が書き換えられることで、通常モードと自走モードとで切り替えられるようにしてもよい。
【００４８】
次に、本実施形態の検査方法（スクリーニング動作）について説明する。ＳＳＤコントローラ２は、自走モードが開始されると、ＮＡＮＤ型フラッシュメモリ３のスクリーニング動作を実行する（ＮＡＮＤスクリーニング）。ＮＡＮＤスクリーニングとは、ブロックの消去、プログラム、及び読み出しを繰り返しながらＮＡＮＤ型フラッシュメモリ３をエージングさせて、初期不良（infant mortality failure）になりうるブロックの信頼性を加速させる。そして、それらブロックの消去エラー、プログラムエラー、及びＥＣＣ（Error Checking and Correcting）訂正不能エラー（読み出しエラー）となったブロックをバッドブロック化する（バッドブロック管理テーブルに登録する）ことで、将来不良原因となりうるブロックがユーザに使用されることを予め防止することである。
【００４９】
図８は、ＳＳＤ１のスクリーニング動作を示すフローチャートである。本実施形態のスクリーニング動作は、ストレス工程と、スクリーニング工程とを含む。すなわち、スクリーニングの効率を向上させるために、スクリーニング工程の前にストレス工程を導入している。
【００５０】
自走モードが開始されると、ＳＳＤコントローラ２は、ストレス工程に含まれるプログラム動作時にメモリセルに印加する電圧を増加させる（ステップＳ２００）。すなわち、ＳＳＤコントローラ２は、ストレス工程に含まれるプログラム動作時に選択ワード線に印加されるプログラム電圧を、通常モードのプログラム動作時に使用する通常のプログラム電圧よりも増加させる。通常モードのプログラム動作とは、ホスト装置１０からのプログラム命令に応じてＳＳＤコントローラ２がＮＡＮＤ型フラッシュメモリ３に行うプログラムである。続いて、ＳＳＤコントローラ２は、ストレス工程が済んだブロックを管理するリスト（処理済みリスト）をクリアする（ステップＳ２０１）。この処理済みリストは、ＳＳＤコントローラ２内のＲＡＭに格納されている。
【００５１】
続いて、ＳＳＤコントローラ２は、ＮＡＮＤ型フラッシュメモリ３のユーザ領域３Ｃから１つのブロックを選択する（ステップＳ２０２）。ブロック選択は、例えば、（１）自走モード開始後にブロックアドレス＝０のブロックを選択し、その後、“ブロックアドレス＋１”を繰り返すことでシーケンシャルにブロックを選択してもよいし、（２）ブロックアドレスがランダムに並んだブロックアドレスリストを作成し、自走モード開始後にブロックアドレスリスト先頭のブロックを選択し、その後“ブロックアドレスリスト行数＋１”を繰り返すことでシーケンシャルにブロックアドレスリストを選択していくことでランダムにブロックを選択してもよい。
【００５２】
続いて、ＳＳＤコントローラ２は、選択ブロックのデータを消去する（ステップＳ２０３）。続いて、ＳＳＤコントローラ２は、ステップＳ２００で増加させたプログラム電圧を用いて、選択ブロックにデータをプログラムする（ステップＳ２０４）。この時のデータは、ＳＳＤコントローラ２によって生成される。このプログラム動作では、メモリセルのワード線及びソース／ドレイン間や、ワード線及び浮遊ゲート間にかかる電圧が通常モードに比べて増加している。これにより、たとえばワード線及びソース／ドレイン間や、ワード線及び浮遊ゲート間の絶縁が十分でないようなメモリセルを大電圧により意図的に破壊することにより、選択ブロックの信頼性加速が行われる。また、たとえば選択ワード線及び非選択ワード線間にかかる電圧を増大させることにもなり、絶縁が十分でないワード線間の層間絶縁膜を大電圧により意図的に破壊することにより、選択ブロックの信頼性加速が行われる。
【００５３】
ステップＳ２０３の消去時に消去エラーが発生した場合、選択ブロックをバッドブロックとしてバッドブロック管理テーブルに追加しても良い。また、ステップＳ２０４のプログラム時にプログラムエラーが発生した場合、選択ブロックをバッドブロックとしてバッドブロック管理テーブルに追加しても良い。
【００５４】
また、メモリセルへのストレス印加を均一に行うために、ブロックにプログラムされるデータは乱数であることが望ましく、さらに望ましくは、ステップごと或いはループごとにＳＳＤコントローラ２により生成される乱数であることが望ましい。プログラムは、選択ブロック内の全ページ（下位ページ及び上位ページの両方を含む）に対して行われる。
【００５５】
続いて、ＳＳＤコントローラ２は、選択ブロックを処理済みリストに追加する（ステップＳ２０５）。ステップＳ２０１で処理済みリストのかわりに、ＲＡＭに格納されている未処理リストを初期化するようにし、ステップＳ２０５で選択ブロックを未処理リストから削除するようにしてもよい。続いて、ＳＳＤコントローラ２は、ＮＡＮＤ型フラッシュメモリ３のユーザ領域３Ｃの全ブロックを選択したか否かを判定する（ステップＳ２０６）。ステップＳ２０６において全ブロックを選択していない場合、ステップＳ２０２に戻って、次のブロックが選択される。
【００５６】
ステップＳ２０６において全ブロックを選択した場合、ＳＳＤコントローラ２は、プログラム動作時に選択ワード線に印加されるプログラム電圧を元に戻す、すなわち、通常モード時のプログラム電圧に戻す（ステップＳ２０７）。ここまでで、ストレス工程が終了する。なお、メモリセルに与えるストレスをより増大させるという観点では、ステップＳ２０１〜Ｓ２０６またはステップＳ２００〜Ｓ２０７を複数回繰り返すことが望ましい。
【００５７】
続いて、スクリーニング工程に移行する。ＳＳＤコントローラ２は、スクリーニング工程が済んだブロックを管理するリスト（処理済みリスト）をクリアする（ステップＳ３００）。この処理済みリストは、ＳＳＤコントローラ２内のＲＡＭに格納されている。続いて、ＳＳＤコントローラ２は、ＮＡＮＤ型フラッシュメモリ３のユーザ領域３Ｃから１つのブロックを選択する（ステップＳ３０１）。ブロック選択は、ストレス工程と同じである。
【００５８】
続いて、ＳＳＤコントローラ２は、選択ブロックに対して、プレリード（Pre-read）と呼ばれる消去前読み出しを行う（ステップＳ３０２）。プレリードＳ３０２を行わずに消去Ｓ３０３に移行してもよいが、不良の検出度を高めるためには、プレリードＳ３０２が行われることが望ましい。このステップＳ３０２は、あるブロックにアクセス中に他のブロックのデータが破壊されるような不良を検出するためのものである。このような不良としては、例えば、メモリセルアレイ２２の周辺回路の不良や配線不良などが挙げられる。
【００５９】
例えば１ループ目あるループで処理済みのブロックに、同一ループまたはその後のループにおける別のブロックへのアクセスによってデータが誤って書き込まれてしまうことがある。プレリードが無ければ、この誤書き込みされたブロックについてのその後のループ での処理はデータ消去から開始するので、このような誤書き込みを検出できない。一方、プレリードがあれば、そのような誤書き込みされたブロックを検出できる。
【００６０】
あるいは、例えばあるループで処理済みのブロックが、同一ループまたはその後のループにおける別のブロックへのアクセスによってデータが誤って消去されてしまうことがある。プレリードが無ければ、この誤消去されたブロックについてのその後のループでの処理はデータ消去から開始するので、このような誤書き込みを検出できない。一方、プレリードがあれば、そのような誤消去されたブロックを検出できる。 
あるいは、例えばあるブロックにデータを書き込んだ後にデータ消去されるまで一定の時間間隔を空け、消去前にプレリードによりデータを再度読みだすことにより、データリテンションの悪いブロックを不良品としてスクリーニングすることができる。
【００６１】
プレリードにおいて、ＳＳＤコントローラ２は、選択されているブロック中のあるページからデータを順次読み出し、読み出されたデータに対してＥＣＣを用いて誤り訂正を行う。この一連の処理を全ページに対して行う。例えば選択されているブロック中の各ページのデータが誤り訂正不可能の場合、または誤り訂正ビット数が所定数Ｘ以上であった場合、当該ブロックは不良品と判断され、バッドブロックに追加される。
【００６２】
データが誤り訂正不可能か、または誤り訂正ビット数が所定数Ｘ以上のブロックがあった場合、ＳＳＤ１を不良品とみなしてスクリーニング処理を即座に終了してもよい。その場合、ループを終了してスクリーニングを即座に終了し、電源線１２内のたとえばDAS/DSS信号線を介してLEDを高速点滅させることにより、スクリーニングが異常終了して記憶装置１が不良品であることを外部に通知するようにすることが望ましい。
【００６３】
続いて、ＳＳＤコントローラ２は、選択ブロックのデータを消去する（ステップＳ３０３）。続いて、ＳＳＤコントローラ２は、選択ブロックにデータをプログラムする（ステップＳ３０４）。ステップＳ３０４のプログラムでは、本体データと誤り訂正用冗長ビットとの両方を選択ブロックにプログラムする。また、メモリセルのエージングとスクリーニングとを均一に行うために、本体データは乱数であることが望ましく、さらに望ましくは、ステップごと或いはループごとにＳＳＤコントローラ２により生成される乱数であることが望ましい。プログラムは、選択ブロック内の全ページ（下位ページ及び上位ページの両方を含む）に対して行われる。なお、ステップＳ３０３において消去エラーとなったブロック、及びステップＳ３０４においてプログラムエラーとなったブロックは、バッドブロック化される。
【００６４】
続いて、ＳＳＤコントローラ２は、選択ブロックのデータを読み出す（ステップＳ３０５）。ステップＳ３０２及びＳ３０５の読み出しにおいては、本体データが誤り訂正用冗長ビットを用いて誤り訂正される。そして、誤り訂正ビット数が所定数を超えた場合、選択ブロックは、読み出しエラーとなり、バッドブロック化される。なお、信頼性の悪いブロックをより確実にバッドブロック化するという観点では読み出しエラーが発生したブロックをバッドブロック化することが望ましいが、消去エラーとプログラムエラーが発生したブロックのみバッドブロック化し、読み出しエラーが発生したブロックはバッドブロック化しないようにしてもよい。
【００６５】
図９は、ステップＳ３０２及びＳ３０５の読み出し動作を示すフローチャートである。ＳＳＤコントローラ２は、選択ブロックからデータ（本体データ及び誤り訂正用冗長ビット）を読み出すとともに、誤り訂正用冗長ビットを用いて誤り訂正を行う（ステップＳ４００）。続いて、ＳＳＤコントローラ２は、選択ブロック内の誤り訂正ビット数が所定数Ｘを超えたか否か、または誤り訂正に失敗したか否かを判定する（ステップＳ４０１）。
【００６６】
ステップＳ４０１において誤り訂正ビット数が所定数Ｘを超えていない場合、または誤り訂正に成功した場合、選択ブロックの誤りビット数が少ないため、読み出し処理は終了する。一方、ステップＳ４０１において誤り訂正ビット数が所定数Ｘを超えた場合、または誤り訂正に失敗した場合、ＳＳＤコントローラ２は、選択ブロックの誤りビット数が多いため、選択ブロックをバッドブロック化する（ステップＳ４０２）。すなわち、ＳＳＤコントローラ２は、管理情報領域３Ｂのバッドブロック管理テーブル３Ｄに選択ブロックを追加する。これにより、以後、バッドブロック化されたブロックは、データの書き込みに使用されない。
【００６７】
なお、誤り訂正ビット数が所定数Ｘ以上、または誤り訂正不可能なブロック（バッドブロック）があった場合、ＳＳＤ１を不良品とみなしてもよい。その場合、たとえば、誤り訂正ビット数が所定数Ｘ以上であった場合、または誤り訂正不可能なブロックがあった場合、スクリーニングを即座に終了し、電源線１２内のたとえばDAS/DSS信号線を介してＬＥＤを高速点滅させることにより、スクリーニングが異常終了してＳＳＤ１が不良品であることを外部に通知するようにすることが望ましい。
【００６８】
また、誤り訂正ビット数が所定数Ｘ以上、または誤り訂正不可能なブロック（バッドブロック）が所定数以上あった場合、ＳＳＤ１を不良品とみなしてもよい。また、個々のＮＡＮＤメモリチップ２０におけるバッドブロック数を管理し、何れか１つのＮＡＮＤメモリチップ２０において所定数以上のバッドブロックがあった場合、ＳＳＤ１を不良品とみなしてもよい。また、所定数以上のＮＡＮＤメモリチップ２０において所定数以上のバッドブロックがあった場合にＳＳＤ１を不良品とみなしてもよいし、全てのＮＡＮＤメモリチップ２０において所定数以上のバッドブロックがあった場合にＳＳＤ１を不良品とみなしてもよい。
【００６９】
図８に戻り、ＳＳＤコントローラ２は、選択ブロックを処理済みリストに追加する（ステップＳ３０６）。ステップＳ３００で処理済みリストのかわりに、ＲＡＭに格納されている未処理リストを初期化するようにし、ステップＳ３０６で選択ブロックを未処理リストから削除するようにしてもよい。続いて、ＳＳＤコントローラ２は、ＮＡＮＤ型フラッシュメモリ３のユーザ領域３Ｃの全ブロックを選択したか否かを判定する（ステップＳ３０７）。ステップＳ３０７において全ブロックを選択していない場合、ステップＳ３０１に戻って、次のブロックが選択される。
【００７０】
ステップＳ３０７において全ブロックを選択した場合、ＳＳＤコントローラ２は、所定時間が経過したか否かを判定する（ステップＳ３０８）。または、ステップＳ３０８では、所定ループ回数に到達したか否かを判定するようにしてもよい。ステップＳ３０８において所定時間が経過していない場合（又は所定ループ回数に到達していない場合）、ステップＳ３００〜Ｓ３０７が繰り返される。一方、ステップＳ３０８において所定時間が経過した場合（又は所定ループ回数に到達した場合）、スクリーニング動作が終了する。
【００７１】
このように、ストレス工程において信頼性加速を行った後に、スクリーニング工程を行うことにより、より効率的に信頼性の悪いブロックをスクリーニングすることができる。そして、スクリーニング動作時に消去エラー・プログラムエラー・ＥＣＣ訂正不能エラーが発生したブロックをバッドブロック化することで、信頼性の悪いブロックがユーザによって利用されることを防止することができる。
【００７２】
なお、ＮＡＮＤスクリーニング中はホスト装置１０が必要でないため、ＮＡＮＤスクリーニング装置のコスト低減の観点では、ＮＡＮＤスクリーニング中には図１０のように電源装置４０のみがＳＳＤ１に接続されることが望ましい。具体的には、ＳＳＤ１は、電源線１２を介して電源装置４０に接続される。インターフェース１１は、外部に接続されていない。このように、ＳＳＤ１用の外部電源が用意できる電源装置４０のみを準備するだけで、ＮＡＮＤスクリーニングを実行することができる。
【００７３】
また、図１１に示すように、複数のＳＳＤ１を同一の設備でスクリーニングすることが、コストやスループットの観点から好ましい。複数のＳＳＤ１は、電源線１２を介して電源装置４０に接続される。複数のＳＳＤ１及び電源装置４０は、恒温槽４１に収納される。恒温槽４１は、内部を所定の温度に設定可能である。このような装置を用いて複数のＳＳＤ１を一度にスクリーニングすることで、スクリーニング時間を低減できるとともに、スクリーニングコストを低減できる。
【００７４】
［効果］
以上詳述したように第１の実施形態では、ＳＳＤコントローラ２は、電源供給部５から電圧が供給された場合に、ＮＡＮＤ型フラッシュメモリ３のＦＷ領域３Ａからファームウェアを読み出し、ファームウェアに基づいて通常モード又は自走モードを実行する。ファームウェアが通常モードである場合、ＳＳＤコントローラ２は、ホスト装置１０の命令に応じて書き込み動作、読み出し動作及び消去動作を行う。一方、ファームウェアが自走モードである場合、ＳＳＤコントローラ２は、スクリーニング動作を実行する。すなわち、ＳＳＤコントローラ２は、まず、通常モードよりも高いセル印加電圧でユーザ領域３Ｃの書き込みを行うことでユーザ領域３Ｃにストレスを印加する。続いて、ＳＳＤコントローラ２は、通常モードの電圧でユーザ領域３Ｃのブロックごとに消去、書き込み及び読み出しを繰り返し、かつ読み出し時に誤りビットを訂正する。そして、消去エラーが発生した場合、プログラムエラーが発生した場合、および選択ブロックの誤り訂正ビット数が所定値を超えた場合に、当該選択ブロックをバッドブロック化するようにしている。
【００７５】
従って第１の実施形態によれば、スクリーニング動作においてユーザ領域３Ｃのブロックに通常動作時よりも大きなストレスを印加することができる。これにより、スクリーニング動作時に、信頼性の低いブロックを不良にすることができる。そして、プログラム不良、消去不良、及び読み出し不良（ＥＣＣ訂正不能不良）が発生したブロックをバッドブロック化することで、信頼性の低いブロックがユーザに使用されるのを防ぐことができる。この結果、製品出荷後の信頼性を向上させることができ、また、製品出荷後の故障率を低減することができる。
【００７６】
また、ストレス工程において書き込み動作を行い、この書き込み動作の際に書き込み電圧を通常モードの電圧に比べて高くするようにしている。これにより、ＳＳＤ１を短時間でエージングさせることができるため、スクリーニングにかかる検査時間を短縮させることができる。
【００７７】
また、スクリーニング工程において、プレリード（Pre-read）と呼ばれる消去前読み出しを行い、このプレリードにおいてＥＣＣ訂正不能不良が発生したブロックをバッドブロック化するようにしている。これにより、あるブロックにアクセス中に他のブロックのデータが破壊されるような不良を検出することができる。
【００７８】
［第２の実施形態］
第２の実施形態は、より大きなストレスをメモリセルに印加するために、メモリセルのデータを消去する際に使用する消去電圧を通常モード時に比べて増加させる。そして、スクリーニング動作に含まれるストレス工程において、増加させた消去電圧を用いて、メモリセルの消去動作を行うようにしている。図１２は、第２の実施形態に係るＳＳＤ１のスクリーニング動作を示すフローチャートである。
【００７９】
自走モードが開始されると、ＳＳＤコントローラ２は、ストレス工程に含まれる消去動作時にメモリセルに印加する電圧を増加させる（ステップＳ５００）。すなわち、ＳＳＤコントローラ２は、ストレス工程に含まれる消去動作時にメモリセルが形成されるボディ（Ｐ型ウェル）に印加する消去電圧を、通常モードの消去動作時に使用する消去電圧よりも増加させる。続いて、図８のストレス工程と同様に、ＳＳＤコントローラ２は、処理済みリストをクリアまたは未処理リストを初期化し（ステップＳ５０１）、続いて、ブロック選択を行う（ステップＳ５０２）。
【００８０】
続いて、ＳＳＤコントローラ２は、ステップＳ５００で増加させた消去電圧を用いて、選択ブロックのデータを消去する（ステップＳ５０３）。この消去動作では、メモリセルのワード線及びボディ間にかかる電圧が通常モードに比べて増加している。これにより、ワード線及びボディ間の絶縁が十分でないようなメモリセルを大電圧により意図的に破壊することにより、選択ブロックの信頼性加速が行われる。
【００８１】
続いて、ＳＳＤコントローラ２は、選択ブロックにデータをプログラムする（ステップＳ５０４）。続いて、ＳＳＤコントローラ２は、選択ブロックを処理済みリストに追加または未処理リストから消去する（ステップＳ５０５）。続いて、ＳＳＤコントローラ２は、ユーザ領域３Ｃの全ブロックを選択するまで、ステップＳ５０２〜Ｓ５０４を繰り返す（ステップＳ５０６）。なお、本実施例においては、増加させた消去電圧を用いてストレスを与えるのが目的であるため、ステップＳ５０４のプログラムは行わなくても良い。
【００８２】
ステップＳ５０６において全ブロックを選択した場合、ＳＳＤコントローラ２は、消去動作時にボディに印加される消去電圧を元に戻す、すなわち、通常モード時の消去電圧に戻す（ステップＳ５０７）。ここまでで、ストレス工程が終了する。その後、図８と同様に、スクリーニング工程が実行される。
【００８３】
ステップＳ５０３の消去時に消去エラーが発生した場合、選択ブロックをバッドブロックとしてバッドブロック管理テーブルに追加しても良い。また、ステップＳ５０４のプログラム時にプログラムエラーが発生した場合、選択ブロックをバッドブロックとしてバッドブロック管理テーブルに追加しても良い。
【００８４】
このように、ストレス工程において信頼性加速を行った後に、スクリーニング工程を行うことにより、より効率的に信頼性の低いブロックをスクリーニングすることができる。そして、スクリーニング動作時にＥＣＣ訂正不能エラーが発生したブロックをバッドブロック化することで、信頼性の低いブロックがユーザによって利用されることを防ぐことができる。
【００８５】
なお、第１の実施形態に第２の実施形態を組み合わせてもよい。図１３は、変形例に係るＳＳＤ１のスクリーニング動作を示すフローチャートである。
【００８６】
自走モードが開始されると、ＳＳＤコントローラ２は、プログラム動作時にメモリセルに印加する電圧を増加させるとともに、消去動作時にメモリセルに印加する電圧を増加させる（ステップＳ２００）。すなわち、ＳＳＤコントローラ２は、プログラム動作時に選択ワード線に印加されるプログラム電圧を、通常モードのプログラム動作時に使用するプログラム電圧よりも増加させる。さらに、ＳＳＤコントローラ２は、消去動作時にメモリセルが形成されるボディ（Ｐ型ウェル）に印加される消去電圧を、通常モードの消去動作時に使用する消去電圧よりも増加させる。
【００８７】
そして、ＳＳＤコントローラ２は、ステップＳ２００で増加させた消去電圧を用いて、選択ブロックのデータを消去し（ステップＳ２０３）、さらに、ステップＳ２００で増加させたプログラム電圧を用いて、選択ブロックにデータをプログラムする（ステップＳ２０４）。
【００８８】
これにより、より大きなストレスを選択ブロックに印加させることできるため、選択ブロックの信頼性加速が行われる。
【００８９】
［第３の実施形態］
第３の実施形態は、通常モードと自走モードとの切り替え方式の例について示している。図１４は、第３の実施形態に係る通常モードと自走モードとの切り替え動作を示す状態遷移図である。
【００９０】
通常モードと自走モードとの切り替え手段として、通常ファームウェア（通常ＦＷ）と自走ファームウェア（自走ＦＷ）との２種類のファームウェアを用意する。
【００９１】
ファームウェアの書き換えは、ＳＳＤ１がサポートするインターフェースにおいて定義されているコマンドを用いて行うことができる。例えば、上記のように、ASC-2準拠のDownload Microcodeコマンドが用いられる。通常モード用および自走モード用ファームウェアは、例えばインターネット接続されたサーバに保存されている。テスタ装置がインターネット接続を通じてこのサーバに通信可能に接続され、ファームウェアがインターネット接続を通じてテスタ装置にダウンロードされ、テスタ装置により、インターフェース１１を介して上記のコマンドを用いてファームウェアがＳＳＤ１のファームウェア領域３Ａに書き込まれる。
【００９２】
あるいは、通常モード用および自走モード用ファームウェアは、例えばDVD-ROMのような光学メディアやUSBメモリのような不揮発性記憶メディアに保存されていてもよい。テスタ装置がこれら記憶媒体に接続され、テスタ装置により、インターフェース１１を介して上記のコマンドを用いてファームウェアがＳＳＤ１のファームウェア領域３Ａに書き込まれる。
【００９３】
ステップＳ６００は、ＳＳＤ１が通常モードであり、かつＮＡＮＤ型フラッシュメモリ３のＦＷ領域３Ａに通常ＦＷが書き込まれている状態である。ステップＳ６００の状態では、ＳＳＤ１の電源をオフ（切）からオン（入）した場合、ＳＳＤ１は、ＦＷ領域３Ａに書き込まれた通常ファームウェアを実行して通常モードになる。
【００９４】
例えば検査工程時にテスタ装置がATAのDownload Microcodeコマンドを用いて自走ＦＷをＳＳＤ１に書き込むと、ＳＳＤ１は、ステップＳ６００からステップＳ６０１に遷移し、すなわち、ＳＳＤ１は、通常モードであり、かつＦＷ領域３Ａには自走ＦＷが書き込まれている。ステップＳ６０１の状態で、ＳＳＤ１の電源をオフからオンした場合、ＳＳＤ１は、ステップＳ６０１からステップＳ６０２に遷移し、ＳＳＤ１は、ＦＷ領域３Ａに書き込まれた自走ファームウェアを実行して自走モードになる。このステップＳ６０２の状態で、ＳＳＤ１は、前述したスクリーニング動作を実行することになる。また、ステップＳ６０２の状態でＳＳＤ１の電源をオフからオンした場合、ＳＳＤ１は、ＦＷ領域３Ａに書き込まれた自走ファームウェアを実行して自走モードになる。
【００９５】
スクリーニング終了後に、テスタ装置がDownload Microcodeコマンドを用いて通常ＦＷをＳＳＤ１に書き込むと、ＳＳＤ１は、ステップＳ６０２からステップＳ６０３に遷移し、すなわち、ＳＳＤ１は、自走モードであり、かつＦＷ領域３Ａには通常ＦＷが書き込まれている。ステップＳ６０３の状態で、ＳＳＤ１の電源をオフからオンした場合、ＳＳＤ１は、ステップＳ６０３からステップＳ６００に遷移し、ＦＷ領域３Ａに書き込まれた通常ファームウェアを実行して通常モードになる。
【００９６】
テスタ装置は、図１のホスト装置１０と同等の構成や記憶装置１との同等の接続携帯をとり、スクリーニングの前の前処理や、スクリーニング後のテスト工程のために使用される。スクリーニングの前には図１のように記憶装置１とテスタ装置１０とが電源線１２とインターフェース１１とで接続され、ファームウェア領域３Ａが書き換えられ（状態Ｓ６００から状態Ｓ６０１への遷移後）に記憶装置１とテスタ装置１０との間の電源線１２およびインターフェース１１とが切断され、記憶装置と電源装置４０とが電源線１２で接続されて状態Ｓ６０２に移行し、スクリーニングが開始され、スクリーニング終了後に記憶装置１と電源装置４０との間の電源線１２が切断され、記憶装置１とテスタ装置１０とが電源線１２とインターフェース１１とで接続され、ファームウェア領域３Ａが書き換えられ（状態Ｓ６０２から状態Ｓ６０３への遷移）、電源線１２切断後に再度電源線１２が接続されることで最終的に状態がＳ６００に遷移する。
【００９７】
なお、download microcodeコマンドの使用によるＦＷ領域２Fの書き換え後、電源切入を経ないとＳ６０１からＳ６０２や、Ｓ６０３からＳ６００への状態遷移は起こらないとしたが、download microcodeコマンドの受信後即座にＳ６００→Ｓ６０１→Ｓ６０２やＳ６００２→Ｓ６０３→Ｓ６００の状態遷移が起こるようにしてもよい。
【００９８】
以上詳述したように第３の実施形態によれば、外部からコマンドを用いてＳＳＤ１の通常モードと自走モードとを切り替えることが可能である。これにより、通常モードと自走モードとの切り替えを簡単かつ正確に行うことが可能となる。
【００９９】
［第４の実施形態］
第４の実施形態は、通常モードと自走モードとの両方を実行可能な１つの通常ＦＷのみを用い、コマンドをトリガとして通常ＦＷ内で実行されるモードを選択するようにしている。図１５は、第４の実施形態に係る通常モードと自走モードとの切り替え動作を示す状態遷移図である。
【０１００】
第４の実施形態では、通常モードと自走モードとの切り替え手段として、通常モードと自走モードとの両方を実行可能な１つの通常ＦＷを用意する。そして、通常ＦＷ内の通常モードと自走モードとのどちらを実行するかを決めるトリガとしてテスタ装置から発行されるATAコマンドを用いる（ACS2準拠のSCTコマンドやベンダー独自のコマンドなど）。
【０１０１】
ステップＳ７００は、通常ＦＷをＮＡＮＤ型フラッシュメモリ３のＦＷ領域３Ａに書き込んだ初期設定状態であり、ＳＳＤ１が通常モードであり、かつ通常モードがトリガされている。ステップＳ７００の状態では、ＳＳＤ１の電源をオフからオンした場合、ＳＳＤ１は、トリガされた通常モードになる。
【０１０２】
テスタ装置が自走モードをトリガするコマンド（自走モード移行コマンド）をＳＳＤ１に送信すると、ＳＳＤ１は、ステップＳ７００からステップＳ７０１に遷移し、すなわち、ＳＳＤ１は、通常モードであり、かつ自走モードがトリガされた状態となる。ステップＳ７０１の状態で、ＳＳＤ１の電源をオフからオンした場合、ＳＳＤ１は、ステップＳ７０１からステップＳ７０２に遷移し、ＳＳＤ１は、通常ＦＷのうちトリガされた自走モードを実行して自走モードに移行する。このステップＳ７０２の状態で、ＳＳＤ１は、前述したスクリーニング動作を実行することになる。また、ステップＳ７０２の状態でＳＳＤ１の電源をオフからオンした場合、通常ＦＷのうち自走モードがトリガされているため、ＳＳＤ１は自走モードのままである。
【０１０３】
スクリーニング終了後に、テスタ装置が通常モードをトリガするコマンド（通常モード移行コマンド）をＳＳＤ１に送信すると、ＳＳＤ１は、ステップＳ７０２からステップＳ７０３に遷移し、すなわち、ＳＳＤ１は、自走モードであり、かつ通常モードがトリガされた状態となる。ステップＳ７０３の状態で、ＳＳＤ１の電源をオフからオンした場合、ＳＳＤ１は、ステップＳ７０３からステップＳ７００に遷移し、通常ＦＷのうちトリガされた通常モードを実行して通常モードに移行する。
【０１０４】
テスタ装置は、図１のホスト装置１０と同等の構成や記憶装置１との同等の接続携帯をとり、スクリーニングの前の前処理や、スクリーニング後のテスト工程のために使用される。スクリーニングの前には図１のように記憶装置１とテスタ装置１０とが電源線１２とインターフェース１１とで接続され、状態Ｓ７００から状態Ｓ７０１への遷移コマンドがテスタ装置から発行され、記憶装置１とテスタ装置１０との間の電源線１２およびインターフェース１１とが切断され、記憶装置と電源装置４０とが電源線１２で接続されて状態Ｓ７０２に移行し、スクリーニングが開始され、スクリーニング終了後に記憶装置１と電源装置４０との間の電源線１２が切断され、記憶装置１とテスタ装置１０とが電源線１２とインターフェース１１とで接続され、状態Ｓ７０２から状態Ｓ７０３への遷移コマンドがテスタ装置から発行され、電源線１２切断後に再度電源線１２が接続されることで最終的に状態がＳ７００に遷移する。
【０１０５】
なお、状態遷移コマンド発行後、電源切入を経ないとＳ７０１からＳ７０２や、Ｓ７０３からＳ７００への状態遷移は起こらないとしたが、状態遷移コマンドの受信後即座にＳ７００→Ｓ７０１→Ｓ７０２やＳ７００２→Ｓ７０３→Ｓ７００の状態遷移が起こるようにしてもよい。
【０１０６】
以上詳述したように第４の実施形態によれば、外部からコマンドを用いてＳＳＤ１の通常モードと自走モードとを切り替えることが可能である。これにより、通常モードと自走モードとの切り替えを簡単かつ正確に行うことが可能となる。
【０１０７】
また、１つのファームウェアのみで通常モードと自走モードとを切り替えることができる。これにより、スクリーニング終了後に製品を出荷する際に、ファームウェアを書き換える必要がない。
【０１０８】
［第５の実施形態］
ストレス工程をより効率よく行うという観点では、前述した電圧ストレスのみではなく熱ストレスを加えることが望ましい。そこで、第５の実施形態は、ＳＳＤ１に熱ストレスを加えた後に、自走モードを行うようにしている。
【０１０９】
図１６は、第５の実施形態に係るＳＳＤ１の構成を示すブロック図である。ＳＳＤ１は、図１の構成に加えて、温度計８を備えている。ＳＳＤコントローラ２は、温度計８によって測定された温度を監視することで、ＳＳＤ１の内部温度を検知することができる。
【０１１０】
図１７は、ＳＳＤ１の起動シーケンスを示すフローチャートである。ＳＳＤ１は、図１１と同様に、電源装置４０に接続された状態で恒温槽４１に収納されている。すなわち、第５の実施形態では、ＳＳＤ１は、恒温槽４１内で自走モードを実行する。
【０１１１】
図１７のステップＳ１００〜Ｓ１０５までは、図７と同じである。続いて、ＳＳＤコントローラ２は、ＦＷ領域３ａが自走モード状態である場合（ステップＳ１０５）、温度計８で測定された温度を判定する。そして、ＳＳＤコントローラ２は、温度計８の温度が所定温度ＴＸを超えた場合、以後自走モードを実行する（ステップＳ１０６）。
【０１１２】
以上詳述したように第５の実施形態によれば、ＳＳＤコントローラ２がＳＳＤ１の内部温度を常にモニタし、自走モード（具体的には、ストレス工程）を実行するターゲット温度に到達した後に、自走モードを行うことが可能となる。これにより、恒温槽４１の加熱効率の影響を受けることなく、常に一定温度以上でストレス工程を実施することができる。
【０１１３】
［第６の実施形態］
第１及び第２の実施形態において、ストレス工程の後にスクリーニング工程を実施する検査工程について説明してきた（図１８（ａ））。
【０１１４】
ストレス工程においては、メモリセルに対して通常動作よりも高い電圧が加えられるため、ＮＡＮＤメモリセルの動作が一時的に不安定になる可能性がある。たとえば、ストレス工程直後のメモリセルに対して書き込み動作を行った場合、書き込みエラーの発生確率が一時的に高くなる可能性がある。たとえば、ストレス工程直後のメモリセルに対して消去動作を行った場合、消去エラーの発生確率が一時的に高くなる可能性がある。たとえば、ストレス工程直後のメモリセルに対して読み出し動作を行った場合、ＥＣＣ訂正不能エラーの発生確率が一時的に高くなる可能性がある。たとえば、ストレス工程直後のメモリセルにデータ書き込みを行うと、当該メモリセルの閾値分布が変動しやすくなっていて、書き込み動作時の閾値電圧分布下限値調整を所定回数繰り返しても下限値が所定電圧に到達せずに書き込みエラーとなる場合がある。あるいは、たとえば、ストレス工程直後のメモリセルにデータを書き込むと、当該メモリセルの閾値分布が変動しやすくなり、当該メモリセルの読み出し動作を行った時にＥＣＣ訂正不能エラーの発生確率が一時的に高くなる場合がある。
【０１１５】
一方、ストレス工程直後のメモリセルに対し消去動作と書き込み動作を繰り返していくうちに動作が安定しエラー発生確率が減少する場合がある。そのようなメモリセルは出荷後に不良する確率は低いため、スクリーニング工程でエラーが発生した時点ですぐにバッドブロック化してしまうと、本来はバッドブロック化する必要のないブロックも過剰にバッドブロック化してしまうことになり、検査工程歩留まり改善の観点から好ましくない。
【０１１６】
本実施形態においては、ストレス工程とスクリーニング工程の間に、ブロックに対して消去と書き込みを繰り返し行い、かつあるブロックにおいて消去エラーや書き込みエラーが発生しても当該ブロックをバッドブロック化しない工程（慣らし工程（Idle Write Process）を入れることによって、上記の過剰なバッドブロック化（Overkill）を抑制することが可能になる（図１８（ｂ））。ストレス工程と異なり、慣らし工程は通常のセル印加電圧を用いて行われる。
【０１１７】
図１９は、慣らし工程を示すフローチャートである。慣らし工程が開始されると（ステップＳ９０１）、ＳＳＤコントローラ２は、慣らし工程が済んだブロックを管理するリスト（処理済みリスト）をクリアする（ステップＳ９０２）。この処理済みリストは、ＳＳＤコントローラ２内のＲＡＭに格納されている。
【０１１８】
続いて、ＳＳＤコントローラ２は、ＮＡＮＤ型フラッシュメモリ３のユーザ領域３Ｃから１つのブロックを選択する（ステップＳ９０３）。ブロック選択は、例えば、（１）慣らし工程開始後にブロックアドレス＝０のブロックを選択し、その後、“ブロックアドレス＋１”を繰り返すことでシーケンシャルにブロックを選択してもよいし、（２）ブロックアドレスがランダムに並んだブロックアドレスリストを作成し、慣らし工程開始後にブロックアドレスリスト先頭のブロックを選択し、その後“ブロックアドレスリスト行数＋１”を繰り返すことでシーケンシャルにブロックアドレスリストを選択していくことでランダムにブロックを選択してもよい。
【０１１９】
続いて、ＳＳＤコントローラ２は、選択ブロックのデータを消去する（ステップＳ９０４）。この消去動作において消去エラーが発生しても、ＳＳＤコントローラ２は選択ブロックをバッドブロックとしてバッドブロック管理テーブルに追加しない。
【０１２０】
続いて、ＳＳＤコントローラ２は、選択ブロックにデータをプログラムする（ステップＳ９０５）。この時のデータは、ＳＳＤコントローラ２によって生成される。メモリセルに書き込まれるデータはランダムデータであってもよいし、全メモリセルに対して図６のＣ２レベルのデータを書き込んでもよい。このプログラム動作時に書き込みエラーが発生しても、ＳＳＤコントローラ２は選択ブロックをバッドブロックとしてバッドブロック管理テーブルに追加しない。プログラムは、選択ブロック内の全ページ（下位ページ及び上位ページの両方を含む）に対して行われる。
【０１２１】
続いて、ＳＳＤコントローラ２は、選択ブロックを処理済みリストに追加する（ステップＳ９０６）。ステップＳ９０２で処理済みリストのかわりに、ＲＡＭに格納されている未処理リストを初期化するようにし、ステップＳ９０６で選択ブロックを未処理リストから削除するようにしてもよい。続いて、ＳＳＤコントローラ２は、ＮＡＮＤ型フラッシュメモリ３のユーザ領域３Ｃの全ブロックを選択したか否かを判定する（ステップＳ９０７）。ステップＳ９０７において全ブロックを選択していない場合、ステップＳ９０３に戻って、次のブロックが選択される。
【０１２２】
ステップＳ９０７において全ブロックが選択されていた場合、慣らし工程が終了する（ステップＳ９０８）。なお、スクリーニング工程時においてメモリセルをより安定化させるという観点では、ステップＳ９０２〜Ｓ９０７を複数回繰り返すことが望ましい。
【０１２３】
ステップＳ９０４の消去動作とステップＳ９０５のプログラム動作の両方においてエラーが発生しても選択ブロックをバッドブロック化しないことが望ましいが、ステップＳ９０４の消去動作で消去エラーが発生した場合には選択ブロックをバッドブロック化し、ステップＳ９０５のプログラム動作で書き込みエラーが発生した場合には選択ブロックをバッドブロック化しないようにしてもよい。
【０１２４】
以上のようにして、ストレス工程とスクリーニング工程の間に慣らし工程を行うことにより、メモリセルの動作が安定化し、正常なブロックの不必要なバッドブロック化（過剰なバッドブロック化）を抑制することができる。
【０１２５】
なお、図１８（ｂ）の慣らし工程の代わりに、スクリーニング工程と当該スクリーニング工程で発生したバッドブロックを消去する工程（バッドブロック消去工程）を行なっても同様の効果が得られる（図２０）。スクリーニング工程及びバッドブロック消去工程を疑似慣らし工程と呼ぶ。
【０１２６】
図２１は、疑似慣らし工程を示すフローチャートである。疑似慣らし工程が開始されると（ステップＳ１００１）、ＳＳＤコントローラ２は、スクリーニング工程を行う（ステップＳ１００２〜Ｓ１００９）。このスクリーニング工程（ステップＳ１００２〜Ｓ１００９）は、第１の実施形態のスクリーニング工程（図８のステップＳ３００〜Ｓ３０７）と同じである。ＳＳＤコントローラ２は、ステップＳ１００４とＳ１００５で発生したバッドブロックをバッドブロック管理テーブルから削除する（ステップＳ１０１０）。その後、疑似慣らし工程が終了する（ステップＳ１０１１）。
【０１２７】
擬似慣らし工程の間にＥＣＣ訂正不能エラーが発生しても、これはメモリセルの動作が一時的に不安定になっている可能性があるため、そのＳＳＤは不良としなくてもよい。この場合、正常なブロックであっても一旦はバッドブロック管理テーブルに登録されるが、その後バッドブロック消去工程（ステップＳ１０１１）においてバッドブロック管理テーブルから削除されることで正常なブロックとして再認識される。
【０１２８】
疑似慣らし工程は、慣らし工程（図１８（ｂ））と比べて工程数が増えるが、一方で、メモリセルへアクセスする工程は通常のスクリーニング工程と同じ工程を再利用できるため、実装が比較的簡単になる可能性がある。ブロックの消去回数を不必要に増やさないという観点と検査時間を削減するという観点では、擬似慣らし工程内のスクリーニング工程のＳ１００２〜Ｓ１００９の繰り返し回数は、通常のスクリーニング工程（たとえばＳ３００〜Ｓ３０７）の繰り返し回数よりも少ないことが望ましい。
【０１２９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１３０】
１…ＳＳＤ、２…ＳＳＤコントローラ、３…ＮＡＮＤ型フラッシュメモリ、４…インターフェースコントローラ、５…電源供給部、６…バス、７ａ〜７ｃ…電源線、１０…ホスト装置、１１…インターフェース、１２…電源線、２０…ＮＡＮＤメモリチップ、２１…ＮＡＮＤコントローラ、２２…メモリセルアレイ、２３…ビット線制御回路、２４…カラムデコーダ、２５…ワード線制御回路、２６…制御回路、２７…制御信号入力端子、２８…データ入出力端子、２９…データ入出力バッファ、４０…電源装置、４１…恒温槽。
【要約】
【課題】製品出荷後の信頼性を向上させる。
【解決手段】半導体記憶装置１は、不揮発性半導体メモリ３と、電源供給部５と、制御部２とを含む。制御部２は、電源供給部５から電圧が供給された場合に、不揮発性半導体メモリ３からファームウェアを読み出し、通常モード又は自走モードを実行する。ファームウェアが自走モードである場合に、制御部２は、通常モードよりも高いセル印加電圧でユーザ領域の書き込みを行い、その後通常モードの電圧でユーザ領域のブロックごとに消去、書き込み及び読み出しを繰り返し、消去時に消去エラーが発生した場合、または書き込み時に書き込みエラーが発生した場合に、当該ブロックをバッドブロック管理テーブルに追加する。
【選択図】      図８【図１】
0005112566.tif 000002
【図２】
0005112566.tif 000003
【図３】
0005112566.tif 000004
【図４】
0005112566.tif 000005
【図５】
0005112566.tif 000006
【図６】
0005112566.tif 000007
【図７】
0005112566.tif 000008
【図８】
0005112566.tif 000009
【図９】
0005112566.tif 000010
【図１０】
0005112566.tif 000011
【図１１】
0005112566.tif 000012
【図１２】
0005112566.tif 000013
【図１３】
0005112566.tif 000014
【図１４】
0005112566.tif 000015
【図１５】
0005112566.tif 000016
【図１６】
0005112566.tif 000017
【図１７】
0005112566.tif 000018
【図１８】
0005112566.tif 000019
【図１９】
0005112566.tif 000020
【図２０】
0005112566.tif 000021
【図２１】
0005112566.tif 000022