(57)【要約】【課題】高品質な不揮発性半導体記憶装置を提供する。【解決手段】列方向及び行方向にマトリクス状に配置された複数のメモリセルトランジスタＭＴと、直列接続される複数のメモリセルトランジスタＭＴを備える複数のＮＡＮＤセルと、複数のＮＡＮＤセルを備える複数のブロックと、を備える不揮発性のメモリセルアレイ１２１と、メモリセルアレイ１２１内に設定され、複数のブロックの内、外部機器２００からアクセスできないブロックの物理アドレスが登録されるバッドブロック記憶部１２２と、外部機器２００から、コマンド、物理アドレス、及びデータを受信し、メモリセルアレイ１２１へ書き込むデータ、またはメモリセルアレイ１２１から読み出したデータのエラー訂正を行い、外部機器２００から第１のコマンドＣＭＤ  Ａ及び第１の物理アドレスを受信する場合、第１の物理アドレスに対応するブロックを、バッドブロックとしてバッドブロック記憶部１２２に登録するコントローラ１１０と、を備える。【選択図】図１
2014006811.tif 000002
【特許請求の範囲】
【請求項１】
列方向及び行方向にマトリクス状に配置された複数のメモリセルトランジスタと、直列接続される複数の前記メモリセルトランジスタを備える複数のＮＡＮＤセルと、複数の前記ＮＡＮＤセルを備える複数のブロックと、を備える不揮発性のメモリセルアレイと、
前記メモリセルアレイ内に設定され、前記複数のブロックの内、外部機器からアクセスできないブロックの物理アドレスが登録されるバッドブロック記憶部と、
前記メモリセルアレイ内に設定されるエラーブロック記憶部と、
前記外部機器から、コマンド、物理アドレス、及びデータを受信し、
前記メモリセルアレイへ書き込むデータ、または前記メモリセルアレイから読み出したデータのエラー訂正を行い、
前記外部機器から第１のコマンド及び第１の物理アドレスを受信する場合、前記第１の物理アドレスに対応する前記ブロックを、バッドブロックとして前記バッドブロック記憶部に登録し、
前記外部機器から第２のコマンド及び第２の物理アドレスを受信する場合、前記第２の物理アドレスを、前記バッドブロック記憶部から削除し、
前記外部機器から第３のコマンドを受信する場合、前記バッドブロック記憶部に登録されている物理アドレスを、前記外部機器に供給し、
前記外部機器から第４のコマンドを受信する場合、前記外部機器が前記メモリセルアレイにアクセスする際に、所定の数以上のエラーが発生した前記ブロックの物理アドレスを、前記エラーブロック記憶部に登録し、
前記外部機器から第５のコマンドを受信する場合、前記エラーブロック記憶部に登録されている物理アドレスを、前記バッドブロック記憶部に登録し、
前記外部機器から第６のコマンド及び第３の物理アドレスを受信する場合、前記第３の物理アドレスを、前記エラーブロック記憶部から削除し、
前記外部機器から第７のコマンドを受信する場合、前記エラーブロック記憶部に登録されている物理アドレスを、前記外部機器に供給するコントローラと、
を備える不揮発性半導体記憶装置。
【請求項２】
列方向及び行方向にマトリクス状に配置された複数のメモリセルトランジスタと、直列接続される複数の前記メモリセルトランジスタを備える複数のＮＡＮＤセルと、複数の前記ＮＡＮＤセルを備える複数のブロックと、を備える不揮発性のメモリセルアレイと、
前記メモリセルアレイ内に設定され、前記複数のブロックの内、外部機器からアクセスできないブロックの物理アドレスが登録されるバッドブロック記憶部と、
前記外部機器から、コマンド、物理アドレス、及びデータを受信し、
前記メモリセルアレイへ書き込むデータ、または前記メモリセルアレイから読み出したデータのエラー訂正を行い、
前記外部機器から第１のコマンド及び第１の物理アドレスを受信する場合、前記第１の物理アドレスに対応する前記ブロックを、バッドブロックとして前記バッドブロック記憶部に登録するコントローラと、
を備える不揮発性半導体記憶装置。
【請求項３】
前記コントローラは、
前記外部機器から第２のコマンド及び第２の物理アドレスを受信する場合、前記第２の物理アドレスを、前記バッドブロック記憶部から削除することを特徴とする請求項２に記載の不揮発性半導体記憶装置。
【請求項４】
前記コントローラは、
前記外部機器から第３のコマンドを受信する場合、前記バッドブロック記憶部に登録されている物理アドレスを、前記外部機器に供給することを特徴とする請求項２または３に記載の不揮発性半導体記憶装置。
【請求項５】
前記メモリセルアレイ内に設定されるエラーブロック記憶部を更に備え、
前記コントローラは、
前記外部機器から第４のコマンドを受信する場合、前記外部機器が前記メモリセルアレイにアクセスする際に、所定の数以上のエラーが発生した前記ブロックの物理アドレスを、前記エラーブロック記憶部に登録することを特徴とする請求項２乃至４の何れか一項に記載の不揮発性半導体記憶装置。
【請求項６】
前記コントローラは、
前記外部機器から第５のコマンドを受信する場合、前記エラーブロック記憶部に登録されている物理アドレスを、前記バッドブロック記憶部に登録することを特徴とする請求項５に記載の不揮発性半導体記憶装置。
【請求項７】
前記コントローラは、
前記外部機器から第６のコマンド及び第３の物理アドレスを受信する場合、前記第３の物理アドレスを、前記エラーブロック記憶部から削除することを特徴とする請求項５または６に記載の不揮発性半導体記憶装置。
【請求項８】
前記コントローラは、
前記外部機器から第７のコマンドを受信する場合、前記エラーブロック記憶部に登録されている物理アドレスを、前記外部機器に供給することを特徴とする請求項５乃至７の何れか一項に記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、不揮発性半導体記憶装置に関する。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリには、出荷時に存在する先天性バッドブロックと、ＮＡＮＤ型フラッシュメモリを使用することによって発生する後天性バッドブロックとが存在する。これらのバッドブロックは、メモリセルトランジスタの絶縁膜の摩耗、あるいは絶縁膜の破壊により発生してしまう。これらのバッドブロックの管理をホストデバイス（外部機器）で行う場合、ホストデバイスにバッドブロック管理の負担をかけてしまうという問題が有った。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０７−２９３９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
高品質な不揮発性半導体記憶装置を提供する。
【課題を解決するための手段】
【０００５】
実施形態に係る不揮発性半導体記憶装置は、列方向及び行方向にマトリクス状に配置された複数のメモリセルトランジスタと、直列接続される複数の前記メモリセルトランジスタを備える複数のＮＡＮＤセルと、複数の前記ＮＡＮＤセルを備える複数のブロックとを備える不揮発性のメモリセルアレイと、前記メモリセルアレイ内に設定され、前記複数のブロックの内、外部機器からアクセスできないブロックの物理アドレスが登録されるバッドブロック記憶部と、前記外部機器から、コマンド、物理アドレス、及びデータを受信し、前記メモリセルアレイへ書き込むデータ、または前記メモリセルアレイから読み出したデータのエラー訂正を行い、前記外部機器から第１のコマンド及び第１の物理アドレスを受信する場合、前記第１の物理アドレスに対応する前記ブロックを、バッドブロックとして前記バッドブロック記憶部に登録するコントローラと、を備える。
【図面の簡単な説明】
【０００６】
【図１】第１の実施形態に係る不揮発性半導体記憶装置の基本的な構成を模式的に示したブロック図である。
【図２】第１の実施形態に係るメモリセルアレイの一部を示した回路図である。
【図３】第１の実施形態に係るメモリデバイスとホストデバイスとの間の通信の例を示している。
【図４】第２の実施形態に係る不揮発性半導体記憶装置の基本的な構成を模式的に示したブロック図である。
【図５】第２の実施形態に係る不揮発性半導体記憶装置の基本的な動作を模式的に示したフローチャートである。
【図６】第２の実施形態に係るメモリデバイスとホストデバイスとの間の通信の例を示している。
【発明を実施するための形態】
【０００７】
以下に、実施形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、実施形態の技術的思想は、構成部品の材質、形状、構造、配置等を下記のものに特定するものでない。実施形態の技術的思想は、特許請求の範囲において、種々の変更を加えることができる。
【０００８】
また、以下では、論理アドレスー物理アドレス変換を行わないコントローラを有するメモリデバイスについて説明する。換言すると、外部機器から供給されるアドレスと、メモリデバイスのアドレスとは１対１対応をしている。下記の実施形態では、上記メモリデバイスの一例として、ＥＣＣ機能を搭載したコントローラを有する物理アドレスアクセス方式のＮＡＮＤ型フラッシュメモリについて説明している。
【０００９】
（第１の実施形態）
＜構成＞
＜第１の実施形態に係るメモリデバイスの概要＞
図１に示すように、不揮発性半導体記憶装置（メモリデバイス）１００は、メモリ制御部１１０、及びＮＡＮＤ型フラッシュメモリ（単にフラッシュメモリと称す）１２０を備えている。
【００１０】
メモリ制御部１１０は、ホストインタフェース（単にホストＩ／Ｆとも称す）１１１、ＣＰＵ（central processing unit）１１２、ＲＯＭ１１３、ＲＡＭ１１４、データバッファ１１６、フラッシュインタフェース（単にフラッシュＩ／Ｆとも称す）１１７、ＥＣＣ（Error correcting code）回路１１８、及びバス１３０を備えている。
【００１１】
ホストインタフェース１１１は、パーソナルコンピュータ等のホストデバイス（外部機器）２００と接続され、更にバス１３０と接続されている。つまり、このホストインタフェース１１１を介して、ホストデバイス２００とメモリデバイス１００との間でコマンド、物理アドレス、データ、及び制御信号データの送受信等が行われる。
【００１２】
データバッファ１１６は、ホストデバイス２００からメモリデバイス１００に送信されたデータをホストインタフェース１１１、及びバス１３０を介して受け取り、これを一時的に保持する。また、データバッファ１１６は、ホストインタフェース１１１を介してホストデバイス２００へ送信されるデータを一時的に保持する。
【００１３】
ＣＰＵ１１２は、メモリデバイス１００の全体の動作を司る。ＣＰＵ１１２は、バス１３０を介してＲＯＭ１１３、及びＲＡＭ１１４に格納されている情報を読み出し、該情報及びホストデバイス２００からのアクセスに基づく所定の処理を実行する。ＣＰＵ１１２は、今後のホストデバイス２００からのアクセスに対して、メモリデバイス１００内に保持されているバッドブロック（Bad Block）情報を使用しても良い。また、対応するメモリセルアレイ１２１内のブロックに対してバッドブロック処理を行っても良い。ＣＰＵ１１２は、メモリデバイス１００に電源が供給された際に、後述するバッドブロック記憶部１２２に保持されている情報を、ＲＡＭ１１４に読み出しても良い。
【００１４】
ＲＯＭ１１３は、不揮発性のメモリであり、ＣＰＵ１１２により制御される制御プログラムなどを格納する。ＲＡＭ１１４は、揮発性のメモリであり、ＣＰＵ１１２の作業エリアとして使用され、ＣＰＵ１１２の作業に必要な変数等を一時的に記憶する。また、ＲＡＭ１１４は、後述するバッドブロック記憶部１２２に保持されている情報を保持しても良い。
【００１５】
フラッシュインタフェース１１７は、ＥＣＣ回路１１８、バス１３０に接続されている。このフラッシュインタフェース１１７は、バス１３０を介して、ホストデバイス２００とメモリデバイス１００との間でコマンド、物理アドレス、及びデータの送受信等が行われる。
【００１６】
ＥＣＣ回路１１８は、ホストデバイス２００からの書き込みデータを、データバッファ１１６及びバス１３０を介して受け取り、書き込みデータにエラー訂正符号を付加し、エラー訂正符号を付された書き込みデータを、例えばデータバッファ１１６、またはフラッシュインタフェース１１７に供給する。また、ＥＣＣ回路１１８は、フラッシュメモリ１２０から供給されたデータをフラッシュインタフェース１１７を介して受け取り、このデータに対してエラー訂正符号を用いてエラー訂正を行い、エラー訂正されたデータを、例えばデータバッファ１１６等に供給する。
【００１７】
フラッシュメモリ１２０は、メモリセルアレイ１２１及びバッドブロック記憶部１２２を備えている。メモリセルアレイ１２１は、複数のビット線と複数のワード線と共通ソース線を含み、例えばＥＥＰＲＯＭセルからなる電気的にデータを書き換え可能なメモリセルがマトリクス状に配置されている。バッドブロック記憶部１２２は、先天性バッドブロック記憶領域１２２ａ及び後天性バッドブロック記憶領域１２２ｂを備えている。先天性バッドブロック記憶領域１２２ａは、メモリデバイス１００の出荷時等に行われる実験等に基づいて導出された出荷時に存在する先天性なバッドブロックのアドレスを保持する。後天性バッドブロック記憶領域１２２ｂは、フラッシュメモリ１２０を継続的に使用する際に発生する後天性なバッドブロックのアドレス等を保持する。そして、この後天性バッドブロック記憶領域１２２ｂは、後述する方法により、バッドブロックのアドレスの追加や、消去を行うことが可能である。また、ここでは、先天性バッドブロック記憶領域１２２ａの情報は、メモリデバイス１００の出荷後には書き換えできないものとし、後天性バッドブロック記憶領域１２２ｂは、メモリデバイス１００の出荷後であっても書き換え可能であるとする。
【００１８】
尚、本実施形態では、バッドブロックにコントローラがアクセスできる場合とアクセスできない場合の二通りがある。
【００１９】
＜コントローラがバッドブロックにアクセスする場合＞
コントローラ１１０が、ＮＡＮＤフラッシュメモリ１２０で管理しているバッドブロック記憶部１２２に、バッドブロック情報（バッドブロックのアドレス等）を直に登録することがある。ホストデバイス２００からメモリデバイス１００に対してデータの読み出しまたは書き込み等の要求があった場合、コントローラ１１０からＮＡＮＤフラッシュメモリ１２０へと該要求がされるが、ＮＡＮＤフラッシュメモリ１２０はバッドブロック記憶部１２２に登録されたブロックに対して読み出し動作を行わない。そのため、ホストデバイス２００は実質的にバッドブロックにアクセスできない。この時、コントローラ１１０はＡｌｌ０（エラー）をホストデバイス２００に返す。
【００２０】
換言すると、「ホストデバイス２００がバッドブロックにアクセスできない」とは、ホストデバイスによるバッドブロックに記憶されたデータの読み出し動作や、ホストデバイスによるバッドブロックへのデータの書き込み動作ができないことである。
【００２１】
＜バッドブロックにコントローラをアクセスさせない場合＞
ホストデバイス２００からメモリデバイス１００に対してデータの読み出しまたは書き込み等の要求があった場合、コントローラ１１０はホストデバイス２００が要求しているアドレスを解析し、該アドレスが、バッドブロックに係るアドレスの場合、コントローラ１１０はＡｌｌ０（エラー）をホストデバイス２００に返す。
【００２２】
つまり、ホストデバイス２００は、基本的にバッドブロック記憶部１２２に登録されているアドレスにはアクセスすることはできない。
【００２３】
ただし、ホストデバイス２００は、後述する動作を行うことにより、バッドブロック記憶部１２２に登録されているアドレスを削除することによって、バッドブロック記憶部１２２に登録されていたアドレスにアクセスすることができるようになる。
【００２４】
また、本実施形態では、不揮発性の半導体メモリ１２０として、ＮＡＮＤ型フラッシュメモリを用いているが、必ずしもこれに限らない。
【００２５】
また、バッドブロック記憶部１２２は、メモリセルアレイ１２１の一部を利用している。しかし、メモリデバイス１００を動作させる場合、ＲＡＭ１１４の一部をバッドブロック記憶部１２２として用いても良いし、メモリセルアレイ１２１、及びＲＡＭ１１４の一部をバッドブロック記憶部１２２として用いても良い。
【００２６】
＜メモリセルアレイの概要＞
次に、図２を用いて、本実施形態に係るメモリセルアレイ１２１について簡単に説明する。図２は、本実施形態に係るメモリセルアレイ１２１の一部を模式的に示した回路図である。
【００２７】
メモリセルアレイ１２１は、ページ単位でデータの書き込み、及び読み出しを行う。ページは、図２に示すように、複数のメモリセルトランジスタの集合のメモリ空間からなり、固有の物理アドレスを割り当てられている。
【００２８】
１つのメモリブロックは、ワード線ＷＬ方向（ロウ方向）に並んだ複数のＮＡＮＤセル（セルユニット、またはＮＡＮＤストリングス等とも称す）を含む。
【００２９】
１つのＮＡＮＤセルは、直列接続される複数のメモリセルトランジスタ（単にメモリセルとも称す）ＭＴと、一端のメモリセルトランジスタＭＴのドレインに接続される選択ゲートトランジスタＳＴ１と、他端のメモリセルのソースに接続される選択ゲートトランジスタＳＴ２とを含む。
【００３０】
各メモリセルトランジスタ（メモリセル、セルトランジスタ等とも称す）ＭＴは、いわゆる積層ゲート構造のＭＯＳＦＥＴ（metal oxide semiconductor field effect transistor）である。各メモリセルトランジスタＭＴは、電荷蓄積層ＣＳに蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じた情報を記憶する。メモリセルトランジスタＭＴが電流経路（ソース／ドレインＳＤ）同士を相互に直列接続されてＮＡＮＤストリングを構成し、ＮＡＮＤストリングの両端に選択ランジスタＳ１、Ｓ２が接続される。選択トランジスタＳ２の電流経路の他端はビット線ＢＬに接続され、選択トランジスタＳ１の電流経路の他端はソース線ＳＬに接続されている。
【００３１】
ワード線ＷＬ０乃至ＷＬ６３は、ＷＬ方向に延び、同じ行に属する複数のメモリセルトランジスタＭＴの制御ゲート電極ＣＧに接続される。メモリセルトランジスタＭＴは、ビット線ＢＬとワード線ＷＬとの各交点に設けられる。セレクトゲート線ＳＧＤは、ＷＬ方向に延び、ブロック内の全選択トランジスタＳ２に接続されている。セレクトゲート線ＳＧＳは、ＷＬ方向に延び、ブロック内の全選択トランジスタＳ１に接続されている。同じワード線ＷＬと接続されている複数のメモリセルトランジスタＭＴは、ページを構成する。
【００３２】
メモリセルアレイ１２１がＮＡＮＤ型フラッシュメモリである場合、メモリセルトランジスタＭＴが２つ以上の閾値電圧の異なる状態を取り得る。つまり、１つのメモリセルが多値（多ビット）を記憶できるようにメモリセルアレイ１２１が構成されていてもよい。そのような多値を記憶可能なメモリの場合、１つのワード線に複数ページが割り当てられる。
【００３３】
また、メモリセルアレイ１２１がＮＡＮＤ型フラッシュメモリである場合、メモリセルアレイ１２１は、ブロック単位でデータの消去を行う。各ブロックは、連続する物理アドレスを有する複数のページからなる。換言すると、同一のワード線ＷＬに接続された複数のメモリセルトランジスタＭＴには一括してデータが書き込まれ、この単位をページと呼ぶ。更に、同一行にある複数のＮＡＮＤセルは一括してデータが消去され、この単位をメモリブロックと呼ぶ。以下の説明では、便宜上、書き込み単位をページとし、消去単位をブロックとする。しかしながら、メモリセルアレイ１２１は、必ずしもＮＡＮＤ型フラッシュメモリに限られない。
【００３４】
＜バッドブロックの概要＞
ところで、あるブロックにおいて、書き込みあるいは消去が規定時間で完了しないメモリセルトランジスタが、所定の数以上存在する場合、書き込みあるいは消去の実行に対し、実行結果(ステータス)がフェイルになってしまう。このようなブロックを、バッドブロックと呼ぶ。このバッドブロックは、出荷時に存在する先天性バッドブロック、及び、フラッシュメモリの継続的使用にて発生する後天性バッドブロックが存在する。
【００３５】
先天性バッドブロックとは、メモリデバイス１００を形成する際のプロセスばらつきに起因して形成されるバッドブロックである。
【００３６】
この先天性バッドブロックは、メモリデバイス１００の出荷時のテストなどによって導出される。そして、導出されたバッドブロックのアドレスは、先天性バッドブロック記憶領域１２２ａに登録される。
【００３７】
後天性バッドブロックとは、メモリセルトランジスタＭＴへの書き込み、消去、読み出し等を繰り返すことによって、メモリセルトランジスタＭＴの絶縁膜の摩耗、あるいは絶縁膜が破壊されてしまうことに起因して形成される後発的なバッドブロックである。
【００３８】
この後天性バッドブロックは、ホストデバイス２００が確認することによって導出される。例えば、ホストデバイス２００は、メモリデバイス１００にアクセスした場合に、エラーが出たブロックを、バッドブロックとして認識することができる。より具体的には、バッドブロック記憶部１２２が、メモリセルアレイ１２１内に設定されている場合、ホストデバイス２００が、メモリデバイス１００に対して読み出し動作を行うと、メモリセルアレイ１２１は、ホストデバイス２００にオール０（Ａｌｌ０）を送信する。これにより、ホストデバイス２００は、データがＡｌｌ０である場合にメモリセルアレイ１２１内のバッドブロックを認識することができる。
【００３９】
また、ホストデバイス２００がメモリセルアレイ１２１内のバッドブロックを認識する他の例としては、読み出しエラーの発行が考えられる。より具体的には、バッドブロック記憶部１２２が、ＲＡＭ１１４内に設定されている場合、ホストデバイス２００が、メモリデバイス１００に対して、読み出し動作を行うと、ＣＰＵ１１２は、ホストデバイス２００に対して読み出しエラーを発行する。この読み出しエラーは、読み出しエラーの発行は、ステータスリードのエラーbitである。このように、ステータスリードでエラーbitが立っていることで、ホストデバイス２００は、バッドブロックを認識することもできる。 
そして、後述する方法により、導出されたバッドブロックのアドレスは、後天性バッドブロック記憶領域１２２ｂに登録される。この後天性バッドブロック記憶領域１２２ｂに追加されたブロックは、メモリデバイス１００の通常の動作時において、先天性バッドブロック記憶領域１２２ａに登録されたブロックと同様に扱われることになる。また、ホストデバイス２００は、後述する方法で、バッドブロック記憶部１２２からバッドブロック情報を読み出すことで、バッドブロックのアドレスを認識しても良い。
【００４０】
＜動作＞
＜第１の実施形態に係るメモリデバイスの動作の概要＞
次に、図３を用いて、任意のアドレスについてのバッドブロック登録、バッドブロック情報の確認及び削除を行う場合における、第１の実施形態に係るメモリデバイスの基本的な動作について説明する。図３は、ホストデバイス２００からメモリデバイス１００に入力されたコマンドに対するメモリデバイス１００の動作の様子と、該動作時における、バッドブロック記憶部１２２の様子を示した図である。尚、図３では簡単のため、バッドブロック記憶部１２２内に保持されているデータに変化が無い場合には、バッドブロック記憶部１２２の図を省略している。また、ここでは、説明の理解を容易にするために、一例として本実施形態に係るバッドブロック記憶部１２２の先天性バッドブロック記憶領域１２２ａには、予め導出されているバッドブロックのアドレス（Address a, Address b, Address c）が記憶され、後天性バッドブロック記憶領域１２２ｂには何も保持されていないものとする。
【００４１】
＜バッドブロック登録＞
［ステップＳ１０］
ホストデバイス２００は、例えば、メモリセルアレイ１２１内にバッドブロックが存在することを認識した場合に、任意のタイミングでメモリデバイス１００に対して、バッドブロックを登録するための登録コマンド（ＣＭＤ  Ａ）を発行する。ＣＰＵ１１２は、この登録コマンド（ＣＭＤ  Ａ）を受信すると、次にホストデバイス２００から送信されるアドレスを、後天性バッドブロックとして、後天性バッドブロック記憶領域１２２ｂに記憶する。
【００４２】
［ステップＳ１１］
そして、ホストデバイス２００は、バッドブロックと認識したアドレス（Address d, Address e）を、メモリデバイス１００に供給する。これにより、ＣＰＵ１１２は、受信したアドレス（Address d, Address e）を、後天性バッドブロックとして、後天性バッドブロック記憶領域１２２ｂに記憶する。
【００４３】
ホストデバイス２００は、例えば書き込みエラー、読み出しエラー、消去エラー等が所定の回数以上生じるブロックを、バッドブロックとして認定する。そして、ステップＳ１０、Ｓ１１を行うことにより、該ブロックを、バッドブロックとして登録することができる。これにより、メモリデバイス１００の出荷時には検出されない後発的な後天性バッドブロックをメモリデバイス１００内に記憶することができる。
【００４４】
また、ここでは、一例としてホストデバイス２００は、メモリデバイス１００に対して、登録コマンド（ＣＭＤ  Ａ）と、バッドブロックとして登録したいアドレス（Address d, Address e）を別々に送信しているが、これらを同時にメモリデバイス１００に供給しても良い。
【００４５】
＜バッドブロック情報の読み出し＞
［ステップＳ２０］
次に、ホストデバイス２００が、バッドブロック記憶部１２２内、つまり先天性バッドブロック記憶領域１２２ａ及び後天性バッドブロック記憶領域１２２ｂ内に保持されているバッドブロック情報を読み出したい場合には、ホストデバイス２００は、メモリデバイス１００に対してバッドブロック登録データ確認コマンド（ＣＭＤ  Ｂ）を発行する。
【００４６】
［ステップＳ２１］
ＣＰＵ１１２は、ホストデバイス２００から、バッドブロック登録データ確認コマンド（ＣＭＤ  Ｂ）を受信すると、先天性バッドブロック記憶領域１２２ａ及び後天性バッドブロック記憶領域１２２ｂ内に保持されているバッドブロック情報を、ホストデバイス２００に供給する。
【００４７】
これにより、例えばホストデバイス２００が、メモリデバイス１００にアクセスする前等に、バッドブロックのアドレスの確認を行うことが可能である。これにより、ホストデバイス２００は、バッドブロック以外のアドレスへのアクセスを行うので、効率の良くメモリデバイス１００にアクセスを行うことができる。
【００４８】
尚、メモリデバイス１００がホストデバイス２００にバッドブロック情報を出力する際の出力フォーマットは、バッドブロック記憶部１２２に登録されているアドレスでも良いし、メモリセルアレイ１２１の１ブロックを１Ｂｉｔあるいは複数Ｂｉｔに対応付けたＢｉｔ列データであっても良い。
【００４９】
＜後天性バッドブロック情報の読み出し＞
［ステップＳ３０］
次に、ホストデバイス２００が、後発的に生じたバッドブロック、つまり後天性バッドブロック記憶領域１２２ｂ内に保持されているバッドブロック情報を読み出したい場合には、ホストデバイス２００は、メモリデバイス１００に対して後天性バッドブロック登録データ確認コマンド（ＣＭＤ  Ｃ）を発行する。
【００５０】
［ステップＳ３１］
ＣＰＵ１１２は、ホストデバイス２００から、後天性バッドブロック登録データ確認コマンド（ＣＭＤ  Ｃ）を受信すると、後天性バッドブロック記憶領域１２２ｂ内に保持されているバッドブロック情報を、ホストデバイス２００に供給する。
【００５１】
これにより、ホストデバイス２００は、後発的に生じたバッドブロック情報の確認を行うことが可能である。
【００５２】
また、メモリデバイス１００がホストデバイス２００にバッドブロック情報を出力する際の出力フォーマットは、上述したように、後天性バッドブロック記憶領域１２２ｂに登録されているアドレスでも良いし、メモリセルアレイ１２１の１ブロックを１Ｂｉｔあるいは複数Ｂｉｔに対応付けたＢｉｔ列データであっても良い。
【００５３】
＜バッドブロック情報の削除＞
［ステップＳ４０］
次に、ホストデバイス２００が、後発的に生じたバッドブロック、つまり後天性バッドブロック記憶領域１２２ｂ内に保持されているバッドブロック情報を削除したい場合には、ホストデバイス２００は、メモリデバイス１００に対して後天性バッドブロック登録データ消去コマンド（ＣＭＤ  Ｄ）を発行する。
【００５４】
ＣＰＵ１１２は、ホストデバイス２００から、後天性バッドブロック登録データ消去コマンド（ＣＭＤ  Ｄ）を受信すると、次に、ホストデバイス２００から供給されるアドレスを、後天性バッドブロック記憶領域１２２ｂ内から削除する。
【００５５】
［ステップＳ４１］
そして、ホストデバイス２００は、後天性バッドブロックとして登録されているアドレスの中から、削除したいアドレス（Address d）を、メモリデバイス１００に供給する。これにより、ＣＰＵ１１２は、受信したアドレス（Address d）を、後天性バッドブロック記憶領域１２２ｂから削除する。
【００５６】
これにより、ホストデバイス２００は、削除したアドレス（Address d）にアクセスすることができる。例えば、後天性バッドブロック記憶領域１２２ｂから対応するアドレスを削除することで、ホストデバイス２００によって、バッドブロックとして認定されたブロックを、再度確認することができる。
【００５７】
尚、この際に、ホストデバイス２００は、一括で後天性バッドブロック情報を消去しても良いし、任意のアドレスの後天性バッドブロック情報のみを消去しても良い。
【００５８】
＜第１の実施形態に係る作用効果＞
上述した第１の実施形態によれば、不揮発性半導体記憶装置１００は、列方向及び行方向にマトリクス状に配置された複数のメモリセルトランジスタＭＴと、直列接続される複数のメモリセルトランジスタＭＴを備える複数のＮＡＮＤセルと、複数のＮＡＮＤセルを備える複数のブロックと、を備える不揮発性のメモリセルアレイ１２１を備えている。また、不揮発性半導体記憶装置１００は、メモリセルアレイ１２１内に設定され、複数のブロックの内、外部機器２００からアクセスできないブロックの物理アドレスが登録されるバッドブロック記憶部１２２を備えている。そして、不揮発性半導体記憶装置１００は、更に、外部機器２００から、コマンド、物理アドレス、及びデータを受信し、メモリセルアレイ１２１へ書き込むデータ、またはメモリセルアレイ１２１から読み出したデータのエラー訂正を行い、外部機器２００から第１のコマンド（ＣＭＤ  Ａ）及び第１の物理アドレスを受信する場合、第１の物理アドレスに対応するブロックを、バッドブロックとしてバッドブロック記憶部１２２に登録し、外部機器２００から第２のコマンド（ＣＭＤ  Ｄ）及び第２の物理アドレスを受信する場合、第２の物理アドレスを、バッドブロック記憶部１２２から削除し、外部機器２００から第３のコマンド（ＣＭＤ  Ｂ、ＣＭＤ  Ｃ）を受信する場合、バッドブロック記憶部１２２に登録されている物理アドレスを、外部機器２００に供給するコントローラ１１０を備えている。
【００５９】
このように、上述したメモリデバイス１００は、論理アドレスー物理アドレス変換を行わないコントローラを有するメモリデバイス１００であり、任意のアドレスにおいて発生する後天性バッドブロックをホストデバイス２００からのコマンド等を用いて、メモリデバイス１００内部に登録可能としている。
【００６０】
ところで、ホストデバイスが、所定のアドレスをバッドブロックとしてメモリデバイスに登録できる機能がない場合、後天的に発生するバッドブロックに対しての管理をホストデバイスが行う必要があり、ホストデバイスの手間となっていた。
【００６１】
このように、ホストデバイス２００でのバッドブロック情報の管理をメモリデバイス１００で行うことができ、ホストデバイス２００側のシステム構築の際にバッドブロック管理機能等の実装が容易となる。また、メモリデバイス１００自身がバッドブロック情報を管理しているので、異なるホストデバイス２００で用いる際に、異なるホストデバイス２００は、例えばバッドブロック情報を、バッドブロック記憶部１２２からバッドブロック情報読み出すだけでよく、新たに後天性バッドブロックを導出する必要が無い。また、ホストデバイス２００から任意のアドレスを後天性バッドブロックとして登録できるために、フラッシュメモリの開発時に任意のアドレスに対する後天性バッドブロックへのアクセスを想定したコントローラ動作検証の利便性が向上する。このように、ホストデバイス２００は、上述したコマンドを用いるだけでバッドブロックを登録することができる、つまり、従来の通信プロトコルに則って容易にバッドブロック登録が可能となる。
【００６２】
以上のように、メモリデバイス１００自身でバッドブロック情報を管理することにより、高品質な半導体記憶装置を得ることができる。
【００６３】
（第２の実施形態）
次に、第２の実施形態に係る不揮発性半導体記憶装置について説明する。第２の実施形態では、後天的に生じるバッドブロックを、メモリデバイス１００自身で見つけだす方法を具体的に説明している。尚、第２の実施形態に係る不揮発性半導体記憶装置の基本的な構成及び基本的な動作は、上述した第１の実施形態に係る不揮発性半導体記憶装置と同様である。従って、上述した第１の実施形態で説明した事項及び上述した第１の実施形態から容易に類推可能な事項についての説明は省略する。
【００６４】
＜構成＞
＜第２の実施形態に係るメモリデバイスの概要＞
図４に示すように、不揮発性半導体記憶装置（メモリデバイス）１００は、メモリ制御部１１０、及びフラッシュメモリ１２０を備えている。
【００６５】
メモリ制御部１１０は、ホストインタフェース（単にホストＩ／Ｆとも称す）１１１、ＣＰＵ（central processing unit）１１２、ＲＯＭ１１３、ＲＡＭ１１４、データバッファ１１６、フラッシュインタフェース（単にフラッシュＩ／Ｆとも称す）１１７、ＥＣＣ（エラー correcting code）回路１１８、及びバス１３０を備えている。
【００６６】
フラッシュメモリ１２０は、メモリセルアレイ１２１、バッドブロック記憶部１２２、及びエラーブロック（Error Block）記憶部１２３を備えている。エラーブロック記憶部１２３は、後述する方法により、ＣＰＵ１１２がエラーブロックとして判定したブロックの情報（アドレス）が保持される領域である。そして、このエラーブロック記憶部１２３は、後述する方法により、エラーブロックのアドレスの追加や、消去を行うことが可能である。エラーブロックとして、エラーブロック記憶部１２３に登録されたアドレスには、アクセス制限がかけられないので、ホストデバイス２００は、該ブロックにアクセスすることができる。
【００６７】
尚、エラーブロック記憶部１２３は、メモリセルアレイ１２１の一部を利用している。しかし、メモリデバイス１００を動作させる場合、ＲＡＭ１１４の一部をエラーブロック記憶部１２３として用いても良いし、メモリセルアレイ１２１、及びＲＡＭ１１４の一部をエラーブロック記憶部１２３として用いても良い。
【００６８】
＜動作＞
＜第２の実施形態に係るメモリデバイスの動作の概要＞
本実施形態では、ホストデバイス２００が、後発的に生じたバッドブロックを見つけるために、メモリデバイス１００は、アクセス時におけるエラーの多いブロックを導出している。そして、ホストデバイス２００は、エラーの多いブロックを再度確認することによって、エラーブロックがバッドブロックか否かを決定する。
【００６９】
＜エラーブロック登録方法＞
次に、図５を用いて、エラーブロックを導出する方法について説明する。図５は、第２の実施形態に係るエラーブロックを導出する方法を示したフローチャートである。
【００７０】
［ステップＳ１０１］
ホストデバイス２００は、メモリデバイス１００に対して、エラーブロック登録開始コマンド（ＣＭＤ  Ｅ）を発行する。ＣＰＵ１１２は、エラーブロック登録開始コマンド（ＣＭＤ  Ｅ）を受信すると、その後のホストデバイス２００からのアクセスに対して、所定の数以上の消去エラー、書き込みエラー、読み出しエラー等が生じた場合に、該当するブロックをエラーブロックとして、エラーブロック記憶部１２３に登録する。
【００７１】
［ステップＳ１０２］
ホストデバイス２００は、メモリデバイス１００に対して、任意のアクセスを行う。ここで述べる任意のアクセスとはメモリセルアレイ１２１からのデータの読み出し、メモリセルアレイ１２１への書き込み、メモリセルアレイ１２１からのデータ消去等を意味している。これは、メモリセルアレイ１２１内のエラーブロックを見つける為のみのアクセスであっても良いし、エラーブロックを見つける為のみのアクセスでなくても良い。
【００７２】
［ステップＳ１０３］
ＣＰＵ１１２は、エラーブロック登録開始コマンド（ＣＭＤ  Ｅ）を受信すると、その後のホストデバイス２００からのアクセスに対して、消去エラー、書き込みエラー、読み出しエラー等が生じた場合に、該エラーが予め設定されている所定の数に達しているか否かを判定する。
【００７３】
［ステップＳ１０４］
ＣＰＵ１１２は、ホストデバイス２００からのアクセスに対して、所定の数以上の消去エラー、書き込みエラー、読み出しエラー等が生じたブロックの情報を、エラーブロックとして、エラーブロック記憶部１２３に登録する。尚、ここでは、エラーブロック記憶部１２３にエラーブロック情報を登録しているが、ＲＡＭ１１４に登録しても良いし、ＲＡＭ１１４と、エラーブロック記憶部１２３との両方に登録しても良い。
【００７４】
［ステップＳ１０５］
ホストデバイス２００は、メモリデバイス１００におけるエラーブロック登録動作を終了する場合は、メモリデバイス１００に対して、エラーブロック登録終了コマンド（ＣＭＤ  Ｆ）を発行するか、Resetコマンドを発行する。
【００７５】
ＣＰＵ１１２は、エラーブロック登録終了コマンド（ＣＭＤ  Ｆ）を受信すると、エラーブロック登録動作を終了する。また、ＲＡＭ１１４内に、エラーブロック情報が保持されている場合、ＣＰＵ１１２は、Resetコマンドを受信すると、ＲＡＭ１１４内に、保持されているエラーブロック情報を、エラーブロック記憶部１２３内に移動させた後、ＲＡＭ１１４内のデータを消去する。これにより、メモリデバイス１００におけるエラーブロック登録動作が終了する。
【００７６】
つまり、メモリデバイス１００は、ホストデバイス２００から、エラーブロック登録終了コマンド（ＣＭＤ  Ｆ）または、Resetコマンドを受信するまで、ステップＳ１０２〜１０４の動作を繰り返す。
【００７７】
次に、図６を用いて、任意のアドレスについてのエラーブロック情報の確認、バッドブロック登録、エラーブロック情報の削除を行う場合における、第２の実施形態に係るメモリデバイス１００の基本的な動作について説明する。図６は、ホストデバイス２００からメモリデバイス１００に入力されたコマンドに対するメモリデバイス１００の動作の様子と、該動作時における、バッドブロック記憶部１２２及びエラーブロック記憶部１２３の様子を示した図である。ここでは、説明の理解を容易にするために、一例として本実施形態に係るバッドブロック記憶部１２２の先天性バッドブロック記憶領域１２２ａには、予め導出されているバッドブロックのアドレス（Address a, Address b, Address c）が登録され、後天性バッドブロック記憶領域１２２ｂには何も登録されていないものとする。また、エラーブロック記憶部１２３には、図４で説明した動作により、エラーブロックのアドレス（Address d, Address e, Address f, Address g）が登録されているものとする。
【００７８】
＜エラーブロック登録データ確認＞
［ステップＳ５０］
ホストデバイス２００は、エラーブロックを確認する場合に、メモリデバイス１００に対してエラーブロック情報確認コマンド（ＣＭＤ  Ｇ）を発行する。
【００７９】
［ステップＳ５１］
ＣＰＵ１１２は、エラーブロック情報確認コマンド（ＣＭＤ  Ｇ）を受信すると、エラーブロック記憶部１２３内に保持されているエラーブロック情報を、ホストデバイス２００に供給する。
【００８０】
これにより、例えばホストデバイス２００は、エラーブロック記憶部１２３に登録されたエラーブロック情報を読み出して、エラーブロックに対してバッドブロックか否かの確認を行うことができる。
【００８１】
尚、メモリデバイス１００がホストデバイス２００にバッドブロック情報を出力する際の出力フォーマットは、第１の実施形態で説明したものと同様に、エラーブロック記憶部１２３に登録されているアドレスでも良いし、メモリセルアレイ１２１の１ブロックを１Ｂｉｔあるいは複数Ｂｉｔに対応付けたＢｉｔ列データであっても良い。
【００８２】
また、バッドブロックではないエラーブロックの具体例としては、リードディスターブによる劣化でデータが化けた場合がある。この場合は、該当ブロックの書き換えを行うことで正常ブロックとして動作する。 また、書き込みでのエラーも該当ページでのみ起こるので他のページの利用は可能である場合がある。このように、正常に利用可能なブロックをバッドブロックとして扱うことを防止することができる。
【００８３】
＜バッドブロック登録＞
［ステップＳ６０］
次に、ホストデバイス２００は、エラーブロック記憶部１２３に登録されているエラーブロックを、バッドブロックとして登録する場合、メモリデバイス１００に、エラー登録コマンド（ＣＭＤ  Ｈ）を発行する。
【００８４】
［ステップＳ６１］
ホストデバイス２００は、バッドブロックとして登録するエラーブロックのアドレス（Address d, Address e）を、メモリデバイス１００に供給する。
【００８５】
これにより、ＣＰＵ１１２は、後にホストデバイス２００から供給されたアドレス（Address d, Address e）を、バッドブロックとして、後天性バッドブロック記憶領域１２２ｂに登録することができる。
【００８６】
尚、この際には、ホストデバイス２００は、エラーブロック記憶部１２３に登録されている全てのエラーブロックをバッドブロックとして、後天性バッドブロック記憶領域１２２ｂに登録しても良い。この場合は、ホストデバイス２００は、例えばエラー登録コマンド（ＣＭＤ  Ｈ）のみを、メモリデバイス１００に供給すれば良い。
【００８７】
また、ここでは、ホストデバイス２００は、エラー登録コマンド（ＣＭＤ  Ｈ）と、バッドブロックとして登録するアドレスを別々にメモリデバイス１００に供給しているが、これらを同時にメモリデバイス１００に供給しても良い。
【００８８】
＜エラーブロック情報の削除＞
［ステップＳ７０］
次に、ホストデバイス２００が、エラーブロック、つまりエラーブロック記憶部１２３内に保持されているエラーブロック情報を削除したい場合、ホストデバイス２００は、メモリデバイス１００に対してエラーブロック情報削除コマンドI（ＣＭＤ  Ｉ）を発行する。  
ＣＰＵ１１２は、ホストデバイス２００から、エラーブロック情報削除コマンドI（ＣＭＤ  Ｉ）を受信すると、次に、ホストデバイス２００から供給されるアドレスを、エラーブロック記憶部１２３内から削除する。
【００８９】
［ステップＳ７１］
そして、ホストデバイス２００は、エラーブロックとして登録されているアドレスの中から、削除したいアドレス（Address d）を、メモリデバイス１００に供給する。
【００９０】
これにより、ＣＰＵ１１２は、受信したアドレス（Address d）を、エラーブロック記憶部１２３から削除する。
【００９１】
尚、この際に、ホストデバイス２００は、一括でエラーブロック情報を消去しても良いし、任意のアドレスのエラーブロック情報のみを消去しても良い。
【００９２】
＜第２の実施形態に係る作用効果＞
上述した第２の実施形態によれば、不揮発性半導体記憶装置１００は、メモリセルアレイ１２１内に設定されるエラーブロック記憶部１２３を更に備える。そして、コントローラ１１０は、外部機器２００から第４のコマンド（ＣＭＤ  Ｅ）を受信する場合、外部機器（２００）がメモリセルアレイ（１２１）にアクセスする際に、所定の数以上のエラーが発生したブロックの物理アドレスを、エラーブロック記憶部１２３に登録し、外部機器から第５のコマンド（ＣＭＤ  Ｈ）を受信する場合、エラーブロック記憶部１２３に登録されている物理アドレスを、バッドブロック記憶部１２２に登録し、外部機器２００から第６のコマンド（ＣＭＤ  Ｉ）及び第３の物理アドレスを受信する場合、第３の物理アドレスをエラーブロック記憶部１２３から削除し、外部機器２００から第７のコマンド（ＣＭＤ  Ｈ）を受信する場合、エラーブロック記憶部１２３に登録されている物理アドレスを、外部機器２００に供給する。
【００９３】
本実施形態によれば、メモリデバイス１００自身で、バッドブロックである可能があるエラーブロックを抽出することができる。そのため、ホストデバイス２００におけるバッドブロック管理に要する負担を軽減することができる。その結果、ホストデバイス２００のシステム構築の際に、バッドブロック管理機能等の実装が容易となる。また、メモリデバイス１００内に、エラーブロック情報が登録されているために、使用時の履歴の役割を果たし、戻入の際の有意義な情報として利用可能である。
【００９４】
以上、本発明の実施形態を説明したが、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない範囲内において種々変形して実施することが可能である。さらに、上記実施形態には種々の段階の発明が含まれており、開示された構成要件を適宜組み合わせることによって種々の発明が抽出される。例えば、開示された構成要件からいくつかの構成要件が削除されても、所定の効果が得られるものであれば、発明として抽出され得る。
【符号の説明】
【００９５】
１００…メモリデバイス、    １０１…ホストインタフェース、  
１１０…メモリ制御部、    １１１…ホストインタフェース、    １１２…ＣＰＵ
１１３…ＲＯＭ、    １１４…ＲＡＭ、    １１６…データバッファ
１１７…フラッシュインタフェース、    １１８…ＥＣＣ回路
１２０…ＮＡＮＤ型フラッシュメモリ、    １２１…メモリセルアレイ
１２２…バッドブロック記憶部、    １２２ａ…先天性バッドブロック記憶領域
１２２ｂ…後天性バッドブロック記憶領域、    １２３…エラーブロック記憶部
１３０…バス、    ２００…ホストデバイス。
【図１】
2014006811.tif 000003
【図２】
2014006811.tif 000004
【図３】
2014006811.tif 000005
【図４】
2014006811.tif 000006
【図５】
2014006811.tif 000007
【図６】
2014006811.tif 000008