(57)【特許請求の範囲】
【請求項１】
メモリ領域が複数のブロックに分割されＥＣＣ機能を有する半導体記憶装置において初期不良ブロックをマーキングする方法であって、
初期不良ブロックを検出し、
該初期不良ブロックの特定の領域に対してＥＣＣエラーとなるＥＣＣコードを書き込む各段階を含み、
該ＥＣＣコードを書き込む段階は、該半導体記憶装置の内部ＥＣＣ生成機能を停止させ、外部から該ＥＣＣコードを書き込むことを特徴とする初期不良ブロックのマーキング方法。
【請求項２】
該ＥＣＣコードを書き込む段階の後に該初期不良ブロックからデータを読み出し、読み出したデータのＥＣＣチェックを行い、ＥＣＣエラーが検出されない場合には該半導体記憶装置を不良品として出荷不可と判定する段階を更に含むことを特徴とする請求項１記載の初期不良ブロックのマーキング方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体記憶装置に関し、詳しくは、不良ブロックが存在する半導体記憶装置に関する。
【０００２】
【従来の技術】
ＮＡＮＤ型フラッシュメモリやＡＮＤ型フラッシュメモリにおいては、ＮＯＲ型フラッシュメモリと異なり、不良ビットを含む初期不良ブロックの存在が許される。この初期不良ブロックのアドレスをユーザに知らせるために、製造業者は、初期不良ブロックの特定領域全体に対してデータ”００ｈ”を書き込む。なお正常ブロックの特定領域は、全体がイレーズ状態であり”ＦＦｈ”が記録されている。ユーザはこの特定領域のデータを読み出して、読み出したデータが全バイト”ＦＦｈ”であるか否かを判断する。判断としては、特定領域のデータの１つでも”ＦＦｈ”でないものが存在すれば、そのブロックは不良であると判断する。
【０００３】
不良と判断されたブロックは、メモリコントローラやＣＰＵ等の制御側の機器において、不良ブロックを示すリストを用いて管理される。具体的には、フラッシュメモリを使用する機器において、最初に全ブロックの特定領域のデータを読み出して、全バイトが”ＦＦｈ”であるか否かを判断する。不良ブロックを検出すると、予め定められたテーブル形式などのフォーマットに従って、不良ブロックのアドレスに関する情報を、フラッシュメモリ自体或いは別の記憶装置に記録する。フラッシュメモリを使用する際には、この不良ブロックのアドレス情報を参照して、不良ブロックを使用しないように管理する。
【０００４】
【発明が解決しようとする課題】
このようにしてフラッシュメモリの不良ブロックを管理する場合、一旦メモリを使用してしまうと、出荷時の状態のデータが消失することになる。従って、一旦使用したメモリを別のシステムで使用する場合などには、メモリのデータを検査しても不良ブロックの位置が分からない。
【０００５】
またＮＡＮＤ型フラッシュメモリやＡＮＤ型フラッシュメモリにおいては、出荷後に不良箇所が新たに発生する場合がある。例えば、良ブロックとして使用中のブロックからデータを読み出した場合に、ＥＣＣエラーが検出されると、このブロックを後発の不良ブロックとして管理して、以降は使用しないように制御する必要がある。このように不良ブロックには初期不良ブロックと後発性の不良ブロックとが存在し、それぞれに対して異なった検出処理を行うために、不良ブロックの管理が複雑になるという問題がある。
【０００６】
従って本発明は、上記関連技術の問題点を鑑みて、不良ブロックの管理が容易な不良ブロック管理方法及び半導体記憶装置を提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明においては、メモリ領域が複数のブロックに分割されＥＣＣ機能を有する半導体記憶装置において出荷時に初期不良ブロックをマーキングする方法は、初期不良ブロックを検出し、該初期不良ブロックの特定の領域に対してＥＣＣエラーとなるＥＣＣコードを書き込む各段階を含み、該ＥＣＣコードを書き込む段階は、該半導体記憶装置の内部ＥＣＣ生成機能を停止させ、外部から該ＥＣＣコードを書き込むことを特徴とする。
【０００９】
上記のようにして初期不良ブロックを管理すれば、一旦メモリを使用して出荷時のデータが消失してしまっても、各ブロックに対してデータ読み出し動作を実行すると、不良ブロックにはＥＣＣエラーが発生し、不良でない正常なブロックにはＥＣＣエラーが発生しないことになる。従って、一旦使用したメモリを別のシステムで使用する場合などに、メモリのデータを検査することで初期不良ブロックを含む不良ブロックの位置を特定することが出来る。
【００１０】
また出荷後に不良箇所が新たに発生した場合、即ち使用中のブロックからデータを読み出した際にＥＣＣエラーが検出された場合には、読み出しデータのＥＣＣコードと記録されたＥＣＣコードとが一致しない不良ブロックとして、このブロックを管理すればよい。従って、初期不良ブロックと後発の不良ブロックとは、同一の状態のブロックとなり、不良ブロックの管理が容易になる。
【００１１】
また半導体記憶装置からＥＣＣエラーの有無情報を外部に出力する構成とすれば、不良ブロックを検出するためには、この有無情報の判定を行うだけでよい。従って、従来の場合のように特定領域の全てのデータに対して検査をする必要が無くなり、初期不良ブロック検索処理を高速に実行することが可能になる。
【００１４】
【発明の実施の形態】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００１５】
図１は、本発明による初期不良ブロックのデータ構造を示す図である。
【００１６】
本発明においては、メモリにはＥＣＣ機能が設けられていることを前提としている。このようなメモリにおいて、初期不良ブロックを示す定義として、「読み出しＥＣＣエラーが発生する領域がブロック内の特定領域に存在すること」とする。即ち、出荷時には、初期不良であることが判明したブロック内の特定領域に対して、ＥＣＣエラーが発生するようなデータが書き込まれた状態にしておく。
【００１７】
図１において、１つのブロックには、ｎ個のページとしてページ０からページｎが含まれる。また各ページは、データ領域とＥＣＣコード領域に分かれている。初期不良ブロックを示すために用いる特定領域としては、例えば、ページ０及びページ１を用いる。図１に示されるブロックが不良ブロックである場合、ページ０を読み出した場合のＤａｔａ０のＥＣＣコードが、ＥＣＣコード領域のＥＣＣコードと異なるようにＥＣＣ０を設定する。またページ１を読み出した場合のＤａｔａ１のＥＣＣコードが、ＥＣＣコード領域のＥＣＣコードと異なるようにＥＣＣ１を設定する。ページ０及びページ１の両方に対して、エラーとなるＥＣＣコードを設定することが望ましいが、エラーとなるＥＣＣコードを一方にのみ設定するようにしてもよい。
【００１８】
不良ブロックであるか否かを判断する際には、特定領域であるページ０及びページ１のデータを読み出して、ＥＣＣエラーが発生するか否かを判定すればよい。少なくともページ０及びページ１の何れかにおいてＥＣＣエラーが発生すると、このブロックは不良ブロックとして判断される。
【００１９】
このようにして初期不良ブロックを管理すれば、一旦メモリを使用して出荷時のデータが消失してしまっても、各ブロックに対してデータ読み出し動作を実行すると、不良ブロックにはＥＣＣエラーが発生し、不良でない正常なブロックにはＥＣＣエラーが発生しないことになる。従って、一旦使用したメモリを別のシステムで使用する場合などに、メモリのデータを検査することで不良ブロックの位置を特定することが出来る。
【００２０】
また出荷後に不良箇所が新たに発生した場合、即ち使用中のブロックからデータを読み出した際にＥＣＣエラーが検出された場合には、読み出しデータのＥＣＣコードと記録されたＥＣＣコードとが一致しない不良ブロックとして、このブロックを管理すればよい。従って、初期不良ブロックと後発の不良ブロックとは、同一の状態のブロックとなり、不良ブロックの管理が容易になる。
【００２１】
図２は、本発明による半導体記憶装置の構成を示すブロック図である。
【００２２】
図２の半導体記憶装置１１は、例えばＥＣＣ機能つきＮＡＮＤ型或いはＡＮＤ型のフラッシュメモリであり、データバッファ１２、バッファ制御回路１３、データバッファ１４、ＥＣＣ生成・エラー訂正回路１５、及びメモリセルアレイ１６を含む。
【００２３】
バッファ制御回路１３は、制御信号、データ信号、アドレス信号等を外部から受け取ると共に、外部へデータ信号等を出力する。バッファ制御回路１３は、データ入出力に関するバッファリングを制御すると共に、ＥＣＣ関連の処理の制御を行う。
【００２４】
通常動作においては、ＥＣＣ機能が使用される。データ書き込みの場合には、データがバッファ制御回路１３に入力されると、バッファ制御回路１３はＥＣＣ生成・エラー訂正回路１５にデータを供給して、入力データのＥＣＣコードを計算させる。計算されたＥＣＣコードは、データバッファ１４に供給されバッファリングされる。また入力データは、バッファ制御回路１３からデータバッファ１２に供給されバッファリングされる。データバッファ１２の入力データとデータバッファ１４のＥＣＣコードとが、メモリセルアレイ１６に供給され、指定されたアドレスに記憶される。図１に示されるように、データはデータ領域に格納され、ＥＣＣコードはＥＣＣコード領域に格納される。
【００２５】
データ読み出しの場合には、メモリセルアレイ１６の指定されたアドレスからデータが読み出されると、データバッファ１２に供給されバッファリングされる。  また読み出しデータに対応するＥＣＣコードがメモリセルアレイ１６から読み出され、データバッファ１４に供給されバッファリングされる。バッファ制御回路１３は、メモリセルアレイ１６から読み出したデータをＥＣＣ生成・エラー訂正回路１５に供給して、入力データのＥＣＣコードを計算させる。ＥＣＣ生成・エラー訂正回路１５は、データバッファ１４から読み出しデータに対応するＥＣＣコードを受け取り、計算したＥＣＣコードと読み出されたＥＣＣコードとを比較する。両者が一致しない場合には、ＥＣＣエラーが検出される。
【００２６】
ＥＣＣエラーが１ビットのエラーである場合には、ＥＣＣ生成・エラー訂正回路１５がエラー訂正を行い、訂正されたデータを外部に出力する。エラーの無い場合には、データバッファ１２にバッファリングされたデータが、バッファ制御回路１３を介して半導体記憶装置１１外部に出力される。
【００２７】
データ読み出し動作の際には、ＥＣＣエラーの有無を示す信号が、バッファ制御回路１３から外部に出力される。或いは、外部からステータスリードコマンド等をバッファ制御回路１３に供給することで、これに応答してＥＣＣエラーの有無を外部に通知するように構成してもよい。またエラー訂正の可／不可を示す情報を外部に出力するようにしても良い。
【００２８】
バッファ制御回路１３は、ＥＣＣ停止回路１３ａを含む。ＥＣＣ停止回路１３ａは、外部からの制御信号やコマンド入力に応じて動作し、ＥＣＣ生成・エラー訂正回路１５による処理を停止させる機能を有する。このＥＣＣ停止回路１３ａは、検出された不良ブロックの特定領域にＥＣＣエラーを発生するようなＥＣＣコードを、ＥＣＣ生成・エラー訂正回路１５による処理を介することなしに、外部からメモリセルアレイ１６に書き込むために設けられる。即ち、出荷時の検査により不良ブロックを検出すると、その不良ブロックにおけるページ０及びページ１のＥＣＣコード領域に、ＥＣＣエラーを示すようなＥＣＣコードを書き込む必要がある。この際に、ＥＣＣ生成・エラー訂正回路１５が通常どおりに動作していては、ＥＣＣエラー状態を示すＥＣＣコードを書き込むことは出来ない。そこで外部からの制御信号入力やコマンド入力によって、ＥＣＣ停止回路１３ａを起動し、ＥＣＣ生成・エラー訂正回路１５の動作を停止させる。これによって、外部からＥＣＣエラーを示すようなＥＣＣコードを書き込むことが可能になる。
【００２９】
図３は、本発明による初期不良ブロックのマーキング処理を示すフローチャートである。この処理は、メモリチップ出荷時に製造業者側で実行する処理である。
【００３０】
ステップＳＴ１で、ブロックアドレスＢＡＤＲＳをゼロに初期化する。
【００３１】
ステップＳＴ２で、ブロックアドレスＢＡＤＲＳが初期不良ブロックのブロックアドレスであるか否かを判断する。初期不良ブロックのブロックアドレスである場合には、ステップＳＴ３に進み、初期不良ブロックのブロックアドレスでない場合には、ステップＳＴ１６に進む。
【００３２】
ステップＳＴ３で、ブロックアドレスＢＡＤＲＳのブロックの特定領域に、ＥＣＣエラーとなるコードを書き込む。この際、図２の半導体記憶装置の例では、ＥＣＣ停止回路１３ａを起動し、ＥＣＣ生成・エラー訂正回路１５の動作を停止させることによって、ＥＣＣエラーを示すＥＣＣコードを外部から書き込む。
【００３３】
ステップＳＴ４で、ブロックアドレスＢＡＤＲＳの特定領域からデータを読み出す。
【００３４】
ステップＳＴ５で、ＥＣＣエラーが検出されたか否かを判定する。ＥＣＣエラーが検出されない場合には、ＥＣＣエラーとなるコードを書き込んだにも関わらず所定の動作をしていないので、メモリチップ自体が不良品であると判断して、ステップＳＴ７で出荷不可の旨を判定する。ＥＣＣエラーが検出された場合には、ステップＳＴ６に進む
ステップＳＴ６で、ブロックアドレスＢＡＤＲＳが最終ブロックアドレスｎＭＡＸであるか否かを判定する。最終ブロックで無い場合には、ステップＳＴ８に進み、ブロックアドレスＢＡＤＲＳを１つ増やして、ステップＳＴ２に戻り以降の処理を繰り返す。最終ブロックである場合には、処理を終了する。
【００３５】
上記のような処理を実行することで、初期不良ブロックの特定領域にＥＣＣエラーを発生するコードを書き込み、メモリの各初期不良ブロックをマーキングすることが出来る。
【００３６】
図４は、本発明による初期不良ブロックの検索処理を示すフローチャートである。この処理は、初期不良ブロックをテーブル等で管理するために、ユーザ側が実行する処理である。
【００３７】
ステップＳＴ１で、ブロックアドレスＢＡＤＲＳをゼロに初期化する。
【００３８】
ステップＳＴ２で、ブロックアドレスＢＡＤＲＳのブロックの特定領域（例えばページ０及びページ１）のデータを読み出す。
【００３９】
ステップＳＴ３で、読み出したデータに関するＥＣＣチェックの結果が正常か否かを判定する。異常な場合には、ステップＳＴ５に進み、初期不良ブロックを管理するテーブルにブロックアドレスＢＡＤＲＳを追加する。正常な場合には、ステップＳＴ４に進む。
【００４０】
ステップＳＴ４で、ブロックアドレスＢＡＤＲＳが最終ブロックアドレスｎＭＡＸであるか否かを判定する。最終ブロックで無い場合には、ステップＳＴ６に進み、ブロックアドレスＢＡＤＲＳを１つ増やして、ステップＳＴ２に戻り以降の処理を繰り返す。最終ブロックである場合には、処理を終了する。
【００４１】
上記のような処理を実行することで、初期不良ブロックをユーザ側で検索して、初期不良ブロックを管理するテーブルに登録することが出来る。
【００４２】
図５は、初期不良ブロックの一例を示す図である。
【００４３】
１つのブロックには、ｎ個のページとしてページ０からページｎが含まれる。また各ページは、５１２バイトのデータ領域と３バイトのＥＣＣコード領域に分かれている。初期不良ブロックを示すために用いる特定領域としては、例えば、ページ０及びページ１を用いる。全てのデータ領域は、初期状態においてイレーズ状態であり、”ＦＦｈ”のデータが各バイトに記録されている。またページ０及びページ１の特定領域以外の各ページにおけるＥＣＣコード領域は、初期状態ではイレーズ状態であり、”ＦＦｈ”のデータが各バイトに記録されている。ここで各バイトが”ＦＦｈ”のデータに対する正しいＥＣＣコードは、各バイトが”ＦＦｈ”である。従って、特定領域以外のページでは、データとＥＣＣコードとの対応がとれている。
【００４４】
ページ０及びページ１の特定領域のＥＣＣコード領域には、”００ｈ”のデータが各バイトに書き込まれている。図２の半導体記憶装置の例では、ＥＣＣ停止回路１３ａを起動し、ＥＣＣ生成・エラー訂正回路１５の動作を停止させることによって、ＥＣＣエラーを示すＥＣＣコード”００ｈ”を外部から書き込むことになる。
【００４５】
このようにして初期不良ブロックの特定領域に、ＥＣＣエラーを示すＥＣＣコードを記録することで、システム変更後であっても容易に不良ブロックを特定することが可能になる。
【００４６】
図６は、データ読み出し時のＥＣＣエラー検出を説明する図である。
【００４７】
図６は、データ読み出し動作後にステータスリードコマンドを図２の半導体記憶装置に入力したときに、Ｉ／Ｏピンを介してバッファ制御回路１３から出力されるデータの一例を示す。図６に示されるように、各Ｉ／Ｏピンには各情報が割り当てられており、この場合には、一番のＩ／ＯピンであるＩ／Ｏ１がＥＣＣエラー状態を示すピンとされる。即ち、データ読み出し動作後にステータスリードコマンドを半導体記憶装置に入力し、ピンＩ／Ｏ１から出力されるＥＣＣエラー有無情報を読み出すことで、ＥＣＣエラーが発生したか否かを容易に判定することが出来る。
【００４８】
このように、不良ブロックを検出するためにはステータスリードコマンドを入力してピンＩ／Ｏ１の信号レベルの判定を行うだけでよいので、初期不良ブロック検索の際には、従来の場合のように特定領域２ページの１０２４バイト分のデータ全てに対して検査をする必要が無い。従って、初期不良ブロック検索処理を高速に実行することが可能になる。
【００４９】
なおピンＩ／Ｏ２からは、エラー訂正が実行されたか否かを示す情報が出力される。この情報に基づいて、エラー訂正が可能なＥＣＣエラーであるのか否かを判定し、エラー訂正が不可能なＥＣＣエラーに対してだけ不良ブロック管理をするようにしてもよい。
【００５０】
図７は、半導体記憶装置をテストして初期不良ブロックをマーキングする際に使用するテスタシステムを示す図である。
【００５１】
テスタシステムは、制御端末２１、試験装置２２、及び測定ボード２３を含む。測定ボード２３には、メモリとの接続用の複数の端子が設けられており、試験対象のメモリが装着される。コンピュータである制御端末２１は、所定のプログラムに基づいて動作することで試験装置２２を制御し、測定ボード２３のメモリ接続用端子を介してメモリに信号を供給すると共に、メモリからの出力信号を検査する。これによって、例えば図２に示されるメモリの試験を行うと共に、図３の処理を実行して初期不良ブロックをマーキングすることが出来る。
【００５２】
なおＥＣＣ（Error Check and Correction）チェックにおいては、データ書き込み時に所定のＥＣＣコード生成方法でＥＣＣコードを生成し、予め用意した領域にＥＣＣコードを書き込んでおく。読み出し時には、読み出したデータから所定のＥＣＣコード生成方法でＥＣＣコードを生成し、生成したＥＣＣコードと記憶されているＥＣＣコードとを比較することで、エラー検出或いは訂正を行うことが出来る。ＥＣＣコード生成方法は、従来技術の範囲内であり、ここでその詳細に関しては説明を省略する。
【００５３】
本発明におけるエラーチェックとしては、上記のようにエラーチェック用のコードをエラーコード領域に記録するような方法であれば、特定の方法に限られるものではなく、コード生成方法も特定のコード生成方法に限られるものではない。即ち本発明は、特定のエラーチェック方法に限定されるものではなく、ＣＲＣ等従来技術の範囲内で使用可能なエラーチェック方法でよく、また将来同等のエラーチェック方法が用いられるのであれば、そのような方法を本発明に適用することが可能であり、そのような当業者にとって容易である置き換えは本発明の範囲内であると意図される。
【００５４】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【００５５】
【発明の効果】
本発明によれば、一旦メモリを使用して出荷時のデータが消失してしまっても、各ブロックに対してデータ読み出し動作を実行すると、不良ブロックにはＥＣＣエラーが発生し、不良でない正常なブロックにはＥＣＣエラーが発生しないことになる。従って、一旦使用したメモリを別のシステムで使用する場合などに、メモリのデータを検査することで初期不良ブロックを含む不良ブロックの位置を特定することが出来る。
【００５６】
また出荷後に不良箇所が新たに発生した場合、即ち使用中のブロックからデータを読み出した際にＥＣＣエラーが検出された場合には、読み出しデータのＥＣＣコードと記録されたＥＣＣコードとが一致しない不良ブロックとして、このブロックを管理すればよい。従って、初期不良ブロックと後発の不良ブロックとは、同一の状態のブロックとなり、不良ブロックの管理が容易になる。
【００５７】
また半導体記憶装置からＥＣＣエラーの有無情報を外部に出力する構成とすれば、不良ブロックを検出するためには、この有無情報の判定を行うだけでよい。従って、従来の場合のように特定領域の全てのデータに対して検査をする必要が無くなり、初期不良ブロック検索処理を高速に実行することが可能になる。
【００５８】
また半導体記憶装置において、出荷時の検査により不良ブロックを検出すると、その不良ブロックの特定領域にＥＣＣエラーを示すＥＣＣコードを書き込む必要があるが、ＥＣＣ生成回路が通常どおりに動作していては、ＥＣＣエラー状態を示すＥＣＣコードを書き込むことは出来ない。そこでＥＣＣ停止回路を起動し、ＥＣＣ生成回路の動作を停止させることによって、外部からＥＣＣエラーを示すＥＣＣコードを直接に書き込むことが可能になる。
【図面の簡単な説明】
【図１】本発明による初期不良ブロックのデータ構造を示す図である。
【図２】本発明による半導体記憶装置の構成を示すブロック図である。
【図３】本発明による初期不良ブロックのマーキング処理を示すフローチャートである。
【図４】本発明による初期不良ブロックの検索処理を示すフローチャートである。
【図５】初期不良ブロックの一例を示す図である。
【図６】データ読み出し時のＥＣＣエラー検出を説明する図である。
【図７】半導体記憶装置をテストして初期不良ブロックをマーキングする際に使用するテスタシステムを示す図である。
【符号の説明】
１１  半導体記憶装置
１２  データバッファ
１３  バッファ制御回路
１４  データバッファ
１５  ＥＣＣ生成・エラー訂正回路
１６  メモリセルアレイ
【図１】
0004373615.tif 000002
【図２】
0004373615.tif 000003
【図３】
0004373615.tif 000004
【図４】
0004373615.tif 000005
【図５】
0004373615.tif 000006
【図６】
0004373615.tif 000007
【図７】
0004373615.tif 000008