(57)【特許請求の範囲】
【請求項１】
複数のメモリセルを含んだ複数のブロックを有する半導体メモリと、記憶装置制御部と、を具備する半導体記憶装置であって、
前記半導体メモリは、
前記記憶装置制御部の制御に従って、前記メモリセルへデータを書き込み、前記メモリセルからデータを読み出し、前記メモリセル中のデータを消去し、データ読み出しのための読み出しレベルを変更し、
前記記憶装置制御部を第１モードおよび第２モードの少なくとも一方で動作させるためのプログラムを保持し、
前記記憶装置制御部は、
本体データと前記本体データの誤り訂正用の冗長データとを前記半導体メモリに書き込み、
前記半導体メモリから本体データおよび対応する冗長データを読み出し、前記読み出された冗長データに基づいて前記読み出された本体データの誤りを訂正し、
前記半導体記憶装置に電源が供給されると前記プログラムを読み出して前記第１モードまたは前記第２モードに入り、
前記第１モードにある間、自律的に、
前記複数のブロックの各々について、データの消去およびデータの書き込みおよび前記書き込まれたデータの読み出しを行って前記読み出されたデータ中の誤りの数が前記記憶装置制御部の訂正能力または閾値を超えている場合に当該ブロックを不良と判定する第１処理と、
前記複数のブロックの各々について、データの読み出しおよびデータの消去およびデータの書き込みおよび前記書き込まれたデータの読み出しを行って前記読み出されたデータ中の誤りの数が前記記憶装置制御部の訂正能力または閾値を超えている場合に当該ブロックを不良と判定する第２処理と、
を順に実行し、
前記第２モードにある間、前記半導体メモリから読み出された本体データの誤り訂正に失敗すると現在の読み出しレベルから変更された読み出しレベルを用いて前記誤り訂正に失敗した本体データを読み出す、
ことを特徴とする半導体記憶装置。
【請求項２】
前記記憶装置制御部が、前記第１モードにある間、自律的に、前記第１処理における前記書き込まれたデータの読み出しにおいて前記読み出されたデータ中の誤りの数が前記記憶装置制御部の訂正能力または閾値を超えている場合に前記半導体記憶装置を不良と判定する、
ことを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
前記記憶装置制御部が、前記第１モードにある間、自律的に、前記第２処理の終了時において前記第２処理の開始から所定時間経過していない場合は、前記第２処理を再度実行する、
ことを特徴とする請求項１または２に記載の半導体記憶装置。
【請求項４】
前記プログラムが、前記半導体記憶装置への次の電源遮断後の電源投入の際に前記第１モードおよび前記第２モードのいずれで前記半導体記憶装置を動作させるかを、受け取ったコマンドで変更される、
ことを特徴とする請求項３に記載の半導体記憶装置。
【請求項５】
温度センサをさらに具備し、
前記記憶装置制御部が、前記温度センサにより測定された温度が第２閾値を超えてから前記第１モードに入る、
ことを特徴とする請求項４に記載の半導体記憶装置。
【請求項６】
複数のメモリセルを含んだ複数のブロックを有する半導体メモリと、記憶装置制御部と、を具備する半導体記憶装置の制御方法であって、
第１モードにある間、自律的に、前記複数のブロックの各々についてデータの消去およびデータの書き込みおよび前記書き込まれたデータの読み出しを行って前記読み出されたデータ中の誤りの数が前記記憶装置制御部の訂正能力または閾値を超えている場合に当該ブロックを不良と判定する第１工程と、
前記第１モードにある間、自律的に、前記複数のブロックの各々について、データの読み出しおよびデータの消去およびデータの書き込みおよび前記書き込まれたデータの読み出しを行って前記読み出されたデータ中の誤りの数が前記記憶装置制御部の訂正能力または閾値を超えている場合に当該ブロックを不良と判定する第２工程と、
第２モードにある間、本体データと前記本体データの誤り訂正用の冗長データとを前記半導体メモリに書き込み、前記半導体メモリから本体データおよび対応する冗長データを読み出し、前記読み出された冗長データに基づいて前記読み出された本体データの誤りを訂正し、前記半導体メモリから読み出された本体データの誤り訂正に失敗すると現在の読み出しレベルから変更された読み出しレベルを用いて前記誤り訂正に失敗した本体データを読み出す第３工程と、
前記記憶装置制御部を前記第１モードで動作させるプログラムまたは前記記憶装置制御部を前記第２モードで動作させるプログラムを前記半導体メモリに書き込むこと、あるいは
前記記憶装置制御部を前記第１および第２モードの選択された一方で動作させるプログラムを前記半導体メモリに書き込む第４工程と、
を具備することを特徴とする半導体記憶装置の制御方法。
【請求項７】
前記第１工程における前記書き込まれたデータの読み出しにおいて前記読み出されたデータ中の誤りの数が前記記憶装置制御部の訂正能力または閾値を超えている場合に前記半導体記憶装置を不良と判定する、
ことを特徴とする請求項６に記載の半導体記憶装置の制御方法。
【請求項８】
前記第２工程の終了時において前記第２工程の開始から所定時間経過していない場合は、前記第２工程を再度実行する
ことを特徴とする請求項６または７に記載の半導体記憶装置の制御方法。
【請求項９】
前記半導体記憶装置中の温度センサにより測定された温度が第２閾値を超えてから前記第１モードに入る、
ことを特徴とする請求項８に記載の半導体記憶装置の制御方法。
【請求項１０】
複数のメモリセルを含んだ複数のブロックを有する半導体メモリと、記憶装置制御部と、を具備する半導体記憶装置中の前記記憶装置制御部用の制御プログラムであって、
前記半導体記憶装置は、本体データと前記本体データの誤り訂正用の冗長データとを前記半導体メモリに書き込み、前記半導体メモリから本体データおよび対応する冗長データを読み出し、前記読み出された冗長データに基づいて前記読み出された本体データの誤りを訂正し、前記半導体メモリから読み出された本体データの誤り訂正に失敗すると現在の読み出しレベルから変更された読み出しレベルを用いて前記誤り訂正に失敗した本体データを読み出す機能を有する半導体記憶装置であって、
前記制御プログラムは前記半導体記憶装置に書き込まれることで前記記憶装置制御部の機能を、自律的に、
前記複数のブロックの各々についてのデータの消去およびデータの書き込みおよび前記書き込まれたデータの読み出しを行って前記読み出されたデータ中の誤りの数が前記記憶装置制御部の訂正能力または閾値を超えている場合に当該ブロックを不良と判定する第１処理と、
前記複数のブロックの各々についてのデータの読み出しおよびデータの消去およびデータの書き込みおよび前記書き込まれたデータの読み出しを行って前記読み出されたデータ中の誤りの数が前記記憶装置制御部の訂正能力または閾値を超えている場合に当該ブロックを不良と判定する第２の処理と、
を順に実行する第１モードに変更させる、
ことを特徴とする制御プログラム。
【請求項１１】
前記第１処理における前記書き込まれたデータの読み出しにおいて前記読み出されたデータ中の誤りの数が前記記憶装置制御部の訂正能力または閾値を超えている場合に前記半導体記憶装置を不良と判定する、
ことを特徴とする請求項１０に記載の制御プログラム。
【請求項１２】
前記記憶装置制御部に、前記記憶装置制御部が前記第１モードにある間、前記第２処理の終了時において前記第２処理の開始から所定時間経過していない場合は、前記第２処理を再度実行させることを特徴とする請求項１０または１１に記載の制御プログラム。
【請求項１３】
前記記憶装置制御部に、前記半導体記憶装置中の温度センサにより測定された温度が第２閾値を超えてから前記第１モードに入ること、
をさらに実行させることを特徴とする請求項１２に記載の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体記憶装置、半導体記憶装置の制御方法、制御プログラムに関する。
【背景技術】
【０００２】
半導体メモリとこの半導体メモリを制御するためのコントローラを含んだ記憶装置が知られている。そのような記憶装置は、例えば製造済みの半導体メモリを用意し、これとコントローラとを組み立てることにより製造される。組み立てられた記憶装置の評価は、一般に、評価の際の不良の検出のみならず、出荷後の不良の発生率も抑制できるようなものであることが望ましい。評価方法によっては、評価の際に良品と判定されても、出荷後の早い段階でも不良が発生するような事態をできる限り避けることが望まれるからである。このため、評価方法によっては評価の時点でパスしても出荷後の早い時期に不良となり得る箇所をも評価の際に検出できることが望ましい。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１００５１９号公報
【特許文献２】特許第４５７５２８８号公報
【特許文献３】特許第４６６０３５３号公報
【特許文献４】特開２００８−１１７４７１号公報
【特許文献５】特開２００４−３２６８６７号公報
【特許文献６】特開２００８−２６９４７３号公報
【特許文献７】特許第４６３５０６１号公報
【特許文献８】特開２０１０−１６１１９９号公報
【特許文献９】特開２０１１−２９５８６号公報
【非特許文献】
【０００４】
【非特許文献１】ATA/ATAPI Command Set - 2 (ACS-2) d2015r6 Feb.22.2011 http://www.t13.org/Documents/UploadedDocuments/docs2011/d2015r6-ATAATAPI_Command_Set_-_2_ACS-2.pdf
【発明の概要】
【発明が解決しようとする課題】
【０００５】
より高い精度で不良を検出可能な半導体記憶装置、半導体記憶装置の制御方法、制御プログラムを提供しようとするものである。
【課題を解決するための手段】
【０００６】
一実施形態による半導体記憶装置は、複数のメモリセルを含んだ複数のブロックを有する半導体メモリと、記憶装置制御部と、を含む。半導体メモリは、記憶装置制御部の制御に従って、メモリセルへデータを書き込み、メモリセルからデータを読み出し、メモリセル中のデータを消去し、データ読み出しのための読み出しレベルを変更する。半導体メモリは、記憶装置制御部を第１モードおよび第２モードの少なくとも一方で動作させるためのプログラムを保持する。記憶装置制御部は、本体データと本体データの誤り訂正用の冗長データとを半導体メモリに書き込み、半導体メモリから本体データおよび対応する冗長データを読み出し、読み出された冗長データに基づいて読み出された本体データの誤りを訂正し、半導体記憶装置に電源が供給されるとプログラムを読み出して第１モードまたは第２モードに入る。記憶装置制御部は、第１モードにある間、自律的に、複数のブロックの各々について、データの消去およびデータの書き込みおよび書き込まれたデータの読み出しを行って読み出されたデータ中の誤りの数が記憶装置制御部の訂正能力または閾値を超えている場合に当該ブロックを不良と判定する第１処理と、前記複数のブロックの各々について、データの読み出しおよびデータの消去およびデータの書き込みおよび前記書き込まれたデータの読み出しを行って前記読み出されたデータ中の誤りの数が前記記憶装置制御部の訂正能力または閾値を超えている場合に当該ブロックを不良と判定する第２処理と、を順に実行する。記憶装置制御部は、第２モードにある間、半導体メモリから読み出された本体データの誤り訂正に失敗すると現在の読み出しレベルから変更された読み出しレベルを用いて誤り訂正に失敗した本体データを読み出す。
【図面の簡単な説明】
【０００７】
【図１】第１実施形態に係る半導体記憶装置を概略的に示すブロック図。
【図２】第１実施形態に係る半導体記憶装置の起動時のフローチャート。
【図３】第１実施形態に係るメモリの例を示す図。
【図４】第１実施形態に係るメモリチップの例を示す図。
【図５】第１実施形態に係るメモリセルセルアレイの例を示す図。
【図６】第１実施形態に係るプレーンの例を示す図。
【図７】第１実施形態に係るメモリセルのデータと閾値電圧との関係の例を示す図。
【図８】プログラムディスターブまたはリードディスターブによる閾値電圧分布変化と読み出しレベルシフトの例を示す図。
【図９】データリテンションによる閾値電圧分布変化と読み出しレベルシフトの例を示す図。
【図１０】第１実施形態に係る半導体記憶装置によるリトライ読み出しのフローの例を示す図。
【図１１】第１実施形態に係る半導体記憶装置によるリトライ読み出しのフローの別の例を示す図。
【図１２】第１実施形態に係る半導体記憶装置による自走モードのフローの例を示す図。
【図１３】第１実施形態に係る自走モード時の記憶装置制御部の詳細の例を示す図。
【図１４】第１実施形態に係る半導体記憶装置のスクリーニング中の接続の例を示す図。
【図１５】第１実施形態に係る半導体記憶装置１のスクリーニング中の接続の別の例を示す図。
【図１６】第１実施形態に係る半導体記憶装置のスクリーニング中のデータ読み出しのフローを示す図。
【図１７】第２実施形態に係る半導体記憶装置のスクリーニング中のデータ読み出しのフローを示す図。
【図１８】第３実施形態に係る半導体記憶装置のスクリーニング中のデータ読み出しのフローを示す図。
【図１９】第４実施形態に係るファームウェアに応じた半導体記憶装置のモードの遷移の例を示している。
【図２０】第４実施形態に係る半導体記憶装置のテスタ装置との接続の例を示している。
【図２１】第５実施形態に係るファームウェアに応じた半導体記憶装置のモードの遷移の例を示している。
【図２２】第６実施形態に係る半導体記憶装置を概略的に示すブロック図。
【図２３】第６実施形態に係る半導体記憶装置の起動時のフローチャート。
【発明を実施するための形態】
【０００８】
以下に実施形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。ただし、図面は模式的なものであることに留意すべきである。また、各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、構成部品の種々の特徴を下記のものに特定するものでない。実施形態の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【０００９】
各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。このため、機能ブロックがこれらのいずれでもあることが明確となるように、概してそれらの機能の観点から以下に説明する。このような機能が、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、いずれの実現の手法も実施形態の範疇に含まれる。また、各機能ブロックが、以下の具体例のように区別されていることは必須ではない。例えば、一部の機能が以下の説明において例示されている機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。どの機能ブロックによって特定されるかによって実施形態が限定されるものではない。
【００１０】
（第１実施形態）
図１は、第１実施形態に係る半導体記憶装置を概略的に示すブロック図である。半導体記憶装置１は、例えばＳＳＤ（Solid State Device）である。半導体記憶装置１は、ホスト装置１０と通信可能に構成されている。半導体記憶装置１は、メモリ（半導体メモリ）２、記憶装置制御部３、インターフェースコントローラ４、電源供給部５を含んでいる。
【００１１】
メモリ２は、実際にデータを記憶する役割を担い、半導体メモリチップを含んでいる。メモリ２は、データを不揮発に記憶し、例えばＮＡＮＤ型フラッシュメモリである。ＮＡＮＤ型フラッシュメモリは、複数のメモリセルからなるページと呼ばれる単位でデータの書き込み（プログラム）および読み出しを行う。ページには、各ページに固有の物理アドレスが割り当てられている。また、ＮＡＮＤ型フラッシュメモリは、複数のページからなる物理ブロック（消去ブロック）と呼ばれる単位でデータの消去を行う。メモリ２の詳細については後述する。メモリ２から構成される記憶空間は、例えばファームウェア（制御プログラム（命令））領域２Ｆ、管理情報領域２Ｍ、ユーザデータ領域２Ｕを含んでいる。ファームウェア領域２は、記憶装置制御部３の動作を制御するためのファームウェアを保持する。管理情報領域２Ｍは、記憶装置制御部３が、半導体記憶装置１の制御に使用する種々の管理情報を保持する。ユーザデータ領域２Ｕは、半導体記憶装置１のユーザがホスト装置１０を介してデータを記憶することが可能な領域である。
【００１２】
記憶装置制御部３は、半導体記憶装置１の全体を司り、特にメモリ２の動作を制御する。記憶装置制御部３は、例えば半導体チップからなり、例えばＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）を含んでいる。ＲＡＭは、ＤＲＡＭ（Dynamic RAM）、ＳＲＡＭ（Static RAM）、ＭＲＡＭ（Magnetoresistive RAM）、またはFeRAM（Ferroelectric RAM）である。半導体記憶装置１が電源供給を受けた際にファームウェア領域２Ｆに保持されているファームウェアがＲＡＭ上に読み出される。そして、ＣＰＵは、ＲＡＭ上のファームウェアに従って所定の処理を実行する。記憶装置制御部３は、後述の複数の動作モードのいずれかで動作するとともにメモリ２によるデータの記憶状態を管理する。記憶状態の管理とは、どの物理アドレスのページ（または物理ブロック）が、どの論理アドレスのデータを保持しているか、およびどの物理アドレスのページ（または物理ブロック）が消去状態（何も書き込まれていない、または無効なデータを保持している状態）であるかを管理することを含んでいる。記憶状態の管理は、例えば論理アドレス・物理アドレス変換テーブル（論物変換テーブル）を用いて行われる。論物変換テーブルは、例えば、半導体記憶装置１への電源遮断時にメモリ２中の管理情報領域２Ｍに保持され、半導体記憶装置１の起動時に記憶装置制御部３中のＲＡＭに読み出される。
【００１３】
インターフェースコントローラ４は、ホスト装置１０と半導体記憶装置１との間のインターフェースを実現し、そのためのハードウェア、ソフトウェアを含んでいる。半導体記憶装置１は、インターフェースコントローラ４を介してホスト装置１０と通信する。インターフェースコントローラ４は、インターフェース１１を介してホスト装置１０と通信可能に接続される。インターフェースコントローラ４は、インターフェース１１を介した半導体記憶装置１とホスト装置１０との通信に必要な処理を行う。インターフェース１１は、半導体記憶装置１がホスト装置１０と物理的に接続されるためのハードウェア上の構成（ピンの配置、数等）も含む。インターフェース１１は、例えばSATA (Serial Advanced Technology Attachment)、PCI express、SAS (Serial Attached SCSI)、USB (Universal Serial Bus)等であるが、これらに限定されない。以下の記述では、インターフェース１１は例としてSATAとする。インターフェースコントローラ４、メモリ２、記憶装置制御部３は、バス７を介して相互に通信可能に接続されている。
【００１４】
電源供給部５は、電源供給部５に接続された装置から電源を受け取る。電源供給部５は、半導体記憶装置１がホスト装置１０と接続されている間、電源線１２を介してホスト装置１０と接続され、電源線１２を介してホスト装置１０から電源を受け取る。電源供給部５は、電源線８ａ、８ｂ、８ｃを介して記憶装置制御部３、メモリ２、インターフェースコントローラ４に電源を供給する。
【００１５】
次に、ファームウェアについて、半導体記憶装置１の起動時に関して記述する。ファームウェアは、少なくとも通常モードおよび自走モードを含んでいる。自走モードは、半導体記憶装置１の評価の際に使用されるモードである。通常モードは、半導体記憶装置１の通常の使用時に使用されるモードである。これらのモードの詳細は後述する。
【００１６】
ファームウェアは、書き換えられることが可能である。例えば、書き換えは、非特許文献１に記載のINCITS ACS-2準拠のコマンドである92h DOWNLOAD MICROCODEや93h DOWNLOAD MICROCODE DMAによって可能である。あるいはINCITS ACS-2準拠のSCTコマンドやその他のベンダー独自コマンドによって書き換えられるようにすることも可能である。例えば、半導体記憶装置１の評価の際に、自走モード用のファームウェアがファームウェア領域２Ｆに書き込まれる。半導体記憶装置１の評価後の出荷の際に、自走モード用のファームウェアが通常モード用のファームウェアに書き換えられる。または、ファームウェアは評価工程から出荷後も通常モードと自走モードとを含んでいて、コマンドにより切り替えられるようにされていてもよい。具体的には、例えば、INCITS ACS-2準拠のSCTコマンドやその他のベンダー独自コマンドによってファームウェア内部の不揮発に保持されているトリガが書き換えられることで、通常モードと自走モードが切り替わる。モードの切り替えについては、後述の別の実施形態で詳細に説明する。
【００１７】
図２は、第１実施形態に係る半導体記憶装置１の起動時のフローチャートである。ファームウェアは、半導体記憶装置１の起動時に記憶装置制御部３に図２に示されるフローを実行させる。記憶装置制御部３は、ファームウェアに基づいて、図２に示されるフローを行えるように構成されている。図２に示されるように、半導体記憶装置１の外部（例えばホスト装置１０）から電源線１２を介した半導体記憶装置１への電圧供給が開始する（ステップＳ１）。供給された電圧は、電源供給部５によって受け取られる。電源供給部５は、受け取っている電圧に基づいて、電源線８ａ、８ｂ、８ｃを介して記憶装置制御部３、メモリ２、インターフェースコントローラ４にこれらの要素に必要な既定の電圧を供給する（ステップＳ２）。記憶装置制御部３は、一定時間待機し（ステップＳ３）、電源線８ａ上の電圧が記憶装置制御部３の動作に必要な既定の値に達したかを判定する（ステップＳ４）。ステップＳ４での判断がＮｏである場合、フローはステップＳ３に戻る。ステップＳ４での判断がＹｅｓである場合、記憶装置制御部３が起動する（ステップＳ５）。次に、記憶装置制御部３は、メモリ２のファームウェア領域２Ｆ中のファームウェアを記憶装置制御部３中のＲＡＭ上に読み出す（ステップＳ６）。記憶装置制御部３は、読み出されたファームウェアが通常モード用であるかまたは通常モードを指定しているかを判定する（ステップＳ７）。ステップＳ７での判断がＹｅｓの場合、記憶装置制御部３は通常モードに入り、これ以降、通常モード中で動作する（ステップＳ８）。一方、ステップＳ７での判断がＮｏである場合、記憶装置制御部３は、ファームウェアが自走モード用であるかまたは自走モードを指定しているかを判定する（ステップＳ９）。ステップＳ９での判断がＹｅｓである場合、記憶装置制御部３は自走モードに入り、これ以降、自走モード中で動作する（ステップＳ１０）。ステップＳ９での判断がＮｏである場合、記憶装置制御部３は、その他の何らかのモードに入り、これ以降、そのモード中で動作する（ステップＳ１１）。
【００１８】
次に、メモリ２について説明する。メモリ２は、図３に示されるように、例えば複数のメモリチップ２０を含んでいる。図３は、第１実施形態に係るメモリの例を示している。上記のように、メモリチップ２０は、例えばＮＡＮＤ型フラッシュメモリチップ（ＮＡＮＤメモリチップ）である。各メモリチップ２０は、１つのメモリセルにおいて１ビットまたは２ビット以上のデータを保持し、これを読み出せるように構成されている。各メモリチップ２０は、図４に示される構成を有する。図４は、第１実施形態に係るメモリチップの例を示している。図４に示されるように、メモリチップ２０は、メモリセルアレイ２１、およびメモリセルアレイ制御部２２を含んでいる。メモリセルアレイ２１は、複数のビット線、複数のワード線、共通ソース線、複数のメモリセルを含んでいる。メモリセルは、電気的にデータを書き換え可能に構成されており、ビット線とワード線の各交点に配置されている。メモリセルアレイ２１の詳細は後述する。メモリセルアレイ制御部２２は、ビット線制御回路２３、カラムデコーダ２４、ワード線制御回路２５は、制御回路２６、制御信号入力端子２７、データ入出力端子２８、データ入出力バッファ２９を含んでいる。
【００１９】
ビット線制御回路２３は、制御回路２６およびカラムデコーダ２４からの制御に基づいて、ビット線を介してメモリセルのデータを読み出し、ビット線を介してメモリセルに書き込み制御電圧を印加してメモリセルにデータを書き込み、メモリセルのデータを消去する。ビット線制御回路２３には、カラムデコーダ２４、データ入出力バッファ２９、およびデータ入出力端子２８が接続されている。メモリセルから読み出されたデータは、ビット線制御回路２３、データ入出力バッファ２９を介してデータ入出力端子２８から外部へ出力される。データ入出力端子２８は、記憶装置制御部３に接続されている。また、外部からデータ入出力端子２８に入力された書き込みデータは、データ入出力バッファ２９を介して、カラムデコーダ２４によってビット線制御回路２３に入力され、指定されたメモリセルへ書き込まれる。ワード線制御回路２５は、データ読み出し、書き込み、あるいは消去に必要な種々の電圧を制御回路２６の制御に基づいて特定のワード線に印加する。制御回路２６は、制御信号入力端子２８に入力される制御信号を受け取る。制御信号入力端子２７は記憶装置制御部３に接続されている。制御回路２５は、制御信号に従って、メモリセルアレイ２１、ビット線制御回路２３、カラムデコーダ２４、データ入出力バッファ２９、およびワード線制御回路２５を制御するための制御信号及び制御電圧を生成する。
【００２０】
図５は、第１実施形態に係るメモリセルアレイ２１の例を示している。図５に示されるように、メモリセルアレイ２１は、１または複数のプレーン３１を含んでいる。プレーン３１は、複数のブロック３２を含んでいる。ブロック３２は、複数のＮＡＮＤセルを含んでおり、このブロック単位でデータが消去される。１つのＮＡＮＤセルは、図６に示されるように、直列接続されたメモリセルトランジスタＭＣからなるメモリストリングＭＳと、その両端に接続された第１、第２選択ゲートトランジスタＳ１、Ｓ２とを含んでいる。図６は、第１実施形態に係るプレーンの例を示している。第１選択ゲートトランジスタＳ１はビット線ＢＬに接続され、第２選択ゲートトランジスタＳ２はソース線ＳＲＣに接続されている。同一のロウに配置されたメモリセルトランジスタＭＣの制御ゲートは、ワード線ＷＬ０〜ＷＬｍ−１のうちの１つに共通接続されている。また、第１選択ゲートトランジスタＳ１は選択線ＳＧＤに共通接続され、第２選択ゲートトランジスタＳ２は選択線ＳＧＳに共通接続されている。
【００２１】
メモリセルトランジスタＭＣは、半導体基板上に形成された積層ゲート構造を備えたＭＯＳＦＥＴ（Metal Oxide Semiconductor Field Effect Transistor）を含んでいる。積層ゲート構造は、半導体基板上のゲート絶縁膜、ゲート絶縁膜上の電荷蓄積層（浮遊ゲート電極）、電荷蓄積層上のゲート間絶縁膜、ゲート間絶縁膜上の制御ゲート電極を含んでいる。メモリセルトランジスタＭＣは、浮遊ゲート電極に蓄えられる電子の数に応じて相違する閾値電圧を有し、この閾値電圧の違いを利用してデータを記憶する。上記のように、メモリ２は、１つのメモリセルに１ビットまたは２ビット以上のデータ保持可能である。以下の記述では、各２ビット／セルの４値データ記憶方式を例に取る。この方式では、同じワード線ＷＬに接続された複数メモリセルトランジスタＭＣに２つのページ（上位ページおよび下位ページ）が割り当てられる。１ビット／セルの２値データ記憶方式、３ビット／セルの８値データ記憶方式、あるいは４ビット／セル以上のデータ記憶方式が用いられてもよい。セル当たりのビット数によって第１実施形態は制限されない。１ビット／セルの２値データ記憶方式では、各メモリセルトランジスタＭＣには１つのページが割り当てられる。３ビット／セルの８値データ記憶方式では、各メモリセルトランジスタＭＣは上位、中位、下位ページを使用する。
【００２２】
メモリセルトランジスタＭＣは浮遊ゲート電極を有する構造に限られない。例えば、電荷蓄積層としての窒化膜界面に電子をトラップさせることで閾値電圧を調整可能な構造であってもよい。そのような構造の例は、例えばＭＯＮＯＳ（Metal Oxide Nitride Oxide Silicon）型のメモリセルトランジスタＭＣが挙げられる。ＭＯＮＯＳ型メモリセルトランジスタについても同様に、１セル当たり１ビットを記憶するように構成されていてもよいし、２ビット以上を記憶するように構成されていてもよい。また、メモリ２は、特許文献８や特許文献９に記述されるような３次元的にメモリセルが配置された構造（例えばＢｉＣＳメモリ）を有していてもよい。
【００２３】
１つのワード線ＷＬに接続された複数のメモリセルトランジスタＭＣは、１物理セクタを構成する。この物理セクタ毎にデータが書き込まれ、読み出される。１物理セクタＰＳは、２ビット／セル（４値）で書き込まれた場合、例えば２ページ分のデータを記憶する。一方、１ビット／セル（２値）で書き込まれた場合、１物理セクタは例えば１ページ分のデータを記憶し、３ビット／セル（８値）で書き込まれた場合、例えば３ページ分のデータを記憶する。
【００２４】
データ読み出し、データ書き込み、データ書き込みベリファイの際、記憶装置制御部３から受信した物理アドレスに応じて、１本のワード線ＷＬが選択され、１物理セクタＰＳが選択される。この物理セクタＰＳ内のページの切り替えは物理アドレスによって行われる。本実施形態では、例としてメモリ２は２ビット／セル書き込み方式であり、記憶装置制御部３は物理セクタＰＳには上位ページ（Upper Page）および下位ページ（Lower Page）の２ページを割り当てられていると取扱い、それら各ページに対して固有の物理アドレスが割り当てられている。
【００２５】
図７は、第１実施形態に係るメモリセルのデータと閾値電圧分布との関係の例を示している。図７は、２ビット／セルの４値ＮＡＮＤメモリに関する。４値ＮＡＮＤメモリは、１つのメモリセルにおける閾値電圧が、４つの閾値電圧のいずれかを持ち得るように構成されている。４つの閾値電圧に割り当てられたデータは、例えばデータ“１１”、“０１”、“１０”、“００”である。実際には、メモリセル相互間の特性のばらつきに起因して、同じ閾値電圧を有する複数のメモリセルＭＣであっても、閾値がばらつき、図７に示されるように一定の分布を有する。
【００２６】
電圧ＶＡ１は、下位ページのみ書き込み済みで上位ページが未書き込みの物理セクタから２値データ読み出しの際に選択ワード線に印加される電圧である。電圧ＶＡ１Ｖは、Ａ１状態へのデータ書き込みの際に、書き込みが完了したかを確認するためにメモリセルに印加されるベリファイ電圧である。電圧ＶＡ２、ＶＢ２、ＶＣ２は、下位ページと上位ページが書き込み済みの物理セクタから４値データ読み出しの際に選択ワード線に印加される電圧である。電圧ＶＡ２Ｖ、ＶＢ２Ｖ、ＶＣ２Ｖは、それぞれ、Ａ２、Ｂ２、Ｃ２状態へのデータ書き込みの際に、書き込みが完了したかを確認するためにメモリセルに印加されるベリファイ電圧である。
【００２７】
電圧Ｖｒｅａｄ１、Ｖｒｅａｄ２は、データ読み出しの際に、ＮＡＮＤセル中の非選択メモリセルに対し印加され、その保持データに拘わらず非選択メモリセルを導通させるための読み出し電圧である。電圧Ｖｅｖ、Ｖｅｖ１、Ｖｅｖ２は、メモリセルＭＣのデータを消去する際に、消去が完了したかを確認するためにメモリセルＭＣに印加される消去ベリファイ電圧であり、負の値を有する。その大きさは、隣接メモリセル間の干渉の影響を考慮して決定される。上述の各電圧の大小関係は、
Ｖｅｖ１＜ＶＡ１＜ＶＡ１Ｖ＜Ｖｒｅａｄ１
Ｖｅｖ２＜ＶＡ２＜ＶＡ２Ｖ＜ＶＢ２＜ＶＢ２Ｖ＜ＶＣ２＜ＶＣ２Ｖ＜Ｖｒｅａｄ２
である。
【００２８】
消去ベリファイ電圧Ｖｅｖ、Ｖｅｖ１、Ｖｅｖ２は上記の通り負の値であるが、実際に消去ベリファイにおいてメモリセルＭＣの制御ゲートに印加される電圧は、負の値ではなく、ゼロまたは正の値である。すなわち、実際には、メモリセルＭＣのバックゲートに正の電圧を与え、メモリセルＭＣの制御ゲートにゼロまたはバックゲート電圧より小さい正の値の電圧が印加される。換言すれば、消去ベリファイ電圧Ｖｅｖ１、Ｖｅｖ２、Ｖｅｖ３は、等価的に負の値を有する電圧である。
【００２９】
データ消去後のメモリセルＭＣの閾値電圧分布ＥＲは、その上限値も負の値であり、データ“１１”が割り当てられる。下位ページおよび上位ページ書き込み状態であるデータ“０１”、“１０”、“００”のメモリセルは、それぞれ正の閾値電圧分布Ａ２、Ｂ２、Ｃ２を有する（分布Ａ２、Ｂ２、Ｃ２の下限値も正の値である）。データ“０１”の閾値電圧分布Ａ２が最も低い値を有し、データ“００”の閾値電圧分布Ｃ２が最も高い値を有し、各種閾値電圧分布の大小関係はＡ２＜Ｂ２＜Ｃ２である。下位ページ書き込みかつ上位ページ未書き込み状態のデータ“１０”のメモリセルは、正の閾値電圧分布Ａ１を有する。分布Ａ１は、その下限値も正の値である。
【００３０】
図７に示される閾値電圧分布はあくまで一例であって、第１実施形態はこれに限定されない。例えば、図７では閾値電圧分布Ａ２、Ｂ２、Ｃ２は全て正の電圧領域にある。しかしながら、閾値電圧分布Ａ２が負の電圧の領域にあり、閾値電圧分布Ｂ２、Ｃ２が正の電圧の領域にあってもよい。また、閾値電圧分布ＥＲ１およびＥＲ２が正の電圧領域にあってもよい。そのような分布は、例えばＢｉＣＳメモリが相当する。また、上の記述では、分布ＥＲ２、Ａ２、Ｂ２、Ｃ２がそれぞれデータ“１１”、“０１”、“１０”、“００”と対応づけられているが、別の対応であってもよい。たとえば分布ＥＲ２、Ａ２、Ｂ２、Ｃ２がそれぞれデータ“１１”、“０１” 、“００”、“１０”と対応していてもよい。
【００３１】
１つのメモリセルの２ビットデータは、下位ページデータと上位ページデータからなり、下位ページデータと上位ページデータは別々の書き込み動作、つまり、２回の書き込み動作により、メモリセルに書き込まれる。データを“＊＠”と標記するとき、＊は上位ページデータを、＠は下位ページデータを表している。
【００３２】
まず、下位ページデータの書き込みを、図７の１段目〜２段目を参照して説明する。書き込まれるメモリセルはみな消去状態の閾値電圧分布ＥＲを有している、すなわちデータ“１１”を記憶しているものとする。図７に示されるように、下位ページデータを書き込むと、メモリセルの閾値電圧分布ＥＲは、下位ページデータの値（“１”または“０”）に応じて、２つの閾値電圧分布ＥＲ１またはＡ１に分かれる。下位ページデータの値が“１”の場合、消去状態の閾値電圧分布ＥＲを維持するのでＥＲ１＝ＥＲであるが、ＥＲ１＞ＥＲであってもよい。下位ページデータの値が“０”の場合、メモリセルのトンネル酸化膜に高電界が印加し、フローティングゲート電極に電子を注入して、メモリセルの閾値電圧Ｖｔｈを所定量だけ上昇させる。具体的には、閾値電圧がベリファイ電圧ＶＡ１Ｖ以上となるまで書き込みが繰り返される。その結果、メモリセルは、書き込み状態（データ“１０”）に変化する。書き込みを所定回繰り返しても閾値電圧がベリファイ電圧ＶＡ１Ｖ以上にならなかった場合（またはベリファイ電圧ＶＡ１Ｖ未満の閾値電圧を有するメモリセル数が所定値以上の場合）、当該物理ページについてのデータ書き込みは「書き込みエラー」となる。
【００３３】
次に、上位ページデータの書き込みを、図７の２段目〜３段目を参照して説明する。上位ページデータの書き込みは、メモリチップ２０の外部から入力される書き込みデータ（上位ページデータ）と、メモリセルＭＣに既に書き込まれている下位ページデータとに基づいて行われる。すなわち、図７の２段目〜３段目に示されるように、上位ページデータの値が“１”の場合、メモリセルＭＣのトンネル酸化膜に高電界がかからないようにし、メモリセルの閾値電圧Ｖｔｈの上昇を防止する。その結果、データ“１１”保持状態のメモリセル（閾値電圧が分布ＥＲ１中にあるメモリセル）ＭＣは、データ“１１”保持状態を維持し（ＥＲ２状態）、データ“１０”（閾値電圧が分布Ａ１中にあるメモリセル）のメモリセルは、データ“１０”保持状態を維持する（Ｂ２状態）。ただし、各分布間の電圧マージンを確保するために、ベリファイ電圧ＶＡ１Ｖよりも大きい正のベリファイ電圧ＶＢ２Ｖを用いて閾値電圧分布の下限値を調整して、閾値電圧分布の幅を狭めた閾値電圧分布Ｂ２を形成するのが望ましい。下限値調整を所定回繰り返しても閾値電圧がベリファイ電圧ＶＢ２Ｖ以上にならなかった場合（またはベリファイ電圧ＶＢ２Ｖ未満の閾値電圧を有するメモリセル数が所定値以上の場合）、当該物理ページについてのデータ書き込みは「書き込みエラー」となる。
【００３４】
一方、上位ページデータの値が“０”の場合、メモリセルのトンネル酸化膜に高電界を印加し、フローティングゲート電極に電子を注入して、メモリセルの閾値電圧Ｖｔｈを所定量だけ上昇させる。具体的には、閾値電圧がベリファイ電圧ＶＡ２ＶまたはＶＣ２Ｖ以上となるまで書き込みが繰り返される。その結果、データ“１１”保持状態のメモリセル（閾値電圧が分布ＥＲ１中にあるメモリセル）は分布Ａ２中の閾値を有するデータ“０１”保持状態に変化し、データ“１０保持状態のメモリセル（閾値電圧が分布Ａ１中にあるメモリセル）は分布Ｃ２中の閾値を有するデータ“００”保持状態に変化する。このとき、ベリファイ電圧ＶＡ２Ｖ、ＶＣ２Ｖが用いられて、閾値電圧分布Ａ２、Ｃ２の下限値が調整される。書き込みを所定回繰り返しても閾値電圧がベリファイ電圧ＶＡ２ＶまたはＶＣ２Ｖ以上にならなかった場合（またはベリファイ電圧ＶＡ２ＶまたはＶＣ２Ｖ未満の閾値電圧を有するメモリセル数が所定値以上の場合）、当該物理ページについてのデータ書き込みは「書き込みエラー」となる。
【００３５】
データ消去においては、消去ベリファイ電圧Ｖｅｖ以下の閾値電圧となるまで消去が繰り返される。その結果、メモリセルは、消去状態（データ“１１”保持状態）に変化する。消去を所定回繰り返しても閾値電圧が消去ベリファイ電位Ｖｅｖ以下にならなかった場合（または消去ベリファイ電位Ｖｅｖ以下の閾値電圧を有するメモリセル数が所定値以上の場合）、当該物理ページについての消去は「消去エラー」となる。
【００３６】
以上が、一般的な４値記憶方式におけるデータ書き込み方式の一例である。３ビット以上の記憶方式についても、上記の動作に更に上位のページデータに応じ、閾値電圧分布を８通り以上に分割する動作が加わるのみであるので、基本的な動作は同様である。
【００３７】
次に、図８および図９を参照して、データ読み出しについて説明する。上記のように、例えば半導体記憶装置１が評価段階にあるか出荷後であるかに応じて、半導体記憶装置１は通常モードまたは自走モードで起動する。いずれのモードで起動するかは、ファームウェア領域２Ｆ中のファームウェアに依存する。以下は、通常モードでのデータ読み出しに関する。メモリセルＭＣに記憶されたデータに対応する閾値電圧は、プログラムディスターブ（ＰＤ）、リードディスターブ（ＲＤ）、および／またはデータリテンション（ＤＲ）の低下により変化する。プログラムディスターブまたはリードディスターブは、データ書き込みまたは読み出しの際に、メモリセルＭＣに印加される電圧によってメモリセルの閾値が意図せず変化してしまうことである。データリテンションは、経時変化によりメモリセルＭＣのデータ保持特性が劣化することを通じて悪化し得る。
【００３８】
図８に示されるように、プログラムディスターブおよび／またはリードディスターブによって、メモリセルＭＣの閾値電圧の分布は、破線で示されるように、高い方向に広がり、また／または移動する。このため、デフォルトで設定された各閾値電圧を読み出すための読み出し電圧（レベル）ＶＡ２ 、ＶＢ２、ＶＣ２、および非選択セルに印加される読み出し電圧Ｖｒｅａｄ２（下位ページのみ書かれた状態の場合は、それぞれ電圧ＶＡ１およびＶｒｅａｄ１）は、変化した各閾値電圧より低くなる結果となる。このため、正しくデータを読み出すことができない。メモリセルＭＣが受けるプログラムディスターブの影響に関しては、例えば、特許文献４に開示されている。メモリセルＭＣが受けるリードディスターブの影響に関しては、例えば、特許文献５に開示されている。
【００３９】
一方、図９に示されるように、メモリセルＭＣのデータリテンションが悪化すると、メモリセルＭＣの閾値電圧の分布は、破線で示されるように、低い方向に広がり、また／または移動する。このため、デフォルトで設定された各閾値電圧を読み出すための読み出しレベルＶＡ２、ＶＢ２、ＶＣ２は、変化した各閾値電圧より高くなる結果となる。このため、正しくデータを読み出すことができない。メモリセルＭＣのデータリテンション特性に関しては、例えば、特許文献６に開示されている。
【００４０】
プログラムディスターブ、リードディスターブ、データリテンション悪化の現象は、図８および図９に示すような３値以上のデータを記憶するＭＬＣ（Multi Level Cell） の場合に限らず２値データを記憶するＳＬＣ（Single Level Cell）の場合も同様である。ただし、ＭＬＣの場合は、ＳＬＣの場合に比較して閾値分布間のマージンに係る制約が厳しいため、プログラムディスターブ、リードディスターブ、データリテンション悪化の影響はより顕著である。
【００４１】
以上の現象に対して、いわゆるリトライ読み出し（またはシフト読み出し）と呼ばれる動作が行われることがある。データ読み出しの際、まず、最初の読み出しの際のＥＣＣを用いた誤り訂正が試みられる。エラービット数が多いために誤り訂正が不可能（ＥＣＣエラー） であった場合、リトライ読み出しが行われ、再度ＥＣＣを用いた誤り訂正が実行される。このようなデータ読み出しによってシステムとしての不良率が改善する。具体的には、以下の通りである。
【００４２】
図１０は、第１実施形態に係る半導体記憶装置によるリトライ読み出しのフローの例を示している。通常モード用のファームウェアは、図１０に示されるフローを記憶装置制御部３に実行させる。記憶装置制御部３は、このファームウェアに基づいて、図１０に示されるフローを行えるように構成されている。
【００４３】
まず、図１０に示されるように、記憶装置制御部３は、データ読み出し命令と、読み出し対象のメモリセルのアドレスを受信することによってデータ読み出しを開始する。実際には、記憶装置制御部３は、読み出し対象のデータを特定する論理アドレスを論物変換テーブルを用いて対応する物理アドレスに変換し、変換された物理アドレスをメモリ２に供給する。
【００４４】
まず、記憶装置制御部３は、メモリ２を制御して、例えばデフォルトの読み出しレベルを用いてメモリセルＭＣからデータを読み出す（ステップＳ２１）。記憶装置制御部３は、読み出されたデータに対してＥＣＣを用いて誤り訂正を行い、誤り訂正が可能であるかを判定する（ステップＳ２２）。エラービット数が少ないためＥＣＣを用いた誤り訂正が可能な場合、記憶装置制御部３は、読み出されたデータを半導体記憶装置１の外部に出力する。こうして、データ読み出しは終了する。一方、ステップＳ２２において誤り訂正が不可能な場合、記憶装置制御部３は、リトライ読み出しを行う（ステップＳ２３）。リトライ読み出しは、ステップＳ３１〜Ｓ３５を含んでいる。
【００４５】
ステップＳ３１において、記憶装置制御部３は、メモリ２によって用いられる読み出しレベルをデフォルトの値からシフトさせる。記憶装置制御部３は、メモリ２を制御して、シフトされた読み出しレベルを用いてメモリセルＭＣからデータを読み出す（ステップＳ３２）。このメモリセルは、ステップＳ２１のデータ読み出しの対象のメモリセルと同じである。記憶装置制御部３は、ステップＳ２２と同様に、読み出されたデータの誤りをＥＣＣを用いて訂正し、誤り訂正が不可能であるかを判定する（ステップＳ３３）。誤り訂正が可能な場合、記憶装置制御部３は、読み出し対象のメモリセルＭＣをリフレッシュする（ステップＳ３４）。すなわち、読み出し対象のメモリセルＭＣのデータをＥＣＣ訂正後のデータを用いて書き直す。また、ステップＳ３４において、記憶装置制御部３は、読み出されたデータを半導体記憶装置１の外部に出力する。こうして、データ読み出しは終了する。
【００４６】
一方、ステップＳ３３において、誤り訂正が不可能な場合、ステップＳ３２が再度行われる。または、ステップＳ３１およびＳ３２の組が再度行われてもよい。すなわち、さらにシフトされた読み出しレベルを用いてデータが読み出される。ステップＳ３３は、ステップＳ３２の繰り返し回数が所定値に達したかの判定も含んでいる。すなわち、記憶装置制御部３は、ステップＳ３２の繰り返し回数が所定値に達したと判断すると、ステップＳ３５に移行する。ステップＳ３５において、記憶装置制御部３は、読み出し対象のメモリセルをＭＣ含んだブロック（またはページ）をバッドブロックとして登録する（ステップＳ３５）。バッドブロックを特定するための情報は、例えば、メモリ２中に保持されており、バッドブロックはデータの保持に使用されない。ステップＳ３５は、また、記憶装置制御部３は、データ読み出しがエラーにより終了したことを示すステータスを半導体記憶装置１の外部（例えばホスト装置１０）に出力することを含んでいる。
【００４７】
図１１は、第１実施形態に係る半導体記憶装置によるリトライ読み出しのフローの別の例を示している。図１１のリトライ読み出し（ステップＳ２３）は、ステップＳ３５、Ｓ３４、Ｓ４１〜Ｓ４８を含んでいる。リトライ読み出しにおいて、まず、記憶装置制御部３は、メモリ２によって用いられる読み出しレベルをデフォルトの値から正の方向にシフトさせる（ステップＳ４１）。記憶装置制御部３は、メモリ２を制御して、シフトされた読み出しレベルを用いてメモリセルＭＣからデータを読み出す（ステップＳ４２）。記憶装置制御部３は、ステップＳ２２と同様に、読み出されたデータの誤りをＥＣＣを用いて訂正し、誤り訂正が不可能であるかを判定する（ステップＳ４３）。誤り訂正が可能な場合、フローはステップＳ３４に移行する。
【００４８】
一方、ステップＳ４３において、誤り訂正が不可能な場合、記憶装置制御部３は、読み出しレベルをデフォルトの値から負の方向にシフトさせる（ステップＳ４６）。または、図１０と同様に、ステップＳ４３の後、ステップＳ４２が再度行われてもよい。さらに、ステップＳ４１において読み出しレベルがさらに正の方向にシフトされてからステップＳ４２が再度行われてもよい。読み出しが繰り返される場合は、図１０と同様に、ステップＳ４３でステップＳ４２の繰り返し回数が所定値に達した場合にフローはステップＳ４６に移行する。
【００４９】
ステップＳ４６において、記憶装置制御部３は、メモリ２を制御して、シフトされた読み出しレベルを用いてメモリセルＭＣからデータを読み出す（ステップＳ４７）。記憶装置制御部３は、ステップＳ２２と同様に、読み出されたデータの誤りをＥＣＣを用いて訂正し、誤り訂正が不可能であるかを判定する（ステップＳ４８）。誤り訂正が可能な場合、フローはステップＳ３４に移行する。誤り訂正が不可能な場合、フローはステップＳ３５に移行する。または、図１０と同様に、ステップＳ４８の後、ステップＳ４７が行われてもよい。さらに、ステップＳ４６において読み出しレベルがさらに負の方向にシフトされてからステップＳ４７が再度行われてもよい。読み出しが繰り返される場合は、図１０と同様に、ステップＳ４８でステップＳ４７の繰り返し回数が所定値に達した場合にフローはステップＳ４６に移行する。
【００５０】
図１１では、例として、読み出しレベルがまず正の方向へのシフト後にデータが読み出され、次いで負の方向へのシフト後にデータが読み出される。しかしながら、シフトの方向の順序は逆でもよい。
【００５１】
次に、自走モードについて説明する。例えば半導体記憶装置１が評価段階にある場合、メモリ２のファームウェア領域２Ｆには、自走モード用のファームウェアが書き込まれている。このため、半導体記憶装置１に電源が導入されると、半導体記憶装置１は、自走モードに入る。図１２は、第１実施形態に係る半導体記憶装置１による自走モードのフローの例を示している。自走モード用のファームウェアは、図１２に示されるフローを記憶装置制御部３に実行させる。記憶装置制御部３は、このファームウェアに基づいて、図１２に示されるフローを行えるように構成されている。
【００５２】
自走モードにある記憶装置制御部３は、図１２のフローを行うために、例えば図１３に示される機能ブロックを有する。記憶装置制御部３は、少なくとも、メモリ制御部３ａ、誤り訂正部３ｂ、スクリーニング制御部３ｃを含んでいる。メモリ制御部３ａは、メモリ２でのデータ読み出し、書き込み、消去を制御する。誤り訂正部３ｂは、誤り訂正符号の生成、および誤り訂正を行う。メモリ制御部３ａ、誤り訂正部３ｂは、スクリーニング中は、スクリーニング制御部３ｃの制御に従う。メモリ制御部３ａは、読み出しレベルの変更もできるようになっていてもよい。メモリ制御部３ａ、誤り訂正部３ｂは、通常モードでのものと共通していてもよい。通常モードでは、メモリ制御部３ａ、誤り訂正部３ｂは、スクリーニング制御部３ｃとは別の通常モード用の制御部の制御に従う。
【００５３】
自走モードにおいて、記憶装置制御部３は、ＮＡＮＤスクリーニング（スクリーニング）と呼ばれる処理を自律的に行う。スクリーニングとは、各ブロックについてデータ消去、データ書き込み、データ読み出しを繰り返してメモリをエージングさせることを含んでいる。エージングの過程で、不良と判断されたブロックをバッドブロックに分類して、使用されないようにする。不良との判断は、例えば、データ消去不良、データ書き込み不良、ＥＣＣによる訂正不能等に基づく。エージングを行いながらバッドブロックを検出することによって、半導体記憶装置１の信頼性を高めることができる。例えば、適当なエージングを経て不良となるブロックは、エージング無しでは検査に合格するとしても、出荷後の少ない使用の結果で不良になる可能性が高いとの現象に基づく。エージングさせながらの評価を行うことによって、このようなブロックをもバッドブロック化して、初期不良を減ずることが可能である。スクリーニングは、図１２に示されるように、概して、ブロック選択、データ消去、データ書き込み、データ読み出しの組を繰り返すことを含んでいる。ステップＳ５１〜Ｓ５８は、１ループ目のためのものであり、ステップＳ６１〜Ｓ７０は２ループ目以降のためのものである。
【００５４】
図１２に示されるように、スクリーニング制御部３は、処理済みリストをクリアする（ステップＳ５１）。処理済みリストは、メモリ２中のスクリーニング対象ブロックの各々についての処理の完了／未完了を示し、例えば自走モード中に記憶装置制御部３中のＲＡＭ上に作成される。スクリーニング対象ブロックは、例えばメモリ２のユーザデータ領域２Ｕ中の全ブロックである。ファームウェア領域２Ｆおよび管理情報領域２Ｍの一方または両方、あるいはその他の領域が含まれてもよい。スクリーニング制御部３は、処理済みリストに基づいて、１つの未処理（未判定）のブロックを選択する（ステップＳ５２）。記憶装置制御部３は、選択されたブロック中のデータ、すなわちこのブロック中の全メモリセルのデータを消去する（ステップＳ５３）。
【００５５】
スクリーニング制御部３ｃは、記憶装置制御部３は、選択されているブロックの全ページ（下位ページおよび上位ページの両方を含む）に特定のデータを書き込む（ステップＳ５４）。書き込まれるデータは、データ本体と、この本体に基づいて生成された誤り訂正用の冗長ビット（ＥＣＣ）とを含んでおり、スクリーニング制御部３ｃおよび誤り訂正部３ｂにより生成される。各メモリセルＭＣのエージングとスクリーニングを均一に行うために、本体データは乱数であることが望ましい。さらに望ましくは、本体データは、ステップごとあるいはループごとに生成される乱数である。
【００５６】
スクリーニング制御部３ｃはメモリ制御部３ａを通じて、スクリーニング目的でデータ読み出しを行い、現在選択されているブロックについて良品または不良品かの判定を行う（ステップＳ５６）。すなわち、選択されているブロック中のあるページからデータを順次読み出し、読み出されたデータに対してＥＣＣを用いて誤り訂正を行う。この一連の処理を全ページに対して行う。例えば選択されているブロック中の各ページのデータが誤り訂正可能な場合、このブロックは良品と判定される。選択されているブロックが、誤り訂正不能のデータを含んだページを含んでいない場合、このブロックは良品と判断される。スクリーニング目的のデータ読み出しについては後に詳述する。なお、ステップＳ５６では、誤り訂正可能であるかどうかの判定のみを行い、実際に読み出しデータの誤り訂正を行わないようにしてもよい。
【００５７】
なお、誤り訂正不可能なブロックがあった場合、半導体記憶装置１を不良品とみなしてもよい。その場合、たとえば、誤り訂正不可能であった場合、スクリーニングを即座に終了し、電源線１２内のたとえばＤＡＳ／ＤＳＳ信号線を介してＬＥＤを高速点滅させることにより、スクリーニングが異常終了して記憶装置１が不良品であることを外部に通知するようにすることが望ましい。
【００５８】
次に、スクリーニング制御部３ｃは、現在選択されているブロックを処理済みリストに加える（ステップＳ５７）。また、スクリーニング制御部３ｃは、処理済みリストを参照して、処理されることになっている全ブロックが処理されたかを判断する（ステップＳ５８）。未処理のブロックが残っている場合は、フローはステップＳ５２に戻る。ステップＳ５２において、スクリーニング制御部３ｃは、別のブロックを選択する。ブロックの選択は、任意の規則に基づくことができる。例えば、最初のブロック選択の際には、ブロックアドレス＝０を選択し、次はブロックアドレス＝１が選択され、ブロック選択ごとにアドレスが１だけ増加される。こうして、シーケンシャルにブロックが選択される。または、例えばスクリーニング制御部３ｃはブロックアドレスがランダムに行に沿って並んだブロックアドレスリストを作成し、行順に記載のブロックアドレスが選択される。
【００５９】
ステップＳ５８において、全ブロックが処理されていた場合、全ブロックに対する１ループ目の処理が完了する。次いで、フローはステップＳ６１に移行する。ステップＳ６１以降は、処理対象の全ブロックへの２ループ目以降の処理のためのものである。ステップＳ６１、Ｓ６２は、１ループ目のステップＳ５１、Ｓ５２とそれぞれ同じである。次いで、スクリーニング制御部３ｃは、スクリーニング目的のデータ読み出しとブロックの判定を行う（ステップＳ６３）。ステップＳ６３は、ステップＳ５６と同じである。次に、スクリーニング制御部３ｃは、ステップＳ６４、Ｓ６５、Ｓ６７、Ｓ６８を行う。ステップＳ６４、Ｓ６５、Ｓ６７、Ｓ６８、Ｓ６９は、それぞれ、１ループ目のステップＳ５３、Ｓ５４、Ｓ５６、Ｓ５７、Ｓ５８と同じである。ステップＳ６９で未処理のブロックが残っている場合は、フローはステップＳ６１に戻り、全ブロックが処理されると、フローはステップＳ７０に移行する。
【００６０】
ステップＳ６３およびステップＳ６７では、誤り訂正可能であるかどうかの判定のみを行い実際に読み出しデータの誤り訂正を行わないようにしてもよいし、実際に読み出しデータの誤り訂正を行なうようにしても良い。
【００６１】
なお、誤り訂正不可能なブロックがあった場合記憶装置１を不良品とみなしてもよい。その場合、たとえば、誤り訂正不可能であった場合、ループを終了してスクリーニングを即座に終了し、電源線１２内のたとえばＤＡＳ／ＤＳＳ信号線を介してＬＥＤを高速点滅させることにより、スクリーニングが異常終了して記憶装置１が不良品であることを外部に通知するようにすることが望ましい。
【００６２】
ステップＳ７０において、スクリーニング制御部３ｃは、ステップＳ５１の開始から所定時間経過したかを判断する。所定時間経過していない場合、ステップＳ６１〜Ｓ６９からなるループが繰り返される。所定時間は、スクリーニングにおいて望まれるエージングの程度に基づいて定まるループ回数に基づいて決定される。または、ステップＳ７０において、ステップＳ６１〜Ｓ６９からなるループの回数が、所定の回数と比較されてもよい。ステップＳ７０の判定がＹｅｓの場合、スクリーニングは終了する。
【００６３】
上記のように１ループ目は、ブロック選択、データ消去、データ書き込み、データ読み出しを１セットとして用いるのに対して、２ループ目以降では、データ読み出し（プレリード）、ブロック選択、データ消去、データ書き込み、データ読み出しが１セットとされている。こうすることにより、スクリーニングの信頼性を高めることができる。すなわち、例えばあるループで処理済みのブロックに、同一ループまたはその後のループにおける別のブロックへのアクセスによってデータが誤って書き込まれてしまうことがある。プレリードが無ければ、この誤書き込みされたブロックについてのその後のループでの処理はデータ消去から開始するので、このような誤書き込みを検出できない。一方、プレリードがあれば、そのような誤書き込みされたブロックを検出できる。あるいは、例えばあるループで処理済みのブロックが、同一ループまたはその後のループにおける別のブロックへのアクセスによってデータが誤って消去されてしまうことがある。プレリードが無ければ、この誤消去されたブロックについてのその後のループでの処理はデータ消去から開始するので、このような誤書き込みを検出できない。一方、プレリードがあれば、そのような誤消去されたブロックを検出できる。あるいは、例えばあるブロックがデータを書き込まれた後にデータ消去されるまで一定の時間間隔が空くため、消去前にプレリードによりデータを再度読みだすことにより、データリテンションの悪いブロックを不良品としてスクリーニングすることができる。
【００６４】
プレリードにおいて、スクリーニング制御部３ｃは、選択されているブロック中のあるページからデータを順次読み出し、読み出されたデータに対してＥＣＣを用いて誤り訂正を行う。この一連の処理を全ページに対して行う。例えば選択されているブロック中の各ページのデータが誤り訂正不可能の場合、当該ブロックは不良品と判断され、バッドブロックに追加される。誤り訂正不可能なブロックがあった場合、記憶装置１を不良品とみなしてスクリーニング処理を即座に終了してもよい。
【００６５】
スクリーニング中は、ホスト装置１０は不要である。このため、スクリーニング中は、半導体記憶装置１は、電源装置４０にのみ接続されれば動作が可能であり、そのようにすることが好ましい。図１４は、第１実施形態に係る半導体記憶装置１のスクリーニング中の接続の例を示している。図１４に示されるように、半導体記憶装置１（具体的には、電源供給部５）は、電源線１２を介して電源装置４０から電源を受け取る。また、スクリーニングは、図１５に示されるように、１つの設備を用いて複数の半導体記憶装置１に同時に行うことができる。このことは、コスト抑制やスループット増加をもたらし得るため、好ましい。図１５は、第１実施形態に係る半導体記憶装置１のスクリーニング中の接続の別の例を示している。図１５に示されるように、複数の半導体記憶装置１が、恒温槽４１中に配置される。各半導体記憶装置１は、電源線１２を介して共通の電源装置４０に接続されている。
【００６６】
次に、図１６を参照して、図１２のステップＳ５６、Ｓ６３、Ｓ６７のスクリーニング目的のデータ読み出しについて説明する。図１６は、第１実施形態に係る半導体記憶装置のスクリーニング中のデータ読み出しのフローを示しており、ステップＳ５６、Ｓ６３、Ｓ６７の詳細に対応する。自走モード用のファームウェアは、図１６に示される、スクリーニング目的のデータ読み出しを記憶装置制御部３（特にスクリーニング制御部３ｃ）に実行させる。記憶装置制御部３（特にスクリーニング制御部３ｃ）は、このファームウェアに基づいて、図１６に示されるフローを行えるように構成されている。
【００６７】
図１６に示されるように、ステップＳ７１において、スクリーニング制御部３ｃは、メモリ制御部３ａを通じて選択されているブロック中のあるページからデータを順次読み出し（ステップＳ７１）、誤り訂正部３ｂを通じて読み出されたデータの誤りをＥＣＣを用いて訂正する（ステップＳ７２）。スクリーニング制御部３ｃは、また、ステップＳ７１、Ｓ７２による一連の処理を選択中のブロック中の全ページに対して行って、このブロック中の誤りが全て訂正可能かを判定する。訂正可能であれば、選択中のブロックについてのデータ読み出しおよび判定は終了する。一方、訂正不能のデータが含まれていた場合、スクリーニング制御部３ｃは、選択中のブロックをバッドブロックとして判定し（ステップＳ７３）、フローは終了する。リトライ読み出しは行われない。理由を以下に述べる。
【００６８】
上記のように、通常モードにおいてはリトライ読み出しによって、プログラムディスターブ、リードディスターブ、データリテンション悪化による閾値電圧変化があった場合も、データを正しく読み出せる。一方、リトライ読み出しによって正しくデータを読み出せるブロックは、出荷後の早い段階でバッドブロックとなる可能性が高い。そこで、リトライ読み出しが発生する条件を満たしたブロックをもスクリーニングにおいてバッドブロックと判定することにより、出荷後には、より良質なブロックのみが残ることになる。そのために、スクリーニングの際はリトライ読み出しが行われない。また、リトライ読み出しは、リトライ読み出し無しの読み出しに加えて余分な処理を含んでいるため、データ読み出しに要する時間を増加させる。このため、リトライ読み出しを必要とするブロックをスクリーニングの際にバッドブロックに分類することにより、出荷後の半導体記憶装置１の性能低下を防止できる。
【００６９】
以上説明したように、第１実施形態に係る半導体記憶装置によれば、通常モード時はリトライ読み出しが行われ、スクリーニング（自走モード）の際は、リトライ読み出しは行われない。こうすることにより、信頼性の低いブロックを効率よくスクリーニングすることが可能になる。また、出荷後の早い段階でリトライ読み出しに頼ることになるであろうブロックを予め排除することにより、使用初期段階でのリトライ読み出し発生率を抑制できる。この結果、半導体記憶装置の性能劣化を抑制することができる。また、スクリーニングの効率が増大することで、スクリーニングを行う時間を短縮でき、評価および製造コストを低減させることができる。
【００７０】
（第２実施形態）
第２実施形態は、スクリーニング目的のデータ読み出しが、第１実施形態と異なる。図１７は、第２実施形態に係る半導体記憶装置のスクリーニング中のデータ読み出しのフローを示しており、図１２のステップＳ５６、Ｓ６３、Ｓ６７の詳細に対応する。したがって、第２実施形態に係る自走モード用のファームウェアは、図１７に示されるデータ読み出しを記憶装置制御部３（特にスクリーニング制御部３ｃ）に実行させる。記憶装置制御部３（特にスクリーニング制御部３ｃ）は、このファームウェアに基づいて、図１７に示されるフローを行えるように構成されている。
【００７１】
図１７に示されるように、図１６のステップＳ７２に代えてステップＳ８２が行われる。ステップＳ８２において、記憶装置制御部３は、読み出されたデータの誤りをＥＣＣを用いて訂正する。スクリーニング制御部３ｃは、また、ステップＳ７１、Ｓ８２による一連の処理を選択中のブロック中の全ページに対して行って、誤り訂正されたビット数をペジごとやブロックやその他ＥＣＣ訂正単位ごとに計数する。スクリーニング制御部３ｃはまた、ステップＳ８２において、選択されているブロック中の誤り訂正されたビットの数が閾値Ｘを超えているかを判定する。ステップＳ８２の判定がＮｏの場合、選択中のブロックについてのデータ読み出しおよび判定は終了する。一方、ステップＳ８２の判定がＹｅｓの場合、フローはステップＳ７３に移行する。
【００７２】
第１実施形態では、誤り訂正不能なエラーを含んだブロックがバッドブロックとして分類される。すなわち、ブロックから読み出されたデータに誤りが含まれていても、これを訂正可能であれば、そのブロックは良品と判定される。しかしながら、誤り訂正ビット数を多く含むブロックは、時間の経過とともに、プログラムディスターブ、リードディスターブ、リテンション悪化等に起因して、誤り訂正により救済できないブロックに変化する可能性がある。また、誤り訂正ビット数を多く含むブロックは、ユーザによる半導体記憶装置１の使用の際のデータ書き込みおよびデータ読み出しに長い時間を要し得る。このことは、半導体記憶装置１の動作不良やユーザの利便性の低下につながる。そこで、このような事情を考慮して、スクリーニング制御部３ｃは、誤り訂正により救済可能なブロックであっても、誤り訂正ビット数が閾値を超えると判定されたブロックをもバッドブロックに分類する。こうして、将来不良になる可能性の高いブロックをも排除することができる。
【００７３】
第２実施形態のスクリーニング目的の読み出し動作は、誤り訂正ビット数の判定のみを行い実際に読み出しデータの誤り訂正を行わないようにしてもよいし、実際に読み出しデータの誤り訂正を行なうようにしても良い。
【００７４】
第２実施形態の読み出し動作は、第１実施形態のプレリード動作にも適用可能であることはもちろんである。
【００７５】
第２実施形態の記述において触れていない全ての点について、第１実施形態の記述が第２実施形態にも適用される。
【００７６】
以上説明したように、第２実施形態に係る半導体記憶装置によれば、第１実施形態と同じく、通常モード時はリトライ読み出しが行われ、スクリーニング（自走モード）の際は、リトライ読み出しは行われない。この点に基づき、第１実施形態と同じ利点を得られる。また、第２実施形態では、スクリーニング時のデータ読み出しにおいて、誤り訂正ビット数が閾値を超えると判定されたブロックはバッドブロックに分類される。この点に基づき、より良質なブロックのみを良品と判定することができ、ひいては半導体記憶装置の性能劣化を一層抑制することができる。
【００７７】
（第３実施形態）
第３実施形態では、スクリーニング時のデータ読み出しが、メモリ２中の対象とする領域に基づいて異なる。図１８は、第３実施形態に係る半導体記憶装置のスクリーニング中のデータ読み出しのフローを示しており、図１２のステップＳ５６、Ｓ６３、Ｓ６７の詳細に対応する。したがって、第３実施形態に係る自走モード用のファームウェアは、図１８に示されるデータ読み出しを記憶装置制御部３（特にスクリーニング制御部３ｃ）に実行させる。記憶装置制御部３（特にスクリーニング制御部３ｃ）は、このファームウェアに基づいて、図１８に示されるフローを行えるように構成されている。
【００７８】
図１８に示されるように、記憶装置制御部３は、選択されているブロックがユーザデータ領域２Ｕに属するか、またはその他の例えばファームウェア領域２Ｆあるいは管理情報領域２Ｍに属するかを判定する（ステップＳ９１）。判定がＹｅｓの場合、スクリーニング制御部３ｃは、図１６のステップＳ７１〜Ｓ７３を行う。ステップＳ７２に代えて第２実施形態の図１７のステップＳ８２が行われてもよい。
【００７９】
一方、ステップＳ９１での判定がＮｏの場合、スクリーニング制御部３ｃは、メモリ制御部３ａを通じて選択されているブロック中のあるページからデータを順次読み出し（ステップＳ９２）、誤り訂正部３ｂを通じて読み出されたデータの誤りをＥＣＣを用いて訂正する（ステップＳ９３）。ステップＳ９２、Ｓ９３は、図１５のステップＳ７１、Ｓ７２と同じである。スクリーニング制御部３ｃは、また、ステップＳ９１、Ｓ９２による一連の処理を選択中のブロック中の全ページに対して行って、このブロック中の誤りが全て訂正可能かを判定する。訂正可能であれば、選択中のブロックについてのデータ読み出しおよび判定は終了する。一方、訂正不能のデータが含まれていた場合、スクリーニング制御部３ｃは、リトライ読み出しと誤り訂正を行う。すなわち、スクリーニング制御部３ｃは、図１０のステップＳ３１、Ｓ３２と同様に、読み出しレベルをデフォルトの値からシフトさせ（ステップＳ９４）、シフトされた読み出しレベルを用いてメモリセルからデータを読み出す（ステップＳ９５）。スクリーニング制御部３ｃは、図１０のステップＳ３３と同様に、誤り訂正部３ｂを通じて読み出されたデータの誤りをＥＣＣを用いて訂正し、ＥＣＣにより誤り訂正が不可能であるかを判定する（ステップＳ９６）。ＥＣＣによる誤り訂正が可能な場合、スクリーニング制御部３ｃは、図１０のステップＳ３４と同様に、メモリ制御部３ａを通じて、読み出し対象のメモリセルをリフレッシュする（ステップＳ９７）。
【００８０】
一方、ステップＳ９５において、誤り訂正が不可能な場合、通常モード時と同様に、ステップＳ９４が再度行われる。または、ステップＳ９３およびＳ９４の組が再度行われてもよい。ステップＳ９５においても、スクリーニング制御部３ｃは、ステップＳ９４の繰り返し回数が所定値に達したと判断すると、ステップＳ７３に移行する。
【００８１】
以上説明したように、第３実施形態に係る半導体記憶装置によれば、第１実施形態と同じく、通常モード時およびメモリのユーザデータ領域以外の領域の読み出しの際はリトライ読み出しが行われ、メモリのユーザデータ領域のスクリーニングの際は、リトライ読み出しは行われない。この点に基づき、第１実施形態と同じ利点を得られる。また、第３実施形態では、自走モードであってもファームウェア領域や管理領域にはリトライ読み出しを行う。これにより、自走モード中にファームウェア領域や管理領域の読み出しに失敗して半導体記憶装置が故障したり制御不能になったりすることを防止できる。
【００８２】
（第４実施形態）
第４実施形態は、ファームウェアによる通常モードおよび自走モードの切り替えに関し、第１〜第３実施形態の任意のものに適用可能である。
【００８３】
図１９は、第４実施形態に係るファームウェアに応じた半導体記憶装置のモードの移行の例を示している。第４実施形態では、通常モード用のファームウェアと自走モード用のファームウェアが用意される。説明の開始として、半導体記憶装置１には通常モード用ファームウェアが書き込まれているものとする。この状態で半導体記憶装置１に電源を供給すると、半導体記憶装置１は通常モードで起動する（状態Ｔ１）。その後、半導体記憶装置１への電源の遮断および再投入の度に、半導体記憶装置１は状態Ｔ１に入る。
【００８４】
一方、状態Ｔ１において、通常モード用ファームウェアが自走モード用ファームウェアに書き換えられると、半導体記憶装置１は状態Ｔ２に移行する。ファームウェアの書き換えは、上記のように、半導体記憶装置１がサポートするインターフェースにおいて定義されているコマンドを用いて行うことができる。例えば、上記のように、ASC-2準拠のDownload Microcodeが用いられる。通常モード用および自走モード用ファームウェアは、例えばインターネット接続されたサーバに保存されている。図２０のテスタ装置４３がインターネット接続を通じてこのサーバに通信可能に接続され、ファームウェアがインターネット接続を通じてテスタ装置４３にダウンロードされ、テスタ装置４３により、インターフェース１１を介して上記のコマンドを用いてファームウェアが半導体記憶装置１のファームウェア領域２Ｆに書き込まれる。
【００８５】
あるいは、通常モード用および自走モード用ファームウェアは、例えばＤＶＤ−ＲＯＭのような光学メディアやＵＳＢメモリのような不揮発性記憶メディアに保存されていてもよい。半導体記憶装置１のテスタ装置４３がこれら記憶媒体に接続され、テスタ装置４３により、インターフェース１１を介して上記のコマンドを用いてファームウェアが半導体記憶装置１のファームウェア領域２Ｆに書き込まれる。
【００８６】
状態Ｔ２にある半導体記憶装置１への電源遮断後に電源を供給すると、半導体記憶装置１は自走モードで起動して状態Ｔ３に移行する。状態Ｔ３にある半導体記憶装置１への電源の遮断および再投入の度に、半導体記憶装置１は状態Ｔ３に入る。すなわち、自走モードで起動する。状態Ｔ３にある半導体記憶装置１において、第１〜第３実施形態に基づいてスクリーニングが行われる。スクリーニング終了後、自走モード用ファームウェアがテスタ装置４３により通常モード用ファームウェアに書き換えられて、半導体記憶装置１は状態Ｔ４に移行する。状態Ｔ４にある半導体記憶装置１への電源遮断後に電源を供給すると、半導体記憶装置１は通常モードで起動して状態Ｔ１に移行する。
【００８７】
テスタ装置４３は、図１のホスト装置１０と同等の構成や半導体記憶装置１との接続形態をとり、スクリーニングの前の前処理や、スクリーニング後のテスト工程のために使用される。スクリーニングの前に、図２０に示されるように、図１と同様に半導体記憶装置１とテスタ装置４３とが電源線１２とインターフェース１１とで接続される。次いで、ファームウェア領域２Fが書き換えられ（状態Ｔ１から状態Ｔ２への遷移）、半導体記憶装置１とテスタ装置４３との間の電源線１２およびインターフェース１１とが切断され、半導体記憶装置１と電源装置４０とが電源線１２で接続されて状態Ｔ３に移行し、スクリーニングが開始される。スクリーニング終了後は、半導体記憶装置１と電源装置４０との間の電源線１２が切断され、半導体記憶装置１とテスタ装置４３とが電源線１２とインターフェース１１とで接続され、ファームウェア領域２Fが書き換えられ（状態Ｔ３から状態Ｔ４への遷移）、電源線１２の切断後に再度電源線１２が接続される。こうして、最終的に状態がＴ１に遷移する。
【００８８】
なお、download microcodeコマンドの使用によるファームウェア領域２Fの書き換え後、電源切入を経ないと状態Ｔ２からＴ３や、Ｔ４からＴ１への遷移は起こらないと説明した。しかしながら、これに限らず、download microcodeコマンドの受信後即座にＴ１→Ｔ２→Ｔ３の状態遷移や、Ｔ３→Ｔ４→Ｔ１の状態遷移が電源切入を経ずに起こるようにしてもよい。また電源切入の代わりに、電源切入時の内部処理をファームウェアに実現させるコマンドを使用することで、電源切入を擬似的に実現しても良い。
【００８９】
説明の便宜上、通常モード用ファームウェアが書き込まれている状態から説明を開始した。しかしながら、半導体記憶装置１に自走モード用ファームウェアが書き込まれている状態（状態Ｔ３）から開始しても、上記の説明に変わりはない。
【００９０】
以上説明したように、第４実施形態では、通常モード用のファームウェアと自走モード用のファームウェアが用意される。これにより、通常モードと自走モードを明確に分離して処理したり、通常モード用ファームウェアと自走モード用ファームウェアを明確に分離してファームウェアを開発することが可能であるため、スクリーニング処理部が通常モードにおいて誤って動作したり、スクリーニング処理においてリトライ読み出しが行われたりすることを防止することができる。また、通常モード用ファームウェアと自走モード用ファームウェアを明確に分離して独立した開発チームによりファームウェアを開発することが可能となるため、ファームウェアの開発効率の点でも望ましい。また、半導体記憶装置の出荷前に自走モード用ファームウェアは通常モード用ファームウェアに書き換えられるため、出荷後の記憶装置から自走モード用ファームウェアの処理内容をリバースエンジニアリングされることを防止できる。
【００９１】
（第５実施形態）
第５実施形態は、ファームウェアによる通常モードおよび自走モードの切り替えに関し、第１〜第３実施形態の任意のものに適用可能である。第５実施形態は、モードの切り替え方が第４実施形態と異なる。
【００９２】
図２１は、第５実施形態に係るファームウェアに応じた半導体記憶装置のモードの移行の例を示している。第５実施形態では、ファームウェアは、通常モード用の部分と自走モード用の部分の両方を含んでいる。やはり、説明の開始として、半導体記憶装置１は通常モードで起動している（状態Ｔ１１）とする。この状態で、半導体記憶装置１への電源の遮断および再投入の度に、半導体記憶装置１は状態Ｔ１１に入る。
【００９３】
状態Ｔ１１において、テスタ装置４３から発行されるコマンドにより半導体記憶装置１は状態Ｔ１２に移行させられる。コマンドは、上記のように、半導体記憶装置１がサポートするインターフェースにおいて定義されているコマンドを用いて行うことができる。例えば、上記のように、INCITS ACS-2準拠のSCTコマンドやその他ベンダー独自コマンドが用いられる。コマンドは、記憶装置制御部３において受信される。
【００９４】
状態Ｔ１２にある半導体記憶装置１への電源遮断後に電源を供給すると、半導体記憶装置１は自走モードで起動して状態Ｔ１３に移行する。状態Ｔ１３にある半導体記憶装置１への電源の遮断および再投入の度に、半導体記憶装置１は状態Ｔ１３に入る。すなわち、自走モードで起動する。状態Ｔ１３にある半導体記憶装置１において、第１〜第３実施形態に基づいてスクリーニングが行われる。スクリーニング終了後、コマンドにより半導体記憶装置１は、状態Ｔ１４に移行させられる。状態Ｔ１４にある半導体記憶装置１への電源遮断後に電源を供給すると、半導体記憶装置１は通常モードで起動して状態Ｔ１１に移行する。
【００９５】
テスタ装置４３は、第４実施形態（図２０）と同じく、スクリーニングの前に電源線１２とインターフェース１１とを介して半導体記憶装置１に接続される。次いで、状態Ｔ１１から状態Ｔ１２への遷移コマンドがテスタ装置４３から発行され、半導体記憶装置１とテスタ装置４３との間の電源線１２およびインターフェース１１とが切断される。次に、半導体記憶装置１と電源装置４０とが電源線１２で接続されて状態Ｔ１３に移行し、スクリーニングが開始され、スクリーニング終了後に半導体記憶装置１と電源装置４０との間の電源線１２が切断される。次に、半導体記憶装置１とテスタ装置４３とが電源線１２とインターフェース１１とで接続され、状態Ｔ１３から状態Ｔ１４への遷移コマンドがテスタ装置４３から発行され、電源線１２切断後に再度電源線１２が接続される。こうして、最終的に状態がＴ１１に遷移する。
【００９６】
なお、状態遷移コマンドの使用によるファームウェア領域２Fの書き換え後、電源切入を経ないと状態Ｔ１２からＴ１３や、Ｔ１４からＴ１１への遷移は起こらないと説明した。しかしながら、これに限らず、遷移コマンドの受信後即座にＴ１１→Ｔ１２→Ｔ１３の状態遷移やＴ１３→Ｔ１４→Ｔ１１の状態遷移が電源切入を経ずして起こるようにしてもよい。また電源切入の代わりに、電源切入時の内部処理をファームウェアに実現させるコマンドを使用することで、電源切入を擬似的に実現しても良い。
【００９７】
以上説明したように、第５実施形態では、通常モードおよび自走モード切り替えに関し、遷移コマンドが用いられる。これにより、通常モードの機能と自走モードの機能を同一のファームウェアに共存させることができる。この結果、半導体記憶装置の検査工程において余分なファームウェアの書き換えが発生せず、検査工程の効率化や検査工程の管理容易化やファームウェア書き換え失敗のリスク回避の点で望ましい。また、通常モードの機能と自走モードの機能を同一のファームウェアにおいて開発することにより開発フェーズにおいてファームウェアの一元管理が可能となり、プロジェクト管理の点で望ましい。
【００９８】
（第６実施形態）
第６実施形態は、半導体記憶装置の起動時の自走モードに関する。
【００９９】
図２２は、第６実施形態に係る半導体記憶装置を概略的に示すブロック図である。図２２に示されるように、半導体記憶装置１は、図１に示される機能ブロックに加えて、温度センサ５１を含んでいる。温度センサ５１は、記憶装置制御部３と接続されている。
【０１００】
図２３は、第６実施形態に係る半導体記憶装置の起動時のフローチャートである。第６実施形態に係る起動は、図２に示される起動と、ステップＳ９からＳ１０までの動作において相違する。図２３に示されるように、ステップＳ９での判定がＹｅｓの場合、半導体記憶装置１は一定時間待機する（ステップＳ１３）。スクリーニングは、効率および信頼性を上げるために、半導体記憶装置１に熱ストレスがかかっている状態で行われることが好ましい。このため、半導体記憶装置１に対するスクリーニングは、図１５に示されるように恒温槽４１で行われることがある。そのような場合に、半導体記憶装置１が所望の温度に達するまでの昇温のために、ステップＳ１３で半導体記憶装置１は待機する。
【０１０１】
次に、記憶装置制御部３は、温度センサ５１からの信号により示される温度が、閾値ＴＸを超えたかを判定する（ステップＳ１４）。閾値ＴＸは、スクリーニングにおいて半導体記憶装置１が有することを意図されている温度である。恒温槽４１中にも通常、温度計が備わっているが、半導体記憶装置１の温度を直接監視することにより、半導体記憶装置１の温度をより厳密に制御できる。ステップＳ１４での判断がＮｏの場合、フローはステップＳ１３に戻り、Ｙｅｓの場合、半導体記憶装置１は自走モードに入る（ステップＳ１０）。
【０１０２】
第６実施形態の記述において触れていない全ての点について、第１実施形態の記述が第６実施形態にも適用される。また、第２〜第５実施形態が第１実施形態に適用可能なように、これらの実施形態の１または複数のいずれもが第６実施形態と組み合わせられることが可能である。
【０１０３】
以上説明したように、第６実施形態に係る半導体記憶装置によれば、第１実施形態と同じく、通常モード時はリトライ読み出しが行われ、スクリーニング（自走モード）の際は、リトライ読み出しは行われない。この点に基づき、第１実施形態と同じ利点を得られる。また、第６実施形態では、半導体記憶装置１の温度に基づいて半導体記憶装置１は自走モードに入る。このため、恒温槽４１の温度制御に影響されずに、高精度で一定上の温度でストレス工程を実施できる。
【０１０４】
その他、各実施形態は、上記のものに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で、種々に変形することが可能である。さらに、上記実施形態には種々の段階が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の実施形態が抽出され得る。例えば、上記各実施形態に示される全構成要件から幾つかの構成要件が削除されても、この構成要件が削除された構成が実施形態として抽出され得る。
【符号の説明】
【０１０５】
１…半導体記憶装置、２…メモリ、２Ｆ…ファームウェア領域、２Ｍ…管理情報領域、２Ｕ…ユーザデータ領域、３…記憶装置制御部、４…インターフェースコントローラ、５…電源供給部、７…バス、８ａ、８ｂ、８ｃ…電源線、１０…ホスト装置、１１…インターフェース、１２…電源線、２０…メモリチップ、２１…メモリセルアレイ、２２…メモリセルアレイ制御部、２３…ビット線制御回路、２４…カラムデコーダ、２５…ワード線制御回路、２６…制御回路、２７…制御信号入力端子、２８…データ入出力端子、２９…データ入出力バッファ、３１…プレーン、３２…ブロック、４０…電源装置、４１…恒温槽、４３…テスタ装置、５１…温度センサ。
【図１】
0005740296.tif 000002
【図２】
0005740296.tif 000003
【図３】
0005740296.tif 000004
【図４】
0005740296.tif 000005
【図５】
0005740296.tif 000006
【図６】
0005740296.tif 000007
【図７】
0005740296.tif 000008
【図８】
0005740296.tif 000009
【図９】
0005740296.tif 000010
【図１０】
0005740296.tif 000011
【図１１】
0005740296.tif 000012
【図１２】
0005740296.tif 000013
【図１３】
0005740296.tif 000014
【図１４】
0005740296.tif 000015
【図１５】
0005740296.tif 000016
【図１６】
0005740296.tif 000017
【図１７】
0005740296.tif 000018
【図１８】
0005740296.tif 000019
【図１９】
0005740296.tif 000020
【図２０】
0005740296.tif 000021
【図２１】
0005740296.tif 000022
【図２２】
0005740296.tif 000023
【図２３】
0005740296.tif 000024